From 88920696f3d0430da729bbcae33bd180f9f7a6d9 Mon Sep 17 00:00:00 2001 From: DamianX Date: Wed, 14 Aug 2019 10:49:28 +0200 Subject: [PATCH] Vending Machines (#296) * Vending Machines * addressed review --- Content.Client/EntryPoint.cs | 3 + .../VendingMachineBoundUserInterface.cs | 68 ++++ .../VendingMachineVisualizer2D.cs | 99 +++++ .../VendingMachines/VendingMachineMenu.cs | 79 ++++ .../Components/Damage/BreakableComponent.cs | 79 ++++ .../Components/Damage/DamageThreshold.cs | 3 +- .../VendingMachineComponent.cs | 194 ++++++++++ .../GameObjects/EntitySystems/ActSystem.cs | 28 +- .../SharedVendingMachineComponent.cs | 78 ++++ Content.Shared/GameObjects/ContentNetIDs.cs | 1 + .../VendingMachineInventoryPrototype.cs | 41 +++ .../Entities/buildings/vending_machines.yml | 338 ++++++++++++++++++ Resources/Prototypes/VendingMachines/ammo.yml | 5 + .../Prototypes/VendingMachines/boozeomat.yml | 5 + Resources/Prototypes/VendingMachines/cart.yml | 5 + .../Prototypes/VendingMachines/chapel.yml | 5 + Resources/Prototypes/VendingMachines/cigs.yml | 6 + .../Prototypes/VendingMachines/coffee.yml | 6 + Resources/Prototypes/VendingMachines/cola.yml | 6 + .../Prototypes/VendingMachines/dinnerware.yml | 5 + .../Prototypes/VendingMachines/discount.yml | 5 + .../Prototypes/VendingMachines/empty.yml | 5 + .../Prototypes/VendingMachines/engivend.yml | 6 + Resources/Prototypes/VendingMachines/hats.yml | 5 + .../Prototypes/VendingMachines/magivend.yml | 6 + .../Prototypes/VendingMachines/medical.yml | 6 + .../Prototypes/VendingMachines/mining.yml | 5 + Resources/Prototypes/VendingMachines/nazi.yml | 5 + .../Prototypes/VendingMachines/nutri.yml | 5 + .../Prototypes/VendingMachines/robotics.yml | 5 + Resources/Prototypes/VendingMachines/sale.yml | 5 + Resources/Prototypes/VendingMachines/sec.yml | 6 + .../Prototypes/VendingMachines/seeds.yml | 6 + .../Prototypes/VendingMachines/shoes.yml | 5 + .../VendingMachines/smartfridge.yml | 5 + .../Prototypes/VendingMachines/snack.yml | 5 + .../Prototypes/VendingMachines/soviet.yml | 5 + .../Prototypes/VendingMachines/sovietsoda.yml | 5 + .../Prototypes/VendingMachines/suits.yml | 5 + .../Prototypes/VendingMachines/theater.yml | 5 + .../Prototypes/VendingMachines/vendomat.yml | 5 + Resources/Prototypes/VendingMachines/vox.yml | 5 + .../Prototypes/VendingMachines/wallmed.yml | 5 + .../Prototypes/VendingMachines/youtool.yml | 13 + .../VendingMachines/ammo.rsi/broken.png | Bin 0 -> 1264 bytes .../VendingMachines/ammo.rsi/meta.json | 1 + .../VendingMachines/ammo.rsi/normal.png | Bin 0 -> 1279 bytes .../VendingMachines/ammo.rsi/off.png | Bin 0 -> 1264 bytes .../VendingMachines/boozeomat.rsi/broken.png | Bin 0 -> 1414 bytes .../VendingMachines/boozeomat.rsi/deny.png | Bin 0 -> 1672 bytes .../VendingMachines/boozeomat.rsi/meta.json | 1 + .../VendingMachines/boozeomat.rsi/normal.png | Bin 0 -> 2002 bytes .../VendingMachines/boozeomat.rsi/off.png | Bin 0 -> 988 bytes .../VendingMachines/cart.rsi/broken.png | Bin 0 -> 1910 bytes .../VendingMachines/cart.rsi/deny.png | Bin 0 -> 1803 bytes .../VendingMachines/cart.rsi/eject.png | Bin 0 -> 1799 bytes .../VendingMachines/cart.rsi/meta.json | 1 + .../VendingMachines/cart.rsi/normal.png | Bin 0 -> 1062 bytes .../VendingMachines/cart.rsi/off.png | Bin 0 -> 967 bytes .../VendingMachines/chapel.rsi/broken.png | Bin 0 -> 969 bytes .../VendingMachines/chapel.rsi/deny.png | Bin 0 -> 3051 bytes .../VendingMachines/chapel.rsi/meta.json | 1 + .../VendingMachines/chapel.rsi/normal.png | Bin 0 -> 24541 bytes .../VendingMachines/chapel.rsi/off.png | Bin 0 -> 651 bytes .../VendingMachines/cigs.rsi/broken.png | Bin 0 -> 1507 bytes .../VendingMachines/cigs.rsi/eject.png | Bin 0 -> 1916 bytes .../VendingMachines/cigs.rsi/meta.json | 1 + .../VendingMachines/cigs.rsi/normal.png | Bin 0 -> 1098 bytes .../VendingMachines/cigs.rsi/off.png | Bin 0 -> 1069 bytes .../VendingMachines/coffee.rsi/broken.png | Bin 0 -> 839 bytes .../VendingMachines/coffee.rsi/eject.png | Bin 0 -> 1253 bytes .../VendingMachines/coffee.rsi/meta.json | 1 + .../VendingMachines/coffee.rsi/normal.png | Bin 0 -> 616 bytes .../VendingMachines/coffee.rsi/off.png | Bin 0 -> 545 bytes .../VendingMachines/cola.rsi/broken.png | Bin 0 -> 998 bytes .../VendingMachines/cola.rsi/eject.png | Bin 0 -> 1265 bytes .../VendingMachines/cola.rsi/meta.json | 1 + .../VendingMachines/cola.rsi/normal.png | Bin 0 -> 950 bytes .../VendingMachines/cola.rsi/off.png | Bin 0 -> 934 bytes .../VendingMachines/dinnerware.rsi/broken.png | Bin 0 -> 1187 bytes .../VendingMachines/dinnerware.rsi/eject.png | Bin 0 -> 2031 bytes .../VendingMachines/dinnerware.rsi/meta.json | 1 + .../VendingMachines/dinnerware.rsi/normal.png | Bin 0 -> 800 bytes .../VendingMachines/dinnerware.rsi/off.png | Bin 0 -> 770 bytes .../VendingMachines/discount.rsi/broken.png | Bin 0 -> 1326 bytes .../VendingMachines/discount.rsi/meta.json | 1 + .../VendingMachines/discount.rsi/normal.png | Bin 0 -> 1683 bytes .../VendingMachines/discount.rsi/off.png | Bin 0 -> 1003 bytes .../VendingMachines/empty.rsi/broken.png | Bin 0 -> 1208 bytes .../VendingMachines/empty.rsi/meta.json | 1 + .../VendingMachines/empty.rsi/normal.png | Bin 0 -> 806 bytes .../VendingMachines/empty.rsi/off.png | Bin 0 -> 811 bytes .../VendingMachines/engivend.rsi/broken.png | Bin 0 -> 1107 bytes .../VendingMachines/engivend.rsi/deny.png | Bin 0 -> 1445 bytes .../VendingMachines/engivend.rsi/eject.png | Bin 0 -> 2105 bytes .../VendingMachines/engivend.rsi/meta.json | 1 + .../VendingMachines/engivend.rsi/normal.png | Bin 0 -> 1100 bytes .../VendingMachines/engivend.rsi/off.png | Bin 0 -> 815 bytes .../VendingMachines/hats.rsi/broken.png | Bin 0 -> 573 bytes .../VendingMachines/hats.rsi/meta.json | 1 + .../VendingMachines/hats.rsi/normal.png | Bin 0 -> 630 bytes .../VendingMachines/hats.rsi/off.png | Bin 0 -> 380 bytes .../VendingMachines/magivend.rsi/broken.png | Bin 0 -> 1022 bytes .../VendingMachines/magivend.rsi/meta.json | 1 + .../VendingMachines/magivend.rsi/normal.png | Bin 0 -> 957 bytes .../VendingMachines/magivend.rsi/off.png | Bin 0 -> 913 bytes .../VendingMachines/medical.rsi/broken.png | Bin 0 -> 1760 bytes .../VendingMachines/medical.rsi/deny.png | Bin 0 -> 2454 bytes .../VendingMachines/medical.rsi/eject.png | Bin 0 -> 3780 bytes .../VendingMachines/medical.rsi/meta.json | 1 + .../VendingMachines/medical.rsi/normal.png | Bin 0 -> 978 bytes .../VendingMachines/medical.rsi/off.png | Bin 0 -> 870 bytes .../VendingMachines/mining.rsi/broken.png | Bin 0 -> 1048 bytes .../VendingMachines/mining.rsi/deny.png | Bin 0 -> 1079 bytes .../VendingMachines/mining.rsi/meta.json | 1 + .../VendingMachines/mining.rsi/normal.png | Bin 0 -> 886 bytes .../VendingMachines/mining.rsi/off.png | Bin 0 -> 898 bytes .../VendingMachines/nazi.rsi/broken.png | Bin 0 -> 621 bytes .../VendingMachines/nazi.rsi/dangermode.png | Bin 0 -> 1799 bytes .../VendingMachines/nazi.rsi/meta.json | 1 + .../VendingMachines/nazi.rsi/normal.png | Bin 0 -> 1433 bytes .../VendingMachines/nazi.rsi/off.png | Bin 0 -> 441 bytes .../VendingMachines/nutri.rsi/broken.png | Bin 0 -> 1292 bytes .../VendingMachines/nutri.rsi/deny.png | Bin 0 -> 1271 bytes .../VendingMachines/nutri.rsi/eject.png | Bin 0 -> 2244 bytes .../VendingMachines/nutri.rsi/meta.json | 1 + .../VendingMachines/nutri.rsi/normal.png | Bin 0 -> 1286 bytes .../VendingMachines/nutri.rsi/off.png | Bin 0 -> 871 bytes .../VendingMachines/robotics.rsi/broken.png | Bin 0 -> 1791 bytes .../VendingMachines/robotics.rsi/deny.png | Bin 0 -> 1893 bytes .../VendingMachines/robotics.rsi/meta.json | 1 + .../VendingMachines/robotics.rsi/normal.png | Bin 0 -> 1089 bytes .../VendingMachines/robotics.rsi/off.png | Bin 0 -> 1058 bytes .../VendingMachines/sale.rsi/broken.png | Bin 0 -> 1709 bytes .../VendingMachines/sale.rsi/meta.json | 1 + .../VendingMachines/sale.rsi/normal.png | Bin 0 -> 2157 bytes .../VendingMachines/sale.rsi/off.png | Bin 0 -> 1146 bytes .../VendingMachines/sec.rsi/broken.png | Bin 0 -> 1484 bytes .../VendingMachines/sec.rsi/deny.png | Bin 0 -> 2779 bytes .../VendingMachines/sec.rsi/meta.json | 1 + .../VendingMachines/sec.rsi/normal.png | Bin 0 -> 1194 bytes .../Buildings/VendingMachines/sec.rsi/off.png | Bin 0 -> 929 bytes .../VendingMachines/sec.rsi/vend.png | Bin 0 -> 3277 bytes .../VendingMachines/seeds.rsi/broken.png | Bin 0 -> 2028 bytes .../VendingMachines/seeds.rsi/eject.png | Bin 0 -> 2555 bytes .../VendingMachines/seeds.rsi/meta.json | 1 + .../VendingMachines/seeds.rsi/normal.png | Bin 0 -> 1677 bytes .../VendingMachines/seeds.rsi/off.png | Bin 0 -> 1417 bytes .../VendingMachines/shoes.rsi/broken.png | Bin 0 -> 626 bytes .../VendingMachines/shoes.rsi/meta.json | 1 + .../VendingMachines/shoes.rsi/normal.png | Bin 0 -> 753 bytes .../VendingMachines/shoes.rsi/off.png | Bin 0 -> 460 bytes .../smartfridge.rsi/broken.png | Bin 0 -> 1219 bytes .../VendingMachines/smartfridge.rsi/meta.json | 1 + .../smartfridge.rsi/normal.png | Bin 0 -> 987 bytes .../VendingMachines/smartfridge.rsi/off.png | Bin 0 -> 821 bytes .../VendingMachines/snack.rsi/broken.png | Bin 0 -> 1573 bytes .../VendingMachines/snack.rsi/eject.png | Bin 0 -> 2608 bytes .../VendingMachines/snack.rsi/meta.json | 1 + .../VendingMachines/snack.rsi/normal.png | Bin 0 -> 1562 bytes .../VendingMachines/snack.rsi/off.png | Bin 0 -> 1189 bytes .../VendingMachines/soviet.rsi/broken.png | Bin 0 -> 885 bytes .../VendingMachines/soviet.rsi/dangermode.png | Bin 0 -> 2942 bytes .../VendingMachines/soviet.rsi/meta.json | 1 + .../VendingMachines/soviet.rsi/normal.png | Bin 0 -> 795 bytes .../VendingMachines/soviet.rsi/off.png | Bin 0 -> 613 bytes .../VendingMachines/sovietsoda.rsi/broken.png | Bin 0 -> 1015 bytes .../VendingMachines/sovietsoda.rsi/eject.png | Bin 0 -> 1793 bytes .../VendingMachines/sovietsoda.rsi/meta.json | 1 + .../VendingMachines/sovietsoda.rsi/normal.png | Bin 0 -> 874 bytes .../VendingMachines/sovietsoda.rsi/off.png | Bin 0 -> 837 bytes .../VendingMachines/suits.rsi/broken.png | Bin 0 -> 639 bytes .../VendingMachines/suits.rsi/meta.json | 1 + .../VendingMachines/suits.rsi/normal.png | Bin 0 -> 809 bytes .../VendingMachines/suits.rsi/off.png | Bin 0 -> 492 bytes .../VendingMachines/theater.rsi/broken.png | Bin 0 -> 857 bytes .../VendingMachines/theater.rsi/deny.png | Bin 0 -> 1051 bytes .../VendingMachines/theater.rsi/meta.json | 1 + .../VendingMachines/theater.rsi/normal.png | Bin 0 -> 1019 bytes .../VendingMachines/theater.rsi/off.png | Bin 0 -> 631 bytes .../VendingMachines/vendomat.rsi/broken.png | Bin 0 -> 1481 bytes .../VendingMachines/vendomat.rsi/meta.json | 1 + .../VendingMachines/vendomat.rsi/normal.png | Bin 0 -> 1503 bytes .../VendingMachines/vendomat.rsi/off.png | Bin 0 -> 1087 bytes .../VendingMachines/vox.rsi/broken.png | Bin 0 -> 788 bytes .../VendingMachines/vox.rsi/meta.json | 1 + .../VendingMachines/vox.rsi/normal.png | Bin 0 -> 819 bytes .../Buildings/VendingMachines/vox.rsi/off.png | Bin 0 -> 637 bytes .../VendingMachines/wallmed.rsi/broken.png | Bin 0 -> 662 bytes .../VendingMachines/wallmed.rsi/deny.png | Bin 0 -> 876 bytes .../VendingMachines/wallmed.rsi/meta.json | 1 + .../VendingMachines/wallmed.rsi/normal.png | Bin 0 -> 286 bytes .../VendingMachines/wallmed.rsi/off.png | Bin 0 -> 228 bytes .../VendingMachines/youtool.rsi/broken.png | Bin 0 -> 1312 bytes .../VendingMachines/youtool.rsi/deny.png | Bin 0 -> 1460 bytes .../VendingMachines/youtool.rsi/eject.png | Bin 0 -> 1418 bytes .../VendingMachines/youtool.rsi/meta.json | 1 + .../VendingMachines/youtool.rsi/normal.png | Bin 0 -> 1101 bytes .../VendingMachines/youtool.rsi/off.png | Bin 0 -> 1093 bytes 199 files changed, 1217 insertions(+), 2 deletions(-) create mode 100644 Content.Client/GameObjects/Components/VendingMachines/VendingMachineBoundUserInterface.cs create mode 100644 Content.Client/GameObjects/Components/VendingMachines/VendingMachineVisualizer2D.cs create mode 100644 Content.Client/VendingMachines/VendingMachineMenu.cs create mode 100644 Content.Server/GameObjects/Components/Damage/BreakableComponent.cs create mode 100644 Content.Server/GameObjects/Components/VendingMachines/VendingMachineComponent.cs create mode 100644 Content.Shared/GameObjects/Components/VendingMachines/SharedVendingMachineComponent.cs create mode 100644 Content.Shared/VendingMachines/VendingMachineInventoryPrototype.cs create mode 100644 Resources/Prototypes/Entities/buildings/vending_machines.yml create mode 100644 Resources/Prototypes/VendingMachines/ammo.yml create mode 100644 Resources/Prototypes/VendingMachines/boozeomat.yml create mode 100644 Resources/Prototypes/VendingMachines/cart.yml create mode 100644 Resources/Prototypes/VendingMachines/chapel.yml create mode 100644 Resources/Prototypes/VendingMachines/cigs.yml create mode 100644 Resources/Prototypes/VendingMachines/coffee.yml create mode 100644 Resources/Prototypes/VendingMachines/cola.yml create mode 100644 Resources/Prototypes/VendingMachines/dinnerware.yml create mode 100644 Resources/Prototypes/VendingMachines/discount.yml create mode 100644 Resources/Prototypes/VendingMachines/empty.yml create mode 100644 Resources/Prototypes/VendingMachines/engivend.yml create mode 100644 Resources/Prototypes/VendingMachines/hats.yml create mode 100644 Resources/Prototypes/VendingMachines/magivend.yml create mode 100644 Resources/Prototypes/VendingMachines/medical.yml create mode 100644 Resources/Prototypes/VendingMachines/mining.yml create mode 100644 Resources/Prototypes/VendingMachines/nazi.yml create mode 100644 Resources/Prototypes/VendingMachines/nutri.yml create mode 100644 Resources/Prototypes/VendingMachines/robotics.yml create mode 100644 Resources/Prototypes/VendingMachines/sale.yml create mode 100644 Resources/Prototypes/VendingMachines/sec.yml create mode 100644 Resources/Prototypes/VendingMachines/seeds.yml create mode 100644 Resources/Prototypes/VendingMachines/shoes.yml create mode 100644 Resources/Prototypes/VendingMachines/smartfridge.yml create mode 100644 Resources/Prototypes/VendingMachines/snack.yml create mode 100644 Resources/Prototypes/VendingMachines/soviet.yml create mode 100644 Resources/Prototypes/VendingMachines/sovietsoda.yml create mode 100644 Resources/Prototypes/VendingMachines/suits.yml create mode 100644 Resources/Prototypes/VendingMachines/theater.yml create mode 100644 Resources/Prototypes/VendingMachines/vendomat.yml create mode 100644 Resources/Prototypes/VendingMachines/vox.yml create mode 100644 Resources/Prototypes/VendingMachines/wallmed.yml create mode 100644 Resources/Prototypes/VendingMachines/youtool.yml create mode 100644 Resources/Textures/Buildings/VendingMachines/ammo.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/ammo.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/ammo.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/ammo.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/boozeomat.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/boozeomat.rsi/deny.png create mode 100644 Resources/Textures/Buildings/VendingMachines/boozeomat.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/boozeomat.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/boozeomat.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/cart.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/cart.rsi/deny.png create mode 100644 Resources/Textures/Buildings/VendingMachines/cart.rsi/eject.png create mode 100644 Resources/Textures/Buildings/VendingMachines/cart.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/cart.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/cart.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/chapel.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/chapel.rsi/deny.png create mode 100644 Resources/Textures/Buildings/VendingMachines/chapel.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/chapel.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/chapel.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/cigs.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/cigs.rsi/eject.png create mode 100644 Resources/Textures/Buildings/VendingMachines/cigs.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/cigs.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/cigs.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/coffee.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/coffee.rsi/eject.png create mode 100644 Resources/Textures/Buildings/VendingMachines/coffee.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/coffee.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/coffee.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/cola.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/cola.rsi/eject.png create mode 100644 Resources/Textures/Buildings/VendingMachines/cola.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/cola.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/cola.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/dinnerware.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/dinnerware.rsi/eject.png create mode 100644 Resources/Textures/Buildings/VendingMachines/dinnerware.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/dinnerware.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/dinnerware.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/discount.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/discount.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/discount.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/discount.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/empty.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/empty.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/empty.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/empty.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/engivend.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/engivend.rsi/deny.png create mode 100644 Resources/Textures/Buildings/VendingMachines/engivend.rsi/eject.png create mode 100644 Resources/Textures/Buildings/VendingMachines/engivend.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/engivend.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/engivend.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/hats.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/hats.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/hats.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/hats.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/magivend.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/magivend.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/magivend.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/magivend.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/medical.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/medical.rsi/deny.png create mode 100644 Resources/Textures/Buildings/VendingMachines/medical.rsi/eject.png create mode 100644 Resources/Textures/Buildings/VendingMachines/medical.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/medical.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/medical.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/mining.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/mining.rsi/deny.png create mode 100644 Resources/Textures/Buildings/VendingMachines/mining.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/mining.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/mining.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/nazi.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/nazi.rsi/dangermode.png create mode 100644 Resources/Textures/Buildings/VendingMachines/nazi.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/nazi.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/nazi.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/nutri.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/nutri.rsi/deny.png create mode 100644 Resources/Textures/Buildings/VendingMachines/nutri.rsi/eject.png create mode 100644 Resources/Textures/Buildings/VendingMachines/nutri.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/nutri.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/nutri.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/robotics.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/robotics.rsi/deny.png create mode 100644 Resources/Textures/Buildings/VendingMachines/robotics.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/robotics.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/robotics.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/sale.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/sale.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/sale.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/sale.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/sec.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/sec.rsi/deny.png create mode 100644 Resources/Textures/Buildings/VendingMachines/sec.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/sec.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/sec.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/sec.rsi/vend.png create mode 100644 Resources/Textures/Buildings/VendingMachines/seeds.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/seeds.rsi/eject.png create mode 100644 Resources/Textures/Buildings/VendingMachines/seeds.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/seeds.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/seeds.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/shoes.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/shoes.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/shoes.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/shoes.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/smartfridge.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/smartfridge.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/smartfridge.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/smartfridge.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/snack.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/snack.rsi/eject.png create mode 100644 Resources/Textures/Buildings/VendingMachines/snack.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/snack.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/snack.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/soviet.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/soviet.rsi/dangermode.png create mode 100644 Resources/Textures/Buildings/VendingMachines/soviet.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/soviet.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/soviet.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/sovietsoda.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/sovietsoda.rsi/eject.png create mode 100644 Resources/Textures/Buildings/VendingMachines/sovietsoda.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/sovietsoda.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/sovietsoda.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/suits.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/suits.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/suits.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/suits.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/theater.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/theater.rsi/deny.png create mode 100644 Resources/Textures/Buildings/VendingMachines/theater.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/theater.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/theater.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/vendomat.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/vendomat.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/vendomat.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/vendomat.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/vox.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/vox.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/vox.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/vox.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/wallmed.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/wallmed.rsi/deny.png create mode 100644 Resources/Textures/Buildings/VendingMachines/wallmed.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/wallmed.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/wallmed.rsi/off.png create mode 100644 Resources/Textures/Buildings/VendingMachines/youtool.rsi/broken.png create mode 100644 Resources/Textures/Buildings/VendingMachines/youtool.rsi/deny.png create mode 100644 Resources/Textures/Buildings/VendingMachines/youtool.rsi/eject.png create mode 100644 Resources/Textures/Buildings/VendingMachines/youtool.rsi/meta.json create mode 100644 Resources/Textures/Buildings/VendingMachines/youtool.rsi/normal.png create mode 100644 Resources/Textures/Buildings/VendingMachines/youtool.rsi/off.png diff --git a/Content.Client/EntryPoint.cs b/Content.Client/EntryPoint.cs index b5533ceea3..8bd941898c 100644 --- a/Content.Client/EntryPoint.cs +++ b/Content.Client/EntryPoint.cs @@ -11,6 +11,7 @@ using Content.Client.UserInterface; using Content.Shared.GameObjects.Components.Chemistry; using Content.Shared.GameObjects.Components.Markers; using Content.Shared.GameObjects.Components.Research; +using Content.Shared.GameObjects.Components.VendingMachines; using Content.Shared.Interfaces; using Robust.Client.Interfaces; using Robust.Client.Interfaces.Graphics.Overlays; @@ -105,6 +106,8 @@ namespace Content.Client factory.Register(); factory.Register(); + factory.Register(); + prototypes.RegisterIgnore("material"); IoCManager.Register(); diff --git a/Content.Client/GameObjects/Components/VendingMachines/VendingMachineBoundUserInterface.cs b/Content.Client/GameObjects/Components/VendingMachines/VendingMachineBoundUserInterface.cs new file mode 100644 index 0000000000..089c8497f8 --- /dev/null +++ b/Content.Client/GameObjects/Components/VendingMachines/VendingMachineBoundUserInterface.cs @@ -0,0 +1,68 @@ +using Content.Client.VendingMachines; +using Content.Shared.GameObjects.Components.VendingMachines; +using Robust.Client.GameObjects.Components.UserInterface; +using Robust.Shared.GameObjects.Components.UserInterface; +using Robust.Shared.IoC; +using Robust.Shared.Prototypes; +using Robust.Shared.ViewVariables; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Content.Client.GameObjects.Components.VendingMachines +{ + class VendingMachineBoundUserInterface : BoundUserInterface + { + [ViewVariables] + private VendingMachineMenu _menu; + + public SharedVendingMachineComponent VendingMachine { get; private set; } + + public VendingMachineBoundUserInterface(ClientUserInterfaceComponent owner, object uiKey) : base(owner, uiKey) + { + SendMessage(new SharedVendingMachineComponent.InventorySyncRequestMessage()); + } + + protected override void Open() + { + base.Open(); + + if(!Owner.Owner.TryGetComponent(out SharedVendingMachineComponent vendingMachine)) + { + return; + } + + VendingMachine = vendingMachine; + + _menu = new VendingMachineMenu() { Owner = this, Title = Owner.Owner.Name }; + _menu.Populate(VendingMachine.Inventory); + + _menu.OnClose += Close; + _menu.OpenCentered(); + } + + public void Eject(string ID) + { + SendMessage(new SharedVendingMachineComponent.VendingMachineEjectMessage(ID)); + } + + protected override void ReceiveMessage(BoundUserInterfaceMessage message) + { + switch(message) + { + case SharedVendingMachineComponent.VendingMachineInventoryMessage msg: + _menu.Populate(msg.Inventory); + break; + } + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + if(!disposing) { return; } + _menu?.Dispose(); + } + } +} diff --git a/Content.Client/GameObjects/Components/VendingMachines/VendingMachineVisualizer2D.cs b/Content.Client/GameObjects/Components/VendingMachines/VendingMachineVisualizer2D.cs new file mode 100644 index 0000000000..f69f711ac7 --- /dev/null +++ b/Content.Client/GameObjects/Components/VendingMachines/VendingMachineVisualizer2D.cs @@ -0,0 +1,99 @@ +using System; +using Content.Client.GameObjects.Components.Doors; +using Robust.Client.Animations; +using Robust.Client.GameObjects; +using Robust.Client.GameObjects.Components.Animations; +using Robust.Client.Interfaces.GameObjects.Components; +using Robust.Shared.Interfaces.GameObjects; +using YamlDotNet.RepresentationModel; +using static Content.Shared.GameObjects.Components.VendingMachines.SharedVendingMachineComponent; + +namespace Content.Client.GameObjects.Components.VendingMachines +{ + public class VendingMachineVisualizer2D : AppearanceVisualizer + { + // TODO: The length of these animations is supposed to be dictated + // by the vending machine's pack prototype's `AnimationDuration` + // but we have no good way of passing that data from the server + // to the client at the moment. Rework Visualizers? + private const string DeniedAnimationKey = "deny"; + private const string EjectAnimationKey = "eject"; + + private Animation _deniedAnimation; + private Animation _ejectAnimation; + + public override void LoadData(YamlMappingNode node) + { + base.LoadData(node); + _deniedAnimation = new Animation {Length = TimeSpan.FromSeconds(1.2f)}; + { + var flick = new AnimationTrackSpriteFlick(); + _deniedAnimation.AnimationTracks.Add(flick); + flick.LayerKey = VendingMachineVisualLayers.Base; + flick.KeyFrames.Add(new AnimationTrackSpriteFlick.KeyFrame("deny", 0f)); + } + + _ejectAnimation = new Animation {Length = TimeSpan.FromSeconds(1.2f)}; + { + var flick = new AnimationTrackSpriteFlick(); + _ejectAnimation.AnimationTracks.Add(flick); + flick.LayerKey = VendingMachineVisualLayers.Base; + flick.KeyFrames.Add(new AnimationTrackSpriteFlick.KeyFrame("eject", 0f)); + } + } + + public override void InitializeEntity(IEntity entity) + { + base.InitializeEntity(entity); + + if (!entity.HasComponent()) + { + entity.AddComponent(); + } + } + + public override void OnChangeData(AppearanceComponent component) + { + var sprite = component.Owner.GetComponent(); + var animPlayer = component.Owner.GetComponent(); + if (!component.TryGetData(VendingMachineVisuals.VisualState, out VendingMachineVisualState state)) + { + state = VendingMachineVisualState.Normal; + } + + switch (state) + { + case VendingMachineVisualState.Normal: + sprite.LayerSetState(VendingMachineVisualLayers.Base, "normal"); + break; + case VendingMachineVisualState.Off: + sprite.LayerSetState(VendingMachineVisualLayers.Base, "off"); + break; + case VendingMachineVisualState.Broken: + sprite.LayerSetState(VendingMachineVisualLayers.Base, "broken"); + break; + case VendingMachineVisualState.Deny: + if (!animPlayer.HasRunningAnimation(DeniedAnimationKey)) + { + animPlayer.Play(_deniedAnimation, DeniedAnimationKey); + } + + break; + case VendingMachineVisualState.Eject: + if (!animPlayer.HasRunningAnimation(EjectAnimationKey)) + { + animPlayer.Play(_ejectAnimation, EjectAnimationKey); + } + + break; + default: + throw new ArgumentOutOfRangeException(); + } + } + + public enum VendingMachineVisualLayers + { + Base, + } + } +} diff --git a/Content.Client/VendingMachines/VendingMachineMenu.cs b/Content.Client/VendingMachines/VendingMachineMenu.cs new file mode 100644 index 0000000000..271e8b8ade --- /dev/null +++ b/Content.Client/VendingMachines/VendingMachineMenu.cs @@ -0,0 +1,79 @@ +using Content.Client.GameObjects.Components.VendingMachines; +using Robust.Client.UserInterface.Controls; +using Robust.Client.UserInterface.CustomControls; +using Robust.Shared.IoC; +using Robust.Shared.Maths; +using System; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Robust.Client.GameObjects; +using Robust.Client.Graphics; +using Robust.Client.Interfaces.ResourceManagement; +using Robust.Shared.GameObjects; +using Robust.Shared.Prototypes; +using static Content.Shared.GameObjects.Components.VendingMachines.SharedVendingMachineComponent; + +namespace Content.Client.VendingMachines +{ + class VendingMachineMenu : SS14Window + { + protected override Vector2? CustomSize => (300, 450); + + private ItemList _items; + private List _cachedInventory; + + #pragma warning disable CS0649 + [Dependency] + private IResourceCache _resourceCache; + [Dependency] + private readonly IPrototypeManager _prototypeManager; + #pragma warning restore + public VendingMachineBoundUserInterface Owner { get; set; } + public VendingMachineMenu() + { + } + + public VendingMachineMenu(string name) : base(name) + { + + } + + protected override void Initialize() + { + base.Initialize(); + IoCManager.InjectDependencies(this); + + _items = new ItemList() + { + SizeFlagsStretchRatio = 8, + SizeFlagsVertical = SizeFlags.FillExpand, + }; + _items.OnItemSelected += ItemSelected; + + Contents.AddChild(_items); + } + + public void Populate(List inventory) + { + _items.Clear(); + _cachedInventory = inventory; + foreach (VendingMachineInventoryEntry entry in inventory) + { + Texture icon = null; + if(_prototypeManager.TryIndex(entry.ID, out EntityPrototype prototype)) + { + icon = IconComponent.GetPrototypeIcon(prototype, _resourceCache).TextureFor(Direction.South); + } + _items.AddItem($"{entry.ID} ({entry.Amount} left)", icon); + } + } + + public void ItemSelected(ItemList.ItemListSelectedEventArgs args) + { + Owner.Eject(_cachedInventory[args.ItemIndex].ID); + } + } +} diff --git a/Content.Server/GameObjects/Components/Damage/BreakableComponent.cs b/Content.Server/GameObjects/Components/Damage/BreakableComponent.cs new file mode 100644 index 0000000000..1f1a87d427 --- /dev/null +++ b/Content.Server/GameObjects/Components/Damage/BreakableComponent.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using Content.Server.GameObjects.EntitySystems; +using Content.Server.Interfaces; +using Content.Shared.GameObjects; +using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.IoC; +using Robust.Shared.Maths; +using Robust.Shared.Serialization; + +namespace Content.Server.GameObjects.Components.Damage +{ + [RegisterComponent] + public class BreakableComponent : Component, IOnDamageBehavior, IExAct + { + + #pragma warning disable 649 + [Dependency] private readonly IEntitySystemManager _entitySystemManager; + #pragma warning restore 649 + /// + public override string Name => "Breakable"; + public DamageThreshold Threshold { get; private set; } + + public DamageType damageType = DamageType.Total; + public int damageValue = 0; + public bool broken = false; + + private ActSystem _actSystem; + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + + serializer.DataField(ref damageValue, "thresholdvalue", 100); + serializer.DataField(ref damageType, "thresholdtype", DamageType.Total); + } + + public override void Initialize() + { + base.Initialize(); + _actSystem = _entitySystemManager.GetEntitySystem(); + } + + public List GetAllDamageThresholds() + { + Threshold = new DamageThreshold(damageType, damageValue, ThresholdType.Breakage); + return new List() {Threshold}; + } + + public void OnDamageThresholdPassed(object obj, DamageThresholdPassedEventArgs e) + { + if (e.Passed && e.DamageThreshold == Threshold && broken == false) + { + broken = true; + _actSystem.HandleBreakage(Owner); + } + } + + public void OnExplosion(ExplosionEventArgs eventArgs) + { + var prob = new Random(); + switch (eventArgs.Severity) + { + case ExplosionSeverity.Destruction: + _actSystem.HandleBreakage(Owner); + break; + case ExplosionSeverity.Heavy: + _actSystem.HandleBreakage(Owner); + break; + case ExplosionSeverity.Light: + if(prob.Prob(40)) + _actSystem.HandleBreakage(Owner); + break; + } + } + + } +} diff --git a/Content.Server/GameObjects/Components/Damage/DamageThreshold.cs b/Content.Server/GameObjects/Components/Damage/DamageThreshold.cs index 8e77872692..a7c04238c1 100644 --- a/Content.Server/GameObjects/Components/Damage/DamageThreshold.cs +++ b/Content.Server/GameObjects/Components/Damage/DamageThreshold.cs @@ -43,7 +43,8 @@ namespace Content.Server.GameObjects Destruction, Death, Critical, - HUDUpdate + HUDUpdate, + Breakage, } public class DamageThresholdPassedEventArgs : EventArgs diff --git a/Content.Server/GameObjects/Components/VendingMachines/VendingMachineComponent.cs b/Content.Server/GameObjects/Components/VendingMachines/VendingMachineComponent.cs new file mode 100644 index 0000000000..67b8763792 --- /dev/null +++ b/Content.Server/GameObjects/Components/VendingMachines/VendingMachineComponent.cs @@ -0,0 +1,194 @@ +using System; +using Content.Server.GameObjects.EntitySystems; +using Content.Shared.GameObjects.Components.VendingMachines; +using Content.Shared.VendingMachines; +using Robust.Server.GameObjects.Components.UserInterface; +using Robust.Server.Interfaces.GameObjects; +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Components.UserInterface; +using Robust.Shared.IoC; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; +using Robust.Shared.Timers; +using Robust.Shared.Utility; +using System.Collections.Generic; +using Content.Server.GameObjects.Components.Power; +using Robust.Server.GameObjects; +using Robust.Shared.Log; + +namespace Content.Server.GameObjects.Components.VendingMachines +{ + [RegisterComponent] + [ComponentReference(typeof(IActivate))] + public class VendingMachineComponent : SharedVendingMachineComponent, IActivate, IExamine, IBreakAct + { + private AppearanceComponent _appearance; + private BoundUserInterface _userInterface; + private PowerDeviceComponent _powerDevice; + + private bool _ejecting = false; + private TimeSpan _animationDuration = TimeSpan.Zero; + private string _packPrototypeId; + private string _description; + private string _spriteName; + + private bool Powered => _powerDevice.Powered; + private bool _broken = false; + + public void Activate(ActivateEventArgs eventArgs) + { + if(!eventArgs.User.TryGetComponent(out IActorComponent actor)) + { + return; + } + + _userInterface.Open(actor.playerSession); + } + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + + serializer.DataField(ref _packPrototypeId, "pack", string.Empty); + } + + private void InitializeFromPrototype() + { + if (string.IsNullOrEmpty(_packPrototypeId)) { return; } + var prototypeManger = IoCManager.Resolve(); + if (!prototypeManger.TryIndex(_packPrototypeId, out VendingMachineInventoryPrototype packPrototype)) + { + return; + } + + Owner.Name = packPrototype.Name; + _description = packPrototype.Description; + _animationDuration = TimeSpan.FromSeconds(packPrototype.AnimationDuration); + _spriteName = packPrototype.SpriteName; + if (!string.IsNullOrEmpty(_spriteName)) + { + var spriteComponent = Owner.GetComponent(); + const string vendingMachineRSIPath = "Buildings/VendingMachines/{0}.rsi"; + spriteComponent.BaseRSIPath = string.Format(vendingMachineRSIPath, _spriteName); + } + + var inventory = new List(); + foreach(var (id, amount) in packPrototype.StartingInventory) + { + inventory.Add(new VendingMachineInventoryEntry(id, amount)); + } + Inventory = inventory; + } + + public override void Initialize() + { + base.Initialize(); + _appearance = Owner.GetComponent(); + _userInterface = Owner.GetComponent() + .GetBoundUserInterface(VendingMachineUiKey.Key); + _userInterface.OnReceiveMessage += UserInterfaceOnOnReceiveMessage; + _powerDevice = Owner.GetComponent(); + _powerDevice.OnPowerStateChanged += UpdatePower; + InitializeFromPrototype(); + } + + public override void OnRemove() + { + _appearance = null; + _powerDevice.OnPowerStateChanged -= UpdatePower; + _powerDevice = null; + base.OnRemove(); + } + + private void UpdatePower(object sender, PowerStateEventArgs args) + { + var state = args.Powered ? VendingMachineVisualState.Normal : VendingMachineVisualState.Off; + TrySetVisualState(state); + } + + private void UserInterfaceOnOnReceiveMessage(BoundUserInterfaceMessage message) + { + switch (message) + { + case VendingMachineEjectMessage msg: + TryEject(msg.ID); + break; + case InventorySyncRequestMessage msg: + _userInterface.SendMessage(new VendingMachineInventoryMessage(Inventory)); + break; + } + } + + public void Examine(FormattedMessage message) + { + if(_description == null) { return; } + message.AddText(_description); + } + + private void TryEject(string id) + { + if (_ejecting || _broken) + { + return; + } + + VendingMachineInventoryEntry entry = Inventory.Find(x => x.ID == id); + if (entry == null) + { + FlickDenyAnimation(); + return; + } + + if (entry.Amount <= 0) + { + FlickDenyAnimation(); + return; + } + + _ejecting = true; + entry.Amount--; + _userInterface.SendMessage(new VendingMachineInventoryMessage(Inventory)); + TrySetVisualState(VendingMachineVisualState.Eject); + + Timer.Spawn(_animationDuration, () => + { + TrySetVisualState(VendingMachineVisualState.Normal); + _ejecting = false; + Owner.EntityManager.SpawnEntityAt(id, Owner.Transform.GridPosition); + }); + } + + private void FlickDenyAnimation() + { + TrySetVisualState(VendingMachineVisualState.Deny); + //TODO: This duration should be a distinct value specific to the deny animation + Timer.Spawn(_animationDuration, () => + { + TrySetVisualState(VendingMachineVisualState.Normal); + }); + } + + private void TrySetVisualState(VendingMachineVisualState state) + { + var finalState = state; + if (_broken) + { + finalState = VendingMachineVisualState.Broken; + } else if (_ejecting) + { + finalState = VendingMachineVisualState.Eject; + } else if (!Powered) + { + finalState = VendingMachineVisualState.Off; + } + _appearance.SetData(VendingMachineVisuals.VisualState, finalState); + } + + public void OnBreak(BreakageEventArgs eventArgs) + { + _broken = true; + TrySetVisualState(VendingMachineVisualState.Broken); + } + } +} + diff --git a/Content.Server/GameObjects/EntitySystems/ActSystem.cs b/Content.Server/GameObjects/EntitySystems/ActSystem.cs index ae83a8788f..9826370d0f 100644 --- a/Content.Server/GameObjects/EntitySystems/ActSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/ActSystem.cs @@ -24,6 +24,19 @@ namespace Content.Server.GameObjects.EntitySystems public bool IsSpawnWreck { get; set; } } + public class BreakageEventArgs : EventArgs + { + public IEntity Owner { get; set; } + } + + public interface IBreakAct + { + /// + /// Called when object is broken + /// + void OnBreak(BreakageEventArgs eventArgs); + } + public interface IExAct { /// @@ -73,6 +86,19 @@ namespace Content.Server.GameObjects.EntitySystems exAct.OnExplosion(eventArgs); } } + + public void HandleBreakage(IEntity owner) + { + var eventArgs = new BreakageEventArgs + { + Owner = owner, + }; + var breakActs = owner.GetAllComponents().ToList(); + foreach (var breakAct in breakActs) + { + breakAct.OnBreak(eventArgs); + } + } } public enum ExplosionSeverity { @@ -80,4 +106,4 @@ namespace Content.Server.GameObjects.EntitySystems Heavy, Light, } -} \ No newline at end of file +} diff --git a/Content.Shared/GameObjects/Components/VendingMachines/SharedVendingMachineComponent.cs b/Content.Shared/GameObjects/Components/VendingMachines/SharedVendingMachineComponent.cs new file mode 100644 index 0000000000..9ddbfa4b49 --- /dev/null +++ b/Content.Shared/GameObjects/Components/VendingMachines/SharedVendingMachineComponent.cs @@ -0,0 +1,78 @@ +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Components.UserInterface; +using Robust.Shared.IoC; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; +using System; +using System.Collections.Generic; +using System.Collections.Specialized; + +namespace Content.Shared.GameObjects.Components.VendingMachines +{ + public class SharedVendingMachineComponent : Component + { + public override string Name => "VendingMachine"; + public override uint? NetID => ContentNetIDs.VENDING_MACHINE; + + public List Inventory = new List(); + + [Serializable, NetSerializable] + public enum VendingMachineVisuals + { + VisualState, + } + + [Serializable, NetSerializable] + public enum VendingMachineVisualState + { + Normal, + Off, + Broken, + Eject, + Deny, + } + + [Serializable, NetSerializable] + public class VendingMachineEjectMessage : BoundUserInterfaceMessage + { + public readonly string ID; + public VendingMachineEjectMessage(string id) + { + ID = id; + } + } + + [Serializable, NetSerializable] + public enum VendingMachineUiKey + { + Key, + } + + [Serializable, NetSerializable] + public class InventorySyncRequestMessage : BoundUserInterfaceMessage + { + } + + [Serializable, NetSerializable] + public class VendingMachineInventoryMessage : BoundUserInterfaceMessage + { + public readonly List Inventory; + public VendingMachineInventoryMessage(List inventory) + { + Inventory = inventory; + } + } + + [Serializable, NetSerializable] + public class VendingMachineInventoryEntry + { + public string ID; + public uint Amount; + public VendingMachineInventoryEntry(string id, uint amount) + { + ID = id; + Amount = amount; + } + } + } +} diff --git a/Content.Shared/GameObjects/ContentNetIDs.cs b/Content.Shared/GameObjects/ContentNetIDs.cs index 166a0cdb0e..ae8692f522 100644 --- a/Content.Shared/GameObjects/ContentNetIDs.cs +++ b/Content.Shared/GameObjects/ContentNetIDs.cs @@ -23,5 +23,6 @@ public const uint LATHE_DATABASE = 1017; public const uint MATERIAL_STORAGE = 1018; public const uint HAND_TELEPORTER = 1019; + public const uint VENDING_MACHINE = 1020; } } diff --git a/Content.Shared/VendingMachines/VendingMachineInventoryPrototype.cs b/Content.Shared/VendingMachines/VendingMachineInventoryPrototype.cs new file mode 100644 index 0000000000..511615337c --- /dev/null +++ b/Content.Shared/VendingMachines/VendingMachineInventoryPrototype.cs @@ -0,0 +1,41 @@ +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using YamlDotNet.RepresentationModel; + +namespace Content.Shared.VendingMachines +{ + [Serializable, NetSerializable, Prototype("vendingMachineInventory")] + public class VendingMachineInventoryPrototype : IPrototype, IIndexedPrototype + { + private string _id; + private string _name; + private string _description; + private double _animationDuration; + private string _spriteName; + private Dictionary _startingInventory; + + public string ID => _id; + public string Name => _name; + public string Description => _description; + public double AnimationDuration => _animationDuration; + public string SpriteName => _spriteName; + public Dictionary StartingInventory => _startingInventory; + + public void LoadFrom(YamlMappingNode mapping) + { + var serializer = YamlObjectSerializer.NewReader(mapping); + + serializer.DataField(ref _id, "id", string.Empty); + serializer.DataField(ref _name, "name", string.Empty); + serializer.DataField(ref _description, "description", string.Empty); + serializer.DataField(ref _animationDuration, "animationDuration", 0); + serializer.DataField(ref _spriteName, "spriteName", string.Empty); + serializer.DataField(ref _startingInventory, "startingInventory", new Dictionary()); + } + } +} diff --git a/Resources/Prototypes/Entities/buildings/vending_machines.yml b/Resources/Prototypes/Entities/buildings/vending_machines.yml new file mode 100644 index 0000000000..99942a7597 --- /dev/null +++ b/Resources/Prototypes/Entities/buildings/vending_machines.yml @@ -0,0 +1,338 @@ +- type: entity + id: VendingMachine + name: vending machine + components: + - type: Clickable + - type: Sprite + sprite: Buildings/VendingMachines/empty.rsi + layers: + - state: normal + map: ["enum.VendingMachineVisualLayers.Base"] + - type: Icon + sprite: Buildings/VendingMachines/empty.rsi + state: normal + - type: BoundingBox + - type: Collidable + - type: SnapGrid + offset: Center + - type: Damageable + - type: Breakable + - type: Appearance + visuals: + - type: VendingMachineVisualizer2D + - type: UserInterface + interfaces: + - key: enum.VendingMachineUiKey.Key + type: VendingMachineBoundUserInterface + - type: PowerDevice + priority: Low + +- type: entity + parent: VendingMachine + id: vending_machine_ammo + name: AmmoVend + components: + - type: VendingMachine + pack: AmmoVend + - type: Icon + sprite: Buildings/VendingMachines/ammo.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_booze + name: Booze-O-Mat + components: + - type: VendingMachine + pack: Booze-O-Mat + - type: Icon + sprite: Buildings/VendingMachines/boozeomat.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_cart + name: PTech + components: + - type: VendingMachine + pack: PTech + - type: Icon + sprite: Buildings/VendingMachines/cart.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_chapel + name: PietyVend + components: + - type: VendingMachine + pack: PietyVend + - type: Icon + sprite: Buildings/VendingMachines/chapel.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_cigs + name: Cigarette machine + components: + - type: VendingMachine + pack: Cigarette machine + - type: Icon + sprite: Buildings/VendingMachines/cigs.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_coffee + name: Hot Drinks machine + components: + - type: VendingMachine + pack: Hot Drinks machine + - type: Icon + sprite: Buildings/VendingMachines/dinnerware.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_cola + name: Robust Softdrinks + components: + - type: VendingMachine + pack: Robust Softdrinks + - type: Icon + sprite: Buildings/VendingMachines/discount.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_dinnerware + name: Dinnerware + components: + - type: VendingMachine + pack: Dinnerware + - type: Icon + sprite: Buildings/VendingMachines/dinnerware.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_discount + name: Discount Dan's + components: + - type: VendingMachine + pack: Discount Dan's + - type: Icon + sprite: Buildings/VendingMachines/discount.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_engivend + name: Engi-Vend + components: + - type: VendingMachine + pack: Engi-Vend + - type: Icon + sprite: Buildings/VendingMachines/engivend.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_hats + name: Hatlord 9000 + components: + - type: VendingMachine + pack: Hatlord 9000 + - type: Icon + sprite: Buildings/VendingMachines/hats.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_magivend + name: MagiVend + components: + - type: VendingMachine + pack: MagiVend + - type: Icon + sprite: Buildings/VendingMachines/magivend.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_medical + name: NanoMed Plus + components: + - type: VendingMachine + pack: NanoMed Plus + - type: Icon + sprite: Buildings/VendingMachines/medical.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_mining + name: Dwarven Mining Equipment + components: + - type: VendingMachine + pack: Dwarven Mining Equipment + - type: Icon + sprite: Buildings/VendingMachines/mining.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_nazi + name: Nazivend + components: + - type: VendingMachine + pack: Nazivend + - type: Icon + sprite: Buildings/VendingMachines/nazi.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_nutri + name: NutriMax + components: + - type: VendingMachine + pack: NutriMax + - type: Icon + sprite: Buildings/VendingMachines/nutri.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_robotics + name: Robotech Deluxe + components: + - type: VendingMachine + pack: Robotech Deluxe + - type: Icon + sprite: Buildings/VendingMachines/robotics.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_sales + name: Sales + components: + - type: VendingMachine + pack: Sales + - type: Icon + sprite: Buildings/VendingMachines/sale.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_sec + name: SecTech + components: + - type: VendingMachine + pack: SecTech + - type: Icon + sprite: Buildings/VendingMachines/sec.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_seeds + name: MegaSeed Servitor + components: + - type: VendingMachine + pack: MegaSeed Servitor + - type: Icon + sprite: Buildings/VendingMachines/seeds.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_shoes + name: Shoelord 9000 + components: + - type: VendingMachine + pack: Shoelord 9000 + - type: Icon + sprite: Buildings/VendingMachines/shoes.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_smartfridge + name: SmartFridge + components: + - type: VendingMachine + pack: SmartFridge + - type: Icon + sprite: Buildings/VendingMachines/smartfridge.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_snack + name: Getmore Chocolate Corp + components: + - type: VendingMachine + pack: Getmore Chocolate Corp + - type: Icon + sprite: Buildings/VendingMachines/snack.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_soviet + name: KomradeVendtink + components: + - type: VendingMachine + pack: KomradeVendtink + - type: Icon + sprite: Buildings/VendingMachines/soviet.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_sovietsoda + name: BODA + components: + - type: VendingMachine + pack: BODA + - type: Icon + sprite: Buildings/VendingMachines/sovietsoda.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_suits + name: Suitlord 9000 + components: + - type: VendingMachine + pack: Suitlord 9000 + - type: Icon + sprite: Buildings/VendingMachines/suits.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_theater + name: AutoDrobe + components: + - type: VendingMachine + pack: AutoDrobe + - type: Icon + sprite: Buildings/VendingMachines/theater.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_vendomat + name: Vendomat + components: + - type: VendingMachine + pack: Vendomat + - type: Icon + sprite: Buildings/VendingMachines/vendomat.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_vox + name: Trader Supply + components: + - type: VendingMachine + pack: Trader Supply + - type: Icon + sprite: Buildings/VendingMachines/vox.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_wallmed + name: NanoMed + components: + - type: VendingMachine + pack: NanoMed + - type: Icon + sprite: Buildings/VendingMachines/wallmed.rsi + +- type: entity + parent: VendingMachine + id: vending_machine_youtool + name: YouTool + components: + - type: VendingMachine + pack: YouTool + - type: Icon + sprite: Buildings/VendingMachines/youtool.rsi diff --git a/Resources/Prototypes/VendingMachines/ammo.yml b/Resources/Prototypes/VendingMachines/ammo.yml new file mode 100644 index 0000000000..abbb7023d3 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/ammo.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: AmmoVend + name: AmmoVend + description: A generic ammunition vending machine. + spriteName: ammo diff --git a/Resources/Prototypes/VendingMachines/boozeomat.yml b/Resources/Prototypes/VendingMachines/boozeomat.yml new file mode 100644 index 0000000000..267b0b6cc7 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/boozeomat.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: Booze-O-Mat + name: Booze-O-Mat + description: A vending machine containing multiple drinks for bartending. + spriteName: boozeomat diff --git a/Resources/Prototypes/VendingMachines/cart.yml b/Resources/Prototypes/VendingMachines/cart.yml new file mode 100644 index 0000000000..56527fad4d --- /dev/null +++ b/Resources/Prototypes/VendingMachines/cart.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: PTech + name: PTech + description: A vending machine containing Personal Data Assistant cartridges. + spriteName: cart diff --git a/Resources/Prototypes/VendingMachines/chapel.yml b/Resources/Prototypes/VendingMachines/chapel.yml new file mode 100644 index 0000000000..54e092966b --- /dev/null +++ b/Resources/Prototypes/VendingMachines/chapel.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: PietyVend + name: PietyVend + description: "A vending machine containing religious supplies and clothing. A label reads: \"A holy vendor for a pious man.\"" + spriteName: chapel diff --git a/Resources/Prototypes/VendingMachines/cigs.yml b/Resources/Prototypes/VendingMachines/cigs.yml new file mode 100644 index 0000000000..ca514bfba2 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/cigs.yml @@ -0,0 +1,6 @@ +- type: vendingMachineInventory + id: Cigarette machine + name: Cigarette machine + description: A vending machine containing smoking supplies. + animationDuration: 2.1 + spriteName: cigs diff --git a/Resources/Prototypes/VendingMachines/coffee.yml b/Resources/Prototypes/VendingMachines/coffee.yml new file mode 100644 index 0000000000..e348922c0b --- /dev/null +++ b/Resources/Prototypes/VendingMachines/coffee.yml @@ -0,0 +1,6 @@ +- type: vendingMachineInventory + id: Hot Drinks machine + name: Hot Drinks machine + description: A vending machine that dispenses hot drinks. + animationDuration: 3.4 + spriteName: coffee diff --git a/Resources/Prototypes/VendingMachines/cola.yml b/Resources/Prototypes/VendingMachines/cola.yml new file mode 100644 index 0000000000..f6b1ca09ce --- /dev/null +++ b/Resources/Prototypes/VendingMachines/cola.yml @@ -0,0 +1,6 @@ +- type: vendingMachineInventory + id: Robust Softdrinks + name: Robust Softdrinks + description: A softdrink vendor provided by Robust Industries, LLC. + animationDuration: 1.1 + spriteName: cola diff --git a/Resources/Prototypes/VendingMachines/dinnerware.yml b/Resources/Prototypes/VendingMachines/dinnerware.yml new file mode 100644 index 0000000000..ce787030d7 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/dinnerware.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: Dinnerware + name: Dinnerware + description: A vending machine containing kitchen and restaurant equipment. + spriteName: dinnerware diff --git a/Resources/Prototypes/VendingMachines/discount.yml b/Resources/Prototypes/VendingMachines/discount.yml new file mode 100644 index 0000000000..20a700c23d --- /dev/null +++ b/Resources/Prototypes/VendingMachines/discount.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: Discount Dan's + name: Discount Dan's + description: A vending machine containing discount snacks from the infamous 'Discount Dan' franchise. + spriteName: discount diff --git a/Resources/Prototypes/VendingMachines/empty.yml b/Resources/Prototypes/VendingMachines/empty.yml new file mode 100644 index 0000000000..134f3cc2ac --- /dev/null +++ b/Resources/Prototypes/VendingMachines/empty.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: empty vending machine + name: empty vending machine + description: Just add capitalism! + spriteName: empty diff --git a/Resources/Prototypes/VendingMachines/engivend.yml b/Resources/Prototypes/VendingMachines/engivend.yml new file mode 100644 index 0000000000..e891ec7e59 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/engivend.yml @@ -0,0 +1,6 @@ +- type: vendingMachineInventory + id: Engi-Vend + name: Engi-Vend + description: Spare tool vending. What? Did you expect some witty description? + animationDuration: 2.1 + spriteName: engivend diff --git a/Resources/Prototypes/VendingMachines/hats.yml b/Resources/Prototypes/VendingMachines/hats.yml new file mode 100644 index 0000000000..14f7663fc8 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/hats.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: Hatlord 9000 + name: Hatlord 9000 + description: A vending machine containing hats. + spriteName: hats diff --git a/Resources/Prototypes/VendingMachines/magivend.yml b/Resources/Prototypes/VendingMachines/magivend.yml new file mode 100644 index 0000000000..ec7a9abe61 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/magivend.yml @@ -0,0 +1,6 @@ +- type: vendingMachineInventory + id: MagiVend + name: MagiVend + description: A mystical vending machine containing magical garments and magic supplies. + animationDuration: 1.5 + spriteName: magivend diff --git a/Resources/Prototypes/VendingMachines/medical.yml b/Resources/Prototypes/VendingMachines/medical.yml new file mode 100644 index 0000000000..d0e2376b37 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/medical.yml @@ -0,0 +1,6 @@ +- type: vendingMachineInventory + id: NanoMed Plus + name: NanoMed Plus + description: A vending machine containing medical supplies. + animationDuration: 1.8 + spriteName: medical diff --git a/Resources/Prototypes/VendingMachines/mining.yml b/Resources/Prototypes/VendingMachines/mining.yml new file mode 100644 index 0000000000..6c8b78d98d --- /dev/null +++ b/Resources/Prototypes/VendingMachines/mining.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: Dwarven Mining Equipment + name: Dwarven Mining Equipment + description: Get your mining equipment here, and above all keep digging! + spriteName: mining diff --git a/Resources/Prototypes/VendingMachines/nazi.yml b/Resources/Prototypes/VendingMachines/nazi.yml new file mode 100644 index 0000000000..64927c71ca --- /dev/null +++ b/Resources/Prototypes/VendingMachines/nazi.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: Nazivend + name: Nazivend + description: "A vending machine containing Nazi German supplies. A label reads: \"Remember the gorillions lost.\"" + spriteName: nazi diff --git a/Resources/Prototypes/VendingMachines/nutri.yml b/Resources/Prototypes/VendingMachines/nutri.yml new file mode 100644 index 0000000000..ea7b668bb6 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/nutri.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: NutriMax + name: NutriMax + description: A vending machine containing nutritional substances for plants and botanical tools. + spriteName: nutri diff --git a/Resources/Prototypes/VendingMachines/robotics.yml b/Resources/Prototypes/VendingMachines/robotics.yml new file mode 100644 index 0000000000..ed33c75520 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/robotics.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: Robotech Deluxe + name: Robotech Deluxe + description: A vending machine containing nutritional substances for plants and botanical tools. + spriteName: robotics diff --git a/Resources/Prototypes/VendingMachines/sale.yml b/Resources/Prototypes/VendingMachines/sale.yml new file mode 100644 index 0000000000..33550713c9 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/sale.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: Sales + name: Sales + description: Buy, sell, repeat. + spriteName: sale diff --git a/Resources/Prototypes/VendingMachines/sec.yml b/Resources/Prototypes/VendingMachines/sec.yml new file mode 100644 index 0000000000..65dfe7a5b7 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/sec.yml @@ -0,0 +1,6 @@ +- type: vendingMachineInventory + id: SecTech + name: SecTech + description: "A vending machine containing Security equipment. A label reads \"SECURITY PERSONNEL ONLY\"." + animationDuration: 1.4 + spriteName: sec diff --git a/Resources/Prototypes/VendingMachines/seeds.yml b/Resources/Prototypes/VendingMachines/seeds.yml new file mode 100644 index 0000000000..2e4e7b63a5 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/seeds.yml @@ -0,0 +1,6 @@ +- type: vendingMachineInventory + id: MegaSeed Servitor + name: MegaSeed Servitor + description: "A vending machine containing Security equipment. A label reads \"SECURITY PERSONNEL ONLY\"." + animationDuration: 1.3 + spriteName: seeds diff --git a/Resources/Prototypes/VendingMachines/shoes.yml b/Resources/Prototypes/VendingMachines/shoes.yml new file mode 100644 index 0000000000..603858242b --- /dev/null +++ b/Resources/Prototypes/VendingMachines/shoes.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: Shoelord 9000 + name: Shoelord 9000 + description: A vending machine containing footwear. + spriteName: shoes diff --git a/Resources/Prototypes/VendingMachines/smartfridge.yml b/Resources/Prototypes/VendingMachines/smartfridge.yml new file mode 100644 index 0000000000..39fb27e203 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/smartfridge.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: SmartFridge + name: SmartFridge + description: A refrigerated storage unit for storing medicine and chemicals. + spriteName: smartfridge diff --git a/Resources/Prototypes/VendingMachines/snack.yml b/Resources/Prototypes/VendingMachines/snack.yml new file mode 100644 index 0000000000..fe5d6cd4c5 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/snack.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: Getmore Chocolate Corp + name: Getmore Chocolate Corp + description: A vending machine containing snacks. + spriteName: snack diff --git a/Resources/Prototypes/VendingMachines/soviet.yml b/Resources/Prototypes/VendingMachines/soviet.yml new file mode 100644 index 0000000000..c0151f477c --- /dev/null +++ b/Resources/Prototypes/VendingMachines/soviet.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: KomradeVendtink + name: KomradeVendtink + description: Rodina-mat' zovyot! + spriteName: soviet diff --git a/Resources/Prototypes/VendingMachines/sovietsoda.yml b/Resources/Prototypes/VendingMachines/sovietsoda.yml new file mode 100644 index 0000000000..244daf866e --- /dev/null +++ b/Resources/Prototypes/VendingMachines/sovietsoda.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: BODA + name: BODA + description: An old vending machine containing sweet water. + spriteName: sovietsoda diff --git a/Resources/Prototypes/VendingMachines/suits.yml b/Resources/Prototypes/VendingMachines/suits.yml new file mode 100644 index 0000000000..33ebb76916 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/suits.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: Suitlord 9000 + name: Suitlord 9000 + description: A vending machine containing jumpsuits and dress garments. + spriteName: suits diff --git a/Resources/Prototypes/VendingMachines/theater.yml b/Resources/Prototypes/VendingMachines/theater.yml new file mode 100644 index 0000000000..74df6265d1 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/theater.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: AutoDrobe + name: AutoDrobe + description: A vending machine containing costumes. + spriteName: theater diff --git a/Resources/Prototypes/VendingMachines/vendomat.yml b/Resources/Prototypes/VendingMachines/vendomat.yml new file mode 100644 index 0000000000..4c6029f722 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/vendomat.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: Vendomat + name: Vendomat + description: A vending machine containing generic parts. + spriteName: vendomat diff --git a/Resources/Prototypes/VendingMachines/vox.yml b/Resources/Prototypes/VendingMachines/vox.yml new file mode 100644 index 0000000000..bc01c3f1fa --- /dev/null +++ b/Resources/Prototypes/VendingMachines/vox.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: Trader Supply + name: Trader Supply + description: Make much coin. + spriteName: vox diff --git a/Resources/Prototypes/VendingMachines/wallmed.yml b/Resources/Prototypes/VendingMachines/wallmed.yml new file mode 100644 index 0000000000..5cc0912e28 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/wallmed.yml @@ -0,0 +1,5 @@ +- type: vendingMachineInventory + id: NanoMed + name: NanoMed + description: Wall-mounted medical equipment dispenser. + spriteName: wallmed diff --git a/Resources/Prototypes/VendingMachines/youtool.yml b/Resources/Prototypes/VendingMachines/youtool.yml new file mode 100644 index 0000000000..7d3e2162b4 --- /dev/null +++ b/Resources/Prototypes/VendingMachines/youtool.yml @@ -0,0 +1,13 @@ +- type: vendingMachineInventory + id: YouTool + name: YouTool + description: "A vending machine containing standard tools. A label reads: \"Tools for tools.\"" + animationDuration: 1.1 + spriteName: youtool + startingInventory: + CableStack: 10 + Crowbar: 5 + Welder: 3 + Wirecutter: 5 + Wrench: 5 + Screwdriver: 5 diff --git a/Resources/Textures/Buildings/VendingMachines/ammo.rsi/broken.png b/Resources/Textures/Buildings/VendingMachines/ammo.rsi/broken.png new file mode 100644 index 0000000000000000000000000000000000000000..129cdb87e827bdae3aa68e8c9b5904a4bc3a8727 GIT binary patch literal 1264 zcmVC9xZUG%{h4-9wa&Yd~`^FJT= zT=-x9V-cIZ%vzRI_nl4FX`$!vTFp170lzexo?c_nPj|&)@=eQPBp#O@!FgQ=5vE5+MXqO0L#weeXR08`sC>bgs;Ft_<5@rasI^w{J7@ z+SjaJIZEcpMQ?0fd+(u&zu37GDJ8EYlYDF2{O&lkq{Jl{Gai8HTp55*=N{oiehtGg zB9*URIm(A)V-E%JtOogcyjDeS7y)60otZA&qW1iDV!>wJ0V>HF+YxMxoph z(9LOJOTLC^7o@Tld$!yBcB=x*j}H9S0Qg~k6h8~6j#q)LSvp8AJ^unfEmYaqus|QY z&Hzv>DEbfdO7K=0h?3N?Do-uNx5hv?4o)7g(v*@<%H@9yz#jvH3x0?J6$b|_OIkww zD+V6xWxdt-1?mAvPb~_76Zth_5t~o;TpLT*nclXI zw9#+U1>2_HYI)C3(?nl4$QZ+00|4E0gy`mDM@D1nGs$o~PCVp-R4m53=`;z;^5!nz z6kNV3`1LO<{HuTjOi{tO*#}R4+_m!0_aDSZOxH>4!DK({V@VEhX&(TUj^PjeRZdDt zMza~un+&B)ig}}N&1qjOD0zDTfPf2>a{r_dg6z3AJ2KtbV&35NT#Jd34liX*cF(zy z4NESUV{&qmTrM|2bqIjU0{@mQgus=OcB2~=J2DzV2wuOR=3d?8{%RM5atl0QtyC&8 zF)=}@RPx?+LSq1c%7U5M718ni$aWkS7AjP3-KSBhVLJ{(rpdwwCdE5$0EFMyg+hV( z`FRS3LO@x#zl^K{%6fo~lwAAHW#3yaOMlb?MW~oJ0w8wJb$x$E*8|sC!|=cjY)F*< zXJ%J~IuA%G(Sa8a8a(rCn+h?)Qp_7L=Tf|b7m&-12Fs4ap5bA1t!twY!rSKidO{Wb zJ^#y-z3o^C!M1pu#m{x5l(b?o^d2+q-Z{Vn;bU#hb@{p3WN#|vb;Lkqf%9f2M>VM$ zlB{LPSCdI^QBz8+-p5h*{?=Ovf!pcObX}6BNmEM99=I#E?O7i-rQ}kn)b`#5uySQcPNecor1G#CCd<9N zfAc2&FMZ9@#X}?yoOQ?A<+s;W{Q1_cNGW+C9_RaFksG#6O-da6G2;T5NaX?ec;*qN z)5{o!5vqLY;vr594z3H}=V2RwuPE_aDUJ{VU5GZy4S>-BO)BMH2~(ataF*J=d%ksw zX0N>YN)zPWMcZ8yj0YbB*?dDxP8EPw`o#%V9%SI^>MB=jHBvo248>yZe15UOJF~l( zJ9ii6KzOpq2SEA${F#0UFgaClO;NrMjwb^QgvpMPog5KWRvt*kjAl6rWgs!WAVvo? zIh|f6n{Nnc<}|P&UqiSH2ET!K?>tK8TMgzqe`^5zlo`Ow!qLNPz{V`?BzvBDmg&FN zSXt3|T3-i%VnNZryH$cW%0QTGUMz5Ib{BK!9LPkv0|>^!k;7|LrR2kW{vQMI$3W+G zJ_b}A?6xdv3GuHO*yd(|fXq4opqYlM9;iySE#jxH4peNLxM{8nV0L8th8S?G;>wjF z32^>Qzf@Te6uVaA#|IC{2Wt9KrNTn7i0wG;+~Ai>d^8i~)q~x)GWTs_d_e$ArsY$Z#HLLojCPY|i$%({n)|%<1k8SRmmAmYjRAmWIzo8!u_dW7{)wbF8YLQV zL0=@oTZsfQ%W~%~To+upF8KA175tS?e5R;i?DoOqA2hA}PJOmb9cz#s0ZEoFKW%alFR8~tAZJQp` zg>n()9X*8%h4sp|@DkWwM+{I$i zwcd9y32w(n53liEvFJN&C0P~0M;Ol<%F002ovPDHLkV1g^5UcLYT literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/ammo.rsi/off.png b/Resources/Textures/Buildings/VendingMachines/ammo.rsi/off.png new file mode 100644 index 0000000000000000000000000000000000000000..129cdb87e827bdae3aa68e8c9b5904a4bc3a8727 GIT binary patch literal 1264 zcmVC9xZUG%{h4-9wa&Yd~`^FJT= zT=-x9V-cIZ%vzRI_nl4FX`$!vTFp170lzexo?c_nPj|&)@=eQPBp#O@!FgQ=5vE5+MXqO0L#weeXR08`sC>bgs;Ft_<5@rasI^w{J7@ z+SjaJIZEcpMQ?0fd+(u&zu37GDJ8EYlYDF2{O&lkq{Jl{Gai8HTp55*=N{oiehtGg zB9*URIm(A)V-E%JtOogcyjDeS7y)60otZA&qW1iDV!>wJ0V>HF+YxMxoph z(9LOJOTLC^7o@Tld$!yBcB=x*j}H9S0Qg~k6h8~6j#q)LSvp8AJ^unfEmYaqus|QY z&Hzv>DEbfdO7K=0h?3N?Do-uNx5hv?4o)7g(v*@<%H@9yz#jvH3x0?J6$b|_OIkww zD+V6xWxdt-1?mAvPb~_76Zth_5t~o;TpLT*nclXI zw9#+U1>2_HYI)C3(?nl4$QZ+00|4E0gy`mDM@D1nGs$o~PCVp-R4m53=`;z;^5!nz z6kNV3`1LO<{HuTjOi{tO*#}R4+_m!0_aDSZOxH>4!DK({V@VEhX&(TUj^PjeRZdDt zMza~un+&B)ig}}N&1qjOD0zDTfPf2>a{r_dg6z3AJ2KtbV&35NT#Jd34liX*cF(zy z4NESUV{&qmTrM|2bqIjU0{@mQgus=OcB2~=J2DzV2wuOR=3d?8{%RM5atl0QtyC&8 zF)=}@RPx?+LSq1c%7U5M718ni$aWkS7AjP3-KSBhVLJ{(rpdwwCdE5$0EFMyg+hV( z`FRS3LO@x#zl^K{%6fo~lwAAHW#3yaOMlb?MW~oJ0w8wJb$x$E*8|sC!|=cjY)F*< zXJ%J~IuA%G(Sa8a8a(rCn+h?)Qp_7L=Tf|b7m&-12Fs4ap5bA1t!twY!rSKidO{Wb zJ^#y-z3o^C!M1pu#m{x5l(b?o^d2+q-Z{Vn;bU#hb@{p3WN#|vb;Lkqf%9f2M>VM$ zlB{LPSCdI^QBz8+-p5h*{?=Ovf!pcObX}6BNmEM99=I#E?O7ic>0OdZ)s_1s-xHt zWqED^FeCXo$;wcXOj;UW!@*?U-0sb_Y_8ux(&fUO@+H$lJ6&2=HCpN|30&^$L)UbK zWJ4B4&fMA02k?5m>}}jQBjDkNmQ4S^E8FP!{@UCLgkpjO5)*MjSeLn<5JclibX`XX z!J*UVP={2;CngFKIM{odV_WtEaPQu|f_9e4a=UF@y!9P>w$vj*W<3CCn#Q~`JLS$& zDx5_H9RmmN+YbD>;1g9FR)IJL`9H`0Clh1k#lZKv9$&qYKvq>}jma z(-)F+KlkV9j(mCE(tn14)9K{y-McB}gRe{^3^YxnVRbdt&pm@ANmMPYqT}dE#!3pL zKsPKaUV07`ii?YL38<=y!;y6;Nj3~4TY##n7Seq1ARAY&rQ_&Hv<34iP9!kR{Hw&0 zsIvfi7BL===O4%8K#p39?&cF}9P+n3(Xk6pW)jmc?Mrqs8 z#Kgn|q0o2^(D3lEWxIX*HiLtM)X5HNWd}n;L)nkDVyq|%ilSheCbg@VqbLe(JDRYU zSJ40K9~}AU6ZUS|Xt^j=Rb~C!7cwm!Y5)^(kQ+72ZCK(Dv3=4mIzfcE$6c6|Ce1#XcMXWsvCNiDOE4IuK`tSI$-vkcixw@)B@m6IPLMz# zU=@^EC4DY*b#)cA5r9&t5S6)H@E@LLhGFD{)=GLFEWW9BBKt07iia(K1JCOP UQt^6Q^#A|>07*qoM6N<$fzPN=llUYgyq^B5k9o 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/boozeomat.rsi/off.png b/Resources/Textures/Buildings/VendingMachines/boozeomat.rsi/off.png new file mode 100644 index 0000000000000000000000000000000000000000..fe2803b6dc7506e34f79a7361603493326b33080 GIT binary patch literal 988 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/cart.rsi/deny.png b/Resources/Textures/Buildings/VendingMachines/cart.rsi/deny.png new file mode 100644 index 0000000000000000000000000000000000000000..8c3ac65247a7496622ce1d64208258f1ad360c3f GIT binary patch literal 1803 zcmZ`4X*8RO_KT>b=|eC@TN?2q)xMP0QxuhDVo>`MODSe_S{YN(S6eJeL}~GAX~ozQ z+f=Esv?v{8JBn(wsiNAkBxoCJCDI(Bk-j+d$6e38_uTc|EH4iyb=YAT008PP z&O{$24c`N(ni4M*C)fah+G`gg-Y>Cyoz0_6U(z4$ZD!ky5XuzK{`{5P<+t1J!FpWZ z?Pib}Pna13kpR;y*;yBHreRms-zP@g|Yx(B=dz6)xRZC~*t=22N zAIRkWLSBWFMad1*?BbG=)3$|YX>lrT85#S2^*KKC2etLlbt?6cudi>>d`I*w!3Yi@ zRfR9v=@@P?n+i_0xannjgUvRq`S$8O!sWiWf5|l7+FGl$IHsJUiw#I-zI*o$Cad%z z9UK8+hnzwOvK9@CsZm-H1K*46HQgJqj}6uMUq#3v-{a*pxqbwbVNKx=!FhH=6qF)$ zziCub(he?$0Ap28IiW@gnSZE-<|B8DdvW{=t3O)i}7StB^{f1(iN9u6mH~ zYT~r*zi91-YyULc6|n4P%chaLcCKJ_(|N*ym(iMv=P8*XW{`?J!RULTOxo`RAH;pz zZ%`Qa@26tXkotQGRdhoz(H_-F{{V|8j%m^UE;OxbT{Zay{Jq&So_2mnktv)Zxc zzCCuzd<*+Dx?YEI>FiR#e8WIQA{zSkKx@A( zk9qzO7kAK}SH?*<>G`CepA@sj`m?k)Eye(rp#nuJa|8emL`7aohR2KTt{+(n>B-Uh zMV2I94F!RZy)2F$3%P?z6H?dgsmw@AST8@XhRr*r{iXkNV3%x+ZC~3X(;g04SRJHL zbtmdTrfvMK_zw?|pKs+MhAGz(i(z|#r&4v>=z@BFQ;{*(Mq5K! z3b?cussFd?z|Z)?Bn;%*TY1QWe)dC}d|f-toaU;zcvy=kS=!ievMS4{Hg(oeN0zu% z`<*bfdSD{UOc&uH)svGXpidw$Qd3jQcSD0JH;qQuyn(2cX|;K$yrWftnCiwx^(rr@ zXNAK)z;zr~B)dsFaH653Lr;0)EPS1ObmsV(17X&n+ZqmEJNRJWx5maaIP+(#;1aMN zY@c#hV`F2B<2fchCjTiyGclc_2}3#;hLovPP(%hRXRVr=BE&owtRa5u#maoBm~$#upq zYo|CMJn~Ir9GS79Sm7#RZRMt2>UgxF1`5C!bAj$~ZGD zp{7U0MCUlyLfmbq-&bj{E1NaJrv@q9w~g?tT@N1HEao zs}e||V{&TGMfs!Ag^oeQD>tR@FeL|DS+XLT&E?0_fpzJ2yyV5gmKA-F2w#TM)Az=c6i%9Lco6;>altNwwR&1b@ll&jv|3_6( zyOa24n==D{p#adt1}ua8M-O5XA)NUiRvL6D literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/cart.rsi/eject.png b/Resources/Textures/Buildings/VendingMachines/cart.rsi/eject.png new file mode 100644 index 0000000000000000000000000000000000000000..346630bdd41e6497ee8432dec9b54df06900ff9b GIT binary patch literal 1799 zcmZuyc{H2p9{yrqqV_WOOGdPoq6WS8+hm9qp^Q*LRXdd0mz4AhW;8MtZFP~3qB%8| z63h&>l+Y4dt&CbiHKORmQWLQ>i_rP>+&}I)_x|y|?>X=LTb}3nJ?Ff|Xn$`NB|Rko z08~&uh#>GJfGb)-4%{bma!>#uH;O`d1>-8#D@KwvL$w%mm&Nbdu0Bxz6pa%~iYmTH z*?P50vI?zK%eQ`7A$QQB*bG)flUh(%M^LwkM45ddu;27?LsM6rnXh8qsua4$LAmUj zrnH^i1$)&1o&Lh}OdO+`qA0-Mx|7SGh}f;AR%7sRomd$|pj%DZ#CbvWdi^VQ~{OCZbZ8JAFZ|UtN&&-5X zxL?&vPfzbic`p@IuLVOro0zygNgK$fL{$RfSFfP<6eumS=Tc$>2Ghr195Q^~jO{K; zafUKZvoE)4xV-K!<2QL=TUp5_yL>_K=sE+)=~x z_9G)B-HZ=;yJE4Lf=tVf1lSMTJKPy@C?9zKqL`PmHh1sFqZBOsq~z0Zv9JRZ;l|<+SNd9}}Ze7o-M9wl`iKBQ`i{?e+2=?9SrL&xS@uaxGgI5Efbm zRwG1&DG+HDXh0PH#rM;kU))y3iRZn|$n+iev^;DxkxnD!?Z%Hzx3{+!B|0jjZrM6I z77Y#}>l#+$u&3|>;V+76q=7_u{MUZtEl;09ujJ~36V=z(ALed3=WJWty?fV$L|wNd z@{BmY%MHKlo(XPT`)9d{Nfoouu82mn0SFdS=TZkh!44v}m27cKkJe%9pmK=7fvNFY z;?SakT;VjG=V7qAJChZ)&^?sB9gckn&_2C0ngssQVp-Qc8p2Sv$D<=N5SbA zrGj;g+7{F5Nd>GJyT<0`ldMdHsk)XD#Ag#S1or|bdiLM4YDjfyY3bpMzk%+ke}C># z(2=Y@MBn!AE7IxyKa= z>!A+^M*uD+iG8dPQ#0#ga1tqU2I| z(k#kO-b=b(`T)mDmGo1b1O{~LP=ZKw#gc<5Zq25C5N=imeyMgmib2bjm0^4;U3KsrH?yl0clfWgYW8F?nu2p{JU9ux$Mzui$0FC5g8RHvd4z9gso{eHvBXUv zABRi`KEB6yX$stFN3N59exG}Fe@WF7&k}y4Sv_~SCasO?QJH-J zJe?aJK)r9o&XCiNZ;zBINDsLWRQv=!>41%FKm{T|x}C$I05?Il{}T`;md3s2qI$RG zH|{gb@GGkG-&DaVk&t&E0|aJO@PnKN3Xrs2yGvmf9#jcCoL_P{rfIoU0LH()s4;mu z4{u58yC`%m2Akdk)mgRPk7VeaefFiQbLL-9?XqIX!JuuJW&aK1L+yS>vnXOU&x_m` U;2TwZ@WBBnq(6f8ujqom0rskJ1ljwEP)T$c zxGHVwqR4F_Lg_+E!DbO-K1?;ySjYLubYU~i$3&y|dhY|nocEoV^FHUC=RI={ykUqN zzS(b*fSpdKA2jjm>T1t#_Um}k>9h^lp3da!>+95NHOCPOg$M?NcN*Qy%napnneFXu z78VxR+1X)fX^B)Sg{EmNFE2Z>tpx1N%}sK-92*-Ojx&?VFgG{Xck->REqp#7LI@TY z7cmTjmF4%jG9*-0<^24-Ene#EU}a^+Nqk>48VyooUYyAWMd>2YsR0Mg8HmT@cOqaI1_%#| z_irp+#ctSyhr<}AiD{ZBiqao}R_yKVIb`zrd|SKq9gRlucs!h6j__yUODdHL9*^Mp z%vb!n{~4O*>*~8Ff#woqGMO9Ot?y_w3V@=hn0AOO^SZBJe*ct9>k*)L<>}HuJRWzZ zzg396+HTNwokF2NE|&w~(t3<-+gpvmj1)yd*LD1UKk#3PcEFXuC+V*_`{O&u z4!`>$mEXSUus`pzfBt^Q@fC|jN~IE-rZF`&#lgV=rfGKVE3O0-f56S%7c9#npUXSu>&UXq`Pmuaa2T)G%i~A?@Fe=f?F3#0BuT)B2l%)}P9KFg-m@AP{I< z^P!<3*Vr}!hGDR_wuZ;!!Rz(*Od!j0&$_NuDhMGM9v-G%ucK)ie!t(j6Eu%y&AVai g<@B}OhC3ks1v^#R9rb#k7XSbN07*qoM6N<$f=Ryrm;e9( literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/cart.rsi/off.png b/Resources/Textures/Buildings/VendingMachines/cart.rsi/off.png new file mode 100644 index 0000000000000000000000000000000000000000..5ad446a4eaf4c7db83e1bc4069d0f06a544df9ae GIT binary patch literal 967 zcmV;&133JNP)TVSi%2Abq9~NhWs1cjkw}E&<6~Uc#W0L_`eRez zr(xW>|JO$}8b#N2R8>V$6pFBuPOb3L$uWd_1jFw z{hof*qCyDL=`>4AOGuJLHk&1r$&gGYNhA^jx)ZhGN9%ss%E}7xHjGqN#WYPcO#|Lq zbQqx#@Dh3cvj{FJ^?jm!KN^h&)oPWSn;Q(n;QIQSN~MA<%O6KTR-$3ziQqU6wOS3+ zG;v**hld9`oeqUUA(TL91fK5y{nFm=fKI1_5Q4e6xi@2y#Ov$pfNp367Sex@^l%*9 z`ai+iG)-h#rrYh3NF-1c1w~OfIXM}4=BJP1;Kh=JZQJO&4!ljr#l=Mq4-W_QMs@)} zulmEIzp~#y-1oz_ZDwX>Xti2+o`IT&e_0XU-QCga^_ZQVMb~v+ zUS0qun*%=s$z+mm-@XM!SgX~@WHRscLJ54f`278h@+P~#zefl`v)K%0K&R88-EIdd z8B5@+xV*eX2!Ul;#9}c_(+obv*4EZOM_`iTQ-_{eU0o%WO3`k&0Z64%JU>5U7{+7~ z@IwhOLkB*w2UuTUCl-qh(Dd}qtPfHSEO;afMsBsCMc!Qbse^C3+*&b0|4mX!|6DV&^FKOlq3nNs;0;- z%ZkY*Ns4WGczAe-8vy*VF>CYSdVnz|R2-2(d$a4A80wNKNG5EfZ{r!E^>vh<+4cB#rbBe_xip658U*F{0bN2ub&1N(4 z)vBs;*vF;v9STmvf#Qd zHa9oXXf)7hG~Oq`G)<_g3g7oZDMho{Oo%W|6NHe|ysN7#+}zyY_VyMR7Z>RF`$7(3 z2vk)~#5sC)yWKd$QA$%MqSNVMcXt=EEMq(#XO>9bU7oLJF^|ozu!(bQ&`u#q}<5>w_TU*0m2n>elH8MS5nkH=9 z<`$ml{dGtHAeYPG?CcCLFE8+YA3HlcczSvgatH-Tk_1Wxe)|qyVcOo_j;~^#=V3S; zA`C-J1O+y;8fKMc0NkwTc^(u+Nv-wx?;8cYuK8IadAPj11b}!C0Kh-(=tw57W|H)hleS*pVP2ft)f<|{S^82^)-gWAy!vc rQ)7R9z6Fr_Gs?vRev0{h$N|7N8%Wq4FzjF<00000NkvXXu0mjfG{3rZ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/chapel.rsi/deny.png b/Resources/Textures/Buildings/VendingMachines/chapel.rsi/deny.png new file mode 100644 index 0000000000000000000000000000000000000000..8821a295f28533879bc78e823a760120b8b623d0 GIT binary patch literal 3051 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 JPDHLkV1i8S#q0n8 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/cigs.rsi/eject.png b/Resources/Textures/Buildings/VendingMachines/cigs.rsi/eject.png new file mode 100644 index 0000000000000000000000000000000000000000..9810b6f80afc0e9edba5d1d6ca523638be7748f1 GIT binary patch literal 1916 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/coffee.rsi/meta.json b/Resources/Textures/Buildings/VendingMachines/coffee.rsi/meta.json new file mode 100644 index 0000000000..b9afef1fe1 --- /dev/null +++ b/Resources/Textures/Buildings/VendingMachines/coffee.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "eject", "directions": 1, "delays": [[0.1, 0.4, 2.0, 0.2, 0.1, 0.1, 0.5, 0.5, 0.1, 0.1, 0.9]]}, {"name": "normal", "directions": 1, "delays": [[1.0]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/VendingMachines/coffee.rsi/normal.png b/Resources/Textures/Buildings/VendingMachines/coffee.rsi/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..1b34b300c7f1927a2770ff95331826b73663c1ae GIT binary patch literal 616 zcmV-u0+;=XP)36P!p93B@~LD3Q-WM1&JVnh*5xo_JcoT#|!AmbfE=mzZ zFbIW+pgDOGq!uiiO)F)aLb|xIiLi)eJ#9(I?q;UhwwL}82=6`S|MK#7W=Fw8u~^LV z%FC!!Dk)C!{a)tDWK!CwR;ovSdGh)SDyNvH$1+I0ZnWMz%B_agjW-{7a;07LhmE85#9 z*6}M3H#d~WcSf6bOa1gIW()(v2rx44BS0pbS3aftt>t&mcyqhY0yq*1Fg%q5U^1No zAoBeOm$#z>e@)ZzT(FHNrgJ>FdX8eWha&jjfys1=iRoNR+>Y5GvNIs`6lAh_C6mo7 zUBO_}VbT>0D)uKdI0`^9+QZB%g%>XaB1?+_G!9y$X=A=Vp9kQ?2c4VOEpFY|5CRbT z3s%aj+`W`=eK%;_fEF)ASj5K}klk8sg~MT?I^iLV$KwnR3~(S6;!nK}u=#y{VF6WD zo9e68s=ol5reT_JKqHpilU2n&ZLD-qAIlzC?SG@lrp|X|$0000A$u5kg|L)M_z|y!0 zp?-AN4NGjX2i-u(e$1GSx%fK`@B1?Ev%j4gW)g%*QIxx|yo?OPNchF4!kU*#CFw>^ z#~FxSW*UHU=Lg{n;C*?eQjrGmQ~q5hFc;{+k~$kp^Ok0X<^ur$ls9ujH8;-xMAn1? z9Pid1-Q2P)Hb1Nn2LQ18Vp6K{uj_wO^^pJo+06YS$}gs=w>yD#wllZ`qBJ2>TyJ;C zFQ%oNgh|K&Pf-p46hGbYx|O1K`Zs=n?n05`oXK@E*NZiDt*^#7Sf*;*Sk@Gq8!-Z` z6jUaD9%2D*_Xhy!WCFFk1Aun44}kK%IT{CYxn;=h48*<0YI&REy)RV1&QOK;9ng;U zQOnx{aWCe9jARY06jT6Avw82tgG{s88z&duf}@YdfrhU2LHOl86+YgubQQA$w&PIK zPJ|}Zzs;Z%qXV)>tEX%>D^w@E2veyPujXHpoSvq8dkfGT|Gv1yb=|&t+qQ+~l{$(? zp|Jx9{{q)_X`Gu+3$XQhZK%nOv*@iD?tl|~nG{p>m2B*5;2Gc)+fd|XBcl3u jC-8Ob8-%BMngjd?(TA`5Td!)@00000NkvXXu0mjf>yG~= literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/cola.rsi/broken.png b/Resources/Textures/Buildings/VendingMachines/cola.rsi/broken.png new file mode 100644 index 0000000000000000000000000000000000000000..9e7194565133ed9cc2d8801d80e95e9c1fc155fd GIT binary patch literal 998 zcmV*?Dv<{Oq}K2N)QBv20VH;%mRL~< zyodrD1dF~v6I)sESHU7lrKGYw=dc)$eaF6IdkWubeDC#q-+cF+bI%oWaPZ>~wtIUQ z6GcQ&3^4^j%wgg%Kmdm^WQd3$v4FE=RKO{iK&R7@5KnOM;NZY+@4nA#uWk~FL+vTz zRzVFDKnGBpamq-*5GTUngS(tocY-2<0@kb7O;93(exyX|yjhog zp&DYzh>F9ADN#Zh;D{KAP$EW#jD6{PKAII!%Cn`@c@UZ^jOz7w64`3Oc^4WK zZ*8TrO{KD3h}2&{R2{uE3a$-05X)fvqF%2(e%{*J9It7$8sq0$?L90Wa(;f!N$>m2 zyH+f5UC^L_umdt18mW+0t3j*Ppk8lICN)MPhZ3?mp|CJjP7K)W;!0(kR;!&EOGP|- z1d?XP6x5AUH^+gn0EwvAo3vW(F^Nx}%uTkSQrV_lUdzPJLa+d0Nt;$Y0&*Q#9L;{$^IzJx zrRqQky^7Bs_a^D%Tgd)z_)|}!!5uoZg>K;<7)hMYFOL{Me zFf+Q{$Hd{Pi~{fBu2E5^91oO-@WFnAzxdG=aYj=AHtu z5*Kj5&%&e5H#0rpG8k{ecniYo<{n0nZ9u1cfMTM;T~1KfjrFQM?q+lQSzG{krTR9G zsMzfopjNwKu__VCjaaON$&gqevb4{?g32Jdw%aO5pCsrUVv3m{r6EU$$GJTJ0&^#k U-i6quEdT%j07*qoM6N<$f_-M$H2?qr literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/cola.rsi/eject.png b/Resources/Textures/Buildings/VendingMachines/cola.rsi/eject.png new file mode 100644 index 0000000000000000000000000000000000000000..00b0ac604d228fc67bea3dfd6cf8aa7189dad85c GIT binary patch literal 1265 zcmbtUdo-gn1PSo9j6=Vl11@-QV}$`^Wcve|&#@=X~Ee9}#)hUt7~e6952hcmOO! zsc0pc0P2l!7&J8X$+yS7*F(dM?$IRU@n0aFB}O^k?wo7a_LSu_5wD_L zBMrtO#I84uy81s1#(#jl-}s>jL}GA}*{6pC>M+hX#LyjEI!OLYQSuyhRl|AeHo*{1Q96QAmK z?vi-!?e=z5F?OJ#;pR}Kc*9cYu4O?A=RK5iWT@9S_VkXusI9$`n$k2sN|>uXTUTXn zVU<2T2KoCX!!$xI@vfCdKBIJ2fALY0eqn1fkUTG{r7x7n#`K#%79u9>hPlefE8frA z$Zn^ECy{Tl5{jq9&TDg5&58qnapiEDW!!S_cP3{hWy`+Ii_z2b?YFBya6Ss?3gGcB z=MKoH-=E+p3>l2w{?RNWs6ZoptQ%^t#Nc&X#Tieq{(Z^i)Gjd+E;Nx}CdZ2TIx**F>&>i zv!oz|f)i^oZFdG$aSLmneG{HNh9lwB0PQ{SOhF_PC2Em7n0IL~?2Y|n?EQ2bGuk7O zY!Fp8b24_tbVfRIm-bxfz8lW>)Jn><2F7y-COFiomh`UN-=-EYdk=vwD4oHcTS=U_ zAd9i?5olr+E8|XHr5En!YJ$SGL#mF}e%E9YK~c`#@p>~T@16xYlg@C#+ge-6bM^_a zITOi_JP|D(z@ZIQ@|e-cxQ>rWiwHI^`4h;$P2efG0f4cUM*0r5-{kQLKt8$@;opVS z>FH5pf(@gZj?Lz3!ufK~rx@q%r--1S^{*^E7yBzIcoRX@dmOTPCBdXjV{GgQ8e^ss`6PTA>jpX1WL zq*7DX()K?jc<+8jTef9Q5yiAH<1#Ydt)`T1HDlaf?i@OHRh5XHZCdU)Z6EaYb8x|# zHNR`R>}t&r%uqzc^OgYp`x#T&$hGx!1Gx&7r~r7d%&gdQFYeI+b3y3>coiZ3Db-r4 z=JEe+$Sio3LTi&K@?KXId2#U>ic2zs&BFg=Z0$EosoaTkz;`RJ41oKdg)x25IsXE# C?|yCo literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/cola.rsi/meta.json b/Resources/Textures/Buildings/VendingMachines/cola.rsi/meta.json new file mode 100644 index 0000000000..7fbf06ed12 --- /dev/null +++ b/Resources/Textures/Buildings/VendingMachines/cola.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "eject", "directions": 1, "delays": [[0.5, 0.1, 1.0, 0.1, 0.1]]}, {"name": "normal", "directions": 1, "delays": [[1.0]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/VendingMachines/cola.rsi/normal.png b/Resources/Textures/Buildings/VendingMachines/cola.rsi/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..008b06fad047f69c73990e4b426491b111f11157 GIT binary patch literal 950 zcmV;n14;aeP);Byn!-R0u_J;R*@d(twdd2azx?5Cw^p{0TJt1BpaMLy(XV z7}CYiAdnIQt$k-*fx*bZvCk-u?sng!nDcq>Jacy&`CIMI%y{Q z5jP2Hm;h?v1SAJ@K#E9#7AbpAc5q5pK#mh(?aobhYFC0Hf&wnorcF>1gLa}M>PoZD z?@$dfKceC=3Q|&(4vvJ52q^`UJDzKP$-mhZn)Ras(wJEqjXR;K%BW4h>t(A2=feWJ zYcGFznftf=^X$_2r1x+6^$%`8AXn}FG#Ot&A)US-4L%QI_ufUU$Z54&oL$)Jo0~9i zbwPvQy3nA=(a;!b0WFZkp@hurDJ)DC5nxA$4_pyKUuFzybKTU9SRfn&U4P9kF?I}? zXfJm9{uPeB;R00Kz2|Za#Dq-M8+`QDt1RDb@%wPT@dO|feXpZ}ar@FGuJ8TF?ry^Q zx2p*VM}~y`6~oDg5BcoV6D+)$S7Rq)0auNm=5&o4y3bAv&Q-KPP=E~t^Qd5)T5a(0 z*RSyH58M1vjX&aoK*|iug674HYd81#ZaExM!w~r*qAP+kpFiUI=2^a3-l=SXp?AT! z*m(a%K9PNPcM8re9D{(OqJo#c*yh^CY3_dS_^ld$Bn!f20uT-vb&KUP*vN?(Q;q`DCn31L|-pq-9e`8MARr=o^j>C{s+DOmM9zUj0gvxxI1-djZ#>H!pa{xLHbH@LYJL?6 z6)p$8LO7Utgstog3xsklTI>ekYUT3n;t5Nr$a}9vsS*$w8N0x(fjus}HrpPz3AKOBXg8+tAXuZvX0&%`+b;VLJnYvw}DR@aZG zHJhrvgCnWd9Rp<9j1{UR_>NdC#U!T?NbI1_KY>cex9v6w(#9LrA*PrKlIGOcno*wr Y0V=g$m0$4*&oF literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/cola.rsi/off.png b/Resources/Textures/Buildings/VendingMachines/cola.rsi/off.png new file mode 100644 index 0000000000000000000000000000000000000000..eb69c479aa1309dbfe876369db4226b609264011 GIT binary patch literal 934 zcmV;X16lluP)V4oGd`51=4&;M~7}9(sWa z#GwsbPo{xYt?jk?J?+lh_vX7Z^X7+;gSFp&wUwJI zm?$EGVu&dKVh$6B0RlLTgai>mynwS*D&Q1MpwVbZNKa6>wzg(BS3c(bci$rthuSN| z&4U^yfEqXfNx&QsBjQmX^K!q9Q~CrFoCuruZ_}>c2$BdAxLCbpf)W{YBPCLoS#{|j zsv(w2R2+sUCPwMui0FwBgHG=90PrSRqCy& zVxZk_Qz|VCVrS^AaO{mIpxPZgXJcR-k=3sjc=&UNKgR2ujsP+@^g2y2e*Wb?dwUU; z4~r29M}~y`H4dwHPf)*_6y6uKfGe(_TXzm@d(JZK-dLYWXp4Dc?*E@3(+Fl+&d%>^@qgyu1N~8kfUaq5uKSR3nG6w6w(Yzn+11 z(P$piE|GJnz?b6BbKW0Id08K-bVyf9b4O*)M_KAZoM~DyonU7D>F5YqH<)_`z??5&f$S|j zwcHGDoP7B5z9WBc`tW^Y%o#^E>B! zf9Iax`Q2X?CGg(Gi~EJLjZlc=PA40oP@ep_(^<+*5x%{0r7Cy)T&dtkMm}d}d5QXt zUR7SbyaYhUNJh4k9oKjC7R}Yd&hirOQ@8g6_wTDDstPA*t-KVJj8uXxQ6y%m=g}QM zxdb#bP<{H%vd-3Te1#}UoIE!{wdH7L8D(gTYbzj%nmSDasr|o6#3W6Fm4!J@o}0jy z9q&f}Ea4@Ke;^{>rJ;nnoGCH?O#*TXfOxqINTKOX40D}v#m2Fj`d_31j%iWq*v(dJflUiFKP4i1F)A!X!_Ru1mlyJ7#|zOU@($Sr`X+n zN;;iV$KH9Ls^17c;Dw&oflLhqez~i=xS|Yf73^2vNX>bF<=0A#+s zGCp)40C3nd#iG=JvhSy-CJ_VyK@do%Q|ddQ_J@N)GXuwlC-QcJv)KheO^sQVDerrG z3GDX9A|I8W1!cFPQiRG`&|t9u5Q|1>uvmyiqj@JIfYR|-7Ulr*YN=uZ$~JUcjRbJ; z>D3>==2G=0TPBdn2HOFDhG-UUs}X>3(@QvN(q)5}B%q+dGlbTEZg}w;q9pNnbCc6u zUD*2HD4O%inKOCgs4P=|Py*q_YbA9KyIn2T+j01PX%#{0mc`yZd_ai^Tu{002ovPDHLkV1g+K BIhz0g literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/dinnerware.rsi/eject.png b/Resources/Textures/Buildings/VendingMachines/dinnerware.rsi/eject.png new file mode 100644 index 0000000000000000000000000000000000000000..7d0de068b1b776255f2c3fd36211ded26e46512e GIT binary patch literal 2031 zcmZ{lXH=8v635>VOk9+5U5X%>2&@RGG&O({LX!lfS`ZBck>W}xi*O+2#XS;gOqAk6 zXf8?>rHG&qSbB_vRY5>d0SOS0h0p^5ZuYGA+uje)Gjsmu%=4U?-^`gLS7&=!88sOI z0Az7kTX%^CCC6tsOmg?f#^L|~UWc=_x)8&f%O%`U^ib?+oIQ?!q!$fBi>T_lXG+BqPsQ~U@IA0_YFsXgShyD;pIdu_6Ea0s%mq!0VZ zH(5VtPLDkJr}E~r(>YPm+pM_xh8oVurq%v{PeWgF*Nuqt-^>U%M+>)TauzEaD5YF; zN@Kzznk!G+VX27u(RZubcD7e^Dy~w;1amnkGWCZ{#KGoPfWEYCzH>-l?51}|$KaSO zDW6Z{MmI^F+4(r^o9_*6nYx{^v8Bv#U|RAP+rGY18*MJ$L9S^#A;8&U#bpBqF72z` zMzJR)k<@JSmRfLt!%-(A0eWzW-S~vz$AJ?7aNNa0(fspb8-G&`Y4%&&V?hc43Iy;X zh<23<@XUYs7SQtO3;VE!N_+FdR&?$4SbEjs{OWvLU+(G4)kVrRHN+j&yiEe$pC6XZ zPRv~WR8PJxHG8Vg_uCSsaml-t_{C^%#(WUy-m$jgyYNQP67neKl1b08S=@a2@+-Aw zePx}TUay;CW}($NviPk@!hr)C!Vzk@4@NKF52W)x)&D}45|W$P!(LV1q$reS$;8k# z0Mql(PIGEj*9{uE82#6bHUXjmjTHLJV)^&aX1#{o|7r;jb?j$9E{s7)fkUjpriu%i zu)aUwi?E{Ls0B%cEs-1h?(PxGKLIV9UlXH(J72UB?$y!jf``2u@-`#_ z>Ml}x0os=;syVE_@{LH{EBiXt(}6F37dMKUa)F2H&&S^+`S3tV%COLj{LZX~UFYqx zp}%yDPfw4eU63=4SPmDiuqQAbL3CCeqs&jXyCdr)QU$>t9r{!UZbbc72%^J)Z;GvT+{o` z*9GM(?e8gy2VVpVp8Rv~*MP;o(DEH3!DO$K7b{qFT z>37=OEcJyE1F9UdERr%v1S8oMl3zg<#B&NLy=QdtRORxg=yo$W!^kIn5-^7OtmtwycN7yh4cwbQ<0?z}-X6_jwi~aUul|*LX^wRVZG+e<5xkd!+FF>n#kjKS{ z-P8loLCYophMTvB>k{EQK|IOxJF-o+(e8vR+EviYR)__r>~kz0l1X(9AGHuUMl$6K zDg*8N*PVV)ySm3R0_JqPD{+A=%P`fYs5;^~VOd%6h`^fN$CGNs&qQq41CbR8;F`bu zyVnN}PA;6adD4fwOo}15b{sxqX^1M}9Gr%3-uAOYDriUJSrWH6o1|#5YX3}cKjCCbg42y## zhspfbSFbqY^4`+h#`Sv9-*c^Tjz}~qeb5vj^eu!)=Qi?by=&?W-7Vqcr4TeYM#_=* zG5s+|Inb&n-_fNx<{$ z6D!*>&)L9AfBF?KGyx6b!?bPCpo5c|J+;xn3286!y|zh~)DZtM{#wBhUJiNm*OB(O zDoE~B8P~&%O8<;CK$jlHA1>6?BST)!F6xd?r!BktpaG-`Q&Yd01R8EgjqnJ8UK9mF zbXZXx;|PxpWTdLg2`aeq_x@t<4msq;YKk}ZKx%A>^oU3$!MC(N<$V|P+)VCY(r29S z>1OhyJH`h;en=QVg|&XDs~f*NfJPx0`B1lY>vGW0ICiASM2q&&a0}QjBaFWRk9i@ zFRKTAsO%`~FUMXDMZ0dXtdZ@kmdGAj>cL!9Gppncb?jA)^prV1@T@aqvQ6Y+q2n5$ z@p=ehK-@LX(@|)W5_H2A8lH!mdsHzBtIjYFEmIj>CJt z^bi-E7CEYGtI@>!7;s5jO-f=w5qXuO(BNHMwy0SK_ zJKo*xHfHa6XhOQ|XY}&nv!3xH08_7O*3Z*1bSmUamth0X(goFK@d+s>;E9pneaGP! z@vJS8guF8){ijTMh1!0myz6vtm&}F{p7f*N5@c^y58M!c3egfiL;~9U|4kU!!6Z4N UY!7l+l0^>S?3`^Yt$l9)7xf(GL;wH) literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/dinnerware.rsi/meta.json b/Resources/Textures/Buildings/VendingMachines/dinnerware.rsi/meta.json new file mode 100644 index 0000000000..0f01469900 --- /dev/null +++ b/Resources/Textures/Buildings/VendingMachines/dinnerware.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "eject", "directions": 1, "delays": [[0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]]}, {"name": "normal", "directions": 1, "delays": [[1.0]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/VendingMachines/dinnerware.rsi/normal.png b/Resources/Textures/Buildings/VendingMachines/dinnerware.rsi/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..e928a54ca0fd2b49bc119dd440ed9b89700203a9 GIT binary patch literal 800 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 Sc(nN008p-8E_A1m)IR`Lhd9Ro literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/discount.rsi/off.png b/Resources/Textures/Buildings/VendingMachines/discount.rsi/off.png new file mode 100644 index 0000000000000000000000000000000000000000..e940491a3c04fc1415df135570e353a04e8d9cd9 GIT binary patch literal 1003 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/engivend.rsi/broken.png b/Resources/Textures/Buildings/VendingMachines/engivend.rsi/broken.png new file mode 100644 index 0000000000000000000000000000000000000000..155b2b7a36e9435928e812be75f3665d683d3148 GIT binary patch literal 1107 zcmV-Z1g!gsP)@6wXU0Q6+Zivg~ND6_xZ zH8a;{FrpC=GzKvm05J+93IhnBFnD-~2;vJUW2FL0gArI>UKW=gr*L+5)?AzUly~2H zhlD7!d5WksXoC?z8&Cq`fl)vb5g+X*+1r1F(gXk=N`&chh0ngZele4PPd?ey3Ge?&t8d4i-(s2k@oYYVSPOv6P=XtDN$b zu~rw{>$oi-(o+8U4^LwO+??(s8|iz)m*M_Bz=9dvfIVE$KDqo_!Pcc5Pxif_ouyLU z17Pl_<@QAbHvniAq;3xjII*OMzv7foadQ2RUCSMN#{+2H=#rI7xk%gYzFf+-%?Xu; z5OIpzF_P+1Ua8ipRBcv-rauniIRV=J6)Ltc*|v5F^Q^@ggsMm8SxX%4I;#BYmuUcY zA8qs7ckuz77BC$LX6XM;7uYciGkj%@i?41`9Ndnty%zwElnEiCyN|kH{q{@zd^gR; zKNn5~;B-MJSGe=g1+FrDWsQq}_c8xhorB#Kvd&pC0m9r}tTkQ30Ze-UKKM4r13=^) z{rM57FU10Iy1)+z#)ndYvRo?_T>%L2@+WoPd%Hp5#hsRH;c)Xr0CyI2JQJd6*cpIf zKeT{SFSN!dGX>!Bu>kHYFh0=jg6L@&!h{wHEigFnkb~V7mN$F5FIsxsh6xr9H+j9> z5BM$Rm1>=V3uhug-4=lJ0E`w=R34rT(8B`4WTw!vK<7QsdHlkW1&V{)HVAo+7!dJU zINaoX+77$YFoYM|FMfQ0=v{F2D+Od6bJ}IMKC<=J!aM+bxiKa)TR`xpRO$Et zVpLlYzH#YIHfmMp0>z;czu)_{%^CxfQ?0g979i!H!UCPw@kXsmaj4{6AOu^iHJK_N z$-ToJ8-ykcH1M7OU?*HgVOd>YV|9Jay+Z8be&sm1CPqfhjrY5+-N{U$EwwuPF4-5i z&!9-0?(Z02Y;3~#T9d$_6)2s=h=(tbFyT8tgO;ZKZ8vF<2KEe5h|w4$NYZ0zakZzO Z{{R_m%o6e(tc(Bv002ovPDHLkV1ng^2~z+7 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/engivend.rsi/deny.png b/Resources/Textures/Buildings/VendingMachines/engivend.rsi/deny.png new file mode 100644 index 0000000000000000000000000000000000000000..6136fedddd88dbbeb330790994266bfcd9366b73 GIT binary patch literal 1445 zcmZ{kYc$&j7>ECfXh=(hVk?^H8G?gms9s!xASiL&N~hvdp%O+~4dN16tEj1=?jwod zlp^l;s_K-Yx>eogR=3uzDhPF3`ei#iXZ!HJ@0aKNo-gnDB{uqIa5?!!s9 zSGB3rdED#)0hhFxr(56|lbubCrnZBT5(nF5YvX^$%fXZ(u;f7)z*2F?>!E;zVk}4* z!bW3nRJz8x6p9u(sn2w~%#MvOWKjAj{W#I)cOrD_ic!4^1kWA;7tg~jsCZ_D+}BDHMrdKPS) zW8ayCvzidc#CvhRMPdo&2_e<3Q5dC269g27A%@1446Ua51m!?u9G?z{V z+YEy;G?*wrI5LlAd&bR9y=C%@U^GTRA4pqoiUf15hVxL}UERX6Z_N}$})*!+t z;!%6%{9wWM#?v_$|8@enFL1UgNlUNf=!uG4QmPFX*jcWf+k0xUPb-qjTPs`Nf9qVb zLwofHYgh1C^v2BU>T0dd)?~xRE?rboDv9*qlCm!70Db|yG*cpj`8;$}n5pHUWEw6z z;9EWCR}A=5C|nMQ$>U)Fr=IU5S9+-HFIJ~-B8Q%RY)^mJ7FA}(?6BsCteB*WM}4HP zw;WnmQ$Fglc5e-XuY2q@Kx1D;sE)J;<}l-*K~0eRnxAkU^a2DiTFR>3uKEcnd|ohC z7uYi&3eazci`zo^ibjg9D_hP+`vY@luL>$){en?=qe0T5cKzA<6->_CC*TfhnpMEx{&M^RGy;yU>{L=BymkdI#$Hx6_wn)h(VaLt z3mubc3R~F8^PyUajJHwB>nC$mvNo+(mM#G5XH+mzR>2c0|ubZ)G}>98m-eE+H@tS^AYt$~6_Eh#`Y% zBCJM}oD$skGV#}}!=5*XmKZt*KDjK7MCd) zm1lL83r5`y;$F;ZU6f|Yx*x~YVnfd>MWl4gO$oZp_C&}%)-kbm7e2tN)YT3^=jMw{ zI*Ri)p(E*Ohd^%V??|Gv{bvz!?-!^^2%!xQKyv>;oI@Zo^bL|o_#67aq<=$8@G7ld)Lu*X%H5##;>TtKRx literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/engivend.rsi/eject.png b/Resources/Textures/Buildings/VendingMachines/engivend.rsi/eject.png new file mode 100644 index 0000000000000000000000000000000000000000..84e1aebf4833bead6def5aa5277b9e246ab17e25 GIT binary patch literal 2105 zcmai0c~sI17KU&E+!{kO8o?ZB%QrPgz)eC`NX@=P;P%gi;J zT%Jq$tkl#*ES1vCtu$9qpIDZnxB&SRhd2MsyqR-m{91B?Q4Y51x3cJ-{_k~5LVw&@``aQ9%( zkqlj%qZvtUQM3-&`}8eAA=i7j`JZ2X(-y=IO*CI`a9EQjEKMkKd&CQ(sK6+ZwDzS- znL=?ef+_%~^nAzTEu9CrbPjyJx4XiBI z^3c~7=a(EHb0jST*50#J%Ljzupgwp0qq8HNv?dob^&b+A3Hz6AjqiD<8mp2gCf|fE z+ehpr1Y$m_8`0u{Vs8*!*1b??R1+5*Ib12;ywIWLo6p+=6`%x7Tg(ea>zCqe*LeO0 z_T+DNR~0CU4;GOJ^-KG`sTtm>JEyLi_yzwp{Qy5=({y?w64BcEC+-=p)DT~;3wUF@ z)!;&5QQ%>HvB5`;SrRCWswM`pC=@Pfn;Tt{9v+SfjedOkOzdH-jdxJ_Ayw`tq#s5K>w6hXfxS%RtPZGs<>I%HII;2$~pPtwv+GK!6c)^+W zok8ALo?N*5dB-WmQFHupCvthV%%R!acKExlpdmj?T&t3FSH`s_w@Skd-h1#^H!bXC z3-KXwvxXk!i1{+KXiOe@qK8bb3D{a2tg0B^3<;XO6*%IP&Dit&I*?K+l~aC9ynn3Z z-t#y#dZW4}kQ;;sc~1D#7SE~^iI>+D>!-&Hm^C&1HQs!6W{O*{o*ol-;I7E7DLH1< zW*s=Q(;sUXA+JCE7st(|rNKP6B0XODCv26t#cO13E=iLM6C?~a=bnE$6uaz7v{n_d z0|zBD#P7Z2zV(5JhO^Eo)szNlHldJJqwClTeQwY;sx#5|`P@$AWG-dw)kAhtOI@by zVQ%f$7k!#|-^!^0Qe%~5gKQyafo?;S>H~HvgGJa3=b1#kpM zkEgNOkX~u46)xuDZWlI1>!dVuF=tjB7o1V&)n3m%@UpO#uI*_{$Yf@6 zWz3ohzyqc*#ZPwoShUPFF#n!Pdid7?i2dpcF&(9`ISIr4nX!~ZF%vw6Svf-b+R#7C zA~qZQzgYOzWpvGeKJ7sMmVyiYt*u5lP(;_|I&gd9m?gEJUbgFZG&#B~uZ4qtjl7iQ zXUT6%S~rL?E)?;{&R^}H+^6o`ZUh{bKpfODYtBtg;*w}^0p!WBIgv`KkoVNTn-JQU20VszzV-9K8+oemc5N&d*$bmAM@EKrZS+}hGw*Qnt;>)d9{>d z1JfJFkyH2`>d7iTGhro`xA_<=7=)!#PBvZ9Oj(>?Y)2c3XiMrh z4p9Jbz`N}X=Dp=VLe;TEp{~u}=(I7p=Q<>&0=zsu{jPchEsUBe(`exWc^lwM-K6dG z1i99{ju9{-Pt;FRaToMLNx+qD)df)bqO&Y=<|YpRRz9V(HG(UHv=v|#AnVybLX=t@ z@7#Lep=i4At64t3kdlq#DJIT6t2IT@g!f;>$ozS9I-o>=^+z2&J=F(s&v3j278Wg> z*?n=rH4cEwm+}u3l|J&Unf?;KB*}ahNw3-f7nyaD(Ad!7w`^R(PZu?B<=v-*|CfYb z5U|}}w((?ETDD#xQtE;%Hgkoe?f=?_08*!5G%tQJQ*O#gP}+tzx<<>_WiX+V&|?62 z*Xw$d|DQ;u-BdC#5{v(2WYOZ430KKH;eVGZuh;+!7hbd3y9A{b5_M+NKAdAJEgwFw zbGd$o?{Yhw^k4(LPzT5`|E|hdP_)GcjMlzo?)y6H>j$;YfAYgdf4W?P+=Fw33hHo7 zqH3OI<8ArpTfF*t9qK9Not(JD6deADyl#a7P`%0`Aw?&YF9C>f^yHDp&eUuF0Gksi A82|tP literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/engivend.rsi/meta.json b/Resources/Textures/Buildings/VendingMachines/engivend.rsi/meta.json new file mode 100644 index 0000000000..64e347ac83 --- /dev/null +++ b/Resources/Textures/Buildings/VendingMachines/engivend.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "deny", "directions": 1, "delays": [[0.1, 0.1, 0.1]]}, {"name": "eject", "directions": 1, "delays": [[0.5, 0.1, 0.1, 0.1, 0.1, 0.1, 0.5, 0.1, 1.0, 0.1, 0.1]]}, {"name": "normal", "directions": 1, "delays": [[1.0]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/VendingMachines/engivend.rsi/normal.png b/Resources/Textures/Buildings/VendingMachines/engivend.rsi/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..b630331843aebd329c43b7d4ae88665f9482242c GIT binary patch literal 1100 zcmV-S1he~zP)bL86o#KO_r@evg_1=BN(lL|oo@$`YjQRo&&-|onK^Uj z%m@KC{?m_U`1mkJG$Mk=AVvcqMqxx@009(+0tG|_@dT9dYXy`BBalj^#HM4d93LMy z$A?dF^qC_#qR?g&Q4!DvBY-xb1f&2)0WKmQ+H+a`Cxg-y0SYJ)2D@i@=iIUt!V1t6 zOBg}p7|1&sN2`if<z@c7S5v?!J}!v=c)xGg|(gz40Igt&4*?;Q>6^DwmhnbSUkX zeac$jVEk1V?Bm#1K%^}G!THTl03(Bqv{Y6khTz5+;DZ_LfB`P3?tJvc1Lbn-{-)aQ zeE#Wg)fFW-09qA8H(&*r{hYr!y=)l54x$V2f1h7<>=&k^&X210IESJl+O*nHEUOMY9W+t=3)eCzB zFxCTlXX{SRa`KCVd^1+x;bnJ0K*;Q5_xt;Kb9Ieu*5S;FJp3K{wzkr`-#_p2`FvR%Af1RYqBqE_z{p-#z^frB zML{N$CAYZ-Ky!059UUDkE-nJleJjQ5=li&L`F?oyAOKZ!O|VCSpJpF<*pGtrfjDn? z8?3Iny!%ScgaT5ruVpb~yj{s_t?SPuXWx(V+_7EG-Y@`RazV*%|J?(?Ts*<)GaFpI zR3E(k90)iFoX?Vc)ze=7KQJ&rE|&wKGdaV_FZ&p~WRIY_07SOWVrn|dV%tMB9(fjk z$5*rDaygck{9|}F9_KAK$YvF95APA6)-$Cj=;(NquA*=b$Ye4^B9ZWFVF79{B)6|m zRFv%ljh^XgebeKLb>3{C!Xf+ojL0OZS9@>I`MOLWyOuiDF0I1;MK7LwNZHY&Kzy+ zoz?+@z?SEKC=TWVdAxuWA1WE87v@PX%-cr@ZT1vzsPiw_@P~fO S0h_P@0000_Ch#FK33J73O0s=$?2?dNsvjWC~3M?)zip!33a%N^m$Hs4Q_3{-wF<9L}Oe0uD z1+WT6Kmt$$_=tqq&}aMaCdQHj2rwdy^e%Dl*@hFs3DDPnN(GCjknt>@H3h3C`iE8# zjb^MEln@^uOBRDiRs^3A2@De#vpksfSzg!+;K#Y;$+c$JQUW9rXZkr$#yH9$w{Ky*#kr z*>%bM(^lpIk@ngF!YT+(-`uKS4j6ZvP*(CDFy_dfwJ@d>#{#H^6$8}O1J%@mya(WL z?EqTEMNnrCR33u5dZ3znpslS9fOI-tJ3whevh?};|8b0>sk>1d*D`pcWF`NWr~tqg zRHMm}rWliZrDbq9Qd&@wMSTJr5XOXc-&!#GC|NkBCTx-M(w-30m>i%q1Q*UmmRE002ovPDHLkV1nV?b=m*` literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/hats.rsi/broken.png b/Resources/Textures/Buildings/VendingMachines/hats.rsi/broken.png new file mode 100644 index 0000000000000000000000000000000000000000..d75949c270bf67c4ccc77ca1af2363c2c71a6de2 GIT binary patch literal 573 zcmV-D0>b@?P)1pw6n!mervyqdl!6ysAihFTmyW%FhD<$^r$6Wd9Xkoyp}TScFM(1B!Nl1*q)QYO zOO_Pdc_2unZ@s6d?{Db}9Vm)o-!(P_TI;K5(1H9SEz7c#g*j?2wQ>N^S|iIctk>&q z7rIu@IZs+4=iD1>=50H0J?08I=KuhuRPr;U3Ft#Us(?P^05C}jA|gmBK}6nhDJ6su zCjzL<@%V6qpWi<$-d4i|NGVgoP7oqJOMuzi5QGqp$W#Y{Ibg_z5CFnXm>Bci;%$YO z*DC5nGzrbVriidXWsZ+`1}gJm0_?<#i6A0y&Y_e_cEEwDSfR?-RqgD4D)arvJKIy4 zpI-^viD$b&M8|Eh``h`_c3`{Rp67sRL=^mO_t~zr9bk-k9dKX*Z6eb`wBjCwDK!FMn8UJ|3l;!MnDGc--(y_Eg~qvN`iCTc^N00000 LNkvXXu0mjfzy1i7 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/hats.rsi/meta.json b/Resources/Textures/Buildings/VendingMachines/hats.rsi/meta.json new file mode 100644 index 0000000000..95aa5778c4 --- /dev/null +++ b/Resources/Textures/Buildings/VendingMachines/hats.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "normal", "directions": 1, "delays": [[2.0, 0.1, 0.2, 0.1]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/VendingMachines/hats.rsi/normal.png b/Resources/Textures/Buildings/VendingMachines/hats.rsi/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..6c22e9ca0e970145c6a020d8b9aa8eaf4e46f7ea GIT binary patch literal 630 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/magivend.rsi/off.png b/Resources/Textures/Buildings/VendingMachines/magivend.rsi/off.png new file mode 100644 index 0000000000000000000000000000000000000000..dc0b3e84af51c3852a511332efa8e84454fcc2b8 GIT binary patch literal 913 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/medical.rsi/eject.png b/Resources/Textures/Buildings/VendingMachines/medical.rsi/eject.png new file mode 100644 index 0000000000000000000000000000000000000000..b7d6d63db7d2c0d3c719ed39ab733de9a54b7dd2 GIT binary patch literal 3780 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/medical.rsi/meta.json b/Resources/Textures/Buildings/VendingMachines/medical.rsi/meta.json new file mode 100644 index 0000000000..a4f3fc1fc1 --- /dev/null +++ b/Resources/Textures/Buildings/VendingMachines/medical.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "deny", "directions": 1, "delays": [[0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.3, 0.1, 0.1, 0.1, 0.1, 0.1]]}, {"name": "eject", "directions": 1, "delays": [[0.1, 0.2, 0.2, 0.1, 0.1, 0.1, 1.0, 0.1, 0.1, 0.1, 0.2, 0.2]]}, {"name": "normal", "directions": 1, "delays": [[1.0]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/VendingMachines/medical.rsi/normal.png b/Resources/Textures/Buildings/VendingMachines/medical.rsi/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..a9c9deb847b72c5d61de658d03b8557aa2aafeee GIT binary patch literal 978 zcmV;@11<%a+x#xuJ+DU3Pe9}7O5p~3&A|U`BH^7K;5)}a z6?oA$HVN$CjZF>;U`wUa0R9KJjg5`I@9cl^E0szXu&GYxo12@@j;>fNQmfV2-rir;hn`{|9s~N5)!Q*X;zL3&8Wd?vMW5yIAa-?n*VrSVS5(eMY2xoXGIk>lIQr zH-yIEx^6N+PX%;O|2^lXQYpWo9sWMu;=_kiVpsC=m!J6an{SC5jqdrK1HBZ$?H=ko z7jRu4tzDuh4FZ0D^Bo9*)!mT{T>${CHD_mMR4Nr_W@fOC)7*R8y=6TW=-Tr>3i#Xp zgXdOGL{Wsb79qs_{~!pk){@O;lL3@ceItI%T8cQ1gX1^=2q6f904XJL9CLnto($l5 z-ouEW0^_!=y>mJ>HH8pOCG+__)>^dIUEB6F1^R5kJ)r)$c6N3afH;nET^FtOJ(w}3 zYx&~}Bv}V&dsUpAoKUS+QA#mCKhNRe;eHr~ucoJ`lK}?KfflT8u8pFIN~MBsG>GGv zAPBg;ygXi5Sa?+~myuE?19+Z?{r+LO4AKdKW(7D7m*?jQA;@O4lK@ge9Ni`Z45JS~ zvlmDyxxTt$Vq$`HI?afm=4JlJWPo9GLTHv^XbisJ>=l_zhKbKU=a0%7@V-C5uoMW5 zVPtfaTCIk)7SHpj*Hd(!0-vNnXHF!Ul#*O7N3~id3_}XDvlI#iqA2P)f9U6da=A>g zSR|j%V~k;JYz%1T1T_0YB0$oDwRm3Ql!)Az7C|6ee3%4^b{ck zvcTO!}GlRJ3*^6w(f@QZE29(@UTq$1HLN29GhhdC;$Ke07*qoM6N<$f=$55 A5dZ)H literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/medical.rsi/off.png b/Resources/Textures/Buildings/VendingMachines/medical.rsi/off.png new file mode 100644 index 0000000000000000000000000000000000000000..da657c04cbee79b14b20172a52490c25fc016773 GIT binary patch literal 870 zcmV-s1DX7ZP)p&0FJf?pHWH---31&PaVxmb!ktTBpc`hEBiQ3Gu4W;$FCe&a<;F+w z1$yJcRV3m>jcrU!n49{OJBygY7#+x%Vt!Ci+YPd9$>nk;m&+O8FM1zn0F!#2e0O*E&0kk67P+~( z;qdT~m6a8akB?bfTf_4_wAT6c_4PRRDL|Zje}Df!C*RoEAd|@;BCM{i5=9ZEQi(7O zab1^(hli)(RqOczZ%N*lF(HM*2R?pWWPX00gM$N>mzPmWVa$NH^Fsh{m56A7PoI9_ z^XH!j=4{)34#3y}f*=?=zT4Z|0E9t+ZQD#tOvH1~P55S|QYqK>eZGF(rCx6$rpwlE z+wAS_p*x-7_;CXO*tUyp+dvZ|7QcV_LjC)9jP%;h{r!C$JN7LA@O__ZwaUfC1pvmf z=)%zcLqZjZq6lLQA`-vXYBh{8WV6|U*hDH|Sr(SnTUtc8y}d;#g=JaX-Q5kuCQ<-+g0O)qRk46N?ad2HX21*p5udAyoDwPW7=jUjx zIXyl7RxX!ON)5z~eG8%};_~tmztf@H?NY1NXfztt#l^*+UIIv@0>&7`vS>6KhzQwi zHV>c_bfdqM2Y_BLP)hO8Yyyx@r+Me5`D5qLfuoohfMr>PL4fPJ0Aw;5e)w^Ut*u{~ znwm-;APfTDy?>9^8e=CJaNoxj8(~BZ{II3mAb+p!x9vD_)002u%OSrC! z@B4@duIqAibd)@RQi^7?8N1yWL#NXr2m)HIR`LL07$PE^oSdMw#Y`k6o#MqPy*DofnX;NO`_TnEwx#tjZ~?N&{T@lSgP^^vhLpM&!|{d>N-;Pk*K9E zD%#5GmztH^Iz=g#xiRPkHg~#<$4ELwo7|eMFH=~`<9LN5<_&4#t$Nn`ztDvUV_~k?C&2c zvI41uO>!|j%RmEBu6HOl6u?OaTvL!-409_Ld!-2g{BdLgLmsK%lpZqLRxSY;Mf+?T@K*b$sXjBDwqti%U@+-nKmdjTT$S z2f6$Sn;Y}w@{WF>Js-14Tw0cL|5A=(Z9VDHfB)^*K%dV( zS@vz$0d#Fxh?{RYqlv}6+i*M{A)}iEtqj0U&#{TT?gVc&P5kiu&&gAy!ZW&{ z!?*M8ts2`~H2^ZYNk%t`50Vv0SITGd7X;r`01%F7bj${Q60&W3tHuW(FOA6=-DD>o zq1iO4l+U=DyeNHwlF(sz>{>Ro43m~IG+0@2zJeb=xp?B1@7-SoU@a4)R2o(<{2G|2 z0SSoH&$ex1QU4=&5{U$MdhVnX9zGl&1#m#Dg3&Em%xSY}O2U2dO=~QOUt6(laG-Q3 zwvDNYdsczir4pr6D#;}9kFS$ohi?45SCMi!dXclkzo#c4R)OR|T!l`RQps(aU?(2I zJay*%-u+d+{^~C&HwPszl^QH^!EtFhfv3^XLqb)7>WeO#rph~vJCc!TOZ77LG0e0Xk)uLSQ(6<;oPFx9q)A+33MIJLxIs_I0Z4 z5HOn#QP>^yC5*G_5UK)q-w8<_;G?y$)HPL+cH-;)fAlNt!HFyE3%gzUI{p{b521}x S0f>440000# zO>Y}T9EYD>Z!5>OM3S~?(#(nN1hxM%YW!7uQPUgT*vgT!H{?EM6cn1FG(%gYt zsYy%tTNYTB9n>_<jG_kuiWfFGWuIQ1> z1Qe^Vx%pB#-x&evD;85%MK@(lnZ))@$&d^-FQ@XgoV7g3db9fB+4!o34hGj$g39k5w0d%mSstE5(|p15Cs zJ_v-xuNSH0OLqZ)@$rk)YOezD@|zO@|DC&+Jg_@=FNGGaSDhE%fX?5}mIbC+$22<$ zbYm3LtOH=)yZ{nEz}V$Z9@Bg!jSrJbz5zJ@zAVdPdU~+)__HT3c>A3jzSy!ft&mE- z4xLrleso`yTYo!llvMIPyMQ<)rBzwSOb3Clr1VQpxvhgWXPR{Te=vRPa5!fY4XV&AttNmW!Rb5Gwhh2ccv# zNv+Xfd~`I@$o~F*Aa1?XnY`|+E^+%4bqRD{e9s~%Q?1d6EWkxW-i{ytQ0ChYQl2=w zw=HMhpC$jJx2E{+$4Xaz=m@Aa8f4#n5D5qP>FJZ6(zzA2=bsl}dL;&StDeTNTmIe$ zap>{h3ZE6<-}^GYbP5czpb3RtaodL;FHj}l83Fcl(b=l9b40U6`*ETpm3(InDD7(e zzH{spNXY$ECH&$bA|5cqp0eC|?OwJQpj;--a`D)cRu$j5ipgc-=o&nDJ??}7-g{%j x3CDEJNhe(QcfTvrgKbx&UoIX8UWZlj{{y2^%>*nE;!OYm002ovPDHLkV1m6t4w?V} literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/mining.rsi/meta.json b/Resources/Textures/Buildings/VendingMachines/mining.rsi/meta.json new file mode 100644 index 0000000000..dc487ded34 --- /dev/null +++ b/Resources/Textures/Buildings/VendingMachines/mining.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "deny", "directions": 1, "delays": [[0.1, 0.1]]}, {"name": "normal", "directions": 1, "delays": [[1.0]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/VendingMachines/mining.rsi/normal.png b/Resources/Textures/Buildings/VendingMachines/mining.rsi/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..336cf05372a9ef4da407fc167485a8b6e36e80d9 GIT binary patch literal 886 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/nazi.rsi/meta.json b/Resources/Textures/Buildings/VendingMachines/nazi.rsi/meta.json new file mode 100644 index 0000000000..abd1d5d4e6 --- /dev/null +++ b/Resources/Textures/Buildings/VendingMachines/nazi.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "dangermode", "directions": 1, "delays": [[0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08]]}, {"name": "normal", "directions": 1, "delays": [[0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/VendingMachines/nazi.rsi/normal.png b/Resources/Textures/Buildings/VendingMachines/nazi.rsi/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..ab3de9566f45b1a5ef2c250d322e44a325ec3733 GIT binary patch literal 1433 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/nutri.rsi/meta.json b/Resources/Textures/Buildings/VendingMachines/nutri.rsi/meta.json new file mode 100644 index 0000000000..22ee707ea4 --- /dev/null +++ b/Resources/Textures/Buildings/VendingMachines/nutri.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "deny", "directions": 1, "delays": [[1.0]]}, {"name": "eject", "directions": 1, "delays": [[1.0, 0.1, 0.1, 0.1, 0.1, 0.5, 0.1, 1.0, 0.1, 0.1, 0.1, 0.1]]}, {"name": "normal", "directions": 1, "delays": [[1.0]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/VendingMachines/nutri.rsi/normal.png b/Resources/Textures/Buildings/VendingMachines/nutri.rsi/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..e4f030005cb49cef54ab1cffad0435dc5c805a1f GIT binary patch literal 1286 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/robotics.rsi/deny.png b/Resources/Textures/Buildings/VendingMachines/robotics.rsi/deny.png new file mode 100644 index 0000000000000000000000000000000000000000..c30eca1bc089069e35c99861745ed685038e7581 GIT binary patch literal 1893 zcma)-c{JNu8^?c{Ac{1K+DfCUt+iqq)lDcyWlGgBm?G9eiJ&F6{u0&KQW`ZQw3a58 zkm?cBj-?$sq1IYEO-ohnG&Ph&ibNwOZO@tay#Kv_-0%H7_ul8;=RW5-_h!4fI>F^M z|p1SSo)z18?NlE)x%0?w%>HCBwYGEtU}c= z{5%~Kmp3z13J&n&v{X1((= z@yqVaXL?IIYx_)Z2qD3S-@m*ZWyKFAoh`qVE;{h*vx3Zw3;-yu zZg0X_lMmYTN4T(0$v5D}DMe=QPOR|ediI?{==G@~&F`EO3V3sg+-ZnNpn72xnRvkd#p-JXyie|`J3 z3D<#A@Gg|@zP*(D=*pr})cA&Rx*@g*UFB{t>N;6Lo=dELV)(SB`mHo>y!-uo2BV4^ zA};jZeNjzqrl23?&&n8idHqG9i9S&P__3!8`gK>m@RI;A89kW`cX83jjc1IWOh{El zGX#EcT7>4qG2`9)TVX&}kIC}nHnItiJsuv|-p=Pt=@ePemKryqZIw=^t&`UDqNo0Z z_do0$n?5o$MRl!o9NmMD{_f%9F$!m4&0Or`F9S5ZdOh_~d|GUi5alA$nNx$e5y&@h z21cD5dZ9}%fwXQ5YQuKahwh%1@4lTVbbc4iKD-S54F>durhYOTW&yM%Bh#aK+rwA1 z*#N4^3cSV3IXj=bw@OXp-kVCNvW7?H4mW6I-e_SK_CS)g}v=GSd^4 zb#-uMWo2gWSd^-^wl)B;EguMeP;L_QAeS#+*3FA37J#W*gq9Y+o-IF%&H;) zT_L}Z74KyhL=*$0t{-Z+2T7R-20TY-0ft^1se{X)-{}FzLXqZ{}cnxh)eDvt33O*49}w^g{}! zCNrKy7USHLioQ)PsH&7SGTvZ3~;-wZ11>Iw$#ST#6{)b-q@qi;!j7;2h7I>u|_7zgp>`bZiFE?5gAbnE1cBJb}@r`DD=io<>m zh>s6U=D0qq~*~2+qZUVcW z)h#Cl?}+t_&Cw9+^E=2> zY@}@j2)^bWn@0$gIGkfov3Y`n|KpP35wCX#$QiAlGF z`DmRGa30~7g*1>dSU}M9Lq!k|dM=t&TksQ_RPj}OKAT^J2XmvCi-B7AZltXzMhMl% zBoW(+j{eta4dzzx?}9!7l!4J80-gqQ2%2H&h(r#JB4~PFXhC8g{z7yK>3^ZG@^1u^ c&0g-vSl)P3Q4W0|`91+>M^^{tnSg8m0C(f2Qvd(} literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/robotics.rsi/meta.json b/Resources/Textures/Buildings/VendingMachines/robotics.rsi/meta.json new file mode 100644 index 0000000000..8ab345bb1d --- /dev/null +++ b/Resources/Textures/Buildings/VendingMachines/robotics.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "deny", "directions": 1, "delays": [[0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]]}, {"name": "normal", "directions": 1, "delays": [[1.0]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/VendingMachines/robotics.rsi/normal.png b/Resources/Textures/Buildings/VendingMachines/robotics.rsi/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..ca90dc624260e010de1b74e36a7ddf203d4781d5 GIT binary patch literal 1089 zcmV-H1it%;P)ZNhn+xhF@&5v2(oybs}MX75|)ug9S{aZ@q@i9a}$Dt zr#Xo%9tIWg+c)U%d!Z9fG`YIS=TMgigg$Sfnh6zF#4UIo*I~{P^;B$r>CbmJUm1Qf#-QR zj-wpPztn{g%8Bp$Se9jgot>Q-0}(=SetypK^0GmqPb!5%0U-oqV`Civ-9#T@5Cqt^ zjqm#iA&iKut*sFRfzh{5FBFSKqfw4148vGGj)kxV3DSr+wro#)RF z02mzfdHVEso;5 z&o%us;Ezw=L)t6M&(9--P+wFO0X=ia$H&QJG9AXfO1WGn48x9CzHugtyT@g zdc96In+3piT|R#Qm@j_*lSZSVY+Tpno84XBjE)+8lX9kmfHbOBtJLfDo<{4sE&v~2 zz2ZCI=;#PQC2rRUwA<~DIg%reN~6($Dm0>X+CNU>HZNlp$TgbF<;dl7iH;sB<#Jg8 zOW)Cb;Bhx6D=RDin#g^kB4FFL(IAuX_QjVS3E8XYn^$z2`*b5YM^V6E)0cex+h8KV z`ue&`+U@P_p2!(F;QM}0ou$mp&HbZ(1_3=hdIBo#+uohaB)m^l5(*&_&-njRR0QOi zE=A^n>$)9l`^DS0O4oP2d_E7r=H}*u38)CjGh7G%Fg2w}=-_WgN7X0EIwky`Zd2qI{ftP8GLHj%S%g3cv}6B4}y;n0NCB#1;Fz>!_aXY z04^>rR9z~SVrXdSUVx-SsDpqmp65}o*BL%I_`B}qORlf4IX*rnl}afhl0Z70P6XN7 z+Uiaq?jQ=Z!^m+QuCK2Zcq)}rZRvEHiHQj#I&c@E{r&w!aELhzJkMibpr}CgKcK*) zU=mRObdiTpbV?Kfd2<1%)qXI@==l&A0ZA+>vQA#v5 zO^kqEr|bIY6ECH*!Sg(Jc6NZ|3rSoAn$0Ey0|N$dv)NR>w2rzqSb1}5{Ay>UW$4m4G$0B%7=+<+qBzl`uqC{g1~qwNj)0Q=%YjkVQlY< zi;F4`PEJl9br2XC8M&1JVBTcA5zrs9@+BngrH?QSDV0iWY-|_=j3k_$oka-2!omV@ z_f)eii&CkCWmy!9MQq!qSS%uhQ0=mxwA1aSKijrDzybaOqs=qCQ*0N500000NkvXX Hu0mjfD3blE literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/robotics.rsi/off.png b/Resources/Textures/Buildings/VendingMachines/robotics.rsi/off.png new file mode 100644 index 0000000000000000000000000000000000000000..2ca864c0205a849b6d2d2b1125f020fac8a2b66a GIT binary patch literal 1058 zcmV+-1l{|IP)Pg5CYHha9vjglyB(^ zAykkc2(T>60K2=pGbSR0pw((osZjF z-rgQz7#d^W=!IgjXf(zplamvIAW+#DNkBGMt5vGi@xfnaRkpXc5kjaZZi;}e+^MN4QmNE;!?)XQ zq9_{rGZG0%OQljYn@yu*uh(OGdKv)7arly+;KzpnzVE9(j^i*>uXF$I9RQP)lK_dD zNhHv0HtF?xubAr-IKY>WANd7%e0&5@!X29d-}i^Uk(_bdeBXyA`0+aJJ<3KcUWS(C zKbp;E$!4>OfnI9uc3T0<*ztAXhjBs9&(FV`$aAJLVB5CQphP%l4+-+6CPk<(Uh&VY z2!%V&-7nTBGAgpiW2SZ?d_{b8X5?K;8laAot>Tit8oSaJw3VrmG|@OgG&)U zXG(-Zh{QeqzciHrxu;8$I&d6k=--}ewUjScJ%D^Z55U#c74S`jFCrlKa2>qAuz+)a zZ;+U4wG2>M&gb*gzJ7hGTv*`Ow{K}Q8ZRfHYd|ue{QQ~0Kkc&a&-d@q=OxRHMgvP* zzW*2tJ%Rwh(a{kAp63}IUDpNR;o(8mrPFEV=jWdVNZN#k2|R zvX43w7#R>k;JPlkT#kCZK5~Y$v$KgA(Cc(xpMBz?R5o~?$Kl~2fT4jnP&@;jPKTM9 z83VY}>8RLpjY%XRQ{%cW>+9>vFO^D$26SNE?{>R%yWNq5VR*Zjrmjefi;Dw!F|lnM z-}iAGhcFC{o09b7>5N}Wgb>E^zO%EVbZ~urJuyUJX=!O70l+-Tjw7I7WaUjr_LniD zD56|0v%kM@5HLizwY7y1f>NmjJYCf+%c5K^V_6o(ViDW6DHe+eAym5@C;RFBWjx!q chrj{;2K03rhgHKv{r~^~07*qoM6N<$f(xMdUH||9 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/sale.rsi/broken.png b/Resources/Textures/Buildings/VendingMachines/sale.rsi/broken.png new file mode 100644 index 0000000000000000000000000000000000000000..50d487e689ed5bc925c911d79d2cc6dfa6a1b85a GIT binary patch literal 1709 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 W0%gMji4%QV0kkv5>4n4j+kXS%O?RsR literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/sec.rsi/meta.json b/Resources/Textures/Buildings/VendingMachines/sec.rsi/meta.json new file mode 100644 index 0000000000..d62b3d9fe5 --- /dev/null +++ b/Resources/Textures/Buildings/VendingMachines/sec.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "deny", "directions": 1, "delays": [[0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.3, 0.1, 0.1, 0.1, 0.1, 0.1]]}, {"name": "normal", "directions": 1, "delays": [[1.0]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}, {"name": "vend", "directions": 1, "delays": [[0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 1.0, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/VendingMachines/sec.rsi/normal.png b/Resources/Textures/Buildings/VendingMachines/sec.rsi/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..fe3fbe94c99df5e461cab0c79981bed2b9435c35 GIT binary patch literal 1194 zcmV;b1XcTqP)%0w)Bu(BI=6!x~H z&=wC;yeJmwO}4_eH?apPDis65f}3q3O?Gkiy_tDEj5FPtootdy^@m~Sy?O8b-~Ye= z|KD49#Ue(0)2|XhSF6?kRq=%j7qnakmI0~NYUFY`gb++mPotkbWA>vD zF@zwW&$GF?nHZn;082|tcmv@VDW3k|$DI+-Mr)5k;Z4T(j3K1Qd)2S`{o+MT(?siJ zY#Zt6k+sn?B-VF{=Iq>hazVpD=uM_3FLI*%C8iM|3k7moW83!j0AnJA@O1jifb!?R zk@Bm(Z;~Lw!nW4%bsoc4{5d;=+3Vpcg>BoT0V0S9WKbH728~7|(Rcp*d0xA7CvFEp zKwla>{A-!t?tg`}Cph%eb>#RsZofaQE8UT`{{W5VsRRf#Xf%@`03XlRutJ^gtTq z%$YL)T)uoc?u&wQdiq}oAq10?lL!$mP%IYFS|g>zb=~a&vOEweProNY8hrM}bs)?J z+qRKX;y4ZfN~vL8S;}9m5{B~R$rIY`Hm>V(=vIt!hD9-aYzjqJ97F`v74E7zTf@ug7r^Du=*-mYB2Sv*7Hx zfJXBajpnIDO4jRj>h<~%oRkvNG}+wP0Kl>=_T(*&7Qau7%k)5&WCh`1B@7|zEPj49 zw9GK@lp>$c1CYz*c>RsH_@h+;e%U?1ZiCQMiaq1wtgf!2wZ?HAy4^9-x4<1|!A`|A zO$vnq?RFc_^C-RZ4y95F-}f`eZ%d+V8dQ>WvxPN(hnYW8S$L(GZDwRrj0TF^r zmo7brn##1a*Xsd0NW+DN1sum2a@peIV&=lpf~QZP#xM+S-@XmNH*}HcymStrsg3!e> zb-zx6vsa^CXT%;5hU)!Ekcn~&_&{k6m%5)1?iBe=n&A++==3-tL})S1SmDZ$b>Y3kwSXl*{GBX4`fTKu-k*p%^028r!x93otY^MntyaSrLnf2y@Eu46q?Ab64lRV>_VyObvXD}8cX!v}JCF(p zAs8PYM~L=Tlg(x^-+MqQ)d~C7$#c0J08tbrpPb`3xUQQ34HO{O)zuZ%YL&CIGn7&s zA0Pi)sZ_8mtHbZjryvYNE-o(cTP>m}qE@R>uh%c9rlx-H2QZKd7-JApQm@w$LXgR1 zJ^@%3MB%r=13-H%uq=y*MgxFUD#Zsk#UFqE^*#VnN&>BMT^E3KI?XS?{>JCef4>hv zpfw*pencsSF$TwRXt!Kv+r4=cT9(Dc#01yZ*91X;m&@UK9$^^v^?w#1KFvJU!NI`~ z?UhP}d_GS$n?-BQ$jAslvJpj5^fEx9P#~2`@%Z@2;^JcRers!s>FMd@IkrnF5kj!N zz1aDILsDJ4foM*vi-Re~Vk{{9}N)b}3fRS!TE zMfkp-jI1AZKZRk~Q{F-1f2!^?T@*#h$YX#Q=J4N_>hNsr00000NkvXXu0mjf Dn7y$+ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/sec.rsi/vend.png b/Resources/Textures/Buildings/VendingMachines/sec.rsi/vend.png new file mode 100644 index 0000000000000000000000000000000000000000..22eeee1674354ab2fe7aac6f51dae30455cd19f8 GIT binary patch literal 3277 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 XN*p56NF?n900000NkvXXu0mjfA|xJ> literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/seeds.rsi/off.png b/Resources/Textures/Buildings/VendingMachines/seeds.rsi/off.png new file mode 100644 index 0000000000000000000000000000000000000000..1bf7751241deb1dfe9b3a8f4323c71d9d98b4455 GIT binary patch literal 1417 zcmV;41$O$0P)QG5G|e4eO^`H z`M&C|YGI3Z=+GhG>e+W`$B!SE;p^tOmku60=*J&_;QR2;L3clK;zS?BCIF8-`iQ$3 zkG^>da6sbhUakbkK>!z!GQ{H=%6Ee%<@E2v4`Md@Y!d)C=j02&u0QL87_sIKBGDK3 zBkyc%0uTS;Z^fEz55U~wi!T?pHn>fj`NvVZPro*LbMFD%!|`MW)WMDU-~Szv1}cUj zG;oY&{HG}-!37cxTr(>xD=Z%QEn}H5MXdl(-5!9sfhm?+R5Ls1^(xw}7Ao||)Z=E8 z_WBCaNEiVe1k5%VHCzqM3d4hzHUTgL%Yd=x7t7pyZx@HLW2D5LIV1^YNYRfRx&LFX zzC8fd8UTPZvs(+Po5yv~yBOktD!v5(wE&=#7;sn6jFS*gbT5TUmBaIaW6HH*8EBy;OW_w(|*SGjVf0l&-f zPnwzj*I!tF>^DW%3R45k0c2YVOd)5)6G;+N?KVjg?PimyR*RH`Rx2SA3)ENlf5frZ zr+E5s9!QW&EMzT5ahw&i2@JRzXb;8FTlOL6^^Ycu~79HP*uzWU}ebz+HN6h1qB2A^`0faZ$c{CWQL z+&%pB&1L?oMS@%fkX$6tD*im*0Dz#Xhp5v|!W}!;ae?#Q9qgN4#RWd^&T{+oRb1fz z|J%olN4i{DR(Ph`B*FB5-(mfh=lZiiCk0_0Ebflu%sKVN4s?heLhZoa@DpS_!R z-b(yA*An!K1f|ctG7G93$ORT!c|*tuZ=IWsRn~jFeXbJ*$-I5;CLCwZ_wmZBYg}Fx zc&cV#Sb{W|1-Y8cfRz{VgePNnR@OQlI<2)*jASldYq0AkWv%MK`dY~YGH^T;gf$@T zOE4iFXH&>Mk_6JV&J5sOtEPbn#_6`u?FlZ131EqY2XmVk2uWgry8#JYJr)vcF(=pX z^=m+iY3NPB@P>dnh9e|Ag)n`}^M>_6dxhD21JkfDaQ5eOgJQ0(@y1nNeMWZ=QD1-z zF;d6Ydn91va z`al9;Vc|3f4%|Kd&lgU|Kow}>yRL(RT%L;1(Ca93gE}B*d=dk0Q4vLbCtUn`k&9n1 zjs-A4oq-uJMXt<-ot;;SEkKHzP{)^KVz6! z{vckhi&D+O@OA*S1PiVMMQSo=}j?ks}s#4XBppTvN>M_s>n zw!Xu*+pd1=0<+Oe=^^f!Mh$u50$FXu*jURV;=@yXWc%kspNfYv8!e67*bBJ%CV$@o XKaS0C*IX5q00000NkvXXu0mjfYTBD$ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/shoes.rsi/broken.png b/Resources/Textures/Buildings/VendingMachines/shoes.rsi/broken.png new file mode 100644 index 0000000000000000000000000000000000000000..95475da791c76a57fdd7459304fa71883b4b7240 GIT binary patch literal 626 zcmV-&0*(ENP)!VMeUz;{TBuvV`dNLUyakRmbQ z6l)R`MT(THeE=a+Gvv%X4u2bXkmvc$Cwl~SU2lR)cjK>82qA;OM&7(u>1gF49d6s2pnnu^NEE_oX=ieu65=%u#KxI&B%+QK-;#?{)({>1Cvu=8doqQ2QZMCP}v_^1x^QinQa?)$rM!N z>U+6d;vKLZY1>v)O)1rFRVbySzOf99u-onQ(aAZ#an1*Ac#c_@%>1XuwU6Uq4lKn( zIRF4vRiUaX054Oa>Plwn*ll2(1G60f0LIvW1s5ZXv4KprV==iAsc58>kWvmYTF=uq4!RIm%l>>l#?JK>hwr@}I!d!-H6txuZ%Wt#{gU7M&GC2j;rS^0>Idw-< z(D(gFDNR%Sy(p0e}DcIr=Ar03q%j zG0K6bBykSB27(UQ3AHvBy$hDYeis6c$LU>h)d%W!yG7skBjW(@AFWtdA4_eAiU0rr M07*qoM6N<$g3LJ(IsgCw literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/shoes.rsi/meta.json b/Resources/Textures/Buildings/VendingMachines/shoes.rsi/meta.json new file mode 100644 index 0000000000..69873a4421 --- /dev/null +++ b/Resources/Textures/Buildings/VendingMachines/shoes.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "normal", "directions": 1, "delays": [[3.0, 0.2, 0.3, 0.1]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/VendingMachines/shoes.rsi/normal.png b/Resources/Textures/Buildings/VendingMachines/shoes.rsi/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..d7eb0724112714db945338a5f8725193fd35c424 GIT binary patch literal 753 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 JPDHLkV1kBo+MfUb literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/smartfridge.rsi/off.png b/Resources/Textures/Buildings/VendingMachines/smartfridge.rsi/off.png new file mode 100644 index 0000000000000000000000000000000000000000..cd5721a4ebe219acdd0f30ed9657c147b495bcad GIT binary patch literal 821 zcmV-51Iqk~P)@*m-3g~4EOrNsSy9{}lgyLK=b zu(Pvsr2>wRkLmaOzeWJy@bK`D8|?LZOaI^N_42Ya|MB$nlpqL}CiZ=wPN$RCpTBzv zuC8{D5?(!iQ81MR1VO<2Pp5g^wFUsCHJ7Qz7{d*v$S5A(ryu}VBdt=i0N7F4R_WPf zf&~PKspw6sMJj?+(yRtmWz<@ul}41tk)-Tk?OMp8W(0yz$}VvVq=*Q^(aczO{PhcH zw>1;9iHI;6U*LIO{>>P}%~s>DNEZsQ7QljqxaAO&vU#a+Cm{{MVp&fF)WiTk`A2#J zBA|rt8x|K!1BkzdYay={V6!EFoxVlLI=t?UqjCy{!vq-P&e<=V8TYaIcLH3uNNvoN zY&ICzg-QXAGfh5moM4QheWQU=a2{N;wY7!!`3vWp&FU7Tq%z}W-}AEuttwYmHLHr8v9GRYA+tKba9;DPS}n=VcM$ zVrcSmX{Wr~&WpRdyS3yWKYS<&sTGg~p)m%h65(v z`psLmx3_EkD+PGh5^M^_P+0iZT0{iVacw@>+uP&yo41Af+1c4@0&EK3z9u-W=}0)& zT+GsNW5LVxD9jq_e2mjD`Rh6XiCM?40lm zQ4|4p3buoT102UeM6lLkt^Mt#rzF7leI7lyw{#DDzj!1|)08j_^Ci0oB>|mIr+Ca> z5vyKq3IZ18@TWp%yakw-+&NwKs<3-00000NkvXXu0mjfN(74= literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/snack.rsi/broken.png b/Resources/Textures/Buildings/VendingMachines/snack.rsi/broken.png new file mode 100644 index 0000000000000000000000000000000000000000..16269f09b774ff653967fc9459f99b1c550af8b7 GIT binary patch literal 1573 zcmV+=2HN?FP)xju9W9A^UO29 z=li_;o)@75&0l)U&%baU7ehoa9B~6cTyaqx5I}Jf5<~<^1=KUHfEu_!tyYsFJ%!Bq z`FVfg{EwM_YKlM<^F2g+z#JFA98^FOa0Nm{QY;PG-u(nMasUY`!dL!siPw$|6oM!O zaC+p73r67342;0^p0Ao&XpVTsF;Se9kPxGV63`MsG2ES(Hh1{V=LfiT<9+~PC%62t zzk!Hj1Sl!u0p@~Af>Q!dK$HxHfd}A@h>?mCxB$){8hupme1s157pdw1z(G)+h$BEy zGfaiKRs-nCrAh#NqtuI-U>YD8=EBn_PH_3754jR;190o;Fi7y(0i@DGM0myb5D7>F z)6aclt-!mG$wSokS z;kajsVFHG?WgIR1w~#BYNMym|^B4mf$Pm+k(9<=I*4Lim zUWaOx<=I*K1_xQ5orR&H_Vd)_Br6w&`P*9|*OtSMvF=2LAwUe3EN1m6qP)0BeQXSJ z*H7hu&d$s*fB7#T>iefv_w6Mpjw61RTlr)&ms`VAzo=d2ml8)9?EgdMyKO=RR2^9>KgqOqI zZZ*VPxkL&WqJ~f+#rcH`&x8+gF=_C10e8n$IPjQwk){p+Obzpc$UEcXqEz0paP~P%o1+gyw2$8 zD4}H|ceWPYc9ix0gL= zbF1z-GYlTWZ~_rhflIg7U{JtAAnn*AIyNH$<6_caI_P6M=;LD2;9}CaPxgTKr(`Ef zNHOpg z{m$o5g6_6sfYH&jo|+Nhn1Wh}OF}9T_`#;ri%Bb6+r0;*nOm)h8}5RH2{*3a>Zs>` X#OSVK-`LPT00000NkvXXu0mjf5KZXj literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/snack.rsi/eject.png b/Resources/Textures/Buildings/VendingMachines/snack.rsi/eject.png new file mode 100644 index 0000000000000000000000000000000000000000..b810de9329551b5398fc93a0b59c3e044343de7c GIT binary patch literal 2608 zcmai$c{JNu8^?c9+r-|~2tn)(ilFw6pp>>KN>Nm*wkfq$CAI`zq-d*jP(?;e(c0cl z22mshDq@LO`=0lme`e16$GzY0`QAV7^L);^&$&0dG#4z2uy0a+1YEGwE{X zA0!8HL&Ma&Cn1Nld{pc!!aW7;g0SU?ykn`hetKT#4uhWjCMwl#qcLWq^0T&vuv0il zGxuGA)}Oi$ms*;bCC~VH_<9K`w6g!VD&wz)#PadRbCw@A|d=Z%|kAS zfmFyrZ^9cc8b0rrF}PiXaMe)nf*$=L=Vq?VUH_Jv1|t0mEttOC)1EfhJV3j6#U^c~ zA8Pl)P~e395ww2woVn~5MSJa}^9<00j3EipDb$6H!wTzzOrqx|^65d;bs$Fi9&H^1 z$|ydsBWe)^>W-0pAvi)PLMup%U!E@JaYk`-Kr~H3%S>HCrF_*ug{Q}fkW52dAc&&A zo+bzeA;nc0KDjgat~gN-=fj?><|puY6m_LI(@8~IR8m$>BS+1rE6|4R#~f)FATUCU z&iLToV=M;EUY69?&omajH;d1c4|p%H06o8%^QdjBKU4#8WA>c?Mdyy{fn$1IgJ(V8 z6l@RkOzvdqdWaj>(>El&CsU`EM{ zFS;}^8E`^a-y=c9sL1C+M2J8}c5Ls*gRxhKMx~!@TFcc8IQB@{lbmAvVep;4=(<3T zEZO})r+Y?-V$x;HOnR*JL7$$==E@ncg=-8Yo~vwH&zk9hwNcD|di}j5Cg5~E{DNrD zY_oxl5J^;N6u>f8XT{#W(k_Fs)L_ucl~=kg7<6uXd&d>y2e75S=!U?p$)IZJ%n3)+ z>n&s^QZu;!^I~vR*g@aScP8YkxgkYRGG;k=c2j#I?x<@xJFakhebb}?xF|hDFt4iT zTXNUVY;>0yhEn<7fU^1T1c}nC&al4wW0TzvP9{@mu5l!IyAk=3GhQ18?-G)hKwwNHz%?#I8`Sv9*hk0Y`cx}SF)ePEi8anyO7BQ6m)SXnWV{3(dfZiZYd)D25y zhpn3(VM9wNIleGdcs4#|Nw0rvHoahrh1xtk&J-6wuH=P4=0^g=2$K6tM+;<>D*KmS zOt$>oxm5)9lQfvV>popC$t2RLX~}aMsRz|+LQ8i(6KVXxI;qvAvf(XQ;Tq@lGda#w zmYLStcEkXPWd1m#71Eu%a3W85qm!9QN#!8{GpSO>pv;A7NG~>K$1|$k);&86v)9L-;KH+0NA}$l6sEJ2svhov{6L9fX&JlnJ>9dTWB{dtX2HY zDptK3lJt0AcSPX090`A;^SC!4hO#Px5@ggP+f|`RiBZkAl-e&^B)&Q<^4x0~gU9I~qDN_U05UXl8(4&ZAiA47B;CckN8RK%O~*Gj)jV zG2ily`Su)J1U#D+&R*{__^DgnUv2w_fG}q)F}5MyJ>_wLYEc_$3iox1C5-g`k%+gVar&8S>^!y0;_^s%d}?lq{}2 zCWR8h2%_!^RFn&jwf!^#q=P=&c_@rK#r?Fjq)85X9lPpm&RAZYY|VCx-BOkGLs=43 zYD-YW=2Po(RSe0o{y7a^9h=1$I^g$OQQ|@hb^`%dwj_j~S#-hZHXZUJo|!)DAO0d2 zQR`0u{IlQON&<_yYMS!Joc8V;Yfcv!l(n1lP84ysjRz;@1gjC!Pl_nlJ$0PaPIzc# zdkyigowv3{nhbe`uFuaRZvF9%ELj&SdW`UkfLyQhr!U}zvw9A%Y?TVdF{+tCc51@P zHOcRLP*YH1&f$08flz#!e(Q~1(kW2x)|tyYeK!p|fUwIA%8%8=^cdL&Kn>jYd$Skx zEmhCq?5@3ame-D4W^|nSz)kLIrQv+NguKpwBM*%H$xEvx^j!WuP6;4V@ zDyE3J;&gY4)hnF8u7+?U5~{!JX=|IloqJMlaj1{`?oFKH0h-)@iYhsvu>d$~Dvy36 zC2e)Mesdc!y#_erU~JHULu!(7JF;h^$OV_p0e!Gm_Fbx_(JYN7&R@c?{mP_N7HZ49 zms8UE=0|+RHt3sccknyS0p}vU#^NZ|r|>;taU4jm4;gPri*k?OYN@_su)VsOf;q(( zE0J>%4fwb9(hL0_JQm2YHH-6ueVD8&4z>%PQW|eyj`rU`# z!pXmHWLJd0JlQ(1!GHMdq=$7!%Nj9-eJU)4n>ST(Wnk_RyVT>0z^wl>xNi%Elp z{wq&-U;;I&>XpZyeh1ZHVf3FcH1oUue|rC89Bm0_#KXsZ;P}ziM~f?w#NAsMN9=mG z@%TI{CRhe$DdI*q;blv&s8IrHVqnwPzhXb-znE!zE{65Hzk4t z8YtYvLLRRCB9~Za)$|5GeZB6;__5t`mj`_ZUqx|7SqE^wpTQ;~MNQd3!%W;JAaUeZ3tz FLt14E2Iy*mWaC5>gjfN{p8fqhcX!+z1g_=*pyM(!`A} zTr?@cEk+WE#s#&I7%{O`l+-|rO%ysU2%VYEOlQ9LIe!=L*T&2DnNG^HJkOi={LXpK zRg5`DkNw7vJoE@wB8kMv34k0}fdK)5X=#y!svz7+1(9IE>C>k*O3z5)(W6KG&?66X z&t0FPC`eyI(T6k^kcJSb1qaX|RkAkBFJ2&$AwWw=eDvhYJhLz{5@IC4Ew|ogkrcy9 zNlM1Q-9~3&8o86C0#j*dNCpIjfkZ<^ZSd&q96#Q&o-?QZ7oZvEmaj}MAep2PROCWh zgj!4w+=7CRBEbc0q@*e+7D@86#YwC}q(`Y517Hxr$L6L05t(EN(c&xwi9;xbqoNcU z1(Br1-CMVE?EKrjwqcPrlbV3a)dN%wki>U=38_#^l8A!IqVCCh# zXe=@k(T?@NXaJS&r=2Zq|I{)!d|VWSl|1~3C7iIYS)dNTvvL@Zmj#t7buy2(ek?%d z3V|>|$%dIft>fHDgG|YW!>?Y416oWm+cize4^B0+&E!?|)ytP;D0hELiIp{ZQ*t~HQYf8hW zi3v7OOwja$sr7wI(~wFwo;bmwr`GWK`&!EXaradNL_&?EVlM6Z0tddhpM^bNx^n;h z^E;3WYnNL#PfT*=wp)4P$t8aNe3wDj3}8WVLpb^Nt{#6leuD2!_o*thQ894f%lnWD zZ6r6pewsr+T*to8nH*i+$DYwKKw=w(IdS|rNc{fz9}xpYkN2M3%cg_Brf!7Bg)<+S z=CQiO{CvaS$(0WRpsVqY!i%r`84Y`CxNAH=I(&q7OQjdV^1?-KI{Yq=&wQ9)Jb!`m za_`y!WT*yJvoRa0Va?_VY_osc-$*4doV$geu82qb<}Y8rfp2Mv*$b7u8&;)%TrV&Y z!ZuZjhQ%cceB+Y~*ye?E@W8?ap7VMhc;-DGduu1Zd?AQq_1XafQCj0777^Jb&HOxV zt$g~~otPf>0wu)#OLLt6+7_P3Mc$tm_fC%PdaDAkE0h2SsR4H^uJHDa+u1R3mO>%5 zz^i{>%k4K_VrG5^=RN59Kx#~3StWo}u$Kr`kT|<@8?t$8VJo%?nd>(c&dqJ1mO)qk zGYHIp49(ssOsdb6C;TBT0}bhKiBEQK;E=a0Fq~Tn4>X068EbX!%Y+ zP)L?L`IVC>649eldCCQx+`WA}7TCri;PNi93V@6xhoeQ^Kg)ShK;5wWQFaJJa zOnQ#w+I7pVesJny_d)h()zVWzZdpMTbwhTqHG@Wkb!A19gLb$D1m?)awFG5#+cCiO z^e)%TZW{`SY_M9YpqSyDzlPMHTie|StqiRWOV M07*qoM6N<$fk!6yf(({o7hTjwVK)8IdkrrJLifyarD?{KJw}jtV9xtkrMzp zumS@D0y8im2~|P3jS3>cg43r@Yiym-!J|iy`qd+^aro)yC<@Y7Q7k|j3rIr zkSbX_F0KDTBr^a5A@TT$FZkff?V}(@0X+Q3qZUaqOiNNSw#`P{VH&xOqykgv=twpQ z3L6p~6%E1be@=M!o;x^u>i+<`d9=K;cm>HMg`grA(jqiqdhh@W8j1uLu#u9gpjafy zhwF=2g-DMrH3xt}1W!!%10piX5Msbt2oi@-3P(jLG72I|i)WXYId<_!)|S>8GN}ou z>>fbX29kKwSCI;}B#9`PENXen0g9T?B5<8DnM`)fAO8i!Piv?IiLo2iDM)6gAv;Wremf@xf%NZ^cR#f9pZVMNEp9!ZJ9!cdw0Sb3 zX~G1ZMMffqxeScLl1e*ndk8CMdYpaeN|oA}$9E5N7|5IwXfAC#W99jC+;?FgCr(aa zeQ8g?M**Oonj3Rz+Zo?~a**SfE-{&Ocx88>uLB?nCAtQ6+vC9(&d(SaC|7O*fJms3 zRK|IQ2-VccZ73SN!ZRnuHOUzkl04CI|hz_w8(LoX<&LY0JIwK7%!hY zA~wPz|bkXP`c?r}gLE1tvmUW%YXTYBE|1t{?Ys^EsbK#_s8WI7&Yt_v{BJwnPXQSO zW`mn>3hbHH%%1+@H?wjStu(s>vZW{8%qoGS-5iC58wVgYA-$D=f{=gB%-HMdD{h?JbT~(7TCriHcgG@oak{s5J`G7^XAZ@L;QH|2goT|7I01}5u{+{ z{s;K_t1qDj&m266s`&ik1tNmTMDCD8)p&iFdl!TtqbGCV)S2&CU0tQiX1QBmP_WIJ zGv87XG27**zn({k!^_L8{WWP@up!39IX4B(+LC?V2VT)9J_EH zmIUsITBvihIc`b~l%&+YEiRKO7Tgn#St~X`7^}k;12jP@!L{{`Tfa}{nfg&&k3IZ| zU*3PYy^uYF26`3bfhnS>xy61k8=VMit3{K8VP_O5 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/soviet.rsi/broken.png b/Resources/Textures/Buildings/VendingMachines/soviet.rsi/broken.png new file mode 100644 index 0000000000000000000000000000000000000000..5d084d925dcba6cdccff00d9af1a0174e6b9592d GIT binary patch literal 885 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/soviet.rsi/meta.json b/Resources/Textures/Buildings/VendingMachines/soviet.rsi/meta.json new file mode 100644 index 0000000000..ee16cfe604 --- /dev/null +++ b/Resources/Textures/Buildings/VendingMachines/soviet.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "dangermode", "directions": 1, "delays": [[0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08]]}, {"name": "normal", "directions": 1, "delays": [[0.5, 0.5]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/VendingMachines/soviet.rsi/normal.png b/Resources/Textures/Buildings/VendingMachines/soviet.rsi/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..768870dc78feeae26aa5b9ccae74a676b35c8329 GIT binary patch literal 795 zcmV+$1LXXPP)# zziZn-6vw}^6DWoVs~~E~W=gkCZHG)L?GOz19`F=!C;t(~e?+Hb=wis8fGC|hd1{x^ zr4%h)oCYkB6q7cM)j_`aBBlYoF20}o=)HUQ&h}Z5=&@@@vVI+Xzr3<^=a}Gc z$>496+oixiH?9HKj&z)0il6BK=K15=ZDIJc2RC@}tBFrrH{>}c`N9Zze|c3H4gd$P zjptTfd!8wNjryQQ$4Qj=x=MFT@=&3iaX(S!>qYp&2;kM|IA{$6%n%#h8U_G>85}IU zKsn#4|Dj-na>ji)gWkH%m4nfw5MLPq%y?jJxZee4Z{v1KBt%P+pEJc9&p!R#Lj)&h za0We6B*^$u2k^!NvC)(jPs_qz?K!~a$_FQBq!riUOP6Nh#bMtX2KOt@!amWb+6oal z)g;7>bq2lr6=&^yA3s)?uZ&G*sFuMciW#P5u!cyRlNp`mbsphFTA2vMlX85o3Ik1Lk3fm#{E3ZL~#Eu?wCm`6LJ2 z{``^oV5*k&Vh*U1uXI2e39WWl*F0~`@pHbGu1dHWsfcgH0ms|FbKMS`;0s^sf4CY4 ZfPYV-=LK(p!`uJ>002ovPDHLkV1oDpfinOA literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/soviet.rsi/off.png b/Resources/Textures/Buildings/VendingMachines/soviet.rsi/off.png new file mode 100644 index 0000000000000000000000000000000000000000..7b93a0ce6a12a40018dd02da5ce130ad191a8263 GIT binary patch literal 613 zcmV-r0-F7aP)f@r{9`F5fe8$OkO!^}$t=czYhoSK1?##3xK0F)IO(^8TePw-AuDdvCu_CK@q z)uzX&83@8P%LF=5%`$%i#XMBqVE$i9eo$k~40!MkcsX^8gR5sOj%A@)CRZk$HhrC; z1}eoo4sT5Fd2uX@*W(8!FenM1(F~}%frZhm2lua7)eZhEICKp26SyEDpn$l#z%4XU z6V>%xcMSO3&ToPR-#xlx&dqGYUxgT0wPu;#=Ly1hP9K4E8o+xz1BW-JSBSxma80Nr zIDnPH5H|PjqZ_Cc^Vru7;IgwqUk1Fo=!{c!;}5*FQOBktM>h~mEp6AM!Fj|i!s^y6 zmL>*K-I}G3i3kTcYM``sh7tg*oe9IM>p6f?1FR$UBiYFKB$~F3;Y@}( z_U`&Zz$&K!S54a%n%tEn5fjaCplREfn=f#|bZzg?JIA44u(%Ag?k(cPylN+780f|Y zCGnM{_M1=}Mi>2N(h~!;76d5!0MMJOIRJbEAv`vS*uomx00000NkvXXu0mjfXnYdz literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/sovietsoda.rsi/broken.png b/Resources/Textures/Buildings/VendingMachines/sovietsoda.rsi/broken.png new file mode 100644 index 0000000000000000000000000000000000000000..00eced676c10ea67c66d8ad09302bab5f76c68f7 GIT binary patch literal 1015 zcmVr?s zui%J6o0o{1=ARdT^ZFZaf;ON8qzgs?1w;aLP~gSC&rzD5fG$deZ!a!Vx^-)a$0}g` z)6Z~#hx;B!j>gd{F{;9Us10I5j~0a?pg;jl2ZcjNgaQH5Rd8{UK!$m&0t9HDJ!>1z zh0?(za9xx(IRr#=S5}V4UaivAy7y9Nash#KVte`S_E?^G-hOw;xB1=~0H%z9?<45R z1&BzB{P97Z-By!Jvn3j>L*`~r#&bVdSfJf*Q!Ew%Xt&z{Yyq19g!N-c*3mctra$@d zK|Qv2TTRM6d*#ZN*dLKbLZW8?t$JHGBLc&cA^{osx-?r#Jy-ADvn@}*%K)yMIc620 z^^x_3QTTUTO_pxn7#dIh`*E-eK&E1I{!BTxqbP)_ct)9LEZw}pkF{DnC#r=Md_R-M zS_4R!uf3~lEZ^Nui2$J0WO?~Z0KVcA=7HaS|25tX#bPns1y7$?DMkuViF(<)y4L>( zycfBqF8L|JH@n2GK0u3u;A&YkoGOQh`Qz(C&^ByY41WB+k5q8FqUlq;3~ zgZDjDF3@0x@`)Mho<}(mflSQL=M$hvRAH1$--oqT*!~*aM1DOloYM>QQ23*@c?1{} z^cT8r{}=4L!F9v-onyC*=!Q<3%yoMeznH50`pypJ%a`H7gZ|up-WQ+SnJmp{L8re_X#r6I$1B6 z1S6YLFPdt4asjCn44wmH3DYp@B>+=FjtIoNFiG@(TdxUevTjBbH=|dB;k0IG3NbfZ zGL83N&DHF!pMOH(&}=q`_^c`D7|qE?zYu7RgXvwb3mEAV2skGC&VLOpo$%Ujra_Jf l1FI0DF-DLA1l{bS{trCfY5&Qr;@$uN002ovPDHLkV1mGX+c^LL literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/sovietsoda.rsi/eject.png b/Resources/Textures/Buildings/VendingMachines/sovietsoda.rsi/eject.png new file mode 100644 index 0000000000000000000000000000000000000000..08e4c74ad939e74083c02cc69f5eb8de2952392c GIT binary patch literal 1793 zcmai#dr;HI7RP@{FbN4Eh$sk=ponOrg;Eu1)WnKB1`!k=pkShafC7o72tpn|q!Fm) zf)^Bm1|y<)_3{Q$f$#_rKu|!WlvhwHVC4}4+sndEB$*)wdTgkfs*D zMuUl$<~IWz`CD3Yc_q@GAmXmdpndO%Sr@b90g#A77WCBP4=hx zITjvp?Qyhu00BbGjJ8<-2IMAwvT-Uh+mwI!winn3-v4)(L&MlZr$>?rsnyx|r=dsg z?oD&X?!K9MZFdIwBEfn@hknx_*~G{2k$hvS83<23HeHpZ!s>qLYbW$1ZEDVO|Ht{M z7cuwQwG!KfdI()QD$fL-3;LTUTy1+hU7l1R-@-#GaNa2RHp_5wFa~8fklI5={kC?sT z37ml{*2tY+u{wL(Qk|(G$yhAj)_XhMe0DyDFWig>5RH~o1@hc z=xoV^L=yxOL-(-v&s+?9y_BCg*)@65P93iPr~R7x6fIX}66aI@V@8Q}v)8Hlk|KPa zYzIsC>1lpUg9|fZ;^P#Y>FE7+-)#sGra!-u#US8glTO?HL zhnza}baB%h!MT!0sIA;7T_T8@Jyfz2PX^z1=@&s|bH(YDtynP$4StO(XL{E1Fs?HL zo!tn@00(X5;9qWtyUs4v3B%e-rOHHDV{Vnj5EhZJXm9WCbb2id$LbhvEKIyy%e#kt zswtZ<aNieG(e@#}&LK6Vc`Tb7zTpMt-58Kk0{(De!c+6RfoawFQHASWp*S zq*N~VZucJ23gx~YWp#Bp^#&9DW355^e{ESCtxi3DX|tnJ`T=efn`xS9p&~9$@gsJe zc^3H$x?~X`EFilHEug!=sx{V{<_wYi3WPu)eE+fXl?QqKUF7LlAbhi1vJtfhbVE6z zP=-4-cb0>OfayjPswu3{F#FhGb#NSAxJA8(v4EhyHfIBqe+A_G(vk~A(VB7eRK(DN z8diOk8DVK2n>h?>id)-HX2HQ~5AEp0A6KX-c4VS9EFLeh%2 z$)?bQA4t*BGg}oOuqK`NKGC#ZW(jB43WlLZ$EL5EutB;W2d!p?*HxPdrK9T_$Ef0G zk00tMyrrTx>I`OIK9$KwC{#N2ULxA!M{(qNrYzcBc~YPykuvo0lI+acpowBM^qT~h00fNimq@NiIKg(;9C|pj92W>CsNdq+{IQr=%V8;Axv1$TmFLr z1q?~bbkG7_$`9DaySjcQ440_dK;zzs$pM8a97+;JYV$arxzhT=Ykj+Y4fNo@7)*7R zIhGa51{3c)D-4S>%(dZv8vobJ{{qGG=2u#_M#p_~K)+4kUv*9k#Fl21HsQe=a22e- ze!pM~8~73>M?6ksGD7|iBiX63W* vvq&VhA1~o7>j`o4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/sovietsoda.rsi/meta.json b/Resources/Textures/Buildings/VendingMachines/sovietsoda.rsi/meta.json new file mode 100644 index 0000000000..d86e193474 --- /dev/null +++ b/Resources/Textures/Buildings/VendingMachines/sovietsoda.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "eject", "directions": 1, "delays": [[0.1, 0.1, 0.1, 0.4, 0.1, 0.1, 0.1, 0.3, 0.1, 0.1]]}, {"name": "normal", "directions": 1, "delays": [[1.0]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/VendingMachines/sovietsoda.rsi/normal.png b/Resources/Textures/Buildings/VendingMachines/sovietsoda.rsi/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..1d362218cb6f798a3a92482c2c7a8aab280bb422 GIT binary patch literal 874 zcmV-w1C{)VP)4D`SFaXuyacAto+AL37CUSPmcSZk z)FeB!ifCf7Vo+j2LM&Yj0bLP7Vx(ta;uNtIal8ZsSU+;aH{3`@UoJzdg|XUzKstAF z^54+gZF<)Bod)#@#L^wS>-eX?!j}0F0ESc`iV$pl0wS^nzWY*Q+?d;XPj$$SJGySn zA#H%9eiXNk5-D0z0-76g!Be0VtV##0=^x#a2>1!)^Ht)wu80DyR_U0RfVG=hLq7af zQg>bz0c5D?G@o%R%$tkhM=vHaaa8 z-7wg4o<7@c-}J0B_=l*7fRh4e*PRRJSz3Hny5`u}aZcR6Q|{2yj4C1!m)e&WpK)yL zxOXfgZrGc4!^}|0Vi(L8kvdZGPv{VEQgC^71y)xQd-}}3r)vh1-X$6kux>X>BT%Qf zqNq^uq9H^PaYtu`sV7{b-uu`UD0k@SXhzT~N(00EXfQ5g44p6zE^tt|l;L zH>29k=>JIZuegL$BK!A@>f59L=W4e5#d8b+>+9 zVuXkwsesXJRKQqJ$>x0h_C;KbI0)YF>&ogXcNdq4#9;LVG1L71^^?n2u7XuC0x|+M zK#WL=O=Euj`GK*F35+lzyt#LunWs-HI6(rd4<8W$yMsQbktMRmv6^g!RuRoctQeG( zm>A0tL&Q*om=qZqxObmasyIOc0vz4G9Wu9)nf*QJbTC$15Xiq>Uj8@q?QKTZj-5u$ z38XTdyl?I8UkJN5Hw(a&3M2`FZB9T$Cg8`%#{hJ@-N}2d0|mRQZvj03viecnI>NE| z2x!sdg6BXvSe*`F&3Nm2A`m7}%9qb^QxOF^9j`4&z}nM-UJieqH2toY05Vl^TF!Ck z>5Wv9cwvG?h-CTd&CRmq3^&bxx7*Ej!Qnv=qLzSh>ZLa~d$xi+mq`NSZ8njz-avvW z(DHAy)A1KlAhb;-oC0^tJbTv6+r~!m+l`HLr-X~JWa@8jvbDHGe{+-7?zM{U%G>qz zs=Gj>YJNmTeRtagv9KsEJ)mcgMozP#LOx72jQ=*)Tk+-{if7H5c>2skNlR^5N{nBBpSch3Cc z0!uGm`W*(EQB4F=@A&Ruhxx^YpsgTo*xPo)g2^-41q(%_iPW44{oHzo2WJh&Z8YVk zQz*LpF42NOeu^nnf0N=$l1jyk#*ieWp0u9d3*23B9&k{`(KOS|2^3OLZpG&U7Ddeo z08?p;2uyaN3v|)es~L>%X4JSD{U52Giane%xp{p?Ki~O3SF>v$KVXPBIy$Q01ye9o z%Zxo;!WW=ZxMrh6xKWW5=~UBvNG|g(%=-v6JEJ~>rn8)U`A_st`X+SB3 zl(P4mgbe3^F$MrA%Q9$_W!a$o%Pdb3#GJQk^=Sf}a}YwHl z(NQdf0ATlfS(ado^*X?w3#Qz};c%Fj0U?AJl@P*pbTG Z@DKdKjPjxyyx;%;002ovPDHLkV1g0`FfsrD literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/suits.rsi/meta.json b/Resources/Textures/Buildings/VendingMachines/suits.rsi/meta.json new file mode 100644 index 0000000000..a435b611e6 --- /dev/null +++ b/Resources/Textures/Buildings/VendingMachines/suits.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "normal", "directions": 1, "delays": [[1.9, 0.1, 0.2, 0.05]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/VendingMachines/suits.rsi/normal.png b/Resources/Textures/Buildings/VendingMachines/suits.rsi/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..92bbb8d9ef6ff8e46ab069e08398bbf969db25c1 GIT binary patch literal 809 zcmV+^1J?YBP)c`}z6Vn9o8BeBUqIu04V@O)ZMuto%1}BOk|cdOJ2Hf6W`FJP!bA zn!<4$2r@B3uiDfz#Q&h%tp2h81oxzU&dR3u5#YZC-P<^TJegYB;z z(N71veLk#pH*B}tUYjV22J!bgAW0HV5}Tqn!hswf*|+||2||{R!M?mL_icpz2Pq* zgs3FJQE~uKU*4#8>Kr_u&!qdPP?tBV9hKkMM(AmCz|fIWF*FBE%}-8()LbAj=1vd* zITt+4@4Bv$g9v%wz5|h|`8y+^Y0Z}#A)Q?z0IXIkEqefnbh>ZUaxEA>c~>B z%g(p)H#*>WJbwPyIn0!3I@Hv0z?A&8DNqzet@3iY#7PKzB^*p#E*IVQ&dRU#Gshruip*FVMFF z%)#H-7|I)59lXB2q9_V-=cnYK{4Fi(16Uux`hZ@rK43zy1LkhP++ck`-;G%xa0k{0 zus(qG0c5Z~fb{{a4|vWT!1{m|us(qG0avg-fb{|0V0}PCJ=O<+^#QC8pn~-Q6Z5k^ nfMUe@fEmI10K@$My*}U{nGjPIN>!`y00000NkvXXu0mjfSbTq4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/suits.rsi/off.png b/Resources/Textures/Buildings/VendingMachines/suits.rsi/off.png new file mode 100644 index 0000000000000000000000000000000000000000..10bb1136e41d0e1584a12d54357ac88787e67f63 GIT binary patch literal 492 zcmV(kwF{dIxbOl}3e}n=Dbi~KFF+Uv%Vhwkh-patiIk~S zd4M2^ygR---r>jvEXecxYMXlmZQCwJg>H+_@-W5*j%jS>@*Du#wgqDhLWujiiA^vz z@;o<=KSf_D5dQ>>IiR8}%TXE5`QU%IVJP1P_?Drng;md31^px}%MxjtjuIdujf7&? zSOv3f!EVEF{r-Ks;3OcuCnBd2B0`#`gRQD+fkgsm_(usm0^bODCE*lQwLnz^zylHB zoR5ZILQTRbIUq^+K$TN-;Cwz$BQO<{bHK(l6j5@Z4w?wm=b}aCJ)^j@G=0AMJ?n_$!n i>UzCK*LB+B0Pq7@D-&Zc?>MJV;xpkgy1%C#gXwJuOHu_x2<7?g!{6Xg`1wq&ayBR%{Q+ zC8RDys%;JiBb7w$vYTTxJ!EGylbxN6#&=0(=g)id=J)&UYzP5JCX?NuzENPBW{7Sp zLF9|3c`pJhv(B{D+z!(|*R<~C<)tTrQA5b@#VmnE)5KRz11*5-z-GN3xQJm{$g3*1 zZ)+_L0LT{h{A(r>+&ST3y?pYec-BjAzidI~esvjE_U z$QJe(7oNXuKu@+XHE}&uK;RJ&@{F5SmC7Mvag`a|fr8`T!Wb6|0D8wz ztJRoit)_)m)AGde@E{Hlx1qGz9Y-Z9Kbp zgkQ%U;CuuDg9WBkEK7;4ZbwiBm@Keu`|bjOeu2pWo&)qz5EqPM*$dp)MjI3V?&$ze zDX$U&{Zu?_oc8O1s^Tag!4WW89RTEBES1Wk=Lo5c^BZmHERYVu!3^M4#hUwqdcQs9 zi-90Wy^b@Pb?ADE+o$U(#Nw()4)kK+LFxd>f}DG;()AQ0gw%i%6@UQHIG95DXABn? zPe&6l2)YClFP>?dWZmk z%>stVeVz@t8v?xz(DNO~krzNFZ>^7O1XWGN6sW1!3 z-dzbao9M(@$urw94`MZ$y!zAk;ypL{vGCQZ2|M<{{%tekH zzSURn?v*Y-C-~EL_JZhlKD*N_8D=c&OxoDtqgK4c@MW{rE5n5Jg-zKDofF>Q_jrBc zDBp(U>&}1o87r*#)OUw}bOh_-S4Y8&=XzWn#cgrxZ=p776AerGMHR(65CbdNXCkdA$G^N;SIcx~cr3x!YYW(S`+?x>&a7?H~T znBi95@`mScx*T4;kKbI7|4k`we^=|TPOb+J?sOXL32VH2H&!ZCW&d@p2hW#lH59Yo z3BH&a@NQ|wuAGO843ERaKQ!IVn{eg6aq!WDpGqD$G=K37#t_>B+!JjZuE?)sZ|U4~?a{NnKQ2$y`@;BR(=Xx0 z8MWp&R{gJ$n{iZZo7TgBCyWFA?uF^UvAIQpS65` z1>2TSGUt5PhIN0bjr(_j>4MFfoEr593)Q~vwD=8nzO1b5id$wuEai#$`TY^^S~KiJ zh1Uq#^!grA{vNupZqee^+j@Hpok|Y%%ijy;eX!)O3#-SG$1!?6BJ=)zP&=_<;Z~;n z{rQX$d(RdcFVEztHq^TH-crK%@{E16-o1I_vNlY4U&X|_`;2o->>Nabo-w;9#o9TT zfEbHH>>AilJz=g`=wjEPe(5=Lg>tE#1Is0#lwvMO@pEPug<87?b1$G8uwt*L%oPeC z?f+fv6u7`zYwQ%X;0&-rAG-!|uwfvDARP-p#)G7kK!$;hPqlMUsb?_WtB_QG;g%RM P(=&Lw`njxgN@xNA?Y;VH literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/theater.rsi/meta.json b/Resources/Textures/Buildings/VendingMachines/theater.rsi/meta.json new file mode 100644 index 0000000000..67c1a6ff8f --- /dev/null +++ b/Resources/Textures/Buildings/VendingMachines/theater.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "normal", "directions": 1, "delays": [[4.5, 0.1, 0.4, 0.1]]}, {"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "deny", "directions": 1, "delays": [[0.1, 0.1, 0.1]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/VendingMachines/theater.rsi/normal.png b/Resources/Textures/Buildings/VendingMachines/theater.rsi/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..689ae27abf12d3db74d3bd14cd300390e3b95141 GIT binary patch literal 1019 zcmVVS7Fvl{q&dPiDYUS6xV^7OR&*c|ysbZ%1heY9FFRDEBId`ok@jDKxy%_zUJ09D^drBZ?Cd8kw> z(n&m-{?Y%K0_SIp8Rb_JfUi79y~4tPfJ&QOP6`4I^30HVgI*=(X= zS*WGRfGC7_08wL&Lu5P=KfnyLX&;DL&If$)EU%XMHK``GV%$2^jEgF)~> zMZJI<`Y)ivpE?7=!2`hS{<-5QfOOqp9Kylt@@q9hLGTt;bUgL+)NIha5z2yJIRlcM z!v)dn^-^7*6@RP%I)|D4Yb1x7+V{$se@Fn4Qe$Id==we;6jtHr=t!AdguMB+ieOja zG`3VsT~~AER~p^*eK?gHN;iD}?yc4Y{x!dn0HtCvlfYDwC4YPoG+5A*AZz|e0ZhHk z31Y*x5%*#=Z+_uqY}+>aYI=Np9KBvoIru#JBPT@u0P+WrKR^ib2arF2`~l<-;2?hh z`2)lte*pOd$R9xd0P+WrKY;uJh#) pkUt;;kUtzS+`o{7#klynLmL{FqhfI*X)tls<0 zgIL_JVcl$CVXhSqAei<>o%ERlK%>sCiR#rnu5VO4zr+{bDnYsZ`j*uV|l4P zIzUm^abGGk&7+h^1}KE%IDKt&IKq@j27(YY6H&%gm4YUmf#@E85LT(&R}*1cJM=O8 zK7ps_Ht?DN02R$dlqv-c6#%ZQ0+YXOuIt7Jpcx1b1uamkRPOB&tCo+sPq7RP)c}i> zH6`hX!UWfY$D()*NNq+u4MMCP`ogn7cnAh(0Bd1#90x^R$5A0YR0FXAc%mTpBi4X0 z05xK*1wnHFsNF1})=9(r8UqkM46$oq&>R4iZVE_sg@Q{hL_yINnsq$8`1lYBD-OUj zl9A_mqXF;^lcD#79BLy0SfrY!p+yL$1+w7#zOXqHAWSWR)9|<|H?xI$w+O+`?w(M< z(%o(H0OP7E9XK%nnSvTciEKuqx-<*~UrYf&VRbYNBhgp$OeO=*^M=d;;0K;O1%P$X RI~M=|002ovPDHLkV1msy2#Ejy literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/vendomat.rsi/broken.png b/Resources/Textures/Buildings/VendingMachines/vendomat.rsi/broken.png new file mode 100644 index 0000000000000000000000000000000000000000..ba41ccb960f1152b8659ae802cb897ed5fbe9b6e GIT binary patch literal 1481 zcmV;)1vdJLP)7#o_GNvgw$3b z6ahj-h+sjp?)=iFOH55oA*G~VuhZMx z>l$uen`vRyg=2q73B8+FZsKm*#g5mEqxLSfa_kH^C324d0BMQf7JPIBYMEi%hFEX#7) z*b_ig>FSjqT?(6^y5&H7K4`5O-&X`+_UErS@!CbClt?KN57$ z03yRN08C?>eW4g&Q`so7FBD;8y+|+^0N~f@uQ_m}4}ff`hSs}5(Xw580%+2tLP3r{ zcbdw=0@0Buo2E&4aDe%x5~gXgGtdjeKDKfd2FD`U{r!&PW1GZte%5lE2tX>?$eZrc zl>vb4-5LDDN%HwT)8AZSe0-eK=gyH&FW?V{85kO3t7ZbQ-PcE7!^ZN}Lu3S$Hzc;! zXj|{efM;WNc6L0aw>EnV%P@KA%vpj%LzI`62n>f99f@)>IlKf3XNnD<~nDdi@fY1lBJn0osHOS3cd3Po&mKiTpkJ3DnYKh2Q*_!Px2 zi+pc>$^6>y4vVXCe!I6xx$Jv<09tELspN}-FFyMm0H42~yQxJ2z7V;Ed(0^K_LJ)b ze1jO~eFDBghk-M*OyvCBx_$rg0RUK*h1QxwV+YV7A3gC?=u(N5yJ-Uc5CDfyo?_*$ zQz3%~_Y>?(P&2k!zT?e-Ct{$rr`M|6P$*Cr3V`9U0|Y`tWN+TWHylE$9&BxsOV7JD z#@<>a{-g{zO~Wb0TD``B<3nU;bCe1dF2+aL$Ytf6AhTU_E?a{zvU zQQrc9#Dr^DYfUPZa^FWI!=ANLl7*!e zH@Jt6WI_nGssFPJ%x9TY(6X4p_@{w)+;_00000NkvXXu0mjf-=V<) literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/vendomat.rsi/meta.json b/Resources/Textures/Buildings/VendingMachines/vendomat.rsi/meta.json new file mode 100644 index 0000000000..bac3fed86a --- /dev/null +++ b/Resources/Textures/Buildings/VendingMachines/vendomat.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "normal", "directions": 1, "delays": [[0.2, 0.2, 0.2]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/VendingMachines/vendomat.rsi/normal.png b/Resources/Textures/Buildings/VendingMachines/vendomat.rsi/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..72f49dde0805a79070f6e026c66a635db0321d6b GIT binary patch literal 1503 zcmV<51t9u~P))ZRFA=8PE_7;qm7f#WzBWBlu2T8QxLj^l*#NGU`4CnhE$e75K*qO_^ZZUuWDO}GQ z%%W-E5DcQ~PlEx2Z^WgG6TXr4kTie90YV72Jigg476b+`j)RcGy$+;Bm71yn2EZ6{ zJ)Mk=UE*5#I$CT0Yt%#1{2>Q;nNAM=;Cs(AYOxrsjYne)TOPRy!0$hOMfY=iky0Y1 zM694W+u#p5z>60tC0$RyOiN2kU895e{+na8Zd(Vy)U7)hvrs7l&2=f*;19VaIJC61 zw6LRXUFdIb{>i#V-1zQK`VVF3=xas*Qh9M(A2#?GZ2>`?J9m!Z;bHRmJY8K~bqy$G zxATtphnd@keftf@F|k`flKdeDR4SE4hn{>s4-k6x?(6&D5b!aKjKJyhCji*|*$&a9X}G7r#NV~nArqa&X6K)LW^O$^2^V%7ZDUwbST zf20Kj=hXKCHwJSI4c4FZ)WQaT$N}!8!5xa`=jX}nnuigXo^9dS8yVT@zV}h7 zVg-0578N;^0xRR4gh!|{|pF$lmbUr z*X5$RO06za9cN)3zFdXkzy^Q(K>eQ~Q0=>xpXi(${6J(SC3wALu4 zFvif<*2d7#(9)HuZdfk1(yN6H{zwauQu-TBwI~*gw70kW1sh{17K_VPD(L-{Y>6e! zAK4FZdsqh+$y_WJ>kxCUxZ_C;{ zu<*X<*l!anY5_^}M;vhZ;uSw`f-AG&K}B#E*4w=eroDW@PNy@MRPsnZ7}ja2CaY#>$o02_!np!R$|h_0?Kz8wB_*#fV= z4~NSch6bl%>jP|{;rf8^*<3t*fDJTU9}xFs#x@$R4~Tm{ZyTx72iQRB^Z`ku;ramg zbU1TQ`T!efxIQ4RLc=y1t`E5HM}efz=WQcZ`T!e9l|H}*?vFtI50NT;fDNQlACM$c zr4O)y)ae6~Mym7yHjpZPfDNQdA7BHi(g)Z;>hu9g<6qQDtGt3;1uy^r002ovPDHLk FV1nU4&0zol literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/vendomat.rsi/off.png b/Resources/Textures/Buildings/VendingMachines/vendomat.rsi/off.png new file mode 100644 index 0000000000000000000000000000000000000000..d81bf2e651ae19f36cdeff1accbf823a3721dd2f GIT binary patch literal 1087 zcmV-F1i<@=P)2Oz9mRig;c3;y{I@` zDjlGWfToHIIN%tAcc%~M!a2TRAgcP(k!;T%&+dFP`|a!;_+S2GF|7|478Z1FZZ7=O z7`*qWYBEmi#$=~^?=v)<5&N+-R z8E5d0tCfG@hA#P0%GOaS^~0F+5i}1xO4kPvMd-BQ13Bf!f{GB zk!vCV8m5KGsS@S#3Y%LmaLy&!I2Ax_^z_O13HlgRCl0joK~=d^cnQGr58p8H@#lyL zB7*6%of!b}eu)S-?>$7scAV5rmVf$=TX!!3uw6Mq^&}`#+m)6Ktn|?mu?$|8%;(0) zm7XBB#}9Bv76)e~$R0BdbRyjrcs;N=2^ zD<^4hHk;IHwQvwQrwj~{JU4$|=f~dSy0$3tsQOd0F z(K2H%`Y)CN0OuU4%D}+DnHFf3GzZQNAU=YvL_Ck&e)OE{7tKIeG~(jo$iMBO3XP^P z_4*Y%jRx29dCG5vyvT2dd}-V|iS~^$;G6?O0QLGI`RXMYg8JrR;(Vvkpl%L%P`E^O zD4h34{V-YMjZcB|F4=;;{iB3nL4P4s`ol`MxPR1A#zGmV0ed;F<$BkQHUO&OEoY2j zcY8U*iTHGM)2r1g0N?%^pQ1daivR%lbLx(tgkXw+1gC}QU|jNW;~fJpb~&nj(&2*8NJN9oh(>+7$coVw5#j~}%?vo;JU zF7KVTq>TfyaVMFXnPF>d3+EixT2z(M(NX5-=ey2{8`e%YZ5sfHQXVy0tr7$QV`F2< z!m3IT1YMm&Hu|0|nK33}xQ7nLK@jwGn3mY7b1v*IdjU|5x>;*c^$7``b3Fd?GeGfP zBeI6Js+ws~v(blRYi;`*P`3{I^MWtk6&2g zjFuPI&b9@s&(@QDOW%y?7nO7u9Cy!YJ+@1et~6O>b!oi~KwBXipSXvJ@cz_TGSL{r z#Dn`7V<=4)vDQ+WEFvO_ef)pgE?&o4%j(iPK@ha1;2(G;HRP9w5|{u0002ovPDHLk FV1mO)4q5;J literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/vox.rsi/broken.png b/Resources/Textures/Buildings/VendingMachines/vox.rsi/broken.png new file mode 100644 index 0000000000000000000000000000000000000000..fd48b78fe3d3493f081b276c916347e5a9687969 GIT binary patch literal 788 zcmV+v1MB>WP)#t-C<0z!2bCMHJBCEBQ5Wp&N{fvYY32gc^A>n=G93ga0o zi!&7Dt^hWuoi67`RCYaZQ7>5Fj61^&yNkppnK181=6&{^cV1>RD3HlyhAP`EU|E(1 z07q28Z(Y9x!$@-aIEiwy=4zn>KiYi4$q`j>0I=-?*!BSnuDKdFrU`zpa*fk*8K7ye zZtsL%JP1}ROX%U3ng9TZsi$8a6hks9oxXbr04#&5j~XLj7)d-_-wGU1#M;U-hGd91 ziK6cw!Z4DIL?8kbr%#;(0K9tr1{cnsQ!e1OzyI(Nz^FJy5`hUM{-|QH7}I&@GRW*A z32}Xju~R@nbR9(30RYXG$z<# z880an23=Qa^Q{4u-fI`@;zhl|$(PH8@C4|dQY_5p(QKJqO^Eil?<^);ZWjQM{GmPp zK)@RC?z31E$^ap%U}iNTcw9LGU@cMtX5J>LaXC=?24G#b8s(k)1(Qplv! zFx%}h5@K!0YQ=WG;c4}8Afgj%fbKgz_aapKn^zXu{IlCb$L=Z#Ox=pTK0*6{jEHX^ zP@Q`KzBM9VK4b{o2mJbih#?sQlK$g+BcibO_t`v^N^vsPiGI^SN?>he8G!tc#SbTr zANw}~>9c9vf3O~Ek=4plDF2BB0O0o3MQlBP$ zgTYTGZ)`qe4^t@tud~W#3wm9Tv0!l$#aw0%9jh~TC9iJpaKQn96aLqe+>77uwjtg^ Sh;Zou00006ukNyYZr6=)Vr5<_^ zE1o=5Dzvl^2(6`fXd-Qzq?_hCY_pThew6A1%g+1mJMZ)C%)7HQJ`{*XqjlA@ z^FT70^Z^7^^tKz?*hg~M>q&%33N0nxTmZGP$=(G z>x%&3&ladgLIevXBAu66Ti-DI|GM4~Jg}-O$-!X?0v&!%j%ya5AeY-RZsczAJo>_x z9Bf7a;N-a0B0?6VLM#>|9*;Z5xvqgU2M(!DcX$!!IQb>Me-8-OdF*Bq0H z8hChj!t`Y-MN-D0vX5;I2y(ey*x9zk$+imZgxJ=A9o&%0n~!#IT>}6K+WZ>?r1-j4 zhc@evn~K-8Al2%zX}_EQY93763TO^iJu@VKFxX*| xg)~1y(IHaFlzA=?SX^4RkONqZ|8*p9#$RnBBqJ*`$qxVk002ovPDHLkV1mx^iX8v| literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/vox.rsi/off.png b/Resources/Textures/Buildings/VendingMachines/vox.rsi/off.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff4e5394ed949d73d37f99b245f41af8180619d GIT binary patch literal 637 zcmV-@0)qXCP)ezw6vzM95S^PuIY6SN3Ch9((rrxbP^l6sQYE?|r4v(^eu2)6d;`SNiLFu@G9ZeW zI<(5bmalMEC<1avFZh7!7!I4*Ip^$4j=vPi@7eMD*?D=kEhyA(w-Z(0Jmh(v1pwDn z!M7i+!EqXbzeXy8ZBffO@XNzDg1w*$4gf)Li6FS-!7XYDpCZAZb~go|umfz{d&j57 zlj~@&yM+k9)c^n>Z#`SNt`d@_&WK(C0N+8?q9ym}|6X>YeG7S|Esj{z>960$f5bX5_t~o%_ z9ANV35CG8lss0B{1(-Dl?%lZ$*LCr>_j>C0O3MM)bukzWa>tdD13~ybcjdVNv*f_z zjaAOW&>WzQI^YLGw4CdLuhcpqUp}%_+F6j01jwjAxi=yv@BDlw09|DQ?C zRj_oVGMGBaH-?7+=rK*cL|-$$x2K27!ZJ^vtpHFg7L_%%I#8?Ch~pT;Fo>_mOuuVm z+cx=po~@5}xINaSSS(Vn*L7r-anAEUJ=Gb|vcPd1hK7dD@eiMmhEaEuE zvMdb4pi-%H{thIqmJEWRqcfnj1>21Vw?;=VjNMzfOS9R;vMgS`e8bqpgp#I~1wsgR zcXw$vn+PFDl7u8lNYj+V!$bP|`Y6xNGE*uMMbXuqVkxEc*2d-iCpXWuyj0zi9M8$s ztzo%b2EZ`j+xIx*r(eJ4TF#{W_5-$UGdVe_tf^%|yPg*&CSgzpJL?#RQLKcI(>+`=;HsxPx6cv#93-6DgXcg07*qoM6N<$f~Mj?0RR91 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/wallmed.rsi/deny.png b/Resources/Textures/Buildings/VendingMachines/wallmed.rsi/deny.png new file mode 100644 index 0000000000000000000000000000000000000000..55c19da916d3c89f047ec50f0c8621406ae74b61 GIT binary patch literal 876 zcmV-y1C#uTP) zF^d{O6o6ks3J-FSKn~Ja1ab%#2CINSBUq4f8o zg9Hp{XDYpo=f-(D>&wi1U$v~ue7pGe>Fn&A5di=I0D$CpqBwS0^g*-P+`4}>8fn_c zZ{UBXIfMCp?tE;k)zUPL-^i~D01=T&rLyyw#bTjt7Qc~S9ROus9RB0`$p8WQ2la-$ zoBiB*+|B7rkr&UM+B_%&ob*rD+w+g^zfXsdy5Be6GC+R6#T}T6-#6a=103t3Q}_Eu z9RT^XSG2#(beOu|H|hXLnL)iFu>kN(aAN`B7gYdcSytA0IB|RR zS#Dhq?)ULKpbCIbA2JzEdh+($R}m5U@#Sj$S+!bSZ%?OFO|$q7{i*;MPI`~T?`xMb zob;sI?XLH=+igv=_znHe@2oYO&BAxmitzbP9DZ9r0000000000000CF^8+OASB(aK ze{;V5gI~WN?dp{9P9A>$e)Stc&ef?UvFWef-OJ?l-^CjE-TgrqhO92Wc6X0|Pl64A z&5J(vmk^6T$N?KB)e0T38ufW+~g0fO%Zz+n&oi9-M+4gruj1VG}bdI2%k$EWURet^XN%ny*b zpZNjs0{{R300000002PTFh4-ze${AT8SB^MxAh0NVhDb}{@~UO!td9w3V{5wZL12E z`~(H7qJ=V-ZHw&=wD#{+8T7CE^s*~u^A~5aa%gP+gGk>E0bwLdn3$^id^Kc8ML zdI7%uOc0@jUO>X+AB2gBjO8I4O|H+@+hsloGw%g}E%`frd9i(fkPHwpregtMkLg%I zjP>y$`LitZ-X`+{B<^Q^fW-aG4}c#400000lHw0K|00`GB5a2M0000B>$-FSu1%p(VYpg>)n zUr$|In>*dU?#~P}K8wm?qqd{ZUhU*j&-Y7v@&0{#cWXbP0l+XkKDg18> literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/wallmed.rsi/off.png b/Resources/Textures/Buildings/VendingMachines/wallmed.rsi/off.png new file mode 100644 index 0000000000000000000000000000000000000000..4d66fd0a431d059402aad27fedcce18e7f6c2380 GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ)t)YnAr*7pPTR=KtjOb9zbLwy zQDbF9i{y<1NgVnI8O#}_6}Z|GCM;R(c|lV1qG_Gzru}QKe`IvsIrF&Nx2;hY&-b0H zen0(tKQH4EiK92K&C=Me%D}Mo+UcI}aW(IEYJbQMabSg@JnS{kNIS~01Ubx!eVza36W3p7qi YOQvhg&bVoK8|Z8XPgg&ebxsLQ05wuu<^TWy literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/youtool.rsi/broken.png b/Resources/Textures/Buildings/VendingMachines/youtool.rsi/broken.png new file mode 100644 index 0000000000000000000000000000000000000000..9f124eab8d20fe312c6dbc26f84de6c5777247ab GIT binary patch literal 1312 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/youtool.rsi/eject.png b/Resources/Textures/Buildings/VendingMachines/youtool.rsi/eject.png new file mode 100644 index 0000000000000000000000000000000000000000..b9e6d82faa1549d6688be592035c00fb75a1bf48 GIT binary patch literal 1418 zcmchX`#Tc~7{}*6b}+G%G);**a!Gg`i#9Vhtjt6;l7tYM>q%w}C$^Y7!=`OQH$_5; zMp`;0m+a9+uDOgf77532=ASq}eBSqm_j%s$51;pW>G%^Ebu~RT005xwibWG-JwOH$ zs4S~f)-f6YfRd*x+VSKSwwTo&Rp<41fvY( z

#7@|E&t0RaI>^drCN*9^&s|MMsJGj}E&^T1&X`8m0&cs(;fm7^Niu5Sm;5KUG4 z8nkfS0PcCcg=A?>AS2vVXi8N?odW3u;7XBzth*uEE$7 zyR{7jX(}IN!wH88=)x|GROcemKwbDHEfmYsMV5I0*|iTFo&>rpHjAwzuQg>SG{rYq z0QV)$eI07bf6TcIX+SbpwH&xo(G+>gild1t+?tQgkHS$2LI4D@ve>6GTnm>iqA2Yx z*3I<#;=9@!1*Asmi}M_%U(`tSD2f$Lk~r|xzUQXC`cDqbM6Ci$8GmP^F&|zT-E7D7 zezTWvDOW$1Y>A)+kN)I&lsgBpo|2~Zn8JJoj8$A~^7DHDKhbVswPAYqty#rokA(E2 zPEP=#b8S7o=OU-qg$3S9V{k;pXbGY;pH-a_=JU})T|qDXsBe?x@-OpJT-Jt#HzZ9c zr70HfX{aHuny$>tHPkQm8;z|08{H$tUqzoT9U5n{K}W(O&%!>kc;keph}BQZ*?0ah zHs-asnDrS^1b(@8sqf=b51oRCt!sZPz8)OercV0)67D~I_7&{_N+#R^8At(5aZ*N; z*U?uVwRQ(2-EexL^Era8VBsT+CtuL)gC9(MA6uUDF4C3*otV)4_G!aSOys(gmyU7; ze*c8RUkp65Eb}eM(ijbyWMC38xV%!}%tKF596f4}3YrYesn*72F@!^9>_hI9gbXLc z}_p z*SSQ}cfmNsS(5JUd;YLP5<|Z9@GYo_xeUBIJ*z(iZ9d=XC@k}#tToo&sgbCtnk^_q z7b{LZY2VV@%GvDq>Ynq8^j_*J%jVm~q*dEI=-iF=#(mmRoT{N!RD)ynBI3UZ^F_V2 zRN~To&t_@8@q}_lhAwo^k#b^+$(bU2Yt+55EzoEQlQCyIv$8S}5;ihk@Ddvcd2k|u z4%>Coq|sBwP0Q)lek=r&2~DAv^wh>C0*yjCg1^A!0?Q;-hFU~kBT^9ibL-gY=-Ua` zVTtWU%WF+j8*;_}7v3M@8pO+MnPQLAxFVZf7n71V1J|{G_Zoo(oZ04@f@=^VLfqK4 Q{b>QN&L_|hQ30v{0m%)y-v9sr literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/VendingMachines/youtool.rsi/meta.json b/Resources/Textures/Buildings/VendingMachines/youtool.rsi/meta.json new file mode 100644 index 0000000000..64633f4487 --- /dev/null +++ b/Resources/Textures/Buildings/VendingMachines/youtool.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "deny", "directions": 1, "delays": [[0.2, 0.1, 0.2]]}, {"name": "eject", "directions": 1, "delays": [[0.5, 0.1, 1.0, 0.1, 0.1]]}, {"name": "normal", "directions": 1, "delays": [[1.0]]}, {"name": "off", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/VendingMachines/youtool.rsi/normal.png b/Resources/Textures/Buildings/VendingMachines/youtool.rsi/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..b13c07f1274018b995dc0115f450de264f9c7f20 GIT binary patch literal 1101 zcmV-T1hV^yP)3P4?Ogx z@xdR7KVo7cmNXh_XpJuoPhD(X&6Xg5rDWf`Se2XIg#oNmc*>068q!V1uH z{yjp#%^RcSLYk0P1^+5S9@2R(s z2xx;}{^wz9698bnZ{yL`Kw{N(ZDi+fZ~P_`)0HcaTVjYddIvO{`^8WVD zR@ysTw?Sm*Z*M$nwZ3(OMZmsZyRrPt^AKXsz0v?$=Kun)dtP)i{5zX<7a(O;cdVn4 zZ^n`Uw0E}pLIeS@XNGv|ReK=J*;Ca_-b@xj6pG&(xl4a{Ewu;ibJ-JsD#(|u5S2fU zVZOeOWb3&#a+f=C#f3|0IzO1+6Mz-l_>|35JVMoTU0x$O4?y$eH1B_Zf?uv>_74D` zEfYPS19BXyD))e9VDaQhKFU5Moet6W`o00!QzLIRk6&kH1)zzV@o_%>;TcALEnN`< z0hHRiM=HjcZh-1>ubp`M7=wD13@A_AJcjz|TKD>kU>9NVLYd=&q8@hPm)sZ~$urjB!g2db#U~jpv4|3w-fu z1!vye#|V@<3sUh2e=jW1&=e&#^MKiRpX5VXCB5v@yN3wa>wr%oNW~*8FD%i}6y5Me zzgpztY(3Y86|NIJ3O*6AFG2KpjwqEJs&bh6?l(Aigt@nC8DN!kT5z!?W*EP6qFbJPIPz+Fb(4^uKs*b)v&3gOFVAc9l6|Ock#-88uHVr7>+F}LJ zYI`Z}@2+KN*gKFOE<$SN4*lJ=MSb$(g z=G5RIZytYxh$ysqjHoDRgAqU*Py*tDQGkPphxQx_E00i`5`c>m;dp1B3qN9P5LSS} z(;pB4u3w#@7|}$us`yv=Bh&^lzDJ9~;Njq)Swj(FO#}xIaTPDL8a(Ux0{{g0da%vj zBczRf_qUI&O$dO}yX}WpLy5&(x+yH(T>nik)Z%Il2uQ@*N7b=xry_+rBPV_V@I4 z(bLzp1){KYbNyMX($WnV0sDOI#>yivLx?^1wg=F<2oQSS%c2|M-`T9I0I9LM6TR*H zFq;OTr>`pzA`E~%GsK^-<_3rNkHxujJzWJ+DSl)6Hp2tWG&k7CvL^slkuRGe>VKNW ze18Qgv~gqlHn&oWvlnvoeRy|I09I@hP&PBED6yCN{YH8TfQE)9z8KR?UC!?x00B#; z^=J_&@>HzW2U_&A{FBdC$mJpoy}fS$_S7g_(-T)%Spn$42#lXU!1Sf|5ahtPwEA+qTo|{ZFnxH^kz6^JN_;-rZXS zLhl8cRFrF%9&)Io6@Wr+nUBt`@=Mag^}yYpeT&)aKtLhLq@p}}m|YhKh&RUg{G7|> zq{4HoiQejo_U zk3=mPUn1PiXj8&0ET&mlOxs=!VfHQF%GLSo5p(|Z{#?yQzFkBS3A`N#1O^g`PUC4! z1cO$fw1W{BPatB-=lla`S@W;$CJIu-PdbGdjWL2aE_eQ12-Nu>xUI3#hHE*d00000 LNkvXXu0mjfW!?uS literal 0 HcmV?d00001