From: freeman2651 <104049107+freeman2651@users.noreply.github.com> Date: Fri, 12 May 2023 09:31:20 +0000 (-0400) Subject: [entity] Chemvend (#16326) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=33c92226029183d011fe3537fb537a99207b89cd;p=space-station-14.git [entity] Chemvend (#16326) * adds chemvend * chemvend tweaks * add restock to cargo market --- diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_vending.yml b/Resources/Prototypes/Catalog/Cargo/cargo_vending.yml index 190337f658..ce567e941b 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_vending.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_vending.yml @@ -76,6 +76,16 @@ category: Medical group: market +- type: cargoProduct + id: CrateVendingMachineRestockChemVend + icon: + sprite: Objects/Specific/Service/vending_machine_restock.rsi + state: base + product: CrateVendingMachineRestockChemVendFilled + cost: 3500 + category: Medical + group: market + - type: cargoProduct id: CrateVendingMachineRestockNutriMax icon: diff --git a/Resources/Prototypes/Catalog/Fills/Crates/vending.yml b/Resources/Prototypes/Catalog/Fills/Crates/vending.yml index b4ab04ddaa..f909dfcd42 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/vending.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/vending.yml @@ -56,6 +56,14 @@ contents: - id: VendingMachineRestockMedical +- type: entity + id: CrateVendingMachineRestockChemVendFilled + parent: CrateMedicalSecure + components: + - type: StorageFill + contents: + - id: VendingMachineRestockChemVend + - type: entity id: CrateVendingMachineRestockNutriMaxFilled parent: CrateHydroSecure diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chemvend.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chemvend.yml new file mode 100644 index 0000000000..bf7af4ad11 --- /dev/null +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chemvend.yml @@ -0,0 +1,23 @@ +- type: vendingMachineInventory + id: ChemVendInventory + startingInventory: + JugAluminium: 2 + JugCarbon: 2 + JugChlorine: 2 + JugCopper: 2 + JugEthanol: 2 + JugFluorine: 2 + JugHydrogen: 2 + JugIodine: 2 + JugIron: 2 + JugLithium: 2 + JugMercury: 2 + JugNitrogen: 2 + JugOxygen: 2 + JugPhosphorus: 2 + JugPotassium: 2 + JugRadium: 2 + JugSilicon: 2 + JugSodium: 2 + JugSugar: 2 + JugSulfur: 2 diff --git a/Resources/Prototypes/Entities/Objects/Specific/Service/vending_machine_restock.yml b/Resources/Prototypes/Entities/Objects/Specific/Service/vending_machine_restock.yml index 8442d9b707..950267aa8b 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Service/vending_machine_restock.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Service/vending_machine_restock.yml @@ -438,3 +438,19 @@ - state: green_bit shader: unshaded - state: refill_honk + +- type: entity + parent: BaseVendingMachineRestock + id: VendingMachineRestockChemVend + name: ChemVend restock box + description: A box filled with chemicals and covered in dangerous-looking NFPA diamonds. Load it into a ChemVend to begin. + components: + - type: VendingMachineRestock + canRestock: + - ChemVendInventory + - type: Sprite + layers: + - state: base + - state: green_bit + shader: unshaded + - state: refill_medical diff --git a/Resources/Prototypes/Entities/Objects/Specific/chemical-containers.yml b/Resources/Prototypes/Entities/Objects/Specific/chemical-containers.yml index 5d7731f80d..5ff20524a2 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/chemical-containers.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/chemical-containers.yml @@ -50,6 +50,7 @@ - type: entity parent: Jug + name: jug (carbon) id: JugCarbon noSpawn: true components: @@ -64,6 +65,7 @@ - type: entity parent: Jug + name: jug (iodine) id: JugIodine noSpawn: true components: @@ -78,6 +80,7 @@ - type: entity parent: Jug + name: jug (fluorine) id: JugFluorine noSpawn: true components: @@ -92,6 +95,7 @@ - type: entity parent: Jug + name: jug (chlorine) id: JugChlorine noSpawn: true components: @@ -106,6 +110,7 @@ - type: entity parent: Jug + name: jug (aluminium) id: JugAluminium noSpawn: true components: @@ -120,6 +125,7 @@ - type: entity parent: Jug + name: jug (phosphorus) id: JugPhosphorus noSpawn: true components: @@ -134,6 +140,7 @@ - type: entity parent: Jug + name: jug (sulfur) id: JugSulfur noSpawn: true components: @@ -148,6 +155,7 @@ - type: entity parent: Jug + name: jug (silicon) id: JugSilicon noSpawn: true components: @@ -162,6 +170,7 @@ - type: entity parent: Jug + name: jug (hydrogen) id: JugHydrogen noSpawn: true components: @@ -176,6 +185,7 @@ - type: entity parent: Jug + name: jug (lithium) id: JugLithium noSpawn: true components: @@ -190,6 +200,7 @@ - type: entity parent: Jug + name: jug (sodium) id: JugSodium noSpawn: true components: @@ -204,6 +215,7 @@ - type: entity parent: Jug + name: jug (potassium) id: JugPotassium noSpawn: true components: @@ -218,6 +230,7 @@ - type: entity parent: Jug + name: jug (radium) id: JugRadium noSpawn: true components: @@ -232,6 +245,7 @@ - type: entity parent: Jug + name: jug (iron) id: JugIron noSpawn: true components: @@ -246,6 +260,7 @@ - type: entity parent: Jug + name: jug (copper) id: JugCopper noSpawn: true components: @@ -260,6 +275,7 @@ - type: entity parent: Jug + name: jug (gold) id: JugGold noSpawn: true components: @@ -274,6 +290,7 @@ - type: entity parent: Jug + name: jug (mercury) id: JugMercury noSpawn: true components: @@ -288,6 +305,7 @@ - type: entity parent: Jug + name: jug (silver) id: JugSilver noSpawn: true components: @@ -299,3 +317,63 @@ reagents: - ReagentId: Silver Quantity: 200 + +- type: entity + parent: Jug + name: jug (ethanol) + id: JugEthanol + noSpawn: true + components: + - type: Label + currentLabel: Ethanol + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Ethanol + Quantity: 200 + +- type: entity + parent: Jug + name: jug (sugar) + id: JugSugar + noSpawn: true + components: + - type: Label + currentLabel: Sugar + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Sugar + Quantity: 200 + +- type: entity + parent: Jug + name: jug (nitrogen) + id: JugNitrogen + noSpawn: true + components: + - type: Label + currentLabel: Nitrogen + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Nitrogen + Quantity: 200 + +- type: entity + parent: Jug + name: jug (oxygen) + id: JugOxygen + noSpawn: true + components: + - type: Label + currentLabel: Oxygen + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: Oxygen + Quantity: 200 diff --git a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml index 29f7848b8a..699625b61f 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml @@ -1829,3 +1829,27 @@ - state: dispenser - state: dispensereng +- type: entity + parent: VendingMachine + id: VendingMachineChemicals + name: ChemVend + description: Probably not the coffee machine. + components: + - type: VendingMachine + pack: ChemVendInventory + offState: off + brokenState: broken + normalState: normal + denyState: deny + ejectDelay: 3 + - type: Sprite + sprite: Structures/Machines/VendingMachines/chemvend.rsi + layers: + - state: "off" + map: ["enum.VendingMachineVisualLayers.Base"] + - state: "off" + map: ["enum.VendingMachineVisualLayers.BaseUnshaded"] + - state: panel + map: ["enum.WiresVisualLayers.MaintenancePanel"] + - type: AccessReader + access: [["Chemistry"]] diff --git a/Resources/Textures/Structures/Machines/VendingMachines/chemvend.rsi/broken.png b/Resources/Textures/Structures/Machines/VendingMachines/chemvend.rsi/broken.png new file mode 100644 index 0000000000..a6e60a2352 Binary files /dev/null and b/Resources/Textures/Structures/Machines/VendingMachines/chemvend.rsi/broken.png differ diff --git a/Resources/Textures/Structures/Machines/VendingMachines/chemvend.rsi/deny.png b/Resources/Textures/Structures/Machines/VendingMachines/chemvend.rsi/deny.png new file mode 100644 index 0000000000..734cd90d70 Binary files /dev/null and b/Resources/Textures/Structures/Machines/VendingMachines/chemvend.rsi/deny.png differ diff --git a/Resources/Textures/Structures/Machines/VendingMachines/chemvend.rsi/meta.json b/Resources/Textures/Structures/Machines/VendingMachines/chemvend.rsi/meta.json new file mode 100644 index 0000000000..3b0e0da5c9 --- /dev/null +++ b/Resources/Textures/Structures/Machines/VendingMachines/chemvend.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/245b29599acbb6bba24f005095e7798e954fc81c", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "broken" + }, + { + "name": "deny", + "delays": [ + [ + 0.1, + 0.1 + ] + ] + }, + { + "name": "normal", + "delays": [ + [ + 0.1, + 0.1 + ] + ] + }, + { + "name": "off" + }, + { + "name": "panel" + } + ] +} diff --git a/Resources/Textures/Structures/Machines/VendingMachines/chemvend.rsi/normal.png b/Resources/Textures/Structures/Machines/VendingMachines/chemvend.rsi/normal.png new file mode 100644 index 0000000000..157f14181c Binary files /dev/null and b/Resources/Textures/Structures/Machines/VendingMachines/chemvend.rsi/normal.png differ diff --git a/Resources/Textures/Structures/Machines/VendingMachines/chemvend.rsi/off.png b/Resources/Textures/Structures/Machines/VendingMachines/chemvend.rsi/off.png new file mode 100644 index 0000000000..bc342677ab Binary files /dev/null and b/Resources/Textures/Structures/Machines/VendingMachines/chemvend.rsi/off.png differ diff --git a/Resources/Textures/Structures/Machines/VendingMachines/chemvend.rsi/panel.png b/Resources/Textures/Structures/Machines/VendingMachines/chemvend.rsi/panel.png new file mode 100644 index 0000000000..0032751ff4 Binary files /dev/null and b/Resources/Textures/Structures/Machines/VendingMachines/chemvend.rsi/panel.png differ