Fix player height

This commit is contained in:
2026-01-25 16:06:20 -08:00
parent bba0bb5ecd
commit 79dd6eb33a
7 changed files with 53 additions and 124 deletions

View File

@@ -18,16 +18,12 @@ public interface IPlayer : IKillable, ICharacterBody3D
public void LevelUp();
public void LookUp();
public void TeleportPlayer(Transform3D newTransform);
public void Equip(EquipableItem equipable);
public void Unequip(EquipableItem equipable);
public void Reset();
public IInventory Inventory { get; }
public IHealthComponent HealthComponent { get; }
@@ -50,6 +46,4 @@ public interface IPlayer : IKillable, ICharacterBody3D
public event Action PlayerDied;
public delegate InventoryItem RerollItem(InventoryItem item);
public event Action PointUpFinished;
}

View File

@@ -177,7 +177,6 @@ public partial class Game : Node3D, IGame
_map.FloorLoaded += OnFloorLoadFinished;
_player.PlayerDied += GameOver;
_player.PointUpFinished += PointUpFinished;
GameOverMenu.NewGame += OnNewGame;
GameOverMenu.QuitGame += OnQuit;
@@ -338,7 +337,6 @@ public partial class Game : Node3D, IGame
})
.Handle((in GameState.Output.LoadNextFloor _) =>
{
_player.Reset();
LoadNextLevel.FadeOut();
EmitSignal(SignalName.OnLoadLevelRequest);
Task.Run(() => Save());

View File

@@ -30,27 +30,26 @@ public partial class Altar : Node3D, IDungeonFloor
public void OnResolved()
{
Show();
Exit.AreaEntered += Exit_AreaEntered;
NoExitArea.AreaEntered += NoExitArea_AreaEntered;
_player.PointUpFinished += _player_PointUpFinished;
FloorIsLoaded = true;
Show();
Exit.AreaEntered += Exit_AreaEntered;
NoExitArea.AreaEntered += NoExitArea_AreaEntered;
FloorIsLoaded = true;
}
private void _player_PointUpFinished()
{
_player.Activate();
_player.Activate();
}
private void NoExitArea_AreaEntered(Area3D area)
{
DialogueController.ShowDialogue(Dialogue, "no_exit");
DialogueController.ShowDialogue(Dialogue, "no_exit");
}
private void Exit_AreaEntered(Area3D area)
{
if (area.GetOwner() is IPlayer)
ExitReached();
if (area.GetOwner() is IPlayer)
ExitReached();
}
public void ExitReached() => Game.FloorExitReached();

View File

@@ -73,5 +73,5 @@ public partial class Overworld : Node3D, IDungeonFloor
public void ExitReached() => Game.FloorExitReached();
public Transform3D GetPlayerSpawnPoint() => new Transform3D(PlayerSpawnPoint.Basis, new Vector3(PlayerSpawnPoint.GlobalPosition.X, 3.5f, PlayerSpawnPoint.GlobalPosition.Z));
public Transform3D GetPlayerSpawnPoint() => new Transform3D(PlayerSpawnPoint.Basis, new Vector3(PlayerSpawnPoint.GlobalPosition.X, 2.4f, PlayerSpawnPoint.GlobalPosition.Z));
}

View File

@@ -2,9 +2,9 @@
[ext_resource type="Script" uid="uid://cuhfkyh3d7noa" path="res://src/map/dungeon/code/Overworld.cs" id="1_5hmt3"]
[ext_resource type="Texture2D" uid="uid://co6h8vyi11sl2" path="res://src/map/overworld/Models/Overworld_CLOUD_RINGS_INNER_63.png" id="2_g6b7b"]
[ext_resource type="AudioStream" uid="uid://ym4ur8a2qxhp" path="res://src/audio/amb/amb_perlin.wav" id="2_wbbo3"]
[ext_resource type="AudioStream" uid="uid://b7wxddjx3qw5o" path="res://src/audio/amb/amb_white_noise.wav" id="3_c2gp5"]
[ext_resource type="AudioStream" uid="uid://ddii3pi8x75xc" path="res://src/audio/amb/amb_beach.wav" id="3_pvi8n"]
[ext_resource type="AudioStream" uid="uid://dqmsaok6fyhe7" path="res://src/audio/AMB/amb_perlin.wav" id="2_wbbo3"]
[ext_resource type="AudioStream" uid="uid://dl07vg00se7hd" path="res://src/audio/AMB/amb_white_noise.wav" id="3_c2gp5"]
[ext_resource type="AudioStream" uid="uid://boypvgaweep8a" path="res://src/audio/AMB/amb_beach.wav" id="3_pvi8n"]
[ext_resource type="Texture2D" uid="uid://w33fr6exryiy" path="res://src/map/overworld/Models/Overworld_CLOUD_RINGS_INNER_37.png" id="3_uyygh"]
[ext_resource type="Texture2D" uid="uid://dv10yaqvp3mub" path="res://src/map/overworld/Models/Overworld_CLOUD_RINGS_INNER_71.png" id="4_r8r3k"]
[ext_resource type="Shader" uid="uid://brhf7s3riyag5" path="res://src/map/map shaders/Metal.gdshader" id="5_d1qcb"]
@@ -10898,7 +10898,7 @@ transform = Transform3D(0.99, 0, 0, 0, 0.99, 0, 0, 0, 0.99, -132.777, 0, -5.0904
[node name="PlayerSpawnPoint" type="Marker3D" parent="Spawn Points"]
unique_name_in_owner = true
transform = Transform3D(-0.0104718, 0, 0.999944, 0, 0.999999, 0, -0.999944, 0, -0.0104718, -207.082, 2.442, 35.425)
transform = Transform3D(-0.0104718, 0, 0.999944, 0, 0.999999, 0, -0.999944, 0, -0.0104718, -207.082, 2.4, 35.425)
[node name="Exit" type="Area3D" parent="Spawn Points"]
unique_name_in_owner = true

View File

@@ -71,8 +71,6 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
private bool HealthTimerIsActive = false;
#endregion
public event Action PointUpFinished;
#region Node Dependencies
[Node] private IAnimationPlayer AnimationPlayer { get; set; } = default!;
@@ -94,7 +92,6 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
[Node] private ShakeCamera _camera3D { get; set; } = default!;
[Node] private AnimationPlayer CameraAnimations { get; set; } = default!;
#endregion
@@ -129,8 +126,6 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
_itemReroller = new ItemReroller(ItemDatabase.Instance);
CameraAnimations.AnimationFinished += CameraAnimations_AnimationFinished;
Settings = new PlayerLogic.Settings() { RotationSpeed = RotationSpeed, MoveSpeed = MoveSpeed, Acceleration = Acceleration };
PlayerBinding = PlayerLogic.Bind();
@@ -194,8 +189,6 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
SetHealthTimerStatus(false);
}
public void LookUp() => CameraAnimations.Play("look_up");
public void SetHealthTimerStatus(bool isActive)
{
if (isActive)
@@ -242,11 +235,6 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
SetPhysicsProcess(false);
}
public void Reset()
{
CameraAnimations.Play("RESET");
}
public override void _Input(InputEvent @event)
{
if (@event.IsActionPressed(GameInputs.Attack))
@@ -291,11 +279,6 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
EquipmentComponent.Unequip(equipable);
}
private void CameraAnimations_AnimationFinished(StringName animName)
{
PointUpFinished?.Invoke();
}
private static Vector3 GlobalInputVector
{
get

View File

@@ -1,7 +1,8 @@
[gd_scene load_steps=1732 format=3 uid="uid://cfecvvav8kkp6"]
[gd_scene load_steps=1730 format=3 uid="uid://cfecvvav8kkp6"]
[ext_resource type="Script" uid="uid://yxmiqy7i0t7r" path="res://src/player/Player.cs" id="1_xcol5"]
[ext_resource type="PackedScene" uid="uid://didc6vnf5ftlg" path="res://src/camera/ShakeCamera.tscn" id="2_jtmj1"]
[ext_resource type="PackedScene" uid="uid://d60ka3oda7au" path="res://src/player/dont_look_in_here/tendomaya.glb" id="3_74hqa"]
[ext_resource type="AudioStream" uid="uid://cth2xgoqhdf0m" path="res://src/audio/sfx/player_hit_wall.ogg" id="3_565yv"]
[ext_resource type="Texture2D" uid="uid://c4ps26w7h3vpq" path="res://src/minimap/textures/player_map_icon.png" id="4_3ojaj"]
[ext_resource type="Shader" uid="uid://dfk3eps71yyyl" path="res://src/player/InvertColors.gdshader" id="4_v5qoq"]
@@ -46,42 +47,6 @@ material = SubResource("ShaderMaterial_jtmj1")
flip_faces = true
size = Vector2(2, 2)
[sub_resource type="Animation" id="Animation_ilpvp"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
[sub_resource type="Animation" id="Animation_ubmds"]
resource_name = "look_up"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0.785398, 0, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_sifmb"]
_data = {
&"RESET": SubResource("Animation_ilpvp"),
&"look_up": SubResource("Animation_ubmds")
}
[sub_resource type="Animation" id="Animation_3ojaj"]
resource_name = "IconAnimation"
length = 2.5
@@ -1407,120 +1372,108 @@ tracks/1/keys = {
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("../Camera/Camera3D:position")
tracks/2/path = NodePath("../Camera/Camera3D/MeshInstance3D:mesh:material:shader")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0.003, 1.2, -0.01)]
"update": 1,
"values": [null]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("../Camera/Camera3D/MeshInstance3D:mesh:material:shader")
tracks/3/path = NodePath("../Camera/Camera3D/MeshInstance3D:mesh:material:shader_parameter/colorCount")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [null]
"update": 0,
"values": [Vector3(32, 32, 32)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("../Camera/Camera3D/MeshInstance3D:mesh:material:shader_parameter/colorCount")
tracks/4/path = NodePath("../Camera/Camera3D/MeshInstance3D:mesh:material:shader_parameter/includeAlpha")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(32, 32, 32)]
"update": 1,
"values": [true]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("../Camera/Camera3D/MeshInstance3D:mesh:material:shader_parameter/includeAlpha")
tracks/5/path = NodePath("../Camera/Camera3D/MeshInstance3D:mesh:material:shader_parameter/colorShift")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
"update": 0,
"values": [Vector3(1, 1, 1)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("../Camera/Camera3D/MeshInstance3D:mesh:material:shader_parameter/colorShift")
tracks/6/path = NodePath("SubViewportContainer/SubViewport/Prosc Message:texture")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(1, 1, 1)]
"update": 1,
"values": [null]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("SubViewportContainer/SubViewport/Prosc Message:texture")
tracks/7/path = NodePath("SubViewportContainer/SubViewport/Prosc Message:modulate")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [null]
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("SubViewportContainer/SubViewport/Prosc Message:modulate")
tracks/8/path = NodePath("SubViewportContainer/SubViewport/Divinity Recall:sprite_frames")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
"update": 1,
"values": [SubResource("SpriteFrames_xtuex")]
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("SubViewportContainer/SubViewport/Divinity Recall:sprite_frames")
tracks/9/path = NodePath("SubViewportContainer/SubViewport/Divinity Recall:modulate")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [SubResource("SpriteFrames_xtuex")]
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/10/type = "value"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("SubViewportContainer/SubViewport/Divinity Recall:modulate")
tracks/10/path = NodePath("SubViewportContainer/SubViewport/Geomantic Reactor Air:sprite_frames")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/11/type = "value"
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/path = NodePath("SubViewportContainer/SubViewport/Geomantic Reactor Air:sprite_frames")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [SubResource("SpriteFrames_xbcdg")]
}
@@ -1538,7 +1491,7 @@ tracks/0/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0.003, 1.2, -0.01), Vector3(0.003, 0, -1)]
"values": [Vector3(0.003, 2.1, -0.01), Vector3(0.003, 0, -1)]
}
tracks/1/type = "value"
tracks/1/imported = false
@@ -12353,7 +12306,7 @@ script = ExtResource("1_xcol5")
[node name="MainCollision" type="CollisionShape3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(-0.0242399, 0.00507889, 0.999693, 0.000123113, 0.999987, -0.00507739, -0.999706, 0, -0.0242402, 0, 1.06447, 0.00162865)
transform = Transform3D(-0.0242399, 0.00507889, 0.999693, 0.000123113, 0.999987, -0.00507739, -0.999706, 0, -0.0242402, 0, 1.53331, 0.00162865)
shape = SubResource("CapsuleShape3D_dw45s")
[node name="HealthTimer" type="Timer" parent="."]
@@ -12365,9 +12318,9 @@ wait_time = 3.0
[node name="Camera3D" parent="Camera" instance=ExtResource("2_jtmj1")]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 0.999848, -0.0174524, 0, 0.0174524, 0.999848, 0.003, 1.2, -0.01)
transform = Transform3D(1, 0, 0, 0, 0.999848, -0.0174524, 0, 0.0174524, 0.999848, 0.003, 2.1, -0.01)
current = true
fov = 50.0
fov = 52.9
[node name="MeshInstance3D" type="MeshInstance3D" parent="Camera/Camera3D"]
extra_cull_margin = 16384.0
@@ -12376,6 +12329,9 @@ mesh = SubResource("QuadMesh_ebyyx")
[node name="player_model" type="Node3D" parent="Camera"]
transform = Transform3D(-0.015, 0, -2.26494e-09, 0, 0.015, 0, 2.26494e-09, 0, -0.015, 0, -0.268445, -0.00941753)
[node name="tendomaya" parent="Camera/player_model" instance=ExtResource("3_74hqa")]
transform = Transform3D(1.355, 0, 2.84217e-14, 0, 1.355, 0, -2.84217e-14, 0, 1.355, 3.57499e-06, 0, -23.676)
[node name="Lights" type="Node3D" parent="Camera"]
[node name="OmniLight3D" type="OmniLight3D" parent="Camera/Lights"]
@@ -12389,12 +12345,6 @@ shadow_blur = 2.038
omni_range = 6.0
omni_attenuation = 0.017
[node name="CameraAnimations" type="AnimationPlayer" parent="Camera"]
unique_name_in_owner = true
libraries = {
&"": SubResource("AnimationLibrary_sifmb")
}
[node name="Minimap" type="Node3D" parent="."]
[node name="Minimap Sprite" type="Sprite3D" parent="Minimap"]
@@ -12425,7 +12375,7 @@ collision_layer = 448
collision_mask = 388
[node name="CollisionShape3D" type="CollisionShape3D" parent="Collision/CollisionDetector"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0479561, 0.427706, -0.811867)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0244394, 1.73597, -0.811867)
shape = SubResource("BoxShape3D_hs4wf")
[node name="WallCheck" type="RigidBody3D" parent="Collision"]
@@ -12674,3 +12624,8 @@ bus = &"SFX"
[node name="WalkSFX" type="AudioStreamPlayer3D" parent="."]
unique_name_in_owner = true
stream = ExtResource("6_v7rlw")
[node name="CSGBox3D" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.84353)
visible = false
size = Vector3(1, 4.2, 1)