Add pick block
This commit is contained in:
parent
72b0bf1d1e
commit
974efa76cf
4 changed files with 35 additions and 4 deletions
|
@ -230,6 +230,19 @@ func kill_citizen():
|
||||||
return false
|
return false
|
||||||
|
|
||||||
|
|
||||||
|
func pick_block():
|
||||||
|
if Persister.get_value("win") or Persister.get_value("lose"):
|
||||||
|
return
|
||||||
|
|
||||||
|
var tile = local_to_map(get_global_mouse_position())
|
||||||
|
|
||||||
|
if building_data.has(tile):
|
||||||
|
var data = Data.data.buildings[building_data[tile].key]
|
||||||
|
if (not data.cost.has("wood") or int(data.cost.wood) <= Persister.get_value("wood")) and (not data.cost.has("stone") or int(data.cost.stone) <= Persister.get_value("stone")):
|
||||||
|
Persister.persist_data("building_mode", true)
|
||||||
|
Persister.persist_data("building_key", building_data[tile].key)
|
||||||
|
|
||||||
|
|
||||||
func place_building():
|
func place_building():
|
||||||
if Persister.get_value("win") or Persister.get_value("lose"):
|
if Persister.get_value("win") or Persister.get_value("lose"):
|
||||||
return
|
return
|
||||||
|
|
17
camera.gd
17
camera.gd
|
@ -8,6 +8,14 @@ var zoom_speed = 0.1
|
||||||
# Variables for panning
|
# Variables for panning
|
||||||
var is_panning = false
|
var is_panning = false
|
||||||
var last_mouse_position = Vector2()
|
var last_mouse_position = Vector2()
|
||||||
|
var pan_speed = 1000
|
||||||
|
|
||||||
|
@onready var camera_target = position
|
||||||
|
|
||||||
|
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
position = position.move_toward(camera_target, delta * pan_speed)
|
||||||
|
|
||||||
|
|
||||||
func _input(event):
|
func _input(event):
|
||||||
if event is InputEventMouseButton:
|
if event is InputEventMouseButton:
|
||||||
|
@ -26,12 +34,13 @@ func _input(event):
|
||||||
if event.button_index == MOUSE_BUTTON_RIGHT:
|
if event.button_index == MOUSE_BUTTON_RIGHT:
|
||||||
if event.pressed:
|
if event.pressed:
|
||||||
is_panning = true
|
is_panning = true
|
||||||
last_mouse_position = get_global_mouse_position()
|
last_mouse_position = Cursor.mouse_control.position
|
||||||
else:
|
else:
|
||||||
is_panning = false
|
is_panning = false
|
||||||
|
|
||||||
# Handle panning movement
|
# Handle panning movement
|
||||||
if is_panning and event is InputEventMouseMotion:
|
if is_panning and event is InputEventMouseMotion:
|
||||||
var mouse_movement = last_mouse_position - get_global_mouse_position()
|
var mouse_movement = last_mouse_position - Cursor.mouse_control.position
|
||||||
global_position += mouse_movement * zoom.x # Adjust movement based on zoom level
|
camera_target += mouse_movement / zoom.x
|
||||||
last_mouse_position = get_global_mouse_position()
|
#global_position += mouse_movement * zoom.x # Adjust movement based on zoom level
|
||||||
|
last_mouse_position = Cursor.mouse_control.position
|
||||||
|
|
4
main.gd
4
main.gd
|
@ -34,6 +34,10 @@ func _process(delta: float) -> void:
|
||||||
if Persister.get_value("population") <= 0:
|
if Persister.get_value("population") <= 0:
|
||||||
Persister.persist_data("lose", true)
|
Persister.persist_data("lose", true)
|
||||||
|
|
||||||
|
if Input.is_action_just_pressed("mclick"):
|
||||||
|
for build_level in building_levels:
|
||||||
|
build_level.pick_block()
|
||||||
|
|
||||||
if Input.is_action_just_released("lclick"):
|
if Input.is_action_just_released("lclick"):
|
||||||
if Persister.get_value("drag_mode") and Persister.get_value("building_mode"):
|
if Persister.get_value("drag_mode") and Persister.get_value("building_mode"):
|
||||||
for build_level in building_levels:
|
for build_level in building_levels:
|
||||||
|
|
|
@ -51,6 +51,11 @@ restart={
|
||||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"key_label":0,"unicode":114,"location":0,"echo":false,"script":null)
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"key_label":0,"unicode":114,"location":0,"echo":false,"script":null)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
mclick={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":4,"position":Vector2(179, 8),"global_position":Vector2(188, 54),"factor":1.0,"button_index":3,"canceled":false,"pressed":true,"double_click":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
[rendering]
|
[rendering]
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue