Add recalling and summoning table

This commit is contained in:
Sofia 2024-08-20 17:17:44 +03:00
parent d0fbc077ec
commit 5331087313
4 changed files with 40 additions and 1 deletions

View File

@ -166,6 +166,11 @@ zoom_orbit_in={
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":16,"position":Vector2(336, 24),"global_position":Vector2(350, 94),"factor":1.0,"button_index":5,"canceled":false,"pressed":true,"double_click":false,"script":null)
]
}
toggle_table={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null)
]
}
[internationalization]

View File

@ -74,8 +74,9 @@ size = Vector3(87.9724, 96.1174, 91.8458)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0415039, 58.3319, 0.0198975)
size = Vector3(43.3174, 26.5295, 43.4319)
[node name="Player" parent="." instance=ExtResource("10_3xiy2")]
[node name="Player" parent="." node_paths=PackedStringArray("Table") instance=ExtResource("10_3xiy2")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.332064, 1.5426, 3.65156)
Table = NodePath("../table")
[node name="table" parent="." node_paths=PackedStringArray("Hud", "TrenchbroomMap") instance=ExtResource("11_7trvw")]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 2.83695, 0, -4.36558)

View File

@ -29,6 +29,9 @@ namespace Gmtk24 {
public AudioStreamPlayer3D FootstepPlayer;
[Export]
public float FootstepNoiseInterval = 0.25f;
[ExportCategory("World")]
[Export]
public Table Table;
private float CurrentYaw = 0;
private float CurrentPitch = 0;
@ -62,6 +65,16 @@ namespace Gmtk24 {
}
GetViewport().SetInputAsHandled();
}
if (@event.IsActionPressed("toggle_table") && !Table.Orbit.IsEnabled) {
if (Table.IsEnabled)
Table.DisableTable();
else {
var forward = Eye.Basis * Vector3.Forward;
forward.Y = 0;
Table.SpawnTable(Position + forward.Normalized() * 2, Position);
}
}
}
public override void _Process(double delta) {

View File

@ -1,4 +1,5 @@
using Godot;
using System;
using System.Linq;
namespace Gmtk24 {
@ -36,6 +37,8 @@ namespace Gmtk24 {
public BuildingBlock GhostBlock;
private Vector3 GhostBlockNormal;
public bool IsEnabled { get => Visible == true; }
// Called when the node enters the scene tree for the first time.
public override void _Ready() {
Orbit.Hud = Hud;
@ -169,5 +172,22 @@ namespace Gmtk24 {
Plane.Visible = false;
Plane.ProcessMode = ProcessModeEnum.Disabled;
}
public void DisableTable() {
Visible = false;
ProcessMode = ProcessModeEnum.Disabled;
}
public void SpawnTable(Vector3 position, Vector3 lookAt) {
if (IsEnabled)
return;
Visible = true;
ProcessMode = ProcessModeEnum.Pausable;
Position = position;
lookAt.Y = 0;
LookAt(lookAt);
Rotate(Vector3.Up, (float)Math.PI / 2);
}
}
}