67 lines
1.7 KiB
GDScript
67 lines
1.7 KiB
GDScript
extends WindowDialog
|
|
const ItemDir = "res://item_types"
|
|
onready var player = get_tree().get_nodes_in_group("player")[0]
|
|
|
|
var initialized : bool = false
|
|
|
|
func _unhandled_key_input(event):
|
|
if event.is_action_pressed("open_debug"):
|
|
if visible:
|
|
hide()
|
|
else:
|
|
popup()
|
|
|
|
func _on_charge_pressed():
|
|
player.modify_inventory("coins", 1)
|
|
|
|
func _on_charge_5_pressed():
|
|
player.modify_inventory("coins", 5)
|
|
|
|
func _on_clear_pressed():
|
|
if player.has_item():
|
|
player.drop_item_in_hand()
|
|
|
|
func _on_random_damage_pressed():
|
|
var damageable = get_tree().get_nodes_in_group("damageable")
|
|
if damageable.empty():
|
|
return
|
|
damageable[randi() % damageable.size()].take_damage()
|
|
|
|
func _on_timer_2_s_pressed():
|
|
var game_manager = get_tree().get_nodes_in_group("game_manager")[0]
|
|
var day_timer = game_manager.get_node("day_timer")
|
|
day_timer.start(2.0)
|
|
day_timer.wait_time = game_manager.time_per_day
|
|
|
|
func popup(bounds : Rect2 = Rect2(0,0,0,0)):
|
|
if !initialized:
|
|
load_item_add_buttons()
|
|
.popup(bounds)
|
|
|
|
func load_item_add_buttons():
|
|
var dir = Directory.new()
|
|
dir.open(ItemDir)
|
|
dir.list_dir_begin()
|
|
var file_name = dir.get_next()
|
|
while(file_name!=""):
|
|
if dir.current_is_dir():
|
|
pass
|
|
else:
|
|
var button : Button = Button.new()
|
|
button.text = file_name
|
|
button.connect("button_down", self, "on_item_button_down", [file_name])
|
|
$TabContainer/Player.add_child(button)
|
|
file_name = dir.get_next()
|
|
var button : Button = Button.new()
|
|
button.text = "Close"
|
|
$TabContainer/Player.add_child(button)
|
|
button.connect("button_down", self, "on_close_button_down")
|
|
initialized = true
|
|
|
|
func on_item_button_down(file_name : String):
|
|
var path : String = ItemDir + "/" + file_name
|
|
player.pick_up_item(load(path).spawn_node())
|
|
|
|
func on_close_button_down():
|
|
hide()
|