make timers constructable and deconstructable (#15571)

Co-authored-by: deltanedas <@deltanedas:kde.org>
This commit is contained in:
deltanedas
2023-05-06 11:15:07 +00:00
committed by GitHub
parent 27277503bb
commit 2f99106000
9 changed files with 351 additions and 0 deletions

View File

@@ -373,6 +373,7 @@
- AirAlarmElectronics - AirAlarmElectronics
- FireAlarmElectronics - FireAlarmElectronics
- MailingUnitElectronics - MailingUnitElectronics
- SignalTimerElectronics
- type: technology - type: technology
name: technologies-material-sheet-printing name: technologies-material-sheet-printing

View File

@@ -0,0 +1,42 @@
- type: entity
id: SignalTimerElectronics
parent: BaseElectronics
name: signal timer electronics
description: An electronics board used in timer circuitry. Looks like you could use a screwdriver to change the board type.
components:
- type: Sprite
sprite: Objects/Misc/module.rsi
state: charger_APC
- type: Construction
deconstructionTarget: null
graph: TimerElectronics
node: signal
- type: Tag
tags:
- TimerSignalElectronics
- type: entity
id: ScreenTimerElectronics
parent: SignalTimerElectronics
name: screen timer electronics
components:
- type: Construction
deconstructionTarget: null
graph: TimerElectronics
node: screen
- type: Tag
tags:
- TimerScreenElectronics
- type: entity
id: BrigTimerElectronics
parent: SignalTimerElectronics
name: brig timer electronics
components:
- type: Construction
deconstructionTarget: null
graph: TimerElectronics
node: brig
- type: Tag
tags:
- TimerBrigElectronics

View File

@@ -214,6 +214,7 @@
- FireAlarmElectronics - FireAlarmElectronics
- IntercomElectronics - IntercomElectronics
- MailingUnitElectronics - MailingUnitElectronics
- SignalTimerElectronics
- Bucket - Bucket
- MopItem - MopItem
- AdvMopItem - AdvMopItem
@@ -276,6 +277,7 @@
- FireAlarmElectronics - FireAlarmElectronics
- MailingUnitElectronics - MailingUnitElectronics
- IntercomElectronics - IntercomElectronics
- SignalTimerElectronics
- SMESMachineCircuitboard - SMESMachineCircuitboard
- SubstationMachineCircuitboard - SubstationMachineCircuitboard
- ThermomachineFreezerMachineCircuitBoard - ThermomachineFreezerMachineCircuitBoard

View File

@@ -38,6 +38,9 @@
usesApcPower: true usesApcPower: true
- type: ExtensionCableReceiver - type: ExtensionCableReceiver
- type: ActivatableUIRequiresPower - type: ActivatableUIRequiresPower
- type: Construction
graph: Timer
node: signal
- type: entity - type: entity
id: ScreenTimer id: ScreenTimer
@@ -52,6 +55,9 @@
sprite: Structures/Wallmounts/textscreen.rsi sprite: Structures/Wallmounts/textscreen.rsi
state: textscreen state: textscreen
noRot: true noRot: true
- type: Construction
graph: Timer
node: screen
- type: entity - type: entity
id: BrigTimer id: BrigTimer
@@ -61,3 +67,30 @@
components: components:
- type: AccessReader - type: AccessReader
access: [["Security"]] access: [["Security"]]
- type: Construction
graph: Timer
node: brig
# Construction Frame
- type: entity
noSpawn: true
id: TimerFrame
name: timer frame
description: A construction frame for a timer.
placement:
mode: SnapgridCenter
components:
- type: Clickable
- type: InteractionOutline
- type: Transform
anchored: true
- type: Sprite
drawdepth: WallMountedItems
netsync: false
sprite: Structures/Wallmounts/textscreen.rsi
state: textscreen
- type: Construction
graph: Timer
node: frame
- type: WallMount

View File

@@ -0,0 +1,177 @@
- type: constructionGraph
id: Timer
start: start
graph:
- node: start
edges:
- to: frame
steps:
- material: Steel
amount: 5
doAfter: 2
- node: frame
entity: TimerFrame
edges:
- to: start
steps:
- tool: Welding
doAfter: 4
completed:
- !type:GivePrototype
prototype: SheetSteel1
amount: 5
- !type:DeleteEntity {}
- to: parts
steps:
- material: Cable
amount: 2
doAfter: 2
- tool: Screwing
doAfter: 2
- node: parts
entity: TimerFrame
edges:
- to: signalElectronics
steps:
- tag: TimerSignalElectronics
store: board
name: "signal timer electronics"
icon:
sprite: "Objects/Misc/module.rsi"
state: "charger_APC"
doAfter: 1
- to: screenElectronics
steps:
- tag: TimerScreenElectronics
store: board
name: "screen timer electronics"
icon:
sprite: "Objects/Misc/module.rsi"
state: "charger_APC"
doAfter: 1
- to: brigElectronics
steps:
- tag: TimerBrigElectronics
store: board
name: "brig timer electronics"
icon:
sprite: "Objects/Misc/module.rsi"
state: "charger_APC"
doAfter: 1
- to: frame
steps:
- tool: Cutting
doAfter: 1
completed:
- !type:GivePrototype
prototype: CableApcStack1
amount: 2
- node: signalElectronics
entity: TimerFrame
edges:
- to: signal
steps:
- tool: Screwing
doAfter: 1
- to: parts
steps:
- tool: Prying
doAfter: 1
conditions:
- !type:ContainerNotEmpty
container: board
completed:
- !type:EmptyAllContainers {}
- node: screenElectronics
edges:
- to: screenGlass
steps:
- material: Glass
amount: 2
doAfter: 2
- to: parts
steps:
- tool: Prying
doAfter: 1
conditions:
- !type:ContainerNotEmpty
container: board
completed:
- !type:EmptyAllContainers {}
- node: brigElectronics
edges:
- to: brigGlass
steps:
- material: Glass
amount: 2
doAfter: 2
- to: parts
steps:
- tool: Prying
doAfter: 1
conditions:
- !type:ContainerNotEmpty
container: board
completed:
- !type:EmptyAllContainers {}
- node: screenGlass
entity: TimerFrame
edges:
- to: screenElectronics
steps:
- tool: Prying
doAfter: 1
completed:
- !type:GivePrototype
prototype: SheetGlass1
amount: 2
- to: screen
steps:
- tool: Screwing
doAfter: 1
- node: brigGlass
entity: TimerFrame
edges:
- to: brigElectronics
steps:
- tool: Prying
doAfter: 1
completed:
- !type:GivePrototype
prototype: SheetGlass1
amount: 2
- to: brig
steps:
- tool: Screwing
doAfter: 1
- node: signal
entity: SignalTimer
edges:
- to: signalElectronics
steps:
- tool: Screwing
doAfter: 2
- node: screen
entity: ScreenTimer
edges:
- to: screenGlass
steps:
- tool: Screwing
doAfter: 2
- node: brig
entity: BrigTimer
edges:
- to: brigGlass
steps:
- tool: Screwing
doAfter: 2

View File

@@ -0,0 +1,25 @@
- type: constructionGraph
id: TimerElectronics
start: signal
graph:
- node: signal
entity: SignalTimerElectronics
edges:
- to: screen
steps:
- tool: Screwing
doAfter: 2
- node: screen
entity: ScreenTimerElectronics
edges:
- to: brig
steps:
- tool: Screwing
doAfter: 2
- node: brig
entity: BrigTimerElectronics
edges:
- to: signal
steps:
- tool: Screwing
doAfter: 2

View File

@@ -677,3 +677,57 @@
canBuildInImpassable: true canBuildInImpassable: true
conditions: conditions:
- !type:WallmountCondition {} - !type:WallmountCondition {}
# TIMERS
- type: construction
name: signal timer
id: SignalTimer
graph: Timer
startNode: start
targetNode: signal
category: construction-category-utilities
description: "A wallmounted timer for sending timed signals to things."
icon:
sprite: Structures/Wallmounts/switch.rsi
state: on
objectType: Structure
placementMode: SnapgridCenter
canBuildInImpassable: true
conditions:
- !type:WallmountCondition
- type: construction
name: screen timer
id: ScreenTimer
graph: Timer
startNode: start
targetNode: screen
category: construction-category-utilities
description: "A wallmounted timer for sending timed signals to things. This one has a screen for displaying text."
icon:
sprite: Structures/Wallmounts/textscreen.rsi
state: textscreen
objectType: Structure
canRotate: false
placementMode: SnapgridCenter
canBuildInImpassable: true
conditions:
- !type:WallmountCondition
- type: construction
name: brig timer
id: BrigTimer
graph: Timer
startNode: start
targetNode: brig
category: construction-category-utilities
description: "A wallmounted timer for sending timed signals to things. This one has a screen for displaying text and requires security access to use."
icon:
sprite: Structures/Wallmounts/textscreen.rsi
state: textscreen
objectType: Structure
canRotate: false
placementMode: SnapgridCenter
canBuildInImpassable: true
conditions:
- !type:WallmountCondition

View File

@@ -46,6 +46,14 @@
Steel: 50 Steel: 50
Plastic: 50 Plastic: 50
- type: latheRecipe
id: SignalTimerElectronics
result: SignalTimerElectronics
completetime: 2
materials:
Steel: 50
Plastic: 50
- type: latheRecipe - type: latheRecipe
id: CloningPodMachineCircuitboard id: CloningPodMachineCircuitboard
result: CloningPodMachineCircuitboard result: CloningPodMachineCircuitboard

View File

@@ -679,6 +679,15 @@
- type: Tag - type: Tag
id: Taser id: Taser
- type: Tag
id: TimerBrigElectronics
- type: Tag
id: TimerScreenElectronics
- type: Tag
id: TimerSignalElectronics
- type: Tag - type: Tag
id: Trash id: Trash