From fb361e8d4df8ab672d0f051d56b09faff7d2b2c3 Mon Sep 17 00:00:00 2001 From: Dylan Shumway Date: Sat, 4 Oct 2025 16:50:37 -0400 Subject: [PATCH] Implement basic numpad architecture --- NumpadButton.tscn | 12 ++++++++++++ desk.tscn | 38 +++++++++++++++++++++++++++++++++++++- game_manager.gd | 2 ++ numpad.gd | 16 +++++++++++++++- numpad_button.gd | 16 ++++++++++++++++ numpad_button.gd.uid | 1 + 6 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 NumpadButton.tscn create mode 100644 numpad_button.gd create mode 100644 numpad_button.gd.uid diff --git a/NumpadButton.tscn b/NumpadButton.tscn new file mode 100644 index 0000000..e2c6f2d --- /dev/null +++ b/NumpadButton.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=2 format=3 uid="uid://d0iltvfnuao1q"] + +[ext_resource type="Script" uid="uid://cj0cg8u5mclxe" path="res://numpad_button.gd" id="1_orrea"] + +[node name="TextureButton" type="TextureButton"] +offset_right = 40.0 +offset_bottom = 40.0 +script = ExtResource("1_orrea") + +[node name="Sprite2D" type="Sprite2D" parent="."] + +[connection signal="button_down" from="." to="." method="_on_button_down"] diff --git a/desk.tscn b/desk.tscn index df1361f..4130afb 100644 --- a/desk.tscn +++ b/desk.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=3 format=3 uid="uid://bohp0o2smdkwe"] +[gd_scene load_steps=4 format=3 uid="uid://bohp0o2smdkwe"] [ext_resource type="Script" uid="uid://c2mrlu8d75ry4" path="res://gavel.gd" id="1_ep8l3"] [ext_resource type="Script" uid="uid://l7wiwo13pb0f" path="res://numpad.gd" id="2_t5y75"] +[ext_resource type="PackedScene" uid="uid://d0iltvfnuao1q" path="res://NumpadButton.tscn" id="3_se7ci"] [node name="Desk" type="Node2D"] @@ -15,4 +16,39 @@ offset_bottom = 40.0 [node name="Numpad" type="Node2D" parent="."] script = ExtResource("2_t5y75") +[node name="0" parent="Numpad" instance=ExtResource("3_se7ci")] + +[node name="1" parent="Numpad" instance=ExtResource("3_se7ci")] +button_value = 1 + +[node name="2" parent="Numpad" instance=ExtResource("3_se7ci")] +button_value = 2 + +[node name="3" parent="Numpad" instance=ExtResource("3_se7ci")] +button_value = 3 + +[node name="4" parent="Numpad" instance=ExtResource("3_se7ci")] +button_value = 4 + +[node name="5" parent="Numpad" instance=ExtResource("3_se7ci")] +button_value = 5 + +[node name="6" parent="Numpad" instance=ExtResource("3_se7ci")] +button_value = 6 + +[node name="7" parent="Numpad" instance=ExtResource("3_se7ci")] +button_value = 7 + +[node name="8" parent="Numpad" instance=ExtResource("3_se7ci")] +button_value = 8 + +[node name="9" parent="Numpad" instance=ExtResource("3_se7ci")] +button_value = 9 + +[node name="Backspace" parent="Numpad" instance=ExtResource("3_se7ci")] +button_value = 10 + +[node name="Submit" parent="Numpad" instance=ExtResource("3_se7ci")] +button_value = 11 + [connection signal="button_down" from="Gavel/TextureButton" to="Gavel" method="_on_texture_button_button_down"] diff --git a/game_manager.gd b/game_manager.gd index ad3b766..6b4a0ee 100644 --- a/game_manager.gd +++ b/game_manager.gd @@ -32,5 +32,7 @@ func _on_gavel_gavel_hit(): bidding_open = not bidding_open if bidding_open == true: current_bid = target_sales/(paintings_total + 2) + print("The new painting will start selling at $" + str(current_bid)) else: total_sales = total_sales + current_bid + print("Congrats on selling your painting for $" + str(current_bid) + "! You have made $" + str(total_sales) + " so far.") diff --git a/numpad.gd b/numpad.gd index e251cf8..5545b23 100644 --- a/numpad.gd +++ b/numpad.gd @@ -1 +1,15 @@ -extends Node2D +class_name Numpad extends Node2D + +var numpad_buffer = Array() +var proposed_bid: int + +# number entry function called by numbered button children +func keypad_entry(entry: int): + numpad_buffer.append(str(entry)) + +func keypad_backspace(): + numpad_buffer.remove_at(-1) + +func keypad_submit(): + var keypad_output: String = "".join(numpad_buffer) + proposed_bid = int(keypad_output) diff --git a/numpad_button.gd b/numpad_button.gd new file mode 100644 index 0000000..6ac2830 --- /dev/null +++ b/numpad_button.gd @@ -0,0 +1,16 @@ +extends TextureButton + +@export var button_value = 0 +@export var button_texture: Texture2D +var parent: Numpad = get_parent() + +func _ready() -> void: + $Sprite2D.texture = button_texture + +func _on_button_down() -> void: + if button_value <= 9: + parent.keypad_entry(button_value) + elif button_value == 10: + parent.keypad_backspace() + else: + parent.keypad_submit() diff --git a/numpad_button.gd.uid b/numpad_button.gd.uid new file mode 100644 index 0000000..46d1098 --- /dev/null +++ b/numpad_button.gd.uid @@ -0,0 +1 @@ +uid://cj0cg8u5mclxe