diff --git a/Content.Server/_NF/Tools/Component/DisableToolUseComponent.cs b/Content.Server/_NF/Tools/Component/DisableToolUseComponent.cs
new file mode 100644
index 00000000000..c9dd9b4cc5c
--- /dev/null
+++ b/Content.Server/_NF/Tools/Component/DisableToolUseComponent.cs
@@ -0,0 +1,34 @@
+using Content.Shared.Tools;
+using Robust.Shared.Prototypes;
+using Robust.Shared.Utility;
+
+namespace Content.Server._NF.Tools.Components
+{
+ [RegisterComponent]
+ public sealed partial class DisableToolUseComponent : Component
+ {
+ // A field for each tool use type to allow for inheritance
+ [DataField, ViewVariables(VVAccess.ReadWrite)]
+ public bool Anchoring;
+ [DataField, ViewVariables(VVAccess.ReadWrite)]
+ public bool Prying;
+ [DataField, ViewVariables(VVAccess.ReadWrite)]
+ public bool Screwing;
+ [DataField, ViewVariables(VVAccess.ReadWrite)]
+ public bool Cutting;
+ [DataField, ViewVariables(VVAccess.ReadWrite)]
+ public bool Welding;
+ [DataField, ViewVariables(VVAccess.ReadWrite)]
+ public bool Pulsing;
+ [DataField, ViewVariables(VVAccess.ReadWrite)]
+ public bool Slicing;
+ [DataField, ViewVariables(VVAccess.ReadWrite)]
+ public bool Sawing;
+ [DataField, ViewVariables(VVAccess.ReadWrite)]
+ public bool Honking;
+ [DataField, ViewVariables(VVAccess.ReadWrite)]
+ public bool Rolling;
+ [DataField, ViewVariables(VVAccess.ReadWrite)]
+ public bool Digging;
+ }
+}
diff --git a/Content.Server/_NF/Tools/Component/OnToolsUseComponent.cs b/Content.Server/_NF/Tools/Component/OnToolsUseComponent.cs
deleted file mode 100644
index 670d1b34ee2..00000000000
--- a/Content.Server/_NF/Tools/Component/OnToolsUseComponent.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using Content.Shared.Chemistry.Components;
-using Content.Shared.Chemistry.Reagent;
-using Content.Shared.FixedPoint;
-using Content.Shared.Tools.Components;
-using Robust.Shared.Audio;
-using Robust.Shared.Prototypes;
-
-namespace Content.Server._NF.Tools.Components
-{
- [RegisterComponent]
- public sealed partial class OnToolsUseComponent : Component
- {
- ///
- /// Disable the use of tools on the entity.
- ///
- [DataField, ViewVariables(VVAccess.ReadWrite)]
- public bool Disabled;
- }
-}
diff --git a/Content.Server/_NF/Tools/DisableToolUseSystem.cs b/Content.Server/_NF/Tools/DisableToolUseSystem.cs
new file mode 100644
index 00000000000..2763c8dd4bf
--- /dev/null
+++ b/Content.Server/_NF/Tools/DisableToolUseSystem.cs
@@ -0,0 +1,57 @@
+using Content.Server._NF.Tools.Components;
+using Content.Shared.Tools;
+using Content.Shared.Tools.Components;
+using Robust.Shared.Prototypes;
+using Robust.Shared.Toolshed.TypeParsers;
+
+namespace Content.Server._NF.Tools;
+
+public sealed class DisableToolUseSystem : EntitySystem
+{
+ public override void Initialize()
+ {
+ base.Initialize();
+ SubscribeLocalEvent(OnToolUseAttempt);
+ }
+
+ private void OnToolUseAttempt(EntityUid uid, DisableToolUseComponent component, ToolUseAttemptEvent args)
+ {
+ // Check each tool quality being cancelled.
+ foreach (var quality in args.Qualities)
+ {
+ if (Disabled(component, quality))
+ args.Cancel();
+ }
+ }
+
+ private bool Disabled(DisableToolUseComponent component, ProtoId quality)
+ {
+ switch (quality)
+ {
+ case "Anchoring":
+ return component.Anchoring;
+ case "Prying":
+ return component.Prying;
+ case "Screwing":
+ return component.Screwing;
+ case "Cutting":
+ return component.Cutting;
+ case "Welding":
+ return component.Welding;
+ case "Pulsing":
+ return component.Pulsing;
+ case "Slicing":
+ return component.Slicing;
+ case "Sawing":
+ return component.Sawing;
+ case "Honking":
+ return component.Honking;
+ case "Rolling":
+ return component.Rolling;
+ case "Digging":
+ return component.Digging;
+ default:
+ return false;
+ }
+ }
+}
diff --git a/Content.Server/_NF/Tools/OnToolsUseSystem.cs b/Content.Server/_NF/Tools/OnToolsUseSystem.cs
deleted file mode 100644
index 5c72d599afb..00000000000
--- a/Content.Server/_NF/Tools/OnToolsUseSystem.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using Content.Server._NF.Tools.Components;
-using Content.Shared.Tools.Components;
-
-namespace Content.Server._NF.Tools;
-
-public sealed class OnToolsUseSystem : EntitySystem
-{
- public override void Initialize()
- {
- base.Initialize();
- SubscribeLocalEvent(OnToolUseAttempt);
- }
-
- private void OnToolUseAttempt(EntityUid uid, OnToolsUseComponent component, ToolUseAttemptEvent args)
- {
- // prevent deconstruct
- if (component.Disabled)
- args.Cancel();
- }
-}
diff --git a/Content.Shared/Tools/Components/ToolComponent.cs b/Content.Shared/Tools/Components/ToolComponent.cs
index a7210c6fa07..5d661e185f7 100644
--- a/Content.Shared/Tools/Components/ToolComponent.cs
+++ b/Content.Shared/Tools/Components/ToolComponent.cs
@@ -26,10 +26,12 @@ public sealed partial class ToolComponent : Component
/// Attempt event called *before* any do afters to see if the tool usage should succeed or not.
/// Raised on both the tool and then target.
///
-public sealed class ToolUseAttemptEvent(EntityUid user, float fuel) : CancellableEntityEventArgs
+public sealed class ToolUseAttemptEvent(EntityUid user, float fuel, EntityUid tool, IEnumerable qualities) : CancellableEntityEventArgs // Frontier: added tool, qualities
{
public EntityUid User { get; } = user;
public float Fuel = fuel;
+ public EntityUid Tool { get; } = tool; // Frontier: the tool being used
+ public IEnumerable Qualities { get; } = qualities; // Frontier: the tool qualities being used here
}
///
diff --git a/Content.Shared/Tools/Systems/SharedToolSystem.cs b/Content.Shared/Tools/Systems/SharedToolSystem.cs
index 201eb19a88b..f269c6e4c06 100644
--- a/Content.Shared/Tools/Systems/SharedToolSystem.cs
+++ b/Content.Shared/Tools/Systems/SharedToolSystem.cs
@@ -217,7 +217,7 @@ private bool CanStartToolUse(EntityUid tool, EntityUid user, EntityUid? target,
return false;
// check if the tool allows being used
- var beforeAttempt = new ToolUseAttemptEvent(user, fuel);
+ var beforeAttempt = new ToolUseAttemptEvent(user, fuel, tool, toolQualitiesNeeded); // Frontier: added tool, toolQualitiesNeeded
RaiseLocalEvent(tool, beforeAttempt);
if (beforeAttempt.Cancelled)
return false;
diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml b/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml
index db0b97f000f..3200d15ea16 100644
--- a/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml
+++ b/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml
@@ -249,7 +249,7 @@
#HOS's hardsuit
- type: entity
id: SuitStorageHOS
- parent: [BaseStructureIndestructible, BaseStructureLockImmuneToEmag, BaseStructureAccessReaderImmuneToEmag, BaseStructureDisableToolUse, BaseStructureUnanchorable, SuitStorageBase] # Frontier
+ parent: [BaseStructureIndestructible, BaseStructureLockImmuneToEmag, BaseStructureAccessReaderImmuneToEmag, BaseStructureDisableToolUse, SuitStorageBase] # Frontier: added BaseStructureDisableToolUse
suffix: Head of Security
components:
- type: StorageFill
@@ -268,7 +268,7 @@
#Warden's hardsuit
- type: entity
id: SuitStorageWarden
- parent: [BaseStructureIndestructible, BaseStructureLockImmuneToEmag, BaseStructureAccessReaderImmuneToEmag, BaseStructureDisableToolUse, BaseStructureUnanchorable, SuitStorageBase] # Frontier
+ parent: [BaseStructureIndestructible, BaseStructureLockImmuneToEmag, BaseStructureAccessReaderImmuneToEmag, BaseStructureDisableToolUse, SuitStorageBase] # Frontier: added BaseStructureDisableToolUse
suffix: Warden
components:
- type: StorageFill
diff --git a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml
index 531c290aaa1..f14dd3df580 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml
@@ -141,7 +141,7 @@
noRot: false
- type: entity
- parent: [BaseStructureUnanchorable, VendingMachine] # Frontier
+ parent: [BaseStructureDisableAnchoring, VendingMachine] # Frontier
id: VendingMachineAmmo
name: liberation station
description: An overwhelming amount of ancient patriotism washes over you just by looking at the machine.
@@ -204,7 +204,7 @@
- Bartender
- type: entity
- parent: [BaseStructureIndestructible, BaseStructureAccessReaderImmuneToEmag, VendingMachine] # Frontier
+ parent: [BaseStructureDisableScrewing, BaseStructureIndestructible, BaseStructureAccessReaderImmuneToEmag, VendingMachine] # Frontier: add BaseStructureDisableScrewing, BaseStructureIndestructible, BaseStructureAccessReaderImmuneToEmag
id: VendingMachineCart
name: PTech
description: PTech vending! Providing a ROBUST selection of PDAs, cartridges, and anything else a dull paper pusher needs!
@@ -1883,7 +1883,7 @@
map: ["enum.WiresVisualLayers.MaintenancePanel"]
- type: entity
- parent: [BaseStructureUnanchorable, VendingMachine] # Frontier
+ parent: [BaseStructureDisableAnchoring, VendingMachine] # Frontier
id: VendingMachineSyndieDrobe
name: SyndieDrobe
description: Wardrobe machine encoded by the syndicate, contains elite outfits for various operations.
@@ -1993,7 +1993,7 @@
map: ["enum.WiresVisualLayers.MaintenancePanel"]
- type: entity
- parent: [BaseStructureUnanchorable, VendingMachine] # Frontier
+ parent: [BaseStructureDisableAnchoring, VendingMachine] # Frontier
id: VendingMachineCentDrobe
name: CentDrobe
description: A one-of-a-kind vending machine for all your centcom aesthetic needs!
diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/lockers.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/lockers.yml
index f71bfe23ece..e41ad80d71c 100644
--- a/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/lockers.yml
+++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/lockers.yml
@@ -295,7 +295,7 @@
# HoS
- type: entity
id: LockerHeadOfSecurity
- parent: [BaseStructureIndestructible, BaseStructureLockImmuneToEmag, BaseStructureAccessReaderImmuneToEmag, BaseStructureDisableToolUse, BaseStructureUnanchorable, LockerBaseSecure] # Frontier
+ parent: [BaseStructureIndestructible, BaseStructureLockImmuneToEmag, BaseStructureAccessReaderImmuneToEmag, BaseStructureDisableToolUse, BaseStructureDisableAnchoring, LockerBaseSecure] # Frontier
name: head of security's locker
components:
- type: Appearance
@@ -309,7 +309,7 @@
# Warden
- type: entity
id: LockerWarden
- parent: [BaseStructureIndestructible, BaseStructureLockImmuneToEmag, BaseStructureAccessReaderImmuneToEmag, BaseStructureDisableToolUse, BaseStructureUnanchorable, LockerBaseSecure] # Frontier
+ parent: [BaseStructureIndestructible, BaseStructureLockImmuneToEmag, BaseStructureAccessReaderImmuneToEmag, BaseStructureDisableToolUse, BaseStructureDisableAnchoring, LockerBaseSecure] # Frontier
name: warden's locker
components:
- type: Appearance
diff --git a/Resources/Prototypes/_NF/Entities/Structures/Machines/fax_machine.yml b/Resources/Prototypes/_NF/Entities/Structures/Machines/fax_machine.yml
index 534dde26b42..fbaaaf7eaee 100644
--- a/Resources/Prototypes/_NF/Entities/Structures/Machines/fax_machine.yml
+++ b/Resources/Prototypes/_NF/Entities/Structures/Machines/fax_machine.yml
@@ -19,7 +19,7 @@
# Outpost
- type: entity
- parent: [BaseStructureDisableToolUse, BaseStructureUnanchorable, FaxMachineBase]
+ parent: [BaseStructureDisableToolUse, FaxMachineBase]
id: FaxMachineNFOutpostSTC
suffix: Outpost, STC
noSpawn: true
@@ -28,7 +28,7 @@
name: "Frontier Outpost STC"
- type: entity
- parent: [BaseStructureDisableToolUse, BaseStructureUnanchorable, FaxMachineBase]
+ parent: [BaseStructureDisableToolUse, FaxMachineBase]
id: FaxMachineNFOutpostSR
suffix: Outpost, SR
noSpawn: true
@@ -37,7 +37,7 @@
name: "Frontier Outpost SR"
- type: entity
- parent: [BaseStructureDisableToolUse, BaseStructureUnanchorable, FaxMachineBase]
+ parent: [BaseStructureDisableToolUse, FaxMachineBase]
id: FaxMachineNFOutpostGuard
suffix: Outpost, Guard
noSpawn: true
@@ -46,7 +46,7 @@
name: "Frontier Outpost Guard"
- type: entity
- parent: [BaseStructureDisableToolUse, BaseStructureUnanchorable, FaxMachineBase]
+ parent: [BaseStructureDisableToolUse, FaxMachineBase]
id: FaxMachineNFOutpostReception
suffix: Outpost, Reception
noSpawn: true
@@ -55,7 +55,7 @@
name: "Frontier Outpost Reception"
- type: entity
- parent: [BaseStructureDisableToolUse, BaseStructureUnanchorable, FaxMachineCaptain]
+ parent: [BaseStructureDisableToolUse, FaxMachineCaptain]
id: FaxMachineNFOutpostAdministration
suffix: Outpost, Administration
noSpawn: true
@@ -65,7 +65,7 @@
# POI
- type: entity
- parent: [BaseStructureDisableToolUse, BaseStructureUnanchorable, FaxMachineBase]
+ parent: [BaseStructureDisableToolUse, FaxMachineBase]
id: FaxMachineNFBeacon
suffix: POI, Omnichurch Beacon
noSpawn: true
@@ -74,7 +74,7 @@
name: "Omnichurch Beacon"
- type: entity
- parent: [BaseStructureDisableToolUse, BaseStructureUnanchorable, FaxMachineSyndie, FaxMachineShipAntag]
+ parent: [BaseStructureDisableToolUse, FaxMachineSyndie, FaxMachineShipAntag]
id: FaxMachineNFLPBravo
suffix: POI, LP Bravo
noSpawn: true
@@ -85,7 +85,7 @@
powerDisabled: true #starts off
- type: entity
- parent: [BaseStructureDisableToolUse, BaseStructureUnanchorable, FaxMachineBase]
+ parent: [BaseStructureDisableToolUse, FaxMachineBase]
id: FaxMachineNFLodge
suffix: POI, Lodge
noSpawn: true
@@ -94,7 +94,7 @@
name: "The Lodge"
- type: entity
- parent: [BaseStructureDisableToolUse, BaseStructureUnanchorable, FaxMachineBase]
+ parent: [BaseStructureDisableToolUse, FaxMachineBase]
id: FaxMachineNFPole
suffix: POI, Pole
noSpawn: true
@@ -103,7 +103,7 @@
name: "The North Pole"
- type: entity
- parent: [BaseStructureDisableToolUse, BaseStructureUnanchorable, FaxMachineBase]
+ parent: [BaseStructureDisableToolUse, FaxMachineBase]
id: FaxMachineNFTinnia
suffix: POI, Tinnia
noSpawn: true
@@ -112,7 +112,7 @@
name: "Tinnia's Rest"
- type: entity
- parent: [BaseStructureDisableToolUse, BaseStructureUnanchorable, FaxMachineBase]
+ parent: [BaseStructureDisableToolUse, FaxMachineBase]
id: FaxMachineNFTrade
suffix: POI, Trade
noSpawn: true
@@ -121,7 +121,7 @@
name: "Trade Outpost"
- type: entity
- parent: [BaseStructureDisableToolUse, BaseStructureUnanchorable, FaxMachineBase]
+ parent: [BaseStructureDisableToolUse, FaxMachineBase]
id: FaxMachineNFLab
suffix: POI, Lab
noSpawn: true
@@ -130,7 +130,7 @@
name: "Anomalous Lab"
- type: entity
- parent: [BaseStructureDisableToolUse, BaseStructureUnanchorable, FaxMachineBase]
+ parent: [BaseStructureDisableToolUse, FaxMachineBase]
id: FaxMachineNFArena
suffix: POI, Arena
noSpawn: true
@@ -139,7 +139,7 @@
name: "The Pit"
- type: entity
- parent: [BaseStructureDisableToolUse, BaseStructureUnanchorable, FaxMachineBase]
+ parent: [BaseStructureDisableToolUse, FaxMachineBase]
id: FaxMachineNFCasino
suffix: POI, Casino
noSpawn: true
@@ -148,7 +148,7 @@
name: "Casey's Casino"
- type: entity
- parent: [BaseStructureDisableToolUse, BaseStructureUnanchorable, FaxMachineBase]
+ parent: [BaseStructureDisableToolUse, FaxMachineBase]
id: FaxMachineNFCourthouse
suffix: POI, Courthouse
noSpawn: true
@@ -157,7 +157,7 @@
name: "Courthouse"
- type: entity
- parent: [BaseStructureDisableToolUse, BaseStructureUnanchorable, FaxMachineShipAntag]
+ parent: [BaseStructureDisableToolUse, FaxMachineShipAntag]
id: FaxMachineNFCove
suffix: POI, Cove
noSpawn: true
@@ -166,7 +166,7 @@
name: "Pirate's Cove"
- type: entity
- parent: [BaseStructureDisableToolUse, BaseStructureUnanchorable, FaxMachineBase]
+ parent: [BaseStructureDisableToolUse, FaxMachineBase]
id: FaxMachineNFNfsd
suffix: POI, NFSD
noSpawn: true
@@ -175,7 +175,7 @@
name: "NFSD Outpost Sheriff"
- type: entity
- parent: [BaseStructureDisableToolUse, BaseStructureUnanchorable, FaxMachineBase]
+ parent: [BaseStructureDisableToolUse, FaxMachineBase]
id: FaxMachineNFNfsdLawyer
suffix: POI, NFSD Lawyer
noSpawn: true
diff --git a/Resources/Prototypes/_NF/Entities/Structures/Machines/vending_machines.yml b/Resources/Prototypes/_NF/Entities/Structures/Machines/vending_machines.yml
index 4c7b538f828..b78c7343807 100644
--- a/Resources/Prototypes/_NF/Entities/Structures/Machines/vending_machines.yml
+++ b/Resources/Prototypes/_NF/Entities/Structures/Machines/vending_machines.yml
@@ -1,5 +1,5 @@
- type: entity
- parent: [BaseStructureUnanchorable, VendingMachine]
+ parent: [BaseStructureDisableAnchoring, VendingMachine]
id: VendingMachineCuddlyCritterVend
name: CuddlyCritterVend
description: Step into the world of wonder and warmth with Cuddly Critters Vending Machine, a haven for plushie and toy enthusiasts alike.
@@ -30,7 +30,7 @@
mod: 15
- type: entity
- parent: [BaseStructureUnanchorable, VendingMachine]
+ parent: [BaseStructureDisableAnchoring, VendingMachine]
id: VendingMachineAstroVend
name: AstroVend
description: Essential gear for the spaceman on the go.
@@ -67,7 +67,7 @@
pack: AstroVendPOIInventory
- type: entity
- parent: [BaseStructureUnanchorable, VendingMachine]
+ parent: [BaseStructureDisableAnchoring, VendingMachine]
id: VendingMachineFlatpackVend
name: FlatpackVend
description: Essential tech for the spaceman on the go.
@@ -99,7 +99,7 @@
mod: 25
- type: entity
- parent: [BaseStructureUnanchorable, VendingMachineFlatpackVend]
+ parent: [BaseStructureDisableAnchoring, VendingMachineFlatpackVend]
id: VendingMachineExpeditionaryFlatpackVend
name: Expeditionary FlatpackVend
description: Essential tech for the spaceman on an expedition.
@@ -110,7 +110,7 @@
sprite: _NF/Structures/Machines/VendingMachines/expeditionaryflatpackvend.rsi
- type: entity
- parent: [BaseStructureUnanchorable, VendingMachine]
+ parent: [BaseStructureDisableAnchoring, VendingMachine]
id: VendingMachineSyndieContraband
name: ContraVend
description: Wanted across multiple sectors!
@@ -149,7 +149,7 @@
mod: 50
- type: entity
- parent: [BaseStructureUnanchorable, VendingMachine]
+ parent: [BaseStructureDisableAnchoring, VendingMachine]
id: VendingMachineBountyVend
name: BountyVend
description: Essential gear for the bounty hunter on the go.
@@ -244,7 +244,7 @@
color: "#ff033e"
- type: entity
- parent: LessLethalVendingMachine
+ parent: [BaseStructureDisableAnchoring, LessLethalVendingMachine]
id: LessLethalVendingMachinePOI
suffix: POI
components:
@@ -285,7 +285,7 @@
color: "#ff033e"
- type: entity
- parent: [BaseStructureUnanchorable, VendingMachine]
+ parent: [BaseStructureDisableAnchoring, VendingMachine]
id: VendingMachineAutoTuneVend
name: AutoTune
description: Feeling BASSed? Time to TUNE into AutoVend! Take NOTES and let your audience TREBLE.
@@ -336,7 +336,7 @@
# - type: GhostTakeoverAvailable
- type: entity
- parent: [BaseStructureUnanchorable, VendingMachine]
+ parent: [BaseStructureDisableAnchoring, VendingMachine]
id: VendingMachinePottedPlantVend
name: Plant-O-Matic
description: Sometimes potted plants are the best crewmates money can get.
@@ -370,7 +370,7 @@
mod: 10
- type: entity
- parent: [BaseStructureUnanchorable, VendingMachine]
+ parent: [BaseStructureDisableAnchoring, VendingMachine]
id: VendingMachineNfsdDrobe
name: NFSDDrobe
description: A vending machine for NFSD and NFSD clothing!
@@ -396,7 +396,7 @@
access: [["Security"]]
- type: entity
- parent: [BaseStructureUnanchorable, VendingMachine]
+ parent: [BaseStructureDisableAnchoring, VendingMachine]
id: VendingMachineYarrrDrobe
name: YarrrDrobe
description: A vending machine for skallywags and booty lovers!
@@ -420,7 +420,7 @@
map: ["enum.WiresVisualLayers.MaintenancePanel"]
- type: entity
- parent: [BaseStructureUnanchorable, VendingMachine]
+ parent: [BaseStructureDisableAnchoring, VendingMachine]
id: VendingMachineNfsdTech
name: NFSDTech
description: A vending machine for NFSD and NFSD tech!
@@ -446,7 +446,7 @@
access: [["Security"]]
- type: entity
- parent: [BaseStructureIndestructible, BaseStructureAccessReaderImmuneToEmag, VendingMachineCart] # Frontier
+ parent: VendingMachineCart # Frontier
id: VendingMachineCartNfsd
suffix: NFSD
components:
@@ -602,13 +602,13 @@
map: ["enum.WiresVisualLayers.MaintenancePanel"]
- type: entity
- parent: [BaseCiviMedVend, BaseStructureUnanchorable, BaseStructureIndestructible, VendingMachine]
+ parent: [BaseCiviMedVend, BaseStructureDisableAnchoring, BaseStructureIndestructible, VendingMachine]
id: VendingMachineCiviMedPlus
name: CiviMed Plus
description: CiviMed Plus, distributing lifesaving meds harder than the rocks you break! Miners, DON'T DIE!
- type: entity
- parent: [BaseCiviMedVend, BaseStructureUnanchorable, BaseStructureIndestructible, VendingMachineWallmount]
+ parent: [BaseCiviMedVend, BaseStructureDisableAnchoring, BaseStructureIndestructible, VendingMachineWallmount]
id: VendingMachineCiviMed
name: CiviMed
description: CiviMed, distributing lifesaving meds harder than the rocks you break! Miners, DON'T DIE!
diff --git a/Resources/Prototypes/_NF/Entities/Structures/Shuttles/thrusters_security.yml b/Resources/Prototypes/_NF/Entities/Structures/Shuttles/thrusters_security.yml
index 52deda3f8da..080cd261fb0 100644
--- a/Resources/Prototypes/_NF/Entities/Structures/Shuttles/thrusters_security.yml
+++ b/Resources/Prototypes/_NF/Entities/Structures/Shuttles/thrusters_security.yml
@@ -1,6 +1,6 @@
- type: entity
id: ThrusterSecurity
- parent: [ BaseStructureUnanchorable, Thruster ]
+ parent: [ BaseStructureDisableAnchoring, Thruster ]
name: thruster
suffix: Security
components:
diff --git a/Resources/Prototypes/_NF/Entities/Structures/Storage/Closets/wall_lockers.yml b/Resources/Prototypes/_NF/Entities/Structures/Storage/Closets/wall_lockers.yml
index 273968aaaba..540251c1a99 100644
--- a/Resources/Prototypes/_NF/Entities/Structures/Storage/Closets/wall_lockers.yml
+++ b/Resources/Prototypes/_NF/Entities/Structures/Storage/Closets/wall_lockers.yml
@@ -1,7 +1,7 @@
# Frontier-specific parent for turning regular objects into wallmounts to avoid redefining upstream prototypes.
# Base
- type: entity
- parent: BaseStructureUnanchorable
+ parent: BaseStructureDisableAnchoring
id: BaseWallmount
abstract: true
placement:
diff --git a/Resources/Prototypes/_NF/Entities/Structures/base_structure.yml b/Resources/Prototypes/_NF/Entities/Structures/base_structure.yml
index b41fd7ff51c..50b5aa129b8 100644
--- a/Resources/Prototypes/_NF/Entities/Structures/base_structure.yml
+++ b/Resources/Prototypes/_NF/Entities/Structures/base_structure.yml
@@ -2,17 +2,43 @@
id: BaseStructureDisableToolUse
abstract: true
components:
- - type: OnToolsUse
- disabled: true
+ - type: Transform
+ anchored: true
+ - type: DisableToolUse
+ anchoring: true
+ prying: true
+ screwing: true
+ cutting: true
+ welding: true
+ pulsing: true
+ slicing: true
+ sawing: true
+ honking: true
+ rolling: true
+ digging: true
- type: entity
- id: BaseStructureUnanchorable
+ id: BaseStructureDisableAnchoring
abstract: true
components:
- type: Transform
anchored: true
- - type: Anchorable
- delay: 999999
+ - type: DisableToolUse
+ anchoring: true
+
+- type: entity
+ id: BaseStructureDisablePrying
+ abstract: true
+ components:
+ - type: DisableToolUse
+ prying: true
+
+- type: entity
+ id: BaseStructureDisableScrewing
+ abstract: true
+ components:
+ - type: DisableToolUse
+ screwing: true
- type: entity
id: BaseStructureDestructible