diff options
Diffstat (limited to 'client/map/tiles/exterior_tree.gd')
-rw-r--r-- | client/map/tiles/exterior_tree.gd | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/client/map/tiles/exterior_tree.gd b/client/map/tiles/exterior_tree.gd index 41e35693..edc08df3 100644 --- a/client/map/tiles/exterior_tree.gd +++ b/client/map/tiles/exterior_tree.gd @@ -16,9 +16,30 @@ class_name ExteriorTree extends Grass +const SCALE: Vector3 = Vector3(100., 100., 100.) +const ROT: Vector3 = Vector3(1.5 * PI, 0., 0.) + func _init(rename: String, _neighbors: Array): super(rename, _neighbors) var random = RandomNumberGenerator.new() random.seed = rename.hash() - var path = "res://map/tiles/tree_%s.tscn" % random.randi_range(1,5) - base.add_child(load(path).instantiate()) + var tree: int = random.randi_range(1,5) + var trunk: Mesh = load("res://map/tiles/tree/trunk_%d.res" % tree) + var leaves: Mesh = load("res://map/tiles/tree/leaves_%d_%s.res" % [ + tree, + "lq" if Global.get_setting("lq_trees") else "hq" + ]) + var trunk_instance: MeshInstance3D = MeshInstance3D.new() + trunk_instance.mesh = trunk + trunk_instance.scale = SCALE + trunk_instance.rotation = ROT + var leaves_instance: MeshInstance3D = MeshInstance3D.new() + leaves_instance.mesh = leaves + leaves_instance.scale = SCALE + leaves_instance.rotation = ROT + var tree_node: Node3D = Node3D.new() + + tree_node.add_child(trunk_instance) + tree_node.add_child(leaves_instance) + tree_node.name = "Tree" + base.add_child(tree_node) |