Removes prototype construction steps (I HATE PROTOTYPE STEPS) (#11611)
This commit is contained in:
@@ -112,48 +112,5 @@ namespace Content.IntegrationTests.Tests.Construction
|
|||||||
}
|
}
|
||||||
await pairTracker.CleanReturnAsync();
|
await pairTracker.CleanReturnAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
|
||||||
public async Task TestStackPrototypeSteps()
|
|
||||||
{
|
|
||||||
// People often mistakenly use the prototype-step rather than a material-step, resulting in a whole stack
|
|
||||||
// being consumed. This checks that if something uses a prototype step, that the relevant prototype does not
|
|
||||||
// have a stack component.
|
|
||||||
//
|
|
||||||
// If, for whatever reason, that is ever required, then this test should probably just support an ignore
|
|
||||||
// list. Though the test should then also checks that it accepts both the full-stack and single-sheet
|
|
||||||
// prototypes.
|
|
||||||
|
|
||||||
await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings { NoClient = true });
|
|
||||||
var server = pairTracker.Pair.Server;
|
|
||||||
var protoMan = server.ResolveDependency<IPrototypeManager>();
|
|
||||||
var stackName = server.ResolveDependency<IComponentFactory>().GetComponentName(typeof(StackComponent));
|
|
||||||
|
|
||||||
Assert.Multiple(() =>
|
|
||||||
{
|
|
||||||
// quadruple for loop nesting, what fun.
|
|
||||||
foreach (var protoGraph in protoMan.EnumeratePrototypes<ConstructionGraphPrototype>())
|
|
||||||
{
|
|
||||||
foreach (var node in protoGraph.Nodes.Values)
|
|
||||||
{
|
|
||||||
foreach (var edge in node.Edges)
|
|
||||||
{
|
|
||||||
foreach (var step in edge.Steps)
|
|
||||||
{
|
|
||||||
if (step is not PrototypeConstructionGraphStep protoStep)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
var protoEnt = protoMan.Index<EntityPrototype>(protoStep.Prototype);
|
|
||||||
|
|
||||||
Assert.False(protoEnt.Components.ContainsKey(stackName),
|
|
||||||
$"Construction graph {protoGraph.ID} uses a prototype-step that consumes a stackable entity {protoEnt.ID}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
await pairTracker.CleanReturnAsync();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,11 +20,6 @@ namespace Content.Shared.Construction.Steps
|
|||||||
return typeof(ToolConstructionGraphStep);
|
return typeof(ToolConstructionGraphStep);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (node.Has("prototype"))
|
|
||||||
{
|
|
||||||
return typeof(PrototypeConstructionGraphStep);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (node.Has("component"))
|
if (node.Has("component"))
|
||||||
{
|
{
|
||||||
return typeof(ComponentConstructionGraphStep);
|
return typeof(ComponentConstructionGraphStep);
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
using Content.Shared.Examine;
|
|
||||||
using Robust.Shared.Prototypes;
|
|
||||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
|
|
||||||
|
|
||||||
namespace Content.Shared.Construction.Steps
|
|
||||||
{
|
|
||||||
[DataDefinition]
|
|
||||||
public sealed class PrototypeConstructionGraphStep : ArbitraryInsertConstructionGraphStep
|
|
||||||
{
|
|
||||||
[DataField("prototype", customTypeSerializer:typeof(PrototypeIdSerializer<EntityPrototype>), required:true)]
|
|
||||||
public string Prototype { get; } = string.Empty;
|
|
||||||
|
|
||||||
public override bool EntityValid(EntityUid uid, IEntityManager entityManager)
|
|
||||||
{
|
|
||||||
return entityManager.GetComponent<MetaDataComponent>(uid).EntityPrototype?.ID == Prototype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void DoExamine(ExaminedEvent examinedEvent)
|
|
||||||
{
|
|
||||||
examinedEvent.Message.AddMarkup(string.IsNullOrEmpty(Name)
|
|
||||||
? Loc.GetString(
|
|
||||||
"construction-insert-prototype-no-name",
|
|
||||||
("prototypeName", Prototype) // Terrible.
|
|
||||||
)
|
|
||||||
: Loc.GetString(
|
|
||||||
"construction-insert-prototype",
|
|
||||||
("entityName", Name)
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -6,11 +6,11 @@ namespace Content.Shared.Construction.Steps
|
|||||||
public sealed class TagConstructionGraphStep : ArbitraryInsertConstructionGraphStep
|
public sealed class TagConstructionGraphStep : ArbitraryInsertConstructionGraphStep
|
||||||
{
|
{
|
||||||
[DataField("tag")]
|
[DataField("tag")]
|
||||||
private string? _tag = null;
|
private string? _tag;
|
||||||
|
|
||||||
public override bool EntityValid(EntityUid uid, IEntityManager entityManager)
|
public override bool EntityValid(EntityUid uid, IEntityManager entityManager)
|
||||||
{
|
{
|
||||||
var tagSystem = EntitySystem.Get<TagSystem>();
|
var tagSystem = entityManager.EntitySysManager.GetEntitySystem<TagSystem>();
|
||||||
return !string.IsNullOrEmpty(_tag) && tagSystem.HasTag(uid, _tag);
|
return !string.IsNullOrEmpty(_tag) && tagSystem.HasTag(uid, _tag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,6 +70,9 @@
|
|||||||
baseSprintSpeed: 0
|
baseSprintSpeed: 0
|
||||||
- type: InputMover
|
- type: InputMover
|
||||||
- type: GhostOnMove
|
- type: GhostOnMove
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- Head
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: LeftArmHuman
|
id: LeftArmHuman
|
||||||
|
|||||||
@@ -68,6 +68,9 @@
|
|||||||
baseSprintSpeed: 0
|
baseSprintSpeed: 0
|
||||||
- type: InputMover
|
- type: InputMover
|
||||||
- type: GhostOnMove
|
- type: GhostOnMove
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- Head
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: LeftArmReptilian
|
id: LeftArmReptilian
|
||||||
|
|||||||
@@ -70,8 +70,9 @@
|
|||||||
0: Alive
|
0: Alive
|
||||||
# criticalThreshold: 50
|
# criticalThreshold: 50
|
||||||
# deadThreshold: 120
|
# deadThreshold: 120
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- Head
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: LeftArmSkeleton
|
id: LeftArmSkeleton
|
||||||
|
|||||||
@@ -63,6 +63,9 @@
|
|||||||
baseSprintSpeed: 0
|
baseSprintSpeed: 0
|
||||||
- type: InputMover
|
- type: InputMover
|
||||||
- type: GhostOnMove
|
- type: GhostOnMove
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- Head
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: LeftArmSlime
|
id: LeftArmSlime
|
||||||
|
|||||||
@@ -71,6 +71,9 @@
|
|||||||
baseSprintSpeed: 0
|
baseSprintSpeed: 0
|
||||||
- type: InputMover
|
- type: InputMover
|
||||||
- type: GhostOnMove
|
- type: GhostOnMove
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- Head
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: LeftArmVox
|
id: LeftArmVox
|
||||||
|
|||||||
@@ -96,6 +96,9 @@
|
|||||||
- id: EmergencyMedipen
|
- id: EmergencyMedipen
|
||||||
- id: Flare
|
- id: Flare
|
||||||
- id: FoodTinMRE
|
- id: FoodTinMRE
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- BoxHug
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: extended-capacity survival box
|
name: extended-capacity survival box
|
||||||
|
|||||||
@@ -169,7 +169,7 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
name: box of hugs
|
name: box of hugs
|
||||||
parent: BoxCardboard
|
parent: BoxCardboard
|
||||||
id: BoxHug
|
id: BoxHugHealing
|
||||||
description: A special box for sensitive people.
|
description: A special box for sensitive people.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
@@ -182,6 +182,9 @@
|
|||||||
contents:
|
contents:
|
||||||
- id: Brutepack
|
- id: Brutepack
|
||||||
amount: 6
|
amount: 6
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- BoxHug
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: inflatable wall box
|
name: inflatable wall box
|
||||||
|
|||||||
@@ -97,6 +97,10 @@
|
|||||||
components:
|
components:
|
||||||
- type: ComputerBoard
|
- type: ComputerBoard
|
||||||
prototype: ComputerSurveillanceCameraMonitor
|
prototype: ComputerSurveillanceCameraMonitor
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- DroneUsable
|
||||||
|
- SurveillanceCameraMonitorCircuitboard
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: BaseComputerCircuitboard
|
parent: BaseComputerCircuitboard
|
||||||
@@ -115,6 +119,10 @@
|
|||||||
components:
|
components:
|
||||||
- type: ComputerBoard
|
- type: ComputerBoard
|
||||||
prototype: ComputerTelevision
|
prototype: ComputerTelevision
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- DroneUsable
|
||||||
|
- ComputerTelevisionCircuitboard
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: BaseComputerCircuitboard
|
parent: BaseComputerCircuitboard
|
||||||
|
|||||||
@@ -7,6 +7,10 @@
|
|||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Misc/module.rsi
|
sprite: Objects/Misc/module.rsi
|
||||||
state: airalarm_electronics
|
state: airalarm_electronics
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- DroneUsable
|
||||||
|
- AirAlarmElectronics
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: FireAlarmElectronics
|
id: FireAlarmElectronics
|
||||||
@@ -17,3 +21,7 @@
|
|||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Misc/module.rsi
|
sprite: Objects/Misc/module.rsi
|
||||||
state: airalarm_electronics
|
state: airalarm_electronics
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- DroneUsable
|
||||||
|
- FireAlarmElectronics
|
||||||
|
|||||||
@@ -7,3 +7,7 @@
|
|||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Misc/module.rsi
|
sprite: Objects/Misc/module.rsi
|
||||||
state: net_wired
|
state: net_wired
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- DroneUsable
|
||||||
|
- MailingUnitElectronics
|
||||||
@@ -8,3 +8,7 @@
|
|||||||
sprite: Objects/Misc/module.rsi
|
sprite: Objects/Misc/module.rsi
|
||||||
state: door_electronics
|
state: door_electronics
|
||||||
- type: AccessReader
|
- type: AccessReader
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- DoorElectronics
|
||||||
|
- DroneUsable
|
||||||
@@ -22,6 +22,10 @@
|
|||||||
sprite: Objects/Misc/module.rsi
|
sprite: Objects/Misc/module.rsi
|
||||||
state: charger_APC
|
state: charger_APC
|
||||||
netsync: false
|
netsync: false
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- DroneUsable
|
||||||
|
- WallmountSubstationElectronics
|
||||||
|
|
||||||
# Wallmount Generator
|
# Wallmount Generator
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -34,6 +38,10 @@
|
|||||||
sprite: Objects/Misc/module.rsi
|
sprite: Objects/Misc/module.rsi
|
||||||
state: charger_APC
|
state: charger_APC
|
||||||
netsync: false
|
netsync: false
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- DroneUsable
|
||||||
|
- WallmountGeneratorElectronics
|
||||||
|
|
||||||
# APU
|
# APU
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -46,6 +54,10 @@
|
|||||||
sprite: Objects/Misc/module.rsi
|
sprite: Objects/Misc/module.rsi
|
||||||
state: charger_APC
|
state: charger_APC
|
||||||
netsync: false
|
netsync: false
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- DroneUsable
|
||||||
|
- WallmountGeneratorAPUElectronics
|
||||||
|
|
||||||
# Solar Tracker Electronics
|
# Solar Tracker Electronics
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -58,3 +70,7 @@
|
|||||||
sprite: Objects/Misc/module.rsi
|
sprite: Objects/Misc/module.rsi
|
||||||
state: generic
|
state: generic
|
||||||
netsync: false
|
netsync: false
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- DroneUsable
|
||||||
|
- SolarTrackerElectronics
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Payload # yes, you can make re-usable prank grenades
|
- Payload # yes, you can make re-usable prank grenades
|
||||||
|
- BikeHorn
|
||||||
- type: MeleeWeapon
|
- type: MeleeWeapon
|
||||||
soundHit:
|
soundHit:
|
||||||
collection: BikeHorn
|
collection: BikeHorn
|
||||||
|
|||||||
@@ -92,6 +92,10 @@
|
|||||||
damage:
|
damage:
|
||||||
types:
|
types:
|
||||||
Piercing: 5
|
Piercing: 5
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- GlassShard
|
||||||
|
- Trash
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: ShardBase
|
parent: ShardBase
|
||||||
|
|||||||
@@ -314,6 +314,9 @@
|
|||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Misc/bureaucracy.rsi
|
sprite: Objects/Misc/bureaucracy.rsi
|
||||||
state: stamp-clown
|
state: stamp-clown
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- ClownRubberStamp
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: chief medical officer's rubber stamp
|
name: chief medical officer's rubber stamp
|
||||||
|
|||||||
@@ -8,3 +8,6 @@
|
|||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Power/solar_parts.rsi
|
sprite: Objects/Power/solar_parts.rsi
|
||||||
state: solar_assembly_parts
|
state: solar_assembly_parts
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- SolarAssemblyPart
|
||||||
|
|||||||
@@ -48,3 +48,6 @@
|
|||||||
fillBaseName: fill-
|
fillBaseName: fill-
|
||||||
- type: ExaminableSolution
|
- type: ExaminableSolution
|
||||||
solution: bucket
|
solution: bucket
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- Bucket
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
- to: chairCursed
|
- to: chairCursed
|
||||||
steps:
|
steps:
|
||||||
- prototype: HeadHuman
|
- tag: Head
|
||||||
icon:
|
icon:
|
||||||
sprite: Mobs/Species/Human/parts.rsi
|
sprite: Mobs/Species/Human/parts.rsi
|
||||||
state: "head_m"
|
state: "head_m"
|
||||||
|
|||||||
@@ -48,7 +48,7 @@
|
|||||||
conditions:
|
conditions:
|
||||||
- !type:EntityAnchored {}
|
- !type:EntityAnchored {}
|
||||||
steps:
|
steps:
|
||||||
- prototype: DoorElectronics
|
- tag: DoorElectronics
|
||||||
store: board
|
store: board
|
||||||
name: "door electronics circuit board"
|
name: "door electronics circuit board"
|
||||||
icon:
|
icon:
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
- !type:EntityAnchored
|
- !type:EntityAnchored
|
||||||
anchored: true
|
anchored: true
|
||||||
steps:
|
steps:
|
||||||
- prototype: DoorElectronics
|
- tag: DoorElectronics
|
||||||
name: Door Electronics
|
name: Door Electronics
|
||||||
icon:
|
icon:
|
||||||
sprite: "Objects/Misc/module.rsi"
|
sprite: "Objects/Misc/module.rsi"
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
conditions:
|
conditions:
|
||||||
- !type:EntityAnchored {}
|
- !type:EntityAnchored {}
|
||||||
steps:
|
steps:
|
||||||
- prototype: DoorElectronics
|
- tag: DoorElectronics
|
||||||
store: board
|
store: board
|
||||||
name: "door electronics circuit board"
|
name: "door electronics circuit board"
|
||||||
icon:
|
icon:
|
||||||
|
|||||||
@@ -77,7 +77,7 @@
|
|||||||
conditions:
|
conditions:
|
||||||
- !type:EntityAnchored {}
|
- !type:EntityAnchored {}
|
||||||
steps:
|
steps:
|
||||||
- prototype: DoorElectronics
|
- tag: DoorElectronics
|
||||||
store: board
|
store: board
|
||||||
name: "door electronics circuit board"
|
name: "door electronics circuit board"
|
||||||
icon:
|
icon:
|
||||||
@@ -178,7 +178,7 @@
|
|||||||
conditions:
|
conditions:
|
||||||
- !type:EntityAnchored { }
|
- !type:EntityAnchored { }
|
||||||
steps:
|
steps:
|
||||||
- prototype: DoorElectronics
|
- tag: DoorElectronics
|
||||||
store: board
|
store: board
|
||||||
name: "door electronics circuit board"
|
name: "door electronics circuit board"
|
||||||
icon:
|
icon:
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
edges:
|
edges:
|
||||||
- to: electronics
|
- to: electronics
|
||||||
steps:
|
steps:
|
||||||
- prototype: AirAlarmElectronics
|
- tag: AirAlarmElectronics
|
||||||
store: board
|
store: board
|
||||||
name: "air alarm electronics"
|
name: "air alarm electronics"
|
||||||
icon:
|
icon:
|
||||||
@@ -115,7 +115,7 @@
|
|||||||
edges:
|
edges:
|
||||||
- to: electronics
|
- to: electronics
|
||||||
steps:
|
steps:
|
||||||
- prototype: FireAlarmElectronics
|
- tag: FireAlarmElectronics
|
||||||
store: board
|
store: board
|
||||||
name: "fire alarm electronics"
|
name: "fire alarm electronics"
|
||||||
icon:
|
icon:
|
||||||
|
|||||||
@@ -70,7 +70,7 @@
|
|||||||
doAfter: 0.25
|
doAfter: 0.25
|
||||||
- to: frame_mailing
|
- to: frame_mailing
|
||||||
steps:
|
steps:
|
||||||
- prototype: MailingUnitElectronics
|
- tag: MailingUnitElectronics
|
||||||
name: Mailing Unit Electronics
|
name: Mailing Unit Electronics
|
||||||
icon:
|
icon:
|
||||||
sprite: "Objects/Misc/module.rsi"
|
sprite: "Objects/Misc/module.rsi"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
edges:
|
edges:
|
||||||
- to: solarassembly
|
- to: solarassembly
|
||||||
steps:
|
steps:
|
||||||
- prototype: SolarAssemblyPart
|
- tag: SolarAssemblyPart
|
||||||
name: Solar Assembly Parts
|
name: Solar Assembly Parts
|
||||||
icon:
|
icon:
|
||||||
sprite: Objects/Power/solar_parts.rsi
|
sprite: Objects/Power/solar_parts.rsi
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
- !type:EntityAnchored
|
- !type:EntityAnchored
|
||||||
value: true
|
value: true
|
||||||
steps:
|
steps:
|
||||||
- prototype: SolarTrackerElectronics
|
- tag: SolarTrackerElectronics
|
||||||
name: Solar Tracker Electronics
|
name: Solar Tracker Electronics
|
||||||
icon:
|
icon:
|
||||||
sprite: Objects/Misc/module.rsi
|
sprite: Objects/Misc/module.rsi
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
edges:
|
edges:
|
||||||
- to: electronics
|
- to: electronics
|
||||||
steps:
|
steps:
|
||||||
- prototype: WallmountGeneratorElectronics
|
- tag: WallmountGeneratorElectronics
|
||||||
store: board
|
store: board
|
||||||
name: "wallmount generator circuit board"
|
name: "wallmount generator circuit board"
|
||||||
icon:
|
icon:
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
doAfter: 1
|
doAfter: 1
|
||||||
- to: electronicsAPU
|
- to: electronicsAPU
|
||||||
steps:
|
steps:
|
||||||
- prototype: WallmountGeneratorAPUElectronics
|
- tag: WallmountGeneratorAPUElectronics
|
||||||
store: board
|
store: board
|
||||||
name: "wallmount APU circuit board"
|
name: "wallmount APU circuit board"
|
||||||
icon:
|
icon:
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
edges:
|
edges:
|
||||||
- to: electronics
|
- to: electronics
|
||||||
steps:
|
steps:
|
||||||
- prototype: WallmountSubstationElectronics
|
- tag: WallmountSubstationElectronics
|
||||||
store: board
|
store: board
|
||||||
name: "wallmount substation circuit board"
|
name: "wallmount substation circuit board"
|
||||||
icon:
|
icon:
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
steps:
|
steps:
|
||||||
- tool: Screwing
|
- tool: Screwing
|
||||||
doAfter: 2
|
doAfter: 2
|
||||||
- prototype: SurveillanceCameraMonitorCircuitboard
|
- tag: SurveillanceCameraMonitorCircuitboard
|
||||||
name: surveillance camera monitor board
|
name: surveillance camera monitor board
|
||||||
icon:
|
icon:
|
||||||
sprite: Objects/Misc/module.rsi
|
sprite: Objects/Misc/module.rsi
|
||||||
@@ -126,7 +126,7 @@
|
|||||||
steps:
|
steps:
|
||||||
- tool: Screwing
|
- tool: Screwing
|
||||||
doAfter: 2
|
doAfter: 2
|
||||||
- prototype: ComputerTelevisionCircuitboard
|
- tag: ComputerTelevisionCircuitboard
|
||||||
name: television board
|
name: television board
|
||||||
icon:
|
icon:
|
||||||
sprite: Objects/Misc/module.rsi
|
sprite: Objects/Misc/module.rsi
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
steps:
|
steps:
|
||||||
- material: Cable
|
- material: Cable
|
||||||
doAfter: 0.5
|
doAfter: 0.5
|
||||||
- prototype: ProximitySensor
|
- tag: ProximitySensor
|
||||||
icon:
|
icon:
|
||||||
sprite: Objects/Misc/proximity_sensor.rsi
|
sprite: Objects/Misc/proximity_sensor.rsi
|
||||||
state: icon
|
state: icon
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
- material: Cable
|
- material: Cable
|
||||||
amount: 2
|
amount: 2
|
||||||
doAfter: 1
|
doAfter: 1
|
||||||
- prototype: ShardGlass
|
- tag: GlassShard
|
||||||
name: Glass Shard
|
name: Glass Shard
|
||||||
icon:
|
icon:
|
||||||
sprite: Objects/Materials/Shards/shard.rsi
|
sprite: Objects/Materials/Shards/shard.rsi
|
||||||
|
|||||||
@@ -6,12 +6,12 @@
|
|||||||
edges:
|
edges:
|
||||||
- to: bot
|
- to: bot
|
||||||
steps:
|
steps:
|
||||||
- prototype: Bucket
|
- tag: Bucket
|
||||||
icon:
|
icon:
|
||||||
sprite: Objects/Tools/bucket.rsi
|
sprite: Objects/Tools/bucket.rsi
|
||||||
state: icon
|
state: icon
|
||||||
name: bucket
|
name: bucket
|
||||||
- prototype: ProximitySensor
|
- tag: ProximitySensor
|
||||||
icon:
|
icon:
|
||||||
sprite: Objects/Misc/proximity_sensor.rsi
|
sprite: Objects/Misc/proximity_sensor.rsi
|
||||||
state: icon
|
state: icon
|
||||||
|
|||||||
@@ -6,18 +6,18 @@
|
|||||||
edges:
|
edges:
|
||||||
- to: bot
|
- to: bot
|
||||||
steps:
|
steps:
|
||||||
- prototype: BoxHug
|
- tag: BoxHug
|
||||||
icon:
|
icon:
|
||||||
sprite: Objects/Storage/boxes.rsi
|
sprite: Objects/Storage/boxes.rsi
|
||||||
state: box_hug
|
state: box_hug
|
||||||
name: box of hugs
|
name: box of hugs
|
||||||
- prototype: RubberStampClown
|
- tag: ClownRubberStamp
|
||||||
icon:
|
icon:
|
||||||
sprite: Objects/Misc/bureaucracy.rsi
|
sprite: Objects/Misc/bureaucracy.rsi
|
||||||
state: stamp-clown
|
state: stamp-clown
|
||||||
name: clown's rubber stamp
|
name: clown's rubber stamp
|
||||||
doAfter: 2
|
doAfter: 2
|
||||||
- prototype: BikeHorn
|
- tag: BikeHorn
|
||||||
icon:
|
icon:
|
||||||
sprite: Objects/Fun/bikehorn.rsi
|
sprite: Objects/Fun/bikehorn.rsi
|
||||||
state: icon
|
state: icon
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
state: analyzer
|
state: analyzer
|
||||||
name: health analyzer
|
name: health analyzer
|
||||||
doAfter: 2
|
doAfter: 2
|
||||||
- prototype: ProximitySensor
|
- tag: ProximitySensor
|
||||||
icon:
|
icon:
|
||||||
sprite: Objects/Misc/proximity_sensor.rsi
|
sprite: Objects/Misc/proximity_sensor.rsi
|
||||||
state: icon
|
state: icon
|
||||||
|
|||||||
@@ -3,6 +3,9 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: AirAlarm
|
id: AirAlarm
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: AirAlarmElectronics
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: AirSensor
|
id: AirSensor
|
||||||
|
|
||||||
@@ -16,10 +19,7 @@
|
|||||||
id: Bee
|
id: Bee
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: BrassInstrument
|
id: BikeHorn
|
||||||
|
|
||||||
- type: Tag
|
|
||||||
id: Brutepack
|
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: BodyBag
|
id: BodyBag
|
||||||
@@ -39,6 +39,18 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: Bottle
|
id: Bottle
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: BoxHug
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: BrassInstrument
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: Brutepack
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: Bucket
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: BulletFoam
|
id: BulletFoam
|
||||||
|
|
||||||
@@ -102,6 +114,9 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: CigPack
|
id: CigPack
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: ClownRubberStamp
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: Crayon
|
id: Crayon
|
||||||
|
|
||||||
@@ -147,6 +162,9 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: CombatKnife
|
id: CombatKnife
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: ComputerTelevisionCircuitboard
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: Debug
|
id: Debug
|
||||||
|
|
||||||
@@ -162,6 +180,9 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: DoorBumpOpener
|
id: DoorBumpOpener
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: DoorElectronics
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: DonkPocket
|
id: DonkPocket
|
||||||
|
|
||||||
@@ -186,6 +207,9 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: FireAlarm
|
id: FireAlarm
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: FireAlarmElectronics
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: FireAxe
|
id: FireAxe
|
||||||
|
|
||||||
@@ -228,6 +252,9 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: GlassBeaker
|
id: GlassBeaker
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: GlassShard
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: Grenade
|
id: Grenade
|
||||||
|
|
||||||
@@ -237,6 +264,9 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: Handcuffs
|
id: Handcuffs
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: Head
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: HideContextMenu
|
id: HideContextMenu
|
||||||
|
|
||||||
@@ -317,6 +347,9 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: MagazinePistolSubMachineGun
|
id: MagazinePistolSubMachineGun
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: MailingUnitElectronics
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: Matchstick
|
id: Matchstick
|
||||||
|
|
||||||
@@ -438,6 +471,12 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: Soap
|
id: Soap
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: SolarAssemblyPart
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: SolarTrackerElectronics
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: Spray
|
id: Spray
|
||||||
|
|
||||||
@@ -447,6 +486,9 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: StringInstrument
|
id: StringInstrument
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: SurveillanceCameraMonitorCircuitboard
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: Syndicate
|
id: Syndicate
|
||||||
|
|
||||||
@@ -471,6 +513,15 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: Wall
|
id: Wall
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: WallmountGeneratorAPUElectronics
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: WallmountGeneratorElectronics
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: WallmountSubstationElectronics
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: Window
|
id: Window
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user