aboutsummaryrefslogtreecommitdiff
path: root/client/map/tiles/grass.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/map/tiles/grass.gd')
-rw-r--r--client/map/tiles/grass.gd33
1 files changed, 9 insertions, 24 deletions
diff --git a/client/map/tiles/grass.gd b/client/map/tiles/grass.gd
index 0f67174c..0d64ae2b 100644
--- a/client/map/tiles/grass.gd
+++ b/client/map/tiles/grass.gd
@@ -14,30 +14,15 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
class_name Grass
-extends Tile
+extends FloorLike
-const GRASS_MESH: Mesh = preload("res://map/tiles/grass_side.tres")
-
-func _init(ctx: TileFactory.TileCC):
- super(ctx)
-
- var random = RandomNumberGenerator.new()
- random.seed = str(ctx.position).hash()
-
- var multimesh_instance := MultiMeshInstance3D.new()
-
- var multimesh := MultiMesh.new()
- multimesh.mesh = GRASS_MESH
- multimesh.transform_format = MultiMesh.TRANSFORM_3D
- multimesh.instance_count = Global.get_setting("graphics.grass_amount")
-
- for i in multimesh.instance_count:
- var origin := Vector3(random.randf_range(-.5, .5), 0.25, random.randf_range(-.5, .5))
- var basis_ := (Basis(Vector3(0, 1, 0), random.randf_range(0, PI)) * Basis(Vector3(1, 0, 0), PI/2)).scaled(Vector3(0.75, 0.5, 0.75))
- multimesh.set_instance_transform(i, Transform3D(basis_, origin))
-
- base_mesh.add_child(multimesh_instance)
- multimesh_instance.multimesh = multimesh
+static func fm_id() -> String:
+ return "grass"
func get_base_mesh():
- return preload("res://map/tiles/grass.tscn").instantiate()
+ return null
+
+static func floor_mesh() -> MeshInstance3D:
+ var node = super()
+ node.material_override = preload("res://map/tiles/grass_material.tres")
+ return node