aboutsummaryrefslogtreecommitdiff
path: root/client/map/tiles/exterior_tree.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/map/tiles/exterior_tree.gd')
-rw-r--r--client/map/tiles/exterior_tree.gd25
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)