NPC utility queries (#15843)

This commit is contained in:
metalgearsloth
2023-05-02 04:57:11 +10:00
committed by GitHub
parent ac5afa794e
commit ca07522c03
50 changed files with 873 additions and 246 deletions

View File

@@ -0,0 +1,5 @@
namespace Content.Server.NPC.Queries.Curves;
public sealed class BoolCurve : IUtilityCurve
{
}

View File

@@ -0,0 +1,7 @@
namespace Content.Server.NPC.Queries.Curves;
[ImplicitDataDefinitionForInheritors]
public interface IUtilityCurve
{
}

View File

@@ -0,0 +1,6 @@
namespace Content.Server.NPC.Queries.Curves;
public sealed class InverseBoolCurve : IUtilityCurve
{
}

View File

@@ -0,0 +1,8 @@
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
namespace Content.Server.NPC.Queries.Curves;
public sealed class PresetCurve : IUtilityCurve
{
[DataField("preset", required: true, customTypeSerializer:typeof(PrototypeIdSerializer<UtilityCurvePresetPrototype>))] public readonly string Preset = default!;
}

View File

@@ -0,0 +1,12 @@
namespace Content.Server.NPC.Queries.Curves;
public sealed class QuadraticCurve : IUtilityCurve
{
[DataField("slope")] public readonly float Slope;
[DataField("exponent")] public readonly float Exponent;
[DataField("yOffset")] public readonly float YOffset;
[DataField("xOffset")] public readonly float XOffset;
}

View File

@@ -0,0 +1,11 @@
using Robust.Shared.Prototypes;
namespace Content.Server.NPC.Queries.Curves;
[Prototype("utilityCurvePreset")]
public sealed class UtilityCurvePresetPrototype : IPrototype
{
[IdDataField] public string ID { get; } = string.Empty;
[DataField("curve", required: true)] public IUtilityCurve Curve = default!;
}