extends Node3D func _ready(): Multiplayer.connect("update_map", update) func update(pos, tile_name, neighbors): var instance: Floor var node_name = str(pos) if has_node(node_name): queue_free_rename(get_node(node_name)) match tile_name: "trash": instance = Trash.new(node_name, neighbors) "tomato-crate": instance = CounterBase.new(node_name, neighbors) "cuttingboard": instance = CuttingBoard.new(node_name, neighbors) "counter": instance = CounterBase.new(node_name, neighbors) "flour-crate": instance = CounterBase.new(node_name, neighbors) "oven": instance = Oven.new(node_name, neighbors) "raw-steak-crate": instance = CounterBase.new(node_name, neighbors) "stove": instance = Stove.new(node_name, neighbors) "sink": instance = Sink.new(node_name, neighbors) "dirty-plate-crate": instance = CounterBase.new(node_name, neighbors) "wall": instance = Wall.new(node_name, neighbors) "chair": instance = Chair.new(node_name, neighbors) "table": instance = Table.new(node_name, neighbors) "floor": instance = Floor.new(node_name, neighbors) "window": instance = WallWindow.new(node_name, neighbors) "door": instance = Door.new(node_name, neighbors) var t: push_error("tile tile %s unknown" % t) instance = Floor.new(node_name, neighbors) instance.position = Vector3(pos[0], 0, pos[1]) add_child(instance) func queue_free_rename(node: Node) -> void: node.name += "_queued_free" node.queue_free()