Makes tools and welders ECS, add ToolQualityPrototype. (#4741)
This commit is contained in:
committed by
GitHub
parent
f2760d0002
commit
365c7da4dc
@@ -0,0 +1,24 @@
|
||||
using System;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared.Tools.Components
|
||||
{
|
||||
[NetworkedComponent]
|
||||
public class SharedMultipleToolComponent : Component
|
||||
{
|
||||
public override string Name => "MultipleTool";
|
||||
}
|
||||
|
||||
[NetSerializable, Serializable]
|
||||
public class MultipleToolComponentState : ComponentState
|
||||
{
|
||||
public string QualityName { get; }
|
||||
|
||||
public MultipleToolComponentState(string qualityName)
|
||||
{
|
||||
QualityName = qualityName;
|
||||
}
|
||||
}
|
||||
}
|
||||
30
Content.Shared/Tools/Components/SharedWelderComponent.cs
Normal file
30
Content.Shared/Tools/Components/SharedWelderComponent.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared.Tools.Components
|
||||
{
|
||||
[NetworkedComponent]
|
||||
public abstract class SharedWelderComponent : Component
|
||||
{
|
||||
public override string Name => "Welder";
|
||||
|
||||
public bool Lit { get; set; }
|
||||
}
|
||||
|
||||
[NetSerializable, Serializable]
|
||||
public class WelderComponentState : ComponentState
|
||||
{
|
||||
public float FuelCapacity { get; }
|
||||
public float Fuel { get; }
|
||||
public bool Lit { get; }
|
||||
|
||||
public WelderComponentState(float fuelCapacity, float fuel, bool lit)
|
||||
{
|
||||
FuelCapacity = fuelCapacity;
|
||||
Fuel = fuel;
|
||||
Lit = lit;
|
||||
}
|
||||
}
|
||||
}
|
||||
41
Content.Shared/Tools/ToolQualityPrototype.cs
Normal file
41
Content.Shared/Tools/ToolQualityPrototype.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using Content.Shared.Sound;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization.Manager.Attributes;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Shared.Tools
|
||||
{
|
||||
[Prototype("tool")]
|
||||
public class ToolQualityPrototype : IPrototype
|
||||
{
|
||||
[DataField("id", required: true)]
|
||||
public string ID { get; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// Human-readable name for this tool quality e.g. "Anchoring"
|
||||
/// </summary>
|
||||
/// <remarks>This is a localization string ID.</remarks>
|
||||
[DataField("name")]
|
||||
public string Name { get; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Human-readable name for a tool of this type e.g. "Wrench"
|
||||
/// </summary>
|
||||
/// <remarks>This is a localization string ID.</remarks>
|
||||
[DataField("toolName")]
|
||||
public string ToolName { get; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// An icon that will be used to represent this tool type.
|
||||
/// </summary>
|
||||
[DataField("icon")]
|
||||
public SpriteSpecifier? Icon { get; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// The default entity prototype for this tool type.
|
||||
/// </summary>
|
||||
[DataField("spawn", required:true, customTypeSerializer:typeof(PrototypeIdSerializer<EntityPrototype>))]
|
||||
public string Spawn { get; } = string.Empty;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user