Makes tools and welders ECS, add ToolQualityPrototype. (#4741)

This commit is contained in:
Vera Aguilera Puerto
2021-10-07 13:01:27 +02:00
committed by GitHub
parent f2760d0002
commit 365c7da4dc
44 changed files with 1144 additions and 863 deletions

View File

@@ -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;
}
}
}

View 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;
}
}
}

View 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;
}
}