From 4402a72ce268d3400d96294a7483a1d23c474c5f Mon Sep 17 00:00:00 2001 From: Jeremy Baxter Date: Mon, 26 Jan 2026 13:57:19 +1300 Subject: [PATCH] player: add Economy integration --- player/player.gd | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/player/player.gd b/player/player.gd index 48f08e0..6e9f274 100644 --- a/player/player.gd +++ b/player/player.gd @@ -10,6 +10,7 @@ const gear_slots = ["1", "2", "3"] var starting_gear = preload("res://gears/ball.tscn") +var ep = PlayerParticipant.new(self) var suspended = false var direction = Vector3.ZERO var target_velocity = Vector3.ZERO @@ -27,13 +28,17 @@ func resize_ui(): $HUD.position.x = 0 $HUD.position.y = size.y - hud_h -func make_hud(): +func make_hud(balance = ep.balance()): + if suspended: # TODO: CHANGE TO DEAD! + return + var text = "" for node in $Backpack.get_children(): if not node is Gear: continue text += "%s (%s)\n" % [node.gear_name(), node.name] text += "Holding " + $Pivot/Container/Gear.gear_name() + "\n" + text += str(balance) + " ₹ (rupees)\n" text += str(health()) + " hp" $HUD.text = text @@ -147,6 +152,18 @@ func equip(gear: Gear): message("Backpack full") return false +# Economy participant definition + +class PlayerParticipant extends Economy.Participant: + var player: Player + func _init(p: Player): + player = p + participant_name = "Player participant" + func message(string): + player.message(string) + func on_balance_update(bal): + player.make_hud(bal) + # Player mechanics func move_player(x, z): @@ -217,6 +234,7 @@ func do_gears(): # Engine callbacks func _ready(): + get_tree().current_scene.get_node("Economy").register(ep) get_viewport().size_changed.connect(resize_ui) resize_ui() respawn()