Validate wire layout prototypes; delete invalid wirescomponents.
using Robust.Shared.Audio;
+using Robust.Shared.Prototypes;
namespace Content.Server.Wires;
/// The layout ID of this entity's wires.
/// </summary>
[DataField(required: true)]
- public string LayoutId { get; set; } = default!;
+ public ProtoId<WireLayoutPrototype> LayoutId { get; set; } = default!;
/// <summary>
/// The serial number of this board. Randomly generated upon start,
- type: BorgChassis
- type: WiresPanel
- type: ActivatableUIRequiresPanel
- - type: Wires
- layoutId: Borg
- type: NameIdentifier
group: Silicon
- type: ContainerContainer
- type: Appearance
- type: WiresVisuals
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-dawinstrument
- layoutId: DawInstrument
- type: Machine
board: DawInstrumentMachineCircuitboard
- type: Instrument
bodyType: KinematicController
- type: Clickable
- type: WiresPanel
- - type: Wires #we just want the panel
- boardName: wires-board-name-mech
- layoutId: Mech
- type: Fixtures
fixtures:
fix1:
beakerSlot: !type:ContainerSlot
- type: StaticPrice
price: 1000
- - type: Wires
- type: WiresPanel
noRot: false
- type: Machine
board: BoozeDispenserMachineCircuitboard
- - type: Wires
- boardName: wires-board-name-booze
- layoutId: BoozeDispenser
- type: GuideHelp
guides:
- Bartender
acts: ["Destruction"]
- type: Machine
board: ChemDispenserMachineCircuitboard
- - type: Wires
- boardName: wires-board-name-chemdispenser
- layoutId: ChemDispenser
- type: GuideHelp
guides:
- Chemicals
noRot: false
- type: Machine
board: SodaDispenserMachineCircuitboard
- - type: Wires
- boardName: wires-board-name-soda
- layoutId: SodaDispenser
- type: GuideHelp
guides:
- Bartender
- type: RCDDeconstructable
cost: 4
delay: 6
- fx: EffectRCDDeconstruct6
+ fx: EffectRCDDeconstruct6
- type: Destructible
thresholds:
- trigger:
- type: Appearance
- type: WiresVisuals
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-firelock
- layoutId: Firelock
- type: UserInterface
interfaces:
- key: enum.WiresUiKey.Key
components:
- FitsInDispenser
- type: Machine
- - type: Wires
- layoutId: chem
- type: WiresPanel
- type: WiresVisuals
- type: ContainerContainer
color: "#fca3c0"
- type: Appearance
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-vessel
- layoutId: Vessel
- type: AmbientSound
enabled: false
range: 3
- type: Appearance
- type: WiresPanel
- type: WiresVisuals
- - type: Wires
- boardName: wires-board-name-ape
- layoutId: Ape
- type: GenericVisualizer
visuals:
enum.PowerDeviceVisuals.Powered:
fuelCost: 10
doAfterDelay: 5
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-anomalygenerator
- layoutId: AnomalyGenerator
- type: Destructible
thresholds:
- trigger:
Blunt: 10
- type: Machine
board: ArtifactCrusherMachineCircuitboard
- - type: Wires
- boardName: wires-board-name-crusher
- layoutId: Crusher
- type: WiresPanel
- type: Sprite
sprite: Structures/Machines/artifact_crusher.rsi
False: { visible: false }
# Machine / Construction stuff
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-chemmaster
- layoutId: chem_master
- type: Machine
board: ChemMasterMachineCircuitboard
- type: ContainerContainer
materialWhiteList:
- Biomass
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-cloningpod
- layoutId: CloningPod
- type: ApcPowerReceiver
powerLoad: 200 #Receives most of its power from the console
- type: Appearance
- type: Machine
board: FatExtractorMachineCircuitboard
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-fatextractor
- layoutId: FatExtractor
- type: Appearance
- type: Speech
speechVerb: Robotic
path: /Audio/Items/rped.ogg
- type: WiresPanel
- type: WiresVisuals
- - type: Wires
- boardName: wires-board-name-flatpacker
- layoutId: Flatpacker
- type: Appearance
- type: ActivatableUI
key: enum.FlatpackCreatorUIKey.Key
min: 1
max: 1
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-minigravitygenerator
- layoutId: MiniGravityGenerator
- type: Machine
board: MiniGravityGeneratorCircuitboard
- type: ApcPowerReceiver
- !type:DoActsBehavior
acts: ["Destruction"]
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-autolathe
- layoutId: Autolathe
- type: ActivatableUI
key: enum.LatheUiKey.Key
- type: ActivatableUIRequiresPower
map: ["enum.WiresVisualLayers.MaintenancePanel"]
- type: Machine
board: ProtolatheMachineCircuitboard
- - type: Wires
- boardName: wires-board-name-protolathe
- layoutId: Protolathe
- type: MaterialStorage
whitelist:
tags:
- type: Machine
board: MaterialReclaimerMachineCircuitboard
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-reclaimer
- layoutId: Reclaimer
- type: MaterialReclaimer
whitelist:
components:
- type: Machine
board: MedicalScannerMachineCircuitboard
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-medicalscanner
- layoutId: MedicalScanner
- type: Appearance
- type: Climbable
- type: ApcPowerReceiver
priority: Low
- type: ExtensionCableReceiver
- type: WiresPanel
- - type: Wires
- layoutId: rndserver
- type: WiresVisuals
- type: Machine
board: ResearchAndDevelopmentServerMachineCircuitboard
- type: Machine
board: TelecomServerCircuitboard
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-telecomserver
- layoutId: TelecomServer
- type: Transform
anchored: true
- type: Pullable
inHandsOnly: false
key: enum.ThermomachineUiKey.Key
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-thermomachine
- layoutId: Thermomachine
- type: WiresVisuals
- type: NodeContainer
nodes:
- type: Machine
board: CondenserMachineCircuitBoard
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-condenser
- layoutId: Condenser
- type: WiresVisuals
- type: Destructible
thresholds:
# Construction, interaction
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-generator
- layoutId: Generator
- type: UserInterface
interfaces:
- key: enum.GeneratorComponentUiKey.Key
damage: 75
behaviors:
- !type:SolutionExplosionBehavior
- solution: tank
\ No newline at end of file
+ solution: tank
supplyRampRate: 500
- type: WallMount
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-apc
- layoutId: APC
- type: WiresVisuals
- type: Damageable
damageContainer: Inorganic
visible: false
- type: Machine
board: CellRechargerCircuitboard
- - type: Wires
- boardName: wires-board-name-recharger
- layoutId: Recharger
- type: WiresPanel
- type: GenericVisualizer
visuals:
- machine_parts
- machine_board
- entity_storage
- - type: Wires
- layoutId: borgcharger
- type: WiresPanel
- type: WiresVisuals
- type: Machine
color: "#c9c042"
castShadows: false
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-smes
- layoutId: SMES
- type: Machine
board: SMESMachineCircuitboard
- type: StationInfiniteBatteryTarget
intensitySlope: 2
totalIntensity: 200
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-substation
- layoutId: Substation
- type: Machine
board: SubstationMachineCircuitboard
- type: StationInfiniteBatteryTarget
- type: Machine
board: HydroponicsTrayMachineCircuitboard
- type: WiresPanel
- - type: Wires
- boardName: wires-board-name-hydroponicstray
- layoutId: HydroponicsTray
- type: AmbientSound
volume: -9
range: 5