extends Node2D class_name Building @export var current_grid_pos: Vector2i = Vector2i.ZERO: set(value): current_grid_pos = value _on_grid_position_changed() @export var direction: Vector2i = Vector2i.RIGHT: set(value): direction = value _on_direction_changed() var game_grid: GameGrid # = get_parent().get_node("GameGrid") var tile_map: TileMapLayer func _ready() -> void: game_grid = get_tree().root.get_node("Node2D/GameGrid") tile_map = game_grid.tile_map func _on_grid_position_changed(): name = "Building_%s,%s" % [current_grid_pos.x, current_grid_pos.y] pass func _on_direction_changed(): pass func can_accept_item() -> bool: push_error("can_accept_item() must be overridden by class %s!" % name) return false # Accept item for movement func handle_item_entry(item: Item, remaining_delta_from_previous: float = 0.0): push_error("handle_item_entry() must be overridden by class %s!" % name) #item.queue_free() # Accept item directly (for item sink). Maybe use same method for both and # just ignore delta? func handle_item(item: Item): push_error("handle_item() must be overridden by class %s!" % name) #item.queue_free()