diff --git a/.idea/.idea.Aetheria-Economy/.idea/contentModel.xml b/.idea/.idea.Aetheria-Economy/.idea/contentModel.xml
index 4d1d47022..b9b4754f5 100644
--- a/.idea/.idea.Aetheria-Economy/.idea/contentModel.xml
+++ b/.idea/.idea.Aetheria-Economy/.idea/contentModel.xml
@@ -1282,6 +1282,7 @@
+
diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity
index 151cba81c..dff8a9e10 100644
--- a/Assets/Scenes/Main.unity
+++ b/Assets/Scenes/Main.unity
@@ -8351,7 +8351,7 @@ MonoBehaviour:
m_HandleRect: {fileID: 1082785902}
m_Direction: 0
m_Value: 0
- m_Size: 1
+ m_Size: 0.99999994
m_NumberOfSteps: 0
m_OnValueChanged:
m_PersistentCalls:
@@ -24596,8 +24596,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 943.50006, y: 0}
- m_SizeDelta: {x: 1887.0001, y: 0}
+ m_AnchoredPosition: {x: 943.5, y: 0}
+ m_SizeDelta: {x: 1887, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1101630447
MonoBehaviour:
diff --git a/Assets/Scripts/Editor/DatabaseInspector.cs b/Assets/Scripts/Editor/DatabaseInspector.cs
index ed6f12ccb..ffeb476ba 100644
--- a/Assets/Scripts/Editor/DatabaseInspector.cs
+++ b/Assets/Scripts/Editor/DatabaseInspector.cs
@@ -642,6 +642,12 @@ public class DatabaseInspector : EditorWindow
using (var h = new HorizontalScope(_list.ListItemStyle))
{
var entry = DatabaseCache.Get(ingredient.Key);
+ if (entry == null)
+ {
+ value.Remove(ingredient.Key);
+ GUI.changed = true;
+ return;
+ }
if(entry is INamedEntry named)
GUILayout.Label(named.EntryName);
else GUILayout.Label(entry.ID.ToString());
diff --git a/Assets/Scripts/ServerShared/Agents/AgentTask.cs b/Assets/Scripts/ServerShared/Agents/AgentTask.cs
index cdb83ca5c..0fc930e53 100644
--- a/Assets/Scripts/ServerShared/Agents/AgentTask.cs
+++ b/Assets/Scripts/ServerShared/Agents/AgentTask.cs
@@ -1,10 +1,13 @@
-using System.Collections;
+using System;
+using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public abstract class AgentTask
{
-
+ public abstract AgentJob JobType { get; }
+ public int Priority;
+ public Guid Zone;
}
public enum AgentJob
@@ -13,5 +16,6 @@ public enum AgentJob
Haul,
Tow,
Defend,
- Attack
+ Attack,
+ Explore
}
diff --git a/Assets/Scripts/ServerShared/Agents/StationTowing.cs b/Assets/Scripts/ServerShared/Agents/StationTowing.cs
new file mode 100644
index 000000000..d4fc5d707
--- /dev/null
+++ b/Assets/Scripts/ServerShared/Agents/StationTowing.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class StationTowing : AgentTask
+{
+ public override AgentJob JobType => AgentJob.Tow;
+
+ private Guid _entity;
+ private Guid _targetOrbit;
+
+ public StationTowing(Guid zone, Guid entity, Guid targetOrbit)
+ {
+ Zone = zone;
+ _entity = entity;
+ _targetOrbit = targetOrbit;
+ }
+}
diff --git a/Assets/Scripts/ServerShared/Agents/StationTowing.cs.meta b/Assets/Scripts/ServerShared/Agents/StationTowing.cs.meta
new file mode 100644
index 000000000..2b97242c4
--- /dev/null
+++ b/Assets/Scripts/ServerShared/Agents/StationTowing.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c8845fb5e89a4bf46abdf94517139172
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs
index cb610b272..8d63329b4 100644
--- a/Assets/Scripts/ServerShared/Entity.cs
+++ b/Assets/Scripts/ServerShared/Entity.cs
@@ -3,31 +3,37 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
+using JsonKnownTypes;
+using MessagePack;
+using Newtonsoft.Json;
using Unity.Mathematics;
using static Unity.Mathematics.math;
-public class Entity
+[MessagePackObject,
+ JsonObject(MemberSerialization.OptIn), JsonConverter(typeof(JsonKnownTypesConverter))]
+public class Entity : DatabaseEntry, IMessagePackSerializationCallbackReceiver
{
- public Dictionary AxisOverrides = new Dictionary();
- public readonly Dictionary