Refactor ReagentGrinder (#11751)

* Refactor ReagentGrinder

- It can now process partial stacks. (Before it would do nothing if the entire stack's solution didn't fit in the output container)
- Get rid of `SharedReagentGrinderComponent`, move shared stuff to `SharedReagentGrinder.cs`.
- Subscribe to events instead of massive switch/case.
- Get rid of update queue thing.
- Change `DoWork` so it's less duplicate code for grinding/juicing.
- Get rid of `ExtractableScalingEvent` and just scale directly based on item stack count.
- Add message for when you try to put something into the reagent grinder that doesn't fit.
- Fix obsolescence warnings.

* Use a timer on component instead of SpawnTimer

* s/StorageCap/StorageMaxEntities
This commit is contained in:
0x6273
2022-10-26 08:34:56 +02:00
committed by GitHub
parent 0dd60bb6a7
commit dfdad0ffe5
10 changed files with 378 additions and 428 deletions

View File

@@ -8,14 +8,6 @@
- type: Transform
anchored: true
- type: ReagentGrinder
beakerSlot:
insertSound: /Audio/Machines/machine_switch.ogg
ejectSound: /Audio/Machines/machine_switch.ogg
soundOptions:
volume: -2
whitelist:
components:
- FitsInDispenser
- type: ActivatableUI
key: enum.ReagentGrinderUiKey.Key
- type: UserInterface
@@ -44,11 +36,16 @@
- type: ApcPowerReceiver
powerLoad: 300
- type: ItemSlots
slots:
beakerSlot:
whitelist:
components:
- FitsInDispenser
- type: Machine
board: ReagentGrinderMachineCircuitboard
- type: ContainerContainer
containers:
ReagentGrinder-reagentContainerContainer: !type:ContainerSlot
ReagentGrinder-entityContainerContainer: !type:Container
beakerSlot: !type:ContainerSlot
inputContainer: !type:Container
machine_board: !type:Container
machine_parts: !type:Container