modification de l'UI en 3D et renommage des particules
This commit is contained in:
17
gui/game/energy_info/scripts/battery_3d.gd
Normal file
17
gui/game/energy_info/scripts/battery_3d.gd
Normal file
@@ -0,0 +1,17 @@
|
||||
@tool
|
||||
extends Node3D
|
||||
class_name Battery3d
|
||||
|
||||
const MAX_BATTERY_GAUGE_SPRITE_SCALE = 1.86
|
||||
|
||||
@export var powered : bool = true : set = set_powered
|
||||
|
||||
func _ready():
|
||||
set_powered()
|
||||
|
||||
func set_powered(_powered : bool = powered):
|
||||
var old_powered = powered
|
||||
powered = _powered
|
||||
if is_node_ready() and old_powered != powered:
|
||||
var tween : Tween = get_tree().create_tween()
|
||||
tween.tween_property(%NonPoweredBatteryGauge, "scale:y", 0. if powered else MAX_BATTERY_GAUGE_SPRITE_SCALE, 0.3)
|
||||
1
gui/game/energy_info/scripts/battery_3d.gd.uid
Normal file
1
gui/game/energy_info/scripts/battery_3d.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cgmt80g1322fn
|
||||
@@ -23,5 +23,7 @@ func update(
|
||||
|
||||
# if with_animation:
|
||||
# %EnergyAnimationPlayer.bounce()
|
||||
%EnergyInfo3d.energy = energy
|
||||
%EnergyInfo3d.max_energy = max_energy
|
||||
%EnergyCount.text = energy_count_text
|
||||
%EnergyCount.modulate = Color.WHITE if energy > 0 else Color.RED
|
||||
38
gui/game/energy_info/scripts/energy_info_3d.gd
Normal file
38
gui/game/energy_info/scripts/energy_info_3d.gd
Normal file
@@ -0,0 +1,38 @@
|
||||
@tool
|
||||
extends Node3D
|
||||
|
||||
const BATTERY_SCENE = preload("res://gui/game/energy_info/battery_3d.tscn")
|
||||
const BATTERY_SHIFT = Vector3(0,0,-1)
|
||||
|
||||
@export var max_energy : int = 0 : set = set_max_energy
|
||||
@export var energy : int = 0 : set = set_energy
|
||||
|
||||
func _ready():
|
||||
set_max_energy()
|
||||
|
||||
func set_max_energy(_max_energy : int = max_energy):
|
||||
var old = max_energy
|
||||
max_energy = _max_energy
|
||||
if is_node_ready() and max_energy != len(%Batteries.get_children()):
|
||||
for c in %Batteries.get_children():
|
||||
c.queue_free()
|
||||
|
||||
for i in range(max_energy):
|
||||
var new_battery := BATTERY_SCENE.instantiate() as Battery3d
|
||||
%Batteries.add_child(new_battery)
|
||||
new_battery.position = BATTERY_SHIFT * i
|
||||
|
||||
await get_tree().create_timer(0.1).timeout
|
||||
set_energy()
|
||||
|
||||
func set_energy(_energy : int = energy):
|
||||
energy = _energy
|
||||
if is_node_ready():
|
||||
var energy_count = 0
|
||||
for battery in %Batteries.get_children():
|
||||
if not battery.is_node_ready():
|
||||
await battery.ready
|
||||
if battery is Battery3d:
|
||||
battery.powered = energy_count < energy
|
||||
print(battery.powered)
|
||||
energy_count += 1
|
||||
1
gui/game/energy_info/scripts/energy_info_3d.gd.uid
Normal file
1
gui/game/energy_info/scripts/energy_info_3d.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://d1gwwha7syyo0
|
||||
Reference in New Issue
Block a user