diff --git a/Content.Server/Interaction/TilePryCommand.cs b/Content.Server/Interaction/TilePryCommand.cs index fa75b6d9e4..57b07e8181 100644 --- a/Content.Server/Interaction/TilePryCommand.cs +++ b/Content.Server/Interaction/TilePryCommand.cs @@ -7,9 +7,6 @@ using Robust.Shared.Map; namespace Content.Server.Interaction { - /// - /// - /// [AdminCommand(AdminFlags.Debug)] sealed class TilePryCommand : IConsoleCommand { diff --git a/Content.Server/Tools/Components/LatticeCuttingComponent.cs b/Content.Server/Tools/Components/LatticeCuttingComponent.cs deleted file mode 100644 index 077d64cf7f..0000000000 --- a/Content.Server/Tools/Components/LatticeCuttingComponent.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Content.Shared.Tools; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; - -namespace Content.Server.Tools.Components; - -[RegisterComponent] -public sealed partial class LatticeCuttingComponent : Component -{ - [DataField("qualityNeeded", customTypeSerializer:typeof(PrototypeIdSerializer))] - public string QualityNeeded = "Cutting"; - - [DataField("delay")] - public float Delay = 1f; - - [DataField("vacuumDelay")] - public float VacuumDelay = 1.75f; -} diff --git a/Content.Server/Tools/ToolSystem.LatticeCutting.cs b/Content.Server/Tools/ToolSystem.LatticeCutting.cs deleted file mode 100644 index ab289c1ae2..0000000000 --- a/Content.Server/Tools/ToolSystem.LatticeCutting.cs +++ /dev/null @@ -1,81 +0,0 @@ -using Content.Server.Administration.Logs; -using Content.Server.Maps; -using Content.Server.Tools.Components; -using Content.Shared.Database; -using Content.Shared.DoAfter; -using Content.Shared.Interaction; -using Content.Shared.Maps; -using Content.Shared.Tools.Components; -using Robust.Shared.Map; - -namespace Content.Server.Tools; - -public sealed partial class ToolSystem -{ - [Dependency] private readonly IAdminLogManager _adminLogger = default!; - [Dependency] private readonly TileSystem _tile = default!; - - private void InitializeLatticeCutting() - { - SubscribeLocalEvent(OnLatticeCuttingAfterInteract); - SubscribeLocalEvent(OnLatticeCutComplete); - } - - private void OnLatticeCutComplete(EntityUid uid, LatticeCuttingComponent component, LatticeCuttingCompleteEvent args) - { - if (args.Cancelled) - return; - - var coords = GetCoordinates(args.Coordinates); - var gridUid = coords.GetGridUid(EntityManager); - if (gridUid == null) - return; - var grid = _mapManager.GetGrid(gridUid.Value); - var tile = grid.GetTileRef(coords); - - if (_tileDefinitionManager[tile.Tile.TypeId] is not ContentTileDefinition tileDef - || !tileDef.CanWirecutter - || string.IsNullOrEmpty(tileDef.BaseTurf) - || tile.IsBlockedTurf(true)) - return; - - _tile.CutTile(tile); - _adminLogger.Add(LogType.LatticeCut, LogImpact.Medium, $"{ToPrettyString(args.User):user} cut the lattice at {args.Coordinates:target}"); - } - - private void OnLatticeCuttingAfterInteract(EntityUid uid, LatticeCuttingComponent component, - AfterInteractEvent args) - { - if (args.Handled || !args.CanReach || args.Target != null) - return; - - if (TryCut(uid, args.User, component, args.ClickLocation)) - args.Handled = true; - } - - private bool TryCut(EntityUid toolEntity, EntityUid user, LatticeCuttingComponent component, EntityCoordinates clickLocation) - { - if (!_mapManager.TryFindGridAt(clickLocation.ToMap(EntityManager, _transformSystem), out _, out var mapGrid)) - return false; - - var tile = mapGrid.GetTileRef(clickLocation); - - var coordinates = mapGrid.GridTileToLocal(tile.GridIndices); - - if (!InteractionSystem.InRangeUnobstructed(user, coordinates, popup: false)) - return false; - - if (_tileDefinitionManager[tile.Tile.TypeId] is not ContentTileDefinition tileDef - || !tileDef.CanWirecutter - || string.IsNullOrEmpty(tileDef.BaseTurf) - || _tileDefinitionManager[tileDef.BaseTurf] is not ContentTileDefinition || - tile.IsBlockedTurf(true)) - { - return false; - } - - var ev = new LatticeCuttingCompleteEvent(GetNetCoordinates(coordinates)); - return UseTool(toolEntity, user, toolEntity, component.Delay, component.QualityNeeded, ev); - } -} - diff --git a/Content.Server/Tools/ToolSystem.Welder.cs b/Content.Server/Tools/ToolSystem.Welder.cs index 6f8fb54d72..98e29c763a 100644 --- a/Content.Server/Tools/ToolSystem.Welder.cs +++ b/Content.Server/Tools/ToolSystem.Welder.cs @@ -70,7 +70,7 @@ namespace Content.Server.Tools _solutionContainer.RemoveReagent(entity.Comp.FuelSolution.Value, entity.Comp.FuelReagent, entity.Comp.FuelLitCost); // Logging - _adminLogger.Add(LogType.InteractActivate, LogImpact.Low, $"{ToPrettyString(args.User):user} toggled {ToPrettyString(entity.Owner):welder} on"); + AdminLogger.Add(LogType.InteractActivate, LogImpact.Low, $"{ToPrettyString(args.User):user} toggled {ToPrettyString(entity.Owner):welder} on"); _ignitionSource.SetIgnited(entity.Owner); @@ -88,7 +88,7 @@ namespace Content.Server.Tools public void TurnOff(Entity entity, ref ItemToggleDeactivateAttemptEvent args) { // Logging - _adminLogger.Add(LogType.InteractActivate, LogImpact.Low, $"{ToPrettyString(args.User):user} toggled {ToPrettyString(entity.Owner):welder} off"); + AdminLogger.Add(LogType.InteractActivate, LogImpact.Low, $"{ToPrettyString(args.User):user} toggled {ToPrettyString(entity.Owner):welder} off"); _ignitionSource.SetIgnited(entity.Owner, false); diff --git a/Content.Server/Tools/ToolSystem.cs b/Content.Server/Tools/ToolSystem.cs index 6153b579a1..7bae177892 100644 --- a/Content.Server/Tools/ToolSystem.cs +++ b/Content.Server/Tools/ToolSystem.cs @@ -4,7 +4,6 @@ using Content.Server.Popups; using Content.Server.Tools.Components; using Robust.Server.GameObjects; using Robust.Shared.Audio.Systems; -using Robust.Shared.Map; using SharedToolSystem = Content.Shared.Tools.Systems.SharedToolSystem; @@ -13,13 +12,9 @@ namespace Content.Server.Tools // TODO move tool system to shared, and make it a friend of Tool Component. public sealed partial class ToolSystem : SharedToolSystem { - [Dependency] private readonly IMapManager _mapManager = default!; - [Dependency] private readonly ITileDefinitionManager _tileDefinitionManager = default!; - [Dependency] private readonly AppearanceSystem _appearanceSystem = default!; [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; [Dependency] private readonly PopupSystem _popup = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; - [Dependency] private readonly SharedPointLightSystem _light = default!; [Dependency] private readonly SolutionContainerSystem _solutionContainer = default!; [Dependency] private readonly TransformSystem _transformSystem = default!; @@ -27,7 +22,6 @@ namespace Content.Server.Tools { base.Initialize(); - InitializeLatticeCutting(); InitializeWelders(); } diff --git a/Content.Shared/Maps/ContentTileDefinition.cs b/Content.Shared/Maps/ContentTileDefinition.cs index f3a26a359f..40f337b129 100644 --- a/Content.Shared/Maps/ContentTileDefinition.cs +++ b/Content.Shared/Maps/ContentTileDefinition.cs @@ -1,5 +1,6 @@ using Content.Shared.Atmos; using Content.Shared.Movement.Systems; +using Content.Shared.Tools; using Robust.Shared.Audio; using Robust.Shared.Map; using Robust.Shared.Prototypes; @@ -12,6 +13,9 @@ namespace Content.Shared.Maps [Prototype("tile")] public sealed partial class ContentTileDefinition : IPrototype, IInheritingPrototype, ITileDefinition { + [ValidatePrototypeId] + public const string PryingToolQuality = "Prying"; + public const string SpaceID = "Space"; [ParentDataFieldAttribute(typeof(AbstractPrototypeIdArraySerializer))] @@ -38,14 +42,13 @@ namespace Content.Shared.Maps [DataField("baseTurf")] public string BaseTurf { get; private set; } = string.Empty; - [DataField("canCrowbar")] public bool CanCrowbar { get; private set; } + [DataField] + public PrototypeFlags DeconstructTools { get; set; } = new(); - /// - /// Whether this tile can be pried by an advanced prying tool if not pryable otherwise. - /// - [DataField("canAxe")] public bool CanAxe { get; private set; } - - [DataField("canWirecutter")] public bool CanWirecutter { get; private set; } + /// + /// Legacy AF but nice to have. + /// + public bool CanCrowbar => DeconstructTools.Contains(PryingToolQuality); /// /// These play when the mob has shoes on. diff --git a/Content.Shared/Maps/TileSystem.cs b/Content.Shared/Maps/TileSystem.cs index 2c09375d59..51a5d4b85a 100644 --- a/Content.Shared/Maps/TileSystem.cs +++ b/Content.Shared/Maps/TileSystem.cs @@ -65,22 +65,7 @@ public sealed class TileSystem : EntitySystem var tileDef = (ContentTileDefinition) _tileDefinitionManager[tile.TypeId]; - if (!tileDef.CanCrowbar && !(pryPlating && tileDef.CanAxe)) - return false; - - return DeconstructTile(tileRef); - } - - public bool CutTile(TileRef tileRef) - { - var tile = tileRef.Tile; - - if (tile.IsEmpty) - return false; - - var tileDef = (ContentTileDefinition) _tileDefinitionManager[tile.TypeId]; - - if (!tileDef.CanWirecutter) + if (!tileDef.CanCrowbar) return false; return DeconstructTile(tileRef); @@ -112,7 +97,7 @@ public sealed class TileSystem : EntitySystem return true; } - private bool DeconstructTile(TileRef tileRef) + public bool DeconstructTile(TileRef tileRef) { if (tileRef.Tile.IsEmpty) return false; diff --git a/Content.Shared/Tools/Components/TilePryingComponent.cs b/Content.Shared/Tools/Components/TilePryingComponent.cs deleted file mode 100644 index 4c123ca1ed..0000000000 --- a/Content.Shared/Tools/Components/TilePryingComponent.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Robust.Shared.GameStates; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; - -namespace Content.Shared.Tools.Components; - -/// -/// Allows prying tiles up on a grid. -/// -[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] -public sealed partial class TilePryingComponent : Component -{ - [DataField("toolComponentNeeded"), AutoNetworkedField] - public bool ToolComponentNeeded = true; - - [DataField("qualityNeeded", customTypeSerializer:typeof(PrototypeIdSerializer)), AutoNetworkedField] - public string QualityNeeded = "Prying"; - - /// - /// Whether this tool can pry tiles with CanAxe. - /// - [DataField("advanced"), AutoNetworkedField] - public bool Advanced = false; - - [DataField("delay"), AutoNetworkedField] - public float Delay = 1f; -} diff --git a/Content.Shared/Tools/Components/ToolTileCompatibleComponent.cs b/Content.Shared/Tools/Components/ToolTileCompatibleComponent.cs new file mode 100644 index 0000000000..caac41a3de --- /dev/null +++ b/Content.Shared/Tools/Components/ToolTileCompatibleComponent.cs @@ -0,0 +1,44 @@ +using Content.Shared.DoAfter; +using Content.Shared.Tools.Systems; +using Robust.Shared.GameStates; +using Robust.Shared.Map; +using Robust.Shared.Serialization; + +namespace Content.Shared.Tools.Components; + +/// +/// This is used for entities with that are additionally +/// able to modify tiles. +/// +[RegisterComponent, NetworkedComponent] +[Access(typeof(SharedToolSystem))] +public sealed partial class ToolTileCompatibleComponent : Component +{ + /// + /// The time it takes to modify the tile. + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public TimeSpan Delay = TimeSpan.FromSeconds(1); + + /// + /// Whether or not the tile being modified must be unobstructed + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public bool RequiresUnobstructed = true; +} + +[Serializable, NetSerializable] +public sealed partial class TileToolDoAfterEvent : DoAfterEvent +{ + public NetCoordinates Coordinates; + + public TileToolDoAfterEvent(NetCoordinates coordinates) + { + Coordinates = coordinates; + } + + public override DoAfterEvent Clone() + { + return this; + } +} diff --git a/Content.Shared/Tools/Systems/SharedToolSystem.MultipleTool.cs b/Content.Shared/Tools/Systems/SharedToolSystem.MultipleTool.cs index cb8830060a..9114c62ade 100644 --- a/Content.Shared/Tools/Systems/SharedToolSystem.MultipleTool.cs +++ b/Content.Shared/Tools/Systems/SharedToolSystem.MultipleTool.cs @@ -5,7 +5,7 @@ using Content.Shared.Tools.Components; namespace Content.Shared.Tools.Systems; -public abstract partial class SharedToolSystem : EntitySystem +public abstract partial class SharedToolSystem { public void InitializeMultipleTool() { @@ -57,7 +57,7 @@ public abstract partial class SharedToolSystem : EntitySystem if (!Resolve(uid, ref multiple, ref tool)) return; - Dirty(multiple); + Dirty(uid, multiple); if (multiple.Entries.Length <= multiple.CurrentEntry) { diff --git a/Content.Shared/Tools/Systems/SharedToolSystem.Tile.cs b/Content.Shared/Tools/Systems/SharedToolSystem.Tile.cs new file mode 100644 index 0000000000..4ccdb2ef49 --- /dev/null +++ b/Content.Shared/Tools/Systems/SharedToolSystem.Tile.cs @@ -0,0 +1,103 @@ +using Content.Shared.Database; +using Content.Shared.Fluids.Components; +using Content.Shared.Interaction; +using Content.Shared.Maps; +using Content.Shared.Physics; +using Content.Shared.Tools.Components; +using Robust.Shared.Map; +using Robust.Shared.Map.Components; +using Robust.Shared.Network; +using Robust.Shared.Utility; + +namespace Content.Shared.Tools.Systems; + +public abstract partial class SharedToolSystem +{ + [Dependency] private readonly INetManager _net = default!; + + public void InitializeTile() + { + SubscribeLocalEvent(OnToolTileAfterInteract); + SubscribeLocalEvent(OnToolTileComplete); + } + + private void OnToolTileAfterInteract(Entity ent, ref AfterInteractEvent args) + { + if (args.Handled || args.Target != null && !HasComp(args.Target)) + return; + + args.Handled = UseToolOnTile((ent, ent, null), args.User, args.ClickLocation); + } + + private void OnToolTileComplete(Entity ent, ref TileToolDoAfterEvent args) + { + var comp = ent.Comp; + if (args.Handled || args.Cancelled) + return; + + if (!TryComp(ent, out var tool)) + return; + var coordinates = GetCoordinates(args.Coordinates); + + var gridUid = coordinates.GetGridUid(EntityManager); + if (!TryComp(gridUid, out var grid)) + { + Log.Error("Attempted use tool on a non-existent grid?"); + return; + } + + var tileRef = _maps.GetTileRef(gridUid.Value, grid, coordinates); + if (comp.RequiresUnobstructed && _turfs.IsTileBlocked(gridUid.Value, tileRef.GridIndices, CollisionGroup.MobMask)) + return; + + if (!TryDeconstructWithToolQualities(tileRef, tool.Qualities)) + return; + + AdminLogger.Add(LogType.LatticeCut, LogImpact.Medium, + $"{ToPrettyString(args.User):player} used {ToPrettyString(ent)} to edit the tile at {args.Coordinates}"); + args.Handled = true; + } + + private bool UseToolOnTile(Entity ent, EntityUid user, EntityCoordinates clickLocation) + { + if (!Resolve(ent, ref ent.Comp1, ref ent.Comp2, false)) + return false; + + var comp = ent.Comp1!; + var tool = ent.Comp2!; + + if (!_mapManager.TryFindGridAt(clickLocation.ToMap(EntityManager, _transformSystem), out var gridUid, out var mapGrid)) + return false; + + var tileRef = _maps.GetTileRef(gridUid, mapGrid, clickLocation); + var tileDef = (ContentTileDefinition) _tileDefManager[tileRef.Tile.TypeId]; + + if (!tool.Qualities.ContainsAny(tileDef.DeconstructTools)) + return false; + + if (string.IsNullOrWhiteSpace(tileDef.BaseTurf)) + return false; + + if (comp.RequiresUnobstructed && _turfs.IsTileBlocked(gridUid, tileRef.GridIndices, CollisionGroup.MobMask)) + return false; + + var coordinates = _maps.GridTileToLocal(gridUid, mapGrid, tileRef.GridIndices); + if (!InteractionSystem.InRangeUnobstructed(user, coordinates, popup: false)) + return false; + + var args = new TileToolDoAfterEvent(GetNetCoordinates(coordinates)); + UseTool(ent, user, ent, comp.Delay, tool.Qualities, args, out _, toolComponent: tool); + return true; + } + + public bool TryDeconstructWithToolQualities(TileRef tileRef, PrototypeFlags withToolQualities) + { + var tileDef = (ContentTileDefinition) _tileDefManager[tileRef.Tile.TypeId]; + if (withToolQualities.ContainsAny(tileDef.DeconstructTools)) + { + // don't do this on the client or else the tile entity spawn mispredicts and looks horrible + return _net.IsClient || _tiles.DeconstructTile(tileRef); + } + return false; + } +} diff --git a/Content.Shared/Tools/Systems/SharedToolSystem.TilePrying.cs b/Content.Shared/Tools/Systems/SharedToolSystem.TilePrying.cs deleted file mode 100644 index 81592f5a98..0000000000 --- a/Content.Shared/Tools/Systems/SharedToolSystem.TilePrying.cs +++ /dev/null @@ -1,82 +0,0 @@ -using Content.Shared.Database; -using Content.Shared.Fluids.Components; -using Content.Shared.Interaction; -using Content.Shared.Maps; -using Content.Shared.Tools.Components; -using Robust.Shared.Map; -using Robust.Shared.Map.Components; - -namespace Content.Shared.Tools.Systems; - -public abstract partial class SharedToolSystem -{ - private void InitializeTilePrying() - { - SubscribeLocalEvent(OnTilePryingAfterInteract); - SubscribeLocalEvent(OnTilePryComplete); - } - - private void OnTilePryingAfterInteract(EntityUid uid, TilePryingComponent component, AfterInteractEvent args) - { - if (args.Handled || !args.CanReach || args.Target != null && !HasComp(args.Target)) - return; - - if (TryPryTile(uid, args.User, component, args.ClickLocation)) - args.Handled = true; - } - - private void OnTilePryComplete(EntityUid uid, TilePryingComponent component, TilePryingDoAfterEvent args) - { - if (args.Cancelled) - return; - - var coords = GetCoordinates(args.Coordinates); - var gridUid = coords.GetGridUid(EntityManager); - if (!TryComp(gridUid, out MapGridComponent? grid)) - { - Log.Error("Attempted to pry from a non-existent grid?"); - return; - } - - var tile = _maps.GetTileRef(gridUid.Value, grid, coords); - var center = _turfs.GetTileCenter(tile); - - if (args.Used != null) - { - _adminLogger.Add(LogType.Tile, LogImpact.Low, - $"{ToPrettyString(args.User):actor} used {ToPrettyString(args.Used.Value):tool} to pry {_tileDefManager[tile.Tile.TypeId].Name} at {center}"); - } - else - { - _adminLogger.Add(LogType.Tile, LogImpact.Low, - $"{ToPrettyString(args.User):actor} pried {_tileDefManager[tile.Tile.TypeId].Name} at {center}"); - } - - if (_netManager.IsServer) - _tiles.PryTile(tile, component.Advanced); - } - - private bool TryPryTile(EntityUid toolEntity, EntityUid user, TilePryingComponent component, EntityCoordinates clickLocation) - { - if (!TryComp(toolEntity, out var tool) && component.ToolComponentNeeded) - return false; - - if (!_mapManager.TryFindGridAt(clickLocation.ToMap(EntityManager, _transformSystem), out var gridUid, out var mapGrid)) - return false; - - var tile = _maps.GetTileRef(gridUid, mapGrid, clickLocation); - var coordinates = _maps.GridTileToLocal(gridUid, mapGrid, tile.GridIndices); - - if (!InteractionSystem.InRangeUnobstructed(user, coordinates, popup: false)) - return false; - - var tileDef = (ContentTileDefinition) _tileDefManager[tile.Tile.TypeId]; - - if (!tileDef.CanCrowbar && !(tileDef.CanAxe && component.Advanced)) - return false; - - var ev = new TilePryingDoAfterEvent(GetNetCoordinates(coordinates)); - - return UseTool(toolEntity, user, toolEntity, component.Delay, component.QualityNeeded, ev, toolComponent: tool); - } -} diff --git a/Content.Shared/Tools/Systems/SharedToolSystem.cs b/Content.Shared/Tools/Systems/SharedToolSystem.cs index 91984d29e3..a4f21ff466 100644 --- a/Content.Shared/Tools/Systems/SharedToolSystem.cs +++ b/Content.Shared/Tools/Systems/SharedToolSystem.cs @@ -3,10 +3,8 @@ using Content.Shared.DoAfter; using Content.Shared.Interaction; using Content.Shared.Maps; using Content.Shared.Tools.Components; -using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Map; -using Robust.Shared.Network; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; using Robust.Shared.Utility; @@ -16,9 +14,8 @@ namespace Content.Shared.Tools.Systems; public abstract partial class SharedToolSystem : EntitySystem { [Dependency] private readonly IMapManager _mapManager = default!; - [Dependency] private readonly INetManager _netManager = default!; [Dependency] private readonly IPrototypeManager _protoMan = default!; - [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; + [Dependency] protected readonly ISharedAdminLogManager AdminLogger = default!; [Dependency] private readonly ITileDefinitionManager _tileDefManager = default!; [Dependency] private readonly SharedAudioSystem _audioSystem = default!; [Dependency] private readonly SharedDoAfterSystem _doAfterSystem = default!; @@ -31,7 +28,7 @@ public abstract partial class SharedToolSystem : EntitySystem public override void Initialize() { InitializeMultipleTool(); - InitializeTilePrying(); + InitializeTile(); SubscribeLocalEvent(OnDoAfter); } @@ -151,8 +148,6 @@ public abstract partial class SharedToolSystem : EntitySystem /// The quality needed for this tool to work. /// The event that will be raised when the tool has finished (including cancellation). Event /// will be directed at the tool target. - /// The id of the DoAfter that was created. This may be null even if the function returns true in - /// the event that this tool-use cancelled an existing DoAfter /// The tool component. /// Returns true if any interaction takes place. public bool UseTool( diff --git a/Resources/Prototypes/Entities/Debugging/spanisharmyknife.yml b/Resources/Prototypes/Entities/Debugging/spanisharmyknife.yml index 94464f2535..b7fb1188cc 100644 --- a/Resources/Prototypes/Entities/Debugging/spanisharmyknife.yml +++ b/Resources/Prototypes/Entities/Debugging/spanisharmyknife.yml @@ -20,7 +20,7 @@ damage: types: Slash: 10 - - type: TilePrying + - type: ToolTileCompatible - type: Tool qualities: - Prying diff --git a/Resources/Prototypes/Entities/Objects/Tools/cowtools.yml b/Resources/Prototypes/Entities/Objects/Tools/cowtools.yml index 05a80043e8..286078ae87 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/cowtools.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/cowtools.yml @@ -93,7 +93,7 @@ useSound: path: /Audio/Items/crowbar.ogg speed: 0.05 - - type: TilePrying + - type: ToolTileCompatible - type: Prying - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Tools/jaws_of_life.yml b/Resources/Prototypes/Entities/Objects/Tools/jaws_of_life.yml index 2a35e4dc07..2c64459171 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/jaws_of_life.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/jaws_of_life.yml @@ -17,8 +17,7 @@ quickEquip: false slots: - Belt - - type: TilePrying - - type: LatticeCutting + - type: ToolTileCompatible - type: Tool qualities: - Prying diff --git a/Resources/Prototypes/Entities/Objects/Tools/tools.yml b/Resources/Prototypes/Entities/Objects/Tools/tools.yml index 216deefcd0..619324a2f2 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/tools.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/tools.yml @@ -37,7 +37,7 @@ - type: Item sprite: Objects/Tools/wirecutters.rsi storedRotation: -90 - - type: LatticeCutting + - type: ToolTileCompatible - type: PhysicalComposition materialComposition: Steel: 100 @@ -156,7 +156,7 @@ - Prying useSound: path: /Audio/Items/crowbar.ogg - - type: TilePrying + - type: ToolTileCompatible - type: PhysicalComposition materialComposition: Steel: 100 @@ -431,7 +431,6 @@ - type: Tag tags: - Multitool - - type: TilePrying - type: Prying enabled: false - type: Tool @@ -439,7 +438,7 @@ - Screwing speed: 1.2 # Kept for future adjustments. Currently 1.2x for balance useSound: /Audio/Items/drill_use.ogg - - type: LatticeCutting + - type: ToolTileCompatible - type: MultipleTool statusShowBehavior: true entries: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml index 7384ae487b..b46ee09633 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml @@ -37,7 +37,7 @@ - type: Tool qualities: - Prying - - type: TilePrying + - type: ToolTileCompatible - type: Prying - type: UseDelay delay: 1 diff --git a/Resources/Prototypes/Tiles/floors.yml b/Resources/Prototypes/Tiles/floors.yml index 3a80bdddc4..d265aa843d 100644 --- a/Resources/Prototypes/Tiles/floors.yml +++ b/Resources/Prototypes/Tiles/floors.yml @@ -10,7 +10,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemSteel @@ -28,7 +28,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemSteelCheckerLight @@ -46,7 +46,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemSteelCheckerDark @@ -64,7 +64,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemSteel @@ -82,7 +82,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemSteel @@ -100,7 +100,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemSteel @@ -112,7 +112,7 @@ sprite: /Textures/Tiles/steel_offset.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemSteel @@ -130,7 +130,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemSteel @@ -148,7 +148,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemSteel @@ -166,7 +166,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemSteel @@ -184,7 +184,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemSteel @@ -202,7 +202,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemSteel @@ -220,7 +220,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepWood barestepSounds: @@ -240,7 +240,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemWhite @@ -258,7 +258,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemWhite @@ -276,7 +276,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemWhite @@ -294,7 +294,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemWhite @@ -306,7 +306,7 @@ sprite: /Textures/Tiles/white_offset.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemWhite @@ -324,7 +324,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemWhite @@ -342,7 +342,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemWhite @@ -360,7 +360,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemWhite @@ -378,7 +378,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemWhite @@ -396,7 +396,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemWhite @@ -414,7 +414,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemDark @@ -432,7 +432,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemDark @@ -450,7 +450,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemDark @@ -468,7 +468,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemDark @@ -480,7 +480,7 @@ sprite: /Textures/Tiles/dark_offset.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemDark @@ -498,7 +498,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemDark @@ -516,7 +516,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemDark @@ -534,7 +534,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemDark @@ -552,7 +552,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemDark @@ -570,7 +570,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemDark @@ -582,7 +582,7 @@ sprite: /Textures/Tiles/tech_maint.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepHull itemDrop: FloorTileItemTechmaint @@ -594,7 +594,7 @@ sprite: /Textures/Tiles/reinforced.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepHull itemDrop: FloorTileItemReinforced @@ -606,7 +606,7 @@ sprite: /Textures/Tiles/mono.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemMono @@ -618,7 +618,7 @@ sprite: /Textures/Tiles/lino.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemLino @@ -630,7 +630,7 @@ sprite: /Textures/Tiles/steel_dirty.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepPlating itemDrop: FloorTileItemDirty @@ -642,7 +642,7 @@ sprite: /Textures/Tiles/elevator_shaft.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepHull itemDrop: FloorTileItemElevatorShaft @@ -654,7 +654,7 @@ sprite: /Textures/Tiles/metaldiamond.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepHull itemDrop: FloorTileItemMetalDiamond @@ -666,7 +666,7 @@ sprite: /Textures/Tiles/rock_vault.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepAsteroid itemDrop: FloorTileItemRockVault @@ -678,7 +678,7 @@ sprite: /Textures/Tiles/blue.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemBlue @@ -696,7 +696,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemLime @@ -708,7 +708,7 @@ sprite: /Textures/Tiles/mining_floor.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemMining @@ -720,7 +720,7 @@ sprite: /Textures/Tiles/mining_floor_dark.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemMiningDark @@ -732,7 +732,7 @@ sprite: /Textures/Tiles/mining_floor_light.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemMiningLight @@ -745,7 +745,7 @@ sprite: /Textures/Tiles/freezer.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepHull itemDrop: FloorTileItemFreezer @@ -757,7 +757,7 @@ sprite: /Textures/Tiles/showroom.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemShowroom @@ -769,7 +769,7 @@ sprite: /Textures/Tiles/hydro.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemHydro @@ -787,7 +787,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemBar @@ -799,7 +799,7 @@ sprite: /Textures/Tiles/clown.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemClown @@ -811,7 +811,7 @@ sprite: /Textures/Tiles/mime.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemMime @@ -823,7 +823,7 @@ sprite: /Textures/Tiles/kitchen.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemKitchen @@ -835,7 +835,7 @@ sprite: /Textures/Tiles/laundry.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemLaundry @@ -854,7 +854,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemSteel #This should probably be made null when it becomes possible to make it such, in SS13 prying destroyed tiles wouldn't give you anything. @@ -870,7 +870,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemSteel #Same case as FloorSteelDamaged, make it null when possible @@ -890,7 +890,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemConcrete @@ -909,7 +909,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemConcrete @@ -928,7 +928,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemConcrete @@ -947,7 +947,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemGrayConcrete @@ -966,7 +966,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemGrayConcrete @@ -985,7 +985,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemGrayConcrete @@ -1004,7 +1004,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemOldConcrete @@ -1023,7 +1023,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemOldConcrete @@ -1042,7 +1042,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemOldConcrete @@ -1056,7 +1056,7 @@ sprite: /Textures/Tiles/arcadeblue.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepCarpet barestepSounds: @@ -1071,7 +1071,7 @@ sprite: /Textures/Tiles/arcadeblue2.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepCarpet barestepSounds: @@ -1086,7 +1086,7 @@ sprite: /Textures/Tiles/arcadered.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepCarpet barestepSounds: @@ -1101,7 +1101,7 @@ sprite: /Textures/Tiles/eighties.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepCarpet barestepSounds: @@ -1116,7 +1116,7 @@ sprite: /Textures/Tiles/carpetclown.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepCarpet barestepSounds: @@ -1131,7 +1131,7 @@ sprite: /Textures/Tiles/carpetoffice.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepCarpet barestepSounds: @@ -1152,7 +1152,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor friction: 0.25 @@ -1171,7 +1171,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor friction: 0.25 @@ -1185,7 +1185,7 @@ sprite: /Textures/Tiles/shuttlewhite.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemShuttleWhite @@ -1197,7 +1197,7 @@ sprite: /Textures/Tiles/shuttleblue.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemShuttleBlue @@ -1209,7 +1209,7 @@ sprite: /Textures/Tiles/shuttleorange.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemShuttleOrange @@ -1221,7 +1221,7 @@ sprite: /Textures/Tiles/shuttlepurple.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemShuttlePurple @@ -1233,7 +1233,7 @@ sprite: /Textures/Tiles/shuttlered.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepFloor itemDrop: FloorTileItemShuttleRed @@ -1247,7 +1247,7 @@ sprite: /Textures/Tiles/gold.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemGold @@ -1259,7 +1259,7 @@ sprite: /Textures/Tiles/silver.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: FloorTileItemSilver @@ -1277,7 +1277,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: SheetGlass1 @@ -1295,7 +1295,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepTile itemDrop: SheetRGlass1 @@ -1308,7 +1308,7 @@ sprite: /Textures/Tiles/green_circuit.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepHull itemDrop: FloorTileItemGCircuit @@ -1320,7 +1320,7 @@ sprite: /Textures/Tiles/blue_circuit.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepHull itemDrop: FloorTileItemBCircuit @@ -1345,7 +1345,6 @@ - 1.0 baseTurf: FloorDirt isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepTile heatCapacity: 10000 @@ -1357,7 +1356,6 @@ sprite: /Textures/Tiles/grass.png baseTurf: FloorDirt isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepGrass itemDrop: FloorTileItemGrass @@ -1370,7 +1368,6 @@ sprite: /Textures/Tiles/grassjungle.png baseTurf: FloorDirt isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepGrass itemDrop: FloorTileItemGrassJungle @@ -1389,7 +1386,6 @@ - 1.0 baseTurf: FloorDirt isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepGrass heatCapacity: 10000 @@ -1407,7 +1403,6 @@ - 1.0 baseTurf: FloorDirt isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepGrass heatCapacity: 10000 @@ -1425,7 +1420,6 @@ - 1.0 baseTurf: Plating isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepAsteroid heatCapacity: 10000 @@ -1454,7 +1448,6 @@ - 0.0116 baseTurf: Space isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepAsteroid heatCapacity: 10000 @@ -1466,7 +1459,6 @@ sprite: /Textures/Tiles/Asteroid/asteroid_dug.png baseTurf: Space isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepAsteroid heatCapacity: 10000 @@ -1493,7 +1485,6 @@ - 0.0116 baseTurf: Space isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepAsteroid heatCapacity: 10000 @@ -1505,7 +1496,7 @@ sprite: /Textures/Tiles/Asteroid/asteroid_tile.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepAsteroid heatCapacity: 10000 @@ -1534,7 +1525,6 @@ - 1.0 baseTurf: Space isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepAsteroid heatCapacity: 10000 @@ -1546,7 +1536,6 @@ sprite: /Textures/Tiles/Asteroid/asteroid0.png baseTurf: Space isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepAsteroid heatCapacity: 10000 @@ -1558,7 +1547,6 @@ sprite: /Textures/Tiles/Asteroid/ironsand0.png baseTurf: Space isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepAsteroid heatCapacity: 10000 @@ -1580,7 +1568,6 @@ - 1.0 baseTurf: Space isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepAsteroid heatCapacity: 10000 @@ -1601,7 +1588,6 @@ - 1.0 baseTurf: Space isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepAsteroid heatCapacity: 10000 @@ -1618,7 +1604,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepBlood itemDrop: FloorTileItemFlesh @@ -1631,7 +1617,7 @@ sprite: /Textures/Tiles/steel_maint.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepHull itemDrop: FloorTileItemSteelMaint @@ -1649,7 +1635,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepHull itemDrop: FloorTileItemGratingMaint @@ -1667,7 +1653,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepWood barestepSounds: @@ -1690,7 +1676,7 @@ - 1.0 baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepWood barestepSounds: @@ -1704,7 +1690,7 @@ sprite: /Textures/Tiles/Misc/Web/web_tile.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepCarpet barestepSounds: @@ -1727,7 +1713,6 @@ - 1.0 baseTurf: Space isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepAsteroid heatCapacity: 10000 @@ -1739,8 +1724,6 @@ sprite: /Textures/Tiles/hull.png baseTurf: Plating isSubfloor: false - canCrowbar: false - canAxe: false #You can't RCD these in SS13 apparently, so this is probably the next best thing footstepSounds: collection: FootstepHull itemDrop: FloorTileItemSteel #probably should not be normally obtainable, but the game shits itself and dies when you try to put null here @@ -1752,8 +1735,6 @@ sprite: /Textures/Tiles/hull_reinforced.png baseTurf: Plating isSubfloor: false - canCrowbar: false - canAxe: false footstepSounds: collection: FootstepHull itemDrop: FloorTileItemSteel @@ -1765,8 +1746,6 @@ sprite: /Textures/Tiles/super_reinforced.png baseTurf: Plating isSubfloor: false - canCrowbar: false - canAxe: false footstepSounds: collection: FootstepHull itemDrop: FloorTileItemReinforced #same case as FloorHull @@ -1796,7 +1775,7 @@ West: /Textures/Tiles/Planet/Grass/double_edge.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] footstepSounds: collection: FootstepGrass itemDrop: FloorTileItemAstroGrass @@ -1809,7 +1788,7 @@ sprite: /Textures/Tiles/Planet/Snow/ice.png baseTurf: Plating isSubfloor: false - canCrowbar: true + deconstructTools: [ Prying ] friction: 0.05 heatCapacity: 10000 mobFriction: 0.5 diff --git a/Resources/Prototypes/Tiles/planet.yml b/Resources/Prototypes/Tiles/planet.yml index c5095eb5d0..5a158bdcfc 100644 --- a/Resources/Prototypes/Tiles/planet.yml +++ b/Resources/Prototypes/Tiles/planet.yml @@ -3,7 +3,6 @@ name: tiles-dirt-floor sprite: /Textures/Tiles/Planet/dirt.rsi/dirt.png isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepAsteroid heatCapacity: 10000 @@ -24,7 +23,6 @@ - 1.0 - 1.0 isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepAsteroid heatCapacity: 10000 @@ -44,7 +42,6 @@ - 1.0 - 1.0 isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepAsteroid heatCapacity: 10000 @@ -74,7 +71,6 @@ West: /Textures/Tiles/Planet/Grass/double_edge.png baseTurf: FloorPlanetDirt isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepGrass itemDrop: FloorTileItemGrass @@ -88,7 +84,6 @@ name: tiles-basalt-floor sprite: /Textures/Tiles/Planet/basalt.png isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepAsteroid heatCapacity: 10000 @@ -122,7 +117,6 @@ North: /Textures/Tiles/Planet/Snow/snow_double_edge_north.png West: /Textures/Tiles/Planet/Snow/snow_double_edge_west.png isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepSnow heatCapacity: 10000 @@ -135,7 +129,6 @@ name: tiles-ice sprite: /Textures/Tiles/Planet/Snow/ice.png isSubfloor: true - canCrowbar: false friction: 0.05 heatCapacity: 10000 weather: true @@ -156,7 +149,6 @@ North: /Textures/Tiles/Planet/Snow/snow_dug_double_edge_north.png West: /Textures/Tiles/Planet/Snow/snow_dug_double_edge_west.png isSubfloor: true - canCrowbar: false footstepSounds: collection: FootstepSnow heatCapacity: 10000 diff --git a/Resources/Prototypes/Tiles/plating.yml b/Resources/Prototypes/Tiles/plating.yml index 7cf841eec0..3164e77fd2 100644 --- a/Resources/Prototypes/Tiles/plating.yml +++ b/Resources/Prototypes/Tiles/plating.yml @@ -4,7 +4,6 @@ sprite: /Textures/Tiles/plating.png baseTurf: Lattice isSubfloor: true - canAxe: true footstepSounds: collection: FootstepPlating friction: 0.3 @@ -21,7 +20,6 @@ - 1.0 baseTurf: Lattice isSubfloor: true - canAxe: true footstepSounds: collection: FootstepPlating friction: 0.3 @@ -33,7 +31,6 @@ sprite: /Textures/Tiles/plating_burnt.png baseTurf: Lattice isSubfloor: true - canAxe: true footstepSounds: collection: FootstepPlating friction: 0.3 @@ -45,7 +42,6 @@ sprite: /Textures/Tiles/Asteroid/asteroid_plating.png baseTurf: Lattice isSubfloor: true - canAxe: true footstepSounds: collection: FootstepPlating friction: 0.3 @@ -57,7 +53,6 @@ sprite: /Textures/Tiles/snow_plating.png #Not in the snow planet RSI because it doesn't have any metadata. Should probably be moved to its own folder later. baseTurf: Lattice isSubfloor: true - canAxe: true footstepSounds: collection: FootstepPlating friction: 0.15 #a little less then actual snow @@ -69,7 +64,7 @@ sprite: /Textures/Tiles/lattice.png baseTurf: Space isSubfloor: true - canWirecutter: true + deconstructTools: [ Cutting ] weather: true footstepSounds: collection: FootstepPlating diff --git a/Resources/Prototypes/XenoArch/Effects/utility_effects.yml b/Resources/Prototypes/XenoArch/Effects/utility_effects.yml index 65ebcab944..9bcbfe4477 100644 --- a/Resources/Prototypes/XenoArch/Effects/utility_effects.yml +++ b/Resources/Prototypes/XenoArch/Effects/utility_effects.yml @@ -207,12 +207,11 @@ components: - Item permanentComponents: - - type: TilePrying - type: UserInterface interfaces: - key: enum.SignalLinkerUiKey.Key type: SignalPortSelectorBoundUserInterface - - type: LatticeCutting + - type: ToolTileCompatible - type: Tool qualities: - Screwing