From 6961eec7de10acd7fde43258103f8a35a8275bbf Mon Sep 17 00:00:00 2001 From: Nitsud Yarg Date: Sat, 8 Jun 2024 14:21:47 -0700 Subject: [PATCH] UI dialog and HUD switch implemented with singleton controller. --- Main.tscn | 7 ++-- assets/MManPortrait.png | Bin 0 -> 732 bytes assets/MManPortrait.png.import | 35 ++++++++++++++++++ assets/UI/Healthbar-Indicator.tres | 3 -- project.godot | 9 ++++- src/UI_Layer.gd | 49 ++++++++++++++++++++++++++ src/playerC/Player-KinematicBody2D.gd | 5 +++ src/singleton_autoloads/UIManager.gd | 24 +++++++++++++ 8 files changed, 123 insertions(+), 9 deletions(-) create mode 100644 assets/MManPortrait.png create mode 100644 assets/MManPortrait.png.import delete mode 100644 assets/UI/Healthbar-Indicator.tres create mode 100644 src/UI_Layer.gd create mode 100644 src/singleton_autoloads/UIManager.gd diff --git a/Main.tscn b/Main.tscn index 314ba34..49e56d7 100644 --- a/Main.tscn +++ b/Main.tscn @@ -8,7 +8,7 @@ [ext_resource path="res://src/templates/Actor/ActorTemplate.tscn" type="PackedScene" id=6] [ext_resource path="res://src/enemyC/EnemyC.tscn" type="PackedScene" id=7] [ext_resource path="res://assets/Fonts/QuinqueFive.tres" type="DynamicFont" id=8] -[ext_resource path="res://src/UI_Dialog.tscn" type="PackedScene" id=9] +[ext_resource path="res://src/UI_Layer.gd" type="Script" id=9] [ext_resource path="res://assets/UI/Healthbar.png" type="Texture" id=10] [ext_resource path="res://assets/UI/Healthbar-Indicator.png" type="Texture" id=11] [ext_resource path="res://src/UI/HealthBar.gd" type="Script" id=12] @@ -223,14 +223,11 @@ position = Vector2( 492, 27 ) position = Vector2( 262, 44 ) actor_type = "NPC" -[node name="UI_Dialog" parent="." instance=ExtResource( 9 )] -visible = false - [node name="UI_Layer" type="CanvasLayer" parent="."] layer = 2 +script = ExtResource( 9 ) [node name="PanelContainer" type="PanelContainer" parent="UI_Layer"] -visible = false margin_left = 2.0 margin_top = 2.0 margin_right = 318.0 diff --git a/assets/MManPortrait.png b/assets/MManPortrait.png new file mode 100644 index 0000000000000000000000000000000000000000..4ee8b4714157f4ce1d19845a2274183474d70615 GIT binary patch literal 732 zcmV<20wev2P)Px#1ZP1_K>z@;j|==^1poj5Fi=cXMJOmJATVe!P>2waut3PT;Mm|maHvp_$Y8MO zs8A@lcu06K5C8xG$e3W@z<>Y%0GD0vSm}K~z{ry_W5AgCGz^0j;0Gy#L#l<7Eq` z?JqYuGo3`_p1QEuhUbM4Voa47Ll}m!@KqSc5HuDp8DBvk2Pu%4VwyBs0|igPYaE(F z{8so0`uJ4g`>SA{uL>^#aTC<^34)YR2n1623i|k~fT@j?5TLLk-Yt;AnCImLg%#l; zQ2ajulZC>-l`Z6_1a%DypAcLXiuXsF5d_opK0&Y0hA9rcfIIIJz?m=nC1`hi1kfvN z^E9a!=%r@(2pAX!w!{QlHqbR!_EO`OaxJcKQ$XBqp-_BXw{2aUgl|IMndc?oRT(1+ z%HZ)7-z%mtxQqIy)Z2n_OzH7po3ua-5?>a!ZCOxA43cx7hVmAuNtj}B1Tm@%;so|x z1^NqsK?xL>AVw`3a>V=YEf@v~SVRQeuK6m+S&9%CqX>(aqv$4}p_-sAB8uaXB1Xm} zI3M3dkkUBP%Dtdh#JDU+A!mwVL^8_p5$HGp4~2lk0y!TCMeqrfBLM}d@jL`L_&18U znx*Co+m;K8gW?F-cH%w)6u?n#3YM~u)8KsOylu=?+*bf5c#R{lD+Ctz5Lm3fq^m*# zJvgnas6bHDh5G`9g%qGIRDjlPikx|w)O6v#fMD(Af+=`x6F`$)m(WK*kk;f#vw-}d zup(Lk)o&v=|McAK^wvY<5d>lNR=OgIja8>L(4Gn#~&ATmlKEDBWv|VkkOY86e O0000 void: PlayerInfo.player_health = $Health_Component.health +var portrait = preload("res://assets/MManPortrait.png") + #var sound_effects = preload("res://src/playerC/resources/sound_effects.tres") @@ -58,3 +60,6 @@ func _on_Health_Component_health_depleted(): func heylookatme(sender): print("does it work!") + UiManager.current_pane = UiManager.UI_PANES.DIALOG + UiManager.dialog_text = "Hey there. I'm glad we can see you." + UiManager.dialog_portrait = portrait diff --git a/src/singleton_autoloads/UIManager.gd b/src/singleton_autoloads/UIManager.gd new file mode 100644 index 0000000..1252910 --- /dev/null +++ b/src/singleton_autoloads/UIManager.gd @@ -0,0 +1,24 @@ +extends Node + +## This singleton sits in the middle allowing multiple game areas to call and +# manipulate the UI + +enum UI_PANES {OFF, HUD, DIALOG} + +var dialog_text = 'foo' +var dialog_portrait = preload("res://icon.png") +var current_pane = UI_PANES.OFF + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass