Made building consume resources

Now may build more than one if resources allow
building placement is red/green for indicating success
This commit is contained in:
2024-03-10 07:50:26 -05:00
parent 856b6a0400
commit d74bfda9a3
8 changed files with 53 additions and 9 deletions

View File

@@ -35,13 +35,12 @@ func _physics_process(delta: float) -> void:
if _build_placement:
_build_placement.position = Grid.grid_to_world_center(interaction_location)
_build_placement.self_modulate = Color(0, 1, 0, 0.5) if Grid.get_location_data(interaction_location).is_buildable() else Color(1, 0, 0, 0.4)
func _input(event: InputEvent) -> void:
if event.is_action_pressed("interact"):
if _attempting_build and Grid.get_location_data(interaction_location).is_buildable():
var build: BuildingBase = BUILDING_BASE.instantiate()
build.initialize(_attempting_build, interaction_location)
add_sibling(build)
_build()
elif not _interacting and Grid.get_location_data(interaction_location).is_interactable():
var interaction = INTERACTION_BAR.instantiate()
interaction.interaction_finished.connect(_on_interaction_finished)
@@ -64,6 +63,18 @@ func _on_build_menu_build(building: Building) -> void:
_build_placement.self_modulate = Color(1, 0, 0, 0.4)
add_sibling(_build_placement)
func _build() -> void:
ResourceManager.use_resources(_attempting_build.cost)
var build: BuildingBase = BUILDING_BASE.instantiate()
build.initialize(_attempting_build, interaction_location)
add_sibling(build)
Grid.change_location_building(interaction_location, build)
if not ResourceManager.has_resources(_attempting_build.cost):
_attempting_build = null
_build_placement.queue_free()
_build_placement = null
func _on_interation_options_closed() -> void:
_interaction_options = null