diff options
Diffstat (limited to 'client/map/tiles/grass.gd')
-rw-r--r-- | client/map/tiles/grass.gd | 33 |
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 |