Merge pull request #865 from Zumorica/2020-04-28-tool-component
Tool refactor, multi tools
This commit is contained in:
@@ -5,7 +5,7 @@ using YamlDotNet.RepresentationModel;
|
||||
|
||||
namespace Content.Shared.Audio
|
||||
{
|
||||
[Prototype("sound_collection")]
|
||||
[Prototype("soundCollection")]
|
||||
public sealed class SoundCollectionPrototype : IPrototype, IIndexedPrototype
|
||||
{
|
||||
public string ID { get; private set; }
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Content.Shared.GameObjects.Components.Interactable;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Utility;
|
||||
@@ -138,7 +139,7 @@ namespace Content.Shared.Construction
|
||||
if (step.TryGetNode("tool", out node))
|
||||
{
|
||||
return new ConstructionStepTool(
|
||||
node.AsEnum<ConstructionStepTool.ToolType>(),
|
||||
node.AsEnum<ToolQuality>(),
|
||||
amount
|
||||
);
|
||||
}
|
||||
@@ -190,20 +191,11 @@ namespace Content.Shared.Construction
|
||||
|
||||
public class ConstructionStepTool : ConstructionStep
|
||||
{
|
||||
public readonly ToolType Tool;
|
||||
public readonly ToolQuality ToolQuality;
|
||||
|
||||
public ConstructionStepTool(ToolType tool, int amount) : base(amount)
|
||||
public ConstructionStepTool(ToolQuality toolQuality, int amount) : base(amount)
|
||||
{
|
||||
Tool = tool;
|
||||
}
|
||||
|
||||
public enum ToolType
|
||||
{
|
||||
Wrench,
|
||||
Welder,
|
||||
Screwdriver,
|
||||
Crowbar,
|
||||
Wirecutters,
|
||||
ToolQuality = toolQuality;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
using System;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared.GameObjects.Components.Interactable
|
||||
{
|
||||
[Flags]
|
||||
public enum ToolQuality : byte
|
||||
{
|
||||
None = 0,
|
||||
Anchoring = 1,
|
||||
Prying = 1 << 1,
|
||||
Screwing = 1 << 2,
|
||||
Cutting = 1 << 3,
|
||||
Welding = 1 << 4,
|
||||
Multitool = 1 << 5,
|
||||
}
|
||||
|
||||
public class SharedToolComponent : Component
|
||||
{
|
||||
public override string Name => "Tool";
|
||||
|
||||
public virtual ToolQuality Qualities { get; set; }
|
||||
}
|
||||
|
||||
[NetSerializable, Serializable]
|
||||
public class MultiToolComponentState : ComponentState
|
||||
{
|
||||
public ToolQuality Quality { get; }
|
||||
|
||||
public MultiToolComponentState(ToolQuality quality) : base(ContentNetIDs.MULTITOOLS)
|
||||
{
|
||||
Quality = quality;
|
||||
}
|
||||
}
|
||||
|
||||
[NetSerializable, Serializable]
|
||||
public class WelderComponentState : ComponentState
|
||||
{
|
||||
public float FuelCapacity { get; }
|
||||
public float Fuel { get; }
|
||||
public bool Activated { get; }
|
||||
public ToolQuality Quality { get; }
|
||||
|
||||
public WelderComponentState(float fuelCapacity, float fuel, bool activated) : base(ContentNetIDs.WELDER)
|
||||
{
|
||||
FuelCapacity = fuelCapacity;
|
||||
Fuel = fuel;
|
||||
Activated = activated;
|
||||
Quality = ToolQuality.Welding;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
using System;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared.GameObjects.Components
|
||||
{
|
||||
[NetSerializable, Serializable]
|
||||
public class WelderComponentState : ComponentState
|
||||
{
|
||||
public float FuelCapacity { get; }
|
||||
public float Fuel { get; }
|
||||
public bool Activated { get; }
|
||||
|
||||
public WelderComponentState(float fuelCapacity, float fuel, bool activated) : base(ContentNetIDs.WELDER)
|
||||
{
|
||||
FuelCapacity = fuelCapacity;
|
||||
Fuel = fuel;
|
||||
Activated = activated;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -45,6 +45,6 @@
|
||||
public const uint MICROWAVE = 1040;
|
||||
public const uint GRAVITY_GENERATOR = 1041;
|
||||
public const uint SURGERY = 1042;
|
||||
|
||||
public const uint MULTITOOLS = 1043;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user