6
2026-01-24 12:49:55 +03:00

108 lines
2.5 KiB
C#

using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
namespace Content.Shared._Horizon.BluespaceHarvester;
[Serializable, NetSerializable]
public sealed class BluespaceHarvesterBoundUserInterfaceState : BoundUserInterfaceState
{
public readonly int TargetLevel;
public readonly int CurrentLevel;
public readonly int MaxLevel;
public readonly uint PowerUsage;
public readonly uint PowerUsageNext;
public readonly int Points;
public readonly int TotalPoints;
public readonly int PointsGen;
public readonly List<BluespaceHarvesterCategoryInfo> Categories;
public BluespaceHarvesterBoundUserInterfaceState(int targetLevel, int currentLevel, int maxLevel, uint powerUsage, uint powerUsageNext, int points, int totalPoints, int pointsGen, List<BluespaceHarvesterCategoryInfo> categories)
{
TargetLevel = targetLevel;
CurrentLevel = currentLevel;
MaxLevel = maxLevel;
PowerUsage = powerUsage;
PowerUsageNext = powerUsageNext;
Points = points;
TotalPoints = totalPoints;
PointsGen = pointsGen;
Categories = categories;
}
}
[Serializable, NetSerializable]
public sealed class BluespaceHarvesterTargetLevelMessage : BoundUserInterfaceMessage
{
public readonly int TargetLevel;
public BluespaceHarvesterTargetLevelMessage(int targetLevel)
{
TargetLevel = targetLevel;
}
}
[Serializable, NetSerializable]
public sealed class BluespaceHarvesterBuyMessage : BoundUserInterfaceMessage
{
public readonly BluespaceHarvesterCategory Category;
public BluespaceHarvesterBuyMessage(BluespaceHarvesterCategory category)
{
Category = category;
}
}
[Serializable, NetSerializable]
public enum BluespaceHarvesterUiKey : byte
{
Key,
}
[Serializable, NetSerializable]
public enum BluespaceHarvesterVisuals : byte
{
Tap0,
Tap1,
Tap2,
Tap3,
Tap4,
Tap5,
TapRedspace,
}
[Serializable, NetSerializable]
public enum BluespaceHarvesterVisualLayers : byte
{
Base,
Effects,
}
[Serializable, NetSerializable, DataDefinition]
public partial struct BluespaceHarvesterCategoryInfo
{
[DataField("id")]
public EntProtoId PrototypeId = "RandomHarvesterIndustrialLoot";
[DataField]
public int Cost = 0;
[DataField]
public BluespaceHarvesterCategory Type;
}
[Serializable, NetSerializable]
public enum BluespaceHarvesterCategory : byte
{
Industrial,
Technological,
Biological,
Destruction,
}