diff --git a/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml new file mode 100644 index 00000000000..4169adfca41 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml @@ -0,0 +1,132 @@ +- type: entity + parent: CrateGeneric + id: WoodenBarrel + name: wooden barrel + description: A musty old wooden barrel. + components: + - type: Sprite + sprite: DeltaV/Structures/Storage/barrel.rsi + layers: + - state: base + map: ["enum.StorageVisualLayers.Base"] + - state: closed + map: ["enum.StorageVisualLayers.Door"] + - type: Icon + sprite: DeltaV/Structures/Storage/barrel.rsi + state: base + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: Wood + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 30 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:SpawnEntitiesBehavior + spawn: + MaterialWoodPlank1: + min: 1 + max: 4 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + graph: WoodenBarrel + node: woodenbarrel + containers: + - entity_storage + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.2,-0.3,0.2,0.3" + density: 125 + mask: + - SmallMobMask #this is so they can go under plastic flaps + layer: + - MachineLayer + +- type: entity + parent: BaseStructureDynamic + id: WoodenKeg + name: wooden keg + description: A musty old wooden keg, with a tap attached to the front. + components: + - type: SolutionContainerManager + solutions: + keg: + maxVol: 500 + canMix: true + - type: RefillableSolution + solution: keg + - type: DrainableSolution + solution: keg + - type: ExaminableSolution + solution: keg + - type: DrawableSolution + solution: keg + - type: InjectableSolution + solution: keg + - type: SolutionTransfer + canChangeTransferAmount: true + - type: UserInterface + interfaces: + - key: enum.TransferAmountUiKey.Key + type: TransferAmountBoundUserInterface + - type: Drink + solution: keg + - type: Spillable + solution: keg + - type: Sprite + sprite: DeltaV/Structures/Storage/keg.rsi + layers: + - state: base + map: ["enum.StorageVisualLayers.Base"] + - type: Icon + sprite: DeltaV/Structures/Storage/keg.rsi + state: base + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: Wood + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 30 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:SpillBehavior + solution: keg + - !type:SpawnEntitiesBehavior + spawn: + MaterialWoodPlank1: + min: 1 + max: 4 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + graph: WoodenKeg + node: woodenkeg + containers: + - entity_storage + - type: InteractionOutline + - type: Physics + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.2,-0.3,0.2,0.3" + density: 125 + mask: + - SmallMobMask #this is so they can go under plastic flaps + layer: + - MachineLayer + - type: Transform + noRot: true diff --git a/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml b/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml new file mode 100644 index 00000000000..ca71d9691d4 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml @@ -0,0 +1,53 @@ +- type: constructionGraph + id: WoodenBarrel + start: start + graph: + - node: start + edges: + - to: woodenbarrel + steps: + - material: WoodPlank + amount: 5 + doAfter: 5 + + + - node: woodenbarrel + entity: WoodenBarrel + edges: + - to: start + steps: + - tool: Prying + doAfter: 5 + completed: + - !type:SpawnPrototype + prototype: MaterialWoodPlank1 + amount: 5 + - !type:EmptyAllContainers + - !type:DeleteEntity + +- type: constructionGraph + id: WoodenKeg + start: start + graph: + - node: start + edges: + - to: woodenkeg + steps: + - material: WoodPlank + amount: 5 + doAfter: 5 + + + - node: woodenkeg + entity: WoodenKeg + edges: + - to: start + steps: + - tool: Prying + doAfter: 5 + completed: + - !type:SpawnPrototype + prototype: MaterialWoodPlank1 + amount: 5 + - !type:EmptyAllContainers + - !type:DeleteEntity diff --git a/Resources/Prototypes/DeltaV/Recipes/Crafting/barrel.yml b/Resources/Prototypes/DeltaV/Recipes/Crafting/barrel.yml new file mode 100644 index 00000000000..50d6b831f61 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Recipes/Crafting/barrel.yml @@ -0,0 +1,25 @@ +- type: construction + name: wooden barrel + id: WoodenBarrel + graph: WoodenBarrel + startNode: start + targetNode: woodenbarrel + category: construction-category-storage + description: A musty old wooden barrel. + icon: + sprite: DeltaV/Structures/Storage/barrel.rsi + state: base + objectType: Structure + +- type: construction + name: wooden keg + id: WoodenKeg + graph: WoodenKeg + startNode: start + targetNode: woodenkeg + category: construction-category-storage + description: A musty old wooden keg, with a tap attached to the front. + icon: + sprite: DeltaV/Structures/Storage/keg.rsi + state: base + objectType: Structure diff --git a/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/base.png b/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/base.png new file mode 100644 index 00000000000..04f13fd22bf Binary files /dev/null and b/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/base.png differ diff --git a/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/closed.png b/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/closed.png new file mode 100644 index 00000000000..23745464a62 Binary files /dev/null and b/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/closed.png differ diff --git a/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/meta.json b/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/meta.json new file mode 100644 index 00000000000..ddb49cff079 --- /dev/null +++ b/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/meta.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation PR https://github.com/tgstation/tgstation/pull/38977", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + }, + { + "name": "open" + }, + { + "name": "closed" + } + ] +} diff --git a/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/open.png b/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/open.png new file mode 100644 index 00000000000..04f13fd22bf Binary files /dev/null and b/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/open.png differ diff --git a/Resources/Textures/DeltaV/Structures/Storage/keg.rsi/base.png b/Resources/Textures/DeltaV/Structures/Storage/keg.rsi/base.png new file mode 100644 index 00000000000..a6a7e0b1e10 Binary files /dev/null and b/Resources/Textures/DeltaV/Structures/Storage/keg.rsi/base.png differ diff --git a/Resources/Textures/DeltaV/Structures/Storage/keg.rsi/meta.json b/Resources/Textures/DeltaV/Structures/Storage/keg.rsi/meta.json new file mode 100644 index 00000000000..36c1dff5a54 --- /dev/null +++ b/Resources/Textures/DeltaV/Structures/Storage/keg.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation PR https://github.com/tgstation/tgstation/pull/38977, modified by rosieposieeee to add spout", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + } + ] +}