From 1a5d7918abf73a78e899eb32f2d03eb3122d364b Mon Sep 17 00:00:00 2001 From: Steven Wroblewski Date: Fri, 17 Apr 2026 21:18:52 +0200 Subject: [PATCH] feat(home-button): add HomeButton component for hospital/garden navigation --- scenes/objects/HomeButton.tscn | 20 ++++++++++++++++++++ scripts/objects/home_button.gd | 21 +++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 scenes/objects/HomeButton.tscn create mode 100644 scripts/objects/home_button.gd diff --git a/scenes/objects/HomeButton.tscn b/scenes/objects/HomeButton.tscn new file mode 100644 index 0000000..7b178e7 --- /dev/null +++ b/scenes/objects/HomeButton.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=2 format=3 uid="uid://cozypaw_homebtn"] + +[ext_resource type="Script" path="res://scripts/objects/home_button.gd" id="1_homebtn"] + +[node name="HomeButton" type="Node2D"] +script = ExtResource("1_homebtn") + +[node name="ButtonBody" type="ColorRect" parent="."] +offset_left = -32.0 +offset_top = -32.0 +offset_right = 32.0 +offset_bottom = 32.0 +color = Color(0.36, 0.70, 0.44, 1) + +[node name="ButtonIcon" type="ColorRect" parent="."] +offset_left = -12.0 +offset_top = -18.0 +offset_right = 12.0 +offset_bottom = 6.0 +color = Color(0.90, 0.88, 0.70, 1) diff --git a/scripts/objects/home_button.gd b/scripts/objects/home_button.gd new file mode 100644 index 0000000..300c0cd --- /dev/null +++ b/scripts/objects/home_button.gd @@ -0,0 +1,21 @@ +## HomeButton — tappable button that navigates between the hospital and the garden area. +class_name HomeButton extends Node2D + +const BUTTON_HALF_SIZE: float = 32.0 + +@export var go_to_garden: bool = true + + +func _input(event: InputEvent) -> void: + if not event is InputEventScreenTouch: + return + if not (event as InputEventScreenTouch).pressed: + return + var touch_pos: Vector2 = (event as InputEventScreenTouch).position + var local: Vector2 = to_local(touch_pos) + if abs(local.x) > BUTTON_HALF_SIZE or abs(local.y) > BUTTON_HALF_SIZE: + return + if go_to_garden: + RoomNavigator.go_to_home() + else: + RoomNavigator.go_to_hospital()