Keymapping menu

This commit is contained in:
Marco 2025-03-26 18:47:17 +01:00
commit b76427e3ca
14 changed files with 137 additions and 34 deletions

View file

@ -1,6 +1,7 @@
[gd_resource type="Resource" script_class="BossPhase" load_steps=4 format=3 uid="uid://da1vjfavqs7u2"]
[gd_resource type="Resource" script_class="BossPhase" load_steps=5 format=3 uid="uid://da1vjfavqs7u2"]
[ext_resource type="Script" uid="uid://cdd6q2h0t1hhq" path="res://Scripts/Resources/BossPhase.cs" id="1_7asq8"]
[ext_resource type="Script" uid="uid://b5s5mjuk1rng5" path="res://Scripts/Resources/TimeModifier.cs" id="1_ykywc"]
[ext_resource type="Script" uid="uid://c0ndqalsc4jve" path="res://Scripts/AttackPatterns/SpiralPattern.cs" id="1_ys2v3"]
[sub_resource type="Resource" id="Resource_q4pcc"]
@ -21,7 +22,7 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("1_ykywc")]([])
WaitForCompletion = true
[resource]

View file

@ -75,7 +75,7 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("2_rhq2s")]([])
WaitForCompletion = true
[sub_resource type="Resource" id="Resource_1yaaf"]
@ -117,7 +117,7 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("2_rhq2s")]([])
WaitForCompletion = false
[resource]

View file

@ -1,10 +1,11 @@
[gd_resource type="Resource" script_class="BossPhase" load_steps=41 format=3 uid="uid://ddb5dqocmk6x7"]
[gd_resource type="Resource" script_class="BossPhase" load_steps=42 format=3 uid="uid://ddb5dqocmk6x7"]
[ext_resource type="PackedScene" uid="uid://dh81snen2f6bf" path="res://Scenes/Weapons/Bullets/enemyBullet_rice_blue_small.tscn" id="1_as8n2"]
[ext_resource type="Script" uid="uid://cdd6q2h0t1hhq" path="res://Scripts/Resources/BossPhase.cs" id="1_fdlxv"]
[ext_resource type="Script" uid="uid://dka43xos84kbw" path="res://Scripts/Resources/Modifiers/DelayedRotationModifier.cs" id="2_onj13"]
[ext_resource type="Script" uid="uid://c0ndqalsc4jve" path="res://Scripts/AttackPatterns/SpiralPattern.cs" id="2_wkmhk"]
[ext_resource type="Script" uid="uid://dslyrfcej3g2n" path="res://Scripts/Resources/BulletResource.cs" id="3_ow5fu"]
[ext_resource type="Script" uid="uid://b5s5mjuk1rng5" path="res://Scripts/Resources/TimeModifier.cs" id="4_3qh6s"]
[ext_resource type="PackedScene" uid="uid://ctrk5qrb7n3fm" path="res://Scenes/Weapons/Bullets/enemyBullet_rice_green_small.tscn" id="4_tek7n"]
[ext_resource type="PackedScene" uid="uid://chowj81jsdvcx" path="res://Scenes/Weapons/Bullets/enemyBullet_rice_red_small.tscn" id="5_n4xqo"]
[ext_resource type="Script" uid="uid://bhc7rbcico4kp" path="res://Scripts/Resources/SimpleMovementPattern.cs" id="6_bw7cj"]
@ -51,7 +52,7 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("4_3qh6s")]([])
WaitForCompletion = false
[sub_resource type="Resource" id="Resource_pbgtt"]
@ -93,7 +94,7 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("4_3qh6s")]([])
WaitForCompletion = true
[sub_resource type="Resource" id="Resource_w7b0n"]
@ -128,7 +129,7 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("4_3qh6s")]([])
WaitForCompletion = false
[sub_resource type="Resource" id="Resource_3iv0j"]
@ -163,7 +164,7 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("4_3qh6s")]([])
WaitForCompletion = true
[sub_resource type="Resource" id="Resource_5jr31"]
@ -198,7 +199,7 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("4_3qh6s")]([])
WaitForCompletion = false
[sub_resource type="Resource" id="Resource_mg2qy"]
@ -233,7 +234,7 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("4_3qh6s")]([])
WaitForCompletion = true
[sub_resource type="Resource" id="Resource_erexw"]
@ -290,7 +291,7 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("4_3qh6s")]([])
WaitForCompletion = true
[sub_resource type="Resource" id="Resource_l05f2"]
@ -333,7 +334,7 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("4_3qh6s")]([])
WaitForCompletion = true
[sub_resource type="Resource" id="Resource_q7cr0"]
@ -376,7 +377,7 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("4_3qh6s")]([])
WaitForCompletion = true
[sub_resource type="Resource" id="Resource_8kl6r"]
@ -419,7 +420,7 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("4_3qh6s")]([])
WaitForCompletion = true
[sub_resource type="Resource" id="Resource_ha2b6"]

