Improved RCDs (#22799)

* Initial radial menu prototyping for the RCD

* Radial UI buttons can send messages to the server

* Beginning to update RCDSystem

* RCD building system in progress

* Further updates

* Added extra effects, RCDSystem now reads RCD prototype data

* Replacing tiles is instant, multiple constructions are allowed, deconstruction is broken

* Added extra functionality to RadialContainers plus documentation

* Fixed localization of RCD UI strings

* Menu opens near cursor, added basic RCD

* Avoiding merge conflict

* Implemented atomized construction / deconstruction rules

* Increased RCD ammo base charges

* Moved input context definition to content

* Removed obsoleted code

* Updates to system

* Switch machine and computer frames for electrical cabling

* Added construction ghosts

* Fixed issue with keybind detection code

* Fixed RCD construction ghost mispredications

* Code clean up

* Updated deconstruction effects

* RCDs effects don't rotate

* Code clean up

* Balancing for ammo counts

* Code clean up

* Added missing localized strings

* More clean up

* Made directional window handling more robust

* Added documentation to radial menus and made them no longer dependent on Content

* Made radial containers more robust

* Further robustness to the radial menu

* The RCD submenu buttons are only shown when the destination layer has at least one children

* Expanded upon deconstructing plus construction balance

* Fixed line endings

* Updated list of RCD deconstructable entities. Now needs a component to deconstruct instead of a tag

* Bug fixes

* Revert unnecessary change

* Updated RCD strings

* Fixed bug

* More fixes

* Deconstructed tiles/subflooring convert to lattice instead

* Fixed failed tests (Linux doesn't like invalid spritespecifer paths)

* Fixing merge conflict

* Updated airlock assembly

* Fixing merge conflict

* Fixing merge conflict

* More fixing...

* Removed erroneous project file change

* Fixed string handling issue

* Trying to fix merge conflict

* Still fixing merge conflicts

* Balancing

* Hidden RCD construction ghosts when in 'build' mode

* Fixing merge conflict

* Implemented requested changes (Part 1)

* Added more requested changes

* Fix for failed test. Removed sussy null suppression

* Made requested changes - custom construction ghost system was replaced

* Fixing merge conflict

* Fixed merge conflict

* Fixed bug in RCD construction ghost validation

* Fixing merge conflict

* Merge conflict fixed

* Made required update

* Removed lingering RCD deconstruct tag

* Fixing merge conflict

* Merge conflict fixed

* Made requested changes

* Bug fixes and balancing

* Made string names more consistent

* Can no longer stack catwalks
This commit is contained in:
chromiumboy
2024-03-30 23:29:47 -05:00
committed by GitHub
parent 4d2aa1a70a
commit 02273ca0e7
100 changed files with 2765 additions and 380 deletions

View File

@@ -166,8 +166,8 @@
- type: entity
id: CrateRCDAmmo
parent: CrateEngineering
name: RCD ammo crate
description: 3 RCD ammo, each restoring 5 charges.
name: compressed matter crate
description: Contains three compressed matter cartridges.
components:
- type: StorageFill
contents:
@@ -178,7 +178,7 @@
id: CrateRCD
parent: CrateEngineeringSecure
name: RCD crate
description: A crate containing a single Rapid Construction Device.
description: A crate containing a single rapid construction device.
components:
- type: StorageFill
contents:

View File

@@ -128,9 +128,10 @@
snap:
- Wall
components:
- type: Tag
tags:
- RCDDeconstructWhitelist
- type: RCDDeconstructable
cost: 2
delay: 2
fx: EffectRCDDeconstruct2
- type: Clickable
- type: InteractionOutline
- type: Sprite

View File

@@ -1,16 +1,115 @@
- type: entity
id: EffectRCDConstruction
id: EffectRCDBase
abstract: true
noSpawn: true
components:
- type: Transform
anchored: True
- type: Sprite
snapCardinals: true
noRot: true
drawdepth: Effects
sprite: /Textures/Effects/rcd.rsi
state: construct
- type: TimedDespawn
lifetime: 3.2
state: construct0
- type: Tag
tags:
- HideContextMenu
- type: AnimationPlayer
- type: entity
parent: EffectRCDBase
id: EffectRCDDeconstructPreview
noSpawn: true
components:
- type: Sprite
state: deconstructPreview
- type: entity
parent: EffectRCDBase
id: EffectRCDConstruct0
noSpawn: true
components:
- type: Sprite
state: construct0
- type: TimedDespawn
lifetime: 1.2
- type: entity
parent: EffectRCDBase
id: EffectRCDConstruct1
noSpawn: true
components:
- type: Sprite
state: construct1
- type: TimedDespawn
lifetime: 2.2
- type: entity
parent: EffectRCDBase
id: EffectRCDConstruct2
noSpawn: true
components:
- type: Sprite
state: construct2
- type: TimedDespawn
lifetime: 3.2
- type: entity
parent: EffectRCDBase
id: EffectRCDConstruct3
noSpawn: true
components:
- type: Sprite
state: construct3
- type: TimedDespawn
lifetime: 4.2
- type: entity
parent: EffectRCDBase
id: EffectRCDConstruct4
noSpawn: true
components:
- type: Sprite
state: construct4
- type: TimedDespawn
lifetime: 5.2
- type: entity
parent: EffectRCDBase
id: EffectRCDDeconstruct2
noSpawn: true
components:
- type: Sprite
state: deconstruct2
- type: TimedDespawn
lifetime: 3.2
- type: entity
parent: EffectRCDBase
id: EffectRCDDeconstruct4
noSpawn: true
components:
- type: Sprite
state: deconstruct4
- type: TimedDespawn
lifetime: 5.2
- type: entity
parent: EffectRCDBase
id: EffectRCDDeconstruct6
noSpawn: true
components:
- type: Sprite
state: deconstruct6
- type: TimedDespawn
lifetime: 7.2
- type: entity
parent: EffectRCDBase
id: EffectRCDDeconstruct8
noSpawn: true
components:
- type: Sprite
state: deconstruct8
- type: TimedDespawn
lifetime: 9.2

View File

@@ -7,4 +7,4 @@
color: '#3F38'
- type: ConstructionGhost
- type: Clickable
- type: InteractionOutline
- type: InteractionOutline

View File

@@ -337,15 +337,35 @@
path: "/Audio/Items/drill_hit.ogg"
- type: entity
name: RCD
parent: BaseItem
id: RCD
description: An advanced construction device which can place/remove walls, floors, and airlocks quickly.
parent: BaseItem
name: RCD
description: The rapid construction device can be used to quickly place and remove various station structures and fixtures. Requires compressed matter to function.
components:
- type: RCD
availablePrototypes:
- WallSolid
- FloorSteel
- Plating
- Catwalk
- Grille
- Window
- WindowDirectional
- WindowReinforcedDirectional
- ReinforcedWindow
- Airlock
- AirlockGlass
- Firelock
- TubeLight
- BulbLight
- LVCable
- MVCable
- HVCable
- CableTerminal
- Deconstruct
- type: LimitedCharges
maxCharges: 5
charges: 5
maxCharges: 30
charges: 30
- type: UseDelay
- type: Sprite
sprite: Objects/Tools/rcd.rsi
@@ -363,6 +383,12 @@
Plastic: 100
- type: StaticPrice
price: 100
- type: UserInterface
interfaces:
- key: enum.RcdUiKey.Key
type: RCDMenuBoundUserInterface
- type: ActivatableUI
key: enum.RcdUiKey.Key
- type: entity
id: RCDEmpty
@@ -370,37 +396,50 @@
suffix: Empty
components:
- type: LimitedCharges
maxCharges: 5
charges: 0
- type: RCD
availablePrototypes:
- WallSolid
- FloorSteel
- Plating
- Catwalk
- Grille
- Window
- WindowDirectional
- WindowReinforcedDirectional
- ReinforcedWindow
- Airlock
- AirlockGlass
- Firelock
- type: entity
id: RCDRecharging
parent: RCD
name: experimental rcd
description: A bluespace-enhanced RCD that regenerates charges passively.
name: experimental RCD
description: A bluespace-enhanced rapid construction device that passively generates its own compressed matter.
suffix: AutoRecharge
components:
- type: LimitedCharges
maxCharges: 3
charges: 3
maxCharges: 20
charges: 20
- type: AutoRecharge
rechargeDuration: 30
rechargeDuration: 10
- type: entity
id: RCDExperimental
parent: RCD
suffix: Admeme
name: experimental rcd
description: A bluespace-enhanced RCD that regenerates charges passively.
name: experimental RCD
description: A bluespace-enhanced rapid construction device that passively generates its own compressed matter.
components:
- type: AutoRecharge
rechargeDuration: 5
rechargeDuration: 1
- type: entity
name: RCD Ammo
name: compressed matter
parent: BaseItem
id: RCDAmmo
description: Ammo cartridge for an RCD.
description: A cartridge of raw matter compacted by bluespace technology. Used in rapid construction devices.
components:
- type: RCDAmmo
- type: Sprite

View File

@@ -138,48 +138,6 @@
sprite: Structures/Doors/Airlocks/Standard/hatch_maint.rsi
# Glass
- type: entity
id: AirlockGlass
parent: Airlock
name: glass airlock
components:
- type: MeleeSound
soundGroups:
Brute:
collection: GlassSmack
- type: Door
occludes: false
- type: Occluder
enabled: false
- type: Sprite
sprite: Structures/Doors/Airlocks/Glass/glass.rsi
- type: AnimationPlayer
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49" # don't want this colliding with walls or they won't close
density: 100
mask:
- FullTileMask
layer: #removed opaque from the layer, allowing lasers to pass through glass airlocks
- GlassAirlockLayer
- type: LayerChangeOnWeld
unWeldedLayer: GlassAirlockLayer
weldedLayer: GlassLayer
- type: Construction
graph: Airlock
node: glassAirlock
- type: PaintableAirlock
group: Glass
- type: RadiationBlocker
resistance: 2
- type: Tag
tags:
- GlassAirlock
# This tag is used to nagivate the Airlock construction graph. It's needed because the construction graph is shared between Airlock, AirlockGlass, and HighSecDoor
- type: entity
parent: AirlockGlass
id: AirlockEngineeringGlass
@@ -295,4 +253,4 @@
- type: Sprite
sprite: Structures/Doors/Airlocks/Glass/centcomm.rsi
- type: WiresPanelSecurity
securityLevel: medSecurity
securityLevel: medSecurity

View File

@@ -30,6 +30,10 @@
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: RCDDeconstructable
cost: 6
delay: 8
fx: EffectRCDDeconstruct8
- type: Destructible
thresholds:
- trigger:

View File

@@ -111,6 +111,10 @@
- type: Damageable
damageContainer: StructuralInorganic
damageModifierSet: StrongMetallic
- type: RCDDeconstructable
cost: 6
delay: 8
fx: EffectRCDDeconstruct8
- type: Destructible
thresholds:
- trigger:
@@ -149,5 +153,53 @@
- type: BlockWeather
placement:
mode: SnapgridCenter
- type: entity
id: AirlockRCDResistant
parent: Airlock
abstract: true
components:
- type: RCDDeconstructable
deconstructable: false
- type: entity
id: AirlockGlass
parent: Airlock
name: glass airlock
components:
- type: MeleeSound
soundGroups:
Brute:
collection: GlassSmack
- type: Door
occludes: false
- type: Occluder
enabled: false
- type: Sprite
sprite: Structures/Doors/Airlocks/Glass/glass.rsi
- type: AnimationPlayer
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49" # don't want this colliding with walls or they won't close
density: 100
mask:
- FullTileMask
layer: #removed opaque from the layer, allowing lasers to pass through glass airlocks
- GlassAirlockLayer
- type: LayerChangeOnWeld
unWeldedLayer: GlassAirlockLayer
weldedLayer: GlassLayer
- type: Construction
graph: Airlock
node: glassAirlock
- type: PaintableAirlock
group: Glass
- type: RadiationBlocker
resistance: 2
- type: Tag
tags:
- GlassAirlock
# This tag is used to nagivate the Airlock construction graph. It's needed because the construction graph is shared between Airlock, AirlockGlass, and HighSecDoor

View File

@@ -1,5 +1,5 @@
- type: entity
parent: Airlock
parent: AirlockRCDResistant
id: AirlockExternal
suffix: External
description: It opens, it closes, it might crush you, and there might be only space behind it.

View File

@@ -1,5 +1,5 @@
- type: entity
parent: Airlock
parent: AirlockRCDResistant
id: AirlockShuttle
suffix: Docking
name: external airlock

View File

@@ -19,6 +19,10 @@
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: RCDDeconstructable
cost: 4
delay: 6
fx: EffectRCDDeconstruct6
- type: Destructible
thresholds:
- trigger:

View File

@@ -25,6 +25,10 @@
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: RCDDeconstructable
cost: 4
delay: 6
fx: EffectRCDDeconstruct6
- type: Destructible
thresholds:
- trigger:

View File

@@ -43,6 +43,10 @@
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: RCDDeconstructable
cost: 6
delay: 6
fx: EffectRCDDeconstruct6
- type: Destructible
thresholds:
- trigger:

View File

@@ -41,6 +41,10 @@
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: RCDDeconstructable
cost: 6
delay: 8
fx: EffectRCDDeconstruct8
- type: Destructible
thresholds:
- trigger:
@@ -97,6 +101,10 @@
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: RCDDeconstructable
cost: 6
delay: 8
fx: EffectRCDDeconstruct8
- type: Destructible
thresholds:
- trigger:

View File

@@ -26,6 +26,10 @@
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: RCDDeconstructable
cost: 6
delay: 8
fx: EffectRCDDeconstruct8
- type: Destructible
thresholds:
- trigger:

View File

@@ -66,7 +66,11 @@
damageContainer: Inorganic
damageModifierSet: Glass
- type: ExaminableDamage
messages: WindowMessages
messages: WindowMessages
- type: RCDDeconstructable
cost: 8
delay: 8
fx: EffectRCDDeconstruct8
- type: Destructible
thresholds:
- trigger:

View File

@@ -40,6 +40,10 @@
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: RCDDeconstructable
cost: 4
delay: 2
fx: EffectRCDDeconstruct2
- type: Destructible
thresholds:
- trigger:
@@ -70,7 +74,7 @@
mode: SnapgridCenter
snap:
- Wallmount
- type: entity
name: light
description: "A light fixture. Draws power and produces light when equipped with a light tube."

View File

@@ -17,6 +17,10 @@
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: RCDDeconstructable
cost: 2
delay: 2
fx: EffectRCDDeconstruct2
- type: Destructible
thresholds:
- trigger:

View File

@@ -43,6 +43,10 @@
lowVoltageNode: power
- type: CableVis
node: power
- type: RCDDeconstructable
cost: 2
delay: 2
fx: EffectRCDDeconstruct2
- type: entity
parent: CableBase

View File

@@ -10,9 +10,6 @@
Brute:
path:
"/Audio/Weapons/grille_hit.ogg"
- type: Tag
tags:
- RCDDeconstructWhitelist
- type: Sprite
sprite: Structures/Walls/fence.rsi
drawdepth: WallTops
@@ -78,6 +75,10 @@
True: { visible: True }
False: { visible: False }
- type: AnimationPlayer
- type: RCDDeconstructable
cost: 2
delay: 2
fx: EffectRCDDeconstruct2
- type: entity
parent: BaseFenceMetal

View File

@@ -12,7 +12,6 @@
"/Audio/Weapons/boxingpunch1.ogg"
- type: Tag
tags:
- RCDDeconstructWhitelist
- Wooden
- type: Sprite
sprite: Structures/Walls/wooden_fence.rsi
@@ -24,6 +23,10 @@
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Wood
- type: RCDDeconstructable
cost: 2
delay: 2
fx: EffectRCDDeconstruct2
- type: Destructible
thresholds:
- trigger:

View File

@@ -9,9 +9,10 @@
Brute:
path:
"/Audio/Weapons/grille_hit.ogg"
- type: Tag
tags:
- RCDDeconstructWhitelist
- type: RCDDeconstructable
cost: 6
delay: 4
fx: EffectRCDDeconstruct4
- type: CanBuildWindowOnTop
- type: Sprite
drawdepth: Walls
@@ -120,9 +121,10 @@
- type: Icon
sprite: Structures/Walls/grille.rsi
state: grille_broken
- type: Tag
tags:
- RCDDeconstructWhitelist
- type: RCDDeconstructable
cost: 6
delay: 4
fx: EffectRCDDeconstruct4
- type: Construction
graph: Grille
node: grilleBroken

View File

@@ -57,6 +57,10 @@
- type: Construction
graph: Railing
node: railing
- type: RCDDeconstructable
cost: 2
delay: 2
fx: EffectRCDDeconstruct2
- type: entity
parent: BaseStructure
@@ -126,6 +130,10 @@
- type: Construction
graph: Railing
node: railingCorner
- type: RCDDeconstructable
cost: 2
delay: 2
fx: EffectRCDDeconstruct2
- type: entity
parent: BaseStructure
@@ -186,7 +194,11 @@
- type: Construction
graph: Railing
node: railingCornerSmall
- type: RCDDeconstructable
cost: 2
delay: 2
fx: EffectRCDDeconstruct2
- type: entity
parent: BaseStructure
id: RailingRound
@@ -261,3 +273,7 @@
- type: Construction
graph: Railing
node: railingRound
- type: RCDDeconstructable
cost: 2
delay: 2
fx: EffectRCDDeconstruct2

View File

@@ -59,11 +59,14 @@
- type: Tag
tags:
- Wall
- RCDDeconstructWhitelist
- type: Sprite
sprite: Structures/Walls/brick.rsi
- type: Icon
sprite: Structures/Walls/brick.rsi
- type: RCDDeconstructable
cost: 6
delay: 8
fx: EffectRCDDeconstruct8
- type: Destructible
thresholds:
- trigger:
@@ -90,7 +93,6 @@
- type: Tag
tags:
- Wall
- RCDDeconstructWhitelist
- type: Sprite
sprite: Structures/Walls/clock.rsi
- type: Icon
@@ -123,7 +125,6 @@
- type: Tag
tags:
- Wall
- RCDDeconstructWhitelist
- type: Sprite
sprite: Structures/Walls/clown.rsi
- type: Icon
@@ -131,6 +132,10 @@
- type: Construction
graph: Girder
node: bananiumWall
- type: RCDDeconstructable
cost: 6
delay: 8
fx: EffectRCDDeconstruct8
- type: Destructible
thresholds:
- trigger:
@@ -156,7 +161,6 @@
components:
- type: Tag
tags:
- RCDDeconstructWhitelist
- Wall
- Structure
- type: Sprite
@@ -190,7 +194,6 @@
components:
- type: Tag
tags:
- RCDDeconstructWhitelist
- Wall
- type: Sprite
sprite: Structures/Walls/cult.rsi
@@ -223,7 +226,6 @@
tags:
- Wall
- Debug
- RCDDeconstructWhitelist
- type: Sprite
sprite: Structures/Walls/debug.rsi
- type: Icon
@@ -253,11 +255,14 @@
- type: Tag
tags:
- Wall
- RCDDeconstructWhitelist
- type: Sprite
sprite: Structures/Walls/diamond.rsi
- type: Icon
sprite: Structures/Walls/diamond.rsi
- type: RCDDeconstructable
cost: 6
delay: 8
fx: EffectRCDDeconstruct8
- type: Destructible
thresholds:
- trigger:
@@ -283,7 +288,6 @@
- type: Tag
tags:
- Wall
- RCDDeconstructWhitelist
- type: Sprite
sprite: Structures/Walls/gold.rsi
- type: Icon
@@ -291,6 +295,10 @@
- type: Construction
graph: Girder
node: goldWall
- type: RCDDeconstructable
cost: 6
delay: 8
fx: EffectRCDDeconstruct8
- type: Destructible
thresholds:
- trigger:
@@ -325,7 +333,6 @@
- type: Tag
tags:
- Wall
- RCDDeconstructWhitelist
- type: Sprite
sprite: Structures/Walls/ice.rsi
- type: Icon
@@ -355,7 +362,6 @@
- type: Tag
tags:
- Wall
- RCDDeconstructWhitelist
- type: Sprite
sprite: Structures/Walls/plasma.rsi
- type: Icon
@@ -363,6 +369,10 @@
- type: Construction
graph: Girder
node: plasmaWall
- type: RCDDeconstructable
cost: 6
delay: 8
fx: EffectRCDDeconstruct8
- type: Destructible
thresholds:
- trigger:
@@ -399,7 +409,6 @@
- type: Tag
tags:
- Wall
- RCDDeconstructWhitelist
- type: Sprite
sprite: Structures/Walls/plastic.rsi
- type: Icon
@@ -407,6 +416,10 @@
- type: Construction
graph: Girder
node: plasticWall
- type: RCDDeconstructable
cost: 6
delay: 8
fx: EffectRCDDeconstruct8
- type: Destructible
thresholds:
- trigger:
@@ -459,7 +472,6 @@
- type: Tag
tags:
- Wall
- RCDDeconstructWhitelist
- type: Destructible
thresholds:
- trigger:
@@ -604,7 +616,6 @@
- type: Tag
tags:
- Wall
- RCDDeconstructWhitelist
- type: Sprite
sprite: Structures/Walls/riveted.rsi
- type: Icon
@@ -639,11 +650,14 @@
- type: Tag
tags:
- Wall
- RCDDeconstructWhitelist
- type: Sprite
sprite: Structures/Walls/sandstone.rsi
- type: Icon
sprite: Structures/Walls/sandstone.rsi
- type: RCDDeconstructable
cost: 6
delay: 8
fx: EffectRCDDeconstruct8
- type: Destructible
thresholds:
- trigger:
@@ -669,7 +683,6 @@
- type: Tag
tags:
- Wall
- RCDDeconstructWhitelist
- type: Sprite
sprite: Structures/Walls/silver.rsi
- type: Icon
@@ -677,6 +690,10 @@
- type: Construction
graph: Girder
node: silverWall
- type: RCDDeconstructable
cost: 6
delay: 8
fx: EffectRCDDeconstruct8
- type: Destructible
thresholds:
- trigger:
@@ -842,7 +859,6 @@
- type: Tag
tags:
- Wall
- RCDDeconstructWhitelist
- type: Sprite
sprite: Structures/Walls/solid.rsi
- type: WallReplacementMarker
@@ -851,6 +867,10 @@
node: wall
- type: Icon
sprite: Structures/Walls/solid.rsi
- type: RCDDeconstructable
cost: 6
delay: 8
fx: EffectRCDDeconstruct8
- type: Destructible
thresholds:
- trigger:
@@ -1012,7 +1032,6 @@
- type: Tag
tags:
- Wall
- RCDDeconstructWhitelist
- type: Sprite
sprite: Structures/Walls/web.rsi
- type: Icon
@@ -1224,11 +1243,14 @@
- type: Tag
tags:
- Wall
- RCDDeconstructWhitelist
- type: Sprite
sprite: Structures/Walls/cobblebrick.rsi
- type: Icon
sprite: Structures/Walls/cobblebrick.rsi
- type: RCDDeconstructable
cost: 6
delay: 8
fx: EffectRCDDeconstruct8
- type: Destructible
thresholds:
- trigger:

View File

@@ -1,7 +1,7 @@
- type: entity
id: MiningWindow
name: mining window
parent: Window
parent: WindowRCDResistant
components:
- type: Sprite
drawdepth: WallTops

View File

@@ -1,7 +1,7 @@
- type: entity
id: PlasmaWindow
name: plasma window
parent: Window
parent: WindowRCDResistant
components:
- type: Sprite
drawdepth: WallTops
@@ -55,7 +55,7 @@
- type: entity
id: PlasmaWindowDirectional
parent: WindowDirectional
parent: WindowDirectionalRCDResistant
name: directional plasma window
description: Don't smudge up the glass down there.
placement:

View File

@@ -14,6 +14,10 @@
- type: Damageable
damageContainer: StructuralInorganic
damageModifierSet: RGlass
- type: RCDDeconstructable
cost: 6
delay: 6
fx: EffectRCDDeconstruct6
- type: Destructible
thresholds:
- trigger:
@@ -99,6 +103,10 @@
sprite: Structures/Windows/cracks_directional.rsi
- type: Damageable
damageModifierSet: RGlass
- type: RCDDeconstructable
cost: 4
delay: 4
fx: EffectRCDDeconstruct4
- type: Destructible
thresholds:
- trigger:

View File

@@ -1,7 +1,7 @@
- type: entity
id: ReinforcedPlasmaWindow
name: reinforced plasma window
parent: Window
parent: WindowRCDResistant
components:
- type: Sprite
drawdepth: WallTops
@@ -58,7 +58,7 @@
- type: entity
id: PlasmaReinforcedWindowDirectional
parent: WindowDirectional
parent: WindowDirectionalRCDResistant
name: directional reinforced plasma window
description: Don't smudge up the glass down there.
placement:

View File

@@ -1,7 +1,7 @@
- type: entity
id: ReinforcedUraniumWindow
name: reinforced uranium window
parent: Window
parent: WindowRCDResistant
components:
- type: Sprite
drawdepth: WallTops

View File

@@ -1,7 +1,7 @@
- type: entity
id: ShuttleWindow
name: shuttle window
parent: Window
parent: WindowRCDResistant
components:
- type: Sprite
drawdepth: WallTops

View File

@@ -1,7 +1,7 @@
- type: entity
id: UraniumWindow
name: uranium window
parent: Window
parent: WindowRCDResistant
components:
- type: Sprite
drawdepth: WallTops

View File

@@ -16,7 +16,6 @@
arc: 360 # interact despite grilles
- type: Tag
tags:
- RCDDeconstructWhitelist
- ForceFixRotations
- Window
- type: Sprite
@@ -42,6 +41,10 @@
- type: ExaminableDamage
messages: WindowMessages
- type: Repairable
- type: RCDDeconstructable
cost: 6
delay: 4
fx: EffectRCDDeconstruct4
- type: Destructible
thresholds:
- trigger:
@@ -89,6 +92,14 @@
- type: StaticPrice
price: 100
- type: BlockWeather
- type: entity
id: WindowRCDResistant
parent: Window
abstract: true
components:
- type: RCDDeconstructable
deconstructable: false
- type: entity
id: WindowDirectional
@@ -139,6 +150,10 @@
damageModifierSet: Glass
- type: ExaminableDamage
messages: WindowMessages
- type: RCDDeconstructable
cost: 4
delay: 2
fx: EffectRCDDeconstruct2
- type: Destructible
thresholds:
- trigger:
@@ -181,6 +196,14 @@
- type: StaticPrice
price: 10
- type: entity
id: WindowDirectionalRCDResistant
parent: WindowDirectional
abstract: true
components:
- type: RCDDeconstructable
deconstructable: false
- type: entity
id: WindowFrostedDirectional
parent: WindowDirectional

View File

@@ -51,3 +51,7 @@
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: RCDDeconstructable
cost: 2
delay: 2
fx: EffectRCDDeconstruct2

View File

@@ -0,0 +1,294 @@
# Operations
- type: rcd
id: Invalid # Hidden prototype - do not add to RCDs
mode: Invalid
- type: rcd
id: Deconstruct
name: rcd-component-deconstruct
category: Main
sprite: /Textures/Interface/Radial/RCD/deconstruct.png
mode: Deconstruct
prototype: EffectRCDDeconstructPreview
rotation: Camera
- type: rcd
id: DeconstructLattice # Hidden prototype - do not add to RCDs
mode: Deconstruct
cost: 2
delay: 1
rotation: Camera
fx: EffectRCDDeconstruct2
- type: rcd
id: DeconstructTile # Hidden prototype - do not add to RCDs
mode: Deconstruct
cost: 4
delay: 4
rotation: Camera
fx: EffectRCDDeconstruct4
# Flooring
- type: rcd
id: Plating
name: rcd-component-plating
category: WallsAndFlooring
sprite: /Textures/Interface/Radial/RCD/plating.png
mode: ConstructTile
prototype: Plating
cost: 1
delay: 1
collisionMask: InteractImpassable
rules:
- CanBuildOnEmptyTile
fx: EffectRCDConstruct1
- type: rcd
id: FloorSteel
name: rcd-component-floor-steel
category: WallsAndFlooring
sprite: /Textures/Interface/Radial/RCD/metal_tile.png
mode: ConstructTile
prototype: FloorSteel
cost: 1
delay: 1
collisionMask: InteractImpassable
rules:
- CanBuildOnEmptyTile
fx: EffectRCDConstruct1
- type: rcd
id: Catwalk
name: rcd-component-catwalk
category: WallsAndFlooring
sprite: /Textures/Interface/Radial/RCD/catwalk.png
mode: ConstructObject
prototype: Catwalk
cost: 1
delay: 1
collisionMask: InteractImpassable
rules:
- MustBuildOnSubfloor
- IsCatwalk
rotation: Fixed
fx: EffectRCDConstruct1
# Walls
- type: rcd
id: WallSolid
name: rcd-component-wall-solid
category: WallsAndFlooring
sprite: /Textures/Interface/Radial/RCD/solid_wall.png
mode: ConstructObject
prototype: WallSolid
cost: 4
delay: 2
collisionMask: FullTileMask
rotation: Fixed
fx: EffectRCDConstruct2
- type: rcd
id: Grille
name: rcd-component-grille
category: WindowsAndGrilles
sprite: /Textures/Interface/Radial/RCD/grille.png
mode: ConstructObject
prototype: Grille
cost: 4
delay: 2
collisionMask: FullTileMask
rotation: Fixed
fx: EffectRCDConstruct2
# Windows
- type: rcd
id: Window
name: rcd-component-window
category: WindowsAndGrilles
sprite: /Textures/Interface/Radial/RCD/window.png
mode: ConstructObject
prototype: Window
cost: 3
delay: 2
collisionMask: FullTileMask
rules:
- IsWindow
rotation: Fixed
fx: EffectRCDConstruct2
- type: rcd
id: WindowDirectional
name: rcd-component-window-directional
category: WindowsAndGrilles
sprite: /Textures/Interface/Radial/RCD/directional.png
mode: ConstructObject
prototype: WindowDirectional
cost: 2
delay: 1
collisionMask: FullTileMask
collisionBounds: "-0.23,-0.49,0.23,-0.36"
rules:
- IsWindow
rotation: User
fx: EffectRCDConstruct1
- type: rcd
id: ReinforcedWindow
name: rcd-component-reinforced-window
category: WindowsAndGrilles
sprite: /Textures/Interface/Radial/RCD/window_reinforced.png
mode: ConstructObject
prototype: ReinforcedWindow
cost: 4
delay: 3
collisionMask: FullTileMask
rules:
- IsWindow
rotation: User
fx: EffectRCDConstruct3
- type: rcd
id: WindowReinforcedDirectional
name: rcd-component-window-reinforced-directional
category: WindowsAndGrilles
sprite: /Textures/Interface/Radial/RCD/directional_reinforced.png
mode: ConstructObject
prototype: WindowReinforcedDirectional
cost: 3
delay: 2
collisionMask: FullTileMask
collisionBounds: "-0.23,-0.49,0.23,-0.36"
rules:
- IsWindow
rotation: User
fx: EffectRCDConstruct2
# Airlocks
- type: rcd
id: Airlock
name: rcd-component-airlock
category: Airlocks
sprite: /Textures/Interface/Radial/RCD/airlock.png
mode: ConstructObject
prototype: Airlock
cost: 4
delay: 4
collisionMask: FullTileMask
rotation: Camera
fx: EffectRCDConstruct4
- type: rcd
id: AirlockGlass
name: rcd-component-airlock-glass
category: Airlocks
sprite: /Textures/Interface/Radial/RCD/glass_airlock.png
mode: ConstructObject
prototype: AirlockGlass
cost: 4
delay: 4
collisionMask: FullTileMask
rotation: Camera
fx: EffectRCDConstruct4
- type: rcd
id: Firelock
name: rcd-component-firelock
category: Airlocks
sprite: /Textures/Interface/Radial/RCD/firelock.png
mode: ConstructObject
prototype: Firelock
cost: 4
delay: 3
collisionMask: FullTileMask
rotation: Camera
fx: EffectRCDConstruct3
# Lighting
- type: rcd
id: TubeLight
name: rcd-component-tube-light
category: Lighting
sprite: /Textures/Interface/Radial/RCD/tube_light.png
mode: ConstructObject
prototype: Poweredlight
cost: 2
delay: 1
collisionMask: TabletopMachineMask
collisionBounds: "-0.23,-0.49,0.23,-0.36"
rotation: User
fx: EffectRCDConstruct1
- type: rcd
id: BulbLight
name: rcd-component-window-bulb-light
category: Lighting
sprite: /Textures/Interface/Radial/RCD/bulb_light.png
mode: ConstructObject
prototype: PoweredSmallLight
cost: 2
delay: 1
collisionMask: TabletopMachineMask
collisionBounds: "-0.23,-0.49,0.23,-0.36"
rotation: User
fx: EffectRCDConstruct1
# Electrical
- type: rcd
id: LVCable
name: rcd-component-window-lv-cable
category: Electrical
sprite: /Textures/Interface/Radial/RCD/lv_coil.png
mode: ConstructObject
prototype: CableApcExtension
cost: 1
delay: 0
collisionMask: InteractImpassable
rules:
- MustBuildOnSubfloor
rotation: Fixed
fx: EffectRCDConstruct0
- type: rcd
id: MVCable
name: rcd-component-window-mv-cable
category: Electrical
sprite: /Textures/Interface/Radial/RCD/mv_coil.png
mode: ConstructObject
prototype: CableMV
cost: 1
delay: 0
collisionMask: InteractImpassable
rules:
- MustBuildOnSubfloor
rotation: Fixed
fx: EffectRCDConstruct0
- type: rcd
id: HVCable
name: rcd-component-window-hv-cable
category: Electrical
sprite: /Textures/Interface/Radial/RCD/hv_coil.png
mode: ConstructObject
prototype: CableHV
cost: 1
delay: 0
collisionMask: InteractImpassable
rules:
- MustBuildOnSubfloor
rotation: Fixed
fx: EffectRCDConstruct0
- type: rcd
id: CableTerminal
name: rcd-component-window-cable-terminal
category: Electrical
sprite: /Textures/Interface/Radial/RCD/cable_terminal.png
mode: ConstructObject
prototype: CableTerminal
cost: 1
delay: 0
collisionMask: InteractImpassable
rules:
- MustBuildOnSubfloor
rotation: User
fx: EffectRCDConstruct0

View File

@@ -1034,9 +1034,6 @@
- type: Tag
id: RawMaterial
- type: Tag
id: RCDDeconstructWhitelist
# Give this to something that doesn't need any special recycler behavior and just needs deleting.
- type: Tag
id: Recyclable