Aetheria/Packages/org.gamecult.aetheria.state/Runtime/AetheriaRuntimeDaemonIntentState.cs
2026-06-21 09:54:15 +01:00

90 lines
3.2 KiB
C#

using System;
using System.Collections.Generic;
#nullable enable
namespace GameCult.Aetheria.State.Verse
{
public sealed class AetheriaRuntimeDaemonIntentState
{
public AetheriaRuntimeDaemonMovementIntent? Movement { get; set; }
public List<AetheriaRuntimeDaemonWeaponGroupIntent> WeaponGroups { get; } =
new List<AetheriaRuntimeDaemonWeaponGroupIntent>();
public List<AetheriaRuntimeDaemonBehaviorIntent> Behaviors { get; } =
new List<AetheriaRuntimeDaemonBehaviorIntent>();
public List<AetheriaRuntimeDaemonConsumableIntent> Consumables { get; } =
new List<AetheriaRuntimeDaemonConsumableIntent>();
public List<AetheriaRuntimeDaemonDockingIntent> Docking { get; } =
new List<AetheriaRuntimeDaemonDockingIntent>();
public List<AetheriaRuntimeDaemonWormholeIntent> Wormholes { get; } =
new List<AetheriaRuntimeDaemonWormholeIntent>();
public List<AetheriaRuntimeDaemonTowIntent> Towing { get; } =
new List<AetheriaRuntimeDaemonTowIntent>();
public bool SensorPingRequested { get; set; }
public bool HasAny =>
Movement != null ||
SensorPingRequested ||
WeaponGroups.Count > 0 ||
Behaviors.Count > 0 ||
Consumables.Count > 0 ||
Docking.Count > 0 ||
Wormholes.Count > 0 ||
Towing.Count > 0;
}
public sealed class AetheriaRuntimeDaemonMovementIntent
{
public string ActorEntityKey { get; set; } = "";
public double DirectionX { get; set; }
public double DirectionY { get; set; }
public double Magnitude { get; set; }
}
public sealed class AetheriaRuntimeDaemonWeaponGroupIntent
{
public string ActorEntityKey { get; set; } = "";
public int WeaponGroup { get; set; } = -1;
public bool Fire { get; set; }
public bool Active { get; set; }
}
public sealed class AetheriaRuntimeDaemonBehaviorIntent
{
public string ActorEntityKey { get; set; } = "";
public int EquipmentIndex { get; set; } = -1;
public int BehaviorIndex { get; set; } = -1;
public bool Active { get; set; }
}
public sealed class AetheriaRuntimeDaemonConsumableIntent
{
public string ActorEntityKey { get; set; } = "";
public string ItemKey { get; set; } = "";
}
public sealed class AetheriaRuntimeDaemonDockingIntent
{
public string ActorEntityKey { get; set; } = "";
public string TargetEntityKey { get; set; } = "";
public bool Dock { get; set; }
public bool Undock { get; set; }
}
public sealed class AetheriaRuntimeDaemonWormholeIntent
{
public string ActorEntityKey { get; set; } = "";
public int TargetZoneIndex { get; set; } = -1;
public double PositionX { get; set; }
public double PositionY { get; set; }
}
public sealed class AetheriaRuntimeDaemonTowIntent
{
public string ActorEntityKey { get; set; } = "";
public string StationEntityKey { get; set; } = "";
public int TargetZoneIndex { get; set; } = -1;
public double PositionX { get; set; }
public double PositionY { get; set; }
}
}