Local Material Silo (#36492)

* Material Silo

* fix board, fix copyright

* a bit of review.... for the vibe....

* a tiny bit of review

* 4 spaced

* sloths no good very tiny nitpick

* fix ui flickers

* oops

* slightly lower range

* Sloth Review

---------

Co-authored-by: ScarKy0 <scarky0@onet.eu>
This commit is contained in:
Nemanja
2025-04-18 19:43:17 -04:00
committed by GitHub
parent 667bda28df
commit f8ff7aee92
28 changed files with 842 additions and 46 deletions

View File

@@ -25,6 +25,7 @@ lathe-menu-material-amount-missing = { $amount ->
*[other] {NATURALFIXED($amount, 2)} {MAKEPLURAL($unit)} of {$material} ([color=red]{NATURALFIXED($missingAmount, 2)} {MAKEPLURAL($unit)} missing[/color])
}
lathe-menu-no-materials-message = No materials loaded.
lathe-menu-silo-linked-message = Silo Linked
lathe-menu-fabricating-message = Fabricating...
lathe-menu-materials-title = Materials
lathe-menu-queue-title = Build Queue

View File

@@ -0,0 +1,10 @@
ore-silo-ui-title = Material Silo
ore-silo-ui-label-clients = Machines
ore-silo-ui-label-mats = Materials
ore-silo-ui-itemlist-entry = {$linked ->
[true] {"[Linked] "}
*[False] {""}
} {$name} ({$beacon}) {$inRange ->
[true] {""}
*[false] (Out of Range)
}

View File

@@ -98,6 +98,16 @@
category: cargoproduct-category-name-materials
group: market
- type: cargoProduct
id: MaterialSilo
icon:
sprite: Structures/Machines/silo.rsi
state: silo
product: CrateMaterialSilo
cost: 5000
category: cargoproduct-category-name-materials
group: market
- type: cargoProduct
id: MaterialFuelTank
icon:

View File

@@ -153,6 +153,22 @@
# for some reason, the selector here adds 1 to whatever value it generates,
# so this is actually 2-4
- type: entity
id: CrateMaterialSilo
parent: CrateGenericSteel
name: material silo crate
description: A package including all the materials to create a material silo.
components:
- type: StorageFill
contents:
- id: MaterialSiloMachineCircuitboard
- id: SheetSteel1
amount: 5
- id: MatterBinStockPart
amount: 4
- id: CableApcStack1
amount: 2
- type: entity
id: CrateMaterialBasicResource
parent: CrateGenericSteel

View File

@@ -1005,6 +1005,19 @@
Manipulator: 1
Steel: 1
- type: entity
id: MaterialSiloMachineCircuitboard
parent: BaseMachineCircuitboard
name: material silo machine board
components:
- type: Sprite
state: supply
- type: MachineBoard
prototype: MachineMaterialSilo
stackRequirements:
MatterBin: 4
Cable: 1
- type: entity
id: OreProcessorMachineCircuitboard
parent: BaseMachineCircuitboard

View File

@@ -270,6 +270,7 @@
- Sheet
materialWhiteList:
- Plasma
- type: OreSiloClient
- type: Fixtures
fixtures:
fix1:

View File

@@ -44,6 +44,7 @@
- Sheet
- RawMaterial
- Ingot
- type: OreSiloClient
- type: AmbientSound
enabled: false
volume: 5

View File

@@ -112,6 +112,7 @@
- Sheet
- RawMaterial
- Ingot
- type: OreSiloClient
- type: Lathe
idleState: icon
runningState: building
@@ -184,6 +185,7 @@
- Sheet
- RawMaterial
- Ingot
- type: OreSiloClient
- type: Lathe
idleState: icon
runningState: building
@@ -273,6 +275,7 @@
- Sheet
- RawMaterial
- Ingot
- type: OreSiloClient
- type: RequireProjectileTarget
- type: entity
@@ -321,6 +324,7 @@
- Sheet
- RawMaterial
- Ingot
- type: OreSiloClient
- type: GuideHelp
guides:
- Robotics
@@ -408,6 +412,7 @@
- Sheet
- RawMaterial
- Ingot
- type: OreSiloClient
- type: LatheAnnouncing
channels: [Security]
@@ -443,6 +448,7 @@
- Sheet
- RawMaterial
- Ingot
- type: OreSiloClient
- type: entity
id: MedicalTechFab
@@ -480,6 +486,7 @@
board: MedicalTechFabCircuitboard
- type: StealTarget
stealGroup: MedicalTechFabCircuitboard
- type: OreSiloClient
- type: LatheAnnouncing
channels: [Medical]

View File

@@ -0,0 +1,61 @@
- type: entity
id: MachineMaterialSilo
parent: [ BaseMachinePowered, ConstructibleMachine ]
name: material silo
description: An advanced machine, capable of using bluespace technology to transmit materials to nearby machines.
components:
- type: Sprite
sprite: Structures/Machines/silo.rsi
layers:
- state: silo
map: [ "base" ]
- type: Appearance
- type: GenericVisualizer
visuals:
enum.PowerDeviceVisuals.Powered:
base:
True: { state: silo_active }
False: { state: silo }
- type: OreSilo
- type: MaterialStorage
whitelist:
tags:
- Sheet
- Ingot
- type: ActivatableUI
key: enum.OreSiloUiKey.Key
- type: ActivatableUIRequiresPower
- type: UserInterface
interfaces:
enum.OreSiloUiKey.Key:
type: OreSiloBoundUserInterface
- type: Machine
board: MaterialSiloMachineCircuitboard
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.4,-0.4,0.4,0.4"
density: 190
mask:
- MachineMask
layer:
- MachineLayer
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 300
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:ChangeConstructionNodeBehavior
node: machineFrame
- !type:DoActsBehavior
acts: ["Destruction"]
- type: WiresVisuals
- type: WiresPanel
- type: StaticPrice
price: 1500

View File

@@ -0,0 +1,40 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/d74b67828394a9842578279a6b8ab2955bb08216. Created by MrDoomBringer (github)",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "silo"
},
{
"name": "silo_active",
"delays": [
[
0.1,
0.1,
0.1,
0.1,
0.1,
0.1
]
]
},
{
"name": "overlay_active",
"delays": [
[
0.1,
0.1,
0.1,
0.1,
0.1,
0.1
]
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB