Major Changes including Options menu, logic blocks, modding system, and more.

This commit is contained in:
2026-08-06 01:28:52 -04:00
parent c9ac4641a0
commit b58acff195
90 changed files with 4065 additions and 485 deletions

View File

@@ -1,8 +1,20 @@
using Godot;
using System;
using SJK.Math;
using Chickensoft.SaveFileBuilder;
using Chickensoft.Introspection;
using Chickensoft.Serialization;
public partial class RTSCamera : Node3D
[Meta, Id("save_data")]
public partial class SaveData
{
[Save("player_transform")]
public Transform3D Transform3D {get;set;}
[Save("player_camera")]
public Transform3D CameraTransform {get;set;}
}
public partial class RTSCamera : Node3D, ISaveable<SaveData>
{
[Export]
public Camera3D camera;
@@ -53,7 +65,7 @@ public partial class RTSCamera : Node3D
{
CancelUpdateFunc();
}
GD.PrintS(positionStartPos,positionOffsetPos,lastTransalation,LastMouseGroundPlanePositon,LastMousePostition,cameraTargetOffset,scrollAmount);
// GD.PrintS(positionStartPos,positionOffsetPos,lastTransalation,LastMouseGroundPlanePositon,LastMousePostition,cameraTargetOffset,scrollAmount);
Update_CurrentFunc();
Update_CameraScroll((float)delta);
LastMousePostition = GetViewport().GetMousePosition();
@@ -113,7 +125,7 @@ public partial class RTSCamera : Node3D
{
cameraTargetOffset += dir * scrollAmount;
}
DebugDraw3D.DrawArrow(Vector3.Zero,cameraTargetOffset);
// DebugDraw3D.DrawArrow(Vector3.Zero,cameraTargetOffset);
Vector3 lastCameraPosition = camera.Position;
camera.Position = camera.Position.Lerp(camera.Position + cameraTargetOffset, delta);
cameraTargetOffset -= camera.Position - lastCameraPosition;
@@ -153,6 +165,13 @@ public partial class RTSCamera : Node3D
);
LastMousePostition = hitpos = GetViewport().GetMousePosition();
}
public SaveData Save() => new(){Transform3D = Transform, CameraTransform = camera.Transform};
public void Load(in SaveData data)
{
Transform = data.Transform3D;
camera.Transform = data.CameraTransform;
}
}
public static partial class SJKMath