Major Changes including Options menu, logic blocks, modding system, and more.
This commit is contained in:
25
RTSCamera.cs
25
RTSCamera.cs
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user