Material Reclaimer (#14969)

* Material Reclaimer

* Fix this test

* autostack output, tweak volume, add upgrade examine

* whitelist AND blacklist support

why not

* trying so hard to get this fucking test to work

* EmoGarbage delves into MaterialArbitrageTest, never to return

* VV and restore cloth to glory

* make the system more robust

* even more stuff has composition; add blacklist for important items

* fix test fails

* convert recycling

* forgor :sadge:

* lol

* simply a modiCUM of doc commentary
This commit is contained in:
Nemanja
2023-04-10 00:38:20 -04:00
committed by GitHub
parent 69c1317d1c
commit 57f2a768a0
111 changed files with 1455 additions and 506 deletions

View File

@@ -16,6 +16,9 @@
- type: Tag
tags:
- Trash
- type: PhysicalComposition
materialComposition:
Steel: 25
- type: entity
id: LeftArmBorg
@@ -36,7 +39,6 @@
tags:
- Trash
- BorgArm
- type: Recyclable
- type: entity
id: RightArmBorg
@@ -57,4 +59,3 @@
tags:
- Trash
- BorgArm
- type: Recyclable

View File

@@ -364,6 +364,7 @@
- SheetPlastic
- SheetRGlass
- SheetGlass1
- MaterialReclaimerMachineCircuitboard
# Electromagnetic Theory Technology Tree

View File

@@ -10,6 +10,11 @@
- type: Clothing
slots: [belt]
quickEquip: false
- type: PhysicalComposition
materialComposition:
Cloth: 50
- type: StaticPrice
price: 25
- type: entity
abstract: true

View File

@@ -125,6 +125,9 @@
sprite: Clothing/Head/Misc/cone.rsi
- type: Clothing
sprite: Clothing/Head/Misc/cone.rsi
- type: PhysicalComposition #you can't just pass up some free plastic!
materialComposition:
Plastic: 100
- type: entity
parent: ClothingHeadBase

View File

@@ -8,6 +8,12 @@
- type: FlashImmunity
- type: IdentityBlocker
- type: EyeProtection
- type: PhysicalComposition
materialComposition:
Steel: 500
Glass: 100
- type: StaticPrice
price: 50
- type: entity
parent: WeldingMaskBase

View File

@@ -137,7 +137,10 @@
- type: Tag
tags:
- PetWearable
- type: Recyclable
- type: PhysicalComposition
materialComposition:
Steel: 50
Plastic: 100
- type: entity
parent: ClothingMaskBase

View File

@@ -259,6 +259,10 @@
sprintModifier: 0.75
- type: Item
size: 100
- type: Tag
tags:
- WhitelistChameleon
- HighRiskItem
- type: ExplosionResistance
damageCoefficient: 0.1
- type: ToggleableClothing

View File

@@ -58,6 +58,10 @@
sprintModifier: 1
enabled: false
- type: NoSlip
- type: Tag
tags:
- WhitelistChameleon
- HighRiskItem
- type: StaticPrice
price: 750

View File

@@ -824,7 +824,6 @@
tags:
- Trash
- CannotSuicide
- type: Recyclable
- type: Respirator
damage:
types:
@@ -1997,7 +1996,6 @@
tags:
- Trash
- CannotSuicide
- type: Recyclable
- type: Respirator
damage:
types:

View File

@@ -38,8 +38,6 @@
noRot: true
drawdepth: Mobs
netsync: false
- type: Recyclable
safe: false
- type: Faction
factions:
- SimpleNeutral

View File

@@ -139,8 +139,6 @@
- type: Polymorphable
- type: Pullable
- type: Buckle
- type: Recyclable
safe: false
- type: StandingState
- type: Alerts
- type: NameIdentifier

View File

@@ -56,8 +56,6 @@
- type: Pullable
- type: Examiner
- type: Puller
- type: Recyclable
safe: false
- type: StandingState
- type: Alerts
- type: Tag

View File

@@ -280,8 +280,6 @@
spawned:
- id: FoodMeat
amount: 5
# - type: Recyclable Turns out turning off recycler safeties without considering the instagib is a bad idea
# safe: false
- type: Speech
speechSounds: Alto
- type: Vocal

View File

@@ -72,6 +72,9 @@
damage:
types:
Blunt: 5
- type: PhysicalComposition
materialComposition:
Glass: 25
# Transformable container - normal glass
- type: entity
@@ -2164,7 +2167,6 @@
- type: Tag
tags:
- Trash
- type: Recyclable
- type: SpaceGarbage
- type: entity

View File

@@ -51,10 +51,12 @@
types:
Blunt: 0
- type: ItemCooldown
- type: Recyclable
- type: SpaceGarbage
- type: TrashOnEmpty
solution: drink
- type: PhysicalComposition
materialComposition:
Steel: 50 #reduce, reuse, recycle
- type: entity
parent: DrinkCanBaseFull

View File

@@ -66,6 +66,9 @@
- type: SolutionContainerVisuals
maxFillLevels: 3
fillBaseName: icon-
- type: PhysicalComposition
materialComposition:
Glass: 25
- type: entity
parent: DrinkBaseMug
@@ -130,6 +133,9 @@
components:
- type: Sprite
sprite: Objects/Consumable/Drinks/mug_metal.rsi
- type: PhysicalComposition
materialComposition:
Steel: 25
- type: entity
parent: DrinkBaseMug

View File

@@ -7,6 +7,9 @@
- type: Drink
- type: Sprite
sprite: Objects/Consumable/Drinks/shinyflask.rsi
- type: PhysicalComposition
materialComposition:
Steel: 50
- type: entity
parent: DrinkBase

View File

@@ -29,6 +29,9 @@
interfaces:
- key: enum.TransferAmountUiKey.Key
type: TransferAmountBoundUserInterface
- type: PhysicalComposition
materialComposition:
Steel: 50
- type: entity
parent: DrinkGlassBase

View File

@@ -68,7 +68,9 @@
- type: Tag
tags:
- Trash
- type: Recyclable
- type: PhysicalComposition
materialComposition:
Glass: 100
- type: SpaceGarbage
# Containers

View File

@@ -69,7 +69,9 @@
- type: Tag
tags:
- Trash
- type: Recyclable
- type: PhysicalComposition
materialComposition:
Glass: 50
- type: SpaceGarbage
- type: StaticPrice
price: 0

View File

@@ -45,7 +45,9 @@
- type: Tag
tags:
- Trash
- type: Recyclable
- type: PhysicalComposition
materialComposition:
Glass: 100
- type: SpaceGarbage
- type: entity
@@ -61,7 +63,6 @@
- type: Tag
tags:
- Trash
- type: Recyclable
- type: SpaceGarbage
# Small Plate
@@ -147,5 +148,7 @@
- type: Tag
tags:
- Trash
- type: Recyclable
- type: PhysicalComposition
materialComposition:
Steel: 100
- type: SpaceGarbage

View File

@@ -28,6 +28,9 @@
Blunt: 3
- type: Damageable
damageContainer: Inorganic
- type: PhysicalComposition
materialComposition:
Steel: 100
- type: entity
abstract: true
@@ -46,6 +49,9 @@
- type: Tag
tags:
- Trash
- type: PhysicalComposition
materialComposition:
Steel: 100
# Tins
# Need something that you can open these tins with. I suggest a prying or cutting tool.

View File

@@ -110,7 +110,6 @@
tags:
- Egg
- Trash
- type: Recyclable
- type: SpaceGarbage
# Egg

View File

@@ -10,7 +10,6 @@
flavors:
- food
- type: Food
- type: Recyclable
- type: SpaceGarbage
- type: Sprite
netsync: false

View File

@@ -275,5 +275,4 @@
- type: Tag
tags:
- Trash
- type: Recyclable
- type: SpaceGarbage

View File

@@ -225,6 +225,7 @@
- type: Tag
tags:
- Raw
- HighRiskItem
- type: Sprite
state: corgi
- type: SolutionContainerManager

View File

@@ -213,7 +213,6 @@
Quantity: 4
- type: Extractable
grindableSolutionName: food
- type: Recyclable
- type: SpaceGarbage
- type: entity

View File

@@ -387,7 +387,9 @@
- type: Tag
tags:
- Trash
- type: Recyclable
- type: PhysicalComposition
materialComposition:
Steel: 100
- type: SpaceGarbage
- type: StaticPrice
price: 0

View File

@@ -24,7 +24,9 @@
- type: Tag
tags:
- Trash
- type: Recyclable
- type: PhysicalComposition
materialComposition:
Plastic: 50
- type: SpaceGarbage
- type: entity

View File

@@ -12,7 +12,6 @@
tags:
- Cigarette
- Trash
- type: Recyclable
- type: SpaceGarbage
- type: Clothing
sprite: Objects/Consumable/Smokeables/Cigarettes/cigarette.rsi

View File

@@ -12,7 +12,6 @@
tags:
- Cigarette
- Trash
- type: Recyclable
- type: SpaceGarbage
- type: Clothing
sprite: Objects/Consumable/Smokeables/Cannabis/joint.rsi
@@ -45,7 +44,6 @@
tags:
- Cigarette
- Trash
- type: Recyclable
- type: SpaceGarbage
- type: Clothing
sprite: Objects/Consumable/Smokeables/Cannabis/blunt.rsi

View File

@@ -8,7 +8,9 @@
tags:
- CigPack
- Trash
- type: Recyclable
- type: PhysicalComposition
materialComposition:
Steel: 50
- type: SpaceGarbage
- type: Storage
capacity: 6

View File

@@ -59,7 +59,6 @@
tags:
- RollingPaper
- Trash
- type: Recyclable
- type: SpaceGarbage
- type: entity
@@ -90,7 +89,6 @@
tags:
- CigFilter
- Trash
- type: Recyclable
- type: entity
id: CigaretteFilter1

View File

@@ -13,7 +13,6 @@
- type: Tag
tags:
- Trash
- type: Recyclable
- type: SpaceGarbage
- type: StaticPrice
price: 5
@@ -50,14 +49,14 @@
bowl_slot: !type:ContainerSlot
- type: ItemSlots
- type: SmokingPipe
bowl_slot:
bowl_slot:
name: Bowl
whitelist:
tags:
- Smokable
insertSound:
insertSound:
path: /Audio/Weapons/Guns/Empty/empty.ogg
ejectSound:
ejectSound:
path: /Audio/Weapons/Guns/Empty/empty.ogg
- type: SolutionContainerManager
solutions:

View File

@@ -376,5 +376,4 @@
- type: Tag
tags:
- Trash
- type: Recyclable
- type: SpaceGarbage

View File

@@ -14,3 +14,9 @@
- DroneUsable
- type: StaticPrice
price: 100
- type: PhysicalComposition
materialComposition:
Glass: 400
chemicalComposition:
Silicon: 20

View File

@@ -466,6 +466,11 @@
materialRequirements:
CableMV: 5
CableHV: 5
- type: PhysicalComposition
materialComposition:
Glass: 200
chemicalComposition:
Silicon: 20
- type: entity
parent: BaseMachineCircuitboard
@@ -515,6 +520,11 @@
Capacitor: 1
materialRequirements:
CableHV: 5
- type: PhysicalComposition
materialComposition:
Glass: 200
chemicalComposition:
Silicon: 20
- type: entity
id: ThrusterMachineCircuitboard
@@ -555,6 +565,11 @@
Capacitor: 2
materialRequirements:
CableHV: 10
- type: PhysicalComposition
materialComposition:
Glass: 200
chemicalComposition:
Silicon: 20
- type: entity
id: ReagentGrinderMachineCircuitboard
@@ -611,6 +626,21 @@
DefaultPrototype: CryostasisBeaker
ExamineName: Cryostasis Beaker
- type: entity
id: MaterialReclaimerMachineCircuitboard
parent: BaseMachineCircuitboard
name: material reclaimer machine board
components:
- type: Sprite
state: supply
- type: MachineBoard
prototype: MaterialReclaimer
requirements:
Manipulator: 2
materialRequirements:
Steel: 5
Plastic: 5
- type: entity
id: OreProcessorMachineCircuitboard
parent: BaseMachineCircuitboard
@@ -726,7 +756,7 @@
materialRequirements:
Steel: 10
Plasma: 5
- type: entity
id: BoozeDispenserMachineCircuitboard
parent: BaseMachineCircuitboard
@@ -766,7 +796,7 @@
- type: entity
id: TelecomServerCircuitboard
parent: BaseMachineCircuitboard
name: telecommunication server machine board
name: telecommunication server machine board
description: A machine printed circuit board for an telecommunication server.
components:
- type: MachineBoard

View File

@@ -13,6 +13,11 @@
- DroneUsable
- type: StaticPrice
price: 100
- type: PhysicalComposition
materialComposition:
Glass: 400
chemicalComposition:
Silicon: 20
- type: entity
parent: BaseComputerCircuitboard
@@ -68,6 +73,10 @@
prototype: ComputerCargoOrders
- type: StaticPrice
price: 750
- type: Tag
tags:
- DroneUsable
- HighRiskItem
- type: entity
parent: BaseComputerCircuitboard
@@ -178,6 +187,10 @@
prototype: ComputerId
- type: StaticPrice
price: 750
- type: Tag
tags:
- DroneUsable
- HighRiskItem
- type: entity
parent: BaseComputerCircuitboard

View File

@@ -14,3 +14,8 @@
- DroneUsable
- type: StaticPrice
price: 100
- type: PhysicalComposition
materialComposition:
Glass: 200
chemicalComposition:
Silicon: 20

View File

@@ -10,6 +10,11 @@
sprite: Objects/Misc/module.rsi
state: charger_APC
netsync: false
- type: PhysicalComposition
materialComposition:
Glass: 50
chemicalComposition:
Silicon: 20
# Wallmount Substation
- type: entity

View File

@@ -9,3 +9,6 @@
layers:
- state: icon
- type: HandTeleporter
- type: Tag
tags:
- HighRiskItem

View File

@@ -10,7 +10,6 @@
- Write
- Crayon
- Trash
- type: Recyclable
- type: SpaceGarbage
- type: UserInterface
interfaces:

View File

@@ -26,6 +26,11 @@
damage:
types:
Blunt: 0
- type: PhysicalComposition
materialComposition:
Cloth: 100
- type: StaticPrice
price: 5
- type: entity
parent: BasePlushie
@@ -243,7 +248,6 @@
- type: Sprite
state: narplush
- type: entity
parent: BasePlushie
id: PlushieCarp
@@ -356,55 +360,66 @@
- type: entity
parent: BaseItem
id: BaseFigurine
name: figurine
description: A small miniature.
abstract: true
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
netsync: false
- type: PhysicalComposition
materialComposition:
Plastic: 100
- type: StaticPrice
price: 10
- type: entity
parent: BaseFigurine
id: ToyAi
name: AI toy
description: A scaled-down toy AI core.
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: AI
- type: entity
parent: BaseItem
parent: BaseFigurine
id: ToyNuke
name: nuke toy
description: A plastic model of a Nuclear Fission Explosive. No uranium included... probably.
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: nuketoy
- type: entity
parent: BaseItem
parent: BaseFigurine
id: ToyAssistant # TODO rename but needs map changes
name: passenger toy
description: Grey tide world wide!
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: doll
- type: Item
sprite: Objects/Fun/toys.rsi
heldPrefix: doll
- type: entity
parent: BaseItem
parent: BaseFigurine
id: ToyGriffin
name: griffin toy
description: An action figure modeled after 'The Griffin', criminal mastermind.
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: griffinprize
- type: entity
parent: BaseItem
parent: BaseFigurine
id: ToyHonk
name: H.O.N.K. toy
description: Mini-Mecha action figure! 'Mecha No. 6/12' is written on the back.
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: honkprize
- type: entity
@@ -423,125 +438,111 @@
path: /Audio/Items/Toys/ian.ogg
- type: entity
parent: BaseItem
parent: BaseFigurine
id: ToyMarauder
name: marauder toy
description: Mini-Mecha action figure! 'Mecha No. 7/12' is written on the back.
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: marauderprize
- type: entity
parent: BaseItem
parent: BaseFigurine
id: ToyMauler
name: mauler toy
description: Mini-Mecha action figure! 'Mecha No. 9/12' is written on the back.
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: maulerprize
- type: entity
parent: BaseItem
parent: BaseFigurine
id: ToyGygax
name: gygax toy
description: Mini-Mecha action figure! 'Mecha No. 4/12' is written on the back.
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: gygaxtoy
- type: entity
parent: BaseItem
parent: BaseFigurine
id: ToyOdysseus
name: odysseus toy
description: Mini-Mecha action figure! 'Mecha No. 10/12' is written on the back.
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: odysseusprize
- type: entity
parent: BaseItem
parent: BaseFigurine
id: ToyOwlman
name: owl toy
description: An action figure modeled after 'The Owl', defender of justice.
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: owlprize
- type: entity
parent: BaseItem
parent: BaseFigurine
id: ToyDeathRipley
name: deathripley toy
description: Mini-Mecha action figure! 'Mecha No. 3/12' is written on the back.
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: deathripleytoy
- type: entity
parent: BaseItem
parent: BaseFigurine
id: ToyPhazon
name: phazon toy
description: Mini-Mecha action figure! 'Mecha No. 11/12' is written on the back.
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: phazonprize
- type: entity
parent: BaseItem
parent: BaseFigurine
id: ToyFireRipley
name: fire ripley
description: Mini-Mecha action figure! 'Mecha No. 2/12' is written on the back.
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: fireripleytoy
- type: entity
parent: BaseItem
parent: BaseFigurine
id: ToyReticence
name: reticence toy
description: Mini-Mecha action figure! 'Mecha No. 12/12' is written on the back.
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: reticenceprize
- type: entity
parent: BaseItem
parent: BaseFigurine
id: ToyRipley
name: ripley toy
description: Mini-Mecha action figure! 'Mecha No. 1/12' is written on the back.
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: ripleytoy
- type: entity
parent: BaseItem
parent: BaseFigurine
id: ToySeraph
name: seraph toy
description: Mini-Mecha action figure! 'Mecha No. 8/12' is written on the back.
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: seraphprize
- type: entity
parent: BaseItem
parent: BaseFigurine
id: ToyDurand
name: durand toy
description: Mini-Mecha action figure! 'Mecha No. 5/12' is written on the back.
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: durandprize
@@ -549,13 +550,12 @@
### Help i'm sorting these and my previous self let this message here to taunt me aaaaa
- type: entity
parent: BaseItem
parent: BaseFigurine
id: ToySkeleton
name: skeleton toy
description: Spooked ya!
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: skeletonprize
## Toyweapons
@@ -843,8 +843,6 @@
available:
- enum.DamageStateVisualLayers.Base:
base: Sixteen
- type: StaticPrice
price: 3
- type: entity
parent: BaseItem

View File

@@ -51,8 +51,6 @@
- type: Material
materials:
Glass: 100
- type: StackPrice
price: 5
- type: Stack
stackType: Glass
- type: Sprite

View File

@@ -51,7 +51,6 @@
- type: Tag
tags:
- Trash
- type: Recyclable
- type: SpaceGarbage
- type: Damageable
damageContainer: Inorganic

View File

@@ -20,3 +20,8 @@
node: boxcardboard
containers:
- entity_storage
- type: PhysicalComposition
materialComposition:
Cardboard: 100
- type: StaticPrice
price: 10

View File

@@ -23,6 +23,8 @@
- type: Tag
tags:
- Trash
- type: Recyclable
- type: PhysicalComposition
materialComposition:
Glass: 50
- type: SpaceGarbage

View File

@@ -18,6 +18,9 @@
- type: WarpPoint
follow: true
location: nuke disk
- type: Tag
tags:
- HighRiskItem
- type: entity
name: nuclear authentication disk

View File

@@ -90,10 +90,12 @@
components:
- type: Item
size: 2
- type: Recyclable
- type: Tag
tags:
- Trash
- type: PhysicalComposition
materialComposition:
Plastic: 25
- type: entity
name: broken zipties
@@ -114,4 +116,4 @@
- type: Sprite
sprite: Objects/Misc/cablecuffs.rsi
state: cuff-broken
color: forestgreen
color: forestgreen

View File

@@ -107,6 +107,10 @@
heldPrefix: gold
- type: PresetIdCard
job: Captain
- type: Tag
tags:
- WhitelistChameleon
- HighRiskItem
- type: entity
parent: IDCardStandard
@@ -548,7 +552,7 @@
- state: idzookeeper
- type: PresetIdCard
job: Zookeeper
- type: entity
parent: IDCardStandard
id: DetectiveIDCard
@@ -572,7 +576,7 @@
- state: idcentcom
- type: Item
heldPrefix: gold
- type: entity
parent: IDCardStandard

View File

@@ -31,7 +31,6 @@
- Trash
- type: Appearance
- type: PaperVisuals
- type: Recyclable
- type: entity
name: office paper
@@ -182,7 +181,9 @@
sprite: Objects/Misc/bureaucracy.rsi
heldPrefix: pen
size: 2
- type: Recyclable
- type: PhysicalComposition
materialComposition:
Steel: 25
- type: entity
name: Cybersun pen

View File

@@ -10,7 +10,6 @@
- type: Tag
tags:
- Trash
- type: Recyclable
- type: SpaceGarbage
- type: entity

View File

@@ -60,7 +60,9 @@
- type: Tag
tags:
- Trash
- type: Recyclable
- type: PhysicalComposition
materialComposition:
Glass: 25
- type: SpaceGarbage
- type: entity

View File

@@ -43,11 +43,11 @@
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel:
min: 5
max: 5
min: 2
max: 2
SheetGlass:
min: 5
max: 5
min: 2
max: 2
- type: StaticPrice
price: 50

View File

@@ -22,6 +22,9 @@
delay: 0.5
- type: StaticPrice
price: 750
- type: Tag
tags:
- HighRiskItem
- type: entity
name: gorlex hypospray
@@ -78,7 +81,9 @@
- type: Tag
tags:
- Trash
- type: Recyclable
- type: PhysicalComposition
materialComposition:
Plastic: 50
- type: SpaceGarbage
- type: StaticPrice
price: 75 # These are limited supply items.

View File

@@ -32,3 +32,7 @@
- DroneUsable
- type: StaticPrice
price: 80
- type: PhysicalComposition
materialComposition:
Steel: 400
Glass: 100

View File

@@ -9,7 +9,9 @@
tags:
- Bottle
- Trash
- type: Recyclable
- type: PhysicalComposition
materialComposition:
Glass: 25
- type: SpaceGarbage
- type: Sprite
sprite: Objects/Specific/Chemistry/bottle.rsi

View File

@@ -58,3 +58,6 @@
- type: Tag
tags:
- Bucket
- type: PhysicalComposition
materialComposition:
Plastic: 50

View File

@@ -8,7 +8,6 @@
tags:
- Flare
- Trash
- type: Recyclable
- type: SpaceGarbage
- type: ExpendableLight
spentName: expendable-light-spent-flare-name

View File

@@ -35,6 +35,11 @@
damage:
types:
Blunt: 10
- type: PhysicalComposition
materialComposition:
Steel: 400
- type: StaticPrice
price: 20
- type: entity
parent: GasTankBase
@@ -109,6 +114,9 @@
damage:
types:
Blunt: 5
- type: PhysicalComposition
materialComposition:
Steel: 100
- type: entity
parent: EmergencyOxygenTank

View File

@@ -4,7 +4,6 @@
id: GlowstickBase
description: Useful for raves and emergencies.
components:
- type: Recyclable
- type: SpaceGarbage
- type: ExpendableLight
spentName: expendable-light-spent-green-glowstick-name

View File

@@ -147,6 +147,9 @@
- type: Item
sprite: Objects/Tanks/Jetpacks/captain.rsi
size: 30
- type: Tag
tags:
- HighRiskItem
# Filled captain
- type: entity
@@ -248,7 +251,7 @@
sprite: Objects/Tanks/Jetpacks/void.rsi
slots:
- Back
- suitStorage
- suitStorage
# Filled void
- type: entity

View File

@@ -18,7 +18,6 @@
tags:
- Matchstick
- Trash
- type: Recyclable
- type: SpaceGarbage
- type: Sprite
netsync: false
@@ -94,5 +93,4 @@
- type: Tag
tags:
- Trash
- type: Recyclable
- type: SpaceGarbage

View File

@@ -35,6 +35,9 @@
- type: Item
sprite: Objects/Tools/wirecutters.rsi
- type: LatticeCutting
- type: PhysicalComposition
materialComposition:
Steel: 100
- type: StaticPrice
price: 40
@@ -74,6 +77,9 @@
available:
- enum.DamageStateVisualLayers.Base:
screwdriver: Rainbow
- type: PhysicalComposition
materialComposition:
Steel: 100
- type: StaticPrice
price: 40
@@ -106,6 +112,9 @@
- Anchoring
useSound:
path: /Audio/Items/ratchet.ogg
- type: PhysicalComposition
materialComposition:
Steel: 100
- type: StaticPrice
price: 40
@@ -139,6 +148,9 @@
useSound:
path: /Audio/Items/crowbar.ogg
- type: TilePrying
- type: PhysicalComposition
materialComposition:
Steel: 100
- type: StaticPrice
price: 40
@@ -200,6 +212,10 @@
- type: Tag
tags:
- DroneUsable
- type: PhysicalComposition
materialComposition:
Steel: 100
Plastic: 100
- type: StaticPrice
price: 60
@@ -242,6 +258,10 @@
path: /Audio/Items/drill_use.ogg
changeSound:
path: /Audio/Items/change_drill.ogg
- type: PhysicalComposition
materialComposition:
Steel: 300
Plastic: 100
- type: StaticPrice
price: 100
@@ -264,6 +284,10 @@
quickEquip: false
slots:
- Belt
- type: PhysicalComposition
materialComposition:
Steel: 600
Plastic: 100
- type: StaticPrice
price: 100
@@ -288,6 +312,10 @@
- type: Item
sprite: Objects/Tools/rcd.rsi
heldPrefix: ammo
- type: PhysicalComposition
materialComposition:
Steel: 100
Plastic: 100
- type: StaticPrice
price: 60
@@ -310,6 +338,12 @@
Blunt: 10
- type: Item
sprite: Objects/Tools/shovel.rsi
- type: PhysicalComposition
materialComposition:
Steel: 100
Wood: 50
- type: StaticPrice
price: 25
- type: entity
name: omnitool

View File

@@ -60,6 +60,9 @@
color: orange
- type: Appearance
- type: RequiresEyeProtection
- type: PhysicalComposition
materialComposition:
Steel: 200
- type: StaticPrice
price: 40
- type: IgnitionSource

View File

@@ -11,5 +11,4 @@
- Cartridge
- type: Item
size: 1
- type: Recyclable
- type: SpaceGarbage

View File

@@ -7,9 +7,9 @@
- type: Tag
tags:
- BulletFoam
- Trash
- type: Ammo
- type: Sprite
sprite: Objects/Fun/toys.rsi
layers:
- state: foamdart
- type: Recyclable

View File

@@ -390,6 +390,9 @@
steps: 5
zeroVisible: true
- type: Appearance
- type: Tag
tags:
- HighRiskItem
- type: StaticPrice
price: 750

View File

@@ -306,6 +306,7 @@
- DawInstrumentMachineCircuitboard
- CloningConsoleComputerCircuitboard
- StasisBedMachineCircuitboard
- MaterialReclaimerMachineCircuitboard
- OreProcessorMachineCircuitboard
- RipleyCentralElectronics
- RipleyPeripheralsElectronics

View File

@@ -0,0 +1,101 @@
- type: entity
parent: [ BaseMachinePowered, ConstructibleMachine ]
id: MaterialReclaimer
name: material reclaimer
description: Cannot reclaim immaterial things, like motivation.
components:
- type: Sprite
sprite: Structures/Machines/material_reclaimer.rsi
snapCardinals: true
netsync: false
layers:
- state: icon
map: ["enum.LatheVisualLayers.IsRunning"]
- state: gear-active
map: ["enum.DamageStateVisualLayers.Base"]
- state: unlit
shader: unshaded
map: ["enum.PowerDeviceVisualLayers.Powered"]
- state: fill-6
map: ["enum.SolutionContainerLayers.Fill"]
visible: false
- state: panel
map: ["enum.WiresVisualLayers.MaintenancePanel"]
- type: Appearance
- type: SolutionContainerVisuals
maxFillLevels: 6
fillBaseName: fill-
- type: WiresVisuals
- type: GenericVisualizer
visuals:
enum.PowerDeviceVisuals.Powered:
enum.DamageStateVisualLayers.Base:
True: { state: gear-active}
False: { state: gear-idle }
enum.PowerDeviceVisualLayers.Powered:
True: { visible: true }
False: { visible: false }
- type: LitOnPowered
- type: PointLight
radius: 1.5
energy: 1.6
enabled: false
color: "#da824d"
mask: /Textures/Effects/LightMasks/cone.png
autoRot: true
offset: "0, 0.4"
castShadows: false
- type: PowerSwitch
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:ChangeConstructionNodeBehavior
node: machineFrame
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Machine
board: MaterialReclaimerMachineCircuitboard
- type: Wires
BoardName: "reclaimer"
LayoutId: Reclaimer
- type: MaterialReclaimer
whitelist:
components:
- PhysicalComposition
- SpaceGarbage
tags:
- Trash
- Recyclable
blacklist:
components:
- Material
- PDA
- IdCard
tags:
- HighRiskItem
sound:
path: /Audio/Ambience/Objects/crushing.ogg
params:
volume: 5
maxdistance: 5
loop: true
- type: MaterialStorage
insertOnInteract: false
- type: ContainerContainer
containers:
active-material-reclaimer-container: !type:Container
machine_board: !type:Container
machine_parts: !type:Container
- type: SolutionContainerManager
solutions:
output:
maxVol: 100
- type: DrainableSolution
solution: output
- type: ExaminableSolution
solution: output
- type: StaticPrice
price: 500

View File

@@ -11,12 +11,11 @@
sound:
# TODO: https://freesound.org/people/derjuli/sounds/448133/ CC-NC-
path: /Audio/Ambience/Objects/circular_saw.ogg
- type: Physics
- type: Fixtures
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.2,-0.2,0.2,0.2"
bounds: "-0.15,-0.15,0.15,0.15"
id: brrt
hard: false
layer:
@@ -58,11 +57,58 @@
layers:
- state: grinder-o0
map: ["enum.RecyclerVisualLayers.Main"]
- state: grinder-o0bld
map: ["enum.RecyclerVisualLayers.Bloody"]
visible: false
- type: Appearance
- type: GenericVisualizer
visuals:
- type: RecyclerVisualizer
state_on: grinder-o1
state_off: grinder-o0
- type: Recycler
enum.RecyclerVisuals.Bloody:
enum.RecyclerVisualLayers.Main:
True: { visible: false }
False: { visible: true }
enum.RecyclerVisualLayers.Bloody:
True: { visible: true }
False: { visible: false }
enum.ConveyorVisuals.State:
enum.RecyclerVisualLayers.Main:
Forward: { state: grinder-o1 }
Reverse: { state: grinder-o1 }
Off: { state: grinder-o0 }
enum.RecyclerVisualLayers.Bloody:
Forward: { state: grinder-o1bld }
Reverse: { state: grinder-o1bld }
Off: { state: grinder-o0bld }
- type: CollideMaterialReclaimer
- type: MaterialReclaimer
enabled: false
efficiency: 0.25
scaleProcessSpeed: false #instant!
minimumProcessDuration: 0
whitelist:
components:
- PhysicalComposition
- SpaceGarbage
tags:
- Trash
- Recyclable
blacklist:
components:
- Material
- PDA
- IdCard
- HumanoidAppearance
tags:
- HighRiskItem
sound:
path: /Audio/Effects/saw.ogg
params:
volume: -3
cutOffSound: false
- type: SolutionContainerManager
solutions:
output:
maxVol: 0 #exists only for the overflow stuff on material reclaimer
- type: MaterialStorage
- type: Conveyor
- type: Rotatable

View File

@@ -608,7 +608,9 @@
- MachineMask
layer:
- MachineLayer
- type: Recyclable
- type: PhysicalComposition
materialComposition:
Steel: 500
- type: StaticPrice
price: 60

View File

@@ -169,7 +169,7 @@
graph: WindowDirectional
node: windowDirectional
- type: StaticPrice
price: 5
price: 10
- type: entity
id: WindowTintedDirectional
@@ -193,8 +193,6 @@
state: tinted_window
- type: Occluder
boundingBox: "-0.5,-0.5,0.5,-0.3"
- type: StaticPrice
price: 5
- type: entity
id: WindowFrostedDirectional
@@ -213,5 +211,3 @@
- type: Icon
sprite: Structures/Windows/directional.rsi
state: frosted_window
- type: StaticPrice
price: 5

View File

@@ -12,7 +12,7 @@
name: materials-cardboard
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: cardboard }
color: "#70736c"
price: 0.05
price: 0.005
- type: material
id: Cloth

View File

@@ -292,6 +292,14 @@
Glass: 900
Gold: 100
- type: latheRecipe
id: MaterialReclaimerMachineCircuitboard
result: MaterialReclaimerMachineCircuitboard
completetime: 4
materials:
Steel: 100
Glass: 900
- type: latheRecipe
id: OreProcessorMachineCircuitboard
result: OreProcessorMachineCircuitboard

View File

@@ -18,7 +18,7 @@
result: Bucket
completetime: 2
materials:
Steel: 100
Plastic: 100
- type: latheRecipe
id: WetFloorSign

View File

@@ -302,6 +302,9 @@
- type: Tag
id: HidesHair # for headwear.
- type: Tag
id: HighRiskItem
- type: Tag
id: Hoe