From ff5549a0d125a9eeaf3c5ec72fc51af4f24f5cca Mon Sep 17 00:00:00 2001 From: zumorica Date: Wed, 29 Apr 2020 13:43:07 +0200 Subject: [PATCH] Finish refactoring tools. Add multitools. (as in multiple tools in one) --- .../Construction/ConstructionMenu.cs | 11 +- .../ToolComponent.cs} | 54 ++- ...bleComponent.cs => AnchorableComponent.cs} | 19 +- .../Construction/ConstructionComponent.cs | 41 ++- .../Components/Doors/AirlockComponent.cs | 38 ++- .../Interactable/MultitoolComponent.cs | 114 +++++++ .../Components/Interactable/ToolComponent.cs | 312 +++++++++++++----- .../Interactable/Tools/CrowbarComponent.cs | 29 -- .../Interactable/Tools/WelderComponent.cs | 217 ------------ .../Power/PowerTransferComponent.cs | 20 +- .../GameObjects/Components/WiresComponent.cs | 20 +- .../EntitySystems/Click/InteractionSystem.cs | 216 +++++++++++- .../GameObjects/EntitySystems/ToolSystem.cs | 18 +- .../Construction/ConstructionPrototype.cs | 16 +- .../Interactable/SharedToolComponent.cs | 46 +++ .../Components/WelderComponentState.cs | 21 -- Content.Shared/GameObjects/ContentNetIDs.cs | 2 +- Resources/Audio/items/change_drill.ogg | Bin 0 -> 7797 bytes Resources/Audio/items/change_jaws.ogg | Bin 0 -> 10881 bytes Resources/Audio/items/drill_hit.ogg | Bin 0 -> 40866 bytes Resources/Audio/items/drill_use.ogg | Bin 0 -> 45403 bytes Resources/Audio/items/jaws_cut.ogg | Bin 0 -> 17191 bytes Resources/Audio/items/jaws_pry.ogg | Bin 0 -> 17202 bytes .../Entities/Buildings/computers.yml | 2 +- .../Entities/Buildings/vending_machines.yml | 2 +- .../Prototypes/Entities/Items/powercells.yml | 4 +- Resources/Prototypes/Entities/Items/tools.yml | 80 ++++- Resources/Prototypes/Reagents/chemicals.yml | 6 + .../Prototypes/SoundCollections/tools.yml | 12 + .../Objects/Tools/drill.rsi/drill_bolt.png | Bin 0 -> 839 bytes .../Objects/Tools/drill.rsi/drill_screw.png | Bin 0 -> 831 bytes .../Objects/Tools/drill.rsi/meta.json | 1 + .../Tools/jaws_of_life.rsi/jaws_cutter.png | Bin 0 -> 667 bytes .../Tools/jaws_of_life.rsi/jaws_pry.png | Bin 0 -> 644 bytes .../Objects/Tools/jaws_of_life.rsi/meta.json | 1 + RobustToolbox | 2 +- SpaceStation14.sln.DotSettings | 3 +- 37 files changed, 840 insertions(+), 467 deletions(-) rename Content.Client/GameObjects/Components/{WelderComponent.cs => Interactable/ToolComponent.cs} (51%) rename Content.Server/GameObjects/Components/{WrenchableComponent.cs => AnchorableComponent.cs} (52%) create mode 100644 Content.Server/GameObjects/Components/Interactable/MultitoolComponent.cs delete mode 100644 Content.Server/GameObjects/Components/Interactable/Tools/CrowbarComponent.cs delete mode 100644 Content.Server/GameObjects/Components/Interactable/Tools/WelderComponent.cs create mode 100644 Content.Shared/GameObjects/Components/Interactable/SharedToolComponent.cs delete mode 100644 Content.Shared/GameObjects/Components/WelderComponentState.cs create mode 100644 Resources/Audio/items/change_drill.ogg create mode 100644 Resources/Audio/items/change_jaws.ogg create mode 100644 Resources/Audio/items/drill_hit.ogg create mode 100644 Resources/Audio/items/drill_use.ogg create mode 100644 Resources/Audio/items/jaws_cut.ogg create mode 100644 Resources/Audio/items/jaws_pry.ogg create mode 100644 Resources/Textures/Objects/Tools/drill.rsi/drill_bolt.png create mode 100644 Resources/Textures/Objects/Tools/drill.rsi/drill_screw.png create mode 100644 Resources/Textures/Objects/Tools/drill.rsi/meta.json create mode 100644 Resources/Textures/Objects/Tools/jaws_of_life.rsi/jaws_cutter.png create mode 100644 Resources/Textures/Objects/Tools/jaws_of_life.rsi/jaws_pry.png create mode 100644 Resources/Textures/Objects/Tools/jaws_of_life.rsi/meta.json diff --git a/Content.Client/Construction/ConstructionMenu.cs b/Content.Client/Construction/ConstructionMenu.cs index 81b14fe21d..af374ca281 100644 --- a/Content.Client/Construction/ConstructionMenu.cs +++ b/Content.Client/Construction/ConstructionMenu.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using Content.Client.GameObjects.Components.Construction; using Content.Shared.Construction; +using Content.Shared.GameObjects.Components.Interactable; using Robust.Client.Graphics; using Robust.Client.Interfaces.Placement; using Robust.Client.Interfaces.ResourceManagement; @@ -182,25 +183,25 @@ namespace Content.Client.Construction case ConstructionStepTool tool: switch (tool.Tool) { - case ConstructionStepTool.ToolType.Wrench: + case Tool.Wrench: icon = ResourceCache.GetResource("/Textures/Objects/Tools/wrench.png"); text = "Wrench"; break; - case ConstructionStepTool.ToolType.Crowbar: + case Tool.Crowbar: icon = ResourceCache.GetResource("/Textures/Objects/Tools/crowbar.png"); text = "Crowbar"; break; - case ConstructionStepTool.ToolType.Screwdriver: + case Tool.Screwdriver: icon = ResourceCache.GetResource( "/Textures/Objects/Tools/screwdriver.png"); text = "Screwdriver"; break; - case ConstructionStepTool.ToolType.Welder: + case Tool.Welder: icon = ResourceCache.GetResource("/Textures/Objects/tools.rsi") .RSI["welder"].Frame0; text = $"Welding tool ({tool.Amount} fuel)"; break; - case ConstructionStepTool.ToolType.Wirecutters: + case Tool.Wirecutter: icon = ResourceCache.GetResource( "/Textures/Objects/Tools/wirecutter.png"); text = "Wirecutters"; diff --git a/Content.Client/GameObjects/Components/WelderComponent.cs b/Content.Client/GameObjects/Components/Interactable/ToolComponent.cs similarity index 51% rename from Content.Client/GameObjects/Components/WelderComponent.cs rename to Content.Client/GameObjects/Components/Interactable/ToolComponent.cs index e5a64d5ccb..2df19d40ec 100644 --- a/Content.Client/GameObjects/Components/WelderComponent.cs +++ b/Content.Client/GameObjects/Components/Interactable/ToolComponent.cs @@ -1,38 +1,49 @@ using System; -using Content.Client.UserInterface; using Content.Client.UserInterface.Stylesheets; using Content.Client.Utility; -using Content.Shared.GameObjects; -using Content.Shared.GameObjects.Components; +using Content.Shared.GameObjects.Components.Interactable; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Shared.GameObjects; using Robust.Shared.Localization; +using Robust.Shared.Serialization; using Robust.Shared.Timing; using Robust.Shared.ViewVariables; -namespace Content.Client.GameObjects.Components +namespace Content.Client.GameObjects.Components.Interactable { [RegisterComponent] - public class WelderComponent : Component, IItemStatus + public class ToolComponent : SharedToolComponent, IItemStatus { - public override string Name => "Welder"; - public override uint? NetID => ContentNetIDs.WELDER; - + private Tool _behavior; + [ViewVariables(VVAccess.ReadWrite)] private bool _uiUpdateNeeded; + private bool _statusShowBehavior; [ViewVariables] public float FuelCapacity { get; private set; } [ViewVariables] public float Fuel { get; private set; } [ViewVariables] public bool Activated { get; private set; } + [ViewVariables] public bool StatusShowBehavior => _statusShowBehavior; + [ViewVariables] + public override Tool Behavior + { + get => _behavior; + set {} + } - [ViewVariables(VVAccess.ReadWrite)] private bool _uiUpdateNeeded; + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + serializer.DataField(ref _statusShowBehavior, "statusShowBehavior", false); + } public override void HandleComponentState(ComponentState curState, ComponentState nextState) { - if (!(curState is WelderComponentState cast)) + if (!(curState is ToolComponentState cast)) return; FuelCapacity = cast.FuelCapacity; Fuel = cast.Fuel; Activated = cast.Activated; + _behavior = cast.Behavior; _uiUpdateNeeded = true; } @@ -41,10 +52,10 @@ namespace Content.Client.GameObjects.Components private sealed class StatusControl : Control { - private readonly WelderComponent _parent; + private readonly ToolComponent _parent; private readonly RichTextLabel _label; - public StatusControl(WelderComponent parent) + public StatusControl(ToolComponent parent) { _parent = parent; _label = new RichTextLabel {StyleClasses = {StyleNano.StyleClassItemStatus}}; @@ -64,11 +75,22 @@ namespace Content.Client.GameObjects.Components _parent._uiUpdateNeeded = false; - var fuelCap = _parent.FuelCapacity; - var fuel = _parent.Fuel; + if (_parent.Behavior == Tool.Welder) + { + var fuelCap = _parent.FuelCapacity; + var fuel = _parent.Fuel; + + _label.SetMarkup(Loc.GetString("Fuel: [color={0}]{1}/{2}[/color]", + fuel < fuelCap / 4f ? "darkorange" : "orange", Math.Round(fuel), fuelCap)); + } + else + { + if(!_parent.StatusShowBehavior) + _label.SetMarkup(string.Empty); + else + _label.SetMarkup(_parent.Behavior.ToString()); + } - _label.SetMarkup(Loc.GetString("Fuel: [color={0}]{1}/{2}[/color]", - fuel < fuelCap / 4f ? "darkorange" : "orange", Math.Round(fuel), fuelCap)); } } } diff --git a/Content.Server/GameObjects/Components/WrenchableComponent.cs b/Content.Server/GameObjects/Components/AnchorableComponent.cs similarity index 52% rename from Content.Server/GameObjects/Components/WrenchableComponent.cs rename to Content.Server/GameObjects/Components/AnchorableComponent.cs index 056a874900..5afa2fbfd9 100644 --- a/Content.Server/GameObjects/Components/WrenchableComponent.cs +++ b/Content.Server/GameObjects/Components/AnchorableComponent.cs @@ -1,5 +1,6 @@ -using Content.Server.GameObjects.Components.Interactable.Tools; +using Content.Server.GameObjects.Components.Interactable; using Content.Server.GameObjects.EntitySystems; +using Content.Shared.GameObjects.Components.Interactable; using Robust.Server.GameObjects; using Robust.Server.GameObjects.EntitySystems; using Robust.Shared.GameObjects; @@ -9,31 +10,25 @@ using Robust.Shared.IoC; namespace Content.Server.GameObjects.Components { [RegisterComponent] - public class WrenchableComponent : Component, IAttackBy + public class AnchorableComponent : Component, IWrenchAct { - public override string Name => "Wrenchable"; - private AudioSystem _audioSystem; + public override string Name => "Anchorable"; public override void Initialize() { base.Initialize(); - _audioSystem = IoCManager.Resolve().GetEntitySystem(); + Owner.EnsureComponent(); } - public bool AttackBy(AttackByEventArgs eventArgs) + public bool WrenchAct(WrenchActEventArgs eventArgs) { - if (!eventArgs.AttackWith.HasComponent()) - { - return false; - } - if (!Owner.TryGetComponent(out PhysicsComponent physics)) { return false; } physics.Anchored = !physics.Anchored; - _audioSystem.Play("/Audio/items/ratchet.ogg", Owner); + eventArgs.ToolComponent.PlayUseSound(); return true; } diff --git a/Content.Server/GameObjects/Components/Construction/ConstructionComponent.cs b/Content.Server/GameObjects/Components/Construction/ConstructionComponent.cs index be64cfb14f..7281fe695d 100644 --- a/Content.Server/GameObjects/Components/Construction/ConstructionComponent.cs +++ b/Content.Server/GameObjects/Components/Construction/ConstructionComponent.cs @@ -1,11 +1,12 @@ using System; using System.Collections.Generic; -using Content.Server.GameObjects.Components.Interactable.Tools; +using Content.Server.GameObjects.Components.Interactable; using Content.Server.GameObjects.Components.Stack; using Content.Server.GameObjects.EntitySystems; using Content.Server.Interfaces; using Content.Shared.Construction; using Content.Shared.GameObjects.Components; +using Content.Shared.GameObjects.Components.Interactable; using Robust.Server.GameObjects; using Robust.Server.GameObjects.EntitySystems; using Robust.Server.Interfaces.GameObjects; @@ -141,46 +142,42 @@ namespace Content.Server.GameObjects.Components.Construction sound.Play("/Audio/items/deconstruct.ogg", Transform.GridPosition); return true; case ConstructionStepTool toolStep: + if (!slapped.TryGetComponent(out var tool)) + return false; switch (toolStep.Tool) { - case ToolType.Crowbar: - if (slapped.HasComponent()) + case Tool.Crowbar: + if (tool.Behavior == Tool.Crowbar) { - sound.Play("/Audio/items/crowbar.ogg", Transform.GridPosition); + tool.PlayUseSound(); return true; } return false; - case ToolType.Welder: - if (slapped.TryGetComponent(out WelderComponent welder) && welder.TryUse(toolStep.Amount)) + case Tool.Welder: + if (tool.Behavior == Tool.Welder && tool.TryWeld(toolStep.Amount)) { - if (_random.NextDouble() > 0.5) - sound.Play("/Audio/items/welder.ogg", Transform.GridPosition); - else - sound.Play("/Audio/items/welder2.ogg", Transform.GridPosition); + tool.PlayUseSound(); return true; } return false; - case ToolType.Wrench: - if (slapped.HasComponent()) + case Tool.Wrench: + if (tool.Behavior == Tool.Wrench) { - sound.Play("/Audio/items/ratchet.ogg", Transform.GridPosition); + tool.PlayUseSound(); return true; } return false; - case ToolType.Screwdriver: - if (slapped.HasComponent()) + case Tool.Screwdriver: + if (tool.Behavior == Tool.Screwdriver) { - if (_random.NextDouble() > 0.5) - sound.Play("/Audio/items/screwdriver.ogg", Transform.GridPosition); - else - sound.Play("/Audio/items/screwdriver2.ogg", Transform.GridPosition); + tool.PlayUseSound(); return true; } return false; - case ToolType.Wirecutters: - if (slapped.HasComponent()) + case Tool.Wirecutter: + if (tool.Behavior == Tool.Wirecutter) { - sound.Play("/Audio/items/wirecutter.ogg", Transform.GridPosition); + tool.PlayUseSound(); return true; } return false; diff --git a/Content.Server/GameObjects/Components/Doors/AirlockComponent.cs b/Content.Server/GameObjects/Components/Doors/AirlockComponent.cs index 3e064befc4..91c4678005 100644 --- a/Content.Server/GameObjects/Components/Doors/AirlockComponent.cs +++ b/Content.Server/GameObjects/Components/Doors/AirlockComponent.cs @@ -1,11 +1,12 @@ using System; using System.Threading; -using Content.Server.GameObjects.Components.Interactable.Tools; +using Content.Server.GameObjects.Components.Interactable; using Content.Server.GameObjects.Components.Power; using Content.Server.GameObjects.Components.VendingMachines; using Content.Server.GameObjects.EntitySystems; using Content.Server.Interfaces; using Content.Shared.GameObjects.Components.Doors; +using Content.Shared.GameObjects.Components.Interactable; using Robust.Server.GameObjects; using Robust.Server.Interfaces.GameObjects; using Robust.Shared.GameObjects; @@ -200,27 +201,28 @@ namespace Content.Server.GameObjects.Components.Doors public bool AttackBy(AttackByEventArgs eventArgs) { - if (eventArgs.AttackWith.HasComponent()) - { - if (IsPowered()) - { - var notify = IoCManager.Resolve(); - notify.PopupMessage(Owner, eventArgs.User, "The powered motors block your efforts!"); - return true; - } + if (!eventArgs.AttackWith.TryGetComponent(out var tool)) + return false; - if (State == DoorState.Closed) - { - Open(); - } - else if(State == DoorState.Open) - { - Close(); - } + if (tool.Behavior != Tool.Crowbar) return false; + + if (IsPowered()) + { + var notify = IoCManager.Resolve(); + notify.PopupMessage(Owner, eventArgs.User, "The powered motors block your efforts!"); return true; } - return false; + if (State == DoorState.Closed) + { + Open(); + } + else if(State == DoorState.Open) + { + Close(); + } + return true; + } } } diff --git a/Content.Server/GameObjects/Components/Interactable/MultitoolComponent.cs b/Content.Server/GameObjects/Components/Interactable/MultitoolComponent.cs new file mode 100644 index 0000000000..124115d262 --- /dev/null +++ b/Content.Server/GameObjects/Components/Interactable/MultitoolComponent.cs @@ -0,0 +1,114 @@ +using System.Collections.Generic; +using Content.Server.GameObjects.EntitySystems; +using Content.Shared.GameObjects.Components.Interactable; +using Robust.Server.GameObjects; +using Robust.Server.GameObjects.EntitySystems; +using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Interfaces.Serialization; +using Robust.Shared.IoC; +using Robust.Shared.Serialization; + +namespace Content.Server.GameObjects.Components.Interactable +{ + /// + /// Not to be confused with Multitool (power) + /// + [RegisterComponent] + public class MultiToolComponent : Component, IUse + { + public class ToolEntry : IExposeData + { + private string _state; + private string _sound; + private string _soundCollection; + private string _texture; + private string _sprite; + private string _changeSound; + + public Tool Behavior { get; private set; } + public string State => _state; + public string Texture => _texture; + public string Sprite => _sprite; + public string Sound => _sound; + public string SoundCollection => _soundCollection; + public string ChangeSound => _changeSound; + + public void ExposeData(ObjectSerializer serializer) + { + Behavior = (Tool)serializer.ReadStringEnumKey("behavior"); + serializer.DataField(ref _state, "state", string.Empty); + serializer.DataField(ref _sprite, "sprite", string.Empty); + serializer.DataField(ref _texture, "texture", string.Empty); + serializer.DataField(ref _sound, "useSound", string.Empty); + serializer.DataField(ref _soundCollection, "useSoundCollection", string.Empty); + serializer.DataField(ref _changeSound, "changeSound", string.Empty); + } + } + +#pragma warning disable 649 + [Dependency] private IEntitySystemManager _entitySystemManager; +#pragma warning restore 649 + + public override string Name => "MultiTool"; + private List _tools; + private int _currentTool = 0; + + private AudioSystem _audioSystem; + private ToolComponent _tool; + private SpriteComponent _sprite; + + public override void Initialize() + { + base.Initialize(); + Owner.TryGetComponent(out _tool); + Owner.TryGetComponent(out _sprite); + + _audioSystem = _entitySystemManager.GetEntitySystem(); + + SetTool(); + } + + public void Cycle() + { + _currentTool = (_currentTool + 1) % _tools.Count; + SetTool(); + var current = _tools[_currentTool]; + if(!string.IsNullOrEmpty(current.ChangeSound)) + _audioSystem.Play(current.ChangeSound, Owner); + } + + private void SetTool() + { + if (_tool == null) return; + + var current = _tools[_currentTool]; + + _tool.UseSound = current.Sound; + _tool.UseSoundCollection = current.SoundCollection; + _tool.Behavior = current.Behavior; + + if (_sprite == null) return; + + if (string.IsNullOrEmpty(current.Texture)) + if (!string.IsNullOrEmpty(current.Sprite)) + _sprite.LayerSetState(0, current.State, current.Sprite); + else + _sprite.LayerSetState(0, current.State); + else + _sprite.LayerSetTexture(0, current.Texture); + } + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + serializer.DataField(ref _tools, "tools", new List()); + } + + public bool UseEntity(UseEntityEventArgs eventArgs) + { + Cycle(); + return true; + } + } +} diff --git a/Content.Server/GameObjects/Components/Interactable/ToolComponent.cs b/Content.Server/GameObjects/Components/Interactable/ToolComponent.cs index fa1b3357a8..86542343f6 100644 --- a/Content.Server/GameObjects/Components/Interactable/ToolComponent.cs +++ b/Content.Server/GameObjects/Components/Interactable/ToolComponent.cs @@ -1,96 +1,37 @@ // Only unused on .NET Core due to KeyValuePair.Deconstruct // ReSharper disable once RedundantUsingDirective +using System; using Content.Server.GameObjects.Components.Chemistry; using Content.Server.GameObjects.EntitySystems; +using Content.Shared.Audio; +using Content.Shared.Chemistry; +using Content.Shared.GameObjects; +using Content.Shared.GameObjects.Components; +using Content.Shared.GameObjects.Components.Interactable; using Content.Shared.Maps; +using Robust.Server.GameObjects; using Robust.Server.GameObjects.EntitySystems; +using Robust.Shared.Audio; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Map; +using Robust.Shared.Interfaces.Random; using Robust.Shared.IoC; +using Robust.Shared.Localization; +using Robust.Shared.Log; using Robust.Shared.Map; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; using Robust.Shared.Serialization; using Robust.Shared.Utility; using Robust.Shared.ViewVariables; namespace Content.Server.GameObjects.Components.Interactable { - public enum Tool : byte + [RegisterComponent] + public class ToolComponent : SharedToolComponent, IExamine, IAfterAttack, IUse, IAttack { - Wrench, - Crowbar, - Screwdriver, - Wirecutters, - Welder, - Multitool, - } - - public abstract class ToolComponent : Component, IExamine, IAfterAttack - { -#pragma warning disable 649 - [Dependency] private IEntitySystemManager _entitySystemManager; - [Dependency] private readonly ITileDefinitionManager _tileDefinitionManager; - [Dependency] private readonly IMapManager _mapManager; -#pragma warning restore 649 - - private AudioSystem _audioSystem; - private InteractionSystem _interactionSystem; - private SolutionComponent - - private Tool _behavior; - private bool _activated = false; - - public override string Name => "Tool"; - - public Tool Behavior - { - get => _behavior; - set => _behavior = value; - } - - public override void Initialize() - { - base.Initialize(); - - _audioSystem = _entitySystemManager.GetEntitySystem(); - _interactionSystem = _entitySystemManager.GetEntitySystem(); - } - - public override void ExposeData(ObjectSerializer serializer) - { - base.ExposeData(serializer); - - serializer.DataField(ref _behavior, "behavior", Tool.Wrench); - serializer.DataField(ref _speedModifier, "Speed", 1); - } - - public void Examine(FormattedMessage message) - { - throw new System.NotImplementedException(); - } - - /// - /// For tool interactions that have a delay before action this will modify the rate, time to wait is divided by this value - /// - [ViewVariables(VVAccess.ReadWrite)] - public float SpeedModifier - { - get => _speedModifier; - set => _speedModifier = value; - } - private float _speedModifier = 1; - - /// - /// Status modifier which determines whether or not we can act as a tool at this time - /// - /// - public virtual bool CanUse() - { - if (_behavior != Tool.Welder) - return true; - } - /// /// Default Cost of using the welder fuel for an action /// @@ -99,22 +40,197 @@ namespace Content.Server.GameObjects.Components.Interactable /// /// Rate at which we expunge fuel from ourselves when activated /// - public const float FuelLossRate = 0.2f; + public const float FuelLossRate = 5f; // 0.2f + +#pragma warning disable 649 + [Dependency] private IEntitySystemManager _entitySystemManager; + [Dependency] private readonly ITileDefinitionManager _tileDefinitionManager; + [Dependency] private readonly IMapManager _mapManager; + [Dependency] private readonly IPrototypeManager _prototypeManager; + [Dependency] private readonly IRobustRandom _robustRandom; +#pragma warning restore 649 + + private AudioSystem _audioSystem; + private InteractionSystem _interactionSystem; + private ToolSystem _toolSystem; + + private SolutionComponent _solutionComponent; + private SpriteComponent _spriteComponent; + + private Tool _behavior = Tool.Wrench; + private float _speedModifier = 1; + private bool _welderLit = false; + private string _useSound; + private string _useSoundCollection; + + [ViewVariables] + public override Tool Behavior + { + get => _behavior; + set + { + _behavior = value; + Dirty(); + } + } + + [ViewVariables] + public float Fuel => _solutionComponent?.Solution.GetReagentQuantity("chem.WeldingFuel").Float() ?? 0f; + + [ViewVariables] + public float FuelCapacity => _solutionComponent?.MaxVolume.Float() ?? 0f; + + /// + /// For tool interactions that have a delay before action this will modify the rate, time to wait is divided by this value + /// + [ViewVariables(VVAccess.ReadWrite)] + public float SpeedModifier + { + get => _speedModifier; + set => _speedModifier = value; + } /// /// Status of welder, whether it is ignited /// [ViewVariables] - public bool Activated + public bool WelderLit { - get => _activated; + get => _welderLit; private set { - _activated = value; + _welderLit = value; Dirty(); } } + public string UseSound + { + get => _useSound; + set => _useSound = value; + } + + public string UseSoundCollection + { + get => _useSoundCollection; + set => _useSoundCollection = value; + } + + public override void Initialize() + { + base.Initialize(); + + _audioSystem = _entitySystemManager.GetEntitySystem(); + _interactionSystem = _entitySystemManager.GetEntitySystem(); + _toolSystem = _entitySystemManager.GetEntitySystem(); + + Owner.TryGetComponent(out _solutionComponent); + Owner.TryGetComponent(out _spriteComponent); + } + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + + serializer.DataField(ref _speedModifier, "speed", 1); + serializer.DataField(ref _useSound, "useSound", string.Empty); + serializer.DataField(ref _useSoundCollection, "useSoundCollection", string.Empty); + _behavior = (Tool)serializer.ReadStringEnumKey("behavior"); + } + + /// + /// Status modifier which determines whether or not we can act as a tool at this time + /// + public bool CanUse() + { + return _behavior != Tool.Welder || CanWeld(DefaultFuelCost); + } + + public bool TryWeld(float value) + { + if (!WelderLit || !CanWeld(value) || _solutionComponent == null) + { + return false; + } + + return _solutionComponent.TryRemoveReagent("chem.WeldingFuel", ReagentUnit.New(value)); + } + + public bool CanWeld(float value) + { + return Fuel > value || Behavior != Tool.Welder; + } + + public bool CanLitWelder() + { + return Fuel > 0 || Behavior != Tool.Welder; + } + + /// + /// Deactivates welding tool if active, activates welding tool if possible + /// + /// + public bool ToggleWelderStatus() + { + if (WelderLit) + { + WelderLit = false; + // Layer 1 is the flame. + _spriteComponent.LayerSetVisible(1, false); + PlaySoundCollection("WelderOff", -5); + _toolSystem.Unsubscribe(this); + return true; + } + + if (!CanLitWelder()) return false; + + WelderLit = true; + _spriteComponent.LayerSetVisible(1, true); + PlaySoundCollection("WelderOn", -5); + _toolSystem.Subscribe(this); + return true; + } + + public void OnUpdate(float frameTime) + { + if (Behavior != Tool.Welder || !WelderLit) + { + return; + } + + _solutionComponent.TryRemoveReagent("chem.WeldingFuel", ReagentUnit.New(FuelLossRate * frameTime)); + + Logger.Info(_solutionComponent.Solution.GetReagentQuantity("chem.WeldingFuel").ToString()); + + if (Fuel == 0) + { + ToggleWelderStatus(); + } + + Dirty(); + } + + private void PlaySoundCollection(string name, float volume=-5f) + { + var soundCollection = _prototypeManager.Index(name); + var file = _robustRandom.Pick(soundCollection.PickFiles); + _entitySystemManager.GetEntitySystem() + .Play(file, Owner, AudioParams.Default.WithVolume(volume)); + } + + public void PlayUseSound() + { + if(string.IsNullOrEmpty(UseSoundCollection)) + _audioSystem.Play(UseSound, Owner); + else + PlaySoundCollection(UseSoundCollection, 0f); + } + + public override ComponentState GetComponentState() + { + return Behavior == Tool.Welder ? new ToolComponentState(FuelCapacity, Fuel, WelderLit) : new ToolComponentState(Behavior); + } + public void AfterAttack(AfterAttackEventArgs eventArgs) { if (Behavior != Tool.Crowbar) @@ -134,11 +250,49 @@ namespace Content.Server.GameObjects.Components.Interactable var underplating = _tileDefinitionManager["underplating"]; mapGrid.SetTile(eventArgs.ClickLocation, new Tile(underplating.TileId)); - _audioSystem.Play("/Audio/items/crowbar.ogg", Owner); + PlayUseSound(); //Actually spawn the relevant tile item at the right position and give it some offset to the corner. var tileItem = Owner.EntityManager.SpawnEntity(tileDef.ItemDropPrototypeName, coordinates); tileItem.Transform.WorldPosition += (0.2f, 0.2f); } + + public bool UseEntity(UseEntityEventArgs eventArgs) + { + Logger.Info(Behavior.ToString()); + + switch (Behavior) + { + case Tool.Welder: + return ToggleWelderStatus(); + } + + return false; + } + + public void Examine(FormattedMessage message) + { + switch (Behavior) + { + case Tool.Welder: + if (WelderLit) + { + message.AddMarkup(Loc.GetString("[color=orange]Lit[/color]\n")); + } + else + { + message.AddText(Loc.GetString("Not lit\n")); + } + + message.AddMarkup(Loc.GetString("Fuel: [color={0}]{1}/{2}[/color].", + Fuel < FuelCapacity / 4f ? "darkorange" : "orange", Math.Round(Fuel), FuelCapacity)); + break; + } + } + + public void Attack(AttackEventArgs eventArgs) + { + + } } } diff --git a/Content.Server/GameObjects/Components/Interactable/Tools/CrowbarComponent.cs b/Content.Server/GameObjects/Components/Interactable/Tools/CrowbarComponent.cs deleted file mode 100644 index 593759413a..0000000000 --- a/Content.Server/GameObjects/Components/Interactable/Tools/CrowbarComponent.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Content.Server.GameObjects.EntitySystems; -using Content.Shared.Maps; -using Robust.Server.GameObjects.EntitySystems; -using Robust.Shared.GameObjects; -using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.Interfaces.Map; -using Robust.Shared.IoC; -using Robust.Shared.Map; - -namespace Content.Server.GameObjects.Components.Interactable.Tools -{ - [RegisterComponent] - public class CrowbarComponent : ToolComponent, IAfterAttack - { -#pragma warning disable 649 - -#pragma warning restore 649 - - /// - /// Tool that can be used to crowbar things apart, such as deconstructing - /// - public override string Name => "Crowbar"; - - public void AfterAttack(AfterAttackEventArgs eventArgs) - { - - } - } -} diff --git a/Content.Server/GameObjects/Components/Interactable/Tools/WelderComponent.cs b/Content.Server/GameObjects/Components/Interactable/Tools/WelderComponent.cs deleted file mode 100644 index e2fa2791fc..0000000000 --- a/Content.Server/GameObjects/Components/Interactable/Tools/WelderComponent.cs +++ /dev/null @@ -1,217 +0,0 @@ -using System; -using Content.Server.GameObjects.EntitySystems; -using Content.Shared.Audio; -using Content.Shared.GameObjects; -using Content.Shared.GameObjects.Components; -using Robust.Server.GameObjects; -using Robust.Server.GameObjects.EntitySystems; -using Robust.Shared.Audio; -using Robust.Shared.GameObjects; -using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.Interfaces.Random; -using Robust.Shared.IoC; -using Robust.Shared.Localization; -using Robust.Shared.Prototypes; -using Robust.Shared.Random; -using Robust.Shared.Serialization; -using Robust.Shared.Utility; -using Robust.Shared.ViewVariables; - -namespace Content.Server.GameObjects.Components.Interactable.Tools -{ - /// - /// Tool used to weld metal together, light things on fire, or melt into constituent parts - /// - [RegisterComponent] - class WelderComponent : ToolComponent, IUse, IExamine - { - SpriteComponent spriteComponent; - -#pragma warning disable 649 - [Dependency] private readonly IPrototypeManager _prototypeManager; - [Dependency] private readonly IRobustRandom _robustRandom; - [Dependency] private readonly IEntitySystemManager _entitySystemManager; -#pragma warning restore 649 - - public override string Name => "Welder"; - public override uint? NetID => ContentNetIDs.WELDER; - - /// - /// Maximum fuel capacity the welder can hold - /// - [ViewVariables(VVAccess.ReadWrite)] - public float FuelCapacity - { - get => _fuelCapacity; - set - { - _fuelCapacity = value; - Dirty(); - } - } - - private float _fuelCapacity = 50; - - /// - /// Fuel the welder has to do tasks - /// - [ViewVariables(VVAccess.ReadWrite)] - public float Fuel - { - get => _fuel; - set - { - _fuel = value; - Dirty(); - } - } - - private float _fuel = 0; - private bool _activated = false; - - /// - /// Default Cost of using the welder fuel for an action - /// - public const float DefaultFuelCost = 5; - - /// - /// Rate at which we expunge fuel from ourselves when activated - /// - public const float FuelLossRate = 0.2f; - - /// - /// Status of welder, whether it is ignited - /// - [ViewVariables] - public bool Activated - { - get => _activated; - private set - { - _activated = value; - Dirty(); - } - } - - //private string OnSprite { get; set; } - //private string OffSprite { get; set; } - - public override void Initialize() - { - base.Initialize(); - - spriteComponent = Owner.GetComponent(); - } - - public override void ExposeData(ObjectSerializer serializer) - { - base.ExposeData(serializer); - - serializer.DataField(ref _fuelCapacity, "Capacity", 50); - serializer.DataField(ref _fuel, "Fuel", FuelCapacity); - serializer.DataField(ref _activated, "Activated", false); - } - - public void OnUpdate(float frameTime) - { - if (!Activated) - { - return; - } - - Fuel = Math.Max(Fuel - (FuelLossRate * frameTime), 0); - - if (Fuel == 0) - { - ToggleStatus(); - } - } - - public bool TryUse(float value) - { - if (!Activated || !CanUse(value)) - { - return false; - } - - Fuel -= value; - return true; - } - - public bool CanUse(float value) - { - return Fuel > value; - } - - public override bool CanUse() - { - return CanUse(DefaultFuelCost); - } - - public bool CanActivate() - { - return Fuel > 0; - } - - public bool UseEntity(UseEntityEventArgs eventArgs) - { - return ToggleStatus(); - } - - /// - /// Deactivates welding tool if active, activates welding tool if possible - /// - /// - public bool ToggleStatus() - { - if (Activated) - { - Activated = false; - // Layer 1 is the flame. - spriteComponent.LayerSetVisible(1, false); - PlaySoundCollection("welder_off", -5); - return true; - } - else if (CanActivate()) - { - Activated = true; - spriteComponent.LayerSetVisible(1, true); - PlaySoundCollection("welder_on", -5); - return true; - } - else - { - return false; - } - } - - void IExamine.Examine(FormattedMessage message) - { - var loc = IoCManager.Resolve(); - if (Activated) - { - message.AddMarkup(loc.GetString("[color=orange]Lit[/color]\n")); - } - else - { - message.AddText(loc.GetString("Not lit\n")); - } - - message.AddMarkup(loc.GetString("Fuel: [color={0}]{1}/{2}[/color].", - Fuel < FuelCapacity / 4f ? "darkorange" : "orange", Math.Round(Fuel), FuelCapacity)); - } - - private void PlaySoundCollection(string name, float volume) - { - var soundCollection = _prototypeManager.Index(name); - var file = _robustRandom.Pick(soundCollection.PickFiles); - _entitySystemManager.GetEntitySystem() - .Play(file, AudioParams.Default.WithVolume(volume)); - } - - public override ComponentState GetComponentState() - { - return new WelderComponentState(FuelCapacity, Fuel, Activated); - } - } -} diff --git a/Content.Server/GameObjects/Components/Power/PowerTransferComponent.cs b/Content.Server/GameObjects/Components/Power/PowerTransferComponent.cs index 541b4f2f5a..9bafecbb2e 100644 --- a/Content.Server/GameObjects/Components/Power/PowerTransferComponent.cs +++ b/Content.Server/GameObjects/Components/Power/PowerTransferComponent.cs @@ -1,7 +1,8 @@ using System.Linq; -using Content.Server.GameObjects.Components.Interactable.Tools; +using Content.Server.GameObjects.Components.Interactable; using Content.Server.GameObjects.Components.Stack; using Content.Server.GameObjects.EntitySystems; +using Content.Shared.GameObjects.Components.Interactable; using Robust.Server.Interfaces.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Components.Transform; @@ -140,17 +141,16 @@ namespace Content.Server.GameObjects.Components.Power public bool AttackBy(AttackByEventArgs eventArgs) { - if (eventArgs.AttackWith.TryGetComponent(out WirecutterComponent wirecutter)) - { - Owner.Delete(); - var droppedEnt = Owner.EntityManager.SpawnEntity("CableStack", eventArgs.ClickLocation); + if (!eventArgs.AttackWith.TryGetComponent(out ToolComponent tool)) return false; + if (tool.Behavior != Tool.Wirecutter) return false; - if (droppedEnt.TryGetComponent(out var stackComp)) - stackComp.Count = 1; + Owner.Delete(); + var droppedEnt = Owner.EntityManager.SpawnEntity("CableStack", eventArgs.ClickLocation); - return true; - } - return false; + if (droppedEnt.TryGetComponent(out var stackComp)) + stackComp.Count = 1; + + return true; } } } diff --git a/Content.Server/GameObjects/Components/WiresComponent.cs b/Content.Server/GameObjects/Components/WiresComponent.cs index 18510e6908..8dc48fdd89 100644 --- a/Content.Server/GameObjects/Components/WiresComponent.cs +++ b/Content.Server/GameObjects/Components/WiresComponent.cs @@ -1,12 +1,13 @@ using System; using System.Collections.Generic; using System.Linq; -using Content.Server.GameObjects.Components.Interactable.Tools; +using Content.Server.GameObjects.Components.Interactable; using Content.Server.GameObjects.Components.VendingMachines; using Content.Server.GameObjects.EntitySystems; using Content.Server.Interfaces; using Content.Server.Interfaces.GameObjects; using Content.Shared.GameObjects.Components; +using Content.Shared.GameObjects.Components.Interactable; using JetBrains.Annotations; using Robust.Server.GameObjects; using Robust.Server.GameObjects.Components.UserInterface; @@ -235,30 +236,31 @@ namespace Content.Server.GameObjects.Components return; } var activeHandEntity = handsComponent.GetActiveHand?.Owner; + activeHandEntity.TryGetComponent(out var tool); switch (msg.Action) { case WiresAction.Cut: - if (activeHandEntity?.HasComponent() != true) + if (tool == null || tool.Behavior != Tool.Wirecutter) { _notifyManager.PopupMessage(Owner.Transform.GridPosition, player, _localizationManager.GetString("You need to hold a wirecutter in your hand!")); return; } - _audioSystem.Play("/Audio/items/wirecutter.ogg", Owner); + tool.PlayUseSound(); wire.IsCut = true; UpdateUserInterface(); break; case WiresAction.Mend: - if (activeHandEntity?.HasComponent() != true) + if (tool == null || tool.Behavior != Tool.Wirecutter) { _notifyManager.PopupMessage(Owner.Transform.GridPosition, player, _localizationManager.GetString("You need to hold a wirecutter in your hand!")); return; } - _audioSystem.Play("/Audio/items/wirecutter.ogg", Owner); + tool.PlayUseSound(); wire.IsCut = false; UpdateUserInterface(); break; case WiresAction.Pulse: - if (activeHandEntity?.HasComponent() != true) + if (tool == null || tool.Behavior != Tool.Multitool) { _notifyManager.PopupMessage(Owner.Transform.GridPosition, player, _localizationManager.GetString("You need to hold a multitool in your hand!")); return; @@ -288,10 +290,10 @@ namespace Content.Server.GameObjects.Components bool IAttackBy.AttackBy(AttackByEventArgs eventArgs) { - if (!eventArgs.AttackWith.HasComponent()) - { + if (!eventArgs.AttackWith.TryGetComponent(out var tool)) + return false; + if (tool.Behavior != Tool.Screwdriver) return false; - } IsPanelOpen = !IsPanelOpen; IoCManager.Resolve() diff --git a/Content.Server/GameObjects/EntitySystems/Click/InteractionSystem.cs b/Content.Server/GameObjects/EntitySystems/Click/InteractionSystem.cs index e42c37978c..85f81ec427 100644 --- a/Content.Server/GameObjects/EntitySystems/Click/InteractionSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/Click/InteractionSystem.cs @@ -1,8 +1,11 @@ using System; +using System.Collections.Generic; using System.Linq; +using Content.Server.GameObjects.Components.Interactable; using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.Components.Timing; using Content.Server.Interfaces.GameObjects; +using Content.Shared.GameObjects.Components.Interactable; using Content.Shared.GameObjects.Components.Inventory; using Content.Shared.Input; using Content.Shared.Physics; @@ -43,6 +46,129 @@ namespace Content.Server.GameObjects.EntitySystems public IEntity AttackWith { get; set; } } + #region Tools + + /// + /// This interface gives components behavior when being clicked on or "attacked" by a user with a tool in their hand + /// + public interface IToolAct + { + /// + /// Called when using a wrench on an entity + /// + bool ToolAct(ToolActEventArgs eventArgs) => false; + } + + public class ToolActEventArgs : EventArgs + { + public IEntity User { get; set; } + public GridCoordinates ClickLocation { get; set; } + public IEntity AttackWith { get; set; } + public ToolComponent ToolComponent => AttackWith.GetComponent(); + public virtual Tool Behavior { get; } + } + + /// + /// This interface gives components behavior when being clicked on or "attacked" by a user with a wrench in their hand + /// + public interface IWrenchAct : IToolAct + { + /// + /// Called when using a wrench on an entity + /// + bool WrenchAct(WrenchActEventArgs eventArgs); + } + + public class WrenchActEventArgs : ToolActEventArgs + { + public override Tool Behavior => Tool.Wrench; + } + + /// + /// This interface gives components behavior when being clicked on or "attacked" by a user with a crowbar in their hand + /// + public interface ICrowbarAct : IToolAct + { + /// + /// Called when using a wrench on an entity + /// + bool CrowbarAct(CrowbarActEventArgs eventArgs); + } + + public class CrowbarActEventArgs : ToolActEventArgs + { + public override Tool Behavior => Tool.Crowbar; + } + + /// + /// This interface gives components behavior when being clicked on or "attacked" by a user with a screwdriver in their hand + /// + public interface IScrewdriverAct + { + /// + /// Called when using a wrench on an entity + /// + bool ScrewdriverAct(ScrewdriverActEventArgs eventArgs); + } + + public class ScrewdriverActEventArgs : ToolActEventArgs + { + public override Tool Behavior => Tool.Screwdriver; + } + + /// + /// This interface gives components behavior when being clicked on or "attacked" by a user with a wirecutter in their hand + /// + public interface IWirecutterAct + { + /// + /// Called when using a wrench on an entity + /// + bool WirecutterAct(WirecutterActEventArgs eventArgs); + } + + public class WirecutterActEventArgs : ToolActEventArgs + { + public override Tool Behavior => Tool.Wirecutter; + } + + /// + /// This interface gives components behavior when being clicked on or "attacked" by a user with a welder in their hand + /// + public interface IWelderAct + { + /// + /// Called when using a wrench on an entity + /// + bool WelderAct(WelderActEventArgs eventArgs); + } + + public class WelderActEventArgs : ToolActEventArgs + { + public override Tool Behavior => Tool.Welder; + public bool Lit { get; set; } + public float Fuel { get; set; } + public float FuelCapacity { get; set; } + } + + /// + /// This interface gives components behavior when being clicked on or "attacked" by a user with a multitool in their hand + /// + public interface IMultitoolAct + { + /// + /// Called when using a wrench on an entity + /// + bool MultitoolAct(MultitoolActEventArgs eventArgs); + } + + public class MultitoolActEventArgs : ToolActEventArgs + { + public override Tool Behavior => Tool.Multitool; + } + + #endregion + /// /// This interface gives components behavior when being clicked on or "attacked" by a user with an empty hand /// @@ -561,9 +687,97 @@ namespace Content.Server.GameObjects.EntitySystems foreach (var attackBy in attackBys) { if (attackBy.AttackBy(attackByEventArgs)) - { // If an AttackBy returns a status completion we finish our attack return; + } + + // We handle specific tools AttackBy here. + if (weapon.TryGetComponent(out var tool)) + { + switch (tool.Behavior) + { + case Tool.Wrench: + var wrenchList = attacked.GetAllComponents().ToList(); + var wrenchAttackBy = new WrenchActEventArgs() + { User = user, ClickLocation = clickLocation, AttackWith = weapon }; + + foreach (var comp in wrenchList) + { + if (comp.WrenchAct(wrenchAttackBy)) + return; + } + + break; + + case Tool.Crowbar: + var crowbarList = attacked.GetAllComponents().ToList(); + var crowbarAttackBy = new CrowbarActEventArgs() + { User = user, ClickLocation = clickLocation, AttackWith = weapon }; + + foreach (var comp in crowbarList) + { + if (comp.CrowbarAct(crowbarAttackBy)) + return; + } + + break; + + case Tool.Screwdriver: + var screwdriverList = attacked.GetAllComponents().ToList(); + var screwdriverAttackBy = new ScrewdriverActEventArgs() + { User = user, ClickLocation = clickLocation, AttackWith = weapon }; + + foreach (var comp in screwdriverList) + { + if (comp.ScrewdriverAct(screwdriverAttackBy)) + return; + } + + break; + + case Tool.Wirecutter: + var wirecutterList = attacked.GetAllComponents().ToList(); + var wirecutterAttackBy = new WirecutterActEventArgs() + { User = user, ClickLocation = clickLocation, AttackWith = weapon }; + + foreach (var comp in wirecutterList) + { + if (comp.WirecutterAct(wirecutterAttackBy)) + return; + } + break; + + case Tool.Welder: + var welderList = attacked.GetAllComponents().ToList(); + var welderAttackBy = new WelderActEventArgs() + { + User = user, ClickLocation = clickLocation, AttackWith = weapon, + Fuel = tool.Fuel, FuelCapacity = tool.FuelCapacity + }; + + foreach (var comp in welderList) + { + if (comp.WelderAct(welderAttackBy)) + return; + } + + break; + + case Tool.Multitool: + var multitoolList = attacked.GetAllComponents().ToList(); + var multitoolAttackBy = new MultitoolActEventArgs() + { User = user, ClickLocation = clickLocation, AttackWith = weapon }; + + foreach (var comp in multitoolList) + { + if (comp.MultitoolAct(multitoolAttackBy)) + return; + } + + break; + + default: + throw new ArgumentOutOfRangeException(); } } diff --git a/Content.Server/GameObjects/EntitySystems/ToolSystem.cs b/Content.Server/GameObjects/EntitySystems/ToolSystem.cs index 6d46fd5155..4d90696592 100644 --- a/Content.Server/GameObjects/EntitySystems/ToolSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/ToolSystem.cs @@ -1,7 +1,6 @@ using System.Collections.Generic; +using System.Linq; using Content.Server.GameObjects.Components.Interactable; -using Content.Server.GameObjects.Components.Interactable.Tools; -using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Systems; namespace Content.Server.GameObjects.EntitySystems @@ -13,9 +12,22 @@ namespace Content.Server.GameObjects.EntitySystems { private readonly HashSet _activeWelders = new HashSet(); + public bool Subscribe(ToolComponent welder) + { + return _activeWelders.Add(welder); + } + + public bool Unsubscribe(ToolComponent welder) + { + return _activeWelders.Remove(welder); + } + public override void Update(float frameTime) { - foreach (var tool in _activeWelders) ; + foreach (var tool in _activeWelders.ToArray()) + { + tool.OnUpdate(frameTime); + } } } } diff --git a/Content.Shared/Construction/ConstructionPrototype.cs b/Content.Shared/Construction/ConstructionPrototype.cs index d9e04eacbf..be9f6c1ef3 100644 --- a/Content.Shared/Construction/ConstructionPrototype.cs +++ b/Content.Shared/Construction/ConstructionPrototype.cs @@ -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(), + node.AsEnum(), amount ); } @@ -190,21 +191,12 @@ namespace Content.Shared.Construction public class ConstructionStepTool : ConstructionStep { - public readonly ToolType Tool; + public readonly Tool Tool; - public ConstructionStepTool(ToolType tool, int amount) : base(amount) + public ConstructionStepTool(Tool tool, int amount) : base(amount) { Tool = tool; } - - public enum ToolType - { - Wrench, - Welder, - Screwdriver, - Crowbar, - Wirecutters, - } } public class ConstructionStepMaterial : ConstructionStep diff --git a/Content.Shared/GameObjects/Components/Interactable/SharedToolComponent.cs b/Content.Shared/GameObjects/Components/Interactable/SharedToolComponent.cs new file mode 100644 index 0000000000..2ba8c13928 --- /dev/null +++ b/Content.Shared/GameObjects/Components/Interactable/SharedToolComponent.cs @@ -0,0 +1,46 @@ +using System; +using Robust.Shared.GameObjects; +using Robust.Shared.Serialization; + +namespace Content.Shared.GameObjects.Components.Interactable +{ + public enum Tool : byte + { + Wrench, + Crowbar, + Screwdriver, + Wirecutter, + Welder, + Multitool, + } + + public class SharedToolComponent : Component + { + public override string Name => "Tool"; + public override uint? NetID => ContentNetIDs.TOOL; + + public virtual Tool Behavior { get; set; } + } + + [NetSerializable, Serializable] + public class ToolComponentState : ComponentState + { + public float FuelCapacity { get; } + public float Fuel { get; } + public bool Activated { get; } + public Tool Behavior { get; } + + public ToolComponentState(Tool behavior) : base(ContentNetIDs.TOOL) + { + Behavior = behavior; + } + + public ToolComponentState(float fuelCapacity, float fuel, bool activated) : base(ContentNetIDs.TOOL) + { + FuelCapacity = fuelCapacity; + Fuel = fuel; + Activated = activated; + Behavior = Tool.Welder; + } + } +} diff --git a/Content.Shared/GameObjects/Components/WelderComponentState.cs b/Content.Shared/GameObjects/Components/WelderComponentState.cs deleted file mode 100644 index 61aaa5ed1b..0000000000 --- a/Content.Shared/GameObjects/Components/WelderComponentState.cs +++ /dev/null @@ -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; - } - } -} diff --git a/Content.Shared/GameObjects/ContentNetIDs.cs b/Content.Shared/GameObjects/ContentNetIDs.cs index ef69972f4d..f8f70db30b 100644 --- a/Content.Shared/GameObjects/ContentNetIDs.cs +++ b/Content.Shared/GameObjects/ContentNetIDs.cs @@ -36,7 +36,7 @@ public const uint GALACTIC_MARKET = 1031; public const uint HUMANOID_APPEARANCE = 1032; public const uint INSTRUMENTS = 1033; - public const uint WELDER = 1034; + public const uint TOOL = 1034; public const uint STACK = 1035; public const uint HANDHELD_LIGHT = 1036; public const uint PAPER = 1037; diff --git a/Resources/Audio/items/change_drill.ogg b/Resources/Audio/items/change_drill.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f8928fc00f99d413758a760f0bc66aadae74bbf2 GIT binary patch literal 7797 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 F{s+Q&DB1u3 literal 0 HcmV?d00001 diff --git a/Resources/Audio/items/change_jaws.ogg b/Resources/Audio/items/change_jaws.ogg new file mode 100644 index 0000000000000000000000000000000000000000..13960ccc3e3ce8986b94ab003bc5ad816de6e373 GIT binary patch literal 10881 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 N806Qp8^<1}3ILCg_ay)T literal 0 HcmV?d00001 diff --git a/Resources/Audio/items/drill_use.ogg b/Resources/Audio/items/drill_use.ogg new file mode 100644 index 0000000000000000000000000000000000000000..82f37cd35bb2c3e233211e0b99ebb0e09b3ea5ba GIT binary patch literal 45403 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/items/jaws_cut.ogg b/Resources/Audio/items/jaws_cut.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a0bfd8550299e6c10765308675b041a6b6c08733 GIT binary patch literal 17191 zcmajH1zZ-v_b6liF9{KgQQA#cZoCzN|(Hg{{H{_ zfA9N#?p@{?XXoskGjq=O%%0huRn^*B6MzT)b2OX$D_li39m7$=c{#h8*}6Yg!O2wo zqX6D;e+$iUs*f%I`*>{mNO6{IoySdj_%#SfOI`u7aMj}H)|>fTQi-%?5Px} zxH&lmIQhA`ANwH*{xqGfJiJZaEJYL6T$*;xDEzB(>%*DsX zDImGQCbsl7B4qa7Lsi zMf8xEM|1W5S4PEaK?DGZ0E`JOHh){eZdAycgfZ4FN61!1u$T%ZQhi+r?aMiXxl>Vn zk-gI>gdP=39|-^zE+J1HN~rOenT1n_k$~Ada<_i!;tV%*=8~MZ=-mBO!AjhF1&J!c zdnNg?!uw41<5C!G^^;H~t{ENks&-^!Klf3gos9ovXn)5+1@=V>nbZPT3iXkFIHV}m z4P^CiSX2NE947GMJ)y!U!l6&(BNKG0zgg7@_$GK{HMNwr!Nb#7*UNIw%X7}lUq3a} zu-RX~In;1I)c7*glqBpw>B@iY@-h7#Iu#s{Lo1ZB3CW{*n)h8O4|Rn+@H*ScG?dZ>J+Q6*c-nSJ3n5sFNJ?jHXwmw|??138 zeVH-ZEwll)h*(UwZ$UE#OV<_|KS$6W>;8B6NPu=TohRwdd`smYi)=J8~)j2*Le};{VG2Lirzx3lbuk2bt=IxrbOEvx={y z!Ur{9aiuZ2Koqm`fhdk?*v@jV5|XzsY?w7*DNNFULJI$R6lhc`i+D+7(!Wj;mg+VL zDF(gbe;V$DZVZoN;(w&EU*zie^kACcX4B*m)z;G1^>Wnz;JMTkYCP|`Hs`-K7xU^# z*#8c!|MnaJbefRAKAB_|&DEC?tRjW>&%poXIj)3#@5u+=(<#={DNnMF{N`0X<((jq zRp(XKBr={L@|+^J)Z{mw;@Txhg3Z1UG{{Ex%@bDOm}&;Q{$k1j$Z6uT*( zfcU>WCxLIRzB0>kSR>xi_{k6C-AdFcO}=h#FRr$!csNA85jGDW1=Mx>Rs z!;3pYA2fu1AlM)yBFr;CeR8uX@GR^`)wV-%eL73v}TKbe_8hkSvY}#6)|7VW@sWZIFQ@o&JlL3Gf0BAuYhu}uK#Y;Jf>Y;LN(;?*w zA?JQ02`R?q!4$%x@rajX6m3or`ignFuE9hkqZAxNFAz(G^`*#2VM`Ddoc0g_bpU{I z^>ckAaT`?_$dMW4Ld#6*7h)_-oK%3YrI7GI=!@{pH#71l6$T2DNE9P83-HY&D#1no z3i!jw9gio1lOO~DGfWM1NNAGAC}cZcV~}f$TmvdpoS``?gh~-I$c3C4j0-6w*BpiP zk%tURZe;|IOELifRTmuilVakvkOgoVfpr(Uu|!@)LV864*)c-PIRfRmWZn^8K6Nea zAp-3gE$t;@W$i|KWddd8Gc9cbS#2WisT5`H2FEd8%LOg%6=Lm~M$0AQ0NoVNH6CSs z@N^cWdd{WzznXP4PW=xnWx~I#__gO6`P4nM)wM14wY2rUEcGw7b!Yt*L8_+m0+F_M zqxQnNqjrk_hKIJXuI0j|wmxxy;aup(h5rW0Bj>ppPmpRlYiZi#xyEFhW^0#MQkKS4 zR#sZp=vY=&X_&WLmRB}dYh6}VF<4t&UgdBAQmabJYFW$5Sj%fGZp&B?8cWJrD+g<9 z(yPi38jmr)vL3X$lvP!g*B(AnTPqKGT@PA0{fZz%MdkagrLC<_2d%EdjgI8`W&0h> zLtknJYmX0FIqE&B)wMlWl8iTX!Erdg^3F2646Sv1-dTA&2r`(w5*l+RZvmUtIgx>N zy{9bVrh>7B)@fi*%PP~$$`5LtSiV*qNU3Z48z)oY- zgaeSNcL+6cnR}=_a5eU+3beS8sohneJ>*GhP&?|RY35!ktyqQrj6{5>4J2t&10}am z4Qij8G^=6%sc72lh^l}XYRi^1X<%2{J8ck+XO7FgQ(!TwfL2)lNB~*wMyRj|c%8x~?llNuIcEOk?of?JO`a)twX0{$3dk6#^1sfQ5 z{B>Jo<%k|QbS!-|KnC>UUMg_jK_)FE2_7dYAT-CNDI@{yQb=eH>XyVETZ);~d{mMN z5~2oWhJ@lm73d4Wh!ve2jOQH2lk~{J4*i=)Ofbzbxx%PCw78k^LX@D4r9q%ZD?LFd z6!r`o*j3igOQ2SU&T=c#gHW)l{FZ9K0sx0#hYtVFBlJK#3Lrs}56Ts?#x)xj+9l@& zXGZc6Z06pKU~DN=BCs3ay=qtp%y6YZ0vPY*27_5)(&QsS1G+~A)K5*A-{*jHCOq)^an6Jaq2wmXL3*i@5;Q<@;E+n)FhSk*=sXgV3=XM4XgKhB z;exR0HIRl@_UPGHQ5VjdRq)M$Aa2-BvxkBN`;is^SVlqtY7od|`58&jn0YP!4gy96 zsxg`?jL1R+l`SRcoTiwy>PUsJ&zBU6NgL3Rs5K=b5ELxq^=L6krsAbdcNPBMUgbl1>e zrY}r+oI0irpll#-6#Bwh4LeYZFlu4_^rNVGNqI=&tU(kT=yFi-)GV4WOar{6XWp!W zt6)+C^iLA=3ebTJ?7^4yR^OaO45w>yB$_EYs_grq2j#Jk~| zvEyk(3cdJbDNou%GLytrNT{h{znftet*)AB4(0kBoE@u7`4yO4~RJ*h&d5UIm^;0WVk!30h|-?3DiyU~PY3$g#Ltlfv z)PGAA#J}Z#EAOu7|HzLk??*A`dOcS({5%4J+$<~{ENlY24+uL)4@eKd@{@4yrNUs!nd*oPws$5PFzA*(GM7|mde=q0w^O|{?ls5J?3w=x<=w=uwLapD zbY$hL1K6r4xkIbma&-8& zcY;G{yD8Y;WUF%>mH_K|7_*%NOfDFn;n2?=B?2v`VFID;{*I)eNf?ZP%9IoRZu}8)b9Ptqr?8jiYv`Wd|G>+6h~p@IOZ_ z5!gW!X z9#k-*oN}(uGyHq4FN2w{d?L~!g`Ew~FXsd(Nc5M)Sz21In%{^DNn@sxZcGS{uaNXZpDOy*m+WM4hEg!y)!pP@}cFmo*8pRqW*zQF_#7 zx}tK-tRU$=ZS3YSD=M?|XTNqRo}B?kWAE@U(btuc)zJ%9U)*LpEN!Qe0~ zH>+NFHOKa2M^o0kr&TgVY-YWg8Rh$lsA4Dd-(j|~4k@+UTD}TXw8b*Pth`wn6=7!j zQhT*Db*JsKA#a6xT5>16NPo#Q$)Pg3lJe_w2q*7~orN;d(ssR%>(g7Rlp;r~Set*7 zG3g(^Xwp#xb73J~>(g5w>|dd@oUbR*Sy%SwA=_`r2Qdi}OeM3$~N? zCbd92(jdwgb?4ul_Va8jj3s-qUwR`^9rlksDdH0ho0aCZ*Q=y_o}>SD@Kp%9r($*T z1vvt1dBOUySegG>=*DN+Q>+oL9Lb8$Gr#BcDG=VP@ec}#G`f#KWx0;b7DSO!BKO8G za3hHHUD5N-L<};g7$l=~o6F)p75_oB@;`awqSFWO8)9%_GS1RXb5h0F)wVA?Lqog( z8ahjc<|}JZofO>Nx7}{?M%IRR@??Le=vgS9qXHc%%ipLIeW_m-twt$i_t|fE{DIeb zYQx9_Y<+kk{7Z4Qr(w~zlQZ6?PbVS+xU8~NpzVrzL*U= z){84)#aOONKW7V0QLma&%L?7cdqVysn(t4=8^#xLTWO7_a8xX7A8qj|$f7mB>@1z_ z|B>~WG{>;9=tlj``*v0;*5M8QLkTZ~fSC4o+l<%`K_)OK{-tI`M=5Gy)&}M0N!4Z* z_xLeTT=5H8ladp+>WXNLVB9US8a=rSNtjdN+Ijd7gv+Nkjov5RuE^YLc<_4B6>Fkx zO+3F16FJIY{x5NWE;JWyd0>5k0H^({C#D6a54fma4OqJC1v(YV9TN#oW%0Gptd>ICKk-Um0PXIWnHB9w?Od1@+%9+lh(dl+bIq zmSoqW8NG!=cCHRTCXIiwKAgehvz4@9XDkn_a(P6Bw6tlZ6e?$`^omJu0Y92-bRF$E zk=MH9&Q(_l5j)XXhnJT>FdI)9)-uveHTpQ0F_Ne>o>AacQ3x0Ed5=l`Jh81XMO>B8 zxS?tYC7b*KpW=^s4?`xUiBsmOG9uJYlLk&zaQ-0h;#vz{3PbgS4FoGUFIfru^!kzC z7sF>Du^9mqP44mtK#eYeOryNlk(oLe*sabkcNLl3S(^6OlJj{iwY;`Bcd`b$!a_b3 zCDZ9Ny?hEkd~NDi^JlfwWuRGv@c`?2;D`3;N-hVRmnl`#4oAHMPX-{aNH^6=++`e8 zZYzac#pIvytd(a8?4ygSvlnrU+eU;&@dgd=21W`S0Q%Q3Sd3)D?G^%#uefeQTImph z9GM_xTDyjNdkvfhMtBn{Ky6;9qF7IDvh?eobxtf7zmRBASg_&y`_MW3b~nQ~;>8Nx z8+}_kUBaPgjB34-JIqECiKucxm#A;&2hFiLcC-blx+ER4yqxQ^@Km@DqBntqzCWg1 zSm;FLq;P1K8TG54!*w(+%ZGPQzbhFqz~_52zc385O$(5OubEKR64vAornzxj8lnIs z03V7D7q7+JSDp#(#slrhe`)GotUDrGA*@ z&<&mo@8k9^&yt7iMxIuMH9Us~x*i=`508YI3lDoe&)d!f2Ak~x)m#!AmGJ<4S*eI< zMoJjEgeb9eo>6Ae=cCu^4B-5*y1lISp0l@4xMBG<>aJe?(#!Yfw>xSF>)lP($o zX2>vxegv^ov-_Wu+aJW&5^S4P?eC_@GAVLuW%=_8J?N6Cr-(c}mnY+M#(!^YCe)X= z9a)RQ`5hrxiZp2^ELj)3X=5aa%ROgNY!xitgIE&!8xOu?Cj!pCO$0xiV-|Np?=Nk!{1@D#SE`+YWL>-)qnBXUgV5>O6GYXsSpk9&9mcide7%P`!3V%WGt@ne*1We=sg_)&Q7jTxJ$t2 z^kW&t7cCqIDY)G=zNPKxx@qd=p1PLM^|vOB9WczypiN;G(tBb17-j$v5rDfzgeAIU zkK8fq!lCAx0j+3&SgJN8xmj|LOkR13BMr$JhZz_)r-dkR!;~WD3xh`UbF#2^7?$n~9q;Z=gt`B|9G%)+=$eaF1ae2)5eASHe+cvdCU&Qr$ z*QCjC@;5&_FEMPjaajQB!XBSzr&9WfVm@00U-y;f7;~P zL`AnKa@P2?nbkX!Vo&aVxHdwe+499h|b`MZLU-m%qxE=HdwRh{>p3rWkB z&*vr;{FRbn;udCCRPpD&7MQ$gM)-vI?{>@HS&A=imV|{>SsJ|lR{oJ{KVpe?LW*C2 zN#2Fk-L?92Inaw2@9jVoP!P*L?;a?($+q{oSw?)wz=u|hCbZY9Ci}_lEF6hMHj`Yg zVW0nH$joR=XvlAqdjIR#(OL>Od~tIxcikHF&aZxzFMoxFE&X(Y&(fu!5^0+FP>A-a z^+Nk*IZkTHy%r9rDabALBL*anuaP-_McvES1K7{4!``K@sU+U4<|_x5Ps6XT-nrLh z4a=+qG=;zUNJxM@UV7FY(C4vSl?R*c<>ubs9_K4J_QOcAScs;j2~+`CfwMaI)Au)@ zYskjNuU>JPlO7fAm=dkhb|$VCH%gyZS-A$+YlXEk4<;9PzBQml?9xXXKP)!zEB)rP zhN(9N$mBJ)Dcl(y3|KC}Po_#739jdy@3&$vq2NtLNBwutBvlPl}*n zEMh{DehqZO-iBnrmFW8>bw~!azc^1(K@ZuyVYuOGi+kp^G*CzM6s-`!eelUyj!_!3 zrjPeY{5WRmbBV!Pn%bkov~WXsRrV_-jSHQ)Vah9q6>bXlv!HwB1C&=2P(iu(shR}~pO8vroOK&8wByC;Tqq{dr#5TBg!9=s^IJYH&iSG2_G0}uPbQ%Fd3#?U~g z-u>N4DxWUv;NuGaHyB!S60!(W`O&8rSye(YB~Mw9B%NXczw<+?M_y6cGhGx^pI-Kg z$L_=w)fC?*(NIUOtXZ5nblraeCe|S6A9hOJANUl0t|9bW!I^No?&V>p;vdu#{oXX5 z+I{-Dr!<}Ch%#sfj=CNRr(_cu<7o+PHN6Jeya+VJe#h(UFtncgit_gx&Q4=^o9}te zv`?%gFa%Sb_I@vZ`UrP>97;@e0Q~21f+u*x1CPhY2?*f78oM6&OjqnIe1Z~^2W$`? z0immdD;5q;9{ww4R#t9N@t<4gtjw%@e7uJ@4=Jb=@YpseAz6G6f4tpQ-^ft#;R946 zVLUM7rKgoLgzwYhb}+&Mno!arf0?f+jV2UR0b0yK@Ua+|Vk=F(4azG|5kyH?SeBRy zaEq%}IyrTo_i+H2$P^sX6B{*VG`PRC=2F9Ei<3Vy7(zOZSK;{rU0_}Avm`eLQE62yX|9{`pIe-sQWS+?gz^hYReu>=~$y+59|#k9a-1AmHkpMXnv zcJ=!;Qu@QMVcHWH$VU7_3hB(r(?({)^1urjoPd=2glM)qv~Fw`yqP`i5J&tAO&14|8`oIEPJ!3}zqpr`b*g&> zj=3Qn@Zap(ODJFnw(|zEp|RNP>_xnvS2&M-$8$FGW2`>P1=bt8{b5a_4X#`e*r>+w z!wcpkepiU-4P<0R!6@D$CQL6P`xGP1F}c6qeo^MS&}w?m>zR0ul1b!r4^^om5BRgg z;5hh%Xtg~+#p*k;N70|}o;h$PIYSjG7&&+VY&QOvl7UGW^2xjXjgDWo0d_YF8NLHJ z&I$(`il0;iSK~hWE%1+h#qmBMwqG6B63fnJr=V}Cba|=bRK{8H))8Q%dU6!DEHIH+BMxy+s(dG^~<%k=sm{=60bs?{MThKK0w6Z zocP2>c2o4;-?7sIt>5SMj-19%Cs~9VPDA{9$E*qE@QDYdxoC0X*hLh*n@ppJ4xchn zqhsNw|)9khgGv%fSPI#|IWoUDxr#_bmYg!c+u$NC!FVb z-%(&YQSjAa8xlo`bkJ&92LO@N8HjzsLOiaQ=h*X%AWz_qh`%H<_d=~t(&u)R>?n%s z8}BGPprlfr=cPp@;nc_%u|7WJd&xy#9f~z6ELvU&e7=f}%#)+5md2Swrz5oT&OrmF zf$(Qrn9%Agp4V=Yj+XmEzhgg~%}B4cbXv(GU$7aDD~}TK$v=;^h;ggn*0Sjrg&4o;GP3!NcP|7z_QcU99LN>LhwPuQFh8>PHV{X_2y@rfYTHCAVy9(9Z}I};J) zQ%xMF4}tB4*t+^WpRHBOfg@~JnuVmhHB_q6#?5K)mQ4(f@Q^*uqd zA&%1Pr-4KLjt%%}FM#~9^2kVukeeNrkJJu(P08AuqNFe$FOu8);b$29)8EDzkd}M? zyeg&o_AP6m?G8gRs?@}!Tqgn#OARq`8veCC>dE0K7oy2^S!M)5^)OJF>#r-J>F;f? zY-`P1(J|>NgdsuI7d6UH^eX=Dw|~y{K`xz9*9JTEObp59X}bYyFAzXFLV_yvPAsV2 z@4nU+=!OHx(SS*lu4awm7%Jvm{VK^t#u4Gw)$TY)_49R(k zrI=8QF`UK2Q#X=i>1vw6c>nt>OsKV+Q2DaDj9Uj{8ab6%3@}H~#x+CD$kNv+HM@=z zX*AEaoY`p4<(WU>UMd(1H!ux7v+JzkQ~Ug|Oja4=b>oqkPiC=`_FXC$UorV6m@X8d z(f_lVu4VW;vFwU)uXladL>0I7P(e@M`~LmllBV!NoMFs`AHwun>CenZ&zPe{sx$BT zSa&G1ph!PEWHVt$3V<-66TZxpgZetHh8XCGEZ-l=c-KcK;&Ui0ho7aBiZYUf)*CX8c?yN~#6m4Og9=#Z!TA>~M z1M$~--)8P>!BgVOTymGMXN9ahao8O#<0^+?ND?;BzxX(N7=^+rqNt7(%st(4&6*UH!Y?_!RHV-fp70Q3<7A8UH>$Bb7tL1qWHO1*tloj}jW19_WKum5 z1^byb6v-uX(q)5f0-~5yrjCmdPoDAu z++ahJBOxE1{aN!lv>~2Aq;`eVCY3oy@*W2HUZK%;q?WI$Rr3?;}S z<<;w_<(K@$L9ubi{&1+NaMSf>21KU~lBQ1@ z{U-3061?Gj3zFBn(x3nrlaPA_8#@{Arf~d6#!H98%2KcDpZMgs&`;4>eLI0SjZWO@ zC2a6*AK5c?1S`kkk`feiWRQW`7DVqdHili?v+S_~o+Ebe{iTbfn*)cEgoMjq@{1Kk zr>Cny78Tly=#q3sFCFaFwz-Z_ZII!fMy#kwk;_UIB6iGw-dbrDdFHWlRLTzr(}tfZ z*Sp5A)lkB12@Gr_{KI#t^C}x<&7BO#&|oTUh-=$ID)X2A&@J4U?k_3%c+{3%96~;U zyX*V_mZN;cZd}omnVcWV6+&o|5p=cR(?5szFJ4&tiLVZcVv}&NMet2oTIR}+{i+c? zi4LH$XLG+*o-(_6%GZPbOR!%Dnq7X_i7!m-Cc*5N)!1#Z8m;TxT8~R+yG!q?us9-3 zzhFB3BopAN;$^9vDaaTQ3(Edxi%x9sIpIsd8Ws5c84v!9<|^kf-}sOt&5I2DnB2M3 zb$TEmbvYhk900E1-D_$(`mlfu6nwQJqw7!g;Ud`u|`J z`P})#Qb*yFB*HjUYSe{T>aFsgp%Eway|oZJOHD{|hu>1VdH8wYyvdU;%YCik7ems*2v9g|Qwc5p5wJo|3xuUM{bn zyJ`h9WT*0nNTs3jz;7r!Q&j1Qy>nS83V+kGOzeaQ`%6;XgRpVnr8(O^}H zSIy9>-B5z1~_Fe)l$B^QVF>x>Gulz&0m@5Fq_VNZW+1v z(qM~AN=?_D`&iEud#O>=G~IaX>wR<`W8MZqTW@P>GX1uArZL`P)DaU31o;;^Mh$bo zicCgF#I!Op+}GqeOAiJ*%qJbw>!Isjs1hWB5pV2`tBv^sk4p2MIR-fp@*|EyW%0UZ zq%Ky&qo$+Jx?U%_5&da*vH1q?Z7Ho{6Gl4DNtA_}Y~_B>EE}6%F|9)WlDHjcn_hoX zFRVt8*XhPDld>Z6G^Yu?_g z{=DD;?jWzocyAe%d$oJlfU4Zh7~|+ZEz7lCD$kbkj`XR)5NuYOYIOs# zswBL;3V$S~Xqn@*HyPqu^;=2K3w!B$#?vl%+A4)>pLAo;#sL{-j8qgT8mrSb|YYot59f}{*q#g9W=LAihjR1t3s*8v%IFHY%K z&vyRDZGtJiGPSbGFWMSE@g|kUTe6J4a`=%Q@9BArmU0`;^4=dIdhmxRbj7h}2Y3yvhd>=IXP+wxgN2~ay^oB`~%q7eT4Z>=MAS}3o%D&bZKc-E6 zSG*_sHQxVoulCP!LoQPsG7=ln|GY!rPqWTgYhIWrofsTX7ZyM& zu?8S4ezQGbMR0K&G!gNr^ZXFZeCZA6YSu|`P?@Ga`Eo#b&0cAVPO{Wwpx?khG)1n& zvjAO3-M<)X_dbtNaRHTUtPhPOn?%Qa7e2oQdVY4kZe_-=d`S6q^bPMlGYM*XZ==Of z?GLqNw2f+q-Hr9j=HB(LYsT%)R9s|1`|x=WQ_>l}FUAG1lyPU!0Fw{chi!&iC z;vlU0cx#O*Qu?RChcIe!{VhFqMOkF0Z}11-_6ezI4#(q6%XKP$Q=vPA=Z=Rr55>rR z{1(#mlgrK!eP6f10YNJ$_fx<#E0oIjvipBLxX;%(3Kp>%Q0fQT6{RVxu%0fgaY(L^ z)6m00)c0Jj`#C6KbmV{+g0ioqgv^eSuDj=h+=TbdPnIMMeKufwz$OH5ys$2AfMOy% zy2U@!88y}@d&iW~+qw|8?i8ltPeAj*;kV*wE5Tc#3EvNI7jHhM0=4&UN`v*9;mff8 zLn4>I4@%&=z`ah7$K!*N$Nd=ZMd1y};2*FbaDF~eJm5W$Kj1&0fjQO#-09x>)&e4s zb+P;-dTkHYU{H}}LwB)8~EPwBPlx>{_m?o9-;mWDs~_^;9h zWd<=_Oiss8svNa*X^h+4u;zjAQ}}9kk2z;DahXZ`DyriqV9LF(lg+=zZl@9y{91E+z zH`Qglh6joeyCD2sn`dpGyN+;0XjOzGZYQ~0d`TUWie;X7&p>Q%J4z5*SAp@@#p9vwAYa5~tUN8nD}c+rdD3qDhdBh{4H1 zUEFb3vds+N61E!AsGIsNz@t3`fj+cD2P+=0Ter;^eo3ibyGbI@{20NnVW(?~I}~1o zCb|7p66)xPyZHnR2_SG;{`~uUtLG%Da1(aJyP@zTqx<(J)DxOE%D^1I|JiYGP%gy> zO$-3QYGiQ9(ktqIz<&V`ycAf`8*SSmG(jvu`{OcL@M)to4Hsa?F#^&~fN@(1pn2-zuYu)PLN#ukW`iMl4K zy|5d@wy3qu=hk+}s?ZK^M^HnRS3~UKO%dHi`H)6bj~R6JL^;TZe|zPWUhC-xRwno$ zm+)tf;tBE7R28 zmF6b>3~!#LWw8yfnZp62LFEXuh~y^Ou+^|+^s)gH`f-Xb7l~?3z|OqaXW-}R6{LIA zWhd;!U(hm)d9v9lI<4AH^wq}R83EhLaXX!sldEKduXWS}c{bCRgx$&_kvC7EsUb<{ zQ`Y>gWULci_VZXzW*6G_{Sz+h_NL>X=Jsv5)hjqLjaGNV#8<(CyfQZI?LZ*6!HB&385NHUw56WE_#72zgjNa@ad_bD z=AGUgrl15$fNwQ8@5q0FexWeY1p0*z%K<r=jq+9M)gKVv}46%#i z*}dbp<=zk(Tt4I_h_)C+SH{?{I~QG~zbERHuiTzj;=7ipQK78$TQ%k+MM#uL2zxV%&2ySn#J^#v zE~sYQMJ}P}Wa$jo9Q0i?p&N5v!4zX&jf@lyyvypzJw(I8C+h}tg^I}^zGikYG+byC z0OVbWtYqs5KpP?OgZk_OwmpZm{!+>lzPtk;fFXxq8a#AI_rR|MOK>^ayjVaNZ?v!5 zHCqw6li}r~(DF5@nRJRc`F&H*h7qg1kbj8oWJGT6*`Hj|u`Lj63WrIPTx@AcK2< zfv&z4yUR~Nmqz{|6J$9b<4&Bv1l$4dnkYp8!#_Z_e9jf0RrA(eo0=Fho4WM+{pQ6ORJc`}}0CD+ReY>0k2e3aicIDR?L(>WOj~^FWS6EXC zZI+XoH=PuVY1*lda>EcSI!Stug=oDx?j)Rm=TUKR0LE(EOK>MJtQKTD_w4Gt3=eE7 zHn&{B=|86><84r1RLJFbh5hQ12h%S>^2--|lN$tJd>z9XC+C~Z5qy9|8yVTRS!9g8AJ&ptZ5T?k^2P544P0fVsr|*(>D-dZPEx_o z{LXLGB0X06V9D=~cg+!FXM;ah2UpvslZ19{8Dj$^cbV6>qYdegA3_31M}9n9MlTbm z%F~;wlmNgBJNqpe0zma?LuJ+I@d6kEWEz3R7w~zL3BFc`^|he_^H;9~5X8x`Ft?w{ z_~J*q`$FiyNzV1u_m9A^BsNgq>mYJU9Qvc*;E2eMr^^=OUt+&R^ig@*@wop}4<5+c zUJi*Dk>$ZXk)Ub4Z?^DTe$>^l5*30AEDN?8>G%bhzYak@V}o1q0Q7Q#J%FO;Bd;+M zOK=8$Znod6VgM)Vh9Rl(s5MD#^mMNTW+>G8TQ^NBwN&zP{Y;uI){fP3sf1!&7H}6|?r8NnE%=)Y~XUjJzyHq$%+{2sXoN(}Te;^8Gosz`` zRCWGsfs1B7ey`}C?)V&c50OM7 z_ka;F84*%SGW~gB=D^Q)De#U$d)_L#37>ycDy;CU>lOPfof|(zd)l9S8iLVDN_r=y z9uDiDp#v6NCKB@KfSnQtGWp$WN>e4I`4J=lc4Zyb{yz1Iuw|by@!HF8G0zFFyxjNU z3jGZk@wKx%e$sX$4LlVmnrET0`rd_RE7yiH<&XIeM_Ov=3-p^>eNtD#fRZb2N_(6P zNy?WGdT&z=?+&eTd*N1+f1Y8?7mv9}|2mX>S)*g=6U%`1U!(N?AzQ9F0vu{?qg(Awrx6d1$V3Il2--vGr9XO0H&!0aA@ES$nZh zV_^)8oRsB+o_L{2&EvZ+`Sa9|n>2<3?Y)%xhWJYGMQvM&c6jJ8KC0q6_f8G7DJ9vX zU^SUK8qDU76lXqKfhg3C$;pB>Sdj9qw)S$MDs@c{EQa$7?U9km3d9A7B0jnL{PCp$ zeH5_1Q{D%3kpiSO4;Tv!kmkDusb<%qBk+AGBRz(=z@CT z_q$OV=`>yqWi62l-W7CCA001#y8FnY_}<<-+!YT!|Lrp7?>y?d+3mYkZj-9gGu+{s z7@>7ek9m&8ZTjoblQ8n7Ffw@l5eDxY&ZYUM2FJ3m*LHrQe^NCkH*n@(sm^oO9)*Oiq@P*Q*ePBo|yCz@J1IX3a&MRE9FIr9w z)$mIwyQ&iL0}_7_7fBr_jXra+u$SKH;TxupDGmwT!6$2rV z?HGCa&vV^gizh#R3*(^{>wKfTc=tjCwKb+ZeexDt$MCFP5meIpoZ2$R!VShIK`YXct?2R3_`is2| zzDPK-tf=f;LcckU>uzOwgwhvYUSAf~AsKNrxTDBlV|u;z&bH+Tl}pXvr(0`ZuD?UeF;l5 zY;SWYoNMyZDgh^6T+3a#f``|}*-py&Bg;q!ocdPLFOK%8dMFK_nz_u)5vJ@f*FFsU z`|c0od{M6;N0;!aN|+=USe-*|=IHREMCIH>E*gx20MYJAaN%9F6;g>p%keZRKqOE`kplW^x1y)EtIF( zBhSkkWz1ufm^3IleqRLxQNhY^# zd|iF+56gQ??`xrZ&UO5Qw-N#PBRj0`@F8&`B9BJ`>!{+&mJc{11~xptN6O2^LDpSU zJg2(vYZq2Jt}lNLCSFgmEM0WQHf1^1B3Em#S;?pcY45h8R|CIqezUD0+865nA;k)1 z*3%#=f?Jf#9o%GVZCZ$^F1%CN17^u8?6)&(gb@ysclPocE+-OcBU+N#29cy=PqLzT zt^LqQ;k!*(cI;dv2%YvC$u@UWo|`oNK6i*=ZxO{&sNY9DPLq%6|B=f>nW2`EXSQy= z$%%)`BJ3!cl^?A|6pJ-Qh7Jr`^G(0rnPLrK{QCp}QL^jtzV+`30=O^$PGzS(;OBZM zpLWdkPWj03W2D&hFbrCiK4V zpC#qDN9+`NI@DWx{OC+{ZqJCcNq+KMJ>FbPNo3!08YRc3p`btpCC7nMIY@etP*)+7 zTD76+V{&(<*5-hsl}^JBIzvS^y@-VUVpe)>P_j;fIoY)K>?<6bP~x~>#&+*`D7Bd= zqE#y8a^rz4ZA5*>z51aK7Ux)&DtvnPGbm~^1TyX5YzwXr{x8u~`>x>J{-zKj9vr%fP;R zmG@%b!8k<7!W}3%{~kf(BZs7<=yS3FIT_P|dUL74p=VY82$+Q#rZd}W0D6D!pWX^C z^D4n{R9+Qx_5jF%AK_sDa9QV@ng(w9`?+JC1ODd$)8E&uOYN5H;oGvZU0J>0{~sL% B)pq~@ literal 0 HcmV?d00001 diff --git a/Resources/Audio/items/jaws_pry.ogg b/Resources/Audio/items/jaws_pry.ogg new file mode 100644 index 0000000000000000000000000000000000000000..05178bd466314b9e4b6121c1f66e134ed32c43ba GIT binary patch literal 17202 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⪻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 Rk1qfK002ovPDHLkV1lxpiogH> literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Tools/drill.rsi/drill_screw.png b/Resources/Textures/Objects/Tools/drill.rsi/drill_screw.png new file mode 100644 index 0000000000000000000000000000000000000000..f4cb59c283d3c03c8c175bdf4d9a2dd08db00f4a GIT binary patch literal 831 zcmV-F1Hk-=P)ZQUpsP2_#`EiU>EYqQ!(3Zn7**SFNIO5fSBp zjV)R@$$)|oxTs)8bRkwuh_8HpHRy~p^ID8=K72FIo0)|h|C@X7dFP(gMA_Del8uwWiPU~fnK&(P9pJ9@msTm@+S^EnM@dB@B>~lOdFue8DB|^c0oY!C zm5#FpPoA6LPB1BnD1nBChG?WG4U-(d{SK$o$@0t$7K;U^(+NQMbVSYiw3*@i;|b$# z3_lnL1pTn=Q5`rM`XU91}cpc3=ybf<~e%2C*)BU>+YrZ@nl%Qh* zn4Fw6KrGopU-~gwI+0}=fTpG6Qx3}YRMKXQ#>Q{CbV_`vLT$E$7qh&j5LnQi7)4`HkDYTT?~b-~NvP!LF6lDax!Pv5De-;BW} z0-K9TjVin5J-zhs*8KunupQKQ< z1^Gn~$jG${1^*WKHj;l$OW>KiC7RWBb#+-$u#ZMAD79iTA}~8UizG>mcYjZit7WGb zvMfWfR<64YwarFKs+TErRe|~z$OUcUe0C2Kl|-%t^jyvRg8%0wHf+ybnr8q2002ov JPDHLkV1lindI10c literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Tools/drill.rsi/meta.json b/Resources/Textures/Objects/Tools/drill.rsi/meta.json new file mode 100644 index 0000000000..0b31ed1416 --- /dev/null +++ b/Resources/Textures/Objects/Tools/drill.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC BY-SA 3.0", "copyright": "Taken from https://github.com/tgstation/tgstation at commit ea59fb4b810decbb5996b36d8876614b57c3d189", "states": [{"name": "drill_bolt", "directions": 1, "delays": [[1.0]]}, {"name": "drill_screw", "directions": 1, "delays": [[1.0]]}]} diff --git a/Resources/Textures/Objects/Tools/jaws_of_life.rsi/jaws_cutter.png b/Resources/Textures/Objects/Tools/jaws_of_life.rsi/jaws_cutter.png new file mode 100644 index 0000000000000000000000000000000000000000..42695acd7c2f5de54346b2f8f7ed9b6750996b0a GIT binary patch literal 667 zcmV;M0%ZM(P)ZnQ~d#5Bm_6Qc*)at3_1kM3gM{& zJ4m1sQ5fh-9t>M%Cuvs}af@8n-I;af*J0Oj$C>RG5zGf3!|%P{@BO~-J>~}<9v&VZ z9{(6$vw#pny7^UAb)1QS>)um7{ox+hfDl4XOib8(fj|I&csyi$%uA#~B$Jp-?E0N~MU$;{fBX^fUk~D=Vba=`&#;-*WxMdzNqYlYMYm znpzd3qGM`R4s%(Iiq6k(RgUXtHa9m3hr?DUYyy(WWK#jB92^{=D9V|DN6#P>g2zd2 zhC+`0ueP@VQ0^&?m_tA&lQ|dm0TLfDI5=2Kq$uR`d27dR{hP*}L}w=z)1*6}XKQPV z)zwwo2poSwYilbV9UZnL?d|Pci$n&~@F4-C0_q43vT6x)r*+DH|qb)8I$3 zh%O};hKAVL*>SuhwhpMO>Jvi9Y&J{j=*aT-UG3vaFv!Nn2BlKT)~Tm%W$*4fT;E+T zcXZ%;W`8eN>im;=(S1jeh!!W(RkO|q0qtm!sGqkyLaz>-~0XUcMu^$ga{G- zcf^hpq-mP;*FuP6y>lW2{KADo0n4)3+S+1aVIe?b2xNE$4SReTH8x%fmz%h2>G0o}MO?$te5$=L)~Auk^foP3*~suH@@?Zb{ePrMKrCzwX`#pufMr zi$s9+%*>3On3#x#={NK9Jer$hb8}P0Uwr$Rk!SCzTpPgIYvb;tQOR#;qIJbDW> zO_M?hz&mh;VUW#cDV0h}H=9irf3sZ125exbBR~53upJlMb@;ixO-oA7rqk5x^}rzv z+yg?0n12tLrm4EkX0tRmHUOyC>ni?XSlerB0aqiWc<2QFo(4cVomReTwR)o0@u~j{ eB1DLA>i7douN;YX&>&|30000True True True - True + True + True