Changed resource spawning
added interact functionality temp added zoom with scroll wheel
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
class_name CellData
|
||||
extends Node
|
||||
extends Resource
|
||||
|
||||
@export var layer_info: Dictionary = {
|
||||
Constants.TilemapLayers.CORRUPTION: false
|
||||
}
|
||||
var _pos: Vector2i
|
||||
var interaction_display: ProgressBar
|
||||
|
||||
func _to_string() -> String:
|
||||
return "{%s %s}" % [_pos, layer_info]
|
||||
@@ -24,8 +25,31 @@ func change_resource(data: GameResource) -> void:
|
||||
func get_resource() -> GameResource:
|
||||
return layer_info[Constants.TilemapLayers.ENVIRONMENT] as GameResource
|
||||
|
||||
func has_resource() -> bool:
|
||||
return has_layer(Constants.TilemapLayers.ENVIRONMENT)
|
||||
|
||||
func is_corrupted() -> bool:
|
||||
return layer_info[Constants.TilemapLayers.CORRUPTION]
|
||||
|
||||
func has_layer(layer: int) -> bool:
|
||||
return layer_info.has(layer)
|
||||
|
||||
func interact(timer: Timer) -> void:
|
||||
var is_interactable := has_resource() or has_layer(Constants.TilemapLayers.BUILDINGS)
|
||||
if is_interactable and not interaction_display:
|
||||
timer.timeout.connect(_on_interaction_finished.bind(timer))
|
||||
timer.start(3)
|
||||
|
||||
interaction_display = ProgressBar.new()
|
||||
interaction_display.position = Grid.grid_to_world_center(_pos) - Vector2(30, 10)
|
||||
interaction_display.size = Vector2(60, 20)
|
||||
interaction_display.show_percentage = false
|
||||
var tween = timer.get_tree().create_tween()
|
||||
tween.tween_property(interaction_display, "value", 100, 3)
|
||||
timer.get_parent().add_sibling(interaction_display)
|
||||
|
||||
func _on_interaction_finished(timer: Timer) -> void:
|
||||
timer.timeout.disconnect(_on_interaction_finished)
|
||||
if has_resource():
|
||||
interaction_display.queue_free()
|
||||
get_resource().gained_resource.emit(get_resource())
|
||||
|
||||
Reference in New Issue
Block a user