From 7b9038e6da26600c6525887bda6af35edf20c3dc Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Sun, 11 Aug 2019 00:21:50 +0200 Subject: [PATCH 01/24] Hahah color lerp. --- .../ColorInterpolateBenchmark.cs | 181 +++++++++--------- 1 file changed, 94 insertions(+), 87 deletions(-) diff --git a/Content.Benchmarks/ColorInterpolateBenchmark.cs b/Content.Benchmarks/ColorInterpolateBenchmark.cs index 1330549b8a..24b8914d14 100644 --- a/Content.Benchmarks/ColorInterpolateBenchmark.cs +++ b/Content.Benchmarks/ColorInterpolateBenchmark.cs @@ -1,15 +1,20 @@ using System; -using System.Collections.Generic; using System.Runtime.CompilerServices; +#if NETCOREAPP +using System.Runtime.Intrinsics; +using System.Runtime.Intrinsics.X86; +#endif using BenchmarkDotNet.Attributes; using Robust.Shared.Maths; using SysVector4 = System.Numerics.Vector4; namespace Content.Benchmarks { + [DisassemblyDiagnoser] public class ColorInterpolateBenchmark { - private readonly List<(Color, Color)> _colors = new List<(Color, Color)>(); + private (Color, Color)[] _colors; + private Color[] _output; [Params(100)] public int N { get; set; } @@ -18,6 +23,9 @@ namespace Content.Benchmarks { var random = new Random(3005); + _colors = new (Color, Color)[N]; + _output = new Color[N]; + for (var i = 0; i < N; i++) { var r1 = random.NextFloat(); @@ -30,123 +38,122 @@ namespace Content.Benchmarks var b2 = random.NextFloat(); var a2 = random.NextFloat(); - _colors.Add((new Color(r1, g1, b1, a1), new Color(r2, g2, b2, a2))); + _colors[i] = (new Color(r1, g1, b1, a1), new Color(r2, g2, b2, a2)); } } [Benchmark] public void BenchSimple() { - foreach (var (a, b) in _colors) + for (var i = 0; i < N; i++) { - InterpolateSimple(a, b, 0.5f); + ref var tuple = ref _colors[i]; + _output[i] = InterpolateSimple(tuple.Item1, tuple.Item2, 0.5f); } } - //[Benchmark] - public void BenchSysVector4() - { - foreach (var (a, b) in _colors) - { - InterpolateSysVector4(a, b, 0.5f); - } - } - //[Benchmark] - public void BenchSysVector4Blit() + [Benchmark] + public void BenchSysVector4In() { - foreach (var (a, b) in _colors) + for (var i = 0; i < N; i++) { - InterpolateSysVector4Blit(a, b, 0.5f); - } - } - - //[Benchmark] - public void BenchSysVector4BlitNoException() - { - foreach (var (a, b) in _colors) - { - InterpolateSysVector4BlitNoException(a, b, 0.5f); + ref var tuple = ref _colors[i]; + _output[i] = InterpolateSysVector4In(tuple.Item1, tuple.Item2, 0.5f); } } [Benchmark] - public void BenchSysVector4AsRefNoException() + public void BenchSysVector4() { - foreach (var (a, b) in _colors) + for (var i = 0; i < N; i++) { - InterpolateSysVector4BlitNoExceptionAsRef(a, b, 0.5f); + ref var tuple = ref _colors[i]; + _output[i] = InterpolateSysVector4(tuple.Item1, tuple.Item2, 0.5f); } } - public static Color InterpolateSimple(Color endPoint1, Color endPoint2, float lambda) +#if NETCOREAPP + [Benchmark] + public void BenchSimd() + { + for (var i = 0; i < N; i++) + { + ref var tuple = ref _colors[i]; + _output[i] = InterpolateSimd(tuple.Item1, tuple.Item2, 0.5f); + } + } + + [Benchmark] + public void BenchSimdIn() + { + for (var i = 0; i < N; i++) + { + ref var tuple = ref _colors[i]; + _output[i] = InterpolateSimdIn(tuple.Item1, tuple.Item2, 0.5f); + } + } +#endif + + [MethodImpl(MethodImplOptions.AggressiveOptimization)] + public static Color InterpolateSimple(Color a, Color b, float lambda) { - if (lambda < 0 || lambda > 1) - throw new ArgumentOutOfRangeException(nameof(lambda)); return new Color( - endPoint1.R * lambda + endPoint2.R * (1 - lambda), - endPoint1.G * lambda + endPoint2.G * (1 - lambda), - endPoint1.B * lambda + endPoint2.B * (1 - lambda), - endPoint1.A * lambda + endPoint2.A * (1 - lambda) + a.R + (b.R - a.R) * lambda, + a.G + (b.G - a.G) * lambda, + a.B + (b.G - a.B) * lambda, + a.A + (b.A - a.A) * lambda ); } - public static Color InterpolateSysVector4(Color endPoint1, Color endPoint2, float lambda) - { - if (lambda < 0 || lambda > 1) - throw new ArgumentOutOfRangeException(nameof(lambda)); - - var vec1 = new SysVector4(endPoint1.R, endPoint1.G, endPoint1.B, endPoint1.A); - var vec2 = new SysVector4(endPoint2.R, endPoint2.G, endPoint2.B, endPoint2.A); - - var res = SysVector4.Lerp(vec1, vec2, 1 - lambda); - - return new Color( - res.X, res.Y, res.Z, res.W); - } - - public static unsafe Color InterpolateSysVector4Blit(in Color endPoint1, in Color endPoint2, float lambda) - { - if (lambda < 0 || lambda > 1) - throw new ArgumentOutOfRangeException(nameof(lambda)); - - - fixed (Color* p1 = &endPoint1) - fixed (Color* p2 = &endPoint2) - { - var vp1 = (SysVector4*) p1; - var vp2 = (SysVector4*) p2; - - var res = SysVector4.Lerp(*vp1, *vp2, 1 - lambda); - - return *(Color*) (&res); - } - } - - public static unsafe Color InterpolateSysVector4BlitNoException(in Color endPoint1, in Color endPoint2, + [MethodImpl(MethodImplOptions.AggressiveOptimization)] + public static Color InterpolateSysVector4(Color a, Color b, float lambda) { - fixed (Color* p1 = &endPoint1) - fixed (Color* p2 = &endPoint2) - { - var vp1 = (SysVector4*) p1; - var vp2 = (SysVector4*) p2; + ref var sva = ref Unsafe.As(ref a); + ref var svb = ref Unsafe.As(ref b); - var res = SysVector4.Lerp(*vp2, *vp1, lambda); - - return *(Color*) (&res); - } - } - - public static unsafe Color InterpolateSysVector4BlitNoExceptionAsRef(in Color endPoint1, in Color endPoint2, - float lambda) - { - ref var sv1 = ref Unsafe.As(ref Unsafe.AsRef(endPoint1)); - ref var sv2 = ref Unsafe.As(ref Unsafe.AsRef(endPoint2)); - - var res = SysVector4.Lerp(sv2, sv1, lambda); + var res = SysVector4.Lerp(sva, svb, lambda); return Unsafe.As(ref res); } + + [MethodImpl(MethodImplOptions.AggressiveOptimization)] + public static Color InterpolateSysVector4In(in Color endPoint1, in Color endPoint2, + float lambda) + { + ref var sva = ref Unsafe.As(ref Unsafe.AsRef(endPoint1)); + ref var svb = ref Unsafe.As(ref Unsafe.AsRef(endPoint2)); + + var res = SysVector4.Lerp(svb, sva, lambda); + + return Unsafe.As(ref res); + } + +#if NETCOREAPP + [MethodImpl(MethodImplOptions.AggressiveOptimization)] + public static Color InterpolateSimd(Color a, Color b, + float lambda) + { + var vecA = Unsafe.As>(ref a); + var vecB = Unsafe.As>(ref b); + + vecB = Fma.MultiplyAdd(Sse.Subtract(vecB, vecA), Vector128.Create(lambda), vecA); + + return Unsafe.As, Color>(ref vecB); + } + + [MethodImpl(MethodImplOptions.AggressiveOptimization)] + public static Color InterpolateSimdIn(in Color a, in Color b, + float lambda) + { + var vecA = Unsafe.As>(ref Unsafe.AsRef(a)); + var vecB = Unsafe.As>(ref Unsafe.AsRef(b)); + + vecB = Fma.MultiplyAdd(Sse.Subtract(vecB, vecA), Vector128.Create(lambda), vecA); + + return Unsafe.As, Color>(ref vecB); + } +#endif } } From 589d52158c05c869f28ebe5a0859f0a3f462e05f Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Sun, 11 Aug 2019 01:23:08 +0200 Subject: [PATCH 02/24] Update submodule. --- Content.Shared/GameObjects/Verb.cs | 2 +- RobustToolbox | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Content.Shared/GameObjects/Verb.cs b/Content.Shared/GameObjects/Verb.cs index 4fd3fe288b..0f929a1dce 100644 --- a/Content.Shared/GameObjects/Verb.cs +++ b/Content.Shared/GameObjects/Verb.cs @@ -114,7 +114,7 @@ namespace Content.Shared.GameObjects // This works for now though. public static IEnumerable<(IComponent, Verb)> GetVerbs(IEntity entity) { - foreach (var component in entity.GetComponentInstances()) + foreach (var component in entity.GetAllComponents()) { var type = component.GetType(); foreach (var nestedType in type.GetNestedTypes(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static)) diff --git a/RobustToolbox b/RobustToolbox index daa13de9ed..896758e176 160000 --- a/RobustToolbox +++ b/RobustToolbox @@ -1 +1 @@ -Subproject commit daa13de9edd84a0ac36c96374e6f7181a693a09f +Subproject commit 896758e176c909cab57c7b69f4f14927f36ffde5 From e142155b01d08d099f9837872e0cffa10516bb05 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Sun, 11 Aug 2019 16:46:12 +0200 Subject: [PATCH 03/24] Update submodule. --- RobustToolbox | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RobustToolbox b/RobustToolbox index 896758e176..10261a15b2 160000 --- a/RobustToolbox +++ b/RobustToolbox @@ -1 +1 @@ -Subproject commit 896758e176c909cab57c7b69f4f14927f36ffde5 +Subproject commit 10261a15b25cc55422b6c1e9c8c23ca0eb5cad99 From 418522b7147490842df496ef7a62960ddf203154 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Sun, 11 Aug 2019 20:45:22 +0200 Subject: [PATCH 04/24] Fix benchmarks compile on Framework. --- Content.Benchmarks/ColorInterpolateBenchmark.cs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Content.Benchmarks/ColorInterpolateBenchmark.cs b/Content.Benchmarks/ColorInterpolateBenchmark.cs index 24b8914d14..aaa172f0aa 100644 --- a/Content.Benchmarks/ColorInterpolateBenchmark.cs +++ b/Content.Benchmarks/ColorInterpolateBenchmark.cs @@ -13,6 +13,12 @@ namespace Content.Benchmarks [DisassemblyDiagnoser] public class ColorInterpolateBenchmark { +#if NETCOREAPP + private const MethodImplOptions AggressiveOpt = MethodImplOptions.AggressiveOptimization; +#else + private const MethodImplOptions AggressiveOpt = default; +#endif + private (Color, Color)[] _colors; private Color[] _output; @@ -95,7 +101,7 @@ namespace Content.Benchmarks } #endif - [MethodImpl(MethodImplOptions.AggressiveOptimization)] + [MethodImpl(AggressiveOpt)] public static Color InterpolateSimple(Color a, Color b, float lambda) { return new Color( @@ -106,7 +112,7 @@ namespace Content.Benchmarks ); } - [MethodImpl(MethodImplOptions.AggressiveOptimization)] + [MethodImpl(AggressiveOpt)] public static Color InterpolateSysVector4(Color a, Color b, float lambda) { @@ -118,7 +124,7 @@ namespace Content.Benchmarks return Unsafe.As(ref res); } - [MethodImpl(MethodImplOptions.AggressiveOptimization)] + [MethodImpl(AggressiveOpt)] public static Color InterpolateSysVector4In(in Color endPoint1, in Color endPoint2, float lambda) { @@ -131,7 +137,7 @@ namespace Content.Benchmarks } #if NETCOREAPP - [MethodImpl(MethodImplOptions.AggressiveOptimization)] + [MethodImpl(AggressiveOpt)] public static Color InterpolateSimd(Color a, Color b, float lambda) { @@ -143,7 +149,7 @@ namespace Content.Benchmarks return Unsafe.As, Color>(ref vecB); } - [MethodImpl(MethodImplOptions.AggressiveOptimization)] + [MethodImpl(AggressiveOpt)] public static Color InterpolateSimdIn(in Color a, in Color b, float lambda) { From a2e6500d5446345d8e7f4afd948d3a290a2bb7b2 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Sun, 11 Aug 2019 21:42:52 +0200 Subject: [PATCH 05/24] Allow packaging script to do .NET Core builds. --- Tools/package_release_build.py | 96 ++++++++++++++++++++-------------- 1 file changed, 57 insertions(+), 39 deletions(-) diff --git a/Tools/package_release_build.py b/Tools/package_release_build.py index d0b3d3e6c3..5dd0208240 100755 --- a/Tools/package_release_build.py +++ b/Tools/package_release_build.py @@ -59,8 +59,11 @@ def main(): nargs="*", help="Which platform to build for. If not provided, all platforms will be built") + parser.add_argument("--core", action="store_true", help="Build with .NET Core instead.") + args = parser.parse_args() platforms = args.platform + core = args.core if not platforms: platforms = ["windows", "mac", "linux"] @@ -73,15 +76,15 @@ def main(): if "windows" in platforms: wipe_bin() - build_windows() + build_windows(core) if "linux" in platforms: wipe_bin() - build_linux() + build_linux(core) if "mac" in platforms: wipe_bin() - build_macos() + build_macos(core) def wipe_bin(): @@ -94,20 +97,25 @@ def wipe_bin(): shutil.rmtree("bin") -def build_windows(): +def build_windows(core): # type: (bool) -> None # Run a full build. print(Fore.GREEN + "Building project for Windows x64..." + Style.RESET_ALL) - subprocess.run(["msbuild", - "SpaceStation14.sln", - "/m", - "/p:Configuration=Release", - "/p:Platform=x64", - "/nologo", - "/v:m", - "/p:TargetOS=Windows", - "/t:Rebuild", - "/p:FullRelease=True" - ], check=True) + command = ["msbuild", + "SpaceStation14.sln", + "/m", + "/p:Configuration=Release", + "/p:Platform=x64", + "/nologo", + "/v:m", + "/p:TargetOS=Windows", + "/t:Rebuild", + "/p:FullRelease=True" + ] + + if core: + command = ["dotnet"] + command + ["/p:UseNetCore=true"] + + subprocess.run(command, check=True) print(Fore.GREEN + "Packaging Windows x64 client..." + Style.RESET_ALL) @@ -139,19 +147,24 @@ def build_windows(): launcher_zip.close() -def build_macos(): +def build_macos(core): # type: (bool) -> None print(Fore.GREEN + "Building project for macOS x64..." + Style.RESET_ALL) - subprocess.run(["msbuild", - "SpaceStation14.sln", - "/m", - "/p:Configuration=Release", - "/p:Platform=x64", - "/nologo", - "/v:m", - "/p:TargetOS=MacOS", - "/t:Rebuild", - "/p:FullRelease=True" - ], check=True) + command = ["msbuild", + "SpaceStation14.sln", + "/m", + "/p:Configuration=Release", + "/p:Platform=x64", + "/nologo", + "/v:m", + "/p:TargetOS=MacOS", + "/t:Rebuild", + "/p:FullRelease=True" + ] + + if core: + command = ["dotnet"] + command + ["/p:UseNetCore=true"] + + subprocess.run(command, check=True) print(Fore.GREEN + "Packaging macOS x64 client..." + Style.RESET_ALL) # Client has to go in an app bundle. @@ -186,20 +199,25 @@ def build_macos(): launcher_zip.close() -def build_linux(): +def build_linux(core): # type: (bool) -> None # Run a full build. print(Fore.GREEN + "Building project for Linux x64..." + Style.RESET_ALL) - subprocess.run(["msbuild", - "SpaceStation14.sln", - "/m", - "/p:Configuration=Release", - "/p:Platform=x64", - "/nologo", - "/v:m", - "/p:TargetOS=Linux", - "/t:Rebuild", - "/p:FullRelease=True" - ], check=True) + command = ["msbuild", + "SpaceStation14.sln", + "/m", + "/p:Configuration=Release", + "/p:Platform=x64", + "/nologo", + "/v:m", + "/p:TargetOS=Linux", + "/t:Rebuild", + "/p:FullRelease=True" + ] + + if core: + command = ["dotnet"] + command + ["/p:UseNetCore=true"] + + subprocess.run(command, check=True) print(Fore.GREEN + "Packaging Linux x64 client..." + Style.RESET_ALL) From d4384aef7356a57bf5830f9c2569171983fcf042 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Mon, 12 Aug 2019 18:00:02 +0200 Subject: [PATCH 06/24] Eris computer sprites, visualizer. --- .../Components/ComputerVisualizer2D.cs | 76 +++ .../Components/ComputerComponent.cs | 34 ++ .../Components/SharedComputerComponent.cs | 21 + Resources/Maps/stationstation.yml | 569 +++++++++++------- .../Entities/buildings/computers.yml | 117 ++++ .../Buildings/computer.rsi/ai-fixer-404.png | Bin 0 -> 270 bytes .../Buildings/computer.rsi/ai-fixer-empty.png | Bin 0 -> 371 bytes .../Buildings/computer.rsi/ai-fixer-full.png | Bin 0 -> 594 bytes .../Buildings/computer.rsi/ai-fixer-on.png | Bin 0 -> 379 bytes .../Buildings/computer.rsi/ai-fixer.png | Bin 0 -> 635 bytes .../Buildings/computer.rsi/aiupload.png | Bin 0 -> 717 bytes .../Buildings/computer.rsi/aiupload_key.png | Bin 0 -> 867 bytes .../Buildings/computer.rsi/alert:0.png | Bin 0 -> 838 bytes .../Buildings/computer.rsi/alert:1.png | Bin 0 -> 834 bytes .../Buildings/computer.rsi/alert:2.png | Bin 0 -> 1190 bytes .../Buildings/computer.rsi/area_atmos.png | Bin 0 -> 1171 bytes .../Buildings/computer.rsi/atmos_key.png | Bin 0 -> 406 bytes .../Buildings/computer.rsi/atmos_key_off.png | Bin 0 -> 575 bytes .../Buildings/computer.rsi/broken.png | Bin 0 -> 3576 bytes .../Buildings/computer.rsi/cameras.png | Bin 0 -> 3598 bytes .../Textures/Buildings/computer.rsi/comm.png | Bin 0 -> 995 bytes .../Buildings/computer.rsi/comm_logs.png | Bin 0 -> 1637 bytes .../Buildings/computer.rsi/comm_monitor.png | Bin 0 -> 1226 bytes .../Buildings/computer.rsi/command.png | Bin 0 -> 714 bytes .../Buildings/computer.rsi/computer.png | Bin 0 -> 1872 bytes .../computer.rsi/computer_broken.png | Bin 0 -> 668 bytes .../Textures/Buildings/computer.rsi/crew.png | Bin 0 -> 9614 bytes .../Textures/Buildings/computer.rsi/dna.png | Bin 0 -> 4192 bytes .../computer.rsi/dron_control_monitor.png | Bin 0 -> 1847 bytes .../Buildings/computer.rsi/engie_cams.png | Bin 0 -> 3614 bytes .../Buildings/computer.rsi/engine.png | Bin 0 -> 1778 bytes .../Buildings/computer.rsi/entertainment.png | Bin 0 -> 2830 bytes .../Buildings/computer.rsi/eris_control.png | Bin 0 -> 1960 bytes .../Textures/Buildings/computer.rsi/error.png | Bin 0 -> 533 bytes .../Buildings/computer.rsi/explosive.png | Bin 0 -> 2957 bytes .../Buildings/computer.rsi/forensic.png | Bin 0 -> 3348 bytes .../Buildings/computer.rsi/generic.png | Bin 0 -> 653 bytes .../Buildings/computer.rsi/generic_key.png | Bin 0 -> 338 bytes .../computer.rsi/generic_key_off.png | Bin 0 -> 1201 bytes .../Buildings/computer.rsi/holocontrol.png | Bin 0 -> 2120 bytes .../Textures/Buildings/computer.rsi/id.png | Bin 0 -> 964 bytes .../Buildings/computer.rsi/id_key.png | Bin 0 -> 421 bytes .../Buildings/computer.rsi/id_key_off.png | Bin 0 -> 1136 bytes .../Buildings/computer.rsi/mass_driver.png | Bin 0 -> 329 bytes .../Textures/Buildings/computer.rsi/mecha.png | Bin 0 -> 1718 bytes .../Buildings/computer.rsi/med_key.png | Bin 0 -> 482 bytes .../Buildings/computer.rsi/med_key_off.png | Bin 0 -> 568 bytes .../Buildings/computer.rsi/medcomp.png | Bin 0 -> 4909 bytes .../Textures/Buildings/computer.rsi/meta.json | 1 + .../Buildings/computer.rsi/mining.png | Bin 0 -> 2433 bytes .../Buildings/computer.rsi/mining_key.png | Bin 0 -> 503 bytes .../Buildings/computer.rsi/mining_key_off.png | Bin 0 -> 568 bytes .../Buildings/computer.rsi/power_key.png | Bin 0 -> 347 bytes .../Buildings/computer.rsi/power_key_off.png | Bin 0 -> 643 bytes .../Buildings/computer.rsi/power_monitor.png | Bin 0 -> 1315 bytes .../computer.rsi/power_monitor_warn.png | Bin 0 -> 1030 bytes .../Buildings/computer.rsi/rd_key.png | Bin 0 -> 301 bytes .../Buildings/computer.rsi/rd_key_off.png | Bin 0 -> 405 bytes .../Buildings/computer.rsi/rdcomp.png | Bin 0 -> 620 bytes .../Buildings/computer.rsi/recharge_comp.png | Bin 0 -> 645 bytes .../computer.rsi/recharge_comp_on.png | Bin 0 -> 1736 bytes .../Buildings/computer.rsi/request.png | Bin 0 -> 1450 bytes .../Textures/Buildings/computer.rsi/robot.png | Bin 0 -> 607 bytes .../Buildings/computer.rsi/security.png | Bin 0 -> 719 bytes .../Buildings/computer.rsi/security_key.png | Bin 0 -> 429 bytes .../computer.rsi/security_key_off.png | Bin 0 -> 704 bytes .../Buildings/computer.rsi/shuttle.png | Bin 0 -> 1351 bytes .../Buildings/computer.rsi/solar_screen.png | Bin 0 -> 1084 bytes .../Buildings/computer.rsi/supply.png | Bin 0 -> 600 bytes .../Buildings/computer.rsi/syndie_key.png | Bin 0 -> 500 bytes .../Buildings/computer.rsi/syndie_key_off.png | Bin 0 -> 689 bytes .../Buildings/computer.rsi/syndishuttle.png | Bin 0 -> 800 bytes .../Textures/Buildings/computer.rsi/tank.png | Bin 0 -> 769 bytes .../Buildings/computer.rsi/tcboss.png | Bin 0 -> 914 bytes .../Buildings/computer.rsi/tech_key.png | Bin 0 -> 503 bytes .../Buildings/computer.rsi/tech_key_off.png | Bin 0 -> 568 bytes .../Buildings/computer.rsi/teleport.png | Bin 0 -> 1364 bytes .../Buildings/computer.rsi/teleport_key.png | Bin 0 -> 392 bytes .../computer.rsi/teleport_key_off.png | Bin 0 -> 679 bytes .../Buildings/computer.rsi/telesci.png | Bin 0 -> 1453 bytes .../Buildings/computer.rsi/telesci_key.png | Bin 0 -> 301 bytes .../computer.rsi/telesci_key_off.png | Bin 0 -> 405 bytes .../Buildings/computer.rsi/turbinecomp.png | Bin 0 -> 616 bytes 83 files changed, 588 insertions(+), 230 deletions(-) create mode 100644 Content.Client/GameObjects/Components/ComputerVisualizer2D.cs create mode 100644 Content.Server/GameObjects/Components/ComputerComponent.cs create mode 100644 Content.Shared/GameObjects/Components/SharedComputerComponent.cs create mode 100644 Resources/Prototypes/Entities/buildings/computers.yml create mode 100644 Resources/Textures/Buildings/computer.rsi/ai-fixer-404.png create mode 100644 Resources/Textures/Buildings/computer.rsi/ai-fixer-empty.png create mode 100644 Resources/Textures/Buildings/computer.rsi/ai-fixer-full.png create mode 100644 Resources/Textures/Buildings/computer.rsi/ai-fixer-on.png create mode 100644 Resources/Textures/Buildings/computer.rsi/ai-fixer.png create mode 100644 Resources/Textures/Buildings/computer.rsi/aiupload.png create mode 100644 Resources/Textures/Buildings/computer.rsi/aiupload_key.png create mode 100644 Resources/Textures/Buildings/computer.rsi/alert:0.png create mode 100644 Resources/Textures/Buildings/computer.rsi/alert:1.png create mode 100644 Resources/Textures/Buildings/computer.rsi/alert:2.png create mode 100644 Resources/Textures/Buildings/computer.rsi/area_atmos.png create mode 100644 Resources/Textures/Buildings/computer.rsi/atmos_key.png create mode 100644 Resources/Textures/Buildings/computer.rsi/atmos_key_off.png create mode 100644 Resources/Textures/Buildings/computer.rsi/broken.png create mode 100644 Resources/Textures/Buildings/computer.rsi/cameras.png create mode 100644 Resources/Textures/Buildings/computer.rsi/comm.png create mode 100644 Resources/Textures/Buildings/computer.rsi/comm_logs.png create mode 100644 Resources/Textures/Buildings/computer.rsi/comm_monitor.png create mode 100644 Resources/Textures/Buildings/computer.rsi/command.png create mode 100644 Resources/Textures/Buildings/computer.rsi/computer.png create mode 100644 Resources/Textures/Buildings/computer.rsi/computer_broken.png create mode 100644 Resources/Textures/Buildings/computer.rsi/crew.png create mode 100644 Resources/Textures/Buildings/computer.rsi/dna.png create mode 100644 Resources/Textures/Buildings/computer.rsi/dron_control_monitor.png create mode 100644 Resources/Textures/Buildings/computer.rsi/engie_cams.png create mode 100644 Resources/Textures/Buildings/computer.rsi/engine.png create mode 100644 Resources/Textures/Buildings/computer.rsi/entertainment.png create mode 100644 Resources/Textures/Buildings/computer.rsi/eris_control.png create mode 100644 Resources/Textures/Buildings/computer.rsi/error.png create mode 100644 Resources/Textures/Buildings/computer.rsi/explosive.png create mode 100644 Resources/Textures/Buildings/computer.rsi/forensic.png create mode 100644 Resources/Textures/Buildings/computer.rsi/generic.png create mode 100644 Resources/Textures/Buildings/computer.rsi/generic_key.png create mode 100644 Resources/Textures/Buildings/computer.rsi/generic_key_off.png create mode 100644 Resources/Textures/Buildings/computer.rsi/holocontrol.png create mode 100644 Resources/Textures/Buildings/computer.rsi/id.png create mode 100644 Resources/Textures/Buildings/computer.rsi/id_key.png create mode 100644 Resources/Textures/Buildings/computer.rsi/id_key_off.png create mode 100644 Resources/Textures/Buildings/computer.rsi/mass_driver.png create mode 100644 Resources/Textures/Buildings/computer.rsi/mecha.png create mode 100644 Resources/Textures/Buildings/computer.rsi/med_key.png create mode 100644 Resources/Textures/Buildings/computer.rsi/med_key_off.png create mode 100644 Resources/Textures/Buildings/computer.rsi/medcomp.png create mode 100644 Resources/Textures/Buildings/computer.rsi/meta.json create mode 100644 Resources/Textures/Buildings/computer.rsi/mining.png create mode 100644 Resources/Textures/Buildings/computer.rsi/mining_key.png create mode 100644 Resources/Textures/Buildings/computer.rsi/mining_key_off.png create mode 100644 Resources/Textures/Buildings/computer.rsi/power_key.png create mode 100644 Resources/Textures/Buildings/computer.rsi/power_key_off.png create mode 100644 Resources/Textures/Buildings/computer.rsi/power_monitor.png create mode 100644 Resources/Textures/Buildings/computer.rsi/power_monitor_warn.png create mode 100644 Resources/Textures/Buildings/computer.rsi/rd_key.png create mode 100644 Resources/Textures/Buildings/computer.rsi/rd_key_off.png create mode 100644 Resources/Textures/Buildings/computer.rsi/rdcomp.png create mode 100644 Resources/Textures/Buildings/computer.rsi/recharge_comp.png create mode 100644 Resources/Textures/Buildings/computer.rsi/recharge_comp_on.png create mode 100644 Resources/Textures/Buildings/computer.rsi/request.png create mode 100644 Resources/Textures/Buildings/computer.rsi/robot.png create mode 100644 Resources/Textures/Buildings/computer.rsi/security.png create mode 100644 Resources/Textures/Buildings/computer.rsi/security_key.png create mode 100644 Resources/Textures/Buildings/computer.rsi/security_key_off.png create mode 100644 Resources/Textures/Buildings/computer.rsi/shuttle.png create mode 100644 Resources/Textures/Buildings/computer.rsi/solar_screen.png create mode 100644 Resources/Textures/Buildings/computer.rsi/supply.png create mode 100644 Resources/Textures/Buildings/computer.rsi/syndie_key.png create mode 100644 Resources/Textures/Buildings/computer.rsi/syndie_key_off.png create mode 100644 Resources/Textures/Buildings/computer.rsi/syndishuttle.png create mode 100644 Resources/Textures/Buildings/computer.rsi/tank.png create mode 100644 Resources/Textures/Buildings/computer.rsi/tcboss.png create mode 100644 Resources/Textures/Buildings/computer.rsi/tech_key.png create mode 100644 Resources/Textures/Buildings/computer.rsi/tech_key_off.png create mode 100644 Resources/Textures/Buildings/computer.rsi/teleport.png create mode 100644 Resources/Textures/Buildings/computer.rsi/teleport_key.png create mode 100644 Resources/Textures/Buildings/computer.rsi/teleport_key_off.png create mode 100644 Resources/Textures/Buildings/computer.rsi/telesci.png create mode 100644 Resources/Textures/Buildings/computer.rsi/telesci_key.png create mode 100644 Resources/Textures/Buildings/computer.rsi/telesci_key_off.png create mode 100644 Resources/Textures/Buildings/computer.rsi/turbinecomp.png diff --git a/Content.Client/GameObjects/Components/ComputerVisualizer2D.cs b/Content.Client/GameObjects/Components/ComputerVisualizer2D.cs new file mode 100644 index 0000000000..1f8f5bfd37 --- /dev/null +++ b/Content.Client/GameObjects/Components/ComputerVisualizer2D.cs @@ -0,0 +1,76 @@ +using Content.Shared.GameObjects.Components; +using Robust.Client.GameObjects; +using Robust.Client.Interfaces.GameObjects.Components; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Utility; +using YamlDotNet.RepresentationModel; + +namespace Content.Client.GameObjects.Components +{ + public sealed class ComputerVisualizer2D : AppearanceVisualizer + { + private string KeyboardState = "generic_key"; + private string ScreenState = "generic"; + + public override void LoadData(YamlMappingNode node) + { + base.LoadData(node); + + if (node.TryGetNode("key", out var scalar)) + { + KeyboardState = scalar.AsString(); + } + + if (node.TryGetNode("screen", out scalar)) + { + ScreenState = scalar.AsString(); + } + } + + public override void InitializeEntity(IEntity entity) + { + base.InitializeEntity(entity); + + var sprite = entity.GetComponent(); + sprite.LayerSetState(Layers.Screen, ScreenState); + sprite.LayerSetState(Layers.Keyboard, $"{KeyboardState}_off"); + sprite.LayerSetState(Layers.KeyboardOn, KeyboardState); + } + + public override void OnChangeData(AppearanceComponent component) + { + base.OnChangeData(component); + + var sprite = component.Owner.GetComponent(); + + if (!component.TryGetData(ComputerVisuals.Powered, out bool powered)) + { + powered = true; + } + + component.TryGetData(ComputerVisuals.Broken, out bool broken); + + if (broken) + { + sprite.LayerSetState(Layers.Body, "broken"); + sprite.LayerSetState(Layers.Screen, "computer_broken"); + } + else + { + sprite.LayerSetState(Layers.Body, "computer"); + sprite.LayerSetState(Layers.Screen, ScreenState); + } + + sprite.LayerSetVisible(Layers.Screen, powered); + sprite.LayerSetVisible(Layers.KeyboardOn, powered); + } + + public enum Layers + { + Body, + Screen, + Keyboard, + KeyboardOn + } + } +} diff --git a/Content.Server/GameObjects/Components/ComputerComponent.cs b/Content.Server/GameObjects/Components/ComputerComponent.cs new file mode 100644 index 0000000000..7c1c6765cb --- /dev/null +++ b/Content.Server/GameObjects/Components/ComputerComponent.cs @@ -0,0 +1,34 @@ +using Content.Server.GameObjects.Components.Power; +using Content.Shared.GameObjects.Components; +using Robust.Server.GameObjects; +using Robust.Shared.GameObjects; + +namespace Content.Server.GameObjects.Components +{ + [RegisterComponent] + public sealed class ComputerComponent : SharedComputerComponent + { + public override void Initialize() + { + base.Initialize(); + + if (Owner.TryGetComponent(out PowerDeviceComponent powerDevice)) + { + powerDevice.OnPowerStateChanged += PowerDeviceOnOnPowerStateChanged; + + if (Owner.TryGetComponent(out AppearanceComponent appearance)) + { + appearance.SetData(ComputerVisuals.Powered, powerDevice.Powered); + } + } + } + + private void PowerDeviceOnOnPowerStateChanged(object sender, PowerStateEventArgs e) + { + if (Owner.TryGetComponent(out AppearanceComponent appearance)) + { + appearance.SetData(ComputerVisuals.Powered, e.Powered); + } + } + } +} diff --git a/Content.Shared/GameObjects/Components/SharedComputerComponent.cs b/Content.Shared/GameObjects/Components/SharedComputerComponent.cs new file mode 100644 index 0000000000..a3e5162893 --- /dev/null +++ b/Content.Shared/GameObjects/Components/SharedComputerComponent.cs @@ -0,0 +1,21 @@ +using System; +using Robust.Shared.GameObjects; +using Robust.Shared.Serialization; + +namespace Content.Shared.GameObjects.Components +{ + public class SharedComputerComponent : Component + { + public override string Name => "Computer"; + } + + [Serializable, NetSerializable] + public enum ComputerVisuals + { + // Bool + Powered, + + // Bool + Broken + } +} diff --git a/Resources/Maps/stationstation.yml b/Resources/Maps/stationstation.yml index ae95e48979..2aa5635c2c 100644 --- a/Resources/Maps/stationstation.yml +++ b/Resources/Maps/stationstation.yml @@ -5,11 +5,59 @@ meta: postmapinit: false tilemap: 0: space - 1: floor_steel - 2: floor_techmaint - 3: floor_white - 4: plating - 5: underplating + 1: floor_carpet + 2: floor_dark + 3: floor_elevator_shaft + 4: floor_freezer + 5: floor_green_circuit + 6: floor_hull_center0 + 7: floor_hull_center1 + 8: floor_hull_center10 + 9: floor_hull_center11 + 10: floor_hull_center12 + 11: floor_hull_center13 + 12: floor_hull_center14 + 13: floor_hull_center15 + 14: floor_hull_center16 + 15: floor_hull_center17 + 16: floor_hull_center18 + 17: floor_hull_center19 + 18: floor_hull_center2 + 19: floor_hull_center20 + 20: floor_hull_center21 + 21: floor_hull_center22 + 22: floor_hull_center23 + 23: floor_hull_center24 + 24: floor_hull_center25 + 25: floor_hull_center26 + 26: floor_hull_center27 + 27: floor_hull_center28 + 28: floor_hull_center29 + 29: floor_hull_center3 + 30: floor_hull_center30 + 31: floor_hull_center31 + 32: floor_hull_center32 + 33: floor_hull_center33 + 34: floor_hull_center34 + 35: floor_hull_center35 + 36: floor_hull_center4 + 37: floor_hull_center5 + 38: floor_hull_center6 + 39: floor_hull_center7 + 40: floor_hull_center8 + 41: floor_hull_center9 + 42: floor_hydro + 43: floor_lino + 44: floor_mono + 45: floor_reinforced + 46: floor_rock_vault + 47: floor_showroom + 48: floor_steel + 49: floor_steel_dirty + 50: floor_techmaint + 51: floor_white + 52: plating + 53: underplating grids: - settings: chunksize: 16 @@ -18,17 +66,17 @@ grids: worldpos: 0,0 chunks: - ind: "-1,0" - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABQAAAAUAAAAFAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAAFAAAABQAAAAUAAAAFAAAAAQAAAAEAAAABAAAAAQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABQAAAAUAAAAFAAAABQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAA1AAAANQAAADUAAAA1AAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANQAAADIAAAA1AAAANQAAADUAAAA1AAAAMAAAADAAAAAwAAAAMAAAADUAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAA1AAAANQAAADUAAAA1AAAANQAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1AAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANQAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAA1AAAANQAAADUAAAA1AAAANQAAADUAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: "-1,-1" - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAABQAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABQAAAAUAAAACAAAAAgAAAAUAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABQAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAABQAAAAUAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAABQAAAAUAAAAFAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAgAAAAUAAAACAAAABQAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAAFAAAABQAAAAUAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAgAAAAUAAAAFAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAAFAAAABQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAABQAAAAUAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAgAAAAUAAAAFAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANQAAADUAAAA1AAAANQAAADUAAAA1AAAANQAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAA1AAAANQAAADIAAAAyAAAAMgAAADIAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1AAAANQAAADUAAAAyAAAAMgAAADUAAAAyAAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANQAAADUAAAA1AAAANQAAADUAAAA1AAAANQAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAA1AAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1AAAANQAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANQAAADUAAAA1AAAANQAAADUAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAAyAAAANQAAADUAAAA1AAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1AAAAMgAAADUAAAAyAAAANQAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANQAAADIAAAA1AAAANQAAADUAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAAyAAAANQAAADUAAAA1AAAANQAAADUAAAA1AAAANQAAADUAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1AAAAMgAAADUAAAA1AAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANQAAADIAAAA1AAAANQAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAAyAAAANQAAADUAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1AAAAMgAAADUAAAA1AAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAA== - ind: "-1,1" tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: "0,1" tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: "0,0" - tiles: AQAAAAUAAAABAAAAAQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAAAQAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABQAAAAEAAAABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAABAAAAAQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAAAQAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABQAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: MAAAADUAAAAwAAAAMAAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAA1AAAAMAAAADAAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAANQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAANQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1AAAANQAAADAAAAAwAAAANQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANQAAADUAAAAwAAAAMAAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAA1AAAAMAAAADAAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1AAAANQAAADAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAANQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: "0,-1" - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAIAAAACAAAABQAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAUAAAACAAAAAgAAAAUAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAIAAAACAAAABQAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAACAAAAAgAAAAUAAAAFAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAIAAAAFAAAAAgAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAIAAAACAAAAAgAAAAUAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABQAAAAIAAAACAAAABQAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAABAAAAAQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAA1AAAANQAAADUAAAA1AAAANQAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAMgAAADIAAAAyAAAANQAAADUAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMgAAADUAAAAyAAAAMgAAADUAAAA1AAAANQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAA1AAAANQAAADUAAAA1AAAANQAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAMgAAADIAAAAyAAAANQAAADUAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADUAAAA1AAAANQAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIAAAAyAAAAMgAAADIAAAA1AAAAMgAAADIAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAMgAAADIAAAAyAAAAMgAAADUAAAA1AAAANQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAANQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1AAAANQAAADIAAAAyAAAANQAAADUAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADUAAAAwAAAAMAAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAANQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: "1,-1" tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== entities: @@ -39,7 +87,7 @@ entities: pos: -1.47174,4.550247 rot: -1.5707963267949 rad type: Transform - - charge: 1000 + - charge: 1200 type: HitscanWeaponCapacitor - type: LaserItem uid: 1 @@ -48,7 +96,7 @@ entities: pos: -0.6748645,4.487747 rot: -1.5707963267949 rad type: Transform - - charge: 1000 + - charge: 1200 type: HitscanWeaponCapacitor - type: Brutepack uid: 2 @@ -697,6 +745,9 @@ entities: storagebase: entities: [] type: Robust.Server.GameObjects.Components.Container.Container + EntityStorageComponent: + entities: [] + type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - type: Wire uid: 91 @@ -1076,28 +1127,28 @@ entities: rot: -1.5707963267949 rad type: Transform - type: spawn_point_latejoin - uid: 145 + uid: 144 components: - grid: 0 pos: -3.5,-8.5 rot: -1.5707963267949 rad type: Transform - type: SecurityVestClothing - uid: 146 + uid: 145 components: - grid: 0 pos: 0.5223687,7.507263 rot: -1.5707963267949 rad type: Transform - type: HelmetSecurity - uid: 147 + uid: 146 components: - grid: 0 pos: -0.1807563,7.585388 rot: -1.5707963267949 rad type: Transform - type: locker_generic - uid: 148 + uid: 147 components: - grid: 0 pos: 1.5,-10.5 @@ -1110,30 +1161,33 @@ entities: Content.Server.GameObjects.Components.EntityStorageComponent149: entities: [] type: Robust.Server.GameObjects.Components.Container.Container + EntityStorageComponent: + entities: [] + type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - type: HelmetSecurity - uid: 149 + uid: 148 components: - grid: 0 pos: -0.7432563,7.601013 rot: -1.5707963267949 rad type: Transform - type: Medkit - uid: 150 + uid: 149 components: - grid: 0 pos: -3.209215,-1.486604 rot: -1.5707963267949 rad type: Transform - type: Medkit - uid: 151 + uid: 150 components: - grid: 0 pos: -4.146715,-1.408479 rot: -1.5707963267949 rad type: Transform - type: locker_generic - uid: 152 + uid: 151 components: - grid: 0 pos: 0.5,-10.5 @@ -1146,157 +1200,144 @@ entities: Content.Server.GameObjects.Components.EntityStorageComponent153: entities: [] type: Robust.Server.GameObjects.Components.Container.Container + EntityStorageComponent: + entities: [] + type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - type: fire_extinguisher - uid: 157 + uid: 152 components: - grid: 0 pos: -1.297692,-5.396082 rot: -1.5707963267949 rad type: Transform - type: spawn_point_latejoin - uid: 166 + uid: 153 components: - grid: 0 pos: -0.5,-0.5 rot: -1.5707963267949 rad type: Transform - type: spawn_point_latejoin - uid: 167 + uid: 154 components: - grid: 0 pos: -5.5,-0.5 rot: -1.5707963267949 rad type: Transform -- type: poweredsmalllight - uid: 169 +- type: LightTube + uid: 155 + components: + - parent: 171 + grid: 0 + type: Transform +- type: computerAlert + uid: 156 components: - grid: 0 - pos: 0.5,-5.5 - rot: 1.5707963267949 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - load: 40 - type: PowerDevice - - containers: - light_bulb: - entities: - - 171 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- type: LightTube - uid: 170 - components: - - parent: 189 - grid: 0 - type: Transform -- type: LightBulb - uid: 171 - components: - - parent: 169 - grid: 0 + pos: 0.5,0.5 + rot: -1.5707963267948966 rad type: Transform - type: table - uid: 175 + uid: 157 components: - grid: 0 pos: -4.5,-1.5 rot: -1.5707963267949 rad type: Transform - type: table - uid: 176 + uid: 158 components: - grid: 0 pos: -1.5,-1.5 rot: -1.5707963267949 rad type: Transform - type: table - uid: 177 + uid: 159 components: - grid: 0 pos: -2.5,-1.5 rot: -1.5707963267949 rad type: Transform - type: table - uid: 178 + uid: 160 components: - grid: 0 pos: -3.5,-1.5 rot: -1.5707963267949 rad type: Transform - type: WirelessMachine - uid: 179 + uid: 161 components: - grid: 0 pos: -6.5,0.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 180 + uid: 162 components: - grid: 0 pos: 4.5,-13.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 181 + uid: 163 components: - grid: 0 pos: -5.5,-13.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 182 + uid: 164 components: - grid: 0 pos: -6.5,-12.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 183 + uid: 165 components: - grid: 0 pos: -6.5,-13.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 184 + uid: 166 components: - grid: 0 pos: 5.5,-11.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 185 + uid: 167 components: - grid: 0 pos: 5.5,-12.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 186 + uid: 168 components: - grid: 0 pos: 5.5,-13.5 rot: -1.5707963267949 rad type: Transform - type: WiredMachine - uid: 187 + uid: 169 components: - grid: 0 pos: 5.5,-13.5 rot: -1.5707963267949 rad type: Transform - type: WiredMachine - uid: 188 + uid: 170 components: - grid: 0 pos: -6.5,-13.5 rot: -1.5707963267949 rad type: Transform - type: poweredlight - uid: 189 + uid: 171 components: - grid: 0 pos: -6.5,-9.5 @@ -1308,17 +1349,17 @@ entities: - containers: light_bulb: entities: - - 170 + - 155 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer - type: LightBulb - uid: 190 + uid: 172 components: - - parent: 191 + - parent: 173 grid: 0 type: Transform - type: poweredsmalllight - uid: 191 + uid: 173 components: - grid: 0 pos: -4.5,-5.5 @@ -1331,291 +1372,291 @@ entities: - containers: light_bulb: entities: - - 190 + - 172 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer - type: spawn_point_latejoin - uid: 192 + uid: 174 components: - grid: 0 pos: -9.5,-5.5 rot: -1.5707963267949 rad type: Transform - type: spawn_point_latejoin - uid: 193 + uid: 175 components: - grid: 0 pos: -0.5,5.5 rot: -1.5707963267949 rad type: Transform - type: spawn_point_latejoin - uid: 194 + uid: 176 components: - grid: 0 pos: -5.5,5.5 rot: -1.5707963267949 rad type: Transform - type: spawn_point_latejoin - uid: 195 + uid: 177 components: - grid: 0 pos: -0.5,-2.5 rot: -1.5707963267949 rad type: Transform - type: spawn_point_latejoin - uid: 196 + uid: 178 components: - grid: 0 pos: -5.5,-2.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 197 + uid: 179 components: - grid: 0 pos: 9.5,0.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 198 + uid: 180 components: - grid: 0 pos: 9.5,1.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 199 + uid: 181 components: - grid: 0 pos: 9.5,2.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 200 + uid: 182 components: - grid: 0 pos: 9.5,3.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 201 + uid: 183 components: - grid: 0 pos: 9.5,4.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 202 + uid: 184 components: - grid: 0 pos: 9.5,5.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 203 + uid: 185 components: - grid: 0 pos: 9.5,6.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 204 + uid: 186 components: - grid: 0 pos: 9.5,7.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 205 + uid: 187 components: - grid: 0 pos: 9.5,8.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 206 + uid: 188 components: - grid: 0 pos: 9.5,9.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 207 + uid: 189 components: - grid: 0 pos: 9.5,10.5 rot: -1.5707963267949 rad type: Transform - type: table - uid: 208 + uid: 190 components: - grid: 0 pos: -6.5,7.5 rot: -1.5707963267949 rad type: Transform - type: table - uid: 209 + uid: 191 components: - grid: 0 pos: -5.5,7.5 rot: -1.5707963267949 rad type: Transform - type: table - uid: 210 + uid: 192 components: - grid: 0 pos: -4.5,7.5 rot: -1.5707963267949 rad type: Transform - type: table - uid: 211 + uid: 193 components: - grid: 0 pos: -3.5,7.5 rot: -1.5707963267949 rad type: Transform - type: table - uid: 212 + uid: 194 components: - grid: 0 pos: -2.5,7.5 rot: -1.5707963267949 rad type: Transform - type: table - uid: 213 + uid: 195 components: - grid: 0 pos: -1.5,7.5 rot: -1.5707963267949 rad type: Transform - type: table - uid: 214 + uid: 196 components: - grid: 0 pos: -0.5,7.5 rot: -1.5707963267949 rad type: Transform - type: table - uid: 215 + uid: 197 components: - grid: 0 pos: 0.5,7.5 rot: -1.5707963267949 rad type: Transform - type: table - uid: 216 + uid: 198 components: - grid: 0 pos: 1.5,7.5 rot: -1.5707963267949 rad type: Transform - type: table - uid: 217 + uid: 199 components: - grid: 0 pos: -4.5,4.5 rot: -1.5707963267949 rad type: Transform - type: table - uid: 218 + uid: 200 components: - grid: 0 pos: -3.5,4.5 rot: -1.5707963267949 rad type: Transform - type: table - uid: 219 + uid: 201 components: - grid: 0 pos: -2.5,4.5 rot: -1.5707963267949 rad type: Transform - type: table - uid: 220 + uid: 202 components: - grid: 0 pos: -1.5,4.5 rot: -1.5707963267949 rad type: Transform - type: table - uid: 221 + uid: 203 components: - grid: 0 pos: -0.5,4.5 rot: -1.5707963267949 rad type: Transform - type: airlock - uid: 222 + uid: 204 components: - grid: 0 pos: 2.5,8.5 rot: -1.5707963267949 rad type: Transform - type: airlock - uid: 223 + uid: 205 components: - grid: 0 pos: 3.5,8.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 224 + uid: 206 components: - grid: 0 pos: -9.5,0.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 225 + uid: 207 components: - grid: 0 pos: -8.5,-0.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 226 + uid: 208 components: - grid: 0 pos: -8.5,0.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 227 + uid: 209 components: - grid: 0 pos: -9.5,0.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 228 + uid: 210 components: - grid: 0 pos: -9.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 229 + uid: 211 components: - grid: 0 pos: -10.5,-0.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 230 + uid: 212 components: - grid: 0 pos: -10.5,0.5 rot: -1.5707963267949 rad type: Transform - type: airlock - uid: 233 + uid: 213 components: - grid: 0 pos: -9.5,1.5 rot: -1.5707963267949 rad type: Transform - type: poweredsmalllight - uid: 234 + uid: 214 components: - grid: 0 pos: -9.5,-6.5 @@ -1628,17 +1669,17 @@ entities: - containers: light_bulb: entities: - - 235 + - 215 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer - type: LightBulb - uid: 235 + uid: 215 components: - - parent: 234 + - parent: 214 grid: 0 type: Transform - type: poweredlight - uid: 236 + uid: 216 components: - grid: 0 pos: -0.5,0.5 @@ -1651,17 +1692,17 @@ entities: - containers: light_bulb: entities: - - 237 + - 217 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer - type: LightTube - uid: 237 + uid: 217 components: - - parent: 236 + - parent: 216 grid: 0 type: Transform - type: poweredlight - uid: 238 + uid: 218 components: - grid: 0 pos: -5.5,0.5 @@ -1674,17 +1715,17 @@ entities: - containers: light_bulb: entities: - - 239 + - 219 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer - type: LightTube - uid: 239 + uid: 219 components: - - parent: 238 + - parent: 218 grid: 0 type: Transform - type: poweredlight - uid: 240 + uid: 220 components: - grid: 0 pos: -6.5,5.5 @@ -1696,17 +1737,17 @@ entities: - containers: light_bulb: entities: - - 241 + - 221 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer - type: LightTube - uid: 241 + uid: 221 components: - - parent: 240 + - parent: 220 grid: 0 type: Transform - type: poweredlight - uid: 242 + uid: 222 components: - grid: 0 pos: 3.5,5.5 @@ -1719,17 +1760,17 @@ entities: - containers: light_bulb: entities: - - 243 + - 223 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer - type: LightTube - uid: 243 + uid: 223 components: - - parent: 242 + - parent: 222 grid: 0 type: Transform - type: poweredlight - uid: 244 + uid: 224 components: - grid: 0 pos: -1.5,7.5 @@ -1742,26 +1783,26 @@ entities: - containers: light_bulb: entities: - - 245 + - 225 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer - type: LightTube - uid: 245 + uid: 225 components: - - parent: 244 + - parent: 224 grid: 0 type: Transform - type: APC - uid: 246 + uid: 226 components: - grid: 0 pos: 4.5,-10.5 rot: -1.5707963267949 rad type: Transform - - load: 360 + - load: 320 type: PowerProvider - type: APC - uid: 247 + uid: 227 components: - grid: 0 pos: -6.5,-7.5 @@ -1770,189 +1811,189 @@ entities: - load: 120 type: PowerProvider - type: Wire - uid: 248 + uid: 228 components: - grid: 0 pos: -9.5,2.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 249 + uid: 229 components: - grid: 0 pos: -9.5,3.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 250 + uid: 230 components: - grid: 0 pos: -8.5,3.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 251 + uid: 231 components: - grid: 0 pos: -7.5,3.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 252 + uid: 232 components: - grid: 0 pos: -6.5,3.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 253 + uid: 233 components: - grid: 0 pos: -5.5,3.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 254 + uid: 234 components: - grid: 0 pos: -4.5,3.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 255 + uid: 235 components: - grid: 0 pos: -3.5,3.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 256 + uid: 236 components: - grid: 0 pos: -2.5,3.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 257 + uid: 237 components: - grid: 0 pos: -1.5,3.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 258 + uid: 238 components: - grid: 0 pos: -0.5,3.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 259 + uid: 239 components: - grid: 0 pos: 0.5,3.5 rot: -1.5707963267949 rad type: Transform - type: Wire - uid: 260 + uid: 240 components: - grid: 0 pos: 1.5,3.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 261 + uid: 241 components: - grid: 0 pos: 9.5,-0.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 262 + uid: 242 components: - grid: 0 pos: 9.5,-1.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 263 + uid: 243 components: - grid: 0 pos: 9.5,-2.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 264 + uid: 244 components: - grid: 0 pos: 9.5,-3.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 265 + uid: 245 components: - grid: 0 pos: 9.5,-4.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 266 + uid: 246 components: - grid: 0 pos: 9.5,-5.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 267 + uid: 247 components: - grid: 0 pos: 9.5,-6.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 268 + uid: 248 components: - grid: 0 pos: 9.5,-7.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 269 + uid: 249 components: - grid: 0 pos: 9.5,-8.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 270 + uid: 250 components: - grid: 0 pos: 9.5,-9.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 271 + uid: 251 components: - grid: 0 pos: 9.5,-10.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 272 + uid: 252 components: - grid: 0 pos: 9.5,-11.5 rot: -1.5707963267949 rad type: Transform - type: catwalk - uid: 273 + uid: 253 components: - grid: 0 pos: 8.5,-8.5 rot: -1.5707963267949 rad type: Transform - type: poweredsmalllight - uid: 274 + uid: 254 components: - grid: 0 pos: 8.5,-7.5 @@ -1965,17 +2006,17 @@ entities: - containers: light_bulb: entities: - - 275 + - 255 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer - type: LightBulb - uid: 275 + uid: 255 components: - - parent: 274 + - parent: 254 grid: 0 type: Transform - type: APC - uid: 276 + uid: 256 components: - grid: 0 pos: -7.5,3.5 @@ -1984,14 +2025,14 @@ entities: - load: 280 type: PowerProvider - type: solid_wall - uid: 277 + uid: 257 components: - grid: 0 pos: 7.5,-7.5 rot: -1.5707963267949 rad type: Transform - type: YellowToolboxItemFilled - uid: 278 + uid: 258 components: - grid: 0 pos: -0.8099712,-5.21454 @@ -2003,7 +2044,7 @@ entities: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - type: YellowToolboxItemFilled - uid: 279 + uid: 259 components: - grid: 0 pos: -0.5597038,-5.679647 @@ -2015,49 +2056,59 @@ entities: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - type: FlashlightLantern - uid: 280 + uid: 260 components: - grid: 0 pos: -1.934832,-5.154238 rot: -1.5707963267949 rad type: Transform + - containers: + flashlight_cell_container: + entities: [] + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer - type: FlashlightLantern - uid: 282 + uid: 261 components: - grid: 0 pos: -2.017696,-5.71715 rot: -1.5707963267949 rad type: Transform + - containers: + flashlight_cell_container: + entities: [] + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer - type: Crowbar - uid: 285 + uid: 262 components: - grid: 0 pos: -2.861032,-5.524786 rot: -1.5707963267949 rad type: Transform - type: UniformEngineering - uid: 286 + uid: 263 components: - grid: 0 pos: -0.6474335,-10.27245 rot: -1.5707963267949 rad type: Transform - type: GasMaskClothing - uid: 287 + uid: 264 components: - grid: 0 pos: -0.2880585,-10.69432 rot: -1.5707963267949 rad type: Transform - type: HazardVestClothing - uid: 288 + uid: 265 components: - grid: 0 pos: -0.9130585,-10.66307 rot: -1.5707963267949 rad type: Transform - type: UtilityBeltClothing - uid: 289 + uid: 266 components: - grid: 0 pos: -1.895102,-10.33495 @@ -2069,7 +2120,7 @@ entities: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - type: UtilityBeltClothing - uid: 290 + uid: 267 components: - grid: 0 pos: -1.770102,-10.63182 @@ -2081,28 +2132,43 @@ entities: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - type: magazine_12mm_filled - uid: 291 + uid: 268 components: - grid: 0 pos: -6.605512,7.638151 rot: -1.5707963267949 rad type: Transform + - containers: + magazine_bullet_container: + entities: [] + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer - type: magazine_12mm_filled - uid: 312 + uid: 269 components: - grid: 0 pos: -6.339887,7.669401 rot: -1.5707963267949 rad type: Transform + - containers: + magazine_bullet_container: + entities: [] + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer - type: magazine_12mm_filled - uid: 333 + uid: 270 components: - grid: 0 pos: -6.027387,7.622526 rot: -1.5707963267949 rad type: Transform + - containers: + magazine_bullet_container: + entities: [] + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer - type: BackpackClothing - uid: 354 + uid: 271 components: - grid: 0 pos: -5.089887,7.591276 @@ -2114,7 +2180,7 @@ entities: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - type: BackpackClothing - uid: 355 + uid: 272 components: - grid: 0 pos: -4.683637,7.606901 @@ -2126,336 +2192,352 @@ entities: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - type: BlackGloves - uid: 356 + uid: 273 components: - grid: 0 pos: -3.386762,7.466276 rot: -1.5707963267949 rad type: Transform - type: smg_c20r - uid: 357 + uid: 274 components: - grid: 0 pos: -2.524035,7.579326 rot: -1.5707963267949 rad type: Transform + - containers: + ballistics_chamber_0: + entities: [] + type: Content.Server.GameObjects.ContainerSlot + ballistic_gun_magazine: + entities: [] + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer - type: smg_c20r - uid: 379 + uid: 275 components: - grid: 0 pos: -1.94591,7.485576 rot: -1.5707963267949 rad type: Transform + - containers: + ballistics_chamber_0: + entities: [] + type: Content.Server.GameObjects.ContainerSlot + ballistic_gun_magazine: + entities: [] + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer - type: solid_wall - uid: 381 + uid: 276 components: - grid: 0 pos: -10.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 382 + uid: 277 components: - grid: 0 pos: -11.5,4.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 383 + uid: 278 components: - grid: 0 pos: -10.5,4.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 384 + uid: 279 components: - grid: 0 pos: -9.5,4.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 385 + uid: 280 components: - grid: 0 pos: -8.5,4.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 386 + uid: 281 components: - grid: 0 pos: -7.5,4.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 387 + uid: 282 components: - grid: 0 pos: -8.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 388 + uid: 283 components: - grid: 0 pos: -5.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 389 + uid: 284 components: - grid: 0 pos: -6.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 390 + uid: 285 components: - grid: 0 pos: -7.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 391 + uid: 286 components: - grid: 0 pos: -0.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 392 + uid: 287 components: - grid: 0 pos: 0.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 393 + uid: 288 components: - grid: 0 pos: 1.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 394 + uid: 289 components: - grid: 0 pos: 1.5,0.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 395 + uid: 290 components: - grid: 0 pos: 1.5,-3.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 396 + uid: 291 components: - grid: 0 pos: 4.5,-3.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 397 + uid: 292 components: - grid: 0 pos: 4.5,-2.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 398 + uid: 293 components: - grid: 0 pos: 4.5,-1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 399 + uid: 294 components: - grid: 0 pos: 4.5,-0.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 400 + uid: 295 components: - grid: 0 pos: 4.5,0.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 401 + uid: 296 components: - grid: 0 pos: 4.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 402 + uid: 297 components: - grid: 0 pos: 4.5,2.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 403 + uid: 298 components: - grid: 0 pos: 4.5,3.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 404 + uid: 299 components: - grid: 0 pos: 4.5,4.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 405 + uid: 300 components: - grid: 0 pos: 4.5,5.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 406 + uid: 301 components: - grid: 0 pos: 4.5,6.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 407 + uid: 302 components: - grid: 0 pos: 4.5,7.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 408 + uid: 303 components: - grid: 0 pos: 4.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 409 + uid: 304 components: - grid: 0 pos: 1.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 410 + uid: 305 components: - grid: 0 pos: 0.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 411 + uid: 306 components: - grid: 0 pos: -0.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 412 + uid: 307 components: - grid: 0 pos: -1.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 413 + uid: 308 components: - grid: 0 pos: -2.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 414 + uid: 309 components: - grid: 0 pos: -3.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 415 + uid: 310 components: - grid: 0 pos: -4.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 416 + uid: 311 components: - grid: 0 pos: -5.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 417 + uid: 312 components: - grid: 0 pos: -6.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 418 + uid: 313 components: - grid: 0 pos: -7.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 419 + uid: 314 components: - grid: 0 pos: -7.5,7.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 420 + uid: 315 components: - grid: 0 pos: -7.5,6.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 421 + uid: 316 components: - grid: 0 pos: -7.5,5.5 rot: -1.5707963267949 rad type: Transform - type: LeatherGloves - uid: 422 + uid: 317 components: - grid: 0 pos: -4.332221,4.64238 rot: -1.5707963267949 rad type: Transform - type: LeatherGloves - uid: 423 + uid: 318 components: - grid: 0 pos: -3.519721,4.64238 rot: -1.5707963267949 rad type: Transform - type: LeatherGloves - uid: 424 + uid: 319 components: - grid: 0 pos: -2.597846,4.61113 rot: -1.5707963267949 rad type: Transform - type: LedLightTube - uid: 425 + uid: 320 components: - grid: 0 pos: -3.511025,-10.35149 @@ -2463,4 +2545,31 @@ entities: type: Transform - color: '#EEEEFFFF' type: Sprite +- type: computerPowerMonitoring + uid: 321 + components: + - grid: 0 + pos: 0.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- type: poweredsmalllight + uid: 322 + components: + - grid: 0 + pos: 0.5,-5.5 + rot: 1.5707963267948966 rad + type: Transform + - containers: + light_bulb: + entities: + - 323 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- type: LightBulb + uid: 323 + components: + - parent: 322 + grid: 0 + pos: -0.5,5.5 + type: Transform ... diff --git a/Resources/Prototypes/Entities/buildings/computers.yml b/Resources/Prototypes/Entities/buildings/computers.yml new file mode 100644 index 0000000000..592b397485 --- /dev/null +++ b/Resources/Prototypes/Entities/buildings/computers.yml @@ -0,0 +1,117 @@ +- type: entity + id: computerBase + name: Computer + components: + - type: Clickable + - type: Collidable + - type: BoundingBox + - type: Icon + sprite: Buildings/computer.rsi + state: computer + + - type: Computer + - type: PowerDevice + priority: High + + - type: Sprite + sprite: Buildings/computer.rsi + layers: + - state: computer + map: ["enum.ComputerVisualizer2D+Layers.Body"] + - state: generic_key_off + map: ["enum.ComputerVisualizer2D+Layers.Keyboard"] + - state: generic + shader: unshaded + map: ["enum.ComputerVisualizer2D+Layers.Screen"] + - state: generic_key + shader: unshaded + map: ["enum.ComputerVisualizer2D+Layers.KeyboardOn"] + + - type: Appearance + visuals: + - type: ComputerVisualizer2D + key: generic_key + screen: generic + + +- type: entity + id: computerAlert + parent: computerBase + name: Alerts Computer + components: + - type: Appearance + visuals: + - type: ComputerVisualizer2D + key: atmos_key + screen: "alert:2" + + +- type: entity + id: computerPowerMonitoring + parent: computerBase + name: Power Monitoring Computer + components: + - type: Appearance + visuals: + - type: ComputerVisualizer2D + key: power_key + screen: power_monitor + + +- type: entity + id: computerSupplyOrdering + parent: computerBase + name: Supply Ordering Computer + components: + - type: Appearance + visuals: + - type: ComputerVisualizer2D + key: tech_key + screen: supply + + +- type: entity + id: computerMedicalRecords + parent: computerBase + name: Medical Records Computer + components: + - type: Appearance + visuals: + - type: ComputerVisualizer2D + key: med_key + screen: medcomp + + +- type: entity + id: computerResearchAndDevelopment + parent: computerBase + name: R&D Computer + components: + - type: Appearance + visuals: + - type: ComputerVisualizer2D + key: rd_key + screen: rdcomp + + +- type: entity + id: computerId + parent: computerBase + name: ID Card Computer + components: + - type: Appearance + visuals: + - type: ComputerVisualizer2D + key: id_key + screen: id + +- type: entity + id: computerComms + parent: computerBase + name: Communications Computer + components: + - type: Appearance + visuals: + - type: ComputerVisualizer2D + key: generic_key + screen: comm diff --git a/Resources/Textures/Buildings/computer.rsi/ai-fixer-404.png b/Resources/Textures/Buildings/computer.rsi/ai-fixer-404.png new file mode 100644 index 0000000000000000000000000000000000000000..1bb9234abef2b7fcbffb0e63e3ab6e7e9780bb56 GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=S3O-ELn`LHy?Kzg*?^}tar-N- z6ozLf|2fZ4yu-YRQ;0=G)3EjbZl@{gw|_KoFfbf&-uq2{rf8q&xxdr5mowxq=UQOZ z`Ra;QclYsnrumD-L)1AFfA~6ZIDZZ(4LbZO)3V6^gdaSW-L^Y*S|)?oty)_|?A zB$;kLv)T7wlx3f@M|fLXh$ip0{RQ`$b(%QigHj$J<?!=v$X>{4+0t{`cBu3%Aa|z{=*uJ z((ZNBqF(Fnkc^k2i5-1+C?PoHk*(%GG7 zDf_6z>TQ*SqgB1`>XH*n)aRe;_b^|%^z-9Oll`AF15G+mU(3Aw^XDJCcW+w?GT77A K&t;ucLK6U_p{Bq9 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/ai-fixer-full.png b/Resources/Textures/Buildings/computer.rsi/ai-fixer-full.png new file mode 100644 index 0000000000000000000000000000000000000000..da7937d84d73c0ff45b158a96e5a3f62386ac43b GIT binary patch literal 594 zcmV-Y0LBz#up=4_C4I&+!JGCivNq>OQ z5FA8^L;nE-0YNM#P{gVzJ|8i;@8viYHy>!5r(hI;@aA|j&ylok|7 zWD9aC7RAL|Hvj2Jt#0XF^OVs7D_27rBKYxVr*g($B*?h zz1|Bv$wzNQJSAv*J^&zM8i+(RwAz9v=k%lB0Zmt+>l#)TY^*HU&~**&4}pAl`k7zP znSp^3!1p_NXg>x3c&Y<)M8j_5OW%_F7wL*C)mJZZJ#`gZYbCf}_i!ik09%_caQ@O2 z6fejA*tLNLh{iN@d>_xt+W>%T)&=N>3CC;oXbXoE`SuaX)HDFW&AYb&>>pY(HI3bO z?*rEbegYe-C8)NCy|=I7e*S>=Plb)u5~3&1bUXL1I6Zy>o&pR*$D%!tMSC8Gp~F-A zu_JG;CX&b&r0yumRhyElHl^+;Nn{H$R}%?4KO!O`A|fIpA|fIpBBEhs#jSyPZwn=t zd`)B!ieSYp$%paynXie|9TjR3thgn0M;)pFf%5@>W2s?cba_3L7PR7)j4rQZsS!Bi z(fb5`S3g~G`(A)_#g%S!;ek7#yi?XPQ!@u$-Zh!28I*U*;Z3cDbqNj1B@7^(-_XEp go`{Huh=_*LFX~6%Do!pI(EtDd07*qoM6N<$f)bAZE&u=k literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/ai-fixer-on.png b/Resources/Textures/Buildings/computer.rsi/ai-fixer-on.png new file mode 100644 index 0000000000000000000000000000000000000000..bb13f7a7f2f6289e192745b5049acfc2156f6821 GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$RgAGXbBqvETFfclKx;TbZ%z1lfqwnDWfrf|7 zftRY#f_z0W<{+BD!{K z+J{|RDt~{we(qYITNkg}XWcfbwLQJ-OJINYOXa=s{}ngO*Dm?a&j-^2ryK77s?5E1 zJ#FzOO+mqrKfamRM3vrs8lE@z#rm?lrD1ilFM;&GNT>RU@@W_BGyHGV|2TbG{`~v< z=Ih_S6xUz!?X=pW-Z^zQ->f(ORVrZo>v5TzJlt>yF41Njcm?z{4GH0ME2XY_CpSb6_-2VRDhUD%WeWl&gHVK|#n3t&uRKE>Py~1&I Xn`;Z_@_g~L1DWIL>gTe~DWM4foA`^# literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/ai-fixer.png b/Resources/Textures/Buildings/computer.rsi/ai-fixer.png new file mode 100644 index 0000000000000000000000000000000000000000..fe98279329681d2a10f92f19fc4c08ad2c5c06cf GIT binary patch literal 635 zcmV->0)+jEP)Q;#<0}>Sv zfU554fLu{XLgEVvZSS|)N$zr=&u1qF7=~dOhWW2lqB@;3n;O6yqr|;q7{zuz=cHv&SsE#{7`acJ6-+iBh zH|l#Hj6?y_;9j}_qJuoON`9@8F_p7O-2lHc1p9=|L4J2usA)fbDkN2qdx3W*)=}kmiMT z`W=d-l|{EVNgA*?j&5TDtczgUO;(o7I>wC{!!QiPFbu;m48t%C^J_TNzk3rX?{Z@L zptL2tzE`>kUf)ao|1b(;0RTW)qEr#Qz87XapxuTfKy}=KutX`-!D&08u*A-<^Q@2r z0M;T%TcX}*6edEw(Fmn2$-x7JqcIgIhygAAsOWYwkx;$};HB z{YvkwYwS2LdS_kIxj$(Nlq~`^_}p;XPFVC-_?SM&0if`2fuejd48t%C!!XPr;md=urq(LGOlSM0{Byd6T8mB?N+b;f0jQQ z3?WzOmUrGyfL#Ej%hAu2f8Gw53AZ2Q1sKYn=DZm780@hGaI}DuA%LBqnFH$8#~1q; zgGUSZaX1VB-rZiFoIl)mv1YeuFc;Scs!N0_8f3*{#okdBX169BEJcd{06Y|n=p{y0Cs*8 z*x%2y^F>5NL_|bHL_|bHj>i5joSjb<$w!0O`Bd!Vq3rzqb`<9h_E{m!!Or(lR;xKL zOwC-B^f2svN4v_?rwTaImdMWcP}Tv3weW7(`Hp;spp(|-w_w*NU>X8G3RSCN=hOWs zwfQaBH3^@+HopZvdqJcjfSvEbX)mbqwf@=pY}R!TV=v)S0Z(K9xv$r-?>ylULH!Su zozG%j$NfbJ!>j)y1$*V$`641BA|fIpBB%5l$J8!zVeSnp00000NkvXXu0mjfgnnnw literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/aiupload_key.png b/Resources/Textures/Buildings/computer.rsi/aiupload_key.png new file mode 100644 index 0000000000000000000000000000000000000000..d2103a9f39f6eafbb905e94a312b8fe826ce620c GIT binary patch literal 867 zcmV-p1DyPcP)w$FXZrz2JU3N|1=Q2rW_q*@C&g`4FGXOylL=|Jw z+W;wchl5w@Z*Vp$-k(hDEB2>TDUr{H3jm(I3G z`0#yE=!*`Fm)t9~ubzv1zIG)}mBFo@MPy{!VuHN^bbEY=r{W0q21Ef+(#S}jXSe`l zTK#};twb?*Tz%vvNbUKR&=f50-*HoMF+-(X%LEpMN^ z>rGiBptu^7D@M-KFxm(p2!bF8f*=TjAP9n}I#mBcYw7If^Mg+T?-1~L9(XVa`^0F; z(UkMBI~;s^az@a=`W!6tuT}r5tjYNR+s+c$--odN_ymssQ?X9{`Yg=fB4Cg5ur|_`Lq!YEP<;y6Y&O2eH-v`$ucF_h z+h59hR{OmU(FRSj(SwuKIb^e0Rc+Q}1W27XswSY(J3#3O+hug#Fw?5pSU{5zP}ntc zIhq6q^wd#8lK=qnyGDBH$e~F9LXj|-)E=1BUdgVJ9y&^Bk_DRGEijo(;5bhB{W4j= zY&L`EdBkJ8|3?-`INLU+kE`GW0BmLwBYCeW=@-PVd#Aw+% z$;3X=lQV)w?ZPx_lMJBp`2tPSU_G;epG!AU$83UKuKW?E<#(uKHj!I0qn_Eok%~4J z&}0g*ZZEjL0J5Hb@I7M{>+n5e$a?z0^##DXy((IGh9)Dx8e2mqasyUo1MDGNv5qMc thLza_dzgbYwx-DlAP9mW2!g0u{sL8+r62ofin#y)002ovPDHLkV1kl+n7jZ0 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/alert:0.png b/Resources/Textures/Buildings/computer.rsi/alert:0.png new file mode 100644 index 0000000000000000000000000000000000000000..873d7774753fd530695a1afc929bed42266457c8 GIT binary patch literal 838 zcmV-M1G)T(P)Z`uo7ay&vz-?|tw0es|n^06`E0K@cyM z0YBr=%6dDIR;3Pfb!g&ZW7T)OD2e+S6KNIZTvqBpa^;lAtFQ{0LJ^rl@vb~o0{~P? zrF-Q-`-ApR4c`c0WC}%`PZw|Rfx3|g;7-!E?c2$|@#_28SsQid;2*dzPFDefux%TP zqQJK8P&<42v61md_x~^lIh!|#EyiKAPEZ&e^U6VXKZ0^l*CkLl@)+KCFZLt>c#~8V zI-_Aw;VDx78mPP2jISvMCMtrOU`4Wo4e0A20oT-IxE&Sh~tn?+Dk56uC7 z6VP-WilRW%^-w!+4zQN;u$Jz|?KSGor`;=TY~OgfIy3{bc5E^3uIIrq6m|~0a-jV- z^sf%h@L6||`r&WxXA>4-64sLVt?~kw~jZmd(gTNR~~Z z|A*WH0Pc=Wlp-X{W}9u0@FFCDRn0{vLb7bOoo2(^Kj1}3fNx(*SkR8(Y~J)WCk(Bu zx1DAK6U*0_SiXkSY;gA_B*5CXy8~=hb0XbD3fJy1!>Z)5JH3NHbnB*@MW4I>YmNO9yjj7bm#K@bE%5dRT>009<{907*qoM6N<$f+j(MtN;K2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/alert:1.png b/Resources/Textures/Buildings/computer.rsi/alert:1.png new file mode 100644 index 0000000000000000000000000000000000000000..34bede981f1e9f2984f4e3fcca8f3e21cc8fd412 GIT binary patch literal 834 zcmV-I1HJr-P)?Mm!mKsXw&_#GjwuE5XImVQ9OP1iJLntZA zV(^m1289g48d5|tw1G~hONc0BO2T!JrN*rk)w;uKn)gk<$8q=WzxSTbIspVh5ClQo zS7Khq>Ge8G<`tn6T^#H9{`R%!d{L6{GA8p1^k)k~ClV{CI35Ib7#J}Oj9(j9D0Kk< z?PhbN?Q3uBpwQS68c-BBcOS5$ ztKDp(tg6`9?cQqtBXuwR=lSOjCcynVh!F%q5ClOG1VIo4K@fL_>Ge7b?ll>Bd_Gd30Q3`DA+Bd-FL6K*eNC|a2>|h=gky`{LsVT~z zu`mpvvep^i2#1RTAt~TQ!X(MgGE~+&IO-I+#u1VNZ(e@oav}`5#V(f1J@<>0uy8*G zw%hY~@k$NuEEq?0-slT0fb$5_HcQAYcDbAgLs?a^-JXv&1)Rr_wprqGA`FF6#3}If zW1VYaUT&tqxF25#Bcti8*8}VIz$SeV8ZgGv#SY^=g>t39X+?=W|E425JNdr@g;E#s zl>|;J3fEbfO8~$YVXig#ZvaIs9uOb^03nXtg*gd=AP9mW2;x8DC%#`|YLCv~7XSbN M07*qoM6N<$f^o@x=Kufz literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/alert:2.png b/Resources/Textures/Buildings/computer.rsi/alert:2.png new file mode 100644 index 0000000000000000000000000000000000000000..5e17be57cca0f3e4b994c2177d88866088b1ed84 GIT binary patch literal 1190 zcmV;X1X=ruP)$NJBsrL7Y`|2{}r$C^4^te6r=-N!H!dy}S7Pfx&tReRuc2dnZ}{ zXMl)^h=_=88qIDnk}r$-ctUE>$JY(~^V=`Bc|ptf)2!X#d^~~1gS%3LCOMp{^ZoSA zxF-~~RTQ<=!Q-{{Iso9PQW<*eIKF#;wcP{P8`#w}bhV2U*YEsk8(Dy&wu%)1E9bvk zjw%(Hra9QzQR63t98L;3R~y&Wv_bymBKVc>2iqxV9Md$R>pD!+96N5EeKU7{aJ`X! z=U=@Co$Y_d%)?m}K6J2qduj04Y21#}J!oVBilR9<^NXT67`Jv(*Y%<2+l^aiU*fM< zV|M#X3qqiEe&#O-;amQEJb|;fe**y8+d0Jc>nMEaz%)%1&_M}{cys@*a9li~< z5j7fO=n6>Hv9obHIM}7bMYNBTj^kT%{Q>|$3&68p6U)_Cc$Z0BZwh+fuHt>W>T*}T zQ=JcB=I(m6NnlOWkrycAKC%{{f;%2MUasn>H@TnlS+#qBR|vy`16knHq%X< z?SEEsPmqxx>H?Gw7XkFo#IWYO>W&VIetRIG>y`0O4rqR;uK;Tbu+GFV=G$HYe)h+E zQ94}2X1a-;jZ-{+EAy58%XeHO=Cwb*d#SH~RDZk|))de_PU7*ePo|JC{d~uJz}4>H zN&4fhr9}YH(lp%a$$x`#FY^dn08#*AsXZVrJz}I6nFKlj3;?lI&2_%xJs|e<0I{bR z3mYa`mEsp`5k#u~v+voL^Nsqt>(_8Bz||EZldMWv5CSdq7bjd@-6Bgh|6nSw>$gCz zkh!j?(Gd4Cj{x)w;&=aj)M$tonf`J5F<-u!{r^#;A^z(Lq3W-rUh_l!IRF6OWfIzQ zb@COMLCFt&0RY%8e!EHeL_|bHL_|bHL_|b>_*#1PRq))JsIomg2>D)l`bI2jG{l?x za{tM8nDS+CT>z^iVQX&mKPH_Pt0SQ^cLTo-jO5EAhZXVs{3nMMU#EdczAT!65a&Nl zAhgraSMjBMn0YEd3&4})9$p&1%h?(i`QImN_{nG}$(O-(0iN}mI8N^2q?VMpIoG$; z6UZcM%JOA#{Wdg~s$( z=n5hH{xGCEUnbX6(Av7%DL{3;EK;VRkFWiI7os{}smoJkL+%FN^B}sNQ+i`Leh!fa;xBolitWL_|bHL=-~*0}18Xau`#UzyJUM07*qoM6N<$ Ef_n`P)eP#t3tjBZuGA2UpwK={F&3mth8VoWgG&e{AO}M_1Y(3~=xAeN4;fN0 z@j(c|WKkD`GIXinj0xrzg9xTpaHcd+f^Vo6wc6-r!489Lp|GRsB z_ay5(14KkbL`3wlN%$2<@+)p~BC9p1x@Y0tgP(l!1}#5I7yOFJi7c$^Q#Sf z9R&{R<#bBtN9mJp4^T=$DdlZXepdnj6iu^jdo-ci>do!R)yJ4zeH?fP!{(1Bl=uB0 z@|^+Q6ipM3;0Gk{mxHLWKlnS1pp}DYyAAu@c|si!4eJt0Q)mj z$UG{w)t8ZO)GxKKUFAQH@KuMbu4{m8+pulBtu~#@!7vO==W<=^Vb=hu{PMlq-pL1g zn{~k1wW|}p4E2#JSZ?bKNDeEQn+x8_&dqP2TC{3718Dp02O6`hXqt`LHNW9oU*0Nt^$%xlCjjB7}G)Prz=WBu*#QZ?b zxr3rwv#~g=V1Ce~8>f8V0f@3cK8)v2O*m_FSe)O$&-v>*pE|O9-vNlSKR%4*tu*dT z+b}m5fWyDEK6h04zH30UKfZqW3i~rt09yLvk5BvKJJsupH`~7UXQrUL*Af8m<`#Y_ zDt!M#uKQ#AK|_AWML4Sd_%M`Gz?)mhTrKrAr=R&92Ov4DkQ_cefxX<75~b!zkPF9eMw~bpAj{ z6)bmbY|NGV>uA{gSichnfY-Cx#L)V)*yhK6008*j{Pr>B6A=*+5fKp)5fKqZ;s4UB zFClbmqI7$3p36&w$qd3@br8 zUzbp8fNk5r*b`m*61#jI0uMm*;CFw&qH%ZPldntgm!V@%aA(>^(X0R$FKgVTnB;2` zcm~|RQ2}szpH$SO^F@v1SKPO5;}*@gt{eGnqSE;~1-=B0CKT4!=3tnn$R$8JUzfm_ zAaip8K;sfn-LtgqP+amwwO#@wroVK)PJw5@XhI=fcqrBxES;}Q-~o_6c2BR01_nkC zPZ!6Kid%1QZS*^AAkgrT`&9so$JtBn3z#E0n1z`09ofs$ercqprE}yTY&hZ&aVkJ= zq4xxVMa)4bSeI^UamwcASNp&H&J^#Ooey=QSr{(F271U_+svQR{dnV%%|2aAY)?Hs zdF=J8){ut&O1;Bs`?eo%bv?I$YlE%V(svDWvnG00PnrGFUhBZs+M8Rpl(I{lXJTMD zP-UFr6TD0EVy3tIrTdR=KaLeSrLwI~#7u0%NttzvvqBr>&$mT06kGqAuy*cY)3zh4 z7_P|zeFz3~7d&TFeA2Q!yQtcId8)qeQ{(fl$%VG1RsJ=GnzLo3!qxriGfulR{`%b> zBs0gee#*6rQ)fCC|9bFr+Ko?7Js;imnD%*(oq?vz=OgF0ua=p0nY~_iLeKvH^X}a) ye#@ZjzCqSt#lL&2ljj}O`FxKtfe&Qq1=skf!V@=Fs;{*JaXnrAT-G@yGywp$j;j>_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/atmos_key_off.png b/Resources/Textures/Buildings/computer.rsi/atmos_key_off.png new file mode 100644 index 0000000000000000000000000000000000000000..8991691649551a092de533bc1f88491b8a5e00b3 GIT binary patch literal 575 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/comm.png b/Resources/Textures/Buildings/computer.rsi/comm.png new file mode 100644 index 0000000000000000000000000000000000000000..f7339c6c8cbfc656cf7459ae945d2c75b097124b GIT binary patch literal 995 zcmV<9104K`P)>I_{0$ujYGg}|rX#%*uo`#a#{uNk8vyrI(h2?{O%0Mr5Z za007@U`+s)(z`t+%Ao|Fp^Ai$YfDmh?Ex;Jt8FYYi zI%w&9-DWPp;M3Q2P5{gDJ=fV;9d4KH>*3?UcGyu|)(Cu!NIUt2!1c``;zXc0E|He%;5L;<9I zc~y!1vn+tHY!^U!4S*;c>DJ}>BtXn&aKw5`Szdh`ZkaL__&Op zZ-(vQmQ{ee-q8B`N#%zx(gSdMxs20*ZeX4L@lV~zL(0Q&2<08}dR z?+T)@#+E82O-KIJ6*5Wm$E$FUjuOqANB(RpWPtGg_`zTrx3H|<9FWiFVOdshG2?N6 z4v4WrWg6FYb1+S>ba64UXfg@X`RU<#o?#fC*f(Lt{A_;@0DxRBm-HP_s`67~LH<5K zL_|bHL_|bHL`0NY(!UFr&Q}omKj%)6Y!6REz9O|hN$%cxxN2$|N(S>ah+lx3?V-4& zaVQzf*Cbv6YPQ!o+t)mlX!)Ca8*=#?Wwt9qr6)g4GFyN}pd%!e% zz48L2^L0==156Xh<>U@tI$wj>1#s6Jq6aUXFH8FO@6!21L_|bHL_|c{^dGkI#n+Hs RqIm!S002ovPDHLkV1kU}>lXk3 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/comm_logs.png b/Resources/Textures/Buildings/computer.rsi/comm_logs.png new file mode 100644 index 0000000000000000000000000000000000000000..ecb9dfc0bfae082743b0c855ac55bf916d0e9c78 GIT binary patch literal 1637 zcmZ`(4NwzT5I%?{#-Bz^3#~|Fu}F20XysRgLjnIGf}%yhAX;z=NTC>l{2ZvQQWR9G zA_1YI^8aJwfDV$2VkHVmM1qI{3DhJSz+^}-aN#c3bEY%a&h*W^@9o>&w{Q2`na$e~ zylMWNMRNcEn7?InKqz^N-tE~|B!&(qPyxWoc}u|hUA)qXq1EU4-!8CHUTK)0MRzJX zhkhg7A*2pu{+c*inXu74k6k(6RqSlDQ19n+Ojnl@UUDAod+lSf^bThh84LiL!&rMD z)1K1NG4V=Q>yR_NLD{M4j3sO#b`1lYe5c36XM)o$cW&>7>KwEyMpaMHbbISg>BOf7 z@H^ZZHr^Z7>V(D#+@jw}bg~xqpBYHfz>1g=3(wWW0_&6NtX5?jyIvMjyV|QY{OW@C<>?779{r1Q4jBFe+pLreQAb2k1`O%d zO9fh=OKwzUF-AhY$#!v$V2pDJINWY-V^nw>O!qv>MGu@p&%^4utJ=&zSyh(Z_|6^UQs!R5mY{!R7d>{+pCi2H9&I2W9gCgRx za-6hunXsYN*Dn^Dc8BuR^$9PIl4e&R{~5KI&mZE4nmZ=@qnOdTX~P5f$V=?b+|?U&v6hpRmGhR7)atd{NWSJy8i%7? zSbn;ZCPKI|;K5Am)Tu*kMeM5Ysu>tf#;>M|hcv!fO-?3q37+&j=LJJ)1Omn&d0&=?AN%t&XI7U_=v7O(X@ zB1^AqWfEz#4>MDAi*Mzf`csS#soBk2voi{Y?ELvn%n#^%e){P3VV?u-D~pKEg?9U^ zY!;okj4lHVVduPQ(gxlylR>~^=T)=wyKCIL&>7-Jggo2fVd(7VH-lc%--oPk)0QtL)KRSG;6qS9_?fOdX1DxZm!_E~M}; zlgVdP&+b{`EKO2t6#KqvYU`0soSZtTJF+>O2VuiEn0twaw@>2xz_6&YA9ojoFC~m_ zqBt#GaR=9%r~Mf}OkjBv1GX}_vZnWEECy|L5`9d5KvL7Vn-J4(^UU^r$**c_9Qa_sNg{*b&aV?yH%gg8?Vac__wL8O9nF~wH=$iG#o`Asc zB|%URYAEkHTbDns8yse{%a5zL&Zh*-;nYkRN+EwneVeSKxYwm9W2Uqs@y&XI$&IZ$}g6aN5tdM`(a zJ;eqX6>Cc~1aUPbuQHLOtLAV<#rF)3@ zr?c;Fyxh~C?i%+#+N&;>gf+8x$xR+Q**htix!HB8yzL7=;}opw`q${Fh%`p?oz!zwXB`1l*1dNv;7SG+rD9!QDsL}oZ;}BgtZXO>%$D@o>gur0&4{J&T YO27QH_Yqh_=e|>I2@DQs+z@^2Z*o3P`Tzg` literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/comm_monitor.png b/Resources/Textures/Buildings/computer.rsi/comm_monitor.png new file mode 100644 index 0000000000000000000000000000000000000000..8c694936e0d5e10014cc2852c11fa8c9270dcea8 GIT binary patch literal 1226 zcmV;*1U37KP)Y2 z^aZ7l0Ipl~s2_||>$}fTKY3H;mU?r)DOkF`M^>$$#45OBebRAmud6?r47(1=8ug(p zUEdS-l$1i6&DFzG6sPyK(onwt;lADxHgW(-&lI?HeUI300YI733fx;uLxFqXgRV5A z-P|9))HxmckI}CXc~a_{x-Wg(`O7FR+prh?H6)$^c(3aw9M7@44duJzn)bAn0DwCT zn1iH{*g#5|_9_vp{X1WkQFX}r|I^;1KK|0>-<8)tb{{seFZ;BDjmm%5a|YWu2e z4*-0<{SgHuo@{@@BMN-8{kc=3``^I6^ht9=Qqa=%Q%FPr9(7$nP1g&(EwttZaQTO- zzr6xp-tI1F76Wm%+ishKvE;uFO~4?SNS^`VN*p*7IO;P1rXXY{aMWi2jHPJ= z@tp}K(q{mSCA95(B7FwHSX`XPGty@OjKwSq6Dku-q;GczkMyS-tj^t`=FFb@HZ6C5 zd=Jc$FlHp4O?KoN=zH|1yXrUn`;+MRAy#cD*9q|b#n43ho$CV(^{2}y#Yz6E^rt^W zH~1?5VNAPv>qFGN`YVV*{`k@85m;*9CEfe)L0`s}OgoV70C)jqKfXlWpKf@p`_tnj z!Il0fiwh)4f(vMW`WOc23z=wtye##VKfV~R--W&vS#Nhf$N`Zh&Oy+=NR%gk`YiSP zu!h7Z?B*fAB!2DJYe@N<`y9vqU%*GGj(lEunU1ac&M$QN9=pzmE+rthYS7|)eayau z*6+hLM9>Uy4Iwgh`ynAQ6V_0_4m#@ddjMAw2;41LpJxOxA`^tpK1ZTI zJ^(`c(0pP?T4QOCYVtS{5lS$}*0t2GBSCF0v$C1~7zh$C`y1nr-n(c>x0G*ZMq21~^l~wF}{qG6UrBzdnzq zOu+&4=WzZ&8fcB2b!Ba!sn`CY{y;+b<8=oFJNYBhcmFLQlt29r(=Pc!eMfv}fRHR* opAbR_A%qY@2qAn+a literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/command.png b/Resources/Textures/Buildings/computer.rsi/command.png new file mode 100644 index 0000000000000000000000000000000000000000..8c31b0734712c7fec41140418d42dc99d346bb70 GIT binary patch literal 714 zcmV;*0yX`KP)E+Qf#A|fIpA|fIpA|i)i zpWD(b%7bv-7DU`D_q7pNf4xl%2odj^f!|sj_FX3&BB=j?vh!&S w)L(?Ku6y-gq+qW+J6}XZL_|bHMC6oy1F6(5a-RM};s5{u07*qoM6N<$f}5{kx&QzG literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/computer.png b/Resources/Textures/Buildings/computer.rsi/computer.png new file mode 100644 index 0000000000000000000000000000000000000000..c608b2bb4d91ce655bab166ee2555cb64a3f12d1 GIT binary patch literal 1872 zcmV-W2e0^vP)am!EB)JVS=5b!T8WpCq9hQ-mWDK+BBs^s;0>@YS*rb@u598=jNV!?@4lRT6Mpd zo7{Z&eBbvw-#!1nFTnpCyXY@%et*6iN~c9}m%dbWAdnAjet*8FcMy&42H5R3QiLBOWK_Mp+-fGh8xGgZgc4?mZER}etI z0;yD5@j9^XY5hjuE4%`1kl*TD^++!#VRJYQy=HScg?LML|BFM=qDslsRzV0D5`{5x#Q+3$d6f5g4DFLQn4?hKE8} z+`4Z}7aIi9^H!@B7K;UY_wF^M-6v0;NQ4$gmns3fckec=7jn6rZUnH9&zrw8-cb=i zBbUpSG;r#*r3O_3Ha0f!^yyPW4A|J%C`o>OeH~V-71?ao5dEZ07Gwl?eF4PhrX&Ma zR#pr*!0QWOepcj`HyaWGWE$$}9jxj!RE*|BM@-SJ*0w|dnTEdn>;uybxHobaXU|`j zO+z$-!EQt%VN*#62D@>cia_QVAXqGh@5F2lr{;JdOlpp9g0pLw>_yz;69klmBfS3OkcM5qA8c>sY~uK$NT5Nz-0G(>SZn4cBl^#v5Ofl+N2LqUL9y$=AB<70XvU4U}SYB0J0 zjFKXRlxsc1(_rLYK+ykDA>6GyJQ-^$M`o2RkXn4U})Au0WgLpMUG^ z_W%@DagFWs*u9YX@Kk+u&2myOTyD4-W4{=;5GB4M<&`m45b)IyuzpKodPBN7S2 zf7mPC=Uqf`5x_!xZfe^}AkJ5k&t$FywVWb5Dw02JY4rmDv*N={(9SQ!VrV{egt^1Zrw(xN`?;gJQ**p?&-IK@bEi#A1lfOyJ(gU8YG%!(-FWkJ#JS7 zlvCncas=><=Gzqk<(wjOML?;{?u0Rb*JiE=ppU4<2T}C(okEkxgKRd7)zwvne6=EA zb#)clY!*!(5BmB}L3|KZ*sBMwa{1z8>gdb_PM^7iufO^PONj*b@82)`y;>2lwzh@_ zw;QL=T*9qe-)Od_770nBZvv+0mDNf#l2d)(h-^jy1uv?5kNa%=Q^mc?@?;=+4)&f zdq>N(1Xc7p_j({eQN7MOId{G?)wHl>m>RbmU5(v`ENvYRJFP1Ws5Lr3` z=$e0C=XreLng*jY6Y%;1%!cSlc%kzZ^!1%m$mso3q!^2dCA@R-3Ugjx{B2p+`A4ZF zcYaZmfLgl~J-vfc!c>ohU&ek^ZL8Frzt%rj)a(EX&QFeyp?~0lZiJ{3@F4NLX{Z-T7?W-^#dd1`(JB+%YG-yx0EFS+*WN& z9rQDAW-=L>Q!Jg6<6{cjcu-D(#3-$Zepea9-9~x&_~K{I(QUJIZrL3iHt4) z?TyXN*T{{E%ONlIq4g7%Ab5vb`bOP3LuoG$8fSw?K9&VK;0>jegbk3m2H0000< KMNUMnLSTaOop+%C literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/computer_broken.png b/Resources/Textures/Buildings/computer.rsi/computer_broken.png new file mode 100644 index 0000000000000000000000000000000000000000..92d52ea770988a8cbdee0e80c496fb94f38ccdcf GIT binary patch literal 668 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/dna.png b/Resources/Textures/Buildings/computer.rsi/dna.png new file mode 100644 index 0000000000000000000000000000000000000000..723112ebd1e3ac652a5db0444932e66befaebacb GIT binary patch literal 4192 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 WHB)=E%>2t;yPr?6cavAlcfSLTf|Qm3 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/engie_cams.png b/Resources/Textures/Buildings/computer.rsi/engie_cams.png new file mode 100644 index 0000000000000000000000000000000000000000..169ecc5ca22a7835d4054202ddd1cd7bcff3a79f GIT binary patch literal 3614 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 HJ?{S(C>S9} literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/engine.png b/Resources/Textures/Buildings/computer.rsi/engine.png new file mode 100644 index 0000000000000000000000000000000000000000..9b3e4af4c971470f2e79b116a955448d072d54b4 GIT binary patch literal 1778 zcmZWp4N#JK8h@<>(=&C>)2>t!%xYStz36CG7mVzTH9w})I?RvV(6LC@?b9y^POr>u zO^GuzUBOMI1&NY%QBicRGW0TBKf*7x(lixNb1(%*Maq{P>R zA%x%T4BsHT7Mu1}rO125Ir3hM^V7P2Bxa=H1I3TZkdMAgtlV?O|7Pqv5@K<4Vo&+D zO#h@K=z$!%a@eQu#cJWBmuQG{w-xlZBzoAZ{rbvI*2minGs|BN&~%|tpL+apKx?&3 zW9d`(`Z2&0uu2#_LDL;=PL5utMr_97J2aN4rpN(4_k=BeLaNb8Q?omFR(O}9(HC;{ z2W_0|m*G0|7+cePp9jyyjj`iA`&z7Hv*!cKr}y=>TupfX`9l==StEVZH#IsL8olyn zx~kq5_%2#r6#ZnbE!U*(!5cF`qaE54zP>Jp$r*#%7@_!$$;myPv&vco&rWV^$i+VB zKyHDZ?mlfOwe>cQmlLqz%y_~?|=5Qj>!?b^N2wdrfb=Z$36w7OP10g)K=YS zhc25<-fXEv{4VnC;xX=30mJIcA~1dv<0BmLd*Mi`eM|(LgRbD->aIqHhg-qvEX%UK zZy>Q7hiFb%Wiz*{QDOgWD_u9_Z92LbK4fM*zj&$>QJd8saaWQVQdie}_`7`9CYnQV zO40nevMF1&RXgrYftr=)c$tf~Par9A4HKpa%DXK`JeuT9L!A;iZU!O}zqT3XGNRNWNjT^^IYDUITeu{MSSWz6$#x7k(ayh@-2yfHN^+Tt3S`rVBk`Eq8gnKKt7Dd&US`F{<JqS31m6KO6-jkC@AsMO=(z}q9)slkw3_nZC(NGW2Vm%iurxF} zf(sQF4PD1+a6=3)AZ~(urXfH;Z~>Crq|`sRkS`&&$Fy3P1+@!ex@&BmW!VU~c+3_~ z9-R?*gxop*N0N!U>NNhd#Yl`ve`%$Ine8z4Q{v{5Gti;#`{}uaPzF=Cr8WVJ)vC+x zxWgkVKn4Yks1^Bpe=6hTmrtPGOyI+GVDA^q|hDttAkhSIZQ@(gE8jGIA!bJA@kQZJglHBUY>oNdsH!161pW7$pg z^>`QF1s`&~Z)IPRcV*4L?!b-8=PJb${mCEze{XC>%j!L!I;I5a^pa2?=8~g3jgbEe zLLYxW&NaywGGpyNr}yn;fd1g2Nypw5dJgzZC-h=%k4h3%6uPC<#}G^8G>4h52%+%l z)p%?HSI0Mu2KDn%KP+_sFSB%C6izBqFKz;jhfVP@|GX6q)gQ`AHKT737?~+>aG8mI z1vE-eGg<9)LiNWRxZ8PAd3un)1a&M-ImrmZsK!~+0AH*XdUcs7na4#H2Z*F=_Eb~( z4%I$>#{{M(O*3ZrPyJ?5zw)_$H38UFgyfvK7-2s}p_c}@F0CWttv-NC+LQx{APUhc zX2^dWo?zcsGAeH+LQ5W$WIj12qr6qdjatcoV4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/entertainment.png b/Resources/Textures/Buildings/computer.rsi/entertainment.png new file mode 100644 index 0000000000000000000000000000000000000000..47ca24866e9fadea377995497e8d2d44d88e3191 GIT binary patch literal 2830 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

;_u!`-_SoOFXu;3lY)D4zpJnmg0x zVn+Cj7+dnbD%rXCV-ICHgEp$&9gB_-GKP%*q!g~EOZ{El0G`vlcDapFBcEnrx`1oY zC-)~B1|^DeY1rg?#09~_&Sjg*je>CcXbY-=x>&by<7gIqE65w4JrfRTUmEg8fL~d` z?piEEO)Eb;*h=n#G>YOwo2R!XU&W18utU*+kkQ6y+i;7?p7$N%_q|kpz;@hBmETxz z2zQ=z_SW(!l`gcGsy{wz5C<4+8?AEmQ6hm#q&A@QUJzILOO9^2?n4_O&iLP*&wXmM z-0q;*Te)c=EY$5@it@MPrt>#zW2xFa%JMhd_4r|ajjcA;|2W8t`vLP#uTjHsnjt;H zC7^mehnv{SU@~rDY|Z4;Bk#;7|LgkwW5}(4=%+4jgm!?uT*}1CH{r6eK!jMglT=kO zxq@ePwuT%-yuE#RLUmxXWr?QjBMt*K@+cN&)8e|m_b_`v+H0zeNK~kcsxjozgbY)% zv9MrMjuA4HUGV?uY^qG2$N~>o&O*8`{HC76`Vk5|vVs9&(FmZcmk4AQg20NtNM+LY nZv?t)&(akWIK-b#AG#=4zeNx)X>7}&e!|^dyqz1rjkxq5L`2XN literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/error.png b/Resources/Textures/Buildings/computer.rsi/error.png new file mode 100644 index 0000000000000000000000000000000000000000..dd065afb8de57f23eb80ab3684b39ba0531ded4e GIT binary patch literal 533 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 M30H@bW9M)F2Nnw!*#H0l literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/forensic.png b/Resources/Textures/Buildings/computer.rsi/forensic.png new file mode 100644 index 0000000000000000000000000000000000000000..b17f42a49e359df3c5bf6a6c42a1347290951310 GIT binary patch literal 3348 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/generic.png b/Resources/Textures/Buildings/computer.rsi/generic.png new file mode 100644 index 0000000000000000000000000000000000000000..78d80fa952ed616f7575ea78652bfe4bbf4a1583 GIT binary patch literal 653 zcmV;80&@L{P)XHB=^1Lm>!Tz&>jp-#w!!ndib-<|CjOD z<1l=HBqNfi#0&rc0KmQ3MOwA8_vS6ooS8T z_QEWT7Riv0KmY&$000000001LO$gFTH+8;VD=s&5%CEaFXlo{I1c&^(8{pN1>u!J(hn}d)Uq=I|Mu0

V`g@1`{6g&*H{OeyJG;SqK)>YY{36Uwoxc=K2(w>;mXyB; z>K8zr4*&oF00000z^$o&7Ou|MT1lP0N?B!GEB<|`I^V(M253U)pS-9zN}cazQUf$0 zq@1AZ@Wg#$m1e|N~S5Tj+H2pnb1-1E0FueiPJx`tQq2BR01_nkJ zPZ!6Kid%1QIr23b2(&(Ie8F4AWuB)ZbLz9i`4khwJR4SX1I9576mgAi(`{;y%0gS)bf4%0;CcoK7#2n$q!l_4FhDH}vv0OrOb? z;TKUSKl5mHhVU8_g_dQrq{~cimTs9om96DSgmduyYblClpD)HG88^gk)C_tk?>FtB cEXd&9_pUvgeRY<#%6bsb)78&qol`;+0LmSLCIA2c literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/generic_key_off.png b/Resources/Textures/Buildings/computer.rsi/generic_key_off.png new file mode 100644 index 0000000000000000000000000000000000000000..24428eb4e3682534d7583f152aaa364ea79f9115 GIT binary patch literal 1201 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/id.png b/Resources/Textures/Buildings/computer.rsi/id.png new file mode 100644 index 0000000000000000000000000000000000000000..57eea8a6cece0e41e3e0e16bb06d12afb7b2afde GIT binary patch literal 964 zcmV;#13UbQP)D$Hq>gmTfK)}Y)FE3KJtPZ5EEUCNU`Yo=hAJ})QKc4j=){0vx(s1R zB{G^$-7F9iLzb2iiJ7H?84_3d08D&X1Dw@|K^Wdx=X66>Oe8U--uL!wZDRRX8tuse-~Dfb*ktYbBkZq2vOL zwA*cXH4mzzCYHBat%>JhdoS_*PU{3=dk;?QWT};t&dgTSy)(r@gpy3!(-D&;P{cJa|DXz7wggO-jLF_k2BYxg$0=YsLzwMf$=h(BTy{= z{zF)~2}m%v0PBYrsmFf%bh5Coy3zHrcY{m(`2HyMSf=yi=eJU*z^Rt;c}m%()lCf*AV~{kK^al#;;ZJO~k?4{EXavG06q#PaqKy5fKp)5fKp)5fKrID>d!( z?qr;Q*Tf(q3KhT)3ng1Fx>dmgUZ$4WY z+jjoK88Xuo8`4a4NbZlXEwyqt@oF9v)Xgun#6`%1M`1BUZs3ZdIh+}&pTQnoiD1?yl&4H znWP|{FREA{_Tv@gQ{LXW;AtpYf$ zlTl}|4C#CmmM*}4H^NqL7pk#ia(z}N-;|{bAbsRX=bN&00i=&S>3mbPt^uy=%C(2* zAm0S70$lh1TbzEB=X?{i3ZOa)UVlUEck!k3P0;%U^fwa!Ek{1UXn+9*ui+G+==rMW=v72r@ zMJTuyW;!z%8Iu@7V(LWy59ArhJd&3I-;5CffCr{hyeR#iTe~}mT4rK?N|DcD*QwS| z*5^3oT9=JHixdlBR;6gkLv&w6zQxLG&m#D9w=NbUcDol_NXQXlizEx6H+gt!p$L8k z3>d3S)`&(*ndb~By3hZ5&g|RoK~-Z{%}0aryruslqJ#fP`}0qz_0b*T4M?R(*hvV>`jKTy%nTf&c&jz?J*~)b#vC3sk=g P00000NkvXXu0mjfU?Z@n literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/id_key_off.png b/Resources/Textures/Buildings/computer.rsi/id_key_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3c282a8dd08f3ca8e301124de44323a527fb2155 GIT binary patch literal 1136 zcmV-$1dscPP)AW33GqSB&* zBuMmQ4@D0p^g|kG4?zzlNH0r4D}sp?`I8~^gNP3yR8kpjEm^I)y8WVL+nm)|cV_R* z?5?xxUA!NxXXnm6-_AL6X6BqTSAb=XD4GstOLn%4H2!jEC`v6ZF`t$uo zf-xEmjGJbBbiF128&pRC9;lDh_!`V(O-DO?DJquM^^#&l)93&^TO>Ib<}HE`qCo#o zQP-P;`Uo&~O#>tVBzJ*FIzR`uPah#?N3QU);l}EX+Wtx>?hz`(%3`T@Z|hGwS!fNsUgh<*%t5+UCBo7d|h zIpMdYg5!HEq;JTOCAGdE0mG^vKI6~&9>C!f=iN@QQ4#@KDI;Z*mUZi)s<#cy`K83- z1RX%;n5FI#Al3p{QOQX}_pfM=!QLMw4%$GB04zP_B!aKLq{>s0?q3QcK;QtrABSfP z515w+N==dk)kkZ5#`yX7+FAu%Sdx-@e$++4F>N(K#r(#+6!+4UfIYc`6_o-G3z+GS z0PL33HQXRhY;I}{h?vyK#D1K(BSTFdfRO8@bOtg^(H?i|z*m3v8;AfK8BvGI(Ku63KX;L#QKmz$u{80oYE*&TmrkYM*^$ z_HUBC2C=g))YeFH?8@7(>LsB10tsxXg8* zqqj$J27^H##{qgh+`$cwJ0&%f{yaeKJ2%f2k$C`ZTw%`x+LJmVXL~MOyLt&~&s~u% zc5olg!MUh|x)GlTuuPEhOi=Zw046I~$t69;yB4@*FLb(#8HZz1Q6J~vlf*eS1(~qc z!-3MyaTsZKz|P$TP*zqUX_!B+#`#zDQkA1^bOP?T-J;V0&!2S5?#E?v{-CF)6T$^m z9iU{OKkE;1juH>G5fE=koV#f`#@!Ov1ClB}xoVITt`8$af^oi0#`9Af0sT)OdCndh z|5LQ8#OlZDP;`P$rxWE0X15d2v7!2B3I+y-<%$0+ZTlVjyoQ(n0000(FqFxUcD!}uT0JXyk08td-`HhwL=V&uuk3%WMK^8`3*L= zb^w@8#-H{Hzt91Fpw5qXAnOn4udtmmgZ}-}d6S>jfiFv_lMY}zWu?=@Oui|AAP9mW b2!GB8S$~70RGM$~00000NkvXXu0mjfIWmuD literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/mecha.png b/Resources/Textures/Buildings/computer.rsi/mecha.png new file mode 100644 index 0000000000000000000000000000000000000000..d40a34886c2c8e46e7d808aa869e5e6db50e5b7b GIT binary patch literal 1718 zcmY*ZdsLFy7FWwhnvt5-Sd0!{hbf<%(WIvNx<#g$nU#tmmUVTyHkw+Z zDPl6k_$VLwx?pNqJVpTxyQG9nftVU9px|eSgLD6w)n04wv-dvd?6b~q{r0{Uh72?{ zwldby(J>7ULZGy3?YbHnXl)@U(NRaoASW1c;HRu=si5!NuEgDRSu;Q1;p@B|772O} zWA9D6|5|0X^Pre{ccX7dJTmvXY%61{k)1NG*7nB&^BI({SF9c_+AZjCkFlOzcl5W; zb~n6(GQ9|Mce#q{xvRj0vyo?O6GstLjLgJy=`iiH>(Y>FH)kDlG4RQ(L2loI)1zKt z2H(UGQv0o9zceFP8VRFXg&cgAjbMxnw1D7g)*D$vICnDFU^v=kqZi*;Q1od zTg30^32!j${{i?!@nQJIUDCLX>2uanC;Xi#I}R-5@<{PE=L+~R!LUtfo@0qMaZSZh zO?Jb;TPDL0;rZS>+(vRbRfd+O5-u<&NrSR7m$BU**_S%~4N?^6iCekqrtL3!)S~AW zUTH{Lp?`uVNzN@wnA<))1$nXN&328wE{*`!s@y%ssa~6Um4@bTK6*VTHaXrWE_qh0 zeE^eK0=@hQ>RJbI?XluN-W8H7vM$o>enlb_mAJB9h6q!ql^91R;CJ$mP7M#T1K zQWzTCr7prw=5-$LMkEv zXoGVr)czd=4oj!DnqPhiuBN@8xP$Ke@d3qn403inG@YV2l)+I3AjCuhFgY-JL}R-i&?9UewXAb=MAi51s(kM%Uv%nYNX zL*&_4+}?&RP^S40>cG}ZgWn4yUV-qhZ{94%s#1~SrI~Js6Gexg>f^}>IvrI?_^^LK zv>6ZAEUm7_4@qOI)Oiy6+=lELxHR_ajE!xwItd*ul=xBdPDy0 z)lZS2DX;Z+?TKNh$)h`H$ZYhu&_>~pPr}PB0zOaILH8V=Cc8~$ z);2*?2XSQEU2P@Pt3110TrkE|d&#exVwv)gx1|d$!rJoWga$Er+)y0_5JQ1?uy)13 z3p)ZawwI;W%$5=x>O3+M-AK6ZfFbovLA7Ea-&IhYrDcfNfq&auOkN4tx1WWhROSrp zEpoMm_l;{CM@te+?~HgNH$sJFEC+j*l12syK6}?JP)aO&LsT|T-Q#-q{m>q3d5OJr zRy0%dC3Y^PoYe?{VxXN~R~mN@M`@GnK=1AZGw@=2mFSHhu&i$X7w%+IKkO4=QTOf$ zd5ptLgLZ(_4^aTv37&Ak&FV)gaTEtJVg5fp=~qR?kCWX`f#8YL(T@Jos5aOi-?x-8 z>8>5bo8FQLG&|g+#d!5Hn(h2zXNuz3m4TPCMwcxHF<_Ul%W5NdM(G0`^A@6*?7hM) z-4&<jCsuL^H-^qvIN#0X|PwP(AXXE;tB`aB?+wRDXynRB;%taaPD=2g1yOZ~#@#;P3 zd9wW}jTW|sBe-(#e}>dRC{=DXg_WO4TX^6NO*nv4m(kHQfo>r?!1VH7Ku z62!dam7X>gx1@P+rc@1E)H-;gzDU2~IB>F3Q8>&Y$DmFRp4APnC$hhdLu6`>-wF1s zdenA7H|3{>tRWA z1<|sxD_+Y3_6kM4%)cr>%+Asce@HCC#{APHjA~t^&RbL@jm#C;_W7@3tr|v;1ok?S uy5glcPr1ok4jwL@*UR}01**U;ki9X%xdya zaSgU915oh~;9?4A;HfBn#L6K0J-$vysF)mx;0Bgavwqb-lRI4jcbAXWY6YZK!k&Mq z;spDnmb!Wz#y~}*D}acIh$v51>c%6{J)K^(GxFe;1j>UZT+9$;9mxLMR}P&M5N14AjqY~^SkqeOnbY^i6%gh$rULwE z*2=>s>edV|8S~WpuTd_ka;XTFlWPFi0ImUC1E}ze;PUnOCSH?oGS_cPoGv0FBBCAj Y3AAl8r}5$<-v9sr07*qoM6N<$f-}M{P)5Rkd|8izW^C~3xmPlwTLfZ&Xy|5u)30pwt{z*>_JJkdXcX2 zcWa>E4}{Qr@FltYl3cC_5D_i0!lDo0wf)1R=-2(7(_X38MDj1rzfYa>ib$#lU%q}z zw%F#u>RkJOu_ke_KHOYiIc@zPcMrjG5TstJjV(QQ*27QZv<<>Acjrt*M6@8zJ2CA&EcFfs z^7kHgMuL@U%^f}2EYWvp?d+h~ddBFogl?yeO0|YT7{23h<)wZLq>Z1mjKh`w0P`F{ zE9K$PWu$%!q>Z1mjKj6o!0;n5{~h$-c&&hXqnT_(L_|bHL_|cC6XG+pGIVvYiP3$gx%rvIJD^gn;py=)`Q5v{&75_1dg5eD|F7U}jnKw! zG__w;#w^}C;Gt8P+Ak_&7V!?SYEq&;Dj?35B;Ena1_1n2K%6a!&j4S+OZyCnEo}u@ zH2~nJ0^)2*;vMkT%8mM%|VDxD2E|33OQBeSeQc*%Bhk~g|QvWX+q-= zW-8@S&gavZNEkDWnqiDFGw-zb`~C4=*LUsj{q8@WwVrjYbwAfy_wRS#zxCX=x3!kp zrm_tH0GU%ZmKOj3Bk}VGecJ`wkCMHI5f-}Iav&KKYO5)9vl9-xH@!ysAT4Wge+eV0!SEt({4~y49&XvwjUW# zhR0lU*Z^Dprw!_vl)yLZgd0^aiS&g;B4o;MjVBhxx!0#Oc=;J_?v~+Reh)V0{D5yY zlZ55Z9FLIG3FgmizL{XC+pf=WYfva^m3@|efl;Gm1!ZINdQVvSCgpwXfv_dn{HFT2 z5PvDWU?VUY6Dt}PLcl40nr~&rlwTbq~ zV9I=3Z2}V3?W-)mL_@$DUoD5`L)Bh5HS@!B9;Jp0nemxC}%}x69>0Y!9mT#Ib+GlLUyZ~X9VsOZ2sJ4T3At&Vl zsCnlHEohRh7ReuLFofQNd`mM%*YOBTC!oNh4H+H`KJ~T0^-;}J6APUA6 zS0=wFxebq)0KfG5e>mR`zx(L0D)LKc8~NfG=;gxatDLV3R+R?e-CILgK5?N{@eG9J zMs=#N@?FWpfjQuk#CETN5&S32qOyN7=19}BfW8Dd1WdcgH*Qs^KZ=%qR%t$fE2^%# zEb+=2O8x5SK%^4ifREN$p}k(>vc{60?yW;^@YaH;!Qxq}cKSPTI)?oq`MV;wTn&1(O+8D5UoQ3{ZubmcJGr*@Mj6jNQrZ{#e?EElXqhE0hye!TBmF2lG%)aFDpop|I8haN^lKmaYM$a>6pC*@M2 z^B?m+___|Es8&V$LPM|L^PqT`x23$%i9}ft@=&J|aDMNg*0(%e|P*=0Q}n zdi#R#^Jn2TXJPpUe~CandUj`+=TyptYM~~h$@`Tp9$QNJM#HD6Xq=C2sP}{_@LjYHzD85TandWudDTAW?R8EBOef^p5 z{>_2V7sHu1H=Fx4pr*-Q04}p|jm1$eT?VcZ@JHh`l|aDQ)15QNUO85gVkLLw>(Yl^ zf_d{QX`$|bV~-9eg6it_Y7I5;av3YkbiG4b|IUdf|DlF34&Rdgb@;}|t4tsl9S*5< z&obwPPG^wm$q**+Y+2(Mc`jw)!z&t_DapWk0YLHPnE@0wrB6<_GW+A$-lT=m;o6Yr z5^$GB+nOty{mLKk0-jqg^FM3WfA!|}>87K-)_i(R4~)0Ck=kNT&#{9=1?;|VP8o^` z=@X1Twa~|Vags*DEc0^!T=wq?3Gjo%6oR#zeNd@D6t+Z}Ex;w~YcHeEq>_;vM%zDh zdK|QzDSRd=aI39Gz_=jY1Dh(1fU-K;9JCN=t5wgrvzmPGfGyLbi`WS? zRORn%EE{^;prQ_I3awl2SxaTl1VqV3TSu8S=X8?xMv(P)Sbsqg7EKKdunlAf-e3dyONlDdB^yvy#hqaEZm~KAQ z`$71<>KR)8)7|ckeSBz{BVIGgOi5brn(Fa#%H0>pf$>Yoc1x@T1vM z;}l3#apdVT1YWe+PXyyz%J3@BHRYY@_^wSY+xiX%#D=m+rO`Amo*HDD5o|sqa-|4=HfN>Uu1PCg8&Ne z{VgM64AI^Ax5(AL^xV*a)v{&a8JFv(Oc~;?s56+O=`I}K$jUCSw%jet?#~HR5J3GO0|qXk`2Qxiwu7g*45Gnprr;uBwWnd$ zra(nWxMY|zps8#eSz&fABm6++$lG^uPks)WdrV0MgZ72cHapJP;G4H2D7J{#J>t0b zq5>URpf^}BYxYUq!Z_UWg=o+QSG!4G%WxSg2%eZ1Luh**H?6Lgd~xMmd&Eejs?1yo zcY#r3_-PP0M@s`y4B>y{4D@BPQTbAj4z(PW)-~4>xi22)pW;^;32R)$7z|v-4^sci zIJs?IG`DaK;Z-IcB2WZmRB(L`Eq>CA{Tr()5VU0RTG4wbj;L^I|0T|nyPZTWTyFG; z8ZnnU`+U`^m^IFSdqGnCxaF2h;XNgh7FSW;$144^B=f-EY}D`E4S)YS0DIh2jNQI8 z;I635z|~aAquiv zeHDx5!~yNIPpnKX`2&jg2p55NH=Y!Du04Z77;2&I+}PT9lQ)sf=G|~a`AMuC5rNE% zp2Pqcu-qEi&X}tpFz?Oc;^$j}0N&vR%#Co&rn87S@tE>R;{Gxef%NW1r)`<*7E4}b zBrr5rkkqL|@RzW+5WaiD<1&nM$(g*NxdAf^Y}m{`Ts|9P0K3hTUh-wC8TpnRUf9d{ zBZ`{BDBElhe>9(Bmzw2(CCLFc*pPHuwaR z{5}7p?$k5lO(+%12`$|jlOJP!uaO~QcaH&4%p5xP*ZN zmJ$HpW0wPUN~uAAgx~8a1+wCc#9yD;=+XpcaN(riD{T|})MvhE>W8gj_5ADIHRx$I zQ7+Ao++XN7Yd?I3p}%Xdhyl&&rtf|FBz2j}H-soy^P=ElsYcS`$Xy%Mf{eK% z{HCFuj}O^YJ$8imo+()vpjTPWUGP})U7kZzP!qKpNu?zI#g!{4KadTB=E6ZZo`>S6 zm}o_$IRSP1d6D6DldRGl95ll@oLa`3w#tUzK6Q$Eqo~KDm7AWak`c}*^W^xP_5Pz8 zIKFzqy_NE?O%-|*NdM~pCzpN0^_+~govPohiRH$ecKtF#a6;^9O)t~6E7WJ(Dooh{ zenb-=Fl~vXN2|&FEn?2+SI$RqTwF@d(YV%J`QZ+DSpD1?;EC0Hwp&85YRz9SWFaY+{k>v=U%hXE|T1{u0aXh z!MQkQ%c@wf-p}QwqP0Xhpk`oCm`wai#{^23+mQVUqZHas(Us=hivR-W(pA3i> zh=}Z?a|h28&E2lH{7z$vT*#P3j`dJ<&(Nf?(w;p!axw-FrZRm0a#{fotCxV_)Anba z)j!I;_|ov(2(DD5H<)CS20rxg>OTtj_PtZ<3yMA6)Qy%!S+JiU%%!Xv7K;!gV58n#b&iSiO2D}3Bf8jN7^z*2ahk zZl#=yRw?+TdprzyTe_cPg!%mK| zWxEZn@gg8%d0v*A<1vjKG?~M)IWUym?o1Iy{g4LsJBc0y5@}ywJo^8*oaLTfO$;7F z5B)4~9gT7GVlQ$Ze;Za?o8%Zq|V)vymovPg_{PJ@R?OqXz?@kq?$cSB+#fFYsy zT)sy(d~BUoKX~kj+Gv3&AF8D09>KYg7p*NkzI9CJl~y)&_1pcF78b@IY4zHz>C%Az zZb-q6V~2>chXC~tW^p>M^}wy(BXt7p`@LelA{ve9z(ZHva95wEO_`0Rh>nIQv+O_* zZU);!HJXE7xw$?^2Pjr514FDnP#_E{Qp~gHN|N})qxi{+F=!xz4mN)kXT|~dZfKyhsmX#+w@BRx(hvaDh literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/meta.json b/Resources/Textures/Buildings/computer.rsi/meta.json new file mode 100644 index 0000000000..1bb8a8e4e6 --- /dev/null +++ b/Resources/Textures/Buildings/computer.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "ai-fixer", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "ai-fixer-404", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "ai-fixer-empty", "directions": 4, "delays": [[0.7, 0.7], [0.7, 0.7], [0.7, 0.7], [0.7, 0.7]]}, {"name": "ai-fixer-full", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "ai-fixer-on", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1]]}, {"name": "aiupload", "directions": 4, "delays": [[0.2, 0.2], [0.2, 0.2], [0.2, 0.2], [0.2, 0.2]]}, {"name": "aiupload_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "alert:0", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "alert:1", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "alert:2", "directions": 4, "delays": [[0.1, 0.1], [0.1, 0.1], [0.1, 0.1], [0.1, 0.1]]}, {"name": "area_atmos", "directions": 4, "delays": [[1.0, 1.0], [1.0, 1.0], [1.0, 1.0], [1.0, 1.0]]}, {"name": "atmos_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "atmos_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "broken", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "cameras", "directions": 4, "delays": [[1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1], [1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1], [1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1], [1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1]]}, {"name": "comm", "directions": 4, "delays": [[0.1, 0.1], [0.1, 0.1], [0.1, 0.1], [0.1, 0.1]]}, {"name": "comm_logs", "directions": 4, "delays": [[0.1, 0.2, 0.1, 0.2, 0.1, 0.2, 0.1, 0.2], [0.1, 0.2, 0.1, 0.2, 0.1, 0.2, 0.1, 0.2], [0.1, 0.2, 0.1, 0.2, 0.1, 0.2, 0.1, 0.2], [0.1, 0.2, 0.1, 0.2, 0.1, 0.2, 0.1, 0.2]]}, {"name": "comm_monitor", "directions": 4, "delays": [[0.4, 0.4, 0.4], [0.4, 0.4, 0.4], [0.4, 0.4, 0.4], [0.4, 0.4, 0.4]]}, {"name": "command", "directions": 4, "delays": [[0.2, 0.2], [0.2, 0.2], [0.2, 0.2], [0.2, 0.2]]}, {"name": "computer", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "computer_broken", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "crew", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]]}, {"name": "dna", "directions": 4, "delays": [[0.2, 0.2, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.8, 0.1, 0.1, 0.1, 0.1, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.8, 0.1, 0.1, 0.1, 0.1, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.8, 0.1, 0.1, 0.1, 0.1, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.8, 0.1, 0.1, 0.1, 0.1, 0.2, 0.2, 0.2]]}, {"name": "dron_control_monitor", "directions": 4, "delays": [[0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05], [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05], [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05], [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]]}, {"name": "engie_cams", "directions": 4, "delays": [[1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1], [1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1], [1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1], [1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1]]}, {"name": "engine", "directions": 4, "delays": [[0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]]}, {"name": "entertainment", "directions": 1, "delays": [[0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]]}, {"name": "eris_control", "directions": 4, "delays": [[0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5], [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5], [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5], [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5]]}, {"name": "error", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "explosive", "directions": 4, "delays": [[1.0, 0.1, 0.1, 1.0, 0.1, 0.1, 1.0, 0.1, 0.1], [1.0, 0.1, 0.1, 1.0, 0.1, 0.1, 1.0, 0.1, 0.1], [1.0, 0.1, 0.1, 1.0, 0.1, 0.1, 1.0, 0.1, 0.1], [1.0, 0.1, 0.1, 1.0, 0.1, 0.1, 1.0, 0.1, 0.1]]}, {"name": "forensic", "directions": 4, "delays": [[0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]]}, {"name": "generic", "directions": 4, "delays": [[0.2, 0.2], [0.2, 0.2], [0.2, 0.2], [0.2, 0.2]]}, {"name": "generic_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "generic_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "holocontrol", "directions": 4, "delays": [[1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1], [1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1], [1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1], [1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1]]}, {"name": "id", "directions": 4, "delays": [[0.2, 0.2], [0.2, 0.2], [0.2, 0.2], [0.2, 0.2]]}, {"name": "id_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "id_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "mass_driver", "directions": 1, "delays": [[1.0]]}, {"name": "mecha", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]]}, {"name": "med_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "med_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "medcomp", "directions": 4, "delays": [[0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]]}, {"name": "mining", "directions": 4, "delays": [[1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1], [1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1], [1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1], [1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1]]}, {"name": "mining_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "mining_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "power_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "power_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "power_monitor", "directions": 4, "delays": [[0.6, 0.6, 0.6, 0.6], [0.6, 0.6, 0.6, 0.6], [0.6, 0.6, 0.6, 0.6], [0.6, 0.6, 0.6, 0.6]]}, {"name": "power_monitor_warn", "directions": 4, "delays": [[0.2, 0.2], [0.2, 0.2], [0.2, 0.2], [0.2, 0.2]]}, {"name": "rd_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "rd_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "rdcomp", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "recharge_comp", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "recharge_comp_on", "directions": 4, "delays": [[0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2], [0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2], [0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2], [0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2]]}, {"name": "request", "directions": 4, "delays": [[0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3]]}, {"name": "robot", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "security", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "security_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "security_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "shuttle", "directions": 4, "delays": [[0.1, 0.1, 0.1], [0.1, 0.1, 0.1], [0.1, 0.1, 0.1], [0.1, 0.1, 0.1]]}, {"name": "solar_screen", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1]]}, {"name": "supply", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "syndie_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "syndie_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "syndishuttle", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "tank", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "tcboss", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "tech_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "tech_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "teleport", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1]]}, {"name": "teleport_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "teleport_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "telesci", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1]]}, {"name": "telesci_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "telesci_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "turbinecomp", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/computer.rsi/mining.png b/Resources/Textures/Buildings/computer.rsi/mining.png new file mode 100644 index 0000000000000000000000000000000000000000..bfc225b8734ab0ff21cc612cb1a9583fe42cd4f4 GIT binary patch literal 2433 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/mining_key_off.png b/Resources/Textures/Buildings/computer.rsi/mining_key_off.png new file mode 100644 index 0000000000000000000000000000000000000000..a467fedba39718943343941b03e81e07978b4109 GIT binary patch literal 568 zcmV-80>}M{P)G@lZ{X;{ly|EE(~}}moBWKf?BAxel6V9l)5rF zNopE9LsEPnCQbwvcHz@cR6OxjDm|qiY(B`2}=y zMND7Vp^KNw3fM0nz}B;{+>RH|PEW?p?e_bD3iva2)&!JhOG13#wnmC!Qd>~@y4p?85%&)5EQ z`B%1{6=E6^?~EDog))e50_5mDRl02({b}vdcL*jmubh%9ScQ z_iZ6h>+Tly|L0PlSK0dkvig9k`-#e4k+JoxlyGO$`M6*1?1QM{W!2BR01_nl6 zPZ!6Kid%1Q`ExNQN*w=K?y`A9z@-?6ld@|(I$M`Y-`G&d>0ZFg&As$Um$AoAh9EJq z%TvPNU&(l(dr{-w_un`FWX)POGyUGt&;JCO7#JS&RI~1sV97Dn2+L@;>PgWFDJgs26KJ5$N|&_0v|$Ob(~)C`lQC> zns4zs@AaOy79^T^z2*v7D}VTJrv{_<%E<{?(S2Tjw7!;J>K!nrMv m?#==#6nK9v#0cbw54-bb9O>GzZa&))kinj=elF{r5}E+N5R%RS literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/power_key_off.png b/Resources/Textures/Buildings/computer.rsi/power_key_off.png new file mode 100644 index 0000000000000000000000000000000000000000..ddf8abd9f011bc59e45b062c1ec1f9d9ac839d39 GIT binary patch literal 643 zcmV-}0(||6P)BjU6opS?Z=Gbxc4J7KfN|Q*VEh9LrlC^^ojMf!NBUn388U^^skj(AHq;4ZYik0D zQ?M(^wx(=x(;>Xq%90bwy(UV1J`h&|={)IipYG$m0}w*U67%T3Utk&|leu1`zBeBG zzB#?f#^xoP%flNDVVKsP(RFORe$&v;?(a2`&E)|Ar9vO4{eq4F;El(=wi4L^-e?#r z{v7l}b<{_z7{-dg`-)Sk)?!5fSbhI4pi?UJeKCwgc0lj^ELH@7?Z>|YI#Dvtvy3;F;6!?a>WLI@#*5JCtcgb;Gih%HYUnauU{@|a;-=zjb9Pi=%P(YcN-wzMYd z4=_win-(OOz@iu(=0(&Z>*}=Xa^Xkh2q90PL4aG8BpJT z>2repxagsC_*q0-bO^YPjiWDzxSCAhI<}-VfEy=RqkSN%DV71H@|NB&1a3A^+N}># z@&JIr&Muk&aM2Uf6deMM_5oU#D;VtTO3Gq?uPLhcH=-TTtiO_!(bouZ4V*{Y&csx|RVR&lfRB5JnEfRp2nn5KdmAgYFkmjQ$j dLI@#C%Wo;{1Zgol^Fsgt002ovPDHLkV1gONESmrT literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/power_monitor.png b/Resources/Textures/Buildings/computer.rsi/power_monitor.png new file mode 100644 index 0000000000000000000000000000000000000000..fa1cb4a2a91b2a11a26e18c9e4d1b4a209a918c6 GIT binary patch literal 1315 zcmZuwe^Al~6o;h98X?Bcm1(6G%XFCKk8Ek0Kc=OXn;2qRT56yomZ_OQInt71{j|(! zU7DVxrUop~zFs>eYmu3VVoFM&CmI7rpz?*$?VokqyL&(Gy?giW^WNuO*dG&tShji@ z1Oh=s{ty~#_4LoWbcxme9(d#>1Ol6m3=RINplbHlEhKk5n$98}bY9xF?EFb2b2*m_ zB`_G#n`}Q|GSe&4bV*l4*|d;#DXof-Oc2_3DCCT`p8*TE``HuC`{lMDf2*iKJw>UJ z!M(jTV`R}Q3iF6)70Np5v-qQ9gLjaz`;_9`GLY6EQl8BM60t%ioQW7nzTg>yWYG&MbiT|3RYB>VK$<8nPqk9rg^ z%m>XSf2AjV@^`G076Gz4C&0o)D-AV;V+#&vb?}Y5)ReY2$xUo|n-G6nU%w~V;EZv6 zT_O{yEp?@HHbBML8IzZ6$hqWB1udl*+0&we|FhHovGmUK(k>eV90#`)e0nQQ+x-B+ z{Gjj|Bx%&5wL|M`6GYFASu;EPZ@7|GzFu0jj$G37n|$Kxb&KMoN(5r_lUH5<`Z9`G zUVvkbzz1*XTY@@*ScNk%eD-MlBFm;TS`olV!p4WJ7<4@VDt6{qx43|2oM$$6{T*Yx zpd9vUoQz84oA24augMt=rHtIjya)&wx-*)!~S_M!Rm6b7NJ&oo2Gako*QVnLD7e$|;;H;QAVFl{MhWU0OUhK9v1#Gh4 zb(GSpHD+~iPIHS5K>l|Fa_lx~4^;)T+X8qJW7qI4uU`YJS-#WeuM;w8rD<;)4Sqeghr&KA~i{L7*5X(rj)GKE*J&)@p;0 zoM8T#QU&>VJVNEvXQh6Fs$u>F#}u1dc4#4NMk4cvHmj3=tQ@8lTPoeTQAvI)5VYp% zip1!2#MJ~En?-NeVZ?6!J7`hE)r+#Mz((eqEXbTw=Ii}4foGE?>U(-1$Fwm1B{}G7 zmbwmSwgU$pIHa2qa-M;3$bN9)WPrqj*+o|S#n4AyUMuA1)}F$1RT92OQSwCm6AzP8 zURubhINeb|2yr|cC#I(B%kD=a4Ub2c(8CbT)^ H@VUPM=arJY literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/power_monitor_warn.png b/Resources/Textures/Buildings/computer.rsi/power_monitor_warn.png new file mode 100644 index 0000000000000000000000000000000000000000..a80b1ceef5de90af2650d20a1a85fb5badfd4125 GIT binary patch literal 1030 zcmV+h1o``kP)n!n=J_Gg z+IfD6tJ_CuysE`Nq^4}8+i#&UkiL}3MS43I`8(8h{6qSZ_2Tp06Q1v$c8{}`$#!CU z+0W#0K3d^?wAww+S|;0x?PWhx6?+e}lgrc0&Of<4m9`O=0PwopDsABXte4sO_p_d~ zjkp8=D8?__-UNu9EPE_Vg7{j@X*)_AD0Z^!u`CJVYq7<&n>*(9*>R+_vHRZl;m^Bk zP-X(sj(*uupKK>C0ktzA?dX>s^~rYP5yA0e|N&_%(kiw81gec2$ZGAoFMz z;bgsgF3v;|>*JHNRK$Ax1JFIRiXD1jILuXPYdyTC-P7y1IQln$LQX z>J(TL@qf&Ek?s^&X#(mpk>FyqI-1XVk*y&pj;}KW)&6_H#b|Y8`s}Jx{K~NPyP&GX zCn6#uA|fIpA|fIx+efL@x1snAniFi6hgTuKF0DUFded&Ca+7USY{xf2IRQ80PShAQ zm2b?gD~?~~8*}HOlz{8AnQa56J&_ zK;3B91=$#aM4x^LvRR+6TN+*k$_eoN(CW_Hj&F)`0#qhxm}EP?DYdT+tvl@m1e?Hk z>3I>u$=YgsU0Mlf44QD-j2BR0px}K^ z7srr_TW@a#@--O9nburuHI~R@{jNxtWUaq r9WJji=GJM-X}Q6%Q80-YXx9O0^Ugrlp3M8KAe%j1{an^LB{Ts5{Iz$5 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/rd_key_off.png b/Resources/Textures/Buildings/computer.rsi/rd_key_off.png new file mode 100644 index 0000000000000000000000000000000000000000..405300276d8d08683325181368bfa81aa0018301 GIT binary patch literal 405 zcmV;G0c!qim*u&evwnNM-hJl%oDchrcK7_6L;GqeCF!On@iV z1O#7=JrnENY?aqNvL!^=WImlFLyhUOLvJPKnV`fLc_wq0X zWGqX9AOVV^D2k$dSE^JefdUb2IuJ91!O8JTlDr`y2{6D*Q{%%4fNMMQ;iTJ-#{s~Q z8OZVMVaUL<2Ru-7{k0UZDLYlbkFkSoQ=`4Dbbp)b2R<#pkQuc1%r+L_fywh1SO9^- zg3)J_ia|feF0f}iDfIMu>e|uYQ?Xzvzzrvlk17BdPH>7i(KQq9 z6Q4jSIrn{Y7AeYP{#yx21u!$n(W1!%pZfG! zq9}@@D2k#eilTfQ_VkIV$i0Y@ASA_=AawoixAywc)Yufp8I)AQ7CFo;1poj{851N> zuosKAm%&~`mI7jyh8#Ur2?Pq4w+n#lH~)U>ekpk_P%r}=GeT{~71vEaZ0CTcNXpEZcN=Sk|TO4r65w(sD zsy?z`glev#|CB#qWGbrH7?~je0000b*V literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/recharge_comp.png b/Resources/Textures/Buildings/computer.rsi/recharge_comp.png new file mode 100644 index 0000000000000000000000000000000000000000..cfdeb3a9696c23404069434225963d049b4ff9a3 GIT binary patch literal 645 zcmV;00($+4P)d295JkTi0TxIVuurws0_l`~JD(uP5k~b^K~CTUq|zKAM^NXUs$#&EEBB6@HQ;Kt zaHuFY6-$&XI>@}nByDlXuTMhq5Kt6FQ55C7GV(PNNQkJ{K+FsVd*huQmaJ5LP=RJxG3w@va8oI zTW|Up<4Fl}K$E)&8``Lpn;maauc|jT4*$@=1<1Rv;pbAIHci`B4{rHm+(L5rLTxuJ;PS%*Z7B z&|y{0YTL0rAfW`a^#)Jr-%qAd&oLJ@-m6moIBOknU>To-(!=r{?f?Lsvj3WvGD2k#eilQirq9_eH z)qnRPL>Y^SoJGFRe3@KO>4@X_tUC#>5f87$YJgF)T6H<((6T z6oEjpA3wCOAE6g+ALf`YmH>c1zpg{O3C6{oE|%Cn%!B(0761UY&+j6{V7geANzza{ z36M|{O$0aj{hVc6Itk#oxw`D5n$wC0qdT$ep@~>3||FI-O_ev;=PXb`

VDUDF*br#&N8xjN9S1P%JNem7UQrZ9 fQ4~c{z8?PppEQDt%)kwA00000NkvXXu0mjf;Y1u{ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/recharge_comp_on.png b/Resources/Textures/Buildings/computer.rsi/recharge_comp_on.png new file mode 100644 index 0000000000000000000000000000000000000000..36759ca9335770a9955c0b36b9b8041f40b21cd8 GIT binary patch literal 1736 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 Z3DtlOKNmHI8aK9o4x+s=D27*9#=nFd;&1=} literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/robot.png b/Resources/Textures/Buildings/computer.rsi/robot.png new file mode 100644 index 0000000000000000000000000000000000000000..4a1cb7beb1a6fccf3a928efc262262833f9a24b4 GIT binary patch literal 607 zcmV-l0-*hgP)hl3DZ;?Fm??i^SA1PDpHsgZkf! zgd{Wmo^c#|073{Mg#1@#zLNqeMdWh4f7=59vY#y2kWvZ?%4;trUWc^k63f5i{dX%kEqkaExsJ@Jh}tparQviqOiK)11>;V*^sPA#=jkfIv2?apa*)TtVX zU2cv602&W8*hYQ5?m9jM^9J(W=R0ToFtnwv53c}9sjG)JICVSabJC~&Elm2f32fUj zy=|v$BNE_`=+=3_U~hZScOKxrhWpYvXtxZ)lN*(RdLrhG0Yg&DH*Zm!X->olA%qY@ z2qA-6q={TSTKc6OF&yha4EL}dEP%c9nnDEIW=!>3 zumE<*N0rY7Vr*uMEGqrN1*rGheT7tGU>9-4?E6Q(1@b(fwbc$j8dLR==Xv^~2Z5BM tPlYG+ISydl52DF6o)AI^A%u|U;}-;T4k}u%X?6er002ovPDHLkV1k&45;*_> literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/security.png b/Resources/Textures/Buildings/computer.rsi/security.png new file mode 100644 index 0000000000000000000000000000000000000000..d60450aaba64d5d07a0c0a59f3c42ad1dc1e39c1 GIT binary patch literal 719 zcmV;=0xX+uz;s;p3`t&NarE z-r<~Uq|RE~IOm!y%i7~ynVFkg-T=b8V#eJ@HTs5C!;R!B7>7q9}@@D2k#eilQjW zROEldd%!uDek_t5O5X7R$z097{&h^}bzR?734c>}QEfyy0BAEf$(?X1*+)A7NUsEu zd??v5g^M`gTo&gV5D}R9Y$|LlvmGD_NdUn--nHl^Laen>8LQb2u-3Mz>C_CfK%p%1 zRgp~-#+W9{vZPDmaNAByK#Yn3o9!M%gvDYJ)68Uu2*wx?QS|h?NDw5VlT7k8VP@~{ zkvT*=;1WyG94@u;%yxh*L9!p`5=+t)Qm;H-BmhY;Ox3Tow%vgi`$iZw1-cs!QY*kW zhMN)lMK%@LqnN6{QKTHuJ$!~MilQirqA1D>=Qr@Hsf7}_Y*qjO002ovPDHLkV1hx% BQuP1; literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/security_key.png b/Resources/Textures/Buildings/computer.rsi/security_key.png new file mode 100644 index 0000000000000000000000000000000000000000..7d2b3211a1435aa4aff8fd26faf59e464c36c9fa GIT binary patch literal 429 zcmV;e0aE^nP)YA+4<-tT95+My@C&-pdyoE`}PfN&Vkn|90^ z)<_#zuRLU<>Nl!d7qcshPGg!)fcLsuKN{e_k4*wvkO)-+dgi}>z|vVl005vp`+$h8 z#mSaG(KRIv?KQ5EP`{7%Yiv$r^(QI6wqZZcnH&HB00000z^Ce8Z3|0T^*avzh;0Iv zXXi*jDD$MmT+3NGq00000NkvXXu0mjfikHME literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/security_key_off.png b/Resources/Textures/Buildings/computer.rsi/security_key_off.png new file mode 100644 index 0000000000000000000000000000000000000000..b10523c507c39b666d56d1fb5573433c872933e3 GIT binary patch literal 704 zcmV;x0zdtUP)@w&-FqxQwtZYcZAKtVQ)x5_+B=%(TdjpCG~@lYzJeVfcAkL}p=xjZGIPm}QG?fbku0Aq}uVA7y3 zpj$#!9m@QTg9Fz+%alJBR9e$8K9K?d?C#XCS*=1h3Rr$z14br+!|lFt{$8qY-j%0M zdXAl01kwudWCqfTOL)(JpH8w{N+Mnqkww7H@6aYx z)e&um{_AdVLRFpoT?1b}e?rW*@x!*Ux$!3QU1gF62~mef5T|7a<+qC{Wr~nxnpOsq ztd8SAQ52Y_87hzM$jD9Ihf{ITip3(jIyaIB@bSZYlwPa?2)`Lx+FAk@lE|&yh~m}`BqPAGEaWPA*q37X mWnBoIhx-c{V~jDz2>k|Ks0wR?L^{y`0000zY7zXgiCM$x6;^v?mO34x}>MrK6MeHHcsTIl|dg+2k|8!eq z4_Rtz4W$PW_T*tHSV?ILE3y_0c9GT4;9^?}ap^%2s!R_$*|iz-@0-jwn&)>h87A|5 zle}a;Ci9K}5fKp)5fKqpiYlXp4MXEvZM)ypp#9Z2{`%rG!#w88<1|`W+wRBP@4lD! z#oO;UqVcC~#FoFyxt`M1i=83{Rq6RwGAsbypC4U^+wIO;?*4iXyVY-Ho_qd2G=F3z z&&W?gMzUH159$=yQ(fM%Zaq6;adH#8o z^BVvF5{U!=U}0eas;XjibTn%nz49}EFRSqEMNAoBq4}6^JGCr29|k_PCST7}x=+S) zvj1!DY25hZZqb>SZgyxT4>*T^AFpK1LGl*B-Mg=LAQCzLP(S>61-t)SPk#f}+|zI! zsF@Go_wEQjz@3r@U1+{e&(~Rz|9SzMvHz~?AEPXj(8nuT%X1dMl^-@>REk+|{`$92 z1_7)CE&y=OK^Ytb4v&{9U8N1WQuAxu{Yd`vJm)$}S1*896Hx$&d5k|!C3Se_B-HQ~ z`>XMSX06pd@6M<5VDOG``69K!-gZ!99cu~^iA%~a|60C06l zg`=qzvj_pe@m%6s5d9-z0NIBJC3T2Cj}v`;eVJwY<10CGY)Y>Fe9G@Ai%fT zh&A`L)FKegX8{OUZ{CLMU=u+3`uXw^&1V4!NT&UWh1>G4SVp4xEC2zqa2u3RLR$Xp zy^wHz-tJ&JTmMKHUI0gX&(3YWVF6g#pKizeLM3nc;eAwG)2H3?4GX}^{&YL$7fMxC zq#|Q@u6$zZcCE}m^CnSN^{3l0zml9e3DkTKk#^ok?7;)z@HW!U`+)Dx@pE7H9WV6$ zbWPJRIXRhm+}zw;(!gZrSBf(yfmfGQthuL8CK|us##VXy({trJnp%MoNXaimBocx5 zQ5*+F-u%H%`Mgo20MEpX=4fig(bhBU#-pZBGOftx4Fd$}r(tCjfEoEb5hN%z9IQHc znXcG;Iw9+~0K4Q95fKp)5fKp)5fKp)5tYeBY1g(ozvK%-Wbg3nJQFioO`VJRB`CQ7 zWcSDG^y}i7UmBrH!esZyHw=wyj;2;5Z<%`mX(iypb`es+#`= z%r_)d0PD@$Xs`VyGa!*|ksLw=kWBkAdoN_xSV#h)0`R)xC!IR-B-PI||J0fJ#k&xF z0Ww>(&wIYuAwbgX_tY5Da>rnYe38SjPywi_3U6dgWD~+-;Wnusf*tZj4#VgE5TJw- z@VexE1^17HrRIy?Bk0^0K)Ob5|NrX#0DPN`((=8oxKO^(O`>G?#{^!$v5p>fUXQ^B%NJy&{u7TXPoh=_=Yh=_=Yh=_;);6Hiz`WyD8wNU^7002ov JPDHLkV1iV?i!J~F literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/solar_screen.png b/Resources/Textures/Buildings/computer.rsi/solar_screen.png new file mode 100644 index 0000000000000000000000000000000000000000..90eb9eb5c6ca4c6c0ec3ebed2eda7cf6d618f488 GIT binary patch literal 1084 zcmV-C1jGA@P)t8vGWcCB1pI!e;+6R?hYf^fx4c|`Qiio^iwnuJ;7SBw8Y=;=}9_;mEPFzryM_ica9x<7tj zmVMh;LiAH7KN{Ucg;K6qQ-j3G_vezIrAqjmg?IRDlO5Vv{~NnT

>!N9awG()#0L(C8;E^YN!|5OIGpvD?JI4G8S}(@fjbW?nx1 z5M%J|`^w_@)2CU=elzpVKqnskq)qB4cM+N8{IgLceEqtI z=}{^_9v8Nbjea(L_X%JYD`=q~r0+Zd8ik9Gl`1;uhv_>{fS1d*#NEl)_RR|YFn#9< zuwO08+x;)^0npd&yMGNJB75iGy$9gJEPABx-*=h-pRIz;O6XUsRJ!H?pw%}*^yi)cajQ2x0UB3=xYZlJt?@{VTfJddyC1^b6QJ_Y$!UJ|TY2c@ z`ptI{(V2kD)DOYwQ$Td}oa;B=)xHg)AFl8IyMU|bT=H_9HTt^!A+?`{(_e}{00000 z00000003Zpt=pRUP3n6;tygoIG=2ZR*TRta=3t=t)NuO#edh^qd$v2+I@(rSB(f}h zEuoIzX#!mDeGC4wX0CmW=jJE-8WS+&`S;o(M3d=jT>+Nm_c{W(ZQ%H;S7(jBf8T2Y>{pAbmty+< zeXj{ndabGMlttga?==C;Yuc+VQl#(Q_xn-S@u|e!vP4?1OHbds@AtcaZdszMXPtwm zAEfX8ZD6aXd+_x2`r2#K>9Z#Q000000001BW`60^MpI(GfCES>H7 z^x1VVy(y7I`|ran1OO~1d8O82oq8p1?;H28bIt%%4YLrx{(J)fTxEwr=!Y5r@RIk? z5B2V|>LowBKmEX)0T^Z>*6TH1|9xNM8gU%&f>6CVQ$F__w$+XRV>B9JKA#^PvqwO+ zED1!Ql&-JUTv-%HovIDM^N%n1diU!5%{2n-a$D)3Xnf9esZO3ZT`K4CcaH#<>ho^r z0Z9Q+?j;WavGeCp_|PxTdNI_L{{Ry_=&|N$7%!I z-XGtudj#})Cx^_w&go%ws(xFpnZ-34jKw6!Rkkm8)UECWO6e|gfGY_S5fKp)5fKp) zy;E0f_icFT%WMoi8^e1Lr2Y6LX*`Lx9gti@qV4i|l_&uHP$P-_48cGtokYh==1qwL zVAkT>EMZHTHl^Eeq5uH$f53O!;sAVftphM!D)A<$lxe%s7M-Pa0MbE$yYK#YnpPWG z4iZm;tBvFeGG;f}i`f|3@HGt@US5QD&)wyNziIIDL3|xi4mcN*Bq(AY10S!$KHEO( mh_4*r{pN{?h=_=YKB~VC=>U(t7ObHr zIQj>46ogLx1BOs=7ePctk%Ay(DvnZ6sG~!%@x3JeNQhz+3rYI@z;Q=&??EmXa+ih( z001EM9*Jy|%Wrj9+(^<+WV}$I<&{<1+cfN2qpDnAoYQu@?dx+`EYiYK+38c#Ns-^K zxZHThf2vb40H1WPu;-m!|1tCEtB+^#k9Clem0Lijxm@Xa?}~@jdWOyy0000WHf7jX zRiS%}B zLQ2$m%C@)|ieg`?YUJBMVkL*NBpC&jp(00000AmANzd!t>1ajvHT0000t)u$d+}rV!t1Vce;CecY3-{-2nta5L3*(aTg#= zjxlM{{_kE-d1uRHW=Sc(eiMX0`TJP&%1U}T?%UTR6x%Hv1IPn6%8!gi^2($Ge(|5! zDIH+%a037^TYIZ2I8H?8xStd!!(`F{006Il0q9n$YMQ?v(Yfu*U&&KVHkoz6p0^Q% zbu}QYGf_3*^haB{|LnS|f)I*M_gvu7e<&A05ClO?7?H)$FpH7r3kyM52m#x+mGp4j zS*H_OjEo!YL};(@9uNbKKWO<_DAju;U*D z;clg>Tsobsp{)T!&8vL?hnK;d=IqyXvWC_HgRHE+0GM;;@!@+FbN%KSjFIhe z%d)Ur@&F%r_B45!A6OE*z6X@d?c=BZkKS>d$Q%E?xEOjrAjg<|I5QK8=bWcnX6C0>UoWY-j_=} z&F5CVF8N`ryzKRGy;wk|DM+cJUW6gE;}m6ia|iwQnty+O-myc22zUYFp#${$r}X<| zSOZWd4i7V=hr`{rL+6w3v`=jSwBtagAv6>uHhX`Yy%}((R0cq%DF8r26`%e`2q9n% z#3?gi)fFxli&~>q9J&vfdLCULs9_rdGEH|T?peQ&$0XU&Kf8?y zu-=IM`kho}z;ryewtY+z>)z$>#l=}}#2AKQ7=~dOhG7_nVVG}2(|7k@K_|XY1e$tY z=Rufy9#ORK?f(}*1k#Svjkxh4TKPa-_z*>fco!)+a$Pc=fGBFLZ$B>i1mY#aZI+?U zOrQvKn`PG5<)7u~02B=N|K%LD8V6uH9z)*T73EX(#-Wt8A;}@^y&zGCetTUV zLU+WU82arMvyN_`YhpN~hc~q8(Ahma!!QiP eFbu|(gp-P((ZK_un}g(uD3l1!88S-ja3wd`(5cPfEcBL2XvDp= za9vD=Xvu*@T#5x3w`2){*Fnx++xwIF&U>N#eIW1%m-l=3%kRBh?j1k~A%u|s)ri-d zsqI~!%xIAY>eMY)#70laHuAbwR;%fs-RXbU@isUHULZ?eZl3L*54GkX&&LGdDPEXAC$A6=(-NW zFaQAW-hcS*m|D32R;=J^zu?;rGISRvfcy$1gb+dqA%qY@2qDBnYI}ERHabMc61p|! zCz;VO47)w)swH&)@ZJdkfU}iFsY&SP_W6SbS5=j_yPV6I4yo;3-tOM+Pl|jALKUDW z3NGwZBr_VumKS16!r1ZxPi8cn?-{6-gYWx?5lTR-)w@hp6YIEYXJo_y@VUY`{jfQUmi0rlWSs1Kn8uwn&S zyNA-wlF%UTOFcM2E|(MPL#TdgHPZ00000NkvXXu0mjf5F=~^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/tcboss.png b/Resources/Textures/Buildings/computer.rsi/tcboss.png new file mode 100644 index 0000000000000000000000000000000000000000..3f24f63259bf336a9d643b610fd88ba74aa6d361 GIT binary patch literal 914 zcmV;D18w|?P)7a0`|UU7Q>m5Nknj zD7pwPO_vTG1cyREcxmwonIi9m~!F~R#5*8Xe*EFbpUQ#7PtM(N(GWh%7sE( z*}XzCgeIOZJskk>D(AAgSmi}2&HVBaB$EK#85;xO!>?aK*`5lxpq%J{)x|0wH^1Ue z9RL~bjgIo5UT^ETPgn|APo>mp%f7sPIS9iCo;rP%c9OO2zviHx4mh+dUX{|gQwJE| zZUFGUR%6Y!fu;&xd(Q9`pmJujk~1n`)^WJGVneQ(m&iBk^_@LasjvhrRVn~{%47h2 z`06-O0rSg8Kt}sprwaT=4J!GJVSwW_>M69;-WOrhM-OkKfjVC`R+p;zi@I=AJmG4-t+qLoC@D%#Cb50|T56;LV`gXjC22^o5auOJA5AP9mW2!bF8 zf*|xsKkx3(n^@YSOjIeIj@=2RbXqBs7#yHbYibb;1w}NySqj6eV zZDpr#wH=c5%ZZ1hy(sU0Av;I~gYtQg^8T0Lv^r`U6A&oo?nXKhuBTFpxw{Hb3*ILx z+X22|ZwZRt0iJ!MI3Aw^eB*%~dmoPdX oHj%CZ5!w<2K@bE%5QKk`KVsT(6PlkfUH||907*qoM6N<$g6b`?djJ3c literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/tech_key.png b/Resources/Textures/Buildings/computer.rsi/tech_key.png new file mode 100644 index 0000000000000000000000000000000000000000..910d4d48badd33978c87f7c0d8d6e931d0be6c3b GIT binary patch literal 503 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GGLLkg|>2BR01_s8J zo-U3d6}R5b()B-_AaFdNd*-~u0!NO7JQrw5Nt5uHrlazkL9{~Tq49$Q%HJ5Loe4Q( z;Orz|u}VPHBE~dn>Gv4~h=k*m%hV@eGvliHWei*aH=5SWNy(=5X^R(;tyo%j^WU-%mZm!+RBw#Vu*ohIR?p-5vd&yMRC4-?HEpRHR})gF9eNWJVK2Vo+TWF@CCwR@ z)G#D{Eq3G9G&*9R|Lt4w*UCWW&A*degWcw}qyUClgkzcpoJ2;&cY%ZACBKj|P z8@CyQ5rfI85`)r;Il32Cl`S%hNVQo#MRDa5mGIC>W+`v1JUJcS`CXKM*gI`kj;Rzw zvXNS{iHg;S(%7?ob#faYYOS2axb^HaS2df|vp-8ySrqQXrk%YJquX1Ze`cE2dWX5I rm({WTSw5lgeQr6M$p>DD{kc!2Z=LzKr;lNWGDyJF)z4*}Q$iB}@o3k! literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/tech_key_off.png b/Resources/Textures/Buildings/computer.rsi/tech_key_off.png new file mode 100644 index 0000000000000000000000000000000000000000..a467fedba39718943343941b03e81e07978b4109 GIT binary patch literal 568 zcmV-80>}M{P)G@lZ{X;{ly|EE(~}}moBWKf?BAxel6V9l)5rF zNopE9LsEPnCQbwvcHz@cR6OxjDm|qiY(B`2}=y zMND7Vp^KNw3fM0nz}B;{+>RH|PEW?p?e_bD3iva2)&!JhOG13#wnmC!Qd>~@y4p?85%&)5EQ z`B%1{6=E6^?~EDog))e50_5mDRl02({b}vdcL*jmubh%9ScQ z_iZ6h>+Tly|L0PlSK0dkvig9k`-#e4k+JoxlyGO$`M6*1?1QM{W!l?#9LML!ow(#`S53<^JxZmr5|*SdA(kjb-R;;?dQkCAD9m@bQhAu4x42wc ze%vL6F!OWMQ4-l$OomBzejA#NefQ(mJ@@mE&-?SdKmUB5_v`aXKI!FVXt2oufj}7I z-Ca&;dcx;g^`%Bz4hM7~5MQA2E>1qtKhF*U$FoBaZ3{y3;MKfJt$ig&Q3s`{)G%72 z%l4}}wpr43t5fX0G;Va&OU0p31GhZyc@!bHnpn1q*6E#V)jiG&&M+LR&yd}gLa>?x zAI3tD5csOA&~X`l|$`2sG1|b=`dF?wq8y^*v~R<$WPouD)El zOBhq}xNx#K4Ts`@kxgDhOWRCBf!WD=3CsuWwBkbC-qao|E=6w7%d(!7v(t;>`SVxc z_pz*|lB!N84tn4Twq1C8CO_*HEXXf0j_*1`s&8Dl@eo0aw*6Ss^k#mhKn1ajXdesu z%+C|-ET@Ku$G>V{6rVm(RF#%Fr}PqV( z)Imi$80L7fulN#HmS=Q<7`b~_lOP3eK`Pt4(SA7Ytc|}o-RnMlgLDtuRw?S>`9w7o zOmN;2YbL~^JBp5#(Ig?sT^gh?hXJmcW5ai~wrjI}fKQFacD+%^STXZcj4#2iEG&i3 zf=|_(I01Z7=7_b(vnIFZymO|kfhr7C%Osndvya((a$Fu^m|0V^O|8~ z@JdcNbHy*Vg+dpRUipix!juH<+e$|mXkBjbN?;`C0{uyW-oNf#*>KZuhc3(+iq#?AK=>4&mrN)5t6ZZx*wxb<>!-T{2aKxK&Z+E=TTJH{&9ciXe_BlU z9@NpnvaN`-uzZl?E3flF#q*Vzg=MY(2K6&C=Fg3%PPp}n<&U_OE4mO_Igg|(Vj{@) ziIlBMF4A-#v#|A!|7DG})>yia#l*SkOa}Q#i4XTfQ$VRQulyH17Dn~8X?u*+H@VIv zJ8$o(rI0xwB*UR2@T2X`-O|(Ba@>3^)~DJw7pW_v0~qD~8%vcu95WR*FV~hRV}^Hx zjTuOg7|t^(h9e#bX$#`}U-V;Mn+b=Z)kPS8;GJ1>wN>*j$3Nk;RC+=2BR01_nke zPZ!6Kid%1Q8G120iX8i>pQL_+JF08vu_iG~hayHr_7ki<6K>sWNXVU4q8WBWt6U(b zMdVx4T!VMBQ%zT=h#EDXdG$zC}$;u(ocz=hYvp4gmcO1P!uj=`CeGVcT9u$z?M??|-=d#ErmTufLY> zUiWn4n!8m`uTD8|DqCOh%z+YP{#VE6ScN$x{646ja4pPCo>ks#x4dZhy=`^EChp;d jJtyNEd<8&;ZkTMx7%8yvrhoB=%OJj|tDnm{r-UW|H8iIR literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/teleport_key_off.png b/Resources/Textures/Buildings/computer.rsi/teleport_key_off.png new file mode 100644 index 0000000000000000000000000000000000000000..e53b097f1f5e37f51a7c771544eb4f3887ac7850 GIT binary patch literal 679 zcmV;Y0$BZtP)64k!=K~LUdD?uFJiI?29)MvOW{$b{zh7V!P1pM$K7LaCU%z}N z(f3?8^vxL(RbtLgPZX0vV7*#}=ejVrwjhOo6at=U!pIjOg}|%V<-nv6f#0_%O z)YwfcXusVwL%;QUy`XKhTJQ$#{XHl2Kd;-l@j0pN0RW(7bAkC>Sr*w~vov>D9J(P}|-K`J5lSaK7)x(u;z8D|~i(0=sEJ%jQs8Ucvnb z4`d?X?26q4e N002ovPDHLkV1gfJLTLa1 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/telesci.png b/Resources/Textures/Buildings/computer.rsi/telesci.png new file mode 100644 index 0000000000000000000000000000000000000000..7d974d4c087fe0aa29cb63dc2bd03f319923b6f9 GIT binary patch literal 1453 zcmZvadonZ7;DQPe=b=pJs+$dqV)=lZ=XANsTzh;&&iH{B!}ua zm}*H$kGz=c81CVmtY6fle!Vhv?m*S7&6iwu*Ok3d={KoXIJA9%KF(#%^CC5@$G6#3 zR1k$?m%bm*0N^PYL%O(ZWByTGP%J0G1}bYTGZH-2n%UavV3&!tX zphpaXH<`V%;z)JRN}*{dw=>mb2T%!B96gVcVo_P)gLKULN>s3xBemG4Z z;qV9ZRJ|@6e|qPFR^=)lea?xW+^|qzX4cg0Im)c980n zS5z9_AM=Z@@v9StH-S;A031C+!XM&_I|3)yV?#AL zaU;@j5%3tMuOF(=wq$-iAv2vRyhWrdkKz^hbmOrMsD_vpiYk|%Rr-5;|KmyB$?Zv~ zHXtyg!m&RKk8L!x%h)HTZM-Pan+e;@Y2hAzK6-hmqP^DwiC-*V&hMySxN>Wpp(~;u z26M}n`P{`-UN?S~N0S`eV?i!}dk$c*^t9MXjVFtzL>P0Tipenb6vYINit-OmWDN?SE%t)gy_jRF>UWYC}m zm{%T>{b38HpJ~uEwQ3XvPcoF&>9qi1;D*1#KP&x>3CYK)mr=CL`;Itu_kswfkQgt0 zt>R3Wnf5}=X1#)+mCHSOhUTQVhICauJVpUVvm@(&$8^|ub)0>z_g(S4+ zh5@)Np`Q3nk+-|#r=W5j9s&!Uj`6k49RQ}rSMoV$y5Z$0EcD8eeU002*Os)ULUE3h zTm)K!V#$OM&15f*T<`Xvl#*CgKs3ve?drnCEy|a|Mw=D+Z%DpICRatKA>y}U8z+TFeIKAeHM$4d{<*k$ zd1~!NLWIBRCjIT8U1kG@=O9R76|!or9VR#U*XLUbw4Wt`>&-Zdl!kOtYhis-&o1$F zom)lc`Do?Hq7Z3{8*yo-CP|=s$fCKea%B@{bTU95w8l-5{RWgMQiiEghPYQV$*&=x z{$=TKD{3>kpA7!-#nk|Cfp&V*YS(xIOl|?@zK|iYQP~yXi{Lf#6lFZ-=KiR?^o-h>sS(lTfdQn@P2npu;bV pj!!5_<<@tudQ=GI{(~{AG)EkG60A6^W1sW2h`H!!-EhG_`7c^u2BR0px}K^ z7srr_TW@a#@--O9nburuHI~R@{jNxtWUaq r9WJji=GJM-X}Q6%Q80-YXx9O0^Ugrlp3M8KAe%j1{an^LB{Ts5{Iz$5 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/computer.rsi/telesci_key_off.png b/Resources/Textures/Buildings/computer.rsi/telesci_key_off.png new file mode 100644 index 0000000000000000000000000000000000000000..405300276d8d08683325181368bfa81aa0018301 GIT binary patch literal 405 zcmV;G0c!qim*u&evwnNM-hJl%oDchrcK7_6L;GqeCF!On@iV z1O#7=JrnENY?aq^Yph-K`#Dqjg z7Q?{828%H{2XYm$PX$FjgJm^W?8!gyb?>585ovI8I*KDkXZgksZGSEd#Hk5h;O(2uIq=njQy zP4#Y`#PzTPI6K}B{?3~=E$?h47Q*t*R?zG>3$nV{0i2#c5Yez3#PLaR=;1I4Q5Q&? z9s`t^>i}9MD{{yziYS1r%mNv`9?eP=K$ z590fPcG=EJnjqJ}cf}_ktE7JmB(*O90001hKk5UCdjVufW5Qkl0000 Date: Mon, 12 Aug 2019 18:47:49 +0200 Subject: [PATCH 07/24] Ignore computer component on client. --- Content.Client/EntryPoint.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Client/EntryPoint.cs b/Content.Client/EntryPoint.cs index a75e275b99..b5533ceea3 100644 --- a/Content.Client/EntryPoint.cs +++ b/Content.Client/EntryPoint.cs @@ -12,7 +12,6 @@ using Content.Shared.GameObjects.Components.Chemistry; using Content.Shared.GameObjects.Components.Markers; using Content.Shared.GameObjects.Components.Research; using Content.Shared.Interfaces; -using Robust.Client; using Robust.Client.Interfaces; using Robust.Client.Interfaces.Graphics.Overlays; using Robust.Client.Interfaces.Input; @@ -94,6 +93,7 @@ namespace Content.Client "PowerCell", "AiController", "PlayerInputMover", + "Computer" }; foreach (var ignoreName in registerIgnore) From 3a25395ff9d12830b4fe55a862b6d0fecb0f81b2 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Mon, 12 Aug 2019 19:16:25 +0200 Subject: [PATCH 08/24] Chairs. --- Resources/Maps/stationstation.yml | 57 +++++++++++++++++- .../Entities/buildings/furniture.yml | 53 ++++++++++++++++ .../Buildings/furniture.rsi/chair.png | Bin 0 -> 1331 bytes .../Buildings/furniture.rsi/meta.json | 1 + .../furniture.rsi/officechair_dark.png | Bin 0 -> 1358 bytes .../furniture.rsi/officechair_white.png | Bin 0 -> 1312 bytes .../Buildings/furniture.rsi/stool_base.png | Bin 0 -> 372 bytes 7 files changed, 109 insertions(+), 2 deletions(-) create mode 100644 Resources/Prototypes/Entities/buildings/furniture.yml create mode 100644 Resources/Textures/Buildings/furniture.rsi/chair.png create mode 100644 Resources/Textures/Buildings/furniture.rsi/meta.json create mode 100644 Resources/Textures/Buildings/furniture.rsi/officechair_dark.png create mode 100644 Resources/Textures/Buildings/furniture.rsi/officechair_white.png create mode 100644 Resources/Textures/Buildings/furniture.rsi/stool_base.png diff --git a/Resources/Maps/stationstation.yml b/Resources/Maps/stationstation.yml index 2aa5635c2c..d99b3fa1bb 100644 --- a/Resources/Maps/stationstation.yml +++ b/Resources/Maps/stationstation.yml @@ -641,7 +641,7 @@ entities: pos: 1.5,3.5 rot: -1.5707963267949 rad type: Transform - - load: 120 + - load: 220 type: PowerProvider - type: solid_wall uid: 77 @@ -1799,7 +1799,7 @@ entities: pos: 4.5,-10.5 rot: -1.5707963267949 rad type: Transform - - load: 320 + - load: 460 type: PowerProvider - type: APC uid: 227 @@ -2559,6 +2559,10 @@ entities: pos: 0.5,-5.5 rot: 1.5707963267948966 rad type: Transform + - color: '#FFFFFFFF' + type: PointLight + - load: 40 + type: PowerDevice - containers: light_bulb: entities: @@ -2572,4 +2576,53 @@ entities: grid: 0 pos: -0.5,5.5 type: Transform +- type: chairOfficeDark + uid: 324 + components: + - grid: 0 + pos: 0.5,-6.5 + rot: 1.5707963267948966 rad + type: Transform +- type: chairOfficeLight + uid: 325 + components: + - grid: 0 + pos: -3.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- type: chairOfficeLight + uid: 326 + components: + - grid: 0 + pos: -2.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- type: chairOfficeLight + uid: 327 + components: + - grid: 0 + pos: -2.5,-2.5 + rot: 1.5707963267948966 rad + type: Transform +- type: chairOfficeLight + uid: 328 + components: + - grid: 0 + pos: -3.5,-2.5 + rot: 1.5707963267948966 rad + type: Transform +- type: stool + uid: 329 + components: + - grid: 0 + pos: -1.5,-9.5 + rot: 1.5707963267948966 rad + type: Transform +- type: stool + uid: 330 + components: + - grid: 0 + pos: -2.5,-6.5 + rot: 1.5707963267948966 rad + type: Transform ... diff --git a/Resources/Prototypes/Entities/buildings/furniture.yml b/Resources/Prototypes/Entities/buildings/furniture.yml new file mode 100644 index 0000000000..a5c08f096c --- /dev/null +++ b/Resources/Prototypes/Entities/buildings/furniture.yml @@ -0,0 +1,53 @@ +- type: entity + name: Stool + id: stool + components: + - type: Clickable + - type: BoundingBox + - type: Sprite + sprite: Buildings/furniture.rsi + state: stool_base + color: "#8e9799" + - type: Icon + sprite: Buildings/furniture.rsi + state: stool_base + +- type: entity + name: White Office Chair + id: chairOfficeLight + components: + - type: Clickable + - type: BoundingBox + - type: Sprite + sprite: Buildings/furniture.rsi + state: officechair_white + - type: Icon + sprite: Buildings/furniture.rsi + state: officechair_white + +- type: entity + name: Dark Office Chair + id: chairOfficeDark + components: + - type: Clickable + - type: BoundingBox + - type: Sprite + sprite: Buildings/furniture.rsi + state: officechair_dark + - type: Icon + sprite: Buildings/furniture.rsi + state: officechair_dark + +- type: entity + name: Chair + id: chair + components: + - type: Clickable + - type: BoundingBox + - type: Sprite + sprite: Buildings/furniture.rsi + state: chair + color: "#8e9799" + - type: Icon + sprite: Buildings/furniture.rsi + state: chair diff --git a/Resources/Textures/Buildings/furniture.rsi/chair.png b/Resources/Textures/Buildings/furniture.rsi/chair.png new file mode 100644 index 0000000000000000000000000000000000000000..e41dd742d9a568936202ad83f02981fea1045043 GIT binary patch literal 1331 zcmV-31_!g|Y?)8P;fNd#$uZENL4yVj8hl!`C?w0W(z1eY zZ*NJme>MJA5iH9}ZQDk-+eN$GRtk*c7|Z1n0Mg&V2ucG0z+f9mAO~YU? zz;rs@Te!tuOnM`OJzdT1K6VU7R zvhV*e_NrWN@a5$tS?*sHQj#RCBuQWx29hKZ_uJP`P5^Wify}1c4t7E7C=jQ+pxF z001x?4iSc-_AEhLQ^k^yBuR@gmdf|r994N9NRgmuoNe3SoI}_3om|_tF`Z6D z`JWRBYMKV%M?|QK132fH*zu7o2kd#gUlIuVXFXx-N#p zAtsZ_D<3o*4&l0PX_+JgwA*cHnugJ6q~vOvMluo=mSv^$`5e7o4?z%Qj&>Vj$Qg!# z`Fx)CdOgy5fMfvQ_tEWkF&GS#+>m`#wc18F3sV2m`GM#?ps}hm2g@EzYab*5|nWAhG#x3NO6GJi~wLNsOA>G5=in?W4cwgev$#oPHR<8gLT(WGC#UzV4Fa@j?X9b_k6M3&1`QfC_|z~>Gc`@Kl7-ECf~q$u5Lzr2_??Vknr6CK zEJ)l!19+a7HTwAYcu%$753;Uu8+PH-Z;BQgU^bh*mmal2)rO`Alp$-H_Te32Sse>^ zg!=tH?(Xig`-6i6K(Q~!Ij?mErfT4ejv4y>KE~s5F2D4anCE!_UT0*8%#HDQoYrLo zP191(^K$D3fa~k)QZfq-Fq_SAczB37juD0-*6Ve4LL@$AIF19)^WeH}TJ>6-F_tyH zC|hm4ULy>{Y*R$#1WWY*&Uq^g!_>Czorff&(Fl&?lo449qVc=3)qLN_bUFp+ymfSR zMD_zp1GHMZU!*uK5)fUo>is|&+udFuZyP*McNv8Scz%Ay{rx>vzYhnB?uFB!7{_O4 zXBDaReh@mVd=V)Q*laeH=Ka-;APBJ8Y)ITvPEe%F0LVQlu6j#6Pqyq2+U+)c-_KHW z%DgO+0n#)@&$2MTy@jsp;GFNw6>uD<@^e8M%jFV|;}qs81VMnFW#QZ7BS|J{u4as- zolXb;e)*E+tL{UUK7a;Y3PN#z?iV#H+ z{!fxZe_$8}R;v|7Y$>c(D;S1RmEI;q+TvA;x^!sv1E@smnS0f_0d?!p^Z+W6I=|N)2mBHp pEX&F=z^dTA1wyXs4^&j1z<1gJ-2wO<&{6;Z002ovPDHLkV1m&GV~qd+ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/furniture.rsi/meta.json b/Resources/Textures/Buildings/furniture.rsi/meta.json new file mode 100644 index 0000000000..514c0729fd --- /dev/null +++ b/Resources/Textures/Buildings/furniture.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "chair", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "officechair_dark", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "officechair_white", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "stool_base", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Buildings/furniture.rsi/officechair_dark.png b/Resources/Textures/Buildings/furniture.rsi/officechair_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..f99f8464cc8b68d9d617f6b49b202927744622a7 GIT binary patch literal 1358 zcmV-U1+n^xP)6qdq zg(eWm5<1lJyu#tJwPk#F zFbSY(8j&PvYw#3`qCk=)XquKgR(uyQbpcgXnQK=RMX0KZ*=+W|h^4`@tXyFqA0N5K zAMP>WSg~q2BDQU#*=(X(t!}lO&*!jhn@a>{0q6*y zH4gZ`zt=B8wOYk|KF@sbc^+4pOahF@}c%DZni9<|< z^ST2om;^|!18TL}%72Pltrib}rfHH>Sr6n2K!eYk22&`C0^j%J-xVQ(X_|z0WashE zycWm{p4W~A$(EP({ZE40Ns`30e9sghS^GQ?MUj~R3wpgCY}?Kip<1oNwr%u!J?65R zS^#gY7TF4b-xDkJu%Ur+6;FFaQ zhG9G&O{Y`b+}vO~odQ^0hw%7kCdsqOv5)C+(!Z*z8&l!rJ&%9p&tMP)==b|D3wdq_y%^cWzvDP7{vF5JuYW-h$Z$9$mSqt^5J>V_^4_wnm1jT2KLkM_^lzQi z`m=SrpWr`MH_us`T~Yp7f=#n41T?7Rres>MX?FYczaH$q{4j5E$S zLtYG91<*8&Bo81@6^3DCiomojeroA&Jc$~aUBI^O_&N+j?(BXUMY5m3VM0wA*bA zheHHGfO5H2==N|!rQ)03BSxs1!pOH?YAt+w!Dk7U_1o&~+WI>mrJxlCJBxzP^U8>xiPLhM zJUuSUE;bfT-W7^jR{BPaP;%}V{`Zp=kwozLoT61qX-WF02nB5Edg<_ Q2><{907*qoM6N<$f)ka7X8-^I literal 0 HcmV?d00001 diff --git a/Resources/Textures/Buildings/furniture.rsi/officechair_white.png b/Resources/Textures/Buildings/furniture.rsi/officechair_white.png new file mode 100644 index 0000000000000000000000000000000000000000..a2bf296f6178e424154b1eff17e2072f8736accb GIT binary patch literal 1312 zcmV+*1>gFKP)9YI6g{lANrPNY;WSj1-C9Z{Bnu%IJV2BOaN#1PrKR8*NE0bk5e3gcfh-}VnAR2* zOn;@H20oIQ6w(;C5a#{fPiV5AcW*T%ZP9>P!gah_(S*49e>Ff8HT|< z&npd*5CYHhU>HW}TyZXt>H)g0=Z^b4n5GF`*Rfiy{ui-4_`Y8%?Ca~R()^=52b>DN z@AKJgR@e&}WAJ^StB7zB0{FhqgCKxy+i0~~2kqADHG&{e5Y#$(SiTi<40Yvac zX|Mnx1dK8K5~~ssT-W8QGrRad8UIqLFd(1nSGgz1_PnC?KMP^!d7jkvy-+Z*?NpKF@Nv-h&U zec#`@_fz~s(=;yrc1i8t+qL@%{!?|!oaNb7mN9ekq@)bw;XxVG$^I$^?D$LU^pB~^@6(224&l3jA1w&f)IjU zuUA?#Sh^Wnuh(!K2cyxba43jF(mJz7;lGH3s7-JjN2-*rbfy+3FU@8Xx3{%M`|YZtQ?ypX6@2n>xkXbH?2%p&Q;kc__04_TzY zm5bM1ud2FAAP@)y0)hX|4J#~)V)41S>pJT0J2tpd3Q|f$QM9R@=NZNr09Y6ky9U<5 zo2Fs>LTe4B6lH>{fD5j*rVRLKDFf@Wzm)eXQpyi!wz#EKzsR2(pjt4`^Xs=OvCo-r z8!*N|Ywa}!dvC?DJEvKeE!JApbxmh)jKS%2LLA2!hG8=XwXK{9ADG|(*#cJqm(~5@ z@TuvAO-EH#u-3w9r)m0`M+iJGmSd9O;e19}mREJhB%zlO@P#ql%gVKg9m6Ly{)%32 Saqjm30000 Date: Mon, 12 Aug 2019 21:34:35 +0200 Subject: [PATCH 09/24] Import a ton of backpack types. --- .../Items/Clothing/ClothingComponent.cs | 2 + .../Components/Items/Storage/ItemComponent.cs | 8 + .../Entities/items/clothing/backpacks.yml | 387 ++++++++++++++++- Resources/Textures/Clothing/backpack.png | Bin 241 -> 0 bytes .../Clothing/backpack.rsi/backpack.png | Bin 378 -> 0 bytes .../backpack.rsi/equipped-BACKPACK.png | Bin 638 -> 0 bytes .../Clothing/backpack.rsi/inhand-left.png | Bin 465 -> 0 bytes .../Clothing/backpack.rsi/inhand-right.png | Bin 455 -> 0 bytes .../Textures/Clothing/backpack.rsi/meta.json | 1 - .../backpack_clown.rsi/equipped-BACKPACK.png | Bin 698 -> 0 bytes .../Clothing/backpack_clown.rsi/icon.png | Bin 615 -> 0 bytes .../backpack_clown.rsi/inhand-left.png | Bin 667 -> 0 bytes .../backpack_clown.rsi/inhand-right.png | Bin 672 -> 0 bytes .../Clothing/backpack_clown.rsi/meta.json | 1 - .../backpack_sec.rsi/equipped-BACKPACK.png | Bin 898 -> 0 bytes .../Clothing/backpack_sec.rsi/icon.png | Bin 542 -> 0 bytes .../Clothing/backpack_sec.rsi/inhand-left.png | Bin 751 -> 0 bytes .../backpack_sec.rsi/inhand-right.png | Bin 753 -> 0 bytes .../Clothing/backpack_sec.rsi/meta.json | 1 - .../backpack-equipped-BACKPACK.png | Bin 0 -> 344 bytes .../backpacks.rsi/backpack-inhand-left.png | Bin 0 -> 281 bytes .../backpacks.rsi/backpack-inhand-right.png | Bin 0 -> 283 bytes .../Clothing/backpacks.rsi/backpack.png | Bin 0 -> 240 bytes .../captain-equipped-BACKPACK.png | Bin 0 -> 357 bytes .../backpacks.rsi/captain-inhand-left.png | Bin 0 -> 342 bytes .../backpacks.rsi/captain-inhand-right.png | Bin 0 -> 337 bytes .../Clothing/backpacks.rsi/captain.png | Bin 0 -> 270 bytes .../backpacks.rsi/clown-equipped-BACKPACK.png | Bin 0 -> 392 bytes .../backpacks.rsi/clown-inhand-left.png | Bin 0 -> 360 bytes .../backpacks.rsi/clown-inhand-right.png | Bin 0 -> 364 bytes .../Textures/Clothing/backpacks.rsi/clown.png | Bin 0 -> 320 bytes .../Clothing/backpacks.rsi/courier-black.png | Bin 0 -> 271 bytes .../courier-captain-equipped-BACKPACK.png | Bin 0 -> 309 bytes .../backpacks.rsi/courier-captain.png | Bin 0 -> 284 bytes .../courier-chemistry-equipped-BACKPACK.png | Bin 0 -> 306 bytes .../backpacks.rsi/courier-chemistry.png | Bin 0 -> 268 bytes .../courier-engineering-equipped-BACKPACK.png | Bin 0 -> 307 bytes .../backpacks.rsi/courier-engineering.png | Bin 0 -> 295 bytes .../courier-equipped-BACKPACK.png | Bin 0 -> 292 bytes .../courier-hydroponics-equipped-BACKPACK.png | Bin 0 -> 284 bytes .../backpacks.rsi/courier-hydroponics.png | Bin 0 -> 259 bytes .../courier-medical-equipped-BACKPACK.png | Bin 0 -> 306 bytes .../backpacks.rsi/courier-medical.png | Bin 0 -> 283 bytes .../courier-science-equipped-BACKPACK.png | Bin 0 -> 305 bytes .../backpacks.rsi/courier-science.png | Bin 0 -> 267 bytes .../courier-security-equipped-BACKPACK.png | Bin 0 -> 311 bytes .../backpacks.rsi/courier-security.png | Bin 0 -> 278 bytes .../courier-virology-equipped-BACKPACK.png | Bin 0 -> 305 bytes .../backpacks.rsi/courier-virology.png | Bin 0 -> 267 bytes .../Clothing/backpacks.rsi/courier.png | Bin 0 -> 267 bytes .../engineering-equipped-BACKPACK.png | Bin 0 -> 400 bytes .../backpacks.rsi/engineering-inhand-left.png | Bin 0 -> 265 bytes .../engineering-inhand-right.png | Bin 0 -> 265 bytes .../Clothing/backpacks.rsi/engineering.png | Bin 0 -> 371 bytes .../holding-broken-equipped-BACKPACK.png | Bin 0 -> 457 bytes .../Clothing/backpacks.rsi/holding-broken.png | Bin 0 -> 375 bytes .../holding-equipped-BACKPACK.png | Bin 0 -> 822 bytes .../backpacks.rsi/holding-inhand-left.png | Bin 0 -> 326 bytes .../backpacks.rsi/holding-inhand-right.png | Bin 0 -> 331 bytes .../Clothing/backpacks.rsi/holding-unlit.png | Bin 0 -> 470 bytes .../Clothing/backpacks.rsi/holding.png | Bin 0 -> 584 bytes .../medical-equipped-BACKPACK.png | Bin 0 -> 288 bytes .../backpacks.rsi/medical-inhand-left.png | Bin 0 -> 226 bytes .../backpacks.rsi/medical-inhand-right.png | Bin 0 -> 238 bytes .../Clothing/backpacks.rsi/medical.png | Bin 0 -> 251 bytes .../Textures/Clothing/backpacks.rsi/meta.json | 399 ++++++++++++++++++ .../satchel-captain-equipped-BACKPACK.png | Bin 0 -> 296 bytes .../backpacks.rsi/satchel-captain.png | Bin 0 -> 341 bytes .../satchel-chemistry-equipped-BACKPACK.png | Bin 0 -> 357 bytes .../backpacks.rsi/satchel-chemistry.png | Bin 0 -> 358 bytes .../satchel-engineering-equipped-BACKPACK.png | Bin 0 -> 318 bytes .../backpacks.rsi/satchel-engineering.png | Bin 0 -> 532 bytes .../satchel-equipped-BACKPACK.png | Bin 0 -> 308 bytes .../satchel-genetics-equipped-BACKPACK.png | Bin 0 -> 355 bytes .../backpacks.rsi/satchel-genetics.png | Bin 0 -> 361 bytes .../satchel-hydroponics-equipped-BACKPACK.png | Bin 0 -> 404 bytes .../backpacks.rsi/satchel-hydroponics.png | Bin 0 -> 376 bytes .../satchel-medical-equipped-BACKPACK.png | Bin 0 -> 295 bytes .../backpacks.rsi/satchel-medical.png | Bin 0 -> 333 bytes .../satchel-science-equipped-BACKPACK.png | Bin 0 -> 363 bytes .../backpacks.rsi/satchel-science.png | Bin 0 -> 365 bytes .../satchel-security-equipped-BACKPACK.png | Bin 0 -> 335 bytes .../backpacks.rsi/satchel-security.png | Bin 0 -> 353 bytes .../satchel-virology-equipped-BACKPACK.png | Bin 0 -> 358 bytes .../backpacks.rsi/satchel-virology.png | Bin 0 -> 359 bytes .../Clothing/backpacks.rsi/satchel.png | Bin 0 -> 322 bytes .../security-equipped-BACKPACK.png | Bin 0 -> 420 bytes .../backpacks.rsi/security-inhand-left.png | Bin 0 -> 383 bytes .../backpacks.rsi/security-inhand-right.png | Bin 0 -> 373 bytes .../Clothing/backpacks.rsi/security.png | Bin 0 -> 270 bytes 90 files changed, 783 insertions(+), 16 deletions(-) delete mode 100644 Resources/Textures/Clothing/backpack.png delete mode 100644 Resources/Textures/Clothing/backpack.rsi/backpack.png delete mode 100644 Resources/Textures/Clothing/backpack.rsi/equipped-BACKPACK.png delete mode 100644 Resources/Textures/Clothing/backpack.rsi/inhand-left.png delete mode 100644 Resources/Textures/Clothing/backpack.rsi/inhand-right.png delete mode 100644 Resources/Textures/Clothing/backpack.rsi/meta.json delete mode 100644 Resources/Textures/Clothing/backpack_clown.rsi/equipped-BACKPACK.png delete mode 100644 Resources/Textures/Clothing/backpack_clown.rsi/icon.png delete mode 100644 Resources/Textures/Clothing/backpack_clown.rsi/inhand-left.png delete mode 100644 Resources/Textures/Clothing/backpack_clown.rsi/inhand-right.png delete mode 100644 Resources/Textures/Clothing/backpack_clown.rsi/meta.json delete mode 100644 Resources/Textures/Clothing/backpack_sec.rsi/equipped-BACKPACK.png delete mode 100644 Resources/Textures/Clothing/backpack_sec.rsi/icon.png delete mode 100644 Resources/Textures/Clothing/backpack_sec.rsi/inhand-left.png delete mode 100644 Resources/Textures/Clothing/backpack_sec.rsi/inhand-right.png delete mode 100644 Resources/Textures/Clothing/backpack_sec.rsi/meta.json create mode 100644 Resources/Textures/Clothing/backpacks.rsi/backpack-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/backpack-inhand-left.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/backpack-inhand-right.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/backpack.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/captain-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/captain-inhand-left.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/captain-inhand-right.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/captain.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/clown-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/clown-inhand-left.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/clown-inhand-right.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/clown.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier-black.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier-captain-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier-captain.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier-chemistry-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier-chemistry.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier-engineering-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier-engineering.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier-hydroponics-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier-hydroponics.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier-medical-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier-medical.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier-science-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier-science.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier-security-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier-security.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier-virology-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier-virology.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/courier.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/engineering-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/engineering-inhand-left.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/engineering-inhand-right.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/engineering.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/holding-broken-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/holding-broken.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/holding-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/holding-inhand-left.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/holding-inhand-right.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/holding-unlit.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/holding.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/medical-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/medical-inhand-left.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/medical-inhand-right.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/medical.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/meta.json create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-captain-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-captain.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-chemistry-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-chemistry.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-engineering-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-engineering.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-genetics-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-genetics.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-hydroponics-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-hydroponics.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-medical-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-medical.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-science-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-science.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-security-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-security.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-virology-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel-virology.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/satchel.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/security-equipped-BACKPACK.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/security-inhand-left.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/security-inhand-right.png create mode 100644 Resources/Textures/Clothing/backpacks.rsi/security.png diff --git a/Content.Server/GameObjects/Components/Items/Clothing/ClothingComponent.cs b/Content.Server/GameObjects/Components/Items/Clothing/ClothingComponent.cs index 4a216d5b12..adc6bd78d9 100644 --- a/Content.Server/GameObjects/Components/Items/Clothing/ClothingComponent.cs +++ b/Content.Server/GameObjects/Components/Items/Clothing/ClothingComponent.cs @@ -43,6 +43,8 @@ namespace Content.Server.GameObjects { base.ExposeData(serializer); + serializer.DataField(ref _clothingEquippedPrefix, "ClothingPrefix", null); + // TODO: Writing. serializer.DataReadFunction("Slots", new List(0), list => { diff --git a/Content.Server/GameObjects/Components/Items/Storage/ItemComponent.cs b/Content.Server/GameObjects/Components/Items/Storage/ItemComponent.cs index a5d61d955d..5cf06c5508 100644 --- a/Content.Server/GameObjects/Components/Items/Storage/ItemComponent.cs +++ b/Content.Server/GameObjects/Components/Items/Storage/ItemComponent.cs @@ -8,6 +8,7 @@ using Robust.Server.Interfaces.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Maths; +using Robust.Shared.Serialization; namespace Content.Server.GameObjects { @@ -50,6 +51,13 @@ namespace Content.Server.GameObjects } } + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + + serializer.DataField(ref _equippedPrefix, "HeldPrefix", null); + } + public bool AttackHand(AttackHandEventArgs eventArgs) { var hands = eventArgs.User.GetComponent(); diff --git a/Resources/Prototypes/Entities/items/clothing/backpacks.yml b/Resources/Prototypes/Entities/items/clothing/backpacks.yml index 7f4651e457..f32e389ab2 100644 --- a/Resources/Prototypes/Entities/items/clothing/backpacks.yml +++ b/Resources/Prototypes/Entities/items/clothing/backpacks.yml @@ -5,17 +5,18 @@ description: A convenient storage pack components: - type: Sprite - sprite: Clothing/backpack.rsi + sprite: Clothing/backpacks.rsi state: backpack - type: Icon - sprite: Clothing/backpack.rsi + sprite: Clothing/backpacks.rsi state: backpack - type: Clothing Size: 9999 QuickEquip: false Slots: - back - sprite: Clothing/backpack.rsi + sprite: Clothing/backpacks.rsi + HeldPrefix: backpack - type: Storage Capacity: 100 @@ -26,15 +27,13 @@ description: It's a backpack made by Honk! Co. components: - type: Sprite - sprite: Clothing/backpack_clown.rsi - state: icon + state: clown - type: Icon - sprite: Clothing/backpack_clown.rsi - state: icon + state: clown - type: Clothing - sprite: Clothing/backpack_clown.rsi + HeldPrefix: clown - type: entity parent: BackpackClothing @@ -43,12 +42,374 @@ description: It's a very robust backpack. components: - type: Sprite - sprite: Clothing/backpack_sec.rsi - state: icon + state: security - type: Icon - sprite: Clothing/backpack_sec.rsi - state: icon + state: security - type: Clothing - sprite: Clothing/backpack_sec.rsi \ No newline at end of file + HeldPrefix: security + + +- type: entity + parent: BackpackClothing + id: BackpackEngineering + name: Engineering Backpack + components: + - type: Sprite + state: engineering + + - type: Icon + state: engineering + + - type: Clothing + HeldPrefix: engineering + + +- type: entity + parent: BackpackClothing + id: BackpackMedical + name: Medical Backpack + components: + - type: Sprite + state: medical + + - type: Icon + state: medical + + - type: Clothing + HeldPrefix: medical + + +- type: entity + parent: BackpackClothing + id: BackpackCaptain + name: Captain's Backpack + components: + - type: Sprite + state: captain + + - type: Icon + state: captain + + - type: Clothing + HeldPrefix: captain + + +- type: entity + parent: BackpackClothing + id: BackpackHolding + name: Bag of Holding + components: + - type: Sprite + layers: + - state: holding + - state: holding-unlit + shader: unshaded + + - type: Icon + state: holding + + - type: Clothing + HeldPrefix: holding + + +- type: entity + parent: BackpackClothing + id: Satchel + name: Satchel + components: + - type: Sprite + state: satchel + + - type: Icon + state: satchel + + - type: Clothing + ClothingPrefix: satchel + + - type: Storage + Capacity: 300 + + +- type: entity + parent: BackpackClothing + id: SatchelEngineering + name: Engineering Satchel + components: + - type: Sprite + state: satchel-engineering + + - type: Icon + state: satchel-engineering + + - type: Clothing + HeldPrefix: engineering + ClothingPrefix: satchel-engineering + + +- type: entity + parent: BackpackClothing + id: SatchelMedical + name: Medical Satchel + components: + - type: Sprite + state: satchel-medical + + - type: Icon + state: satchel-medical + + - type: Clothing + HeldPrefix: medical + ClothingPrefix: satchel-medical + + +- type: entity + parent: BackpackClothing + id: SatchelChemistry + name: Chemistry Satchel + components: + - type: Sprite + state: satchel-chemistry + + - type: Icon + state: satchel-chemistry + + - type: Clothing + HeldPrefix: medical + ClothingPrefix: satchel-chemistry + + +- type: entity + parent: BackpackClothing + id: SatchelGenetics + name: Genetics Satchel + components: + - type: Sprite + state: satchel-genetics + + - type: Icon + state: satchel-genetics + + - type: Clothing + HeldPrefix: medical + ClothingPrefix: satchel-genetics + + +- type: entity + parent: BackpackClothing + id: SatchelVirology + name: Virology Satchel + components: + - type: Sprite + state: satchel-virology + + - type: Icon + state: satchel-virology + + - type: Clothing + HeldPrefix: medical + ClothingPrefix: satchel-virology + + +- type: entity + parent: BackpackClothing + id: SatchelScience + name: Science Satchel + components: + - type: Sprite + state: satchel-science + + - type: Icon + state: satchel-science + + - type: Clothing + ClothingPrefix: satchel-science + + +- type: entity + parent: BackpackClothing + id: SatchelSecurity + name: Security Satchel + components: + - type: Sprite + state: satchel-security + + - type: Icon + state: satchel-security + + - type: Clothing + HeldPrefix: security + ClothingPrefix: satchel-security + + +- type: entity + parent: BackpackClothing + id: SatchelCaptain + name: Captain's Satchel + components: + - type: Sprite + state: satchel-captain + + - type: Icon + state: satchel-captain + + - type: Clothing + HeldPrefix: captain + ClothingPrefix: satchel-captain + + +- type: entity + parent: BackpackClothing + id: SatchelHydroponics + name: Hydroponics Satchel + components: + - type: Sprite + state: satchel-hydroponics + + - type: Icon + state: satchel-hydroponics + + - type: Clothing + ClothingPrefix: satchel-hydroponics + + +- type: entity + parent: BackpackClothing + id: MessengerBag + name: Messenger Bag + components: + - type: Sprite + state: courier + + - type: Icon + state: courier + + - type: Clothing + ClothingPrefix: courier + + +- type: entity + parent: BackpackClothing + id: MessengerBagChemistry + name: Chemistry Messenger Bag + components: + - type: Sprite + state: courier-chemistry + + - type: Icon + state: courier-chemistry + + - type: Clothing + HeldPrefix: medical + ClothingPrefix: courier-chemistry + + +- type: entity + parent: BackpackClothing + id: MessengerBagMedical + name: Medical Messenger Bag + components: + - type: Sprite + state: courier-medical + + - type: Icon + state: courier-medical + + - type: Clothing + HeldPrefix: medical + ClothingPrefix: courier-medical + + +- type: entity + parent: BackpackClothing + id: MessengerBagVirology + name: Virology Messenger Bag + components: + - type: Sprite + state: courier-virology + + - type: Icon + state: courier-virology + + - type: Clothing + HeldPrefix: medical + ClothingPrefix: courier-virology + + +- type: entity + parent: BackpackClothing + id: MessengerBagEngineering + name: Engineering Messenger Bag + components: + - type: Sprite + state: courier-engineering + + - type: Icon + state: courier-engineering + + - type: Clothing + HeldPrefix: engineering + ClothingPrefix: courier-engineering + + +- type: entity + parent: BackpackClothing + id: MessengerBagScience + name: Science Messenger Bag + components: + - type: Sprite + state: courier-science + + - type: Icon + state: courier-science + + - type: Clothing + ClothingPrefix: courier-science + + +- type: entity + parent: BackpackClothing + id: MessengerBagCaptain + name: Captain's Messenger Bag + components: + - type: Sprite + state: courier-captain + + - type: Icon + state: courier-captain + + - type: Clothing + HeldPrefix: captain + ClothingPrefix: courier-captain + + +- type: entity + parent: BackpackClothing + id: MessengerBagHydroponics + name: Hydroponics Messenger Bag + components: + - type: Sprite + state: courier-hydroponics + + - type: Icon + state: courier-hydroponics + + - type: Clothing + ClothingPrefix: courier-hydroponics + + +- type: entity + parent: BackpackClothing + id: MessengerBagSecurity + name: Security Messenger Bag + components: + - type: Sprite + state: courier-security + + - type: Icon + state: courier-security + + - type: Clothing + HeldPrefix: security + ClothingPrefix: courier-security diff --git a/Resources/Textures/Clothing/backpack.png b/Resources/Textures/Clothing/backpack.png deleted file mode 100644 index ace82e6d83258c95d49986c756e32973faa34da6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv(Ey(i*8>L**xK4wR8+LKwz|5y zMn^}RnVD@U*&+*6z*rLG7tG-B>_!@p)8*;n7@{%p>;yx;W&<9E!)!*?hl=a|PD9todSB?i?tm7qqTtp30R6o_g;>ntv`&2)f}i zJ;G(iVoo97mV+!t&nJotH!X4!tJwb2OmVN5;v9A1+etTD-aPtTD_pQ!m3c-+D|goR nH%cy94R7WCKYQFi_bk^ELDi3iPowLAu43?X^>bP0l+XkKisW4h diff --git a/Resources/Textures/Clothing/backpack.rsi/backpack.png b/Resources/Textures/Clothing/backpack.rsi/backpack.png deleted file mode 100644 index 98ceb952dcd17fdb05378749a26a27c50245ebd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 378 zcmV-=0fqjFP)ZGf7#gl^LSyF@=->!cRBVMo7h%Z%n=O`?Sjdbs&&T)>U|?Y2 zzvBa&D5Z?p+@Pj zC#u@uqE*Xj4{ADKS|U`rhG!k`v`E(FC;Kzt+lTcC{4aGrb_hwd}|Jx z3NXfgG`}}Wv78)Z45h+nGXvn<_q;Ks^t=*MyyuH~Bp`%{A%x3XP5!625Ta^e#Vrs* zM5PpHtBW@!!QiPFbu;m48t%C!!V2H zslTZ08a$CC$w&QxooeG~2dc#bKv5K^stRRU8i~wF+i}~rVObU&#{qCJq>kA)SQsJa zsrE+Bw+9Wwuz6Pyy4n;B$8p-l+ClrY0cbmayaVo#>-P>^*X@1x%d&)0>amAF*ALJHAW4!hr4*!;5JJGV zZP>QmYsBGjcw1KJw8>r}1f-NuN@?eU!RjzgewJmuZ0t`%Hjizb7%h(v?fiK63NU8F zGrLx_0hm&2|5S#28C(XZ*4#gZEXziH7);@AEnc@d;?oF%;4$ORy?2pe7=~dOhG7=U YAFnkdde(ki8~^|S07*qoM6N<$f(^b diff --git a/Resources/Textures/Clothing/backpack.rsi/inhand-left.png b/Resources/Textures/Clothing/backpack.rsi/inhand-left.png deleted file mode 100644 index 819785ed479024b75fb656c203e94a54e3ed0542..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV4UIU;uumf=j|=Syh8>OtPifQ zk`6j2z*(92qyIspcFJ?Vn8v%|2`2<4A||ZbVEmNnld#rdr+eu)*?D0aC zKMaB}@bOlT*C6d_-tmb8(eb^jpaO}p+$bTL?D~z3QZ|g8DD~;V> znavl-u262)a$&x;4Bxt{qe+FK>(^z6%kN)o%d}n3u7$yPwn^*fqtj2T26?T?`{xkL z{OPWr=GVF3&M+`!+`e{q{rv#;17{`#HO-8btrl^0e04YXi|d9}tNvNEG+ci9WYu>g z;|E1MeSW=Lf8WHndDW^r%$5A5Y;V5*4t##>m(Bc*aqH7}S1>Ht7tENjH7a)PkK>Oo zUOl#9-u7u7aInYf{kPvbKO53Nr3t>c{Wvu;Y5Q&4r~j+n#2T#_(w^PpmFu4Bx`6jU z*>2f;j8&78U&M(edfnb)+Ax(}0xZLz&2O;O*8lbvcZC**lgu_v6J2LKHMLOXKd|b5 z#_cVV6Ws4lX0Kq;?skY?`PuHD@%IlmBUyg-?_*fwcgW-I8TBu~sABMR^>bP0l+XkK D0C?6N diff --git a/Resources/Textures/Clothing/backpack.rsi/inhand-right.png b/Resources/Textures/Clothing/backpack.rsi/inhand-right.png deleted file mode 100644 index 223b7060c8aeeca7a0474664b22b1b0fd909ec21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 455 zcmV;&0XY7NP)0B&8gTF&oo5my~i<5q{PT#LVNzp=p}0 zEr}g%yz#%Bz46-7bg*6qsIIRomtUUlw@wARGT-h92=S(as!6}0QR z%Wi=qJLfy(3jhEB00000003|gcj_5f;(RqW=gvI?bG)y{=EUk5D9ds%#?YSef(sC{ zXJCxoG|g^f20a2Xdj{;-RaNa4D|iiv*)w3r-b-)+V)hIi5$|7%V9cHYJN6!eWK;`{_LcOR)jA`2{k^$!%L6p#J~>002ovPDHLkV1kBjE7zW^1@hxc~l>UMS8VXr5NSXqHlDYBdLQ`;{$TW~KWa!+%bjWBTLg}DFJB83C zbEiP0!AqOs66Y6`5^%Gqy$;r?vMoiDZ8}uDYx#$pxd2#}4gj!g-ay^k^Jebxv|PQb4T*OzlebB0 z9|sFk9dMLwdw`wuc#t;$=>8V?{_P9U`H8t-Kk(h_c)uUw z;E9Nch=_=Yh=_>(JDL7TjppEge|il7kRSJ^>R(uuwJtq*71sHie(D@kJE&ZI&qhz{ z;pf{9L^NG5KkW6iiT5H?5E3Qj;*%yYX#@LCcy8dPF%pxb>dc#_f%auP*kkaTR+0I& zFWWFpqvr{dII#h6b!?pO`>DBitx}hhOpEuE^9!jf&^1s#-S^?@*obRSS^?Q}??vYV zN7#4&a|CgHk^)eUmc!=WZ&PH><-RhT=mk)>^nr`tREy3z;MrF5fM?pzh1l@sf8`DCIA2c07*qoM6N<$f*>GGsQ>@~ diff --git a/Resources/Textures/Clothing/backpack_clown.rsi/icon.png b/Resources/Textures/Clothing/backpack_clown.rsi/icon.png deleted file mode 100644 index 5c3120c8829b07c668917fbeb014d3b12d57f36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 615 zcmV-t0+{`YP)?UlgUt{SdV!#DF8v2Ys&gddN`oDAs9Oi8=+Gt5Vjz&AL!ljl zG~MiAha%(xp$@G=uTs!O7c*ph9FF&z%a6NDT5vGmTi*A5zW07Vckew1Q%yD1|1Qn9 zn%fkB*lCo`QO@=1OpGcu?IEj%ypefZP_VhD)ZHr+TVi<-nXWeuSgc z%v_E$%}I9|6X5XE;Xt^WXPQop^YH-uy8vjPv;ps#`zfq1GyuSe&bt)DK#MiRAavLpwlS`MtDYBBg3WB3qGAT@Vn|`8M+NC z6${J)rEG&#GU0-#;8Zffe!SrLD#3qPr9k8A`i{JN^;E+|OjCE)@3!BNN+vk5e{yzz z%?o;+03MkLKre_V7{&@8AD|D!OEBSHQ%&`+^%vdX?e%1q*_r?V002ovPDHLkV1oA& BA}#;` diff --git a/Resources/Textures/Clothing/backpack_clown.rsi/inhand-left.png b/Resources/Textures/Clothing/backpack_clown.rsi/inhand-left.png deleted file mode 100644 index 57814f0f9a4f7170b97792cbb90c0cc9352e1450..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 667 zcmV;M0%ZM(P)w&934-N9S4AA09kSR_a)<~Gh_kZ@nF`4X z8AKO3I=OUlESx+J=_QvxE!^F6HPz=6Ld&)M?!7l}-aB|6Fvb{Tj4{R-V~jE8zfw^P zs<#E;@`D%SW4}MX1VBDKFLWN)b&}33nx`(gc-M78>Xi&U`FkF-nFvxOZ`LK1l%qpj z*Gb%nrw+%Bcys|rhq+=GWsW_1tu_gTxvrBaie$4|o%*CUt5u1jNYYC^AY+U%#u#IaF~%5U%!RT%)s>9O>_=F7n*9j6)nUn32Ft9ZeuTo3 z{(!P4L9-u0Z3RS8BmnKk76*GVwG~#ivd^N?kDwyy;uv_7cUk93R>0i(guk}}k{bS} zTU)@S#$OiAegqXs4gb9M0Ihxmwd!!#3GrH!(s)RDHGRp7G_B@`?dx+>z}?2yHdC5MR6h&T&wB4jFD zPH+%)kfW1J7stZMb4c#IYtl<3|BGq+|Af%+uDSo+Kd+ag?*~dLrIb=iDW#NBN?j=gu-c7xo`-OV*xP z&%qw-#0DdzZ8hiQev(zz6q}r`QxBoh9 zhv3WXxAZ-cV( z3WfQAX@u<%r}=kjJtQpn?a7ppS17FkFbFaUyy5q0oiQp0Ncs!mDz}3~2?sMOlp&dCDWm)#R@52aC*LAP^ zK8ygLo+yewcMj-_lK}Jiyi?^v?Qca0p@k4SiXv@(oBxzj2qB#9TMICs&vlX{oqdud zIhqJU2pxtY!Y~8?NGb74DM%>+0H)1V1Zx4VudfLJ#Buzp0dw8-8yck)DT)FBKq&?1 z9N!Rta}G)=0H7!eD5ae2e|2?aI-LT527oAvkmq@OeZ5}0KF*nPuJ;<(~00OuU*^%_~0ku1vqJidK%{n$t;k*4Wi1MVw=vjB!Tj`i~h7?Uszq4l4c zNC-g?1mg;@9|3)zV~Y?%ODR#;HG&`j0HkT!Cc(O{&2R0J2b={kYwrCB=(`qofpZQ3 ztq9Kt9|VsHF-=paXF3aD=059RT3w<_3A5 zJADP5SAu5nw%3P*Qi|nriM!1PTI)6!+-){kE|=}+&;=&}o<4!S+lL^}b3!S_cDqGU z6xeRJpp-hld4tmwFmteP`&%)|?O#dGbrIz8csw4D$K&yMJRVO6eQWQh#MWo44UsYS z`-aBWXDb2v*4|Hvt|+}@wMv9VzD4fDZ)7)r975p8R48mDMc2G#b5S}kG4h9P65oZl;`uRi!sXN zwl)}JR!3&6BEUAB#)<%&euGT`LLTikP1D)0EX&a%;LtkX_-cIb!YT=_Rx2>ZI*-GQ zkpO`<0y>3ejA6A}4QF&Vo9V8%JI0%Lu^Gp)p3P>%`_$(o=GgoXK6*SJkH_Qjcs%cb Y-#;dz1#5SkEdT%j07*qoM6N<$g6HR*Q2+n{ diff --git a/Resources/Textures/Clothing/backpack_sec.rsi/icon.png b/Resources/Textures/Clothing/backpack_sec.rsi/icon.png deleted file mode 100644 index 28761c9708c22cbc3713010cb0726503f9f3612b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 542 zcmV+(0^$9MP)7K}m!beyI>9#DYvcw_ofG6v>pQ3tV6!w-s1R7NVWGw;0uoe$ zji^lmCxHhLK=5yd^WGx`{}YbK<8AAj_kTjj-2_}Nm-`BM3+^u9w_?BF|9eUJE_GsE z*Eay?+^ci)JO|)>J}2+{A(dQ834qp`s;c<>@)E|sJU^qg#?Jw6sUlWG;K`Lz6h#3* zQ4~BO!WZ`|rI1nv$JUVK0Dv)uuIs3(3V=_?kMST?Rnc`FP1B@q2_)n|oY|fn2&V>^ zrYW?w)}ej9URU>Dbs*1kq?8Q9z%UGJ2LeTd;e%)F%tcGA5M*ys~2q6MVS(X@M*zI-* zA;P$|cCl^^t0Cz79w3l;A3j7WgJJ8Qdn!5=NV%R^E@+6 z6G|z@aSRTm=0b83#i(4=i$x7kJaKxpz#r8J~_+Chi gt;7#J@W5Y#uk|wZ{EylzSO5S307*qoM6N<$g5de`c>n+a diff --git a/Resources/Textures/Clothing/backpack_sec.rsi/inhand-left.png b/Resources/Textures/Clothing/backpack_sec.rsi/inhand-left.png deleted file mode 100644 index 97996f4e073172ff08f4d9e2617fbb32beecc0f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 751 zcmVb9U%4&$n$(m78uWNNF>kmv$d8=9t6Jv!!Y>GX2bLGh;wed z5TB1n0PgPYnDZTfPitBXX+$4F!!Q7Fb8|zIBzW(6e0&669z!t?p;N8hZYTZ-0^z6d z;c!TdF|=(<(=@bgi!o-_&i_qospJ(!Q4~c{6h%=KMUmqYJ^`s1i_8Wu;S-RGu}A?f z;S-RGarM*TMYx1dKq|)7cYyeRTUV=nyOUs>P3hwRW6HhuEPwb7PB*$HNSN$vNH> zDKCPkKcMe>k|ZHb)3aP5F-Un4L<M;57MIKR_&! zUIft&aLz^h0b-H#B7k54f}iJUzvpScA3sS;V2t76;Q@H@4_Ir@jxBZscDr42e}A8x h>j#KM(u;7_`~(yBx1Qoq%xVAt002ovPDHLkV1krhVpsqG diff --git a/Resources/Textures/Clothing/backpack_sec.rsi/inhand-right.png b/Resources/Textures/Clothing/backpack_sec.rsi/inhand-right.png deleted file mode 100644 index 818680281b5b545ca62622f6593bc19dff6b4830..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 753 zcmVorA>$RF%gA4lB@vZAZS(fhAOhDf{It{4n z+PRo1=vzmp0Z&gDh7VB#`quIE8Nk|3Mp2{yplKT9dCq`$CpqT;fGo>ezdJQy7%E$H zpWY7{5Jiy^LO=)s07%nR{RUK$Bme+?O`9|~k|e=$xm0PID$aSY-tV_3{yL?E5a666 z2m<_ohhITp?tW1ev(13x@dyBrQkt9incfcuXo{kM5CUac;%B-7$`V2d6h(0l-Oh;P z*nF<*8lLBUs=3nuz1Z6?$8l_2o-0*V!S{W5p4Yn%=rq9dJOF@F?~e{+v&{M{s;V+a z##nC#v=+fQj!pXbz7Hwom7{SS&$bBqzHg30^tSE;f*`m`AN^cuQ-UD4hjwRZ6Ncz* zeG4>Aqmm@S>*a#Fu1!IFy<7kQ+wIou59WqmbY0hj^mcB9nx+8&EEWqe#-NnK>2w0{ zwi%l1YY+fdtCbq6w{t6;=Q-n?LrRIFC?KT-=X|zz-e$Mkv9F|;AP9mW2!bF8f*|J1 zqs$E0jOq6@xNh%9#N>Hs>5^ znmUa!$bc-%m~JrIGXueYm>IBR3n83$rbj;lLI~4224GreTC7ubR&2Xr3jmwV#!0Ns z_IMjp&J5U#*DY`tj51)#nE~DKv}3zqa1oqpW}q#$O9t-)rkokLjqTEeL65+cGXrh0 z?IQfI46Xs3a~uu_0BWf1a;n_O00000NkvXXu0mjffJ0Y4 diff --git a/Resources/Textures/Clothing/backpack_sec.rsi/meta.json b/Resources/Textures/Clothing/backpack_sec.rsi/meta.json deleted file mode 100644 index a29f6c8a12..0000000000 --- a/Resources/Textures/Clothing/backpack_sec.rsi/meta.json +++ /dev/null @@ -1 +0,0 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "Taken from https://github.com/vgstation-coders/vgstation13 at commit 125c975f1b3bf9826b37029e9ab5a5f89e975a7e", "states": [{"name": "equipped-BACKPACK", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "icon", "directions": 1, "delays": [[1.0]]}, {"name": "inhand-left", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "inhand-right", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Clothing/backpacks.rsi/backpack-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/backpack-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..b4f0155515d722553f8f20a927904a32f95dc21f GIT binary patch literal 344 zcmV-e0jK_nP)PaIic*v{o2NpcSup zG(nYWJmKRKpMc<@_00x?rWqfXrRW{yX1&?=ybxP|!My%i#5^2imZqN+y8*$=Ty+oa zE+Jn+L0R37B~^+cfXS(epqwS>*axN(#6>fU?)Ia9sNT#k}TkvFDDic_UC9b-CDA18e{v)cUFc8GtRs@ z7jCG)((|rEDZxEIeZgd5nLKr!s1uyN9JM9v^%EHsnx42gFxuSRcP8|r{i<5_8&zBX z-IVuL=X>L`Z{>-`HH+E}B-xg{7GTVG=S!H@@Z`*L-AknvD|Rv09Oazm;B3pTP#t=I bx1jm5Myc8Qa{9VJ*E4v!`njxgN@xNAKhA07 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/backpack-inhand-right.png b/Resources/Textures/Clothing/backpacks.rsi/backpack-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..b4c42b207f34d7cf6b36afa2debf4f004b56a278 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|e(Ey(iS0JsWrDbPl=i})a7Z;b4 zlQVJRM4iydMaLBO@QqG3mYyvpR->ZYKK zYrO_?2PWW@c+^>+0$n9UWa! zQPJAksv8uc29#hd3GxeOaCmkj4an*Aba4#PIDdA+LEdHq9tLLN2dDmIPI2Av=AYma zX_Mdm0qr8Ywc_RW&i7w_!jI#>%NifM@8=h-(FgQI%yVw!)hb_l!RGGBl} zU@<3~FT=?eg=f6(!U_wR+@x;Z(LK~36!Glnk$n+njO{yW@2T9(Kk1?t^|0x-Zac?B k>6G2a=l}eZ9R8VY>l5`GlL8YL03F5P>FVdQ&MBb@0J}O_iU0rr literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/captain-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/captain-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..aa9b9fa096dcdd591c1c3cf6fea3d5b96f432768 GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|etpJ}8S0F9n7$NB-A}=qmsi~=@ zrKJ;=XJTSvmEP#@?;q&KoRN`HkjS!O2E!Unm2W`Rj3q&S!3+-1ZlnP@FFjoxLp+Wr zCrGefVYw5)!>n^o@0{KVu5C<)ui04chg+COUSsrR%w}MA))2aHxOBOypzA>vwzicg z!Yr1lE{b3@s?*-oBqA;@xQ9!Kl{NT-mOyrmc6VP9-N7iU#Kyyy(Pm^| zU3TC|#HBfs5>aXko~ZD%u}wDF!L%V)`a-b~_aVW)8=?wa4E%4nq8{84X1if?{tk0` yn^;2dfj$kx8B7~A6G9!nnTkCyn04d@H^VV^ExuicB8z~YX7F_Nb6Mw<&;$VOv2XSO literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/captain-inhand-left.png b/Resources/Textures/Clothing/backpacks.rsi/captain-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..432b2bb5a5b28cfb6e716f7a991f7b8506acbd2f GIT binary patch literal 342 zcmV-c0jd6pP)8@E6K-F@9+R2vkDFh<0f&Hjgqkx-3Vkh}6{B-`cl z(+wj-)*|u!%b<)*u#AL!P(jWqBcWczB4->UAvLB)&ILw7Za7%v!itg5>rPL|=@JvI oT`_W|!ot<807*qoM6N<$g6y4)r2qf` literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/captain-inhand-right.png b/Resources/Textures/Clothing/backpacks.rsi/captain-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..ceb964c9588d8e3b487ffc5f835752f13672d2fd GIT binary patch literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|e=>VS)S0F9n7$NB-A}=qmsi~gTSdhrFVFrW1B%Z}UX~vQuzhDN3XE)M-oF|?xjv*3~Zx3$tVs;c@dk{ZIJYv)8 zN``}Gj&IZV>@;55y!)V8!NDlOjiMs)(M9a1*JdZKEV$o(^UeE(Y`u%NS%vYKb^qS2 zx;Uxuq{W0E7o-<2QtDxzl+qPtbhKg7D)+OKjyIgy*)gkFkeTc6y~SyoNe=zd)o!|x z{ejQ@CAL1$GuTyEn{=g5tVeL=BlWJEZ~k8rjWsgL3Rtv#b^llEO}+bF8=byis!CDn znbh_~Qqt3DWvHl|+rfaWx!gTHXBMj5J|`im>ikmejlZPiTOqG4ljVe8HwewGpO?6( h@Q2$}L&qO`^;^qTb)>e4F9rIS!PC{xWt~$(697kegUkQ` literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/captain.png b/Resources/Textures/Clothing/backpacks.rsi/captain.png new file mode 100644 index 0000000000000000000000000000000000000000..93c823ce0897800420f438ca05a7373e64592bcd GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvl>na*S0F87>?+|HA?YL{CnqN_ zFR!VosS}oGmEIWW#$1rdvS9{;Vy<5&P#t4QkY6x^!?PP{K+X(L7sn8d^T`PkJ`NX- z9z7b!aPaxOCtIo~U(RW1NZI}S%*%IkIaHlmU&+4ha^+wYS6})`NmZP^g=?dUf``+k zMXLnm7OrX$5YXWY4dT^u;V@XWdi(a(+DdCu*95HBxUS(MB#^JApC#@hbR%Nny1*TR zo(T)90(U-gQaN8KmZ=eHrNC*ylpE+GmS7mS_Xdlq!<^n;SvC_lhN~}?X3jocp8|9v NgQu&X%Q~loCIBkJSBwAv literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/clown-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/clown-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..3923e872a1335e0994e2e2408ded4dcaa399a4be GIT binary patch literal 392 zcmV;30eAk1P)TW*Cg3r`z7rf~KzHX4G9aJ+B<~AENQ&GS)G8vib_KCnzaX{NTBUy!(_?y> z9;qK7A|m6L9SjD8U%<>%&jhNP*>2w=^;n^*-3r4n2u5A~7ERq&^ZqZp>--cfV+@Ap zGQ=+$T5^bzBuW06QbeSbaalx4teymb(6CzoAe3+y0D#=*dXy~?AguzZP5S!UuoIP7 zz~PTR;O5UO0dRM80q%~5onj*ZhabSu0f0T!00}by=HU*Y;Q%vcHtPaZHQWKQnVIp> zR(u2^W@et&R0?gMe&k#J=t+_!-*<<2{n{Nyx@R%q4ioh>Vd)MNt-kygcZWp)+&%6N ziz~o+2Mc$Y(en*UcbGd+)hq6>7~%Ycl{?HMFkf?rAM*y0j0kxV5Mssv0000L2kn^3Eq1rY#1{;~j8pKPU4 zsl475RP`?o(a7mPZq*^)8s~&1hY*n_vT^jEgcXOl1AN5kd55^PAR7lG;(3R-mavhW zRPeh)+yFM&x8e}D3e4Ld^<1ECF6ZstrM3{{P=9{kp`eVP5qMxkCoO zInMq4Ec>2$SyTbr``dM&6j$hpT@@(EZ?w3Q!&rEUQ83VMvqs)q`Nu{f^}gs^ zu+@3#>$#ug9)GkuHuo!6&h0Yh8&w=~O*gmAZ)k7W$H41Y#eK%5nEzT8huyDB&0h`0 zz1)HpSw($_DOR1}67oqRKu;kgYuUc`f+@xx2W6OAdKT<^#qU)9_53r|^aGqC^JV{m Pf`Y-*)z4*}Q$iB}K9YV8 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/courier-black.png b/Resources/Textures/Clothing/backpacks.rsi/courier-black.png new file mode 100644 index 0000000000000000000000000000000000000000..304c8e7fc60c4eeb62bd53e61e94130aa662aa4e GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv#Q>iWS0K&A#3U^(EiW&xtgNi3 zr)OYbU}IzB;Nalw?3|jK%I(Ey4OGNf666=m;PC858jv%`)5S4F<9u?$0(}7=ho{EN zwl3r{&@5b_73f{;5O_%BqTrm4aEGmXY$6yU9e9lt)+jJ>~*Bbiz z?qUJD=4NJkrp`eDF?O44GToS*8ZAAzV;Gh&s4Pfh5I4}DZ&_TmQgai72dk5U$clut zOpQqlEE0!x9vZklH7-z*Zf2O|-{7d)Aykti*~_~^an3Y1ry53vUmp7J4*&oF literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/courier-captain-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/courier-captain-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..4429ba7d7047abc114f7d6618077b70e47f3fa9a GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|e#Q>iWS0F8*!7F0yD&ZI*=_H~P zmS>gT80f}amB_MT2E*C2XFoHh837eBmIV0)GdMiEkp|=(@^ou_PoF+DU1TxiYBLikJfMI6#e=4JM^0w$WrD9fEYGs6 zbx0I&&{dq#b3wGBNNZD*!UW@hBCQP;0j?SWW=`P@T6|LkT|Kl{Y;f4xe6Z2clna*S0F8*!7F0yDrzAl;TR$5 zB%%|RXO-R<=*C=?$g*Ju!>LoJ!sK09f$A7bg8YIR9G=}s19Fymx;TbtoKH?zpfAAV z@YJ|%)*`Ng5`)EBFX!BBSk#gnb*slAg;8z0iMj~m)Ga3Jj3TU0Q~floVlD;E5eX>S zv16&m0*RT^+H@97x_0s6#6^uu6q28CL_t&- z8STL_YQr!TfZ_j5)+h(ZZN}Urf?gm;$PLt`RyUOn@@gmq-L{jOCnb0)g@V72&95@t z>rjm6&V*t-EqOvqv<8coX!Hk*W;_+i*-=SU4%4(yF&;&(^XFozB+re!=j={Y%*>6v z&X z21oIB0RolCc%^v$00NEim12JeIvV?hLM#u6W%HN50i5j}|3rVhbN~PV07*qoM6N<$ Ef^M>dY5)KL literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/courier-chemistry.png b/Resources/Textures/Clothing/backpacks.rsi/courier-chemistry.png new file mode 100644 index 0000000000000000000000000000000000000000..7fc412c33cd07130db91136a7f11bed2fbc3f80b GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv#Q>iWS0G*3(l>wp{55OV?B2cm z%9Shc-o5*8%c4{5SIn%hx#qL N;OXk;vd$@?2>@QlVzdAN literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/courier-engineering-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/courier-engineering-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..79a06d2b1931ee71f1bd09be3ee682c7e65f7b02 GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|e#Q>iWS0HU;s1$9XV0GfvcCA|$$asaiFbjD7)yfuf*Bm1-ADs+4tTmahIkx*J7pv9Ap-%| z`g7b7rvvizeDu9? zZT6*w0eKupShh37hs%YM>YbZABBV@g(xW>%@-%xMhjKj< zKIZbg^T_|n<{vAsl@u;);Zp9gza)F&WZ57wjX4U9DwSK}u z$FcSkm=)mXRCKFAScpelF{r5}E)L Ck9wK_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/courier-engineering.png b/Resources/Textures/Clothing/backpacks.rsi/courier-engineering.png new file mode 100644 index 0000000000000000000000000000000000000000..f58b5b1e77f59862668fa0ec83f84dd122c7ae04 GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvtpJ}8S0HU;sO0ME8g0pz9O0Rp z7}OlZ*_r3OaYF3LrJ1Kro%*uA_~*&||Mx^+d^}$TRLxitsHj_+#VwrH%jfT`PAhd~Jk)Z^(m}U?@tN&$zjG{H zGo%l&7M(jYr~3I8(@hKkoRbc`GcJFBZq8n5PX>;%k~d~;?9)s=mMoSKtU7qiA))Vy quwa6~Vix)A4&|r`?QN3;;u(%C^0@vgDYh2qYz9wPKbLh*2~7ZHSaj3? literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/courier-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/courier-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..c4918a47f54ac6dc59b076c59dbc750500f26da3 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|e=>VS)S0JsUqhn!VVPmLdV`Jmw z-I(*I@;TmiOw-**X{3 zyp`UO%IC4m%z2l!ixr#Eldrpv{)j#k#KoHb>C0oj>C9dGGz-hreYi^08MaQ06<)CN zbAwD$L-~a7wnc(fvt*0}O@2?`y{SXlvHAPoX4f3|15u|Lzj112i-`W+x=ZzcoNlyS zhTQ@c7+4zCFy`U-ryCt;@<_>n6Iw lV!XnB#fFC{TDXc)I$ztaD0e0ss?_YtsM# literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/courier-hydroponics-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/courier-hydroponics-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..a81a1468ceaccac2cab3a6d3d768dd1ddaee94df GIT binary patch literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|e(Ey(iS0K%%dY?_}f5SF`*>^;C zz4y5H_{pBxoL_(vj3q&S!3+-1ZlnP@TRmMILnI{M9(3$FtRT|xF#bNPkJtC86Ki-c z)*g&m;PJkGYNTcDtw~o63?{sP{AIPyd!DY+Ju?H=B&%pgB}`F@O4#tUBTZJe(vEws zgSvn4(q!2#n`!G`yVS)S0K%%dY?_}zmxa>hHV0~ z?}#jaCBEyu$Gyi-tUdPY0;L&Cg8YIR9G=}s19GN$x;Tbt1n)h)QSgv~0LuaK6%3~v zi(QzHEn=v2d*u-H?!kJN5XM^J12_J2Iv+{hUhMwm{*K6U;dN3uRxdr*1^VVV@2qX* znc~R%Yw-$q*6Azcwr*s&&ERpO;M_+ow%PChS@IoE`1D~=I+dNB9P%al#;Qr>AUEh$+v@x;V4l{?RHX|VjV)t{HDrn$R6>k`m~44$rjF6*2U FngIE`W}E;3 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/courier-medical-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/courier-medical-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..880bf5343917759e064c5915ecd685b712ddf063 GIT binary patch literal 306 zcmV-20nPr2P)DnXiDbx+cJXOf*^MC-{JhVG-ju=b(Kh#cX0pkAn8( zywp4(^G(FjnUJy290(K$=pvz2X`$Akz-Q1jS)>wr932t~dd+XASi(2xQC9ZG5`!V%a+}{cb_F4xZFK&GG zZtYS=4Xd!Vdqo?Pp4{Dif+?=t+1WY2RY7w{Rp7UEQ@1laIlfW7yLw`~OlXWyY22-#%h4EG{yuKX-mP4o3`|ZB8%0}Br6gTe~DWM4f2iA0b literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/courier-science-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/courier-science-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..bc6270f519a12fc3d4e1191141ed7d7ae219d365 GIT binary patch literal 305 zcmV-10nYx3P))r#(0cq)=`n16O};a*mVmP>rmu6ye*MRaNNmD&go3W4&2E{ z{z_+7jN=&DZ2q<0v^ReP+bb>c?$(4#rv6e%P@j}{zEkwPwDJc1p>bF!B=Q4^Z2riWS0HW7Ff*B9Vqr_)Ooo~B z=g(iWX3g&1yRTfi^6uTc|Ns9#@mbvnRK!>klq&|D@BuC#Mm&KECk%yNxp>gwxTC(5be zwl1nwM_{8@KtO@3(xj$VFRv&uB_u*b_ZHl_TN|30amORtcV;2y`QZ Mr>mdKI;Vst00xR+O8@`> literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/courier-security-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/courier-security-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..fd076d74bdd743eb7f858d15b729cf206053f414 GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|e#Q>iWS0F7WCMF{zBPS=PsHmu= zrDemwkj%i4o}Rv+f#Es>LmR8FI#3Z~NswPKgTu2MX+X{qPZ!4!kK@S+60BEP-n1OK zA#5PJL^$AprEF_-+d_vdraIQ9WlTIj-X!qwnx-5`Z&}gpt-vg&EaB{=%p`iD$06)s z2G^EDjAuKFQdo~2JNAO>f{mhvhQX`@ZU-;0y=49I^d{G-kJ>ZN9q7wE;HVS;f$k=6za0ap!yLYHs`Ek1`u0S~yebOPQcXe0>m zHWsU>CuuQ6J?uzgWtQH>B3vPxEHK|YfUp6-Z{lnnt>gTe~DWM4f DouOkK literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/courier-security.png b/Resources/Textures/Clothing/backpacks.rsi/courier-security.png new file mode 100644 index 0000000000000000000000000000000000000000..ff9a24f4c1a77151fb29ac0d23273409647c242f GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvtpJ}8S0F7dEiErEudJ-Br>AGb zz+huz*m9`$5& zZSRimV%pTVWs6A)<3tlx)ukf2Dy*KFPcwtRO`k->RTwz}n%JjtY0YmeohZbi@Kc3J;)uq<<69Sr>YfN+tE9M(p)F4@ UUpUIr6zEC@Pgg&ebxsLQ0N*uKc>n+a literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/courier-virology-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/courier-virology-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..4b75c5fbde954cbe78a5eca542c2dc34fb1a3c4f GIT binary patch literal 305 zcmV-10nYx3P))r#(0cq)=`n16O};a*mVmP>rmu6ye*MRaNNmD&go3W4&2E{ z{z_+7jN=&DZ2q<0v^ReP+bb>c?$(4#rv6e%P@j}{zEkwPwDJc1p>bF!B=Q4^Z2riWS0K%h#=y|PU_6tdu%&PQ z{P}Cvtl7PL_mwMG-o1PG|NsB))qU+iHH;-ee!&b5&u#z}GtBUGaSYKopPaBjU%!Mn91U7mF1QfU`O=@cO@`{o>#KghsbS!Lj*a6lCt|`5ZX&hGx|&sowT_T<FVdQ&MBb@0Hly#MF0Q* literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/courier.png b/Resources/Textures/Clothing/backpacks.rsi/courier.png new file mode 100644 index 0000000000000000000000000000000000000000..030e5792216c7305cd81bf6593b73003789459e4 GIT binary patch literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv#Q>iWS0HU>W@clkWNT~d>gpOD z9i1HEnVT3?QBl#_+Is5LsTX?=h5{8amIV0)GdMiEkp|?<@N{tu(Kw%+us}aR%i*c< z)a8r045T+N)Dq+^bqG8paZxa)CEQ`lV&w=%*Mnyy4{BIBSw}VV29&h8ZIN0aar0uM zj>4_PoSZvZ9ZMGMOinu<#L3vg#63Z52ZINrhrRhLaJ4vS1ROkb zEkK2l!=R0Qnx@wL#+5fDSSHjgV&h4g@*r8?+ll+rry`+8+zcyz8B`YK`F#Vrk-^i| K&t;ucLK6V6xmuzC literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/engineering-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/engineering-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..ee34a4a9c2c23f52f59bfd14a751c4adace482cb GIT binary patch literal 400 zcmV;B0dM|^P)p=`HlR+ULOhkbd_|o_44#^~{DwM}Wz_WE zhr>5&VnK*GNUw?_jq#QiF-yLv{5DBuD?DW&s7>Y z>Sl+ZXsts!oqwbUe3NOsBn3l*z#`#OuXqJZgN2hKrt;_vXc{z#+fcdR8n852ko=mx zV6ru!GinAJBp*kV`bA>E(qKW7Vos@-x;bKK5JTTBVoJfJh-eWMNlc4RCW-VgWiTo@EZFj(A+kmN%$i=3!XKBGbF_s-P{M^{1s literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/engineering-inhand-right.png b/Resources/Textures/Clothing/backpacks.rsi/engineering-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..f1259e2f7c7b95f576d1ce6b3ea683e4b9ab7466 GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|exd5LKS0J4pY2O^g*_r1&r#^6f zxz6TJ`;$vEKg}@xe@~SE%#3WH3dWKkzhDN3XE)M-oSB|3jv*e$lM^IZ7bhq*C@8W9 zvwZN!6rR>rchEErI z9ds2PY)n{JsIqjl=P`M4GCo?U?Vt%1JF`haP(A+vBg1k@x!lgeb)G;+GI+ZBxvXCsVHu2sB|%FAHXu9;7-jY4sP04C=CI-(S;A-V%|Uy zIx7dHFnKw1lV*~oc<$|J8)CQSL{3t+tco=@!BMbO1$*puZi!*nVmCV(&A+ zv|<@3dj`PTE(73{0G-=@w`=V*j-irUCoTp66?dxO0O%A<jLilx0Sgn(D~wbKv@qc# zRES4kQXW=iLf-gd!MiSXgOwgc>*ndbZqk#<`Po0H3Jd;Nx!U2S0QMm RW`6(x002ovPDHLkV1mtcp8@~? literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/holding-broken-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/holding-broken-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..2001be0b6b625ccefe1fa14897f149e10913dbc8 GIT binary patch literal 457 zcmV;)0XF`LP)ULE}36iDE1)c^nh0d!JMQvg8b*k%9#0WwKMK~xwS?ZMG<)G!c5!Mme5 z#PTReUYY#=r{Ya`aKLi*g`$dbw=S1|1JE%FIt3B1uElkT@8}H0-+nY&Yv>pqo$wkd zwFbD3QP2smy|>nSYiNLu#$Ni8($eSojs_@bjGk_{)aMn~2px?;ueV#&nc`@GV(1tx z`jXO8=ap#a2xb(_&;jD5_qv&xEzl987*;SH!FX5eH$%rTgrQSlx?C=o%irccO+`=e z2mQe-&8NHT3+_H;s_Qr2BD;j^YtHNIo9mO5BfBWVG zbDp#@ifIThXfx$7^oecsfT1x=4`zlgm;cI7w6+Rv`qbQM00000NkvXXu0mjf6X?*{ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/holding-broken.png b/Resources/Textures/Clothing/backpacks.rsi/holding-broken.png new file mode 100644 index 0000000000000000000000000000000000000000..63c658bde914faeb99ed32e2cb6c0fd76b528127 GIT binary patch literal 375 zcmV--0f_#IP)f@{Sy^9SUumVhxEOgKR z|J6B(DzR+pahLfBjxi?F^snHGqyDye(Ju@UW~q-A$e#q!QemcTgz-n;%x?A|Ya>=J z1A{@hmj@(x1@bon-RMgD2pwjivQPyY+AwU&?z7IQ&!z?wZo{JDXX-fX2D?^N1_E79 z6&DhhigyC`rc*~H_!CYfg}x3WV8n?t~0NQ%GS^?Cr8N!m{iNxJ<}d zf`_V5;6cL(=)G?Ng%pxt<&cAS1&&cAB#Cs?6gS&;55qB}e-{8zsvds2bo?oQju%qZ V3W3wF85m~GnzefM>f^_ce~y#= zb6@0tn(_ZLY5)H-e4ADG4QL=^NswPKgTu2MX$%ZZ(>z@qLn>~)oqf7!v4Mc=?V$Ud z3PzKZ)i(bB@1EZHIAxW9fcK$*;`84++A}5{U8v*4q1ZAZwn47_Tho1uE#i(x7XJNs zU$L)2S;K&-nYmh`Sx#+d+WR=3D(1_FWv+A|a4;}lvbP$fO8`WiVN6(Fw{!nt%LIw4 zyDQ^gecrq8KPQJ`!t}b0Hml07wJ|u9zZAc(_|>pYAn6sS&29a@2deYd+8$q5eOT}B zBMyPLPg9c3Ropr<)=#heUl?ogZ%W~xOB@X^)~i3a{?gTAUwh{F=}RA{AOD-n@^YJO zj7@a)x4R7HAI0o$ck6s9-!WZc@ArMq=`v-{U8nuB=3!vC_kY%%N1OlVo-L|Beullx zwgTqTC;L^m-?#sIt@ziTtjk}F)7QT({=KJ)CHLN>o13;xKV!H4;8v|kZ`N)7ThZMA zz4G?1Fjp6${uSHAC+@LZ&pf9~MLsase&6GZ^TdArd8+&{_xm+7B_*T3;&He8|0gfn zAM^Zo&8OcD(gnL2N?vho-TUNQ<%0Zt^>=5Vyn9`B^6lp|hisQ)`8>ivYu%?_eBPKR zv(fPp=e4i@*VQgLFP(hmx!qIFdEfvA5yzL-?cc8-a`jVPbKU>SpUYaWU#jb_tB>!# ze!X1xwfW2M@h0b@bYB4(_orElZ&`7F(f#f_p_g}U28zA-e&781mUBB7f%N|Ud+A!G z$k*sE)q*cebIvR)O%J}3f93tc$LmXGUGuGPuDAo_<=+?c$@1HYu-<)H(Ej+hpY!*7 z?T>%m{br%l{{Nl&4nOPu8_&0Ie)RWW`oD+2_t`Ie^tW#6`DID_131kKPH0@UUR4PhwcPr08dvxmvv4FO#nwIo$vqv literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/holding-inhand-left.png b/Resources/Textures/Clothing/backpacks.rsi/holding-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..79c90fc3cb94cc31140d9447c9d1c072b4a16029 GIT binary patch literal 326 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|e-2k5uS0K$W=dirIypocVS>$^Q z3ky3tJ5Nu~xVX5SoSaeyhKUm=?(z^jxSId);ln`+&dY%68B2ovf*Bm1-ADs+j(fT| zhIkxLPLN<-oUnj_y-Bhmlrh?gdCJkQP{%w!sgOD9Mk2GDHe^l=R$TL8=F*5Kk>b+& zyv-6DZ%C|WGB)3wF2GuKd4raLprLoWMu7L>RR=E3Zs6?ho$ly6qwOk7+liT%=Q%|b zM))Qq@bdCDY-Dn~d{slDZ$aaPCKEmzR-O$8JIi!Ll^-uCFbYmz^juD)Q6qVEK#6hy zOH=Tq&lf}&aIjcgC8rdMG(OOr{c$!!33HurMEbci&fi&AIb>+KMM`?5&0%0D@-;Sp T*4RH2=p_bES3j3^P6$^Q z3ky3tJ5Nu~xVX5SoSaeyhKUm=?(z^jxSId);ln`+&dY%68B2ovf*Bm1-ADs+&Um^w zhIkxLPLN<-oWS6~Y~~nd(cP@exVni!Lfc$jm!Z4q!b zO9nb_Ezy$BqBC~Rv^~7+zzNP(2V9Qm$j)XG7F@yPozJAEV-`29?>sNhMC0YQN1t`S zT)07illQ0?-jm4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/holding-unlit.png b/Resources/Textures/Clothing/backpacks.rsi/holding-unlit.png new file mode 100644 index 0000000000000000000000000000000000000000..c3175a50ea9c58438724d31ffaebae928ff10783 GIT binary patch literal 470 zcmeAS@N?(olHy`uVBq!ia0vp^2|(ziQiDFLYk#>~OzqBHq9D^{uVBuf@9U=dJzRf4;8pZ}y)5S1tAL z?LD&k+inZy{O1=x_4wn7cjZ59wNL8({=cxY zYE`@c(}z(~c~_MU-t+&+lbQDO*5nOg`3EAo7d(twJpbIZuRkxzOsZnpVt80S=Qr~) z{<$>_$2Q*hw0wR2xnDImn~k17zsX!8@P++?Jjn6~;dTuA`!_BLR^)L6@jYGrT-G@y GGywqYd)7Mu literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/holding.png b/Resources/Textures/Clothing/backpacks.rsi/holding.png new file mode 100644 index 0000000000000000000000000000000000000000..bdabcd5805b4b19fd0e70081b3c020f34be235a4 GIT binary patch literal 584 zcmV-O0=NB%P)^IjeFr!)ND6#f4#|CM3?%x3@p0RR6p|NsB?>mWV=0004WQchC zNklTz! z%}hPByAX=!Qwp!I{+4_ZIi+7G;J>jwq( zeo*TDz=2Zj5B{JZI0{PT|KH(N2jHmp162C~3gA_DlxjafdGP=5j~uNZw0_X?Bl!ov Wrd}&O$2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/medical-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/medical-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..a7ccb31af67c57fc5562a93e8b64fbed396f80b9 GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|ep#Yx{S0F7hMN4|Q!TNRUu3WkD z|NnoP^#>jTMHx$i{DK)Ap4~_Ta`t$-IEHu}e>=sN?~nmctNaf32OJ6q^G?2$yZW*( zqw4=^g8-@J^$jf&0rRFjw46WZ#3o*m+Tg1Nlf<{laW(Auc%}SW^B-oZTHUQF{xOXi zjJ&I6J5;}pXIOqZU2@s{H8C7{+znkncqGn6J!H7tbF9f>QKq!PGlmnk$-htBWMXRQa(r88u-iC&GABbqK=B4iu?9ot)}sea6C>Gt j3jf?HtCiOH)%Y&`wWLFN-|A^Ve=vBu`njxgN@xNA)d_N0 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/medical-inhand-left.png b/Resources/Textures/Clothing/backpacks.rsi/medical-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..4a012706cfa97667a8c7c220e20c9293f2919209 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|ep#Yx{S0K$WlYwCy!}@jWu3WkD z|NsBX^W+kMf{Z0We!&b5&u*jvIdz^cjv*e$-%hdSI-nrn!dg60(wd;bI@h;tc&lxR} U#hS#{3xgf&>FVdQ&MBb@0PiAGV*mgE literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/medical-inhand-right.png b/Resources/Textures/Clothing/backpacks.rsi/medical-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..b9f4171b21f5e0ef8722cfff022f3239548bbbea GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|ep#Yx{S0K$WlYwCy!}@jWu3WkD z|NsBX^W+kMf{Z0We!&b5&u*jvIbEJEjv*e$-%d8}uqqfFF;hf|#{*UMGKlyEanCDczx2@qsr7c&MZ_RS@@|95cUGa2b zV}D!2nH6R-nv6QPM6$9Z+?03SxO?VlhtZSGje#5;cTyvk1T4SA>B;pvAkK6`jzXH% i{i+GcEDV40j!U2E5l_xNcK-&@RScf4elF{r5}E*D@mxCq literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/medical.png b/Resources/Textures/Clothing/backpacks.rsi/medical.png new file mode 100644 index 0000000000000000000000000000000000000000..db879acf0411328271d82a64e645ca7120d1cdf1 GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvi2$DvR}ei#OM1CMXh_KVb?dHN zxpMvb_5c6>*J~;60Ln3z1o;IsI6S+N2INfiba4#Pn0R)AA>UyI0hWn>IKJoIar0VZ zqtO0|q4*KId#~_~_s=zo9@x1q+kH_l>fxRG;!r>H&I<`@f(}oT9*KQ*shn}6hQ;f~ z+KrV#hyK0w@tJ2SFuTK_zoqPx# literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/meta.json b/Resources/Textures/Clothing/backpacks.rsi/meta.json new file mode 100644 index 0000000000..945bc4034c --- /dev/null +++ b/Resources/Textures/Clothing/backpacks.rsi/meta.json @@ -0,0 +1,399 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "engineering", + "directions": 1 + }, + { + "name": "engineering-inhand-left", + "directions": 4 + }, + { + "name": "satchel-hydroponics-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "satchel-science", + "directions": 1 + }, + { + "name": "satchel-engineering-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "courier-black", + "directions": 1 + }, + { + "name": "courier-science-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "engineering", + "directions": 1 + }, + { + "name": "engineering-inhand-left", + "directions": 4 + }, + { + "name": "satchel-hydroponics-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "satchel-science", + "directions": 1 + }, + { + "name": "satchel-engineering-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "courier-black", + "directions": 1 + }, + { + "name": "courier-science-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "engineering", + "directions": 1 + }, + { + "name": "engineering-inhand-left", + "directions": 4 + }, + { + "name": "satchel-hydroponics-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "satchel-science", + "directions": 1 + }, + { + "name": "satchel-engineering-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "courier-black", + "directions": 1 + }, + { + "name": "courier-science-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "satchel-security-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "medical-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "satchel-chemistry-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "holding-equipped-BACKPACK", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "satchel-genetics-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "security-inhand-left", + "directions": 4 + }, + { + "name": "courier-security-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "satchel-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "clown-inhand-right", + "directions": 4 + }, + { + "name": "courier-virology", + "directions": 1 + }, + { + "name": "security-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "medical", + "directions": 1 + }, + { + "name": "medical-inhand-left", + "directions": 4 + }, + { + "name": "courier-captain-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "satchel-chemistry", + "directions": 1 + }, + { + "name": "captain-inhand-right", + "directions": 4 + }, + { + "name": "courier-engineering", + "directions": 1 + }, + { + "name": "security", + "directions": 1 + }, + { + "name": "holding-inhand-right", + "directions": 4 + }, + { + "name": "satchel-captain-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "courier-medical-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "satchel-security", + "directions": 1 + }, + { + "name": "courier-hydroponics", + "directions": 1 + }, + { + "name": "holding-broken", + "directions": 1 + }, + { + "name": "backpack", + "directions": 1 + }, + { + "name": "satchel-captain", + "directions": 1 + }, + { + "name": "backpack-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "holding", + "directions": 1, + "delays": [[ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ]] + }, + { + "name": "holding-unlit", + "directions": 1, + "delays": [[ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ]] + }, + { + "name": "courier-virology-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "courier-hydroponics-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "security-inhand-right", + "directions": 4 + }, + { + "name": "medical-inhand-right", + "directions": 4 + }, + { + "name": "courier-security", + "directions": 1 + }, + { + "name": "satchel", + "directions": 1 + }, + { + "name": "engineering-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "clown", + "directions": 1 + }, + { + "name": "satchel-virology", + "directions": 1 + }, + { + "name": "courier-medical", + "directions": 1 + }, + { + "name": "satchel-hydroponics", + "directions": 1 + }, + { + "name": "captain", + "directions": 1 + }, + { + "name": "courier-chemistry", + "directions": 1 + }, + { + "name": "captain-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "satchel-medical-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "backpack-inhand-left", + "directions": 4 + }, + { + "name": "satchel-science-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "holding-broken-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "satchel-engineering", + "directions": 1 + }, + { + "name": "courier-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "backpack-inhand-right", + "directions": 4 + }, + { + "name": "captain-inhand-left", + "directions": 4 + }, + { + "name": "courier-chemistry-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "engineering-inhand-right", + "directions": 4 + }, + { + "name": "satchel-medical", + "directions": 1 + }, + { + "name": "satchel-virology-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "courier-captain", + "directions": 1 + }, + { + "name": "courier", + "directions": 1 + }, + { + "name": "courier-science", + "directions": 1 + }, + { + "name": "courier-engineering-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "satchel-genetics", + "directions": 1 + }, + { + "name": "clown-inhand-left", + "directions": 4 + }, + { + "name": "clown-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "holding-inhand-left", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/backpacks.rsi/satchel-captain-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/satchel-captain-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..8332a0c0a99588b98f791a24ff4c7791c9a85825 GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|e^#Gp`S0MdYTpWl5GlL;$7B>nGWHltrP6`%in9OX-z|TK>9>X8D1Vg2U1_o_L^G=xqC07JlRs5{Q@;93+ z+<3Qqqs9ZfcMR#%MH09zRRX_p-VpIQo+lgDzA<5Yl1Xbn(=Jg3hlHGlbq5%HEsg6~ z*xp;t_A=fzcg4L; m@5~O!b1hrQcGzkq6N6@h@EyzYo})mAGkCiCxvXiWS0F8*!7F0yD&ZI*=_Dd2 zC#MsZXO-R<=*C=-$g*JuL->-{tAUCbOM?7@862M7NCR>ndAc};Xq-<@kjOZ2QG+49 zT`SWsh->cCM+{Fl&k{WwwQ`=!&I_zs0yFbwS?cb{$x`<5OfQVsSh?yakK2rfpcOkK ziwY+QHFLN$C|g)s?mctn%oIlfC4rqLXU^zYTADIw9eAkAsn)9?p7upFkR!uy4)bxleqZY#_!NpzO-NH5{E-@^u it^tS6vC0K)VPe=XXS6eEd6qxWw+x=HelF{r5}E+zC3P?W literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/satchel-chemistry-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/satchel-chemistry-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..d9b5d894045e4610f06e82820ee2797e3d8216b0 GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!Yyx~jT!D0*^lBfYx?1Vg*REYN z5_C#QNdXFKX=&No+5*{g=gyrsZ{F3b*RBE4wQK*48UCj+{BL3SKa*i#Zc?eJ-_}3SO0> zJMHPiisUvc#?oaS4&ufxPdv{EEEF%CEfMg1nwr}l>s9RRczS7j z+$O_ob6&4`G9_5=*xWT&wk(b6sgArU`F*qO=}kKSo36}MU|Q5I2sA;!xp!_y=fY#1 z9j1J}*>i-&6~%X_Kko{&?3mDf_jUSXr}eGP-5uSN``4eFIi=W)uXo1h!$s#h_g@O@ z{&-q)bI|r9lBLQV#)n&pcfm zLp07OCrD%**jvp!XYRDUy4BIQ?(P;}P_u2FgDQN0!-TBYiG3zB)ncRhm+;9wU7c+xx}SQ zRt*Zeyi$7Q{00Tfmmb`apt`&Ky(6c!i^oM^IL16L5od}y6$SJ$gQu&X%Q~loCIFaT BlhptK literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/satchel-engineering-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/satchel-engineering-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..d5dbd754d58ad4124a45d8cfcbff99db55f0c2e7 GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|etpJ}8S0HU;s1$9HU#K!MI2^I@L9K*>xPrxSCO8hg|e%ezDgG?GY@0E#W8%cMuFIlMF+NBx8aCw6ehN2|P`_U2s)o+7WT0;t NJYD@<);T3K0RUY_bO`_e literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/satchel-engineering.png b/Resources/Textures/Clothing/backpacks.rsi/satchel-engineering.png new file mode 100644 index 0000000000000000000000000000000000000000..ec5b0363cba060e97857a0a5025dd757c6f03cfd GIT binary patch literal 532 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy69RlfT!FN;fl^weeR`z*=1%*| zOML#E$^XAUX*|1^@4f{=X+S-NCm9=qApRAirP+MlksIukB#T69xuGEl(H65DWjO zlWs>f8wj*0UvqvnX;xO(j!6zzx2`R${lC3fII!vKJ?`g96V9C9aHc)zzkk}4ON)}F z8=M_@8X0pg`OkkOF2I?y_O&JB5#a+YpM>_$W1P5{lPyqeC+pU4e|tPQEwofM6w~%8 z&r}pj+IK%h*{mJ4(RR9kBHi%XaJ2ZSw*4Rfl|H@o{}@4T9< zPSqIUCo5@UdfzM?#OGf!1{!KIguw3ahX!DqL=lzM8>Hj=< zqL+TYzbQ(xcHiERr9u~Zt;(yTLa&~@S+MZgrfsjg{wH57edY1=;v@0@{9hT91GK7= T-elhZ1|@^1tDnm{r-UW|?LY2_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/satchel-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/satchel-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..c24f815bc10048ac5683a189f7bd29d98833c3e4 GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|e^#Gp`S0MdYTpWmkGP{9DM@PrT zP|3!|CO9}aD=RBEF=*@7t!K}kee&v_F;FRMNswPK10ypFhmhK&-9Uluo-U3d9>

4u{ntSl@$ICgm2FkTMKCq?^n}0zhN1_baUKvWGUQMzXEbBI%AsZ*#`=^)%{Yuzb+KlR$c42Gj8CO|_DpG5 zHivhA6H5uBiJf#CpNX(A$F7MXtT`?k8i!Xm%xz4xiep{MJ7+EH50Q`-x!wZ-4Kb@i xLf)-$2t2^$=8^Ye&dol1kyEF++e(928C32_wb{0)wE(@q;OXk;vd$@?2>`{FWbOa} literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/satchel-genetics-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/satchel-genetics-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..53a3c3c8a60504dee75506496198b52cb70331cf GIT binary patch literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!Yyx~jT!D0*^lBfYx?1Vg*REYN z5_C#QNdXEnr2W^@(lSo_Z#?tAt*xy?!GECm+_`h-&6{`i>a}Y?bnP0)uiFwpmFy)! ze!&ckOiWD7EQzKM7XgLNd%8G=NJzdtcsl5?fq?75!VRAxJNh+pCK-WL1C8J94xJ&ySW$}y2e(o);t{0O1qC-NjF7RHYTJ-U# zH{Y+6JL0O#=M-`Jbp>6Xl*M_jYZKSGZqdsozW&DOPMIAAfG@lw!WJMQ48qT0TD#pSe=?N9q^X tmEMoMt_bmT1vN_x_Ehy(B+rsNWxnb;`+=Sf6ZU`t#?#f$Wt~$(69Bg|k7@t_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/satchel-genetics.png b/Resources/Textures/Clothing/backpacks.rsi/satchel-genetics.png new file mode 100644 index 0000000000000000000000000000000000000000..ceb3eedb7b38d1d4b264b33942b3e04a1600cf74 GIT binary patch literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv-2k5uS0FvDeHM^pNc*p)rDdG< z-+1PKTU%QPASn2sl9JNa);4$U+{1?tU%PhA_?_-Eph~8aAirP+4QI8~LqOh3PZ!4! zjq}L~5*Y__av0LrN9An2k#+UVOyLDJ>x#{v@165IEww-*B;oAs^vd&}-pw^S=hMJ- zXZN)4I^W-FrtLToIibsXxx^VYr=Asd#X9dJ&&_*_}ZqzgI+zozJZ7M1cSCPG0fJgHlJ}?HWCzCp00i_>zopr E0NnqZ?*IS* literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/satchel-hydroponics-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/satchel-hydroponics-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..751ca009782644aec51ebcba706f4d1647ae0576 GIT binary patch literal 404 zcmV;F0c-w=P)^CX>nh6Ff0p3n9V*FAxq= zvbTsfp#)G0{_unNJyU7z%@!Dg^53=1{p6V+EQ>2lrT#Ye(CSa_M=hMYuANoXv62W2 yFJyI4^A)Vo*e~{S?LDs%@UguE*ybNUvn(F5R0+>xd0A2b0000KD4y3A*n{$m$E&^dZ{! zqT%*Y>HEm9;Z2VK0004WQchCxi1JCDT|~` zqKd?&zC9k>rZuH%rklmZ4M1MkRTVciRaJz!{MKVmimvhv2>z!j4?vpcd1e5(AP!-K zQyKs_FAGxBWZs;4Hv+_B737!G3)2XMe~#1@U~VZ>!2ZVMF8=l9{y9ecMy|42`J W#SUlxl?dAa0000na*S0MdYTs$bVTVjfq^l}3o z9UU7(rKMuYD`9+t@~8D}>wyC`DE^&+gHp^JlQ=EUBB zZ@vf4oacP;?cv$`oGf=eRxz0=iEMcodg0uG4SN~qH?3p(rX|Aqg4ON%m9?7|lWbOujXKbLh*2~7Z&TWyg5 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/satchel-medical.png b/Resources/Textures/Clothing/backpacks.rsi/satchel-medical.png new file mode 100644 index 0000000000000000000000000000000000000000..5fd013470ef912f2c987476f049da52e2843816e GIT binary patch literal 333 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv^#Gp`S0F7hMN4|QfsT%jp`oFv zsi~EfRZdP$RsYHG*oc-|`1>Zf*><3B`4cMB@Coqe=Wa44_#ix3q>m$Rl z=_W7#KmDu!bAIBVXthY+|0NKO$XOB;URG>R{Ly!?0;~gX$FLV_YqNzcwrTmg<*e&v2FvwyyIy@oV*N d|KRBB`pp^Kg_jv*3~Zx5ahI&2`|dhqaNDaLZQhJXLV51L6& z@(8S)x@yJj%w3k>&T(|Iu{ygrcL*+e>ewUT>;K5=;=%{B%r7Q8w(s7#^K!D|?C{Xg z<=%^q7I&(8mHkSId8WF2PEjG>r=ZJ|vI_e?Z7S;fEPC0*x7?A7t%FT)k$a4~mCN*q zPP2=uW{$IObb9ynvigdxk?Z9Sxd~#-+izzfymf=|#iWDJK3iK%EIN12Z;Rx9o9AQw?-u0Fh*5WQK-@nE;ucot?wO!`9Z;b9D&}00002 zbW%=J04PHyWx@ae0P0CZK~yNuV_+C)z+PSeXRlh~wZv=H%$XCQe6IU1=l`7dcV&AI zRABADKj;6Pe}Aj|I_`#0zRocni+9WHPWq~h%@hMI{GBcku#IsfPE-K`7CA*NPc zjlMbe=G?8ZPyzN?cdtfH(wrK5cX>HjLFKB|d!MK!`Q6^NsvM%={{P$e%#z>k{r`6X zRN(jS_r}KmcJGG>RL)$zf8W1P`tM)=-UTsY!rK4)-v9sq@Ady%2!Vh9|G!5FaNXVa z4hUY~T>uf7!LVx8T_9Ms3K}jm8yMJEt%7mEO3KSCQNj)pQnUg9TKgR`=-av2y33JSJv-MXKF;Xea^W2(n4pazzbAirP+Mkbbau2p70{#j2K z#}JR>$q5py83{~bYC;(YPPs5_gt&KZ5DLLDC29DS5~jh(~nG>;CK#WIB(Z}@IFos&JuvSwp@3X}G=8`-V~ zGnqGNa>$)kTHH`^z|(^&+KT88v1+vKf8{Ce6IbQQ6%) zLC29bu|jl%k-?Nlp#nh%B83|K9d~$lTDLJh32NPXd9$eNB-Wk@A|WLY%9))rG7fC; byUS2@QKpUcw!#gd#~3_a{an^LB{Ts5UZ8N7 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/satchel-security.png b/Resources/Textures/Clothing/backpacks.rsi/satchel-security.png new file mode 100644 index 0000000000000000000000000000000000000000..7f100adff6a847894d683d7b101377692e47f816 GIT binary patch literal 353 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy#sNMdu0UE|US3B>#|9|w;^OA! z791R$l$4arz>t-dmCL}8mzP&iP_T9D*8L0&XV0Gf&%pn`M>PYejj<%iFPOpM*^M+H z=Z>d~V~EA+tCJl4js);H3m>;AogrEE|MDh{1^+a)BNX=3`gbO&KFa_6EBoQo=T4zl zLm3!sjciTfVmgU|)srIO>KAJ~i^4UBy zVTU8RPdx*-P5N<1OQ)7jw zuuGb&9Yf}@hd6xLIM=A;A*17z-0miUZUI5Y#;n~(r`B_}tjxRkpxlYUs!Bk>|IkH_ wl!>2qJxCF;E2>>EbM2~WpXL|UT-blsS|yM@lK+QHG0>k3p00i_>zopr04=bI761SM literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/satchel-virology-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/satchel-virology-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..49725f781dfd191b4671b3667dbe7a0b88c0970b GIT binary patch literal 358 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!Yyx~jT!D0*^lBfYx?1Vg*REYN z5_C#QNdXEnq%klwFfdGJ(9+T}p2=WqYYP;gJ9qB9dGoGby><7E`qHk>4ua{GFkN`d8=fm|v!Idea~7cL!OPALdLyvh%EDL7R~E^7E2j zb69FSogYa(KGLMeU3UJM=*mKlT{<`R)~V^atd=?Ra^r(1kF_l(duu+L@WQxm#gs`u zwe#0@#UGoIb=xTY%BmSlZXIFmjC_Ad`t+xOeT?$T>=hHfUuy*Vj=|H_&t;ucLK6TC CFqE+X literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/satchel-virology.png b/Resources/Textures/Clothing/backpacks.rsi/satchel-virology.png new file mode 100644 index 0000000000000000000000000000000000000000..809f1b86e011f4bf06200b2c50a7b03003b0f827 GIT binary patch literal 359 zcmV-t0hs=YP)S-!^76r*7#F+<^TWy0(4SN zQvfJKCS}3^008GnL_t(2&tqU1Xuxc20B5gSY_-^GRcL4cl+ShUir*98H%pzvp#p2( zKCgRTckh&OX#rH=-u1fYwQo-`!v)TQRNOhmU>*oDqWjG8y5}`#b}TT4m}+&R`-smG zpB+6=0p_SPCt93TJbKP7HU=v&UA218Wz9*pr*}aFn4`|UJAF2D+MPY`-YkF$yxx5; zE$!{@eGmcD(AE3)zI~*3@Am6m5F-NCyxV*4-MhE9-na*S0JsUqhn*JWMg9!92}gK zl$0FdnU$55n;2A3P_T9D*0X2NT7Gc{sb?$+@(X5gcy=QV$T{Qb;uxZFJ~=@mUvspn) z!ZoI$ZORS{E)CTNRuNes??51n)`2S$k2D@_JsNl<)Pr-4gLA-*D}h;yJvJ;{Amq~M zU0IlMMAaP7W@o!%LML8#zT}K3uq%5gZic%xUf7aS<3sm!Dd!tMaV;1@sq# Mr>mdKI;Vst0NP%04gdfE literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/security-equipped-BACKPACK.png b/Resources/Textures/Clothing/backpacks.rsi/security-equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..6ba1322845f125a2d67954509343ff4fa9b7a694 GIT binary patch literal 420 zcmV;V0bBlwP)MBc0wDz(2q|cwSb+dZ3V5Ix2AC9;6qS$_90p?M z0|>rGVI5JFP0Nl6LSgu|A` zC<=CzS8T#(f_C?&-Q5a!+@QN-_l~{ze8IS_scj>Q6;KR!gJ4CW5V8U;D26LwQc_~V z7u2I*I0IfnB?LF25`u$J0YFdz6Ltj(Bq&f)#gqEiS5gWMf*a5sB*376 zD$m5gsJcS|u0WB2VH0xRWU$g^U=TtmXacbgpywne4Y;YQ3ea*24s1XQf)K?4b`uaq zh&8B8M0EqG4A>0k8an_91N8EM1yN#f8lV;r5arAh81RR+!e~aJF8~0ed^X&b(sHZ- O0000x>zW@OL01y7&(1rj200DGTPE!Ct=GbNc009q4L_t(Y z$L*A{3c@fDhTDL;wnd%eLFyCetk61Zw3)S<=qMcoU%*%Jb+x8o5>G0+NpHF&AOBrK z?)SVV{xLdrK)ViT{S5d&0}%KTEfX^E0_2=z{Y#IR8RNS(roe_*rWG=vXbGXX2Bg9j z0AdXYyhOZ8M5T~SuqLI7W&R*>1#%Kf6lFGi(?fs6#*h2^TQSFgL3b7E9>NrTNeVzU zKxi`^P1pu;tTTvp-TcqL0j&8Cz5ycRGv7TT1osk*83-hcKN+F9u-( d1b}?@jc!orD<1fD7+?SZ002ovPDHLkV1jqwmZ$&# literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/security-inhand-right.png b/Resources/Textures/Clothing/backpacks.rsi/security-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..117a22ef91aaa9c1594b35ddcc6796816be17077 GIT binary patch literal 373 zcmV-*0gC>KP)x>zW@OL01y7&(1rj200DGTPE!Ct=GbNc009L_L_t(Y ziS5*}Zo)te2H>0}+BHEfb7JW(Pf&KGWT#iS8A8tOSTP{+0(}Kumn8?*#Zjo(5Z>d&9;I`4zF=~A%Ay%i>)?o!a? zr7y@g9k7Uv09pzYd{s-}k{Z{Lla>r=>B)Z!;F7AH{n`p&xR63tFQx*RgcJY~1dzz- zvmU=*$H2=NnA{E2-2hWH&96@=qCTu=fA8!9XuFAoE>D_I=-m@^WI6B@Pe3#rxHbZ2 zRq+D=zKWLgWIVeeCY}HXM{a+8m%SZkA9~KtsoJ>+6mP4H?~v6I$Psf6{&N`4w?!-P TcJyXR00000NkvXXu0mjfS*?}M literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/backpacks.rsi/security.png b/Resources/Textures/Clothing/backpacks.rsi/security.png new file mode 100644 index 0000000000000000000000000000000000000000..47613295e40501264d12e54dc99e940ecec647cc GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv=>VS)S0F7fFR!Vo>E`AZ8X6iM z9i5k#x1WLGKLfu^gorIrnz1CvFPOpM*^M+HXQ8KyV~9rZ-g6sy4;cus1|+Lw^@zSI zn0MfLH~R)xHU$-C6*KMt14g0b%RhY>JKFC5U0#2Q^P}19^&9@lhRHKd3EDkvcge4^ zt0xkQKJPH+_CK?7cZ!U}l(NSUu1phWU`SXc{Cf7@Qr0IjQ#V_kVPy*RYgx$f#iZBH zfpN)G31KB?`_g^ Date: Tue, 13 Aug 2019 10:27:28 +0200 Subject: [PATCH 10/24] Fix bad RSI state names causing issues on Windows. --- .../Prototypes/Entities/buildings/computers.yml | 2 +- .../computer.rsi/{alert:0.png => alert-0.png} | Bin .../computer.rsi/{alert:1.png => alert-1.png} | Bin .../computer.rsi/{alert:2.png => alert-2.png} | Bin Resources/Textures/Buildings/computer.rsi/meta.json | 2 +- 5 files changed, 2 insertions(+), 2 deletions(-) rename Resources/Textures/Buildings/computer.rsi/{alert:0.png => alert-0.png} (100%) rename Resources/Textures/Buildings/computer.rsi/{alert:1.png => alert-1.png} (100%) rename Resources/Textures/Buildings/computer.rsi/{alert:2.png => alert-2.png} (100%) diff --git a/Resources/Prototypes/Entities/buildings/computers.yml b/Resources/Prototypes/Entities/buildings/computers.yml index 592b397485..4b1cb78cd5 100644 --- a/Resources/Prototypes/Entities/buildings/computers.yml +++ b/Resources/Prototypes/Entities/buildings/computers.yml @@ -43,7 +43,7 @@ visuals: - type: ComputerVisualizer2D key: atmos_key - screen: "alert:2" + screen: "alert-2" - type: entity diff --git a/Resources/Textures/Buildings/computer.rsi/alert:0.png b/Resources/Textures/Buildings/computer.rsi/alert-0.png similarity index 100% rename from Resources/Textures/Buildings/computer.rsi/alert:0.png rename to Resources/Textures/Buildings/computer.rsi/alert-0.png diff --git a/Resources/Textures/Buildings/computer.rsi/alert:1.png b/Resources/Textures/Buildings/computer.rsi/alert-1.png similarity index 100% rename from Resources/Textures/Buildings/computer.rsi/alert:1.png rename to Resources/Textures/Buildings/computer.rsi/alert-1.png diff --git a/Resources/Textures/Buildings/computer.rsi/alert:2.png b/Resources/Textures/Buildings/computer.rsi/alert-2.png similarity index 100% rename from Resources/Textures/Buildings/computer.rsi/alert:2.png rename to Resources/Textures/Buildings/computer.rsi/alert-2.png diff --git a/Resources/Textures/Buildings/computer.rsi/meta.json b/Resources/Textures/Buildings/computer.rsi/meta.json index 1bb8a8e4e6..397852c32f 100644 --- a/Resources/Textures/Buildings/computer.rsi/meta.json +++ b/Resources/Textures/Buildings/computer.rsi/meta.json @@ -1 +1 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "ai-fixer", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "ai-fixer-404", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "ai-fixer-empty", "directions": 4, "delays": [[0.7, 0.7], [0.7, 0.7], [0.7, 0.7], [0.7, 0.7]]}, {"name": "ai-fixer-full", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "ai-fixer-on", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1]]}, {"name": "aiupload", "directions": 4, "delays": [[0.2, 0.2], [0.2, 0.2], [0.2, 0.2], [0.2, 0.2]]}, {"name": "aiupload_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "alert:0", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "alert:1", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "alert:2", "directions": 4, "delays": [[0.1, 0.1], [0.1, 0.1], [0.1, 0.1], [0.1, 0.1]]}, {"name": "area_atmos", "directions": 4, "delays": [[1.0, 1.0], [1.0, 1.0], [1.0, 1.0], [1.0, 1.0]]}, {"name": "atmos_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "atmos_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "broken", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "cameras", "directions": 4, "delays": [[1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1], [1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1], [1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1], [1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1]]}, {"name": "comm", "directions": 4, "delays": [[0.1, 0.1], [0.1, 0.1], [0.1, 0.1], [0.1, 0.1]]}, {"name": "comm_logs", "directions": 4, "delays": [[0.1, 0.2, 0.1, 0.2, 0.1, 0.2, 0.1, 0.2], [0.1, 0.2, 0.1, 0.2, 0.1, 0.2, 0.1, 0.2], [0.1, 0.2, 0.1, 0.2, 0.1, 0.2, 0.1, 0.2], [0.1, 0.2, 0.1, 0.2, 0.1, 0.2, 0.1, 0.2]]}, {"name": "comm_monitor", "directions": 4, "delays": [[0.4, 0.4, 0.4], [0.4, 0.4, 0.4], [0.4, 0.4, 0.4], [0.4, 0.4, 0.4]]}, {"name": "command", "directions": 4, "delays": [[0.2, 0.2], [0.2, 0.2], [0.2, 0.2], [0.2, 0.2]]}, {"name": "computer", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "computer_broken", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "crew", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]]}, {"name": "dna", "directions": 4, "delays": [[0.2, 0.2, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.8, 0.1, 0.1, 0.1, 0.1, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.8, 0.1, 0.1, 0.1, 0.1, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.8, 0.1, 0.1, 0.1, 0.1, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.8, 0.1, 0.1, 0.1, 0.1, 0.2, 0.2, 0.2]]}, {"name": "dron_control_monitor", "directions": 4, "delays": [[0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05], [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05], [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05], [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]]}, {"name": "engie_cams", "directions": 4, "delays": [[1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1], [1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1], [1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1], [1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1]]}, {"name": "engine", "directions": 4, "delays": [[0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]]}, {"name": "entertainment", "directions": 1, "delays": [[0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]]}, {"name": "eris_control", "directions": 4, "delays": [[0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5], [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5], [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5], [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5]]}, {"name": "error", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "explosive", "directions": 4, "delays": [[1.0, 0.1, 0.1, 1.0, 0.1, 0.1, 1.0, 0.1, 0.1], [1.0, 0.1, 0.1, 1.0, 0.1, 0.1, 1.0, 0.1, 0.1], [1.0, 0.1, 0.1, 1.0, 0.1, 0.1, 1.0, 0.1, 0.1], [1.0, 0.1, 0.1, 1.0, 0.1, 0.1, 1.0, 0.1, 0.1]]}, {"name": "forensic", "directions": 4, "delays": [[0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]]}, {"name": "generic", "directions": 4, "delays": [[0.2, 0.2], [0.2, 0.2], [0.2, 0.2], [0.2, 0.2]]}, {"name": "generic_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "generic_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "holocontrol", "directions": 4, "delays": [[1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1], [1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1], [1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1], [1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1]]}, {"name": "id", "directions": 4, "delays": [[0.2, 0.2], [0.2, 0.2], [0.2, 0.2], [0.2, 0.2]]}, {"name": "id_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "id_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "mass_driver", "directions": 1, "delays": [[1.0]]}, {"name": "mecha", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]]}, {"name": "med_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "med_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "medcomp", "directions": 4, "delays": [[0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]]}, {"name": "mining", "directions": 4, "delays": [[1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1], [1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1], [1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1], [1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1]]}, {"name": "mining_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "mining_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "power_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "power_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "power_monitor", "directions": 4, "delays": [[0.6, 0.6, 0.6, 0.6], [0.6, 0.6, 0.6, 0.6], [0.6, 0.6, 0.6, 0.6], [0.6, 0.6, 0.6, 0.6]]}, {"name": "power_monitor_warn", "directions": 4, "delays": [[0.2, 0.2], [0.2, 0.2], [0.2, 0.2], [0.2, 0.2]]}, {"name": "rd_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "rd_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "rdcomp", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "recharge_comp", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "recharge_comp_on", "directions": 4, "delays": [[0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2], [0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2], [0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2], [0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2]]}, {"name": "request", "directions": 4, "delays": [[0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3]]}, {"name": "robot", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "security", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "security_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "security_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "shuttle", "directions": 4, "delays": [[0.1, 0.1, 0.1], [0.1, 0.1, 0.1], [0.1, 0.1, 0.1], [0.1, 0.1, 0.1]]}, {"name": "solar_screen", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1]]}, {"name": "supply", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "syndie_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "syndie_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "syndishuttle", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "tank", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "tcboss", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "tech_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "tech_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "teleport", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1]]}, {"name": "teleport_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "teleport_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "telesci", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1]]}, {"name": "telesci_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "telesci_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "turbinecomp", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}]} \ No newline at end of file +{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "ai-fixer", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "ai-fixer-404", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "ai-fixer-empty", "directions": 4, "delays": [[0.7, 0.7], [0.7, 0.7], [0.7, 0.7], [0.7, 0.7]]}, {"name": "ai-fixer-full", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "ai-fixer-on", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1]]}, {"name": "aiupload", "directions": 4, "delays": [[0.2, 0.2], [0.2, 0.2], [0.2, 0.2], [0.2, 0.2]]}, {"name": "aiupload_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "alert-0", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "alert-1", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "alert-2", "directions": 4, "delays": [[0.1, 0.1], [0.1, 0.1], [0.1, 0.1], [0.1, 0.1]]}, {"name": "area_atmos", "directions": 4, "delays": [[1.0, 1.0], [1.0, 1.0], [1.0, 1.0], [1.0, 1.0]]}, {"name": "atmos_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "atmos_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "broken", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "cameras", "directions": 4, "delays": [[1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1], [1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1], [1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1], [1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1]]}, {"name": "comm", "directions": 4, "delays": [[0.1, 0.1], [0.1, 0.1], [0.1, 0.1], [0.1, 0.1]]}, {"name": "comm_logs", "directions": 4, "delays": [[0.1, 0.2, 0.1, 0.2, 0.1, 0.2, 0.1, 0.2], [0.1, 0.2, 0.1, 0.2, 0.1, 0.2, 0.1, 0.2], [0.1, 0.2, 0.1, 0.2, 0.1, 0.2, 0.1, 0.2], [0.1, 0.2, 0.1, 0.2, 0.1, 0.2, 0.1, 0.2]]}, {"name": "comm_monitor", "directions": 4, "delays": [[0.4, 0.4, 0.4], [0.4, 0.4, 0.4], [0.4, 0.4, 0.4], [0.4, 0.4, 0.4]]}, {"name": "command", "directions": 4, "delays": [[0.2, 0.2], [0.2, 0.2], [0.2, 0.2], [0.2, 0.2]]}, {"name": "computer", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "computer_broken", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "crew", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]]}, {"name": "dna", "directions": 4, "delays": [[0.2, 0.2, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.8, 0.1, 0.1, 0.1, 0.1, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.8, 0.1, 0.1, 0.1, 0.1, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.8, 0.1, 0.1, 0.1, 0.1, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.8, 0.1, 0.1, 0.1, 0.1, 0.2, 0.2, 0.2]]}, {"name": "dron_control_monitor", "directions": 4, "delays": [[0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05], [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05], [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05], [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]]}, {"name": "engie_cams", "directions": 4, "delays": [[1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1], [1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1], [1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1], [1.8, 0.1, 1.8, 0.1, 1.8, 0.1, 1.8, 0.1]]}, {"name": "engine", "directions": 4, "delays": [[0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]]}, {"name": "entertainment", "directions": 1, "delays": [[0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]]}, {"name": "eris_control", "directions": 4, "delays": [[0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5], [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5], [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5], [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5]]}, {"name": "error", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "explosive", "directions": 4, "delays": [[1.0, 0.1, 0.1, 1.0, 0.1, 0.1, 1.0, 0.1, 0.1], [1.0, 0.1, 0.1, 1.0, 0.1, 0.1, 1.0, 0.1, 0.1], [1.0, 0.1, 0.1, 1.0, 0.1, 0.1, 1.0, 0.1, 0.1], [1.0, 0.1, 0.1, 1.0, 0.1, 0.1, 1.0, 0.1, 0.1]]}, {"name": "forensic", "directions": 4, "delays": [[0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]]}, {"name": "generic", "directions": 4, "delays": [[0.2, 0.2], [0.2, 0.2], [0.2, 0.2], [0.2, 0.2]]}, {"name": "generic_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "generic_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "holocontrol", "directions": 4, "delays": [[1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1], [1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1], [1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1], [1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1]]}, {"name": "id", "directions": 4, "delays": [[0.2, 0.2], [0.2, 0.2], [0.2, 0.2], [0.2, 0.2]]}, {"name": "id_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "id_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "mass_driver", "directions": 1, "delays": [[1.0]]}, {"name": "mecha", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]]}, {"name": "med_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "med_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "medcomp", "directions": 4, "delays": [[0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]]}, {"name": "mining", "directions": 4, "delays": [[1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1], [1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1], [1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1], [1.0, 0.1, 1.0, 0.1, 1.0, 0.1, 1.0, 0.1]]}, {"name": "mining_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "mining_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "power_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "power_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "power_monitor", "directions": 4, "delays": [[0.6, 0.6, 0.6, 0.6], [0.6, 0.6, 0.6, 0.6], [0.6, 0.6, 0.6, 0.6], [0.6, 0.6, 0.6, 0.6]]}, {"name": "power_monitor_warn", "directions": 4, "delays": [[0.2, 0.2], [0.2, 0.2], [0.2, 0.2], [0.2, 0.2]]}, {"name": "rd_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "rd_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "rdcomp", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "recharge_comp", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "recharge_comp_on", "directions": 4, "delays": [[0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2], [0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2], [0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2], [0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2]]}, {"name": "request", "directions": 4, "delays": [[0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3]]}, {"name": "robot", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "security", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "security_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "security_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "shuttle", "directions": 4, "delays": [[0.1, 0.1, 0.1], [0.1, 0.1, 0.1], [0.1, 0.1, 0.1], [0.1, 0.1, 0.1]]}, {"name": "solar_screen", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1]]}, {"name": "supply", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "syndie_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "syndie_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "syndishuttle", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "tank", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "tcboss", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "tech_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "tech_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "teleport", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1]]}, {"name": "teleport_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "teleport_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "telesci", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1]]}, {"name": "telesci_key", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "telesci_key_off", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "turbinecomp", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}]} From d2a1309cb6f29c19f8061f3a88b7375b6d4d6aea Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Tue, 13 Aug 2019 10:31:38 +0200 Subject: [PATCH 11/24] Update submodule. --- RobustToolbox | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RobustToolbox b/RobustToolbox index 10261a15b2..71fd6d427c 160000 --- a/RobustToolbox +++ b/RobustToolbox @@ -1 +1 @@ -Subproject commit 10261a15b25cc55422b6c1e9c8c23ca0eb5cad99 +Subproject commit 71fd6d427c71f4989810ac2851a8261a6f387812 From f116e887ea66ce515cea5e1c64416f24ed736252 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Tue, 13 Aug 2019 12:05:33 +0200 Subject: [PATCH 12/24] Make light positioning not look as stupid. --- Resources/Maps/stationstation.yml | 843 +++++++++--------- .../Buildings/light_small.rsi/broken.png | Bin 446 -> 246 bytes .../Buildings/light_small.rsi/burned.png | Bin 625 -> 274 bytes .../Buildings/light_small.rsi/empty.png | Bin 319 -> 199 bytes .../Buildings/light_small.rsi/off.png | Bin 478 -> 262 bytes .../Textures/Buildings/light_small.rsi/on.png | Bin 556 -> 287 bytes .../Buildings/light_tube.rsi/broken.png | Bin 657 -> 337 bytes .../Buildings/light_tube.rsi/burned.png | Bin 962 -> 584 bytes .../Buildings/light_tube.rsi/empty.png | Bin 406 -> 229 bytes .../Textures/Buildings/light_tube.rsi/off.png | Bin 554 -> 280 bytes .../Textures/Buildings/light_tube.rsi/on.png | Bin 703 -> 338 bytes 11 files changed, 398 insertions(+), 445 deletions(-) diff --git a/Resources/Maps/stationstation.yml b/Resources/Maps/stationstation.yml index d99b3fa1bb..f3e77331f9 100644 --- a/Resources/Maps/stationstation.yml +++ b/Resources/Maps/stationstation.yml @@ -259,18 +259,12 @@ entities: pos: -1.5,-14.5 rot: -1.5707963267949 rad type: Transform -- type: LightTube +- type: poweredsmalllight uid: 25 components: - - parent: 26 - grid: 0 - type: Transform -- type: poweredlight - uid: 26 - components: - grid: 0 - pos: 4.5,-9.5 - rot: 3.14159265358979 rad + pos: -4.5,-5 + rot: 1.5707963267948966 rad type: Transform - color: '#FFFFFFFF' type: PointLight @@ -279,7 +273,24 @@ entities: - containers: light_bulb: entities: - - 25 + - 29 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- type: poweredlight + uid: 26 + components: + - grid: 0 + pos: -8.5,4 + rot: -1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - load: 40 + type: PowerDevice + - containers: + light_bulb: + entities: + - 219 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer - type: Wire @@ -289,18 +300,12 @@ entities: pos: 8.5,-8.5 rot: -1.5707963267949 rad type: Transform -- type: LightTube +- type: poweredsmalllight uid: 28 components: - - parent: 29 - grid: 0 - type: Transform -- type: poweredlight - uid: 29 - components: - grid: 0 - pos: -0.5,-13.5 - rot: 1.5707963267949 rad + pos: 0.5,-5 + rot: 1.5707963267948966 rad type: Transform - color: '#FFFFFFFF' type: PointLight @@ -309,9 +314,16 @@ entities: - containers: light_bulb: entities: - - 28 + - 171 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer +- type: LightBulb + uid: 29 + components: + - parent: 25 + grid: 0 + pos: 4.5,5 + type: Transform - type: Wire uid: 30 components: @@ -1225,11 +1237,12 @@ entities: pos: -5.5,-0.5 rot: -1.5707963267949 rad type: Transform -- type: LightTube +- type: computerPowerMonitoring uid: 155 components: - - parent: 171 - grid: 0 + - grid: 0 + pos: 0.5,-5.5 + rot: -1.5707963267948966 rad type: Transform - type: computerAlert uid: 156 @@ -1336,34 +1349,26 @@ entities: pos: -6.5,-13.5 rot: -1.5707963267949 rad type: Transform -- type: poweredlight +- type: LightBulb uid: 171 components: - - grid: 0 - pos: -6.5,-9.5 + - parent: 28 + grid: 0 + pos: -0.5,5 type: Transform - - color: '#FFFFFFFF' - type: PointLight - - load: 40 - type: PowerDevice - - containers: - light_bulb: - entities: - - 155 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer - type: LightBulb uid: 172 components: - parent: 173 grid: 0 + pos: 10,6.5 type: Transform - type: poweredsmalllight uid: 173 components: - grid: 0 - pos: -4.5,-5.5 - rot: 1.5707963267949 rad + pos: -10,-6.5 + rot: 3.141592653589793 rad type: Transform - color: '#FFFFFFFF' type: PointLight @@ -1655,12 +1660,19 @@ entities: pos: -9.5,1.5 rot: -1.5707963267949 rad type: Transform -- type: poweredsmalllight +- type: LightTube uid: 214 components: + - parent: 215 + grid: 0 + pos: -0.5,-1 + type: Transform +- type: poweredlight + uid: 215 + components: - grid: 0 - pos: -9.5,-6.5 - rot: 3.14159265358979 rad + pos: 0.5,1 + rot: -1.5707963267948966 rad type: Transform - color: '#FFFFFFFF' type: PointLight @@ -1669,44 +1681,29 @@ entities: - containers: light_bulb: entities: - - 215 + - 214 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- type: LightBulb - uid: 215 - components: - - parent: 214 - grid: 0 - type: Transform -- type: poweredlight +- type: chairOfficeLight uid: 216 components: - grid: 0 - pos: -0.5,0.5 - rot: -1.5707963267949 rad + pos: -3.5,-0.5 + rot: -1.5707963267948966 rad type: Transform - - color: '#FFFFFFFF' - type: PointLight - - load: 40 - type: PowerDevice - - containers: - light_bulb: - entities: - - 217 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- type: LightTube +- type: chairOfficeDark uid: 217 components: - - parent: 216 - grid: 0 + - grid: 0 + pos: 0.5,-6.5 + rot: 1.5707963267948966 rad type: Transform - type: poweredlight uid: 218 components: - grid: 0 - pos: -5.5,0.5 - rot: -1.5707963267949 rad + pos: -6.5,1 + rot: -1.5707963267948966 rad type: Transform - color: '#FFFFFFFF' type: PointLight @@ -1715,67 +1712,264 @@ entities: - containers: light_bulb: entities: - - 219 + - 320 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer - type: LightTube uid: 219 components: - - parent: 218 + - parent: 26 grid: 0 + pos: 8.5,-4 type: Transform -- type: poweredlight +- type: stool uid: 220 components: - grid: 0 - pos: -6.5,5.5 + pos: -1.5,-9.5 + rot: 1.5707963267948966 rad type: Transform - - color: '#FFFFFFFF' - type: PointLight - - load: 40 - type: PowerDevice - - containers: - light_bulb: - entities: - - 221 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- type: LightTube +- type: chairOfficeLight uid: 221 components: - - parent: 220 - grid: 0 + - grid: 0 + pos: -3.5,-2.5 + rot: 1.5707963267948966 rad type: Transform -- type: poweredlight +- type: chairOfficeLight uid: 222 components: - grid: 0 - pos: 3.5,5.5 - rot: 3.14159265358979 rad + pos: -2.5,-2.5 + rot: 1.5707963267948966 rad type: Transform - - color: '#FFFFFFFF' - type: PointLight - - load: 40 - type: PowerDevice - - containers: - light_bulb: - entities: - - 223 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- type: LightTube +- type: chairOfficeLight uid: 223 components: - - parent: 222 - grid: 0 + - grid: 0 + pos: -2.5,-0.5 + rot: -1.5707963267948966 rad type: Transform -- type: poweredlight +- type: stool uid: 224 components: - grid: 0 - pos: -1.5,7.5 + pos: -2.5,-6.5 + rot: 1.5707963267948966 rad + type: Transform +- type: LightBulb + uid: 225 + components: + - parent: 254 + grid: 0 + pos: -5,9.5 + type: Transform +- type: APC + uid: 226 + components: + - grid: 0 + pos: -6.5,-7.5 rot: -1.5707963267949 rad type: Transform + - load: 80 + type: PowerProvider +- type: Wire + uid: 227 + components: + - grid: 0 + pos: -9.5,2.5 + rot: -1.5707963267949 rad + type: Transform +- type: Wire + uid: 228 + components: + - grid: 0 + pos: -9.5,3.5 + rot: -1.5707963267949 rad + type: Transform +- type: Wire + uid: 229 + components: + - grid: 0 + pos: -8.5,3.5 + rot: -1.5707963267949 rad + type: Transform +- type: Wire + uid: 230 + components: + - grid: 0 + pos: -7.5,3.5 + rot: -1.5707963267949 rad + type: Transform +- type: Wire + uid: 231 + components: + - grid: 0 + pos: -6.5,3.5 + rot: -1.5707963267949 rad + type: Transform +- type: Wire + uid: 232 + components: + - grid: 0 + pos: -5.5,3.5 + rot: -1.5707963267949 rad + type: Transform +- type: Wire + uid: 233 + components: + - grid: 0 + pos: -4.5,3.5 + rot: -1.5707963267949 rad + type: Transform +- type: Wire + uid: 234 + components: + - grid: 0 + pos: -3.5,3.5 + rot: -1.5707963267949 rad + type: Transform +- type: Wire + uid: 235 + components: + - grid: 0 + pos: -2.5,3.5 + rot: -1.5707963267949 rad + type: Transform +- type: Wire + uid: 236 + components: + - grid: 0 + pos: -1.5,3.5 + rot: -1.5707963267949 rad + type: Transform +- type: Wire + uid: 237 + components: + - grid: 0 + pos: -0.5,3.5 + rot: -1.5707963267949 rad + type: Transform +- type: Wire + uid: 238 + components: + - grid: 0 + pos: 0.5,3.5 + rot: -1.5707963267949 rad + type: Transform +- type: Wire + uid: 239 + components: + - grid: 0 + pos: 1.5,3.5 + rot: -1.5707963267949 rad + type: Transform +- type: catwalk + uid: 240 + components: + - grid: 0 + pos: 9.5,-0.5 + rot: -1.5707963267949 rad + type: Transform +- type: catwalk + uid: 241 + components: + - grid: 0 + pos: 9.5,-1.5 + rot: -1.5707963267949 rad + type: Transform +- type: catwalk + uid: 242 + components: + - grid: 0 + pos: 9.5,-2.5 + rot: -1.5707963267949 rad + type: Transform +- type: catwalk + uid: 243 + components: + - grid: 0 + pos: 9.5,-3.5 + rot: -1.5707963267949 rad + type: Transform +- type: catwalk + uid: 244 + components: + - grid: 0 + pos: 9.5,-4.5 + rot: -1.5707963267949 rad + type: Transform +- type: catwalk + uid: 245 + components: + - grid: 0 + pos: 9.5,-5.5 + rot: -1.5707963267949 rad + type: Transform +- type: catwalk + uid: 246 + components: + - grid: 0 + pos: 9.5,-6.5 + rot: -1.5707963267949 rad + type: Transform +- type: catwalk + uid: 247 + components: + - grid: 0 + pos: 9.5,-7.5 + rot: -1.5707963267949 rad + type: Transform +- type: catwalk + uid: 248 + components: + - grid: 0 + pos: 9.5,-8.5 + rot: -1.5707963267949 rad + type: Transform +- type: catwalk + uid: 249 + components: + - grid: 0 + pos: 9.5,-9.5 + rot: -1.5707963267949 rad + type: Transform +- type: catwalk + uid: 250 + components: + - grid: 0 + pos: 9.5,-10.5 + rot: -1.5707963267949 rad + type: Transform +- type: catwalk + uid: 251 + components: + - grid: 0 + pos: 9.5,-11.5 + rot: -1.5707963267949 rad + type: Transform +- type: catwalk + uid: 252 + components: + - grid: 0 + pos: 8.5,-8.5 + rot: -1.5707963267949 rad + type: Transform +- type: APC + uid: 253 + components: + - grid: 0 + pos: 4.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - load: 380 + type: PowerProvider +- type: poweredsmalllight + uid: 254 + components: + - grid: 0 + pos: 5,-9.5 + type: Transform - color: '#FFFFFFFF' type: PointLight - load: 40 @@ -1786,238 +1980,9 @@ entities: - 225 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- type: LightTube - uid: 225 - components: - - parent: 224 - grid: 0 - type: Transform - type: APC - uid: 226 - components: - - grid: 0 - pos: 4.5,-10.5 - rot: -1.5707963267949 rad - type: Transform - - load: 460 - type: PowerProvider -- type: APC - uid: 227 - components: - - grid: 0 - pos: -6.5,-7.5 - rot: -1.5707963267949 rad - type: Transform - - load: 120 - type: PowerProvider -- type: Wire - uid: 228 - components: - - grid: 0 - pos: -9.5,2.5 - rot: -1.5707963267949 rad - type: Transform -- type: Wire - uid: 229 - components: - - grid: 0 - pos: -9.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- type: Wire - uid: 230 - components: - - grid: 0 - pos: -8.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- type: Wire - uid: 231 - components: - - grid: 0 - pos: -7.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- type: Wire - uid: 232 - components: - - grid: 0 - pos: -6.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- type: Wire - uid: 233 - components: - - grid: 0 - pos: -5.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- type: Wire - uid: 234 - components: - - grid: 0 - pos: -4.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- type: Wire - uid: 235 - components: - - grid: 0 - pos: -3.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- type: Wire - uid: 236 - components: - - grid: 0 - pos: -2.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- type: Wire - uid: 237 - components: - - grid: 0 - pos: -1.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- type: Wire - uid: 238 - components: - - grid: 0 - pos: -0.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- type: Wire - uid: 239 - components: - - grid: 0 - pos: 0.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- type: Wire - uid: 240 - components: - - grid: 0 - pos: 1.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- type: catwalk - uid: 241 - components: - - grid: 0 - pos: 9.5,-0.5 - rot: -1.5707963267949 rad - type: Transform -- type: catwalk - uid: 242 - components: - - grid: 0 - pos: 9.5,-1.5 - rot: -1.5707963267949 rad - type: Transform -- type: catwalk - uid: 243 - components: - - grid: 0 - pos: 9.5,-2.5 - rot: -1.5707963267949 rad - type: Transform -- type: catwalk - uid: 244 - components: - - grid: 0 - pos: 9.5,-3.5 - rot: -1.5707963267949 rad - type: Transform -- type: catwalk - uid: 245 - components: - - grid: 0 - pos: 9.5,-4.5 - rot: -1.5707963267949 rad - type: Transform -- type: catwalk - uid: 246 - components: - - grid: 0 - pos: 9.5,-5.5 - rot: -1.5707963267949 rad - type: Transform -- type: catwalk - uid: 247 - components: - - grid: 0 - pos: 9.5,-6.5 - rot: -1.5707963267949 rad - type: Transform -- type: catwalk - uid: 248 - components: - - grid: 0 - pos: 9.5,-7.5 - rot: -1.5707963267949 rad - type: Transform -- type: catwalk - uid: 249 - components: - - grid: 0 - pos: 9.5,-8.5 - rot: -1.5707963267949 rad - type: Transform -- type: catwalk - uid: 250 - components: - - grid: 0 - pos: 9.5,-9.5 - rot: -1.5707963267949 rad - type: Transform -- type: catwalk - uid: 251 - components: - - grid: 0 - pos: 9.5,-10.5 - rot: -1.5707963267949 rad - type: Transform -- type: catwalk - uid: 252 - components: - - grid: 0 - pos: 9.5,-11.5 - rot: -1.5707963267949 rad - type: Transform -- type: catwalk - uid: 253 - components: - - grid: 0 - pos: 8.5,-8.5 - rot: -1.5707963267949 rad - type: Transform -- type: poweredsmalllight - uid: 254 - components: - - grid: 0 - pos: 8.5,-7.5 - rot: 3.14159265358979 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - load: 40 - type: PowerDevice - - containers: - light_bulb: - entities: - - 255 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- type: LightBulb uid: 255 components: - - parent: 254 - grid: 0 - type: Transform -- type: APC - uid: 256 - components: - grid: 0 pos: -7.5,3.5 rot: -1.5707963267949 rad @@ -2025,14 +1990,14 @@ entities: - load: 280 type: PowerProvider - type: solid_wall - uid: 257 + uid: 256 components: - grid: 0 pos: 7.5,-7.5 rot: -1.5707963267949 rad type: Transform - type: YellowToolboxItemFilled - uid: 258 + uid: 257 components: - grid: 0 pos: -0.8099712,-5.21454 @@ -2044,7 +2009,7 @@ entities: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - type: YellowToolboxItemFilled - uid: 259 + uid: 258 components: - grid: 0 pos: -0.5597038,-5.679647 @@ -2056,7 +2021,7 @@ entities: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - type: FlashlightLantern - uid: 260 + uid: 259 components: - grid: 0 pos: -1.934832,-5.154238 @@ -2068,7 +2033,7 @@ entities: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer - type: FlashlightLantern - uid: 261 + uid: 260 components: - grid: 0 pos: -2.017696,-5.71715 @@ -2080,35 +2045,35 @@ entities: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer - type: Crowbar - uid: 262 + uid: 261 components: - grid: 0 pos: -2.861032,-5.524786 rot: -1.5707963267949 rad type: Transform - type: UniformEngineering - uid: 263 + uid: 262 components: - grid: 0 pos: -0.6474335,-10.27245 rot: -1.5707963267949 rad type: Transform - type: GasMaskClothing - uid: 264 + uid: 263 components: - grid: 0 pos: -0.2880585,-10.69432 rot: -1.5707963267949 rad type: Transform - type: HazardVestClothing - uid: 265 + uid: 264 components: - grid: 0 pos: -0.9130585,-10.66307 rot: -1.5707963267949 rad type: Transform - type: UtilityBeltClothing - uid: 266 + uid: 265 components: - grid: 0 pos: -1.895102,-10.33495 @@ -2120,7 +2085,7 @@ entities: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - type: UtilityBeltClothing - uid: 267 + uid: 266 components: - grid: 0 pos: -1.770102,-10.63182 @@ -2132,7 +2097,7 @@ entities: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - type: magazine_12mm_filled - uid: 268 + uid: 267 components: - grid: 0 pos: -6.605512,7.638151 @@ -2144,7 +2109,7 @@ entities: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - type: magazine_12mm_filled - uid: 269 + uid: 268 components: - grid: 0 pos: -6.339887,7.669401 @@ -2156,7 +2121,7 @@ entities: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - type: magazine_12mm_filled - uid: 270 + uid: 269 components: - grid: 0 pos: -6.027387,7.622526 @@ -2168,7 +2133,7 @@ entities: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - type: BackpackClothing - uid: 271 + uid: 270 components: - grid: 0 pos: -5.089887,7.591276 @@ -2180,7 +2145,7 @@ entities: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - type: BackpackClothing - uid: 272 + uid: 271 components: - grid: 0 pos: -4.683637,7.606901 @@ -2192,14 +2157,14 @@ entities: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - type: BlackGloves - uid: 273 + uid: 272 components: - grid: 0 pos: -3.386762,7.466276 rot: -1.5707963267949 rad type: Transform - type: smg_c20r - uid: 274 + uid: 273 components: - grid: 0 pos: -2.524035,7.579326 @@ -2214,7 +2179,7 @@ entities: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer - type: smg_c20r - uid: 275 + uid: 274 components: - grid: 0 pos: -1.94591,7.485576 @@ -2229,315 +2194,315 @@ entities: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer - type: solid_wall - uid: 276 + uid: 275 components: - grid: 0 pos: -10.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 277 + uid: 276 components: - grid: 0 pos: -11.5,4.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 278 + uid: 277 components: - grid: 0 pos: -10.5,4.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 279 + uid: 278 components: - grid: 0 pos: -9.5,4.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 280 + uid: 279 components: - grid: 0 pos: -8.5,4.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 281 + uid: 280 components: - grid: 0 pos: -7.5,4.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 282 + uid: 281 components: - grid: 0 pos: -8.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 283 + uid: 282 components: - grid: 0 pos: -5.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 284 + uid: 283 components: - grid: 0 pos: -6.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 285 + uid: 284 components: - grid: 0 pos: -7.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 286 + uid: 285 components: - grid: 0 pos: -0.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 287 + uid: 286 components: - grid: 0 pos: 0.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 288 + uid: 287 components: - grid: 0 pos: 1.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 289 + uid: 288 components: - grid: 0 pos: 1.5,0.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 290 + uid: 289 components: - grid: 0 pos: 1.5,-3.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 291 + uid: 290 components: - grid: 0 pos: 4.5,-3.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 292 + uid: 291 components: - grid: 0 pos: 4.5,-2.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 293 + uid: 292 components: - grid: 0 pos: 4.5,-1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 294 + uid: 293 components: - grid: 0 pos: 4.5,-0.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 295 + uid: 294 components: - grid: 0 pos: 4.5,0.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 296 + uid: 295 components: - grid: 0 pos: 4.5,1.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 297 + uid: 296 components: - grid: 0 pos: 4.5,2.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 298 + uid: 297 components: - grid: 0 pos: 4.5,3.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 299 + uid: 298 components: - grid: 0 pos: 4.5,4.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 300 + uid: 299 components: - grid: 0 pos: 4.5,5.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 301 + uid: 300 components: - grid: 0 pos: 4.5,6.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 302 + uid: 301 components: - grid: 0 pos: 4.5,7.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 303 + uid: 302 components: - grid: 0 pos: 4.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 304 + uid: 303 components: - grid: 0 pos: 1.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 305 + uid: 304 components: - grid: 0 pos: 0.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 306 + uid: 305 components: - grid: 0 pos: -0.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 307 + uid: 306 components: - grid: 0 pos: -1.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 308 + uid: 307 components: - grid: 0 pos: -2.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 309 + uid: 308 components: - grid: 0 pos: -3.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 310 + uid: 309 components: - grid: 0 pos: -4.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 311 + uid: 310 components: - grid: 0 pos: -5.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 312 + uid: 311 components: - grid: 0 pos: -6.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 313 + uid: 312 components: - grid: 0 pos: -7.5,8.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 314 + uid: 313 components: - grid: 0 pos: -7.5,7.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 315 + uid: 314 components: - grid: 0 pos: -7.5,6.5 rot: -1.5707963267949 rad type: Transform - type: solid_wall - uid: 316 + uid: 315 components: - grid: 0 pos: -7.5,5.5 rot: -1.5707963267949 rad type: Transform - type: LeatherGloves - uid: 317 + uid: 316 components: - grid: 0 pos: -4.332221,4.64238 rot: -1.5707963267949 rad type: Transform - type: LeatherGloves - uid: 318 + uid: 317 components: - grid: 0 pos: -3.519721,4.64238 rot: -1.5707963267949 rad type: Transform - type: LeatherGloves - uid: 319 + uid: 318 components: - grid: 0 pos: -2.597846,4.61113 rot: -1.5707963267949 rad type: Transform - type: LedLightTube - uid: 320 + uid: 319 components: - grid: 0 pos: -3.511025,-10.35149 @@ -2545,20 +2510,20 @@ entities: type: Transform - color: '#EEEEFFFF' type: Sprite -- type: computerPowerMonitoring +- type: LightTube + uid: 320 + components: + - parent: 218 + grid: 0 + pos: 6.5,-1 + type: Transform +- type: poweredlight uid: 321 components: - grid: 0 - pos: 0.5,-5.5 + pos: -1.5,8 rot: -1.5707963267948966 rad type: Transform -- type: poweredsmalllight - uid: 322 - components: - - grid: 0 - pos: 0.5,-5.5 - rot: 1.5707963267948966 rad - type: Transform - color: '#FFFFFFFF' type: PointLight - load: 40 @@ -2566,63 +2531,51 @@ entities: - containers: light_bulb: entities: - - 323 + - 322 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- type: LightBulb +- type: LightTube + uid: 322 + components: + - parent: 321 + grid: 0 + pos: 1.5,-8 + type: Transform +- type: poweredlight uid: 323 components: - - parent: 322 - grid: 0 - pos: -0.5,5.5 + - grid: 0 + pos: 4,3.5 + rot: 3.141592653589793 rad type: Transform -- type: chairOfficeDark + - color: '#FFFFFFFF' + type: PointLight + - load: 40 + type: PowerDevice + - containers: + light_bulb: + entities: + - 324 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- type: LightTube uid: 324 components: - - grid: 0 - pos: 0.5,-6.5 - rot: 1.5707963267948966 rad + - parent: 323 + grid: 0 + pos: -4,-3.5 type: Transform -- type: chairOfficeLight +- type: wall_light uid: 325 components: - grid: 0 - pos: -3.5,-0.5 - rot: -1.5707963267948966 rad + pos: -7,-10.5 type: Transform -- type: chairOfficeLight +- type: wall_light uid: 326 components: - grid: 0 - pos: -2.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- type: chairOfficeLight - uid: 327 - components: - - grid: 0 - pos: -2.5,-2.5 - rot: 1.5707963267948966 rad - type: Transform -- type: chairOfficeLight - uid: 328 - components: - - grid: 0 - pos: -3.5,-2.5 - rot: 1.5707963267948966 rad - type: Transform -- type: stool - uid: 329 - components: - - grid: 0 - pos: -1.5,-9.5 - rot: 1.5707963267948966 rad - type: Transform -- type: stool - uid: 330 - components: - - grid: 0 - pos: -2.5,-6.5 + pos: -0.5,-14 rot: 1.5707963267948966 rad type: Transform ... diff --git a/Resources/Textures/Buildings/light_small.rsi/broken.png b/Resources/Textures/Buildings/light_small.rsi/broken.png index cb77054e031bf9bc62d15e2ed52e1401d43616e6..e0101a39dd6c55380d34c0840566d8b879bb3233 100644 GIT binary patch delta 230 zcmdnT{EcyfL_G^L0|P^Zd(K-R#aZAHS*8ylO+ zlP7Q3qI2Si+>@8Rb3P}{07@{H1o;IsI6S+N2IN$Ex;Tb-98XR-z%@g(l}F+OW16V? zA1;ZQU`dVO143eA4e_oT(u~>>k}LQ)q&!c=2e#~WEj%IEBhz%zn#=8=hQy|ZsRtzv z8m1K-2$&$Ys^x*k&X%NE6P|TE=xABSw%~MotCF?{_W=XNE37xWE|~DJ>a6JFk?7r~ a$iW~R$=}E;x$h~^84RATelF{r5}E);;!b`5 delta 432 zcmV;h0Z;z+0lou}7=H)`00020X>r~F00D(bL_t(|obB47Zo)tq2k<}3^wI<|nlv?} zt`C5?N0``4OiU2O5Ih0`1gStE_6ik!go-AcoWqfdA(jwc;G1Z!YsHeSE!VXCfA%PM z-*+FE@Lhop3W7kCQexY-*tRW7DG7o=s(jZ?(~C1{yBlJ=8-KRFjCO>PFG=i5dR$8q zyOnky=y(M*p_2&+BVR_=8ICtYy5GR@W~fsIos`6GUi#^AeO%(ShO7bC6Hx3gj7OBngJZfDzeTj$~D zr!N4&cx*MX7JnilA|fIpGG$8 z008raTNuOFw?nXaP!bUl5fKs5 ag?t0#5}zkqyw!pL0000*D@$b? z8=K%j!}cDf$v`keXTuhq6G!AO{mg#`RKZvhvbbENrzy}N#Zl8)s%i4E3r%|GsL6$H z$K?entn1#rII7gXi+z)5uz|NLe~5cqzuRpA7KZt^q>5+#6f^|7jKR~@&t;ucLK6Ty CXI(Y` delta 612 zcmV-q0-ODk0`UZp7=H)`00020X>r~F00KBkL_t(|obB2%h}uvX2k^h88I+(0E(Y4A zu2}*OZOw4oEgc#%-4JdF2kqeGSz0=m9zAc$pdb##p>#MJXqIeQ+=MQjZ#V_BI2eLA zWOyAUQV%*bCeNn#{pJwA&-ZxZ|9e0VS(e3ARb`SSF-ek`s(-4?vMiS5T@TVOj;G$B zir%2Q(>n?&)xw?a$ZR?TJXb)cy}(oTCQ&cB-2tPafG}L4(OlxrvMfGC#sToq@wBeUnv>P*)ZX7%MnzW}*s zJM#T)o)AI^A%BDrLI@%Iajyf3|0R-2lnU#b!tREW0ML5%Gj}O-qPc)!MmRnxV(tg< zTmb+OhO1Ny<0bKm>6*eC%_RU}GOpn2+mGC>KCr`N$S@;_VhNLR1)cUH&6@sw@pRU9 zWM(_^PSe?a+i5cN`gFbW_4+{?wGcuGA%qY@2;qfWh<{=AW%m1J#=C!?Tdh_BSZ9r+ zp};L*;c`(j4oyX|1YJ{Dr@g@0+pk;C#Enm95$1jX+mYGJ7ujcwnSX%Qmzn1ZI6R8r zxdIx^B_`tv3^Ur~3B5rT)7d&#{C-t{R4Zfd2YBNuSNwj;AoA8v7cQiSIUFw6+u^MkEty5~2zxU6!I*|{Bpx~4G0 yj5b^PPlw>g?h_`8rCiP!2qA*8ylO9 z^ytZxC$A_G-rpj6FuH>sD8X0~&#$=$ac*Bb=LS%!Q(v2j>CmISFtd8z| cO^*BwzGvBW6PpZKfaWrIy85}Sb4q9e03jALr~F009O`L_t(|obB2%YQr!T#__MFYamEZrb8 z3*P(SoD0sm;JpuK7Gmal9y(k~`}IYVw5j9gcp4~6a;xPc%zsDy&JX8O+t1z2?gan< z000000000fM7NXfr8QN=3^KFOw4Em7LX&Z!rtK8loz3lE-Qo9-e)w!QNEQG9002NL z+3xUvug_IgWyz9d(baMhnzsA(?Db`urKpnSZ}Iu4)>~Oz>k0eyMc=0{Z8KzvstDba zEN{T!T&g*C*C|TUrtUuhX_q|9!ykeG0002+kbVG)kVet-G-MP20000aL2aL5tGNcBdo{k+}WOndAFJlapqDa{xMv!PC{xWt~$(69DkAVs`)l delta 464 zcmV;>0WbcB0^S3V7=H)`00020X>r~F00E^*L_t(|obB47YQsPn2k?K#bP3cn5MoMP z}T-Oz@>xw9fM3N*z=eMrf9-K+(dVhp;J?eWH{U{4xRG%-R zEPRpWq1NgHmOlY)urdH;;R`Q_0RUbQW9%HD`xICi09CbFHR?ZTX&lCtg@0V}-F}FN z`wwg9qOIu$NJK9J@^m)KLy_fSqtn^GT{r3c{PYC?m`t2D#zI6yL_|bH zrWh+NlSz}iXgdIY{!**gr_<@+QoF7hxrtiYDGM8CbHCPRx!3|YrP->@%1978zkyuQ z^Zeoa+v_o(kgi9#xqYl%mx1a!2%V?IcKacK(}b$c>PcdGtNOkClzqEoHq(CLXf1S zq>YWusB;EG9+QKVcl2(hFAv80m*49Z+vr$Jjlw zOJw(~BMpiYTUwOc6Tb8{1sZU%u^DJ_K6u!~(lfF3!j1(>ZaeQ-@E-Iv)-!j~Ry%8b z%31Kvg-?A+u3LnbEnduWu=M>42kk-*ErkqLM|YtwY6lynShuhr~F00Hw!L_t(|ob8%1Zi6rwg&!3IS0F>AcIYX{ z5M@YikQ^c-Tjp+TaEKg%3{{8TB14ce;eTG*=%0>=eixAHb^Uql{?+bdG5PBmiRA zX@JbBYNZ%Z^ijqr0W52IDvFf|^~uY9l(4%VlzlNfGVKfS2g5 zJRyV-LI@#b+<&xw4E>kKh_(QYiLZ*^>vPmJA=>x>)#P&@4#m4XF4~L|K+6%59M{U2 ztQ(T8y!j!~wZuAiWrxNnPp}Vk1?b$B9U3hGR3f}-w?LaCkVMhZpUrnDZRy#3hbTJw zFl_aK76QmCJeh7VnQrd35kd$dgb+ernx|xls2Zq47=Nw33ZQDB4r#RZEx@8E$_8ox zpnN`G*=|1r0BH0pGrzRbUv=nB0BKck^Lhcy=DS+|-=D9%a3}v4J??@&1-MOWmdTu} zmvA}n@u*MRBxqGeZ;Foo2=taIYFW#Z5Qi$Gvk?T>>vb&%mh}&Ups}~WxUa#ISN`dQZ@zyBSj?v228+c zESj1IVz7k;8e>)9BHq@~!N9=Lkx}S^O#y?FT4{NCIRis^c#;ysC?Fny0uC5#<+y(W z4jl9i3=AE(f*urk2_QxquE--4{i9$M&;bZyNqdZfNE~G+Oa&@Nq$m&+!c?G$Y=vqW zrh@b!B#v4;rh3wB#s$26OxfQ1_Tu}U{Sz~tbls0>As2rFLrFwIRCwC$o6kx@K@`SE8C;1gapgw$ z5)?rOJ%Mjf5cmK-jSnCM^#(43BFG>L#M|(Jn7w2u$Xf%J! zY<#==FL({`h{szm_sc?;jpB&&?Bi9nfmEOs!UPuba)LONYbZ8fmA~*>QxtC!kEZ zT>d`}K-1hbRc8d6>}s`g_fd;5L^Bu++~>O8Zt4g)Mea)(JOj^~&*$lP7(xgkgb+dq zA%qY@2qA=!1CTqB;`FSYs!P{bmrj3NnM@{5r2<-r0V2fsNErw-H@A1`{nwXKro7FQ z@epV0^}5SXr&DJ?IoM<(CU=UTMH0HS!z)PRbLP)t-s0000lGBY(eIYLE7Lq)(3gXENX~D9nfPsk9!hd%)jKd&%HLsIbPKancdGeb<#HsYAbymF`hH+3k zU+xSVSQfO7*>p!0`Ef2vc?N2`G3vk=@W?HaUc_OV6j?3o{MNF4ulv`=-&*%4Po6ya ze*u7>Jw#@aE8>!kgKt89=$e)v!F0TiLO7Ac$-7Qg@i002ovPDHLkV1hr$^0)v1 delta 932 zcmV;V16%ya1i}Z983+ad0063Kao&+37k>kENkl1Il-2LD`M1Nd) z!HnJ5*pO#WC#12lQ5F^!WOQ^?q9~Hn(^Ea3ot>!zIC9?5&>(enb+WUwBh}T_vbwq| z?d|Pyets@*-@PwuH%*9s<^cP%V`F2|)zu|EJw56Gu2)r6X^G=lE-o(AAr=kY-QCjK z+NzG&+}xCWKCjPLwworDMF63B6@RKl>V)j!;h`GC8>WttLO_jiPbP|1 zfBE9MN@-hLTQWR6tRl_j<)sQR$H&KdPF)T8A=YrMxw%=Ur>A9PWJK@3dVl>UY5()5 zsWO}6G#QULi=qS;7Z>H=;6Rp_msM}RFB8BpVREKj=s!*?}b01|2 zL3VI(P}?nB{YI%e6{jr%Oi>1=EuuwYj0v))MPe-X5MVjSXr9MmYiny72}?^$x7tl@ z7x)u-z7)Tb>i-9M-r>0KX@8J@XD6ZbjZ&Lq1_#@{!RCm{c`|E&XE4<=KvJU6yFkpe z0NbM2RFQQ+vdX#uyTKqFu%@dnkZI$g*D%GInHl*oId$CyppokgBHdPyVk$%cYiqyz0wfDy z5f#E`+x?RyN56aU@zT1aR9t{ zdwV+}2U!MLFQ4!5X^%z(ym)A6NRuI?q^yJQn4ta~lO-`ipOG;H9?;p@sX8M}P^oe0 z3MpJ5ghf%9U@|CTG+r_BFa%&LHe-A6tHQwxBMwL4_zuS#wGj%(?e1s*0000rW)j!sjc5MxP@ zUoeBivm0qZPQIs$V~EG`dIMgh)mSj0ewl4#^@TK7KkazbIfOa!@y85}Sb4q9e08KSGtN;K2 delta 372 zcmaFLIE{IN1Sba@0|UdV%))yU6~*frJv?0;Ln>~)owYIRumexq)Wa2Do?M(9uW%tK z<9@xz0+kEmAAo#!{k;E&T9tVv52@~5@V=ROVuQ@zYj;^arM++L+q14T_W!NZnkkt{vWCDpJtmfPnl)E zvVPa8KF!(8Kc$X;{KCTwbQcW#VDHKf+OxNQ&Bb$9XYGDwJVj(rRY&agnbT&i*g0YS zi}3Rv`&WCNZnzOxH|72!){d347u(kBCo<0aE9K+ws=xQQ$uqCR+=W%nhXr@OyBBov z;HuXF?Tf-b>|@o66_kp(bjngJ*yyl9Ov1m}FL;l>tK)7Fa=$LunxxJwz`%%t4lHMw z_xkCSBX8Ddt(i2VeNo1(avrW-xzVqG-#Z%}zNRa3<7U=9=57pgKJ(s7tKFf;pM4$V N2TxZ&mvv4FO#o=Oth4|C diff --git a/Resources/Textures/Buildings/light_tube.rsi/off.png b/Resources/Textures/Buildings/light_tube.rsi/off.png index ff5f3247854fc1de17bee968eaa81704a87f3375..2ea7f9308d372dde3db57c07160a25866010be74 100644 GIT binary patch delta 245 zcmV`dQZ@zyBSj?v228+c zESj1I24R85SQWU4w{?I)MxhHf1q@1RrR87{o}|Pu3Wx`U0*+wN6OKGW(LV}C0Ucq0 zAeOYpD2T*ScEVJkVnm7pK_N^9ipW-|mSHML4?^OowPPx%NJ8S6reZ1x3r6CYVKX6l vRKY+fAQ)K$qnluYA(-T-kg5q~9GU_Es0>As2rE+(|@1RCwC$n?Xy%Fcil#2|bOTN>9D4 z_aZ2Q6Z|3yemFtDg`fyd5QR~_u9qHn8awqe`;WYmP7u4xvgH4R(zKA2_xh5&=AVv~ z#qr7MCW<0cZkk3(IgVqs3#--YS6e90Ki)^m5%l&AF?P9Js>_S1noK6Dsw#6Hg4BP( z`Qh=Y*RD(a>42grRGOydI?waLjib(ZJU$!;AT--h-Jpz+U9Z>O+k_!QBLH>K2HL9Y zx_gEqgb+dqA%qY@2qAC6;T?c}!NPA8D3|pPju0?<-%JLRPU>%Cok+a>d zvt1xWd7hAcPlM=pauG`3ux-{D95Be>z~+eUdD1tKXJD$u0Ey!$^e&(=Enwdc4w))^ z2T4}13t%^xq>XJC@Y;Agy?%a~{d56I8;5R$Iz;UB+C%^bzwNZqXYBMEwrh2X0NK;$ zJNDkk`R5mB0Xl#VpabXtI)DzK1Ly!cAlUT)`y(i{k0Ij#EDMGDF@*JiE&}8SC*QGu z1OvTQVXO{?uqcXUz-|zP(Mgi*^k3ki0$X7-Y!7}G2woT=Byhd~JNx88G5=TR00000 LNkvXXu0mjfUETLI diff --git a/Resources/Textures/Buildings/light_tube.rsi/on.png b/Resources/Textures/Buildings/light_tube.rsi/on.png index b8011ba8fe379537a401594908edb0fa3bd6c2f8..dd59607b2122e47a676c92965eeed4ce93789d4c 100644 GIT binary patch delta 304 zcmdnbdWmU*1SbnK0|P^Zd(PX5isJPQS^+*Gu0VnRV4!bgY-(ZY?B*UA5?WMLG7JTM!GQ(#jGVvX-Z=VOeByBZuOY!|!hXymNN%&?l!vpLVjH75Vi=Xp zDj9b$B@4UeaJ9@y46As1XkEfrA&t|&Mao#Sw>v~WoO?s`j7ICGMfu6$8_Hj=V5-tq zkchmueS>zy=GGf5&ITt1eYUX3OtwAPzopr061^27zqdl00020X>s0>As2rFaY;l$RCwC$n?Y+DK@`W|$l|5yN$5oq z)aD#$X=w^x(vp4+zd%VsAo&a_gp%(Qa`4cUgcbyEt%|9af_PAK@v`;*$SkX^fencn zcK$zDc3j-I`+qw#`)1y(kr_lyAekS77u?| zv4g=tPCg$?d3{~JoSw@5?rtK(_MC37C!hBA=j^(~oeqHb(%PDo%Vpgs0p~o+=heod zU1uGDsyVBwA&G2Q0mrFbrQj=!J~=B@SYi zh|fRD#f%vXA%qY@2qAmLvrL_h?TU;x&Yb0nxPG5+J)d4y`tm(tDHmvMI{G4Vmu)^2^p|VDp?{_|G zl>oQ Date: Tue, 13 Aug 2019 12:23:38 +0200 Subject: [PATCH 13/24] Add more logging to the launcher. --- SS14.Launcher/Program.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SS14.Launcher/Program.cs b/SS14.Launcher/Program.cs index deb6056020..7c693ab4dc 100644 --- a/SS14.Launcher/Program.cs +++ b/SS14.Launcher/Program.cs @@ -186,6 +186,7 @@ namespace SS14.Launcher _interface.StatusLabel.Text = _loc.GetString("Extracting update.."); _interface.ProgressBarVisible = false; + Logger.InfoS("launcher", "Extracting: '{0}' to '{1}'", tmpFile, binPath); await Task.Run(() => { using (var file = File.OpenRead(tmpFile)) @@ -226,7 +227,7 @@ namespace SS14.Launcher $"{JenkinsBaseUrl}/job/{Uri.EscapeUriString(JenkinsJobName)}/{buildNumber}/artifact/release/{Uri.EscapeUriString(fileName)}"); var tmpFile = Path.GetTempFileName(); - Logger.InfoS("launcher", tmpFile); + Logger.InfoS("launcher", "temp download file path: {0}", tmpFile); await _httpClient.DownloadToFile(artifactUri, tmpFile, f => _taskManager.RunOnMainThread(() => { _interface.ProgressBarVisible = true; From 72ba0d9458462e1910a8608f55db505aa58ddbfa Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Tue, 13 Aug 2019 23:43:44 +0200 Subject: [PATCH 14/24] Don't let bullets fly forever. Give them 10 seconds until deleted. --- .../Projectiles/ProjectileComponent.cs | 2 ++ .../EntitySystems/ProjectileSystem.cs | 34 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 Content.Server/GameObjects/EntitySystems/ProjectileSystem.cs diff --git a/Content.Server/GameObjects/Components/Projectiles/ProjectileComponent.cs b/Content.Server/GameObjects/Components/Projectiles/ProjectileComponent.cs index 48051aa31d..d2a36ae105 100644 --- a/Content.Server/GameObjects/Components/Projectiles/ProjectileComponent.cs +++ b/Content.Server/GameObjects/Components/Projectiles/ProjectileComponent.cs @@ -20,6 +20,8 @@ namespace Content.Server.GameObjects.Components.Projectiles public Dictionary damages = new Dictionary(); + public float TimeLeft { get; set; } = 10; + /// /// Function that makes the collision of this object ignore a specific entity so we don't collide with ourselves /// diff --git a/Content.Server/GameObjects/EntitySystems/ProjectileSystem.cs b/Content.Server/GameObjects/EntitySystems/ProjectileSystem.cs new file mode 100644 index 0000000000..a1e4713aa5 --- /dev/null +++ b/Content.Server/GameObjects/EntitySystems/ProjectileSystem.cs @@ -0,0 +1,34 @@ +using Content.Server.GameObjects.Components.Projectiles; +using JetBrains.Annotations; +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Systems; + +namespace Content.Server.GameObjects.EntitySystems +{ + [UsedImplicitly] + internal sealed class ProjectileSystem : EntitySystem + { + public override void Initialize() + { + base.Initialize(); + + EntityQuery = new TypeEntityQuery(typeof(ProjectileComponent)); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + foreach (var entity in RelevantEntities) + { + var component = entity.GetComponent(); + component.TimeLeft -= frameTime; + + if (component.TimeLeft <= 0) + { + entity.Delete(); + } + } + } + } +} From 3c476d2b4033fc89ed2d735da9af8ec9a8fe8a7f Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Tue, 13 Aug 2019 23:56:15 +0200 Subject: [PATCH 15/24] Update submodule. --- RobustToolbox | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RobustToolbox b/RobustToolbox index 71fd6d427c..95f9126d12 160000 --- a/RobustToolbox +++ b/RobustToolbox @@ -1 +1 @@ -Subproject commit 71fd6d427c71f4989810ac2851a8261a6f387812 +Subproject commit 95f9126d12e071b233ae7154c4228e1d6ca085b0 From 88920696f3d0430da729bbcae33bd180f9f7a6d9 Mon Sep 17 00:00:00 2001 From: DamianX Date: Wed, 14 Aug 2019 10:49:28 +0200 Subject: [PATCH 16/24] 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 zcmZuzd00~E7rv;8<$`0YTU1U?i<6e6B?_80P31&cmTOp+ZLT?LD&QVDrDkbaCT^uA z2`U-3c%d;f(?l~Ra}3uM+?7ob_+6akndh0`ANStxp8K8e+;h(RzTcO6=-^)6B}PjC z0MOm{vx^(_WIpy_H+7qu5J6)dLVm~T5fS4d^D zN(O^;>G^eqf*2SS)c5J}k)N@_YJft-e!;wgmOG0(fQo5U%I#6~(jEvL(9Zm`T(sL6~ z2n2T+;!iL=ETq!Lt01-2wgF)R@OztvE>VYWpGnb6L?F>MpmMycH*LZNvwtMFPo@V% zG#2ZDJlqnhto^w>Nk0^4@c5!-2(kT*e{KzahkA-sT;k`s;2aeh~OHM0xjs8e5E#%fr8UeyByXO0S_U5H&r>IG#(pC;9%1_=G z-e+vq6L<52RC-NJd!gwk{hBpOjJ5e~Wc2EJ@FMUjcP4?ts_bS>SeU!9w*Mif9Jsl= zFy1!gt6y}q;jLS@fP2Pif&pQ~o9$fjR+h_qdO@UU`Xx7d9{^;(S7_rOx-F(qDAY4) z$;4O0tekH$jP|EoP0?4im-Jsk9I@C8f=n(Gd*E;((x}#qt_=Nlyb@L+eik`7&S$=) zi!sAUWap0Th;lrVGGech-luP8E(rGEz9)Hzm3#mSu-BbbtV_Z*puDH>} z>r!f+?~KxoKUJyKR24d2B6jllqA1otYf*-H?WG=`p0Dp%;->f=n|*3R3k%aqExS3{ z0eB8@2s`wng~jJ4zJu8*&)Wp=+HJY6=7%?BTkYDF>as53!-o$Q4DiKn+%wt<(zL2x zU+yGR4I4()f02QA94~B-%}3A}DTp+6Lt?|4b(yiux*6te2bH!6+c3 z2}YBgFKgRMksml{Al+nFVnYUUV3b3XNT$uGKF<@`E!GEeo%4y-pa>Sq`?y|Kd~S4f z)Wh4``JvnE&h+3^w0s2mQ~`qN5W_fCd3mOIX@2ly8QzrBYd#rgLiAT>&7R1ru#cY6 z0LCs_0XalsS>$F(ahRZ(L>wUYz;3XIGaFBr(R37pAhvd9rQp}DG-KOP#e8&NU|>OM zDcsrFnYz;QcLNemtTQ%ewdXT^O}W(0nYk4csu{XExh2^Y4^j5=R4*)^ue}t7LVfP( z35xllU*xSz2%m2~uqHx3=1$7c-0U!wQFv_A^6w2&S^0NoW1pTtEkzAD%$DtBv&toQ z&RiYt4gimE1l|Ssa;2ttMh=i+VjV=SKifppyKNju>XJ3`d5YvLx^($m|qWB zmUoiGU|(6scUQtrEFCbuU)G_$|W1x4%Yg3V6LSVH=EI6UkxD~qFlWffSVE*!Fd*nc z#-j;WGVgsJrMH(NOW6uQz(Y;fN%#*Ik{?4j;-0FEdu0EASg6jTp;7ww2Hn0$h%3Hm znR@HWagttqB%|QJ`G*w^YY1!%vj!YG4yKM*Q^5 zLi^p&(=p|r+lKh1@^D-2CMboB32{k6ErT@?$bmZ7>I4!r$>LXm&r#YYGP4Slag1hX zl`^(^e^o;;YQ9_7^hU{?Y8tW9Bl(PHO{Dd(7kC*Hgj^;{a@;!xPY~pasuA&SkCPi4 z_kC}$I50T)O0Cd6wn)N=iG=~$+S;NjpDo7;D~fE^D}%p=y)A#}VX-csZD!cU9-ak3 z9A19cxk69jzV>`xqxhrGQZVW1JcBquTN{>E__C^GQA`8(32#(`*O9Ao8J+blDWIC z=2PMHFr_j#E1i$%bpSe$TyG=ij)dve8v7c8OohCp`HG|pWBlSUT_6G|+sN^JB4}e$ z;2?cVI>Ta*K@7i6HrMj#)T0Xy!wHU<7nU300RVGjR6pq{#lHGCFLtcWM~9(yj6KfF zN4)?#ajYD+;|Cr+SBOT*Tc+2)-2wDJVjpCN<5Q;z`uH43UZcpC8x?G|#buE4Mb5+H z3seMe*a3Xs2{8gig{`SnQE|FfCR!>^`;$2zZRL_hc@#DL#AjaiafVHbiD2Gpn*!nI#;G>|`Zdh>*Rq$&Qee701ZlR7y6-NVYhK z)IAJ6M?UH9vLzh5WpmbMD@ahBr<1cF*k^`6lcVT@2uh@ zW>j={vqtSv-+wnStT!+mG=6JXJE$wCEz-?@Gt~V$aP$u!5?zAh$#QZ$KKaI=#5iB> z=|*;CwLxRI5%$mL(b2YCgA&78*TnKI13%dA18sjqQcLW6ZCpn<}&TaiV|ULV6*BL?JLs+Wk#Cr-J^^kB+uu zRhK+HJ*#YnNEI-}BNn4M!>0edZBw!rBC(mU8ST$>*y#1gF8-(cuP^h zbssIiZ(pU+{)EH5-xIZz0p9QIJGEqnilR^-2?R80K(SDV=s>8#kTIe^i`Un5yv#vN zx2{Jo3n%V4HfUcVe8!(@OrW2j>xDF6#7#DMj})(S4Q2+m$fV1A6>4J#p;D(w$1>ro)F-EHH=_3_$xf4tMZt@rmk2kO-8C;g8c4Nx)~GtSV<vOen0sbhvbTJBp4QE$#Ez@!mw+?|>rgOg%N>y2jo{lKi~hLO?mt<}|44g4*m z$6+EEbK%tK#o6yJk*{(4|15(BQFp+-u6@$at}&r*+Mw&lkCe5E`uK!|o3QW8UrUU- zWI9U5_nfC!+@uGs0+jSBGPyn#9iA-3U&INV=T8&JokDL#L_{bOC`*k46Omn^btjSz zgR`tGe}0ifbfFm;7)aa9CrEhJI7gjoWPq>Q!@-kO zGM5R}7>z0;5R^%#KZl(bFs)07J^hkm=Jk_M)yOT}G0GoeElY>_8p$rRH*GJ}InN!X z<+zqzQ}b$m-g4}Ny%GAEyb$h^UcqI@p=9M)x0O(CSyJDNqrxpJQ=UhzSEy>an=cPb zoSBQ}kWEeGR61r9cuLT0`bet0qDR_KiRquY*IRjogf3nzVAn|Qzx9$B=v!Ys79)?w zwI5I;`UD3LwSSpP`qj#Ei6!N#tkTO88XFta<$UX^cn~}5Q=H)s6#b*q1!@wP!~FVMvbniAv%C891e+wCx3_oY`}ZZr z`!;!S79gFS$4gB4=+!B1a&L*8m1|VW*v!q%)sW~sNZc7M6QM6JuP(K9E4s8}{6Yn)>?qq$K4hA1la)y1K$bnGJsD z{rwx)##xf4mX<&&MxpGlcAh&+CmX!?3W|zUZC?`K5J>{R&wkJmrF-dhZ?C3^h{)i| zpLqseEnWB>x(A)cMwW11FGYo%oczq>vlbb2wbLyhjlzBOJp(hNH{Y<|e19c7-NP0= zeY?GKfU%z;AR9OoQcQ4f+z$8M5z8E8=BsZPxCi)zBX?>x-K8@s&M-B#9P51J=ADmi zYin!Ky+x(oh%oSvNSKF!4U{`s>d;&u@%TfxZ^AsQ)zL9Is`Mh_bN~3_J{%ItFC$9L z8dCjnbDY;7PF|SX``laDUBHjS;cP|@#)hwzx`z%1yxO6US5UVA^i|92P~JR_g5aICMC0orE0@g z+x9J_kG#BmZZE2CVRUbEw4H$JzK3{sGIifParxWZd&)g@f4mxQ`+2zM|Ghi1ejnNq zc5x||R#r-iiqE>`VFC>CmG^kSaotE;MVoj)J+urD>yTewq{ znRik1_1{-eY1|>PjO~lh5qtXM!E0}|W_a5tJ zx$M=CCc0lTiy|zzU+MbXP*PHIULNKS3!)=Eeph z7`J^Rl;$Ke^DzZGJHClJ_w$mHOaa^)Nss3{Pu}&(&)X^)C>KMB9rfSo2wO*^pXcVD zhrP0V_)x?L^Y~Lk!}55oDC7knKpz4oH8JpFGfPXV+S)W{&z==9`}7Kj^HGjsyA;96 zz|cP56|bhQP8uBd<-VdC1qH>q^XFl=xy8j9{QdnAhNX9!E3JCYNcnN+Zc5{IXZm)8`I6de^y7su8Y_XU%06GD&YBZ@|l?#;yMr} z^-m(NJZM)vV3TqQzG|<&`fh%swY8N*(g$-HF*!Lo?A;nlOVKnk5-*Ixor3p%otu02 zqXYBeK$c2+o$f5IC$_ts8D)at{fTyjlh|W> z44!QeOuMm=<|N{}py}Y~c!`(S96+k_`atScs(?&cZx`5nV^{S(0}++VEkFU8z5!Y|P;tIcD$lTnlli7uGev$L~Im(3AaEcO$2A#HePxYl)%N%Aq5t*x!w(jW=E z6ufgE)NW>ZzfbpZm8UXX%)FNK`Ko<~v4{JAa-F6cO=?}9_aygtlYdKqb$u4{x9sG! ziFiNAU~RFUKy&Sgp|IlSFXKHGiLdCRPF-v}Y72`C3vrp5Q4tYTt3RuGE?o+HZ#{5| zojtO;T0*#C=hTgm6K92lXfm`_EG;iUY8TsQb-@r1$9m&|kgV5E)5JtZu1a)VYO1=v z{u#(2aYqrb?TU(u!Ox!$y?db29?dzxljU^B?-k-;jK} zh(e2;9dO%MrD@86nm zN#1*FZBtX6PEJlxr&Vs=Bx99$L}rf1VQ~jj1jBh;&<2_@Xmbnw@#|#yN38F`t`&rX zW|rK9C89{nZ>rHZ|JNOjWFa*CHCpb578X!_em?j2gqoTARvZ0#?I_ahw(j;C)f^Ll zH-v-6ctD8-g_$9B%KEQg-R~ZBFkQJ%=GBnNF7xEF_pSpeDJkM?T?DmnOYku^$;SvJ z5((GY9zxB^B;}GP;0H;gFHORF)p#youZ2n&as8cI>kvW4Bbad5!Raq>raZwD_xc11 zCs%HW+8iY(bSLt|QZx9C%DzYue}J9W{YCO>|HM^vG8IBPgT{^7eCSLm52di3KUoRt zn0!wstW~`X);e<|L6X^6=Rcsa`0RGWr%yGHXGoiyn}b6_L_F3^K7IOxK_?^g&d~zA zAO>Ee@4@WK3RObXWDk08Y3PQR-|XjOAvEmWKi*q!Zf%`|TwGCcxy-CVJxlJo=WiNz z=?(nB`gXs}IsgXjfImLB7hC=eP?U|Eli5#PPqHwpsryQtunPpX;6z|28rqoCJld27 zj~RV!&!~O$yEA-#(AwqjoX<|iW!b!u<^KS{Z53pl+okh7OtdXZt2D7JXzVF(n;Vyw z2h6f?wj%{3*I6p+>t&F>f9MBf_tL*$;5&mSzrS0!OesY$bS(s3CTHU0jQ;T9D&)+> zql^c8>(PcKi6?kS{0N60lb(z0u*S}|2uAvu2qRQcMo0IASxVf@Z)iRFnK18&Vi&km zf#BriBt3E@|FA$OOIuZy5)Nfj8-=7l{+dRTz}c%;69)%x;rILr$>dZF70z?YrKP2L zo(t%ndN8dD|w zJVaEo8Oj^A&#@etQVuub_xpiYvfkn&g*w)KsaJQFM?#@~kN#T}#I}{L>c=`RgcEZkx4l`70NEe?7_yYhZGYbpt(eij+!NC-9M;38$@qo*h z896zf#D@7pr}8xz$0sK4Hu^}xAKbiob9!-+cw~Q8J1xSwXOnh&0g1KJ?knGMDk_M% z==&YQ#Wrta0-i4`Keki3js3xrh5XbLKM?xIB}9^2Yt}WTamT{G@*V z)BS>Mlg3v;kN4J0qc~*wr~}rfP+8N{<}IzQcdKkpYHMo~TcZF-f+W}Dpa>+K>u`EX zPxfNWvzM3Iem?JH6J@-SJTdYB|L0(d=nv}1G#cGjWjk^q+31}zg7W<-W@hFS%p$>$ zChDBG7qpI^U}}PLWVH=QPE}KLzU4Vp>Ah+ix`#4Jg7-p7O86}-EXc^oE$r@iRtDq ze>~kpa+HQmb$znoZiCl{DjM_lm&^_mb%|xB_39b{K!o*0vPxKP_o(9nS+#pu8Xu|i zp&sJ+js$2Io=ze?az~#Xp>WsVE!#v0AK%S5O7enSN>@*Bb9eV52ynS>uIh2<36cdxGxj7f$x)Us7 zl>GesA02+Q0MwNNRQ3L0UrT>~l*HuI8|s$2`#2+O`pg`Czdu;|qllqIx9)^Xn%)|! z&$P7Mr-yR;-G4CV z^IYDrIq~p)7&VLU^Kf>yfV4&|H~`Y$0h(=TX+h-uA(>4yGdYd841h{03aM6%`?blx zO7a5vc!<$d-*i7WBC_JjM%%ACC@c<>pHiMvF^W9-eP^LBO$Ay5Kxx^)u;u0F4^>)e zK>T&TIC;MNs-G+N{*xI1c84{!iOnD_bYJLP9=jk>zn zuZu>WR2z8*x$@dLV7gAy(FGJ1@<7A^?qGl#OT#9KFyHZkWJiR>FJ4f_#l_|2e{#V{ zXGB3S28`wr3YrAN3_;VnGj9zw9z7D`(qwETLNq_9e5H5ZwG>^<(OsM}AzoX_RZ7f- zzi$-~fPhyHh>WD}@4rs3@~)Yf?Hqo7jD#CE3u$h)Ey8ne!lTx0IZj{rmXN%lAT?wf z=o?g^aq(QMT|~T+aN=MUcQF4_bUR(z{W#Qw^YWzmQOIM(xYW&+i7b=99h|?<@{!JS zX@wnKoTfnHw)Yz4s~bGfZ#amD2CRH*CECf3uHyE=zwKCL|G&?Y_)Q|F4&9nluhZgM zRAgl2Z7tOs%Wl$D#)5{1hS1->9$D_}>*Kz1<@UR|>USTTCMQqXuXJ}5i?PUJvC=M_ z^t@j9RR=+vZ@tH5es*J@D|xxNR9PP(-4E?cp9UrsjG(6i=eAKd4FkeukBm zwfF)vrByFf0(vRJ(4zLpoBXTfN`0FGLM3AF9ae3vRvY2)f1zt(Wcn zw7wuQYNa->wnl#)se40Tas&tD4g~rt8=LbBMVCiKA1|99qtVVo4sdl`ilMUBj@#pX z9?ER2fZr>>x3_Cj^Qx)m5TEyTL?|Y$i!&u2^Jf(KeDqo=#s}#gLd&VW$RN}Fj-0kE z-*rEg!fW*i8@s7pZ}Rm>UHm-P_fy_pUPMY^W~hukN~`HzT(@fU5qUnoaDa)Vfm)+b zp0Gezl%f+dib8~agEG~8cKs+-8nJ1%q(yNEJ#0jd|OE#&v<&naF`_`cM z??r$7_yHUcv04K;8x|3vH;;?BlzYGHN^3jP@P0PkUTjZ!>1IT?T0ePxL6x1?aUC6< z;SOUP?fEo@dvv$fDc&Q z_5exqQ$>^D(~OKAkOU~HsoN$eGa(`N%sTz3eE$9W9U$`aMz3AFhOjtn&bbkqXH{EV zTntq&5~>j*N#Jfv?0FT-O~snjMKqfD(ug<_Hm=sEX|uEUx3;$UaI6bk?ChnQ;`qRV z8@6#gXKV#+q|e0Z43=h`e=A9zd0nSzD90`F&G3|bGEGw6)R5YM>zg}t_Cf@UkPvMS zTO6Q*6P$9)Wrq=lI`xAo8P|9%k{od;{62pl`>-lT??!0U)y2`@4|9)pcXh>baAD#{ z^Hu7ke1wIC+1S}H@$sF5XrE~f6@|VS_!aK24fkpupADs9p9S4lf6F8!zh-`m+ThL|N=hTo*3cR6#4ff* ztu9%QAMKp1to)9rSy?p{M{<;9Nm_l;8zjHe?hL;R5|r{3^xXYny}Y!;E-9J#XnOjl zO5yrbc%-Y#Uaf=X<9CTmQ!jgG7SSuJnD;RYG}q}a|30QF@&iNF)iavX2IQ6gf{qy@ z$Fd71h=TSZbU!E9r4vArfqG5s@&UWXZ>^S_*0;a9@_^mI13YlC(l z=+}5cktP@13OVPoOjrFNENxlgzg(^ju7M64q!cck#s9~>fbPJ6@ol699q(;}NK^ri zWs0=QY0B))o%3eJ-ESc7k`uKH=b-((=CwmCk#d;nBiC=-AReiWjSch9FHUNviiKs! zc%0(k(7t}16q;Ib7n@jboKqwAB2>K3-@YY55iTB!F1q{vA<5u-Yn>=Isg|Xo+{j6% zqDA?=*d#;2_ZnpwL6V$Ji7uJ5ClG;R8`d?Em+9`XB=n+Xsw-e4UDHWzlen4Y=OxKo z+%3#2&QCSJKP~CGb)jES*J_(zm!FoO16Q1wxoBzF=&ObK`ilgh>DuT=N7AkrN!`pg#e)%NR)6GEw$i{RcHw19NHf9A$ z*k|N&OX)cpn2>M=a(ysVO91`j^&ZiX}~BGZWm6@ zLJlW3W?XG9+LS-|{eD;+YC`F4x*B-oe~dl_t-p{eZ^Oxy&|Iunn8z>QiiM^CZ1w@t>4GwQ_AChQ9O|yZX%DqVIy=8~FUX@E94j|jwg04~p6m7d z5?7f1wr>`sv&(3m%!C9>H#9{K&#fnH*=G-0>+9;&KWzT-l9hS#+ZmV7*o0I`Hk=E+NHR`JU&^Qw1o0HaeSoP@qko&NI=TcNVaVAU2*Kio7$q${`= zc%AWR)k}@vPZw$U`8|vJ=@I_;QEa%LtHrgZicMDaLN%xWaX26L>UEng;lZwjpAzq~ zv%l}?PxTxIJ8Ej3#H)KlW_#6EzRQ&@xg_y)!yL{?FAD!h*bg`$={;*{Zo)(30j_j)yc>rRN5`!aHQf3dFp@VD)@7Fo@K=rx78}W5v$?hlSlHn?t$uwe{{8)35bzWmeG*els}jEZZnm-k<8$&rW&lum zFka&fgwpG;cKHKVR#x17+d{}jlkhblg9YwZ-aOf8B72FrvmWd8uKYQJOU`>{@4ieJ zr3x<~mOd1VdC)!d`X@cIHUvu; zKwjVdN*FclAST66vB6!?&+1DsCC4=aE56;Dg15GP5l6IbjCv^*mqQ z#!lO4VbJXemNfag9O!5$DJiGx*Bc*9e)1%ebwFwnZ=RX|p*sTDjn+_3Ki*Y9As4i$ zyU{$*MmbH%5d{utg44tuNrS&W$;rw2+|e-tIxGTO-t((GWqL6^M(TV>IpSWJHF}nP zyE9(F3?Q<*Gdc*iMLilkU0r;YCz|E|xkJ$$9^hU`vQ!jahIP|u*m`e&8wx;&>qt@0rfv>+$`-5iu(eY3l$7$tF?=y>@$cmOzJ^~5*rMP7S6L{%R>$~pCg%RF~ig=i|c zvdxa=V*fSP0c{0E*%z0RjDV<*qWyJD^jy*ch%D{j~b z>MAkJV%`MWZHoc8iQqC`LuY)pHCt!@az{Z|$1*lutCrob(KmpoPM3Xk?>~&a;T58M z8$X5Lm53)dqW;q>I`DXHT&j5OQydO%>+I^PpwxKM*NJ)$fWH^Hxs|-M)Ec3$2d?CE zS6A0O4Y(46zDUIjEr6RwWZKRsp{xRxY&w^3jaZTZl5YqIW6Kc-pPNe z``phT6Wry$UG4|9(@xJiX#Mh~&X9ILcl9d0goMP{M@J1q!{X@52S8IQCOF~{KYmEp zx!3lA)OCzquQ^I#`(cZLv6`P@K~m<#qj$C=7Z-Z5Jn6m}LjJWq^W2Ab))=*tldmyd zr%PK3jgL>9^||dK>lc7DqYG4ErCt7W8`GkDmeOt2CuL{5JCgv{=mL0v@5mrjV+`nZ zs#;nG3G1t?T3%jt^It60^$Ij+dW2C4fdO$u`R~4y6LQAb%h|D$2)4PhFHC{Wqlnb) zZf#A?AW-N)C3BOLxMGxp0vwI+#mCNt09CA0y+2qK8*vJ`y&dGQ8J+CsG*ai*kfV$L zeOJo3%cc0DZeUi*TXeN+G}ENTJlj(z)=Lp5^q?V6I55h%8vnGmD z=ykluL@l$Az?bBbp2khi(Y!T(x9+jy_;9Sx4XcOtJ=iiMBNyy4GfNac^+vtnXnwbX zdl$+FD>86x`vj88eEKuhSFd&tx7vqmfoN&*0WRTu`!1t-(To*db|7`C4pQ zp;;#H9kF1z<2{x+BNqiBWP|~+Y{O2coA%f`oN(6uOMr6^-VoJJuJjT z9@ni=+|rT_FkXgl5tfqL*=LBa30;v6d9Y>xcW<{z-EqvWTVnr7;pFJ__-~;p z0A00QTyGraKxbNae)J^y%Rzn*_36{6yLx*QIKCPjJo$L7bE(t5yrI3_-((Ib?Kwqd zm0ZWydf!Am{)`}$e^xme{W@zSgi> zB_Aw0S(mQJ-cMQiC{aTXR50D%-rA~hUr9PcW*6Zkb~NTdwP)R#eCL;QbzTX9A^i|h zjjAG1XH(V^!%xi}&*M+b$jInQRQ@?XMH%@Bf>2&tm1c%f0=?}yFvIz`R8;@8? zb!vyVX0K;wiP71kwd6Jp8JgBMi}{Z zW%r%u;vD~6zl7~E;fJu%hXtoVlWY$)*xx|rV#+ct^#+`D(rmMt4x7bHzX z&FbCcm)SPrEiYew6+5R~&Y|^kO-~CO&)TnISWwC)xG21ka)LBYQw+b&xZT-3)V)AR zxpOnEFxVDVsi>g;qa6iRVCeMgI-2m6U{D8IFd~^l~9LkYoB-3i|Z-BOqo#hrd>D``D6_xO|q0? zof)h9487IUcW5Mv01WsNa_SG9i!0&lJVcB}|1B2`dI4Y3H2_3*y9OlE6e!fq=W^ST z;wL*VQvz7(1nvurPFMfk|62U-`$7RTZstGkA)L)G|FK|%9C^8$q=?$zt5yG&o^4LZ zzssluM(v+v*nF?BP%dtA!B{QgOIkgiJP}tXPihsG*+a7XX=_K_=6ej3+C@@dzt^E( zFc~BAG0Fts!de}>FOsILL_c~(X=(R{R#WF>k`|drGV=DEus78$1G<}?$CVtNqvu`F|_2b6SA0;`BtBgb*gNK^PP!4kvp-$sR zc)LgjZP%v9HERk*9B?7Swrhi5#E)exXxEwqgyXtOwp1D8JvFudguSr|zcp?|gK{`` z>qoKNWm%G{6qOFef6f)rvyJ*!hh%6NIyLg$S|Y$jQm+(gd9Hxx%QBPE-1lSmNs-iIzQ7(89p}=TDBR z5=ljE*N&okq#;P>K#zmwUKA@|XL0V<=Nv!ijv}5RhIg`N#6!XqTrl@V2A1aql_Ozq zVl3$B7|FtjXQ%60!BMZ924V^q*7!r6UQz1DBP?H0!nwFTS1y1^q$YL2Ksa?{tbzjA z{FEY5B7Q%(Zt3|wceSgHuA0C2#etipb6bVc6){#FQ3zn3!_rO64(>yV-AUkX9(0Kb?3|r%?Bia1n`F(oTh?gv=95xsbPGU6_Ee(y|C(5b)9)3*fwZ|gvjJ0g7H#FDqp1QObUTabr83!~; zw*6v{n~jqO)K=xlsas<$J=f3==-6T;zp?X`wNB|2K<{rpi>9`0qerx%-Y@qH>H_ zO@aY@3{7)T?(N^7^mp7C5f#hJVq|%r$li+`y^KlT6!(Y=mvn91vU;h|9^GpeiL?(tC5_KkHJs;Uw#d0m}_|lnT}TY$FjCtWY+} zkSOhe%zS={z8O%XMu58H!~Sz6H@RBdZhS?Lsv~SvA=PzN@Z93WVdRf5k6~SEz5HoK zt8_h3;us>5`*WyC4ucAkxsD055mH1a>&~yQ5pdp&m;y{pOo&_`a89~H0ZfQqG(3UW zwDt8xLa%ll?4DSlonjLc+y1PKM!JyveZu|b0gwm{I(0NP6ZjCxZ)r?U`@Q{xUmb@S(A!&DIcVdK4W|eQSpbW+R*8d7b{TePXy~FZ$xZoyu?3*O ze&z`WEK%J0>2swT^_va#w9P0SxsIRzJ94!@r@^Vf@Z*}SHhu{nka*b0XYht4_t$^7 zCg=qPM2`LII4F1hZ&q=bAd4LS_hH5(3R3uL;K)~Lc^rj5}kDVy^JHeFwuBvK2&8g7>WDv0a#%E?~!*~X$Sf$1v)Hk=0 zdd0Yqj`GW=Z++S_LhG1`QwE6OmtMb_O_R1=*!thv${C5aa!RSq|36oGSghGLxXOuh zH${RP{6Sp zxZOLn3J!w?*m!U%qzXv$j&hpn8{opdjxB6}IrOocTV7Go3z+QyAl47`?W?QyN&3v5 zGcC`FZwO~0K0f{ico`uKFUn6nor#gc0Syf98a1`+^z#5fmdB+fC5b*m2L}OA|MEdT zK!CgE`nx$J-N>-1T6W1KwfE&zepzLME$^t(@1MUIw4YgQdZoyn+G|fbIeU0+LUDznYJHygGIj2<+Ahi`I?3y~V{We>iDZ z!-+n0n1*7M&bT!-2uB7U=Li7S^2qe^auBxe-_?tOd-=o@qn_8&gnU%q1qqJ}+9 zg)?my?mb9xy&fb*Yl1UFjaX>Equ9eu{!iqCHezs>H53&Djv26D`hh+fq+kleDgSS- z^r|ns=q(Z=9SE#u*xR>)Fd_psqQ0fW|3!!{UlH=Sd-bB2y; zWm#O)v4EhU zBS7Up+*_M?$tiDkrIGC`BT7fYH)9*gQ81@?H2XOPZLuhR1#cXuCpc)&b;$t8QmWV5 zilU+zFi_9zWGUxfabYEIj!h5`!O!zYPC{}cx?X|TChb;f9h?8JT8Q2Ms|!H92~F>-I(}$#>VP%2oQk5YZz%(5_N)NS5rGOVTM(m z21T5PGW}4F!lx1wgy)tej3I37?mom}Ha{Ki{zMRodOMsvZX-xP`#KE)E`glu!iC_L zmg~P)S3$CDgHb-XNTAmvP$+pQI>f;X@UMwK8mDZ+VYjh+D8k!LY?bTJ7OLJzVb4Rk1pN`Fzv%CC+}U>80Gq!X9SiC#>NhX3 zLlbwwl$Di%Abf&Odmi{Y$PX8Q7N>h{4;(bftIHOo6f~6d&e8uE+%31~W@lBQgsqN! z@Y(9(@!4pmKz!N=yhW!guuIvpL;zz92?jG4eYgI}Tev}9F(gvl+{a;B^?;M%!W2dH z69(nT9C55X{$bbGwCRbCK=Bs$KzoUq?@o_@#aX@G^kA!+pXX*eEahfbKQ5NhNLf$Q zf`4$mtLBO0&cn?}(txM*5*=A4<3#R?*A?@6o|w~!_I${XM7spcV$7n^+*waw5UT}H&^JdCBj@!cRiI?A!Jv2Ug#(w6B`YH$E-S+hx)dFf^wQ0wdSTKhln;gIO zUTYi@41nJB?lwtlV>T?ny8Q0r$A^$6ho|oYd>FF(pqz+=iRJ(J+->x8wb!r`D%hj$ z>MP+{ndB)_UM8kotz1KI#j*YccVc{yq1HUAjTBK@TzdAO-c*ZYMo+_tB(J7aJK>l% z&8@tXHHP09PW;YaynY`dM>c@iW$y4q!!TF2LIp?cTr`apvDJhG9@Cly`aA;MfC}ZK z??K>(LADO~mm=-XM|2%D2a@}2_em%pXl2Qn8q;#^VFsY7g3&D|iAQXZwQN2ZFS`N_ zuD1ONh6f6b%FO~|gexq&PAOqr3`TJ(*lf|7wzpLHR)N8!mlR124P{#R1~Izw_g1yD zEB`e0u(nMe;k4rdqgfo96wksjRusq3TOa-pGICzcolfmf?kfzZFKWivwe+C>7hil* zyCjT%V!;qd@(PCE&-@jW=Wfq}2IpO0w^%Q!SpSV-+~1~IPw-dB`jDYc)+2`TPY)C+ zBsv8@URXI<^MQ|@>@Bt5fVNjAyLnfeB$bz2VDEMQ;mRCW8QCE3m0Bii3kHoTHu;^$B7Td(u_2GOf;I@cn9Z;-6vD(<)K7a09 zAgFJyIE*uRPDoP?2fR5zQy*8G~CB>kN+YM7Z0;ArpdUv-ld z9~!C6cqj8=7=h1U}KK&u})%;V9 z=loq<4UBMkc^6o!KN{E~ ziUjdfM^~0cs9%@=>gs-8SbyiTOE!77^}GU=U!$Q6&ImcY>EJKvqN@UVG3elW)06;- zX_rooN4eWU>PF8W#0giDH(NY=U^DgHUO?L&?c7vhmCOPHWqZRiZfsrbKpr|Ij;r26~5K&1Y^zj>amVVGA@Wm06VZbtm3RjTPuz& z!OQbcP8sj>3f#@}!kH|Ke`wCC>rFLEPLkVFe`vCczmUHD>H1Ti;ZNI6Zp-38kQK|< zN=gWIaI$Mk;D2qjZ6a#_hk=8<&#c6O15Zkz7ysvh1FqV(&KVUYrC4ytg8!80U*Xd9 z7P|NGgprXE+!?TrwS4==03#k8*Pb?kX9KDgfTk>%R=Kmg*<;|lSw30SRA?}8x(%E%p>1p|1=$&7Hg z3Sq;@$jDU1^?7tM^T5XzFqm)r?;Jw#vJ`O+0q?!u&;j$B#KQ*yFc-igXpi2*M7eDm z$o#kT^>2=rndaMOLK7nDkN5cpsjBTgPYehvcJD!Xb_52XS|V>!Rc=q;e&*>DAEvN? z0fv|C)k?HbH(O&4^q(t;&w*^v*Mi9m`mR>6?fq!s={`t>V41c70>Ss(Zet^@i8 zT)zmbsl>qG+yyDA6kwp|R#tjIf(3ich0B*?Vq)lyQnLgnCeq*g=wJbT6PujRD?qLm z*47=YPM^+li*(5nT)w`-WUarSRpJy(F1xXq>E40dOrh8Fy^3=&)KNS+-c!~7K?AA> zNz>(%MI!!Nl|Pv-l7@-EO;#@?@XaMpw108Smhy>Iejt`D6T;kveXq}wo0MmSb zx>OKMQ^3G)yn2x1RAa`dnYWfW$c4|LsEdFfiKv>xU`bxH@|95n^ihc6N~-{H9q_r} z)Zbj$B&ddri)e4TH=|f+Q);iPRaCwaLYdHV$;hOExMmJRD20XA&++q+onn(tK(8*) zk;S2IgxJSm^gGK-176qqysLWzNr^bB2<;HDrG(@Vo08H6(+o?{gTaJnmBWuXz|11| zKfiE^oHFr)c@8dt9jSlj8_Wh_HB4eQbl|IiY)b+1>?LQ_(%W32B$< zD@PC#=s*}QcT1E=c-mI3s*cUQfi}X9O;eDO5yxf#5xupPjNID`5~3 zr~cQO^WR4ugnbcrEw^_h|1*64za3HUKkR}JJAeG;nq1aWd532vfq|56k12{e&k z|HEDw!i{GcHo7q`n8V?vt%#MseGk9n&#vE#Ub!y2)B9;_<%nJUx=iVdC4SO_ne#u@ zs|~;sk+acv95JvHOhKESP3gkdd0bo|mc09EF70+;{iW;V3B8}Xs|`}+z347*A6qHo zlzZdlO&p*nMYWTd`@RS%tXCMN*=Qpu>d8<`tR>-7x^Z3TCBip`xrx)6YsWbqgC6d- znbev#GTvgvJ-8RaJj}T7ZM-qr0o|V9EKYFb_8piB3He;^j9B{0{L!Db9D8i-LefQD zX1mstyUaQ-FsH5;255+mjE~LIuH`OH^leN!$i7W)dSi0QfVhy0sBn3!(&vP?=v~u6 z#@1EKr70s`mH9Q@x^Lh6`)MdBLS1O9zb$y@m1maEv}a`t2eSINOe->2$^{BJhW9v@ zi1|Nw6*A>?H(R)Jdhg!G_+<@_g*$_-Z?D}WF08%0ieh8r;fNBMbR?tS6Nkb@bk1xE z%j97)5Fh^dj-BR)tEQMA6E_C@QM`?O4l@4ad1tebPutzdztT6i449d^Y3?y1=|5(i zB3=Fw10P@EcVy0p1%Y3;)-Yqve=s!=lS-2z+tg*AZ(&GdQcofzIE^9*eJTi+-~ZT< zq`5b`i8fQ!CLegD`b`HxD>{QSuvsOgGJBp|_?$%TH+uU#>f`<9n}S(>)E>G5OCx$Z z8bKrpRVO5Un*%?--3jgszJa1_f91h(XJ}ZFctLG2lkZdaGmarjx;?6Le#w^Ii|dy} zO$OO+l;KNH!w40b4e!agtO3de@&a6!{hPgN5-gYDwp|lIL0IE4Xb_^!FIIH8c7{}ypgx0A@s6tLhadgYLmuGxV10iEjBXwxFHnw z_6se;k1bQt1ihN>tf-T6TYCKr!%wQ$@5OB0lJej6UpxJfvGjK^iur(Ip0Qb&k^G4U zqlRt$y-P_K@)I+ai9vD-)qOXBUqbMO)}V+R!X!GhkZs1yxmXxGi1)gGdgl(S{zZcp z&co^w29xlS&Dr;lXIQG-0s~K#eTXC%-e0OcQ`ljgn|p)5#^EwIZ!%$poT|UgW|Q-n zwa|?;h8U#f-IkA^{ez=iubAf!4R_JMo{KEBgb!?T;>FqZkzSYzojvZ;6>+uYz?1s{ zqxya>&jrPIk{oxE?g@M%6e-kDoXS5VkEc14Skc4bdi&jmpSIk5qFOL~@CfScX2}VJ zZ~Zd!)y_CkBf+JSBODBOVpEUFUfX&3RCxee}&V+`#rzk>v=u@^_phfGxvSn*L_`|!`o?O)JaBs{OnZN zi&ejEr3Zuyw(NfP%zK@(VZ*}jc7iQ&u%*d5Lz!Bdl=icp(+`{|jcw^ao{IA;4N-r1 z>YbGG-QFH4tJO3Qi%VVxnO+AN4=o4%EF(BFGBOZa`aMK2tZcS8aIlO#D01=Q#n74) z$~V0aC#O+|9@IS1Na5uQmDQ)wyrTKkV(+;EsKOfy~bGP-wxmQ}Cif|3j zXzh}*Iu~}thn4A_oK#aMXT}LsF)4o0_RlQFdaWekg%xEx}7t ziys-C-Yxgq~Vw+o3iC7-bNu)d>J^r%ngSKO_)CCm9-M$`E8T5_Y8cW|Y z8_i4-?3f>)Imw$i^ho2EGY$OqwCk_LQr|P#!pH&pWzp&dwvAQ#oI&e#aAQkyQ^Y`Zli5Xm{s^YB`}efW)^d7fv7%@w};@gr4BN7cxW)J^U)R^-~CF?s`0%k-XZq?}?> zWz+*|Cpg*Z>oG&`v+K>0k^|1i*}#Gqg6Lp_c=0k$@E#1WNN*oK`|8I!J+}&lx~HPu z#!s-iyU!W^i9O$OmE-ON$S&&4F+9kL>k2RYwj%y#B~$Il(g!u^cC+(w>*4F;B&T7< zJ(a5OE?YT{Z3>h&v?B<2`*Smdy^DNTKeCNA>J+|OVzy4L=UqC>QB=D*T{WP26McoW z)$QdJfU%N?I<)w%(@bvudtoDOMTTarQ9N~H`F6W{G66?8-kut z^Jt~|bfUcKz9!xNS3*g#tqX~bq-oz6{NZ!++1q~M@`YpY!&0;o9Xn&_$$48-c-ITfaO5o8uC4n$AdbFANRrI9sg?3t5~*XkU_;Yt7w< z=Z?FOY>eI{8aZI|Vg2@JEl0v%P{PiK#Tbs%_>n{eZ%R_}j~IdhkQ#Q&wq*<{Roc?` z98={Aecs%r8dJk>@!)?Hl#~{pm|lVALWUXj+&4p{r|Gm}?qWTcRU0-Wlq{ayFszst zEEp?l7EW~wts$(}z-#MJB-uxdu<}_WtiooLBfp6+8>kfUBy2`o8@f7KLRINp6@Sf+ z^nYBYePhURvq_6PB%oVbmD@f|cR7M+Y>;P875wwau4|gy{Kd}e-rA53@^PZ#`K}cr zrU&_|BUbzm^ZA3mDRhXLqj?X$R4(@%wS>kE?h57-@_ifh48>bI`DiRSp7u9V3DhM? z9Y-7ybNA7i(<4>vw(@caKe%fK+Ht-aEl0^3ogh#Si6_E^PN~cb)^7pu5V{ORKMh`g zelye2cXQ9B_j51Z;%)YXckRPYLd+W-C*kg@ZZ$Yad#>bI=FC{j+jP*9X8isdCub>^ z_UDmBt{$qe*sL&fmU4KWG)8mkVR})cKB=)Udr0~ zc*oGp&0sdlb|@s*=1iSTo%u7=SZ=6p<+tV;W9XwoeP%~Y71rVdUsTXr4GDUY>#!xR zs;Y{I-4duDu)~#wR^j{C4?28mA?mZiy++o2ztnFE-L@d=BjFW_KB&tJfJlgL`D{`F z#U&b09)L!Qii%2Z%rmsqsJJ|$DN%8y6EH)t^^=Y}J{069av{-v2TZr08n^PZhTm-E zcHdm(_AunWu~mO9-Nu~gj&KZ*__unum#Xvh9FnDcF6fo5fdox(X)w>mSmA23{b|_C zX;UGL227$wk$+c@dyZMB z8li^lPqDG{kUjuWSb$c@K2FfEG79edX)Pt<&J)Zv7rsEqbSo>E#W{4X(Y=AClXb3c zVr1k=YwN|EH&+0saLE?35x5E+U{0F(Kg!wkMcqyD#?U$zA>)tv1HiuEglNETft$HnM%`oofgOOZ!^}V+aGE`}s~x|ee-*%JD?{%tRa3({!H>hB z9m9eh^B>?w0%<}~zWhDt%t(Hq^I3X@yiedLXvlcMrn;}cUj!w`F$RN?`Bks8BRW>Z zoOyM{?J4%j@|-lqitzBz9|r{{*3`Ri8@@F=>;20bQ@bkae4WF`@NI`!e_P08SJus4 znr`RYL~_Vg!f;4Ph^38<#C0&qF?6oL$i)Clg?u>hJVe2V16_F|v`be?s2THT>~M&K zt`B`@Uw-1FHJEWAVj*Q8K@#P|wSepbDR$M!;ojQOdd>8@e)!q}IKl8m9tBrAnu zDLiKlc+_l&%TiEpa@Vd#0|i-WrKP192L$$eVWVEq1KbTMB^bP5K&C;TNHr4VFxYo| zk5N7`q4cbUXQQHQ_wWA+cyG|rn5|aUgO~>Umsjb;8d8-U93ci9D&k^LIOrc$$+lufBI_-yg=uV#Mt*e zfzBByTFCV!M?~P<#$2Q*;FxBQ7z7mmtFg^F9wy_{|7ni-S(OIIy+=@l*hHEU>j3KuPKu#TH6DPmj25?=m;{xv9emK zfFB0I;95YO0EfULr=5`A*w8?@_Lf8=mmLe80FM?(ZohEQSTO%Qko?9XSwybaAp+FOAw09O@5`A%Lyr!(^ZkI= z*S^Lr9Wn9$Qb@$0R3NUbN7GO0hWZt>(CT1IB_%EW$E!fPSPxu7DB9T_xrGf zdH@d4mFC4E@*mzjYJ|f(l?7{HP}S6gyA`}=el!Pi~$&{z9lFe@$CD2O8fYn_%~c z)i+DZ+J$FsZ%E%x9mzIjpy@HC(f*gbD3uM+&R7Z)2&lR?U<61>O2)syrJ9Bj3D1A{ zYnKsG1}|yac)=|LFuX{>OoUH-XogwmmOtP^w}Q5f%AvP;KrLv7u!H9)d)w+H(G<3o zZUX@9%ACvinVZmHOeAjmZ#x?86X3;Z|1RnA)f%f!k>9;$(58DoSLM98FPo9q2T?2t z3&46v78sxqIx`CCmxahgtg4~4_WWY#`nsGN+T2BkxFpQdjW7Vaiv3k#sdrIawR#)} z;}DB~F%N4>HMT?RDF=ua4r?sds8v7ojiWB<=kQ3_Uu4}F`M;x;zOFrzU;rY%A=E^G zE%g&JSl@S@Nl8h$Y_#gdn)u2*IjsOW-Rv9Oj2wP#G#wCTVArAsE-++ajRrixMhNX- zv1xhGy#{37q6G`K5{U_WHAo@6uklJAgN$3m-j1V1M7MY-BMt+ClQ32G;K4n(y)v#v zjYkM_bi|}xmo&DdKZHdWBO~`47nY$j_go7y6&n3u)FuCx7EUlg zq$LCh8u@H3vDgO23~pYXWRP OW@%x)J@C|8~%kI@(C5%mfBMp30mz2_PU34v<~DKjAasF zdmwg8!AS$y9m(=~W~|@m*|m2J|Jf2Dei4`cyKUlyLLpMs;cyrl6LB1cLct&NX9dKW zVenDY-uy(f*^FMVhvPUXio$Za#57G5MZs|#a=9FzYZCyzd|SWQ2MENkudm+>;9I3q zA(P4Ax-Q4Z#{jGIa*15teos&VUp$k^>?H2GF4bz4!C-)97^n-7ck4DKu9KjqGUcb{oSmD3{Cp%eH=S03igXX`<^oxm+&r z_kOO9$N>O!T@N4tQmIsEZe(9V9|9nqPBZPr2%zgacXxM8CaW#@=;(-%6%#-rk>KX$ zhQ(sRbUNkY;)2J=$I$$P1Du|o2CbNF+gO%`5CX@G3Ba~(6h&F{d7j7YM@#?!x3{+d z!5RSg+Vo$^_0}x1j_C68l9Q7Y#^W)PB%!J*^?H3HFA@OPb-B8_0#+X;&-0ki=Ua0l zt3b2aT-%0)5Tw)T*8yDD-Ag!`OyYUo)~;xq`9G(kQmIg_R`(KbwOUw~MK+t=hWucN;zz#ln(o7G+Gg_YHjf2$Bz>Z zhmlgUva&*Tb+zrd^jp%Ul$fT85W*2GpU*oIkW#X^oCVNpK{y_Q!JsbBMoPI^1sxeG zr7#Qw(=?G%Ix2GD{ym)g?J}`g%n`F{t;3#B(1N8ccv47iEG$x6cUOg83J##rh+;k( z4H_H7*oCMKa;;PV5JJ%IZ?WBiKm%GSgcN`votnni>;VL#7@8sgZIy-4z8*$L$4Dfv zW16O2javdJ8GUtn*hXIhwO$Xb?FX$j?XD>RF8%a5y@#GdN{N&bvB7pa0F?GiO36J3 zk1#s+JpgwHx&fHatgkCv@w|6(q`@50BR@|X>mUrA_wrY;0rdo8Mf!X;qH60%0{@oSM1t1NpGV6!m zpaQ1L#pv)UI_jQ6BN+MeGywj-K9Xn8vVB(v-qu!TZ!7?i+g49q(Z?@W8v#W&o2N%> zw9;FzK%r1TN{LaNL?g0I~~7dLQk# zpSN{4(N?#M8`(U`%Mky4i8xi{a#cL?*d0`${7he%&cVb4H-$A?9s5FT543UNt8Z`x z{20|W6wCr+BWG+Mp_k@qzFxcK3OIVeIy9_NESLp4TiZ!rO%ng%M>-CL@l@B57`;eu z--F~6N#-1VIR9NusFn#|NPH8pd401U&xR8|kT>pQ7!Z(`>17#TxS z-_XJr@0|p54va=5+i}+_vNvY|$S%aTl<_SAXswY#B7`9S_jz)Yt36Q=leUczaa%Wv zQ)9YZxLhtKGnsz}0N}~P{U8KV3Y1yo1;RR7Q>htz%^n0`DvcoprqT$pN-omrS&EnP zrm{KXxC8O}JotQ`E!kE~fvpRHE|Ll%Kq-x>G`?mJ%2cFM(?}^WO@$ONm0oSQskC(r zd%c^3Sa(*06ny;Asaq~Q`rg@?twhA`!Z}x`5TI zIueN#?N;xM=L1i{>#vr1d3fFIH>G5v*vhHYv<;vXaIGk%ky6m!*6etnPS4=;dFpmFyQ&dFu(-H{ zQi{<(qFdX7@e5b%eJj5i%Rf}gS#XIxm+K|F@}}zv1sT71r2;_3LA1B`Zi^M~>#`RL zA?Urg8zBTep&*7~&=U$GrL^r!|Cig9{1}G8_{A$kB9V#``~yCNxD99}^2h)H002ov 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 zcmV+*1K<3KP)F|9LGPa#qL4Ma;3$DE*ky|j0idix<*(YgHU8C@E{7Q7p;p#houPjvKlCLC`rs^ zk@8$8{y!rh;@6C69GtWi}wRUvu zq`I~r4fgff68nczB|moK!GS0L@!=h%<>Na`3kz`w9e}p-??bl_H2H=kv3)d0H*UBC zhtFP3FS-pdd0^6)MUW)JYlZ;7cYdO7%i;irQFiqUBGMd3GPsrAwnls*RU8E9s&LRf zFiLf?3xLVxb<_E#0KSmQx$tWM!r?U`03X)@IA2u*z{IELrt`Ceq5_`g7NJ%z^S9Y_ z2Q<0s>Y13G$J5+m+FojE;o0ZdBlA5O1;CbNzDA)PkW>iGy|-)=RbA|g`v4%S8hgod z2LdC*EZ@C@-R|JU&?C$C%HwI^uLmZVM@{4F05&8ES3HBU zk=^bf8dVt!26S`Bf`ODC*py{*PB_yC_~#xldR+#GMwpnLr}RuE{XLy{eg2gFXAaOkAhwNr?wN|U`ALbl6b1b+sRh91 zoAd$l+>P|MH8QiVa>3=WT!ao_Q;w6n;BH;=vSRr#hWVN=k%|=CV2nXDE{TbW2|E&3E({wM{tYhJ5ErgY*qOLw zZCsfk2@5c#AsR}libH0mQ@~oPZC#Y9g_+L0(rP@Lm;2_ubI;s4b7!7|8hAWATdH-f z5xiJfa8$?VY9()^{T{Xvr32_dqxK*$4q{Xqgfz2pk8xwcxFkBmeOb2^&p z0bh67gc&W(U?fV5$HQPGYC5Omv~$HvaT7^Nu9P6^gf{bAhnaM88_Sq zPUFAn1K)Oc>mnBQfRKP}HjCHi6C%_tyz%-u09PMAIlF)%zl%5lXc5X?*#n?-UlUqy zDZo2E#h7^R6Sy@oaU#xW8pdBz8v)AOS9K@uoSbHB=_Q$b5ue-1K-)ihxNS{^R7xzY0WytV>VP2={RyY@`L z*W(Y=;ZYuNy?`sBP=#0&!<`o@9%x8F=j3!>tDi#sJqKH}mL=7qi1q3iC88V0n5(pR#y#mI93M7+BiNc9Rg7@_3 z$y2B3IM$9M2CEB*DFv&j09L^WNCwmZF+>7v5My@!F~*W5kim%X&)8c)mqw9@WK~yx zNCk_du;f@AYYL(!oS{`jLyr}M5)dPXC5^!$ErP+KsvO++1%u;V4BuNzAW{JV_V4>V zDzs@E9`9mes18%Ak@08(*>@*~>Q?yY7H_V3w=CYg#&_Xd2WQS+X3xPv0QMXlWNysa zIDtUY04$W8K*S*si~8?}LHDb0-E06xm=iEKXpq78efDnuDH2Gq8z&$VE|oPUB=^^5 zy+3AuYuCKrFg$`d21~Te0E&t9M|wqbZj0ypeEek%Z@jw~&-Z!r=rP*c+VFgz_O`b0 z+2)c)C5`S+p~lkJ3HyQc8wS6 zmw0hkhQID)U}g&lm{s{w)7lEXy`-9&IFe51!JparDewxTw-y;ChVREXT(t!RbX79X zPfk+P+Dd9>hTZk`0AV7!*Py(drV~%7dbn-t6kyes*HA?Peek~&h)%)+x99szCX*aLbcm_`eg?X`*;Y{zf&(NHB%Y7+^05qu8#9|jFGiqn z@1|Urss4UGyLy$B=h5=^4HB)bczu1eClW9{&FG(tTe}N_0tTM%lkz;MtmOD}-*M~G ztL$!SqOr4+(cWHA-TE9b1#LnOygiX%`tBzrT3hq6g_#*}T~e3!ld=IL_vg1J2UNo& zR*eI*v%L3jIqs8q{^T3&?PclyJa4?-g6I37X)ucG?%EtWPpJh)LL%Qx+=hwU;c{e; zTE7B7#6PVlf z4h9EHy1;J$i(nB-2vEuvFH#n7jv$e{OKgIGEvQBYrKP2Xu?H!zOIW8AwM#h0Umk|2n_N8q0cXx$E|^RV1p*0H!xSe_SPQH*+#9@0Lqh{GYY8NGFK|#*1_uWS zvgbx2_=R&Fbe;c}{BoMojT6X8J-2uh6Hhbo_aqY!#}O05s$kTH71Ic+3TjqJf8kt5 zeynBzfRbPn3gpUhS-hD!|HJ%vU5l@L%-;(%gb0fCtLqk{{PxNwS5%hgd{5s2(Oq#Q zug1E1t?{a!^eu0059f zAziTIi1=zUV6m^g8Z!?7fCEr2j^2b~R-tE9ke|x0r1g2r6$=yk?--@^G>ZWXq}09k zA+Tf=qNeDK6H-MMZgsdQ>g_$~w|78yd=a{5{JA;Env3Ng@CVRm@N`f)((^6CXT0yK zqDAwVQIov}iS=T=fq;KtmZY3@Hcm(^(&$`IJh**-q?1GZaz{R>l^FgX#B!x@f&nVT%5Pf)w(Jo_Be4V^@xVX(obavlEJXZSPCsw zQ=hD9C4pkXvf)avvoU1_uM87`*kTz=JPho0u?0n`!A(D&yRCi3aT_cfyuI;utKGOK zl5)k*8|DW8*752x*TNMkgWQ;Ywjv#*Wy|Ez=JeoHVkk(aA@;+^x&OqYMD`-#)0xOi z2l`ZEjN}fZL|ZE$=Y4N%R!j)rF2y;lvi7rc$`k`vCt_cawodwzOW&1MR;+|{d0VAY z3@GI?+Rmuw#0rVx?}2jKvW8=0W1BEOt31NTm}cYnLS8Hu148Z{i&xpR{~WJh6>a`{ zDsN8K@It2l7H1Y&;V{y-Z^^A+C~@s@HZ*E{dZ0;P3^p_4$=2U%GC6^B_^euH>+qw) zj(+WrNlVw7VmhqX#uAmj-|qiHsvg2!8mcDe3wj|J$8nENmKCfs&q1}BF4lq?fAkV& z6uw%hpH#&$k*Cf!Ot~{oNz}^DIL8n?)k$H;l<^vrrPE8pxpMhw-}Gp0w%ZI2s0j#{ z37|LhM&gn>+55S|qdd1WD^jU46P5C7iR>O$>mZEu@4cMyi2S78^QCnQ;gN%lG*WL& z{ZGX0et1Gv@kC_?QzVg;+>OASrge7e`nWH+*Yb58UD=G}f`_Ji+}x$O)1hKK6tubm zmI&MG@=I*@UCOBN6yWyl0V4~rWrNO^HoU`?9;(AUfuJzLHhwt9#T*P?4mK5bL;GqlBX1+4O;*^&c zmrb)wRnzf)nIz&z$I_qusro<#xu-@u?*(_l5dDE6;Zo;yaVTqr1wmX|PKr4I7LDGa zC0-e-$8V3RS>7PD?z6W##asPFwZ8>2ENd=PcpTN~r72mKl6b-m)Ciu3oE!Fv{isz$ z@QUC!m}~~5nSI@7$zdl^?=PdPIR&8TsM&4|M_oJ1BkjaNTUN^KntHuL%vj-!T~J=r zhl!kg!4coInV@$lz~R2;Xt!ZP{kGZgA%i}59WEM;KgtiM(&YVGH3J>Yc(&e%;M9Q7 zWm8l0($fZk=lvy*uYtxfhcbHJ-Bj)PB)*soXurpeE@8)FI4$@3LM(V{QBECjd$hTXc#-8604|^ZKXT$u%Ou+-pA`OZ 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 zcma)+Ydq5n7{~u>S`uw3<5yBTgvdrDN;qy?lJSug!w>7|w!Ns#)@QbnJQ?u{GPk_^9 znBAtLd;RB3FykxZdoI3gX=$nYlY7OYzlFsNcHA@r?yMjydC*Udl zSL?9WxkQxR&{9xso4%F(cJ16)-{yx>SI11KF3(hml4s1VZoF?xlP^avPKd=)LOt$m zm2rKbG38@3g_xMrgn%~XPE=tCSBAK>n^96Ye=AP$14ky7!cYWNn|fR$MA*dX?yTw^ zTCoGvS=If>>cjci>)NLU?_g!&Iw?&0tNn(}F$2%CN@vGbk}u_qkPM|T9{@Pt8hCrOAuYzGR;5i~Aq1X|Oulf7RRyV1*W9b#-e+3I21w9|~b+>t!KUJ*o{_S>{!dN6o9$JluR) zpi+|_n;a?J;k`v>yF3nvB%eC7_gAKEFvm^`*W$k#z5WYDO5l)~)%|NiVMjzbFbHc7JoTqKZzm0irU_9h z*VJKQXTG-r*n^iZFlmI#eu92WGy)Sz-7}rX9jqvtis}^ROk0{*TG``?q>50Ne0n=~ z#|(5{BYjYz;6vW*T3=Fp7te^kU|~{8lg+k=T}TwfZ}IZY4LVDScH7a1kUWt2iH}HS zKSKndL&IUfpp*2olCO^Hko%0kc=`(eKlql~smBRfmUk42`#x=4TI!rjDszE+M+uPa zNb=wz>|G~=UUD4olfhjA)@o-T0=C4Q99JkxI&yUi2kC+jN)@Sv52ANSS7_Mw=)9UO zLRUzm7Cq9wdBYGY6oj9t1{k`q z4fmA#OzM6QH=hc$Ak0(J_2S=y=$#z0y;dS2$Q5?oI7UmGaPBk@46OLG@^%?yu7dbS zqAF?o(ZeAClNvj}?k&7#3A}ilqXdHaOW<3I1V?A=J1A_Dfws^43cm@~pe}=NStncJ R==GNixE^Zq}6n#`E6G*6X=ZF(9cCA|V06l__kQ?L#c75sU4%LX0e!B6sZz z7*wE7NGU~86sI_)bkw(RXL)X13F|c=Bb)=R1-9jM8T-Gsq3FB#?P7_s05Q4Aq8y@W z8fpCE7K{W8mAd}jY{nW}FjZn#1Y#gf)9(3rJd4?GM{)K$#_*P=c--&tLI{Qz5~DR> zV}-44#uoI6FLoNvB~sz0;On7j3y*dc`znwVniQEY}2V)sY3jUvVI^zLZe7TvZ_z4Qo-UWOnVm3nmMz^?a(TsZp4Z~3Gnf;WHEST zMeqrboZ;feK~|njFf@2Cfk*`eNNu=3yHE5qINDYt=c5Va*CtCuO(se9_tW1GIcvj@ zdJ88INEU!qAFf2iBM^&4@K7wi^P3I8hzm44G{}+3WVp6(1aN)_C{w4pU>8n6#Jyxq z8LKRb zM(XP3M~kpX1&}g#!E(5>79$Xd02dgYnBwqgEpVRivoZYfDV_{0W8)K~(`l|3Ngz5h zWH#lN`xVs0tEuoD*S>)t@XHNb)@|j~xf58i40wi1@fg?Z9w`#OfC6FM5TM*z_Y%FI zz6L-?>sCZP-WjT7|KbS%Y8F>gpB}?l7|V<@QY3*$1;Sq!qn39YojZ}RYfK7#ShRhnjtZkVcF27qQIeG zEpQA}l|b&yU^~}LqN;p%6>5Ju!nLQiu)I3vCgU+?tHA#tV8S**Jz)x=rD+4{@o`$3 z)*~PEgsWV+-g+}bLwX!+!07mW$^)uFcw?}VrD^IW@mP#C58ndd^-WLH(zG6c6;(?? zvtg4G+271-^VR|*0f_L=L$!!1S0-1mxwV}u6UwqGwCcaTQH{z@nazu*&)FLl_Kd3KiTE2#7crq~5zw!Y7Nf0;EgXOKDc1C!8fv|4{;i zhb22_+yEBAB9sxJRPVm%e!%42jby&C6+s~1#T=ME0B^yWGr!HuH8-!Nt7|W9ZEYMs zejI?B>LquA_s`}6Q3nx(Ze0+8JnKAgbMxAn=dP~305jkK!QA6T9z2;0??cs0`N9e0 zrT+4n!!+!#MwXR|sK~+KTikUfXP~&n(Sx|%mI%h+JyZ?@S@jorE z#Ec7~m(5#@O0nc!*IA41iX(Y7)+h9@`*bjU^u$UGUcu9G!Q|c0(5Qj6?lfe;SRa)f zfq9(E6vuz(-ZxXAQ2POv4^6N$?Lrha6P1m!@N9Kv?-LySh zsKr;;$O9QNmIRSV)sg8mLGcFjUh(P{t-5%JYKX-%Dh?wM5uucDcuFEf1f=Zfd%mBo zCo^2^za1da0s<7CS()8uda^OLTH<;#K=s+&GF5Xqa``;@Jd{-{AN5NI2vP!|^W&|E zc!DU3;4zda_L~N95(gR{3uUIKrx`mq4#a*3NLg%kL6;6762GJ_#kSpVGC6gXmZqk7 zEtHumUT1C78j3S>tXaE?KaU?lyhBMca~wa0OIRa$R;)U$y!h#Po_==--TnuvhI-+R z>@eOObLBZAVk@8q?)I2gr+2hKGQds#QZ_y^$A$+5k6@y_{m^wxVOLZnR5VR=A$D%s zOrq|c0aWMXkK*teG5p&aM$Q|E;Wgs$xmB2hGKM!eT`2Hn^B{Z1$M39`FcM<`NyQhG zquuQ|fgnOUngR11ooL6UX8ESnL^N}a=N^5G$;qost)Bu$>jFrQ3|TmG(@_Jh%`G(e zh?d4iS{oaQ(vGHeX?zr+qI`Gu3|}?(@yd98;xz#(aYMkE-T5lrukEI|^Yt6+AB}E8 z%(Hr~Ol#v>9?xdjJCWh*^{p!dQ2BLnro7jcBHw$453^~4c*-tdK=0r3W{Ax5L}wP8fSC@ve#fj&$!$&B$1yas2SG>yUzJ3OCaA*Jy)g^zITp+<{)`(!x(AtQZ zvAcZ`73IW82cORi@1%_WEz4x>Z> zvrxHlsFc`#ZJx_pHnOR42#-gl$hm)3vu(>P!!w&0wNji1G_k&^AE25GoCFYIXmdMa z#--xDm>Eut_4jy2rrQX<6zi(PC1%5A09fT9FikP?(=mo)oH(Od1SsYO)KCnE!(6R| zy9@x4*ae06|60Z;>l-zom$R4UjT+~`0zk(n85|y^v}oP|il7K70!GV$zPJp_-C9Ui z6I&es)hZ^IGIs3P!R3E1fzG2ojp;nzIaJ`j&G&Qam!EGI&*yKvFBVILid&Ziz@qX= z)zLrDM>d-!QYA>WFYuTd0|OTbi`$E;crI7DuUO5cmkzMl1x`wgjf^ukJcPIiHNlz2 z8Pf@726ju#EOLXnSpZU@4hz_#4fP-RJMqQ4j;bYYxFGql8ddS~G-08axxJ@Ju8I@6 zx;ip;VTBsg2fp8m!`JMNYaZU&Y?lSqxEpfdG{U4z5b##5^BYhp#cjK#LFS2#>JU@R h1c}P@_g$>1^B*-P27vL(-PSiWYsPyz3GwsMgb{rbSy~s#$coNDN6@kBb=E(z?ck z*3g*CHD8ICs!^fTR7A~UNR1H@UV4AMx88ee-5>j$v(Ea?*?WKA+I#H;xSh3xsJtiu z0Fbb`4!bSb@d87N2np8D5fL^3fC#|`W_|~qvo;Z!bmyKz_XhiD!kFIvDKuj~Q&g;m z^xSzcz#Z<946ZgXA1@l%dsY&koUr_32}EVU5CJ#Cd~sIMSC2Cc^sDt9wDO5|8&?-Q zVNhPx{Ltaayg8ES80Njs<<0a}-Hh}$u2EPo4C%wvWMlSojQ<|8-rjgbgy$<@xN6Zp zgBB%@u;T=XA5hYuL{3JMN|MopK(4DI^|5!Tj_@Z_Q!Z~kF;HWuZAa?4fq!Hh4jvXx zIqyHH4h3O0o!2s^`P&B_r^@>(?b}XYus!~Ynx)CeLjTjrQXkuqXr3T)vRX#(xC~4r z;aS1gp^V5Sqnu(&ag#2Ux6Dnrf(QKJTEshDBSsL&hW)^1`>RM!YuhB4*g3`3Ekgt-N0o-)%_L?!A77iXk4NaS zO}na#eqr5i|1+T;&~zL>)~iRO%W3bjiW$86U^?aU5UndXy~L9|+7mq@@uS1qqe!S2 z^fAEESPFL`jv6O^j!17bl!2WLcz-BeV-K=SH*-VW(v1wS3ueas5Kzv!vLl@eeD>f# zn4Xq>*5f!tDvRdUkJr%E?V79Dh{}%*-qVT+pX@x}eqQ{P(6_gls0Pj;CoNUnbMu9V zgAsvS9@r~-Z9FSGlR05K>gm&1o}esV?e1$5mh?ySqmAjf8QyphyO^!f2Pm8sf~5Ns zdGhyv3OOjKH}mHZf#~gn+hK;OdfqMXS9i~(RQA+-OnK}T-*j-SXsdpgF}p~Jlalz` z1_FYQ+mQCge|me~>Jro``!#RrGIn?jrV6x_&ZjP*0${2npNpk-yYDz7A!B==_g6v1 zTRoR{mAH)osURlqxwX*UZ@sP+!N{U74+<%~4Um4luDkVi znEK(o0{GoD$NM%XoR3n|txpD2kvsw?4}3?Csor)Dy#7YdAA5!Tflpx466eQ4N-=z! zYF~IB+dJ&G9&1_G0)UfTz9u}Tzkoh)XH<;+T$R61&mA;iYw#$`=RDia)(w5WWh!=I zQl0c9Shg+hRWSNDcbSc`;#c`|a0N9zTC|5n&QXx@msNxgSS%{S>dPu$i*J&ufHYJH z-I5l@``y{^Mix?Y?`as-M4h~u%{VQI^h%dTG2A9M{l&#~=UdLqtn}9vHRowvWfw2r zbCgKBRi6Y?rj2!RqISA67E2My14yOP>QmT@MuvMf0^Q43uM;|YK%f7y&ZAP^WDNa zm(xP=J*Ud1(z+#)nzon;z?nA4Ts(ZdE;kWn!HQT+4w#QkW*N`_*#_XP1l6MSot2T0 z1xj(79Wq9J$WBr&Mz$e(>{rarOA0eSJlqvW@v(&!`j%%c2;K-(1C$wTZ|4@&)TH%0 zLo}HgiX`&(POfT}vkSbdx#`AHhE;jygWi%E?Qhr{hmq^Yl4Kf!*CA(x`XK5ZWaLnn z_FXGDqCb4KrpVU9uLAgtKt4M0y>&_3vi*QoBs1Hf<#M~A)OT&O&Jj;s$bVn1x(+%t`;5kmTDSozPDG`vu_d&WFm`bsSlMcIr4AOHe z7$|)TD+-TtxeubwD-ajC-b((z?W0HdnQ!&_ 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 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 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 From 20c387158a8d2d2ce39b4169d6cdd177fc724645 Mon Sep 17 00:00:00 2001 From: DamianX Date: Wed, 14 Aug 2019 18:15:26 +0200 Subject: [PATCH 17/24] RegisterIgnore vending machines (#300) --- Content.Client/EntryPoint.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Content.Client/EntryPoint.cs b/Content.Client/EntryPoint.cs index 8bd941898c..5ae120d742 100644 --- a/Content.Client/EntryPoint.cs +++ b/Content.Client/EntryPoint.cs @@ -42,6 +42,7 @@ namespace Content.Client var registerIgnore = new[] { + "Breakable", "Interactable", "Destructible", "Temperature", From 6be135a137d58df51ab6f05b64808ed9d7229c8a Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Wed, 14 Aug 2019 12:00:41 +0200 Subject: [PATCH 18/24] Fix human inventory window ID slot using mask texture. --- .../HUD/Inventory/HumanInventoryInterfaceController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Client/GameObjects/Components/HUD/Inventory/HumanInventoryInterfaceController.cs b/Content.Client/GameObjects/Components/HUD/Inventory/HumanInventoryInterfaceController.cs index 9b23c3ef8d..fa59cf6ab9 100644 --- a/Content.Client/GameObjects/Components/HUD/Inventory/HumanInventoryInterfaceController.cs +++ b/Content.Client/GameObjects/Components/HUD/Inventory/HumanInventoryInterfaceController.cs @@ -185,7 +185,7 @@ namespace Content.Client.GameObjects // Right column AddButton(Slots.EARS, "ears", (2 * (size + sep), 0)); - AddButton(Slots.IDCARD, "mask", (2 * (size + sep), size + sep)); + AddButton(Slots.IDCARD, "id", (2 * (size + sep), size + sep)); AddButton(Slots.GLOVES, "gloves", (2 * (size + sep), 2 * (size + sep))); // Far right column. From 9cb37a6376a153cf84a1c4122cb04b9d56752c89 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Wed, 14 Aug 2019 22:04:35 +0200 Subject: [PATCH 19/24] UI system refactor; submodule update. --- Content.Client/Chat/ChatBox.cs | 32 ++---- Content.Client/Chat/ChatManager.cs | 3 +- Content.Client/Chat/SpeechBubble.cs | 7 +- Content.Client/ClientNotifyManager.cs | 5 +- .../Construction/ConstructionMenu.cs | 98 ++++++++++--------- .../Components/Power/ApcBoundUserInterface.cs | 57 +++++------ .../Storage/ClientStorageComponent.cs | 51 +++++----- .../GameObjects/EntitySystems/VerbSystem.cs | 5 +- Content.Client/Research/LatheMenu.cs | 45 +++------ Content.Client/Research/LatheQueueMenu.cs | 34 +++---- Content.Client/UserInterface/HandsGui.cs | 10 +- RobustToolbox | 2 +- 12 files changed, 150 insertions(+), 199 deletions(-) diff --git a/Content.Client/Chat/ChatBox.cs b/Content.Client/Chat/ChatBox.cs index fc86a3c3fb..e38d652284 100644 --- a/Content.Client/Chat/ChatBox.cs +++ b/Content.Client/Chat/ChatBox.cs @@ -24,12 +24,12 @@ namespace Content.Client.Chat private ILocalizationManager localize = IoCManager.Resolve(); public LineEdit Input { get; private set; } - public OutputPanel contents; + public OutputPanel Contents { get; } // Buttons for filtering - public Button AllButton; - public Button LocalButton; - public Button OOCButton; + public Button AllButton { get; } + public Button LocalButton { get; } + public Button OOCButton { get; } ///

/// Index while cycling through the input history. -1 means not going through history. @@ -48,11 +48,9 @@ namespace Content.Client.Chat public bool ReleaseFocusOnEnter { get; set; } = true; - protected override void Initialize() + public ChatBox() { - base.Initialize(); - - MarginLeft = -475.0f; + MarginLeft = -475.0f; MarginTop = 10.0f; MarginRight = -10.0f; MarginBottom = 235.0f; @@ -79,8 +77,8 @@ namespace Content.Client.Chat MarginLeftOverride = 4, MarginRightOverride = 4, SizeFlagsVertical = SizeFlags.FillExpand }; - contents = new OutputPanel(); - contentMargin.AddChild(contents); + Contents = new OutputPanel(); + contentMargin.AddChild(Contents); vBox.AddChild(contentMargin); Input = new LineEdit(); @@ -176,18 +174,6 @@ namespace Content.Client.Chat } } - protected override void Dispose(bool disposing) - { - base.Dispose(disposing); - - if (disposing) - { - TextSubmitted = null; - Input = null; - contents = null; - } - } - public event TextSubmitHandler TextSubmitted; public event FilterToggledHandler FilterToggled; @@ -203,7 +189,7 @@ namespace Content.Client.Chat formatted.PushColor(color); formatted.AddText(message); formatted.Pop(); - contents.AddMessage(formatted); + Contents.AddMessage(formatted); } private void Input_OnTextEntered(LineEdit.LineEditEventArgs args) diff --git a/Content.Client/Chat/ChatManager.cs b/Content.Client/Chat/ChatManager.cs index f99103bba5..70b46b3f4a 100644 --- a/Content.Client/Chat/ChatManager.cs +++ b/Content.Client/Chat/ChatManager.cs @@ -1,7 +1,6 @@ using System.Collections.Generic; using Content.Client.Interfaces.Chat; using Content.Shared.Chat; -using Robust.Client; using Robust.Client.Console; using Robust.Client.Interfaces.Graphics.ClientEye; using Robust.Client.Interfaces.UserInterface; @@ -274,7 +273,7 @@ namespace Content.Client.Chat private void RepopulateChat(IEnumerable filteredMessages) { - _currentChatBox.contents.Clear(); + _currentChatBox.Contents.Clear(); foreach (var msg in filteredMessages) { diff --git a/Content.Client/Chat/SpeechBubble.cs b/Content.Client/Chat/SpeechBubble.cs index a796c4e7e8..61aa4e0bbe 100644 --- a/Content.Client/Chat/SpeechBubble.cs +++ b/Content.Client/Chat/SpeechBubble.cs @@ -1,5 +1,4 @@ using Content.Client.Interfaces.Chat; -using Robust.Client; using Robust.Client.Interfaces.Graphics.ClientEye; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; @@ -32,14 +31,14 @@ namespace Content.Client.Chat private readonly IEntity _senderEntity; private readonly IChatManager _chatManager; - private Control _panel; + private readonly Control _panel; private float _timeLeft = TotalTime; public float VerticalOffset { get; set; } private float _verticalOffsetAchieved; - public float ContentHeight { get; } + public float ContentHeight { get; private set; } public SpeechBubble(string text, IEntity senderEntity, IEyeManager eyeManager, IChatManager chatManager) { @@ -68,6 +67,8 @@ namespace Content.Client.Chat AddChild(_panel); + ForceRunStyleUpdate(); + _panel.Size = _panel.CombinedMinimumSize; ContentHeight = _panel.Height; Size = (_panel.Width, 0); diff --git a/Content.Client/ClientNotifyManager.cs b/Content.Client/ClientNotifyManager.cs index 2b2b296152..70ffd7e1c9 100644 --- a/Content.Client/ClientNotifyManager.cs +++ b/Content.Client/ClientNotifyManager.cs @@ -85,14 +85,11 @@ namespace Content.Client private float _timeLeft; public Vector2 InitialPos { get; set; } - protected override void Initialize() + public PopupLabel() { - base.Initialize(); - ShadowOffsetXOverride = 1; ShadowOffsetYOverride = 1; FontColorShadowOverride = Color.Black; - } public void Update(FrameEventArgs eventArgs) diff --git a/Content.Client/Construction/ConstructionMenu.cs b/Content.Client/Construction/ConstructionMenu.cs index 15f3d5a8cc..5d7c59e872 100644 --- a/Content.Client/Construction/ConstructionMenu.cs +++ b/Content.Client/Construction/ConstructionMenu.cs @@ -3,62 +3,50 @@ using System.Collections.Generic; using System.Linq; using Content.Client.GameObjects.Components.Construction; using Content.Shared.Construction; -using Robust.Client.GameObjects; using Robust.Client.Graphics; -using Robust.Client.Interfaces.GameObjects; -using Robust.Client.Interfaces.Graphics; using Robust.Client.Interfaces.Placement; using Robust.Client.Interfaces.ResourceManagement; using Robust.Client.Placement; using Robust.Client.ResourceManagement; -using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.CustomControls; using Robust.Client.Utility; using Robust.Shared.Enums; using Robust.Shared.Interfaces.GameObjects.Components; using Robust.Shared.IoC; -using Robust.Shared.Log; using Robust.Shared.Maths; using Robust.Shared.Prototypes; -using Robust.Shared.Utility; namespace Content.Client.Construction { public class ConstructionMenu : SS14Window { - #pragma warning disable CS0649 - [Dependency] - readonly IPrototypeManager PrototypeManager; - [Dependency] - readonly IResourceCache ResourceCache; + [Dependency] readonly IPrototypeManager PrototypeManager; + [Dependency] readonly IResourceCache ResourceCache; #pragma warning restore public ConstructorComponent Owner { get; set; } - Button BuildButton; - Button EraseButton; - LineEdit SearchBar; - Tree RecipeList; - TextureRect InfoIcon; - Label InfoLabel; - ItemList StepList; + private readonly Button BuildButton; + private readonly Button EraseButton; + private readonly LineEdit SearchBar; + private readonly Tree RecipeList; + private readonly TextureRect InfoIcon; + private readonly Label InfoLabel; + private readonly ItemList StepList; + + private CategoryNode RootCategory; - CategoryNode RootCategory; // This list is flattened in such a way that the top most deepest category is first. - List FlattenedCategories; - PlacementManager Placement; + private List FlattenedCategories; + private readonly PlacementManager Placement; public ConstructionMenu() { - Size = new Vector2(500.0f, 350.0f); - } + Size = (500, 350); - protected override void Initialize() - { - base.Initialize(); IoCManager.InjectDependencies(this); - Placement = (PlacementManager)IoCManager.Resolve(); + Placement = (PlacementManager) IoCManager.Resolve(); Placement.PlacementCanceled += OnPlacementCanceled; Title = "Construction"; @@ -66,18 +54,18 @@ namespace Content.Client.Construction var hSplitContainer = new HSplitContainer(); // Left side - var recipes = new VBoxContainer("Recipes") {CustomMinimumSize = new Vector2(150.0f, 0.0f)}; - SearchBar = new LineEdit("Search") {PlaceHolder = "Search"}; - RecipeList = new Tree("Tree") {SizeFlagsVertical = SizeFlags.FillExpand, HideRoot = true}; + var recipes = new VBoxContainer {CustomMinimumSize = new Vector2(150.0f, 0.0f)}; + SearchBar = new LineEdit {PlaceHolder = "Search"}; + RecipeList = new Tree {SizeFlagsVertical = SizeFlags.FillExpand, HideRoot = true}; recipes.AddChild(SearchBar); recipes.AddChild(RecipeList); hSplitContainer.AddChild(recipes); // Right side - var guide = new VBoxContainer("Guide"); - var info = new HBoxContainer("Info"); - InfoIcon = new TextureRect("TextureRect"); - InfoLabel = new Label("Label") + var guide = new VBoxContainer(); + var info = new HBoxContainer(); + InfoIcon = new TextureRect(); + InfoLabel = new Label { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsVertical = SizeFlags.ShrinkCenter }; @@ -85,7 +73,7 @@ namespace Content.Client.Construction info.AddChild(InfoLabel); guide.AddChild(info); - var stepsLabel = new Label("Label") + var stepsLabel = new Label { SizeFlagsHorizontal = SizeFlags.ShrinkCenter, SizeFlagsVertical = SizeFlags.ShrinkCenter, @@ -93,14 +81,14 @@ namespace Content.Client.Construction }; guide.AddChild(stepsLabel); - StepList = new ItemList("StepsList") + StepList = new ItemList { SizeFlagsVertical = SizeFlags.FillExpand, SelectMode = ItemList.ItemListSelectMode.None }; guide.AddChild(StepList); - var buttonsContainer = new HBoxContainer("Buttons"); - BuildButton = new Button("BuildButton") + var buttonsContainer = new HBoxContainer(); + BuildButton = new Button { SizeFlagsHorizontal = SizeFlags.FillExpand, TextAlign = Button.AlignMode.Center, @@ -108,7 +96,7 @@ namespace Content.Client.Construction Disabled = true, ToggleMode = false }; - EraseButton = new Button("EraseButton") + EraseButton = new Button { TextAlign = Button.AlignMode.Center, Text = "Clear Ghosts", ToggleMode = true }; @@ -140,7 +128,7 @@ namespace Content.Client.Construction void OnItemSelected() { - var prototype = (ConstructionPrototype)RecipeList.Selected.Metadata; + var prototype = (ConstructionPrototype) RecipeList.Selected.Metadata; if (prototype == null) { @@ -163,6 +151,7 @@ namespace Content.Client.Construction { continue; } + Texture icon; string text; switch (forward) @@ -171,20 +160,24 @@ namespace Content.Client.Construction switch (mat.Material) { case ConstructionStepMaterial.MaterialType.Metal: - icon = ResourceCache.GetResource("/Textures/Objects/sheet_metal.png"); + icon = ResourceCache.GetResource( + "/Textures/Objects/sheet_metal.png"); text = $"Metal x{mat.Amount}"; break; case ConstructionStepMaterial.MaterialType.Glass: - icon = ResourceCache.GetResource("/Textures/Objects/sheet_glass.png"); + icon = ResourceCache.GetResource( + "/Textures/Objects/sheet_glass.png"); text = $"Glass x{mat.Amount}"; break; case ConstructionStepMaterial.MaterialType.Cable: - icon = ResourceCache.GetResource("/Textures/Objects/cable_coil.png"); + icon = ResourceCache.GetResource( + "/Textures/Objects/cable_coil.png"); text = $"Cable Coil x{mat.Amount}"; break; default: throw new NotImplementedException(); } + break; case ConstructionStepTool tool: switch (tool.Tool) @@ -198,20 +191,24 @@ namespace Content.Client.Construction text = "Crowbar"; break; case ConstructionStepTool.ToolType.Screwdriver: - icon = ResourceCache.GetResource("/Textures/Objects/screwdriver.png"); + icon = ResourceCache.GetResource( + "/Textures/Objects/screwdriver.png"); text = "Screwdriver"; break; case ConstructionStepTool.ToolType.Welder: - icon = ResourceCache.GetResource("/Textures/Objects/tools.rsi").RSI["welder"].Frame0; + icon = ResourceCache.GetResource("/Textures/Objects/tools.rsi") + .RSI["welder"].Frame0; text = $"Welding tool ({tool.Amount} fuel)"; break; case ConstructionStepTool.ToolType.Wirecutters: - icon = ResourceCache.GetResource("/Textures/Objects/wirecutter.png"); + icon = ResourceCache.GetResource( + "/Textures/Objects/wirecutter.png"); text = "Wirecutters"; break; default: throw new NotImplementedException(); } + break; default: throw new NotImplementedException(); @@ -230,7 +227,7 @@ namespace Content.Client.Construction void OnBuildPressed(Button.ButtonEventArgs args) { - var prototype = (ConstructionPrototype)RecipeList.Selected.Metadata; + var prototype = (ConstructionPrototype) RecipeList.Selected.Metadata; if (prototype == null) { return; @@ -278,6 +275,7 @@ namespace Content.Client.Construction subNode = new CategoryNode(category, currentNode); currentNode.ChildCategories.Add(category, subNode); } + currentNode = subNode; } @@ -356,6 +354,7 @@ namespace Content.Client.Construction continue; } } + var subItem = RecipeList.CreateItem(ItemForNode(node)); subItem.Text = prototype.Name; subItem.Metadata = prototype; @@ -377,7 +376,10 @@ namespace Content.Client.Construction { public readonly string Name; public readonly CategoryNode Parent; - public SortedDictionary ChildCategories = new SortedDictionary(); + + public SortedDictionary + ChildCategories = new SortedDictionary(); + public List Prototypes = new List(); public int FlattenedIndex = -1; diff --git a/Content.Client/GameObjects/Components/Power/ApcBoundUserInterface.cs b/Content.Client/GameObjects/Components/Power/ApcBoundUserInterface.cs index 3bdc47a5f0..70988ff320 100644 --- a/Content.Client/GameObjects/Components/Power/ApcBoundUserInterface.cs +++ b/Content.Client/GameObjects/Components/Power/ApcBoundUserInterface.cs @@ -1,18 +1,13 @@ using System; using Content.Client.UserInterface; using Content.Shared.GameObjects.Components.Power; -using NJsonSchema.Validation; -using OpenTK.Graphics.OpenGL4; using Robust.Client.GameObjects.Components.UserInterface; using Robust.Client.Graphics.Drawing; -using Robust.Client.Interfaces.Graphics; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.CustomControls; using Robust.Shared.GameObjects.Components.UserInterface; -using Robust.Shared.IoC; using Robust.Shared.Maths; -using Robust.Shared.Utility; namespace Content.Client.GameObjects.Components.Power { @@ -72,34 +67,34 @@ namespace Content.Client.GameObjects.Components.Power _chargeBar.Value = castState.Charge; UpdateChargeBarColor(castState.Charge); - float ChargePercentage = (castState.Charge / _chargeBar.MaxValue) * 100.0f; - _window.ChargePercentage.Text = " " + ChargePercentage.ToString("0.00") + "%"; + var chargePercentage = (castState.Charge / _chargeBar.MaxValue) * 100.0f; + _window.ChargePercentage.Text = " " + chargePercentage.ToString("0.00") + "%"; } private void UpdateChargeBarColor(float charge) { - float normalizedCharge = charge / _chargeBar.MaxValue; + var normalizedCharge = charge / _chargeBar.MaxValue; - float leftHue = 0.0f;// Red - float middleHue = 0.066f;// Orange - float rightHue = 0.33f;// Green - float saturation = 1.0f;// Uniform saturation - float value = 0.8f;// Uniform value / brightness - float alpha = 1.0f;// Uniform alpha + const float leftHue = 0.0f; // Red + const float middleHue = 0.066f; // Orange + const float rightHue = 0.33f; // Green + const float saturation = 1.0f; // Uniform saturation + const float value = 0.8f; // Uniform value / brightness + const float alpha = 1.0f; // Uniform alpha // These should add up to 1.0 or your transition won't be smooth - float leftSideSize = 0.5f;// Fraction of _chargeBar lerped from leftHue to middleHue - float rightSideSize = 0.5f;// Fraction of _chargeBar lerped from middleHue to rightHue + const float leftSideSize = 0.5f; // Fraction of _chargeBar lerped from leftHue to middleHue + const float rightSideSize = 0.5f; // Fraction of _chargeBar lerped from middleHue to rightHue float finalHue; if (normalizedCharge <= leftSideSize) { - normalizedCharge /= leftSideSize;// Adjust range to 0.0 to 1.0 + normalizedCharge /= leftSideSize; // Adjust range to 0.0 to 1.0 finalHue = FloatMath.Lerp(leftHue, middleHue, normalizedCharge); } else { - normalizedCharge = (normalizedCharge - leftSideSize) / rightSideSize;// Adjust range to 0.0 to 1.0. + normalizedCharge = (normalizedCharge - leftSideSize) / rightSideSize; // Adjust range to 0.0 to 1.0. finalHue = FloatMath.Lerp(middleHue, rightHue, normalizedCharge); } @@ -109,7 +104,7 @@ namespace Content.Client.GameObjects.Components.Power _chargeBar.ForegroundStyleBoxOverride = new StyleBoxFlat(); } - var foregroundStyleBoxOverride = (StyleBoxFlat)_chargeBar.ForegroundStyleBoxOverride; + var foregroundStyleBoxOverride = (StyleBoxFlat) _chargeBar.ForegroundStyleBoxOverride; foregroundStyleBoxOverride.BackgroundColor = Color.FromHsv(new Vector4(finalHue, saturation, value, alpha)); } @@ -134,29 +129,29 @@ namespace Content.Client.GameObjects.Components.Power public ApcWindow() { Title = "APC"; - var rows = new VBoxContainer("Rows"); + var rows = new VBoxContainer(); - var statusHeader = new Label("StatusHeader") { Text = "Power Status: " }; + var statusHeader = new Label {Text = "Power Status: "}; rows.AddChild(statusHeader); - var breaker = new HBoxContainer("Breaker"); - var breakerLabel = new Label("Label") { Text = "Main Breaker: " }; - BreakerButton = new CheckButton {Name = "Breaker", Text = "Toggle"}; + var breaker = new HBoxContainer(); + var breakerLabel = new Label {Text = "Main Breaker: "}; + BreakerButton = new CheckButton {Text = "Toggle"}; breaker.AddChild(breakerLabel); breaker.AddChild(BreakerButton); rows.AddChild(breaker); - var externalStatus = new HBoxContainer("ExternalStatus"); - var externalStatusLabel = new Label("Label") { Text = "External Power: " }; - ExternalPowerStateLabel = new Label("Status") { Text = "Good" }; + var externalStatus = new HBoxContainer(); + var externalStatusLabel = new Label {Text = "External Power: "}; + ExternalPowerStateLabel = new Label {Text = "Good"}; ExternalPowerStateLabel.SetOnlyStyleClass(NanoStyle.StyleClassPowerStateGood); externalStatus.AddChild(externalStatusLabel); externalStatus.AddChild(ExternalPowerStateLabel); rows.AddChild(externalStatus); - var charge = new HBoxContainer("Charge"); - var chargeLabel = new Label("Label") { Text = "Charge:" }; - ChargeBar = new ProgressBar("Charge") + var charge = new HBoxContainer(); + var chargeLabel = new Label {Text = "Charge:"}; + ChargeBar = new ProgressBar { SizeFlagsHorizontal = Control.SizeFlags.FillExpand, MinValue = 0.0f, @@ -164,7 +159,7 @@ namespace Content.Client.GameObjects.Components.Power Page = 0.0f, Value = 0.5f }; - ChargePercentage = new Label("ChargePercentage"); + ChargePercentage = new Label(); charge.AddChild(chargeLabel); charge.AddChild(ChargeBar); charge.AddChild(ChargePercentage); diff --git a/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs b/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs index ad8501cc64..aed0ca9c1c 100644 --- a/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs +++ b/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs @@ -30,7 +30,7 @@ namespace Content.Client.GameObjects.Components.Storage base.OnAdd(); Window = new StorageWindow() - { StorageEntity = this}; + {StorageEntity = this}; } public override void OnRemove() @@ -44,7 +44,8 @@ namespace Content.Client.GameObjects.Components.Storage base.ExposeData(serializer); } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, IComponent component = null) + public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, + IComponent component = null) { switch (message) { @@ -108,32 +109,27 @@ namespace Content.Client.GameObjects.Components.Storage public StorageWindow() { - Size = new Vector2(180.0f, 320.0f); - } - - protected override void Initialize() - { - base.Initialize(); + Size = (180, 320); Title = "Storage Item"; RectClipContent = true; - VSplitContainer = new VBoxContainer("VSplitContainer"); - Information = new Label("Information") + VSplitContainer = new VBoxContainer(); + Information = new Label { Text = "Items: 0 Volume: 0/0 Stuff", SizeFlagsVertical = SizeFlags.ShrinkCenter }; VSplitContainer.AddChild(Information); - var listScrollContainer = new ScrollContainer("ListScrollContainer") + var listScrollContainer = new ScrollContainer { SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsHorizontal = SizeFlags.FillExpand, HScrollEnabled = true, VScrollEnabled = true }; - EntityList = new VBoxContainer("EntityList") + EntityList = new VBoxContainer { SizeFlagsHorizontal = SizeFlags.FillExpand }; @@ -182,7 +178,8 @@ namespace Content.Client.GameObjects.Components.Storage //Sets information about entire storage container current capacity if (StorageEntity.StorageCapacityMax != 0) { - Information.Text = String.Format("Items: {0}, Stored: {1}/{2}", storagelist.Count, StorageEntity.StorageSizeUsed, StorageEntity.StorageCapacityMax); + Information.Text = String.Format("Items: {0}, Stored: {1}/{2}", storagelist.Count, + StorageEntity.StorageSizeUsed, StorageEntity.StorageCapacityMax); } else { @@ -196,7 +193,7 @@ namespace Content.Client.GameObjects.Components.Storage /// private void OnItemButtonToggled(BaseButton.ButtonToggledEventArgs args) { - var control = (EntityButton)args.Button.Parent; + var control = (EntityButton) args.Button.Parent; args.Button.Pressed = false; StorageEntity.Interact(control.EntityuID); } @@ -208,17 +205,15 @@ namespace Content.Client.GameObjects.Components.Storage private class EntityButton : PanelContainer { public EntityUid EntityuID { get; set; } - public Button ActualButton { get; private set; } - public SpriteView EntitySpriteView { get; private set; } - public Control EntityControl { get; private set; } - public Label EntityName { get; private set; } - public Label EntitySize { get; private set; } + public Button ActualButton { get; } + public SpriteView EntitySpriteView { get; } + public Control EntityControl { get; } + public Label EntityName { get; } + public Label EntitySize { get; } - protected override void Initialize() + public EntityButton() { - base.Initialize(); - - ActualButton = new Button("Button") + ActualButton = new Button { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsVertical = SizeFlags.FillExpand, @@ -227,12 +222,12 @@ namespace Content.Client.GameObjects.Components.Storage }; AddChild(ActualButton); - var hBoxContainer = new HBoxContainer("HBoxContainer") {MouseFilter = MouseFilterMode.Ignore}; - EntitySpriteView = new SpriteView("SpriteView") + var hBoxContainer = new HBoxContainer {MouseFilter = MouseFilterMode.Ignore}; + EntitySpriteView = new SpriteView { CustomMinimumSize = new Vector2(32.0f, 32.0f), MouseFilter = MouseFilterMode.Ignore }; - EntityName = new Label("Name") + EntityName = new Label { SizeFlagsVertical = SizeFlags.ShrinkCenter, Text = "Backpack", @@ -241,11 +236,11 @@ namespace Content.Client.GameObjects.Components.Storage hBoxContainer.AddChild(EntitySpriteView); hBoxContainer.AddChild(EntityName); - EntityControl = new Control("Control") + EntityControl = new Control { SizeFlagsHorizontal = SizeFlags.FillExpand, MouseFilter = MouseFilterMode.Ignore }; - EntitySize = new Label("Size") + EntitySize = new Label { SizeFlagsVertical = SizeFlags.ShrinkCenter, Text = "Size 6", diff --git a/Content.Client/GameObjects/EntitySystems/VerbSystem.cs b/Content.Client/GameObjects/EntitySystems/VerbSystem.cs index 8326b415e7..a323f581b3 100644 --- a/Content.Client/GameObjects/EntitySystems/VerbSystem.cs +++ b/Content.Client/GameObjects/EntitySystems/VerbSystem.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Linq; using Content.Shared.GameObjects; using Content.Shared.GameObjects.EntitySystemMessages; using Content.Shared.Input; @@ -66,7 +65,7 @@ namespace Content.Client.GameObjects.EntitySystems _currentPopup = new Popup(); _currentPopup.UserInterfaceManager.StateRoot.AddChild(_currentPopup); _currentPopup.OnPopupHide += _closeContextMenu; - var vBox = new VBoxContainer("ButtonBox"); + var vBox = new VBoxContainer(); _currentPopup.AddChild(vBox); vBox.AddChild(new Label {Text = "Waiting on Server..."}); @@ -94,7 +93,7 @@ namespace Content.Client.GameObjects.EntitySystems _currentPopup = new Popup(); _currentPopup.OnPopupHide += _closeContextMenu; - var vBox = new VBoxContainer("ButtonBox"); + var vBox = new VBoxContainer(); _currentPopup.AddChild(vBox); foreach (var entity in entities) { diff --git a/Content.Client/Research/LatheMenu.cs b/Content.Client/Research/LatheMenu.cs index 4c11178941..e4f5964325 100644 --- a/Content.Client/Research/LatheMenu.cs +++ b/Content.Client/Research/LatheMenu.cs @@ -2,8 +2,6 @@ using System.Collections.Generic; using Content.Client.GameObjects.Components.Research; using Content.Shared.Materials; using Content.Shared.Research; -using Robust.Client.Interfaces.Graphics; -using Robust.Client.Interfaces.ResourceManagement; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.CustomControls; @@ -12,15 +10,13 @@ using Robust.Shared.IoC; using Robust.Shared.Maths; using Robust.Shared.Prototypes; using Robust.Shared.Timers; -using Robust.Shared.Utility; namespace Content.Client.Research { public class LatheMenu : SS14Window { #pragma warning disable CS0649 - [Dependency] - private IPrototypeManager PrototypeManager; + [Dependency] private IPrototypeManager PrototypeManager; #pragma warning restore private ItemList Items; @@ -37,15 +33,6 @@ namespace Content.Client.Research public LatheMenu() { - } - - public LatheMenu(string name) : base(name) - { - } - - protected override void Initialize() - { - base.Initialize(); IoCManager.InjectDependencies(this); Title = "Lathe Menu"; @@ -62,15 +49,15 @@ namespace Content.Client.Research margin.SetAnchorAndMarginPreset(LayoutPreset.Wide); - var vbox = new VBoxContainer() + var vBox = new VBoxContainer() { SizeFlagsVertical = SizeFlags.FillExpand, SeparationOverride = 5, }; - vbox.SetAnchorAndMarginPreset(LayoutPreset.Wide); + vBox.SetAnchorAndMarginPreset(LayoutPreset.Wide); - var hboxButtons = new HBoxContainer() + var hBoxButtons = new HBoxContainer() { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsVertical = SizeFlags.FillExpand, @@ -93,7 +80,7 @@ namespace Content.Client.Research spacer.SetAnchorAndMarginPreset(LayoutPreset.Wide); - var hboxFilter = new HBoxContainer() + var hBoxFilter = new HBoxContainer() { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsVertical = SizeFlags.FillExpand, @@ -124,8 +111,6 @@ namespace Content.Client.Research SizeFlagsVertical = SizeFlags.FillExpand, }; - - Items.OnItemSelected += ItemSelected; AmountLineEdit = new LineEdit() @@ -143,19 +128,19 @@ namespace Content.Client.Research SizeFlagsStretchRatio = 3 }; - hboxButtons.AddChild(spacer); - hboxButtons.AddChild(QueueButton); + hBoxButtons.AddChild(spacer); + hBoxButtons.AddChild(QueueButton); - hboxFilter.AddChild(SearchBar); - hboxFilter.AddChild(filterButton); + hBoxFilter.AddChild(SearchBar); + hBoxFilter.AddChild(filterButton); - vbox.AddChild(hboxButtons); - vbox.AddChild(hboxFilter); - vbox.AddChild(Items); - vbox.AddChild(AmountLineEdit); - vbox.AddChild(Materials); + vBox.AddChild(hBoxButtons); + vBox.AddChild(hBoxFilter); + vBox.AddChild(Items); + vBox.AddChild(AmountLineEdit); + vBox.AddChild(Materials); - margin.AddChild(vbox); + margin.AddChild(vBox); Contents.AddChild(margin); } diff --git a/Content.Client/Research/LatheQueueMenu.cs b/Content.Client/Research/LatheQueueMenu.cs index 3d1a183bfd..6281a6311a 100644 --- a/Content.Client/Research/LatheQueueMenu.cs +++ b/Content.Client/Research/LatheQueueMenu.cs @@ -1,13 +1,9 @@ using Content.Client.GameObjects.Components.Research; using Content.Shared.Research; using Robust.Client.Graphics; -using Robust.Client.Graphics.Drawing; -using Robust.Client.Interfaces.Graphics; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.CustomControls; using Robust.Client.Utility; -using Robust.Shared.IoC; -using Robust.Shared.Log; using Robust.Shared.Maths; using Robust.Shared.ViewVariables; @@ -25,11 +21,9 @@ namespace Content.Client.Research private Label Description; private TextureRect Icon; - protected override void Initialize() + public LatheQueueMenu() { - base.Initialize(); - - Title = "Lathe Queue"; + Title = "Lathe Queue"; var margin = new MarginContainer() { @@ -41,9 +35,9 @@ namespace Content.Client.Research margin.SetAnchorAndMarginPreset(LayoutPreset.Wide); - var vbox = new VBoxContainer(); + var vBox = new VBoxContainer(); - vbox.SetAnchorAndMarginPreset(LayoutPreset.Wide); + vBox.SetAnchorAndMarginPreset(LayoutPreset.Wide); var descMargin = new MarginContainer() { @@ -55,7 +49,7 @@ namespace Content.Client.Research SizeFlagsStretchRatio = 2, }; - var hbox = new HBoxContainer() + var hBox = new HBoxContainer() { SizeFlagsHorizontal = SizeFlags.FillExpand, }; @@ -66,7 +60,7 @@ namespace Content.Client.Research SizeFlagsStretchRatio = 2, }; - var vboxInfo = new VBoxContainer() + var vBoxInfo = new VBoxContainer() { SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsStretchRatio = 3, @@ -94,18 +88,18 @@ namespace Content.Client.Research SelectMode = ItemList.ItemListSelectMode.None }; - vboxInfo.AddChild(NameLabel); - vboxInfo.AddChild(Description); + vBoxInfo.AddChild(NameLabel); + vBoxInfo.AddChild(Description); - hbox.AddChild(Icon); - hbox.AddChild(vboxInfo); + hBox.AddChild(Icon); + hBox.AddChild(vBoxInfo); - descMargin.AddChild(hbox); + descMargin.AddChild(hBox); - vbox.AddChild(descMargin); - vbox.AddChild(QueueList); + vBox.AddChild(descMargin); + vBox.AddChild(QueueList); - margin.AddChild(vbox); + margin.AddChild(vBox); Contents.AddChild(margin); diff --git a/Content.Client/UserInterface/HandsGui.cs b/Content.Client/UserInterface/HandsGui.cs index 7a3dfbbf56..9ad858b277 100644 --- a/Content.Client/UserInterface/HandsGui.cs +++ b/Content.Client/UserInterface/HandsGui.cs @@ -37,14 +37,12 @@ namespace Content.Client.UserInterface private UIBox2i _handL; private UIBox2i _handR; - private SpriteView LeftSpriteView; - private SpriteView RightSpriteView; - private TextureRect ActiveHandRect; + private readonly SpriteView LeftSpriteView; + private readonly SpriteView RightSpriteView; + private readonly TextureRect ActiveHandRect; - protected override void Initialize() + public HandsGui() { - base.Initialize(); - IoCManager.InjectDependencies(this); ToolTip = _loc.GetString("Your hands"); diff --git a/RobustToolbox b/RobustToolbox index 95f9126d12..cb5f2ffae1 160000 --- a/RobustToolbox +++ b/RobustToolbox @@ -1 +1 @@ -Subproject commit 95f9126d12e071b233ae7154c4228e1d6ca085b0 +Subproject commit cb5f2ffae1994e0a3f0f6be5697896ab7eaafe50 From aed1a0d985831af0c06dc15363901733d70a58b8 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Wed, 14 Aug 2019 22:06:52 +0200 Subject: [PATCH 20/24] And I messed up again. --- .../VendingMachines/VendingMachineMenu.cs | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/Content.Client/VendingMachines/VendingMachineMenu.cs b/Content.Client/VendingMachines/VendingMachineMenu.cs index 271e8b8ade..8d2ff1b257 100644 --- a/Content.Client/VendingMachines/VendingMachineMenu.cs +++ b/Content.Client/VendingMachines/VendingMachineMenu.cs @@ -3,12 +3,7 @@ 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; @@ -22,7 +17,7 @@ namespace Content.Client.VendingMachines { protected override Vector2? CustomSize => (300, 450); - private ItemList _items; + private readonly ItemList _items; private List _cachedInventory; #pragma warning disable CS0649 @@ -32,18 +27,9 @@ namespace Content.Client.VendingMachines 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() From b38a014b02ccddc006c7800556d24f5767e9f6c9 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Thu, 15 Aug 2019 15:49:16 +0200 Subject: [PATCH 21/24] Fix build --- Content.Client/Research/LatheMenu.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Content.Client/Research/LatheMenu.cs b/Content.Client/Research/LatheMenu.cs index e4f5964325..4a0ffbae6e 100644 --- a/Content.Client/Research/LatheMenu.cs +++ b/Content.Client/Research/LatheMenu.cs @@ -10,6 +10,7 @@ using Robust.Shared.IoC; using Robust.Shared.Maths; using Robust.Shared.Prototypes; using Robust.Shared.Timers; +using Robust.Shared.Utility; namespace Content.Client.Research { From 225bc86d738eb0b9076c2f59ab9cfe991b8a7516 Mon Sep 17 00:00:00 2001 From: DamianX Date: Fri, 16 Aug 2019 18:08:43 +0200 Subject: [PATCH 22/24] Revert "full mime outfit, HoP hat and uniform" (#305) This reverts commit 89c485200bcf498565bfda9ee3cd30c87ccdf5f5. --- .../Entities/items/clothing/belts.yml | 2 - .../Entities/items/clothing/gloves.yml | 17 +-------- .../Entities/items/clothing/hats.yml | 34 ----------------- .../Entities/items/clothing/masks.yml | 17 +-------- .../Entities/items/clothing/shoes.yml | 19 +-------- .../Entities/items/clothing/suits.yml | 15 -------- .../Entities/items/clothing/uniforms.yml | 36 +----------------- .../Textures/Clothing/beret.rsi/beret.png | Bin 448 -> 0 bytes .../Clothing/beret.rsi/equipped-HELMET.png | Bin 270 -> 0 bytes .../Textures/Clothing/beret.rsi/meta.json | 26 ------------- .../gloves_white.rsi/equipped-HAND.png | Bin 216 -> 0 bytes .../Clothing/gloves_white.rsi/meta.json | 26 ------------- .../Clothing/gloves_white.rsi/white.png | Bin 462 -> 0 bytes .../Clothing/hop_coat.rsi/equipped-OUTER.png | Bin 1078 -> 0 bytes .../Clothing/hop_hat.rsi/equipped-HELMET.png | Bin 452 -> 0 bytes .../Textures/Clothing/hop_hat.rsi/hop.png | Bin 352 -> 0 bytes .../Textures/Clothing/hop_hat.rsi/meta.json | 26 ------------- 17 files changed, 4 insertions(+), 214 deletions(-) delete mode 100644 Resources/Textures/Clothing/beret.rsi/beret.png delete mode 100644 Resources/Textures/Clothing/beret.rsi/equipped-HELMET.png delete mode 100644 Resources/Textures/Clothing/beret.rsi/meta.json delete mode 100644 Resources/Textures/Clothing/gloves_white.rsi/equipped-HAND.png delete mode 100644 Resources/Textures/Clothing/gloves_white.rsi/meta.json delete mode 100644 Resources/Textures/Clothing/gloves_white.rsi/white.png delete mode 100644 Resources/Textures/Clothing/hop_coat.rsi/equipped-OUTER.png delete mode 100644 Resources/Textures/Clothing/hop_hat.rsi/equipped-HELMET.png delete mode 100644 Resources/Textures/Clothing/hop_hat.rsi/hop.png delete mode 100644 Resources/Textures/Clothing/hop_hat.rsi/meta.json diff --git a/Resources/Prototypes/Entities/items/clothing/belts.yml b/Resources/Prototypes/Entities/items/clothing/belts.yml index 84cb15b8a0..b023279c80 100644 --- a/Resources/Prototypes/Entities/items/clothing/belts.yml +++ b/Resources/Prototypes/Entities/items/clothing/belts.yml @@ -24,5 +24,3 @@ sprite: Clothing/belt_utility.rsi - type: Storage Capacity: 30 - - diff --git a/Resources/Prototypes/Entities/items/clothing/gloves.yml b/Resources/Prototypes/Entities/items/clothing/gloves.yml index af0b3af5a7..a47c382c76 100644 --- a/Resources/Prototypes/Entities/items/clothing/gloves.yml +++ b/Resources/Prototypes/Entities/items/clothing/gloves.yml @@ -53,19 +53,4 @@ state: leather - type: Clothing sprite: Clothing/gloves_leather.rsi - HeatResistance: 1500 - -- type: entity - parent: GlovesBase - id: WhiteGloves - name: White Gloves - description: These look pretty fancy. - components: - - type: Sprite - sprite: Clothing/gloves_white.rsi - state: white - - type: Icon - sprite: Clothing/gloves_white.rsi - state: white - - type: Clothing - sprite: Clothing/gloves_white.rsi \ No newline at end of file + HeatResistance: 1500 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/items/clothing/hats.yml b/Resources/Prototypes/Entities/items/clothing/hats.yml index 423ed9fde7..26aaed52c0 100644 --- a/Resources/Prototypes/Entities/items/clothing/hats.yml +++ b/Resources/Prototypes/Entities/items/clothing/hats.yml @@ -40,37 +40,3 @@ sprite: Clothing/captain_hat.rsi Slots: - helmet - -- type: entity - parent: HatBase - id: HatHOP - name: Head of Personnel's Hat - description: Papers, please. - components: - - type: Sprite - sprite: Clothing/hop_hat.rsi - state: hop - - type: Icon - sprite: Clothing/hop_hat.rsi - state: hop - - type: Clothing - sprite: Clothing/hop_hat.rsi - Slots: - - helmet - -- type: entity - parent: HatBase - id: HatBeret - name: Beret - description: A beret, an artists favorite headwear. - components: - - type: Sprite - sprite: Clothing/beret.rsi - state: beret - - type: Icon - sprite: Clothing/beret.rsi - state: beret - - type: Clothing - sprite: Clothing/beret.rsi - Slots: - - helmet diff --git a/Resources/Prototypes/Entities/items/clothing/masks.yml b/Resources/Prototypes/Entities/items/clothing/masks.yml index 37ed00bff3..9a0c7d2388 100644 --- a/Resources/Prototypes/Entities/items/clothing/masks.yml +++ b/Resources/Prototypes/Entities/items/clothing/masks.yml @@ -47,19 +47,4 @@ sprite: Clothing/mask_clown.rsi state: icon - type: Clothing - sprite: Clothing/mask_clown.rsi - -- type: entity - parent: MasksBase - id: MaskMime - name: Mime Mask - description: The traditional mime's mask. It has an eerie facial posture. - components: - - type: Sprite - sprite: Clothing/mask_mime.rsi - state: mime - - type: Icon - sprite: Clothing/mask_mime.rsi - state: mime - - type: Clothing - sprite: Clothing/mask_mime.rsi \ No newline at end of file + sprite: Clothing/mask_clown.rsi \ No newline at end of file diff --git a/Resources/Prototypes/Entities/items/clothing/shoes.yml b/Resources/Prototypes/Entities/items/clothing/shoes.yml index a046c1d5c8..1d7d2a03be 100644 --- a/Resources/Prototypes/Entities/items/clothing/shoes.yml +++ b/Resources/Prototypes/Entities/items/clothing/shoes.yml @@ -100,21 +100,4 @@ state: brown - type: Clothing - sprite: Clothing/shoes_brown.rsi - -- type: entity - parent: ShoesBase - id: ShoesMime - name: Mime Shoes - description: Comfortable-looking shoes. - components: - - type: Sprite - sprite: Clothing/shoes_mime.rsi - state: mime - - - type: Icon - sprite: Clothing/shoes_mime.rsi - state: mime - - - type: Clothing - sprite: Clothing/shoes_mime.rsi \ No newline at end of file + sprite: Clothing/shoes_brown.rsi \ No newline at end of file diff --git a/Resources/Prototypes/Entities/items/clothing/suits.yml b/Resources/Prototypes/Entities/items/clothing/suits.yml index 991628dcfd..fa6132001a 100644 --- a/Resources/Prototypes/Entities/items/clothing/suits.yml +++ b/Resources/Prototypes/Entities/items/clothing/suits.yml @@ -58,18 +58,3 @@ - type: Clothing sprite: Clothing/chef_apron.rsi - -- type: entity - parent: SuitBase - id: BeltSuspenders - name: Suspenders - description: They suspend the illusion of the mime's play. - components: - - type: Sprite - sprite: Clothing/suspenders.rsi - state: suspenders - - type: Icon - sprite: Clothing/suspenders.rsi - state: suspenders - - type: Clothing - sprite: Clothing/suspenders.rsi \ No newline at end of file diff --git a/Resources/Prototypes/Entities/items/clothing/uniforms.yml b/Resources/Prototypes/Entities/items/clothing/uniforms.yml index d5986f3ef1..fa65553d34 100644 --- a/Resources/Prototypes/Entities/items/clothing/uniforms.yml +++ b/Resources/Prototypes/Entities/items/clothing/uniforms.yml @@ -141,38 +141,4 @@ state: captain - type: Clothing - sprite: Clothing/captain_uniform.rsi - -- type: entity - parent: UniformBase - id: UniformHOP - name: Head of Personnel's Jumpsuit - description: It's a jumpsuit worn by someone who works in the position of "Head of Personnel". - components: - - type: Sprite - sprite: Clothing/hop_jumpsuit.rsi - state: hop - - - type: Icon - sprite: Clothing/hop_jumpsuit.rsi - state: hop - - - type: Clothing - sprite: Clothing/hop_jumpsuit.rsi - -- type: entity - parent: UniformBase - id: UniformMime - name: Mime's Outfit - description: It's not very colourful. - components: - - type: Sprite - sprite: Clothing/mime_outfit.rsi - state: mime - - - type: Icon - sprite: Clothing/mime_outfit.rsi - state: mime - - - type: Clothing - sprite: Clothing/mime_outfit.rsi \ No newline at end of file + sprite: Clothing/captain_uniform.rsi diff --git a/Resources/Textures/Clothing/beret.rsi/beret.png b/Resources/Textures/Clothing/beret.rsi/beret.png deleted file mode 100644 index feac165f6d246fd7969c41f5588cb8dd898d5d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmV;x0YCnUP)y_L3(MPk9V|gMcp}Fz2I zX(tPUGf6xM_6KunrvCr0s&1%MDwY2od1`@q+nNJ*yeFHH%{V$c8(sI&2Ig&RQ}3BL z$1~?pAe*sP*c(cE6jR=mrb~Pfr+THCF z=aTs3`kI&1X`kNA7|uV!KsF;dhiuI|=M2!d`_s)009P^MxZj2DZ;YT*^Q@OZJ1?M>hQ@oP$a*=(4FaNnIG{^8*cHkO5EYL-r)K z8I68VSDxZYSy`YkRm*uoQkUSP|9zd8to-uyFU`MQySss7@+$e=9=q7S31=PfT$OGf zrgD~(ckZoc{c|g&*Cg&psJ`^q)lJxE)wQ4Po~2vb7AC2$TxT7Br{);%ja!Pl3|^mN z23iaOH(WGs8&4Ow&7a&3YjGYH3?Wz;5~22g)DsIk)<6*!J_$s|@xF zwc9_ODzLd{^|yd)=CsT6%zuRaxOHpQXa| zcKlyxsTkQxa8$bFLsEBK6)cd8(?{>-DW6-X7o)2{Wtr9!=9&9BtbI zfC9j)L0%3(MCzQw>2z9104yZyH~=(FgTC*VS=UeOEfA3sk*1V1rKIyb7gtJ2$8juj z^4xV@?va;IfQU4Nu-vPD);i~496z5)uZdDWXqf4b`oCBG>Z9uwU@#aA z27|$1(1UXxP|oM2&p8j|QJB691ZzML72})-Ye3)vxf-GBFDxvCM;iUp6!9v6#WB|x zmHS-4q8dWccN`}(eXScg=fQuMe??Gj;HMWZ4h{|=gs{}><#HL7N(BJmdEUtNv~bP? z>Gb~oey9TgzVAcK|AL^}7&z2vVRmO-TmO`1lUkpTCRNi+JFEsyR$Bh%_Iuq^y8e5LeVD~s?)RP)dcd=*PaMT zYKL!ezC45ZiiO6L4`|&xhrRs({~sKpJu^owj*Qfo%vY>b`s4~|&&&az0lWvE{{G|F z3o~OM$&^rE@;;qDxdIqtBkj)j{jd{KhpW7h`chZ5BZEIb!y&Jbg_u~1 zS_Lu~30;pnO8}(UoVuUdk zrl&4Ff0#M}nuh2?sazSR*h7v0byfDw%}2Se1W!VBUgibItr$-t(V}R**M-$-0T?7J zi>`#I^J)Z8NxUjNyR#0f(+ZQ7MI)WIZ97~jEhGZeT9$hSifjtxex`B7mG4 zyU}g~0R9B z-hK(NWN)kX2}Q8GE5hGG2x|$j+~J5OZPbMv0d8dIl*x)&c+{d2bMe*7fp+A)3s^Pc zT!0h-aoN{Wsf60$+wj=l&M#B5y^TQCDwRrFHcleZM5x_vTk?POp1dbTlQe6!T0or$ zk&RUiP&Y7Uy*u>Fnr&90ZeNqgu<-ClK=n!07*qoM6N<$f{mg7qyPW_ diff --git a/Resources/Textures/Clothing/hop_hat.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/hop_hat.rsi/equipped-HELMET.png deleted file mode 100644 index 866e91981aea4586a8aca7cd572bd5d7bb9ffc41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVC?pEaSW-L^Y)fu_8|um_7C+7 zoQt`fp08Qgp1iQ6aC@-T55rB?yPhXom`r}B*M1>z(=ID<7T-H@?UPKnGWV|T4ESd+ zkfied?%rxYeL0zx29q9Hc_*DWJ-7DmO}l`c7&hl0bM-zQmg5pw@YTuV=`G9kSDT;D z)_>A&yXUKr!)MnOW%n$n-?=6`LDf*CA^GXN@H_m(!LIVv~`bQro_ z5=rWr_$Y31XQ0@EGvR+3Cd}WpxG#9?mTQ;Ze?R?x_F1;fS=&DSzaDixZ_`>+0YM~C zn_1;narMWw%ZUr>T;{5NydPFQQJ;{Mmf}<)a<5qD2p`WbRx2^CaJ9l{Wj>DfvB5CQtOf(H-(RWwKyMX)NEzHU6jO z>zxw*aLwCh&wfURw9S%Ld($)SzIe&Za7kp-ZONYF$qWaMKYs10{$%pSquD!dC9T%? o$k~4TSl5LxIVB|UE8mXMf_wI>P4kFVdQ&MBb@0GfczMgRZ+ diff --git a/Resources/Textures/Clothing/hop_hat.rsi/hop.png b/Resources/Textures/Clothing/hop_hat.rsi/hop.png deleted file mode 100644 index 55e5a58f117e4e2f823c1df6cf7296eda09373e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 352 zcmV-m0iXVfP)!P+3na3*PXyGH z7-Ni2tiQmRdJ*_RL Date: Fri, 16 Aug 2019 21:45:34 +0200 Subject: [PATCH 23/24] Update submodule --- RobustToolbox | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RobustToolbox b/RobustToolbox index cb5f2ffae1..7f9f593989 160000 --- a/RobustToolbox +++ b/RobustToolbox @@ -1 +1 @@ -Subproject commit cb5f2ffae1994e0a3f0f6be5697896ab7eaafe50 +Subproject commit 7f9f5939893af302fa52ef9253448c6c3743fcc9 From 534af65f7c802799b34be7fd3a8f73a3524c2785 Mon Sep 17 00:00:00 2001 From: DamianX Date: Fri, 16 Aug 2019 21:52:00 +0200 Subject: [PATCH 24/24] Fixed inventory button not updating when window was closed (#304) * Fixed inventory button not updating when window was closed * Only add the event handler once * uhhhh * UHHHHHH --- .../HUD/Inventory/HumanInventoryInterfaceController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Client/GameObjects/Components/HUD/Inventory/HumanInventoryInterfaceController.cs b/Content.Client/GameObjects/Components/HUD/Inventory/HumanInventoryInterfaceController.cs index fa59cf6ab9..ecc47ef5ef 100644 --- a/Content.Client/GameObjects/Components/HUD/Inventory/HumanInventoryInterfaceController.cs +++ b/Content.Client/GameObjects/Components/HUD/Inventory/HumanInventoryInterfaceController.cs @@ -43,7 +43,7 @@ namespace Content.Client.GameObjects base.Initialize(); _window = new HumanInventoryWindow(_loc, _resourceCache); - + _window.OnClose += () => GameHud.InventoryButtonDown = false; foreach (var (slot, button) in _window.Buttons) { button.OnPressed = AddToInventory;