toggle buttons
This commit is contained in:
parent
c90216eb68
commit
e5555220a7
64
scenes/CampusController.cs
Normal file
64
scenes/CampusController.cs
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
public partial class CampusController : Node2D
|
||||||
|
{
|
||||||
|
private Control _taskContainer;
|
||||||
|
private Control _logContainer;
|
||||||
|
private Button _taskToggle;
|
||||||
|
private Button _logToggle;
|
||||||
|
|
||||||
|
// Called when the node enters the scene tree for the first time.
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
_taskContainer = GetNode<Control>("Task");
|
||||||
|
_logContainer = GetNode<Control>("Log");
|
||||||
|
|
||||||
|
// Path to buttons based on scene structure
|
||||||
|
_taskToggle = GetNode<Button>("TopBar/HBox/CC1/TaskToggle");
|
||||||
|
_logToggle = GetNode<Button>("TopBar/HBox/CC2/LogToggle");
|
||||||
|
|
||||||
|
// Sync initial state
|
||||||
|
_taskToggle.ButtonPressed = _taskContainer.Visible;
|
||||||
|
_logToggle.ButtonPressed = _logContainer.Visible;
|
||||||
|
|
||||||
|
_taskToggle.Toggled += OnTaskToggled;
|
||||||
|
_logToggle.Toggled += OnLogToggled;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
public override void _Process(double delta)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnTaskToggled(bool pressed)
|
||||||
|
{
|
||||||
|
AnimateVisibility(_taskContainer, pressed);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnLogToggled(bool pressed)
|
||||||
|
{
|
||||||
|
AnimateVisibility(_logContainer, pressed);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AnimateVisibility(Control container, bool visible)
|
||||||
|
{
|
||||||
|
var tween = CreateTween();
|
||||||
|
if (visible)
|
||||||
|
{
|
||||||
|
if (!container.Visible)
|
||||||
|
{
|
||||||
|
var col = container.Modulate;
|
||||||
|
col.A = 0;
|
||||||
|
container.Modulate = col;
|
||||||
|
container.Visible = true;
|
||||||
|
}
|
||||||
|
tween.TweenProperty(container, "modulate:a", 1.0f, 0.2f);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tween.TweenProperty(container, "modulate:a", 0.0f, 0.2f);
|
||||||
|
tween.TweenCallback(Callable.From(() => container.Visible = false));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
1
scenes/CampusController.cs.uid
Normal file
1
scenes/CampusController.cs.uid
Normal file
@ -0,0 +1 @@
|
|||||||
|
uid://ew4ig6hnrsau
|
||||||
@ -1,5 +1,6 @@
|
|||||||
[gd_scene load_steps=7 format=3 uid="uid://b0cu4fa7vohmw"]
|
[gd_scene load_steps=8 format=3 uid="uid://b0cu4fa7vohmw"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://ew4ig6hnrsau" path="res://scenes/CampusController.cs" id="1_controller"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cf6b1t8pujosf" path="res://scenes/ui-elements/log_panel.tscn" id="1_hi2p7"]
|
[ext_resource type="PackedScene" uid="uid://cf6b1t8pujosf" path="res://scenes/ui-elements/log_panel.tscn" id="1_hi2p7"]
|
||||||
[ext_resource type="Texture2D" uid="uid://brmthiu6rxhqc" path="res://res_src/campus.png" id="1_p4tmp"]
|
[ext_resource type="Texture2D" uid="uid://brmthiu6rxhqc" path="res://res_src/campus.png" id="1_p4tmp"]
|
||||||
[ext_resource type="PackedScene" uid="uid://db2qcx61nc0q4" path="res://scenes/ui-elements/top-bar.tscn" id="2_p4tmp"]
|
[ext_resource type="PackedScene" uid="uid://db2qcx61nc0q4" path="res://scenes/ui-elements/top-bar.tscn" id="2_p4tmp"]
|
||||||
@ -1993,12 +1994,13 @@ use_texture_padding = false
|
|||||||
sources/0 = SubResource("TileSetAtlasSource_4gjr3")
|
sources/0 = SubResource("TileSetAtlasSource_4gjr3")
|
||||||
|
|
||||||
[node name="Node2D" type="Node2D"]
|
[node name="Node2D" type="Node2D"]
|
||||||
|
script = ExtResource("1_controller")
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
texture = ExtResource("1_p4tmp")
|
texture = ExtResource("1_p4tmp")
|
||||||
centered = false
|
centered = false
|
||||||
|
|
||||||
[node name="PanelContainer2" parent="." instance=ExtResource("1_hi2p7")]
|
[node name="Log" parent="." instance=ExtResource("1_hi2p7")]
|
||||||
offset_left = 655.0
|
offset_left = 655.0
|
||||||
offset_top = 375.0
|
offset_top = 375.0
|
||||||
offset_right = 955.0
|
offset_right = 955.0
|
||||||
@ -2007,7 +2009,7 @@ offset_bottom = 535.0
|
|||||||
[node name="TopBar" parent="." instance=ExtResource("2_p4tmp")]
|
[node name="TopBar" parent="." instance=ExtResource("2_p4tmp")]
|
||||||
offset_bottom = 55.0
|
offset_bottom = 55.0
|
||||||
|
|
||||||
[node name="PanelContainer" parent="." instance=ExtResource("3_4gjr3")]
|
[node name="Task" parent="." instance=ExtResource("3_4gjr3")]
|
||||||
offset_left = 4.0
|
offset_left = 4.0
|
||||||
offset_top = 216.0
|
offset_top = 216.0
|
||||||
offset_right = 305.0
|
offset_right = 305.0
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user