View file

@ -1,4 +1,4 @@
[gd_resource type="Resource" script_class="BossPhase" load_steps=23 format=3 uid="uid://ccj0cqbveey8c"]
[gd_resource type="Resource" script_class="BossPhase" load_steps=24 format=3 uid="uid://ccj0cqbveey8c"]
[ext_resource type="Script" uid="uid://bhc7rbcico4kp" path="res://Scripts/Resources/SimpleMovementPattern.cs" id="1_lw82i"]
[ext_resource type="PackedScene" uid="uid://dohakkayqj4w2" path="res://Scenes/Weapons/Bullets/enemyBullet_green.tscn" id="1_o4um1"]
@ -7,6 +7,7 @@
[ext_resource type="Script" uid="uid://cdd6q2h0t1hhq" path="res://Scripts/Resources/BossPhase.cs" id="3_o6234"]
[ext_resource type="Script" uid="uid://dslyrfcej3g2n" path="res://Scripts/Resources/BulletResource.cs" id="4_juoir"]
[ext_resource type="PackedScene" uid="uid://by2rk6gx67f7e" path="res://Scenes/Weapons/Bullets/enemyBullet_yellow.tscn" id="4_ruawj"]
[ext_resource type="Script" uid="uid://b5s5mjuk1rng5" path="res://Scripts/Resources/TimeModifier.cs" id="5_763gk"]
[ext_resource type="Script" uid="uid://cbafxkmgns6ry" path="res://Scripts/Resources/PatternGroup.cs" id="6_6mg1u"]
[sub_resource type="Resource" id="Resource_upj22"]
@ -67,7 +68,7 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("5_763gk")]([])
WaitForCompletion = true
[sub_resource type="Resource" id="Resource_e6jj0"]
@ -111,7 +112,7 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("5_763gk")]([])
WaitForCompletion = true
[sub_resource type="Resource" id="Resource_gm1rv"]

View file

@ -1,5 +1,6 @@
[gd_resource type="Resource" script_class="EnemyResource" load_steps=3 format=3 uid="uid://cfdvg162u65sr"]
[gd_resource type="Resource" script_class="EnemyResource" load_steps=4 format=3 uid="uid://cfdvg162u65sr"]
[ext_resource type="Script" uid="uid://cq65aed620ijo" path="res://Scripts/Resources/Loot/LootDrop.cs" id="1_f3huq"]
[ext_resource type="Resource" uid="uid://cdfmedtgp2rcn" path="res://Resources/Weapons/EnemyWeapon.tres" id="7_filx8"]
[ext_resource type="Script" uid="uid://cd5o0ceb50jki" path="res://Scripts/Resources/EnemyResource.cs" id="8_x8scf"]
@ -11,7 +12,7 @@ PrefabPath = &"res://Scenes/Actors/Thermathron.tscn"
MaxHealth = 8.0
MovementSpeed = 38.0
Weapon = ExtResource("7_filx8")
LootDrops = []
LootDrops = Array[ExtResource("1_f3huq")]([])
PlayerDetectionRange = 90.0
ViewRange = 120.0
AlarmReactRange = 200.0
@ -19,4 +20,5 @@ PlayerDisengageRange = 500.0
StrafeSpeed = 25.0
MaxStrafeDistance = 0.0
MinStrafeDistance = 0.0
ResponseTime = 0.5
metadata/_custom_type_script = "uid://cd5o0ceb50jki"

View file

@ -1,5 +1,6 @@
[gd_resource type="Resource" script_class="EnemyResource" load_steps=3 format=3 uid="uid://ysd6wl2gmdhn"]
[gd_resource type="Resource" script_class="EnemyResource" load_steps=4 format=3 uid="uid://ysd6wl2gmdhn"]
[ext_resource type="Script" uid="uid://cq65aed620ijo" path="res://Scripts/Resources/Loot/LootDrop.cs" id="1_sma76"]
[ext_resource type="Resource" uid="uid://dyaxm3st70sh6" path="res://Resources/Weapons/Enemy/TurretWeapon.tres" id="1_yap8t"]
[ext_resource type="Script" uid="uid://cd5o0ceb50jki" path="res://Scripts/Resources/EnemyResource.cs" id="2_sma76"]
@ -11,7 +12,7 @@ PrefabPath = &"res://Scenes/Actors/Turret360.tscn"
MaxHealth = 14.0
MovementSpeed = 0.0
Weapon = ExtResource("1_yap8t")
LootDrops = []
LootDrops = Array[ExtResource("1_sma76")]([])
PlayerDetectionRange = 90.0
ViewRange = 120.0
AlarmReactRange = 200.0
@ -19,4 +20,5 @@ PlayerDisengageRange = 500.0
StrafeSpeed = 0.0
MaxStrafeDistance = 0.0
MinStrafeDistance = 0.0
ResponseTime = 0.5
metadata/_custom_type_script = "uid://cd5o0ceb50jki"

View file

@ -1,6 +1,7 @@
[gd_resource type="Resource" script_class="SpiralPattern" load_steps=3 format=3 uid="uid://jjky5fqn74qk"]
[gd_resource type="Resource" script_class="SpiralPattern" load_steps=4 format=3 uid="uid://jjky5fqn74qk"]
[ext_resource type="Resource" uid="uid://bifeoxb6nfykq" path="res://Resources/Bullets/Boss/Rumia/Rumia_Red_Chase_Bullet.tres" id="1_lasr5"]
[ext_resource type="Script" uid="uid://b5s5mjuk1rng5" path="res://Scripts/Resources/TimeModifier.cs" id="2_ho5ah"]
[ext_resource type="Script" uid="uid://c0ndqalsc4jve" path="res://Scripts/AttackPatterns/SpiralPattern.cs" id="3_ryait"]
[resource]
@ -22,5 +23,5 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("2_ho5ah")]([])
WaitForCompletion = true

View file

@ -1,8 +1,9 @@
[gd_resource type="Resource" script_class="PatternGroup" load_steps=12 format=3 uid="uid://du2kuv125vbrx"]
[gd_resource type="Resource" script_class="PatternGroup" load_steps=13 format=3 uid="uid://du2kuv125vbrx"]
[ext_resource type="PackedScene" uid="uid://dre2wvw4pa3hc" path="res://Scenes/Weapons/Bullets/enemyBullet_mid_blue.tscn" id="1_4xpdn"]
[ext_resource type="Script" uid="uid://c0ndqalsc4jve" path="res://Scripts/AttackPatterns/SpiralPattern.cs" id="2_ee42k"]
[ext_resource type="Script" uid="uid://dslyrfcej3g2n" path="res://Scripts/Resources/BulletResource.cs" id="2_gfvud"]
[ext_resource type="Script" uid="uid://b5s5mjuk1rng5" path="res://Scripts/Resources/TimeModifier.cs" id="3_fgjeq"]
[ext_resource type="PackedScene" uid="uid://dohakkayqj4w2" path="res://Scenes/Weapons/Bullets/enemyBullet_green.tscn" id="3_gr7a3"]
[ext_resource type="Script" uid="uid://cbafxkmgns6ry" path="res://Scripts/Resources/PatternGroup.cs" id="3_jvysx"]
@ -38,7 +39,7 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("3_fgjeq")]([])
WaitForCompletion = true
[sub_resource type="Resource" id="Resource_wtj61"]
@ -73,7 +74,7 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("3_fgjeq")]([])
WaitForCompletion = true
[sub_resource type="Resource" id="Resource_qbq0m"]
@ -108,7 +109,7 @@ DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = []
TimeModifiers = Array[ExtResource("3_fgjeq")]([])
WaitForCompletion = true
[resource]

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=10 format=3 uid="uid://bnhcgsyh6wfo3"]
[gd_scene load_steps=11 format=3 uid="uid://bnhcgsyh6wfo3"]
[ext_resource type="Theme" uid="uid://dnsadvmunm76k" path="res://Resources/Styles/MainMenuButtons.tres" id="1_il8fq"]
[ext_resource type="Script" uid="uid://c1874e6ryvd1g" path="res://Scripts/UI/OptionsMenu.cs" id="1_mpohc"]
@ -8,6 +8,7 @@
[ext_resource type="PackedScene" uid="uid://cwhm3802fhdax" path="res://Scenes/HUD/Volume_Slider.tscn" id="6_x23el"]
[ext_resource type="LabelSettings" uid="uid://buk3e7bbwmnv1" path="res://Resources/Styles/Hud_Text_Style.tres" id="7_1neg2"]
[ext_resource type="Script" uid="uid://nqkbxr8s5oqn" path="res://Scripts/UI/KeyRemapping.cs" id="7_mx1xt"]
[ext_resource type="PackedScene" uid="uid://j5g536m85lr8" path="res://Scenes/HUD/UiElements/KeyRemappingItem.tscn" id="8_ijs0n"]
[sub_resource type="LabelSettings" id="LabelSettings_4kao5"]
font = ExtResource("2_l5i2j")
@ -132,12 +133,19 @@ text = "Sound Effects Volume"
layout_mode = 2
AudioBusName = &"Effects"
[node name="KeyRemapping" type="VBoxContainer" parent="ScrollContainer/VBoxContainer"]
[node name="KeyRemapping" type="VBoxContainer" parent="ScrollContainer/VBoxContainer" node_paths=PackedStringArray("KeysContainer")]
layout_mode = 2
script = ExtResource("7_mx1xt")
KeysDict = Dictionary[StringName, StringName]({
&"ghg": &"hgdf"
&"Use": &"Interact",
&"inventory": &"Inventory",
&"pause": &"Pause",
&"scan": &"Scan",
&"shoot": &"Shoot",
&"strafe": &"Strafe"
})
KeysContainer = NodePath("VBoxContainer")
ItemPrefab = ExtResource("8_ijs0n")
[node name="Label" type="Label" parent="ScrollContainer/VBoxContainer/KeyRemapping"]
layout_mode = 2

View file

@ -0,0 +1,27 @@
[gd_scene load_steps=4 format=3 uid="uid://j5g536m85lr8"]
[ext_resource type="Script" uid="uid://dn52llyqx84e0" path="res://Scripts/UI/KeyRemappingItem.cs" id="1_88k7i"]
[ext_resource type="LabelSettings" uid="uid://buk3e7bbwmnv1" path="res://Resources/Styles/Hud_Text_Style.tres" id="2_b0qgl"]
[ext_resource type="Theme" uid="uid://dnsadvmunm76k" path="res://Resources/Styles/MainMenuButtons.tres" id="3_b0qgl"]
[node name="HBoxContainer" type="HBoxContainer" node_paths=PackedStringArray("NameLabel", "InputLabel")]
script = ExtResource("1_88k7i")
NameLabel = NodePath("ActionName")
InputLabel = NodePath("Key")
[node name="ActionName" type="Label" parent="."]
layout_mode = 2
text = "Asdf"
label_settings = ExtResource("2_b0qgl")
[node name="Key" type="Label" parent="."]
layout_mode = 2
text = "A"
label_settings = ExtResource("2_b0qgl")
[node name="Button" type="Button" parent="."]
layout_mode = 2
theme = ExtResource("3_b0qgl")
text = "Remap"
[connection signal="pressed" from="Button" to="." method="StartRemap"]

View file

@ -116,7 +116,7 @@
[sub_resource type="Resource" id="Resource_6sau4"]
script = ExtResource("7_l32kg")
EggIndex = 0
StartingEquipment = [ExtResource("6_khabp")]
StartingEquipment = Array[ExtResource("6_8tdlb")]([ExtResource("6_khabp")])
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ksslq"]
size = Vector2(184, 46.5)
@ -1082,7 +1082,7 @@ position = Vector2(-2000, -736)
[node name="ControlPad8" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("12_hfkf1")]
position = Vector2(-2027, -735)
Targets = [NodePath("../HorizontalForceField")]
Requirements = [ExtResource("84_ma1ta")]
Requirements = Array[ExtResource("6_8tdlb")]([ExtResource("84_ma1ta")])
[node name="Ammo6" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("34_17pjh")]
position = Vector2(-872, -220)

View file

@ -1,15 +1,30 @@
using Godot;
using System;
using Cirno.Scripts.UI;
using Godot.Collections;
public partial class KeyRemapping : Container
{
[Export] public Dictionary<StringName, StringName> KeysDict { get; private set; } = new();
[Export] public Container KeysContainer { get; private set; }
[Export] public PackedScene ItemPrefab { get; private set; }
public override void _Ready()
{
var remap = GetNode("/root/Remap");
//var remap = GetNode("/root/Remap");
//InputEvent.
foreach (var element in KeysDict)
{
var item = ItemPrefab.Instantiate<KeyRemappingItem>();
item.KeyId = element.Key;
item.KeyName = element.Value;
KeysContainer.AddChild(item);
}
}
}

View file

@ -0,0 +1,43 @@
using System.Linq;
using Godot;
namespace Cirno.Scripts.UI;
public partial class KeyRemappingItem : HBoxContainer
{
public StringName KeyId { get; set; }
public StringName KeyName { get; set; }
[Export] public Label NameLabel { get; private set; }
[Export] public Label InputLabel { get; private set; }
private bool _active = false;
public override void _Ready()
{
NameLabel.Text = KeyName;
var actions = InputMap.GetActions();
var action = actions.FirstOrDefault(x => x == KeyId);
var events = InputMap.ActionGetEvents(action);
InputLabel.Text = string.Join(",", events.Select(x => x.AsText()));
}
public void StartRemap()
{
_active = true;
}
public override void _Input(InputEvent e)
{
if (!_active) return;
if (e is InputEventKey keyEvent && keyEvent.Pressed)
{
GD.Print(keyEvent.Keycode);
InputLabel.Text = keyEvent.Keycode.ToString();
_active = false;
}
}
}

View file

@ -0,0 +1 @@
uid://dn52llyqx84e0