mirror of
https://github.com/Steffo99/swear-jar.git
synced 2025-03-21 08:04:52 +00:00
Script shop UI
This commit is contained in:
parent
3f59b56aa8
commit
350501f9d8
2 changed files with 88 additions and 5 deletions
interface
|
@ -1,2 +1,62 @@
|
|||
extends Panel
|
||||
class_name ShopUI
|
||||
|
||||
## Emitted when the Score button is pressed.
|
||||
signal score_button_pressed
|
||||
|
||||
## Emitted when the Delete button is pressed.
|
||||
signal delete_button_pressed
|
||||
|
||||
## Emitted when the Back button is presesd.
|
||||
signal back_button_pressed
|
||||
|
||||
## Emitted when any purchase has started.
|
||||
signal purchase_begin(what: PurchasableItem)
|
||||
|
||||
## Emitted when any purchase is cancelled.
|
||||
signal purchase_cancel(what: PurchasableItem)
|
||||
|
||||
## Emitted when any purchase is completed.
|
||||
##
|
||||
## Emitted by complete_purchase().
|
||||
signal purchase_success(what: PurchasableItem)
|
||||
|
||||
## Array of all PurchasableItems that this ShopUI should control.
|
||||
@onready var purchasable_items: Array[PurchasableItem] = find_children("*", "PurchasableItem") as Array[PurchasableItem]
|
||||
|
||||
|
||||
func _ready():
|
||||
for item in purchasable_items:
|
||||
item.purchase_begin.connect(_on_any_purchase_begin.bind(item))
|
||||
item.purchase_cancel.connect(_on_any_purchase_cancel.bind(item))
|
||||
item.purchase_success.connect(_on_any_purchase_success.bind(item))
|
||||
|
||||
func _on_any_purchase_begin(what: PurchasableItem):
|
||||
purchase_begin.emit(what)
|
||||
for item in purchasable_items:
|
||||
if item == what:
|
||||
continue
|
||||
item.can_buy = false
|
||||
|
||||
func _on_any_purchase_cancel(what: PurchasableItem):
|
||||
purchase_cancel.emit(what)
|
||||
for item in purchasable_items:
|
||||
if item == what:
|
||||
continue
|
||||
item.can_buy = true
|
||||
|
||||
func _on_any_purchase_success(what: PurchasableItem):
|
||||
purchase_success.emit(what)
|
||||
for item in purchasable_items:
|
||||
if item == what:
|
||||
continue
|
||||
item.can_buy = true
|
||||
|
||||
func _on_score_button_pressed():
|
||||
score_button_pressed.emit()
|
||||
|
||||
func _on_delete_button_pressed():
|
||||
delete_button_pressed.emit()
|
||||
|
||||
func _on_back_button_pressed():
|
||||
back_button_pressed.emit()
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://cklkdygv61bny"]
|
||||
[gd_scene load_steps=5 format=3 uid="uid://cklkdygv61bny"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://ba5utvfhnxa5i" path="res://interface/interface_theme.tres" id="1_qdf0y"]
|
||||
[ext_resource type="PackedScene" uid="uid://dul1fpyh733t7" path="res://interface/purchasable_item.tscn" id="2_2dtc0"]
|
||||
[ext_resource type="Script" path="res://interface/shop_ui.gd" id="2_iyr7m"]
|
||||
[ext_resource type="PackedScene" uid="uid://wodgj6rp2ewm" path="res://interface/purchasable_item_padding.tscn" id="3_4feaj"]
|
||||
|
||||
[node name="ShopUI" type="Panel"]
|
||||
|
@ -11,6 +12,7 @@ anchor_bottom = 1.0
|
|||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme = ExtResource("1_qdf0y")
|
||||
script = ExtResource("2_iyr7m")
|
||||
|
||||
[node name="Rows" type="VBoxContainer" parent="."]
|
||||
layout_mode = 1
|
||||
|
@ -24,19 +26,29 @@ grow_vertical = 2
|
|||
custom_minimum_size = Vector2(0, 54)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="MoneyButton" type="Button" parent="Rows/UpperButtons"]
|
||||
custom_minimum_size = Vector2(54, 0)
|
||||
[node name="ScoreButton" type="Button" parent="Rows/UpperButtons"]
|
||||
custom_minimum_size = Vector2(72, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
text = "$0"
|
||||
alignment = 0
|
||||
|
||||
[node name="UpperButtonsSpacer" type="PanelContainer" parent="Rows/UpperButtons"]
|
||||
[node name="UpperButtonsSpacerLeft" type="PanelContainer" parent="Rows/UpperButtons"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="DeleteButton" type="Button" parent="Rows/UpperButtons"]
|
||||
custom_minimum_size = Vector2(72, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
text = "Del"
|
||||
|
||||
[node name="UpperButtonsSpacerRight" type="PanelContainer" parent="Rows/UpperButtons"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="BackButton" type="Button" parent="Rows/UpperButtons"]
|
||||
custom_minimum_size = Vector2(54, 0)
|
||||
custom_minimum_size = Vector2(72, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 8
|
||||
text = "Back"
|
||||
|
@ -61,3 +73,14 @@ layout_mode = 2
|
|||
|
||||
[node name="PurchasableItem2" parent="Rows/Scrollable/ScrollableItems" instance=ExtResource("2_2dtc0")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="PurchasableItemPadding2" parent="Rows/Scrollable/ScrollableItems" instance=ExtResource("3_4feaj")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="PurchasableItem3" parent="Rows/Scrollable/ScrollableItems" instance=ExtResource("2_2dtc0")]
|
||||
layout_mode = 2
|
||||
has_unlocked = false
|
||||
|
||||
[connection signal="pressed" from="Rows/UpperButtons/ScoreButton" to="." method="_on_score_button_pressed"]
|
||||
[connection signal="pressed" from="Rows/UpperButtons/DeleteButton" to="." method="_on_delete_button_pressed"]
|
||||
[connection signal="pressed" from="Rows/UpperButtons/BackButton" to="." method="_on_back_button_pressed"]
|
||||
|
|
Loading…
Add table
Reference in a new issue