BeltTest/Building.gd
Manuel Erdmann 94bfe2754e 🎉
2025-06-10 19:16:45 +02:00

42 lines
1.1 KiB
GDScript

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()