From e8960f77b2e0d447972be47267f4955109751a68 Mon Sep 17 00:00:00 2001 From: chromiumboy <50505512+chromiumboy@users.noreply.github.com> Date: Wed, 2 Aug 2023 13:32:51 -0500 Subject: [PATCH 01/37] Drop stored entities from containers used in crafting recipes (#18564) Resolves issue #10852. If a storage container is a reagent for crafting, items stored inside of it are dropped. --------- Co-authored-by: Kevin Zheng --- .../Construction/ConstructionSystem.Initial.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Content.Server/Construction/ConstructionSystem.Initial.cs b/Content.Server/Construction/ConstructionSystem.Initial.cs index 564e1cd24eca2f..2284ade6bd21f3 100644 --- a/Content.Server/Construction/ConstructionSystem.Initial.cs +++ b/Content.Server/Construction/ConstructionSystem.Initial.cs @@ -3,6 +3,7 @@ using System.Threading.Tasks; using Content.Server.Construction.Components; using Content.Server.Storage.Components; +using Content.Server.Storage.EntitySystems; using Content.Shared.ActionBlocker; using Content.Shared.Construction; using Content.Shared.Construction.Prototypes; @@ -14,6 +15,7 @@ using Content.Shared.Hands.EntitySystems; using Content.Shared.Interaction; using Content.Shared.Inventory; +using Content.Shared.Storage; using Robust.Shared.Containers; using Robust.Shared.Players; using Robust.Shared.Timing; @@ -28,6 +30,7 @@ public sealed partial class ConstructionSystem [Dependency] private readonly ActionBlockerSystem _actionBlocker = default!; [Dependency] private readonly SharedHandsSystem _handsSystem = default!; [Dependency] private readonly EntityLookupSystem _lookupSystem = default!; + [Dependency] private readonly StorageSystem _storageSystem = default!; // --- WARNING! LEGACY CODE AHEAD! --- // This entire file contains the legacy code for initial construction. @@ -203,6 +206,15 @@ void ShutdownContainers() if (used.Contains(entity)) continue; + // Dump out any stored entities in used entity + if (TryComp(entity, out var storage) && storage.StoredEntities != null) + { + foreach (var storedEntity in storage.StoredEntities.ToList()) + { + _storageSystem.RemoveAndDrop(entity, storedEntity, storage); + } + } + if (string.IsNullOrEmpty(arbitraryStep.Store)) { if (!container.Insert(entity)) From ad61c21c010fed4c4d578561154246f3e5e1be69 Mon Sep 17 00:00:00 2001 From: PJBot Date: Wed, 2 Aug 2023 14:34:00 -0400 Subject: [PATCH 02/37] Automatic changelog update --- Resources/Changelog/Changelog.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index ee105536a0498c..0004ce7f2cdbba 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,9 +1,4 @@ Entries: -- author: metalgearsloth - changes: - - {message: PKA requires wielding now., type: Tweak} - id: 3916 - time: '2023-06-01T02:27:19.0000000+00:00' - author: metalgearsloth changes: - {message: L6 firerate is 6 again. It requires wielding to have decent accuracy., @@ -2990,3 +2985,8 @@ Entries: - {message: The P-Block crate will now have oxygen and nitrogen jugs., type: Fix} id: 4415 time: '2023-08-02T14:32:08.0000000+00:00' +- author: chromiumboy + changes: + - {message: Containers used in recipes now drop their contents when crafted., type: Fix} + id: 4416 + time: '2023-08-02T18:32:51.0000000+00:00' From e2b22a4cd8eebadfce6d80c3abeb48fcff235b2a Mon Sep 17 00:00:00 2001 From: Moony Date: Wed, 2 Aug 2023 16:09:08 -0500 Subject: [PATCH 03/37] Toolshed (#17895) * ogh * i should save my work * ogh * hhcdfhjbghshbxdfhghshc - lots of bugs in parsing still - invocation is a stub * expr parsing works * awawa * Saving work * Improve APIs a bit all around, add shortcuts. * awa * awa * AAAAAA * save work * Move shit to engine * lord * bql is kill * forgot the fucking bike rack * bql is kill for real * pjb will kill me * aughfhbdj * adgddf * gdsgvfvxshngfgh * b * hfsjhghj * a * tf you mean i have to document it * follow C# standards * Assorted cleanup and documentation pass, minor bugfix in ValueRefParser. * Start porting old commands, remove that pesky prefix in favor of integrating with the shell. * bw * Fix valueref up a bit, improve autocomplete for it. * awa * fix tests * git shut up * Arithmetic commands. * parse improvements * Update engine. --------- Co-authored-by: moonheart08 --- ...lResultsEui.cs => ToolshedVisualizeEui.cs} | 10 +- ...ndow.xaml => ToolshedVisualizeWindow.xaml} | 0 ...aml.cs => ToolshedVisualizeWindow.xaml.cs} | 4 +- Content.Client/Content.Client.csproj | 3 + Content.Client/Stylesheets/StyleNano.cs | 3 + .../Tests/Commands/RejuvenateTest.cs | 6 +- .../Tests/Toolshed/AdminTest.cs | 20 +++ .../Tests/Toolshed/CommandParseTest.cs | 84 ++++++++++ .../Tests/Toolshed/LocTest.cs | 19 +++ .../Tests/Toolshed/ToolshedTest.cs | 153 ++++++++++++++++++ .../Administration/AdminCommandAttribute.cs | 1 - .../Commands/DeleteEntitiesWithComponent.cs | 47 ------ .../Commands/DeleteEntitiesWithId.cs | 36 ----- .../Commands/DeleteEntityCommand.cs | 39 ----- .../Commands/FindEntitiesWithComponents.cs | 68 -------- .../Commands/RejuvenateCommand.cs | 48 ------ .../Station/AdjustStationJobCommand.cs | 84 ---------- .../Station/ListStationJobsCommand.cs | 55 ------- .../Commands/Station/ListStationsCommand.cs | 29 ---- .../Commands/Station/RenameStationCommand.cs | 55 ------- .../Administration/Commands/TagCommands.cs | 113 ------------- .../Administration/Managers/AdminManager.cs | 124 +++++++++++++- .../Administration/Managers/IAdminManager.cs | 3 + .../Systems/AdminVerbSystem.Tools.cs | 2 +- .../Administration/Systems/AdminVerbSystem.cs | 20 ++- .../Systems/RejuvenateSystem.cs | 11 ++ .../Administration/Toolshed/AdminsCommand.cs | 24 +++ .../Administration/Toolshed/MarkedCommand.cs | 16 ++ .../Toolshed/RejuvenateCommand.cs | 22 +++ .../Toolshed/SolutionCommand.cs | 49 ++++++ .../Administration/Toolshed/TagCommand.cs | 106 ++++++++++++ Content.Server/Bql/BqlSelectCommand.cs | 56 ------- Content.Server/Bql/QuerySelectors.cs | 137 ---------------- Content.Server/Entry/EntryPoint.cs | 4 - Content.Server/IoC/ServerContentIoC.cs | 2 + .../NewCon/Commands/AdminDebug/ACmdCommand.cs | 34 ++++ .../NewCon/Commands/Verbs/RunVerbAsCommand.cs | 62 +++++++ .../NewCon/Commands/VisualizeCommand.cs | 51 ++++++ .../Station/Commands/JobsCommand.cs | 129 +++++++++++++++ .../Station/Commands/StationCommand.cs | 126 +++++++++++++++ .../Administration/AnyCommandAttribute.cs | 2 +- ...iState.cs => ToolshedVisualizeEuiState.cs} | 4 +- .../en-US/administration/admin-verbs.ftl | 2 + .../en-US/commands/toolshed-commands.ftl | 56 +++++++ Resources/engineCommandPerms.yml | 4 +- Resources/toolshedEngineCommandPerms.yml | 70 ++++++++ RobustToolbox | 2 +- SpaceStation14.sln.DotSettings | 2 + 48 files changed, 1204 insertions(+), 793 deletions(-) rename Content.Client/Bql/{BqlResultsEui.cs => ToolshedVisualizeEui.cs} (74%) rename Content.Client/Bql/{BqlResultsWindow.xaml => ToolshedVisualizeWindow.xaml} (100%) rename Content.Client/Bql/{BqlResultsWindow.xaml.cs => ToolshedVisualizeWindow.xaml.cs} (91%) create mode 100644 Content.IntegrationTests/Tests/Toolshed/AdminTest.cs create mode 100644 Content.IntegrationTests/Tests/Toolshed/CommandParseTest.cs create mode 100644 Content.IntegrationTests/Tests/Toolshed/LocTest.cs create mode 100644 Content.IntegrationTests/Tests/Toolshed/ToolshedTest.cs delete mode 100644 Content.Server/Administration/Commands/DeleteEntitiesWithComponent.cs delete mode 100644 Content.Server/Administration/Commands/DeleteEntitiesWithId.cs delete mode 100644 Content.Server/Administration/Commands/DeleteEntityCommand.cs delete mode 100644 Content.Server/Administration/Commands/FindEntitiesWithComponents.cs delete mode 100644 Content.Server/Administration/Commands/RejuvenateCommand.cs delete mode 100644 Content.Server/Administration/Commands/Station/AdjustStationJobCommand.cs delete mode 100644 Content.Server/Administration/Commands/Station/ListStationJobsCommand.cs delete mode 100644 Content.Server/Administration/Commands/Station/ListStationsCommand.cs delete mode 100644 Content.Server/Administration/Commands/Station/RenameStationCommand.cs delete mode 100644 Content.Server/Administration/Commands/TagCommands.cs create mode 100644 Content.Server/Administration/Systems/RejuvenateSystem.cs create mode 100644 Content.Server/Administration/Toolshed/AdminsCommand.cs create mode 100644 Content.Server/Administration/Toolshed/MarkedCommand.cs create mode 100644 Content.Server/Administration/Toolshed/RejuvenateCommand.cs create mode 100644 Content.Server/Administration/Toolshed/SolutionCommand.cs create mode 100644 Content.Server/Administration/Toolshed/TagCommand.cs delete mode 100644 Content.Server/Bql/BqlSelectCommand.cs delete mode 100644 Content.Server/Bql/QuerySelectors.cs create mode 100644 Content.Server/NewCon/Commands/AdminDebug/ACmdCommand.cs create mode 100644 Content.Server/NewCon/Commands/Verbs/RunVerbAsCommand.cs create mode 100644 Content.Server/NewCon/Commands/VisualizeCommand.cs create mode 100644 Content.Server/Station/Commands/JobsCommand.cs create mode 100644 Content.Server/Station/Commands/StationCommand.cs rename Content.Shared/Bql/{BqlResultsEuiState.cs => ToolshedVisualizeEuiState.cs} (62%) create mode 100644 Resources/Locale/en-US/commands/toolshed-commands.ftl create mode 100644 Resources/toolshedEngineCommandPerms.yml diff --git a/Content.Client/Bql/BqlResultsEui.cs b/Content.Client/Bql/ToolshedVisualizeEui.cs similarity index 74% rename from Content.Client/Bql/BqlResultsEui.cs rename to Content.Client/Bql/ToolshedVisualizeEui.cs index 3e9bda57ff3072..ccefc1228d2459 100644 --- a/Content.Client/Bql/BqlResultsEui.cs +++ b/Content.Client/Bql/ToolshedVisualizeEui.cs @@ -7,13 +7,13 @@ namespace Content.Client.Bql; [UsedImplicitly] -public sealed class BqlResultsEui : BaseEui +public sealed class ToolshedVisualizeEui : BaseEui { - private readonly BqlResultsWindow _window; + private readonly ToolshedVisualizeWindow _window; - public BqlResultsEui() + public ToolshedVisualizeEui() { - _window = new BqlResultsWindow( + _window = new ToolshedVisualizeWindow( IoCManager.Resolve(), IoCManager.Resolve() ); @@ -23,7 +23,7 @@ public BqlResultsEui() public override void HandleState(EuiStateBase state) { - if (state is not BqlResultsEuiState castState) + if (state is not ToolshedVisualizeEuiState castState) return; _window.Update(castState.Entities); diff --git a/Content.Client/Bql/BqlResultsWindow.xaml b/Content.Client/Bql/ToolshedVisualizeWindow.xaml similarity index 100% rename from Content.Client/Bql/BqlResultsWindow.xaml rename to Content.Client/Bql/ToolshedVisualizeWindow.xaml diff --git a/Content.Client/Bql/BqlResultsWindow.xaml.cs b/Content.Client/Bql/ToolshedVisualizeWindow.xaml.cs similarity index 91% rename from Content.Client/Bql/BqlResultsWindow.xaml.cs rename to Content.Client/Bql/ToolshedVisualizeWindow.xaml.cs index 4a9fde855a74f6..0265e3343eef7a 100644 --- a/Content.Client/Bql/BqlResultsWindow.xaml.cs +++ b/Content.Client/Bql/ToolshedVisualizeWindow.xaml.cs @@ -8,12 +8,12 @@ namespace Content.Client.Bql; [GenerateTypedNameReferences] -internal sealed partial class BqlResultsWindow : DefaultWindow +internal sealed partial class ToolshedVisualizeWindow : DefaultWindow { private readonly IClientConsoleHost _console; private readonly ILocalizationManager _loc; - public BqlResultsWindow(IClientConsoleHost console, ILocalizationManager loc) + public ToolshedVisualizeWindow(IClientConsoleHost console, ILocalizationManager loc) { _console = console; _loc = loc; diff --git a/Content.Client/Content.Client.csproj b/Content.Client/Content.Client.csproj index 636233395cce21..29488a7ae19f2e 100644 --- a/Content.Client/Content.Client.csproj +++ b/Content.Client/Content.Client.csproj @@ -33,6 +33,9 @@ StrippingWindow.xaml + + ToolshedVisualizeWindow.xaml + diff --git a/Content.Client/Stylesheets/StyleNano.cs b/Content.Client/Stylesheets/StyleNano.cs index 5dcbc9b3aef21e..cb90e5c481bbe0 100644 --- a/Content.Client/Stylesheets/StyleNano.cs +++ b/Content.Client/Stylesheets/StyleNano.cs @@ -162,6 +162,7 @@ public StyleNano(IResourceCache resCache) : base(resCache) var notoSansBold16 = resCache.NotoStack(variation: "Bold", size: 16); var notoSansBold18 = resCache.NotoStack(variation: "Bold", size: 18); var notoSansBold20 = resCache.NotoStack(variation: "Bold", size: 20); + var notoSansMono = resCache.GetFont("/EngineFonts/NotoSans/NotoSansMono-Regular.ttf", size: 12); var windowHeaderTex = resCache.GetTexture("/Textures/Interface/Nano/window_header.png"); var windowHeader = new StyleBoxTexture { @@ -512,6 +513,8 @@ public StyleNano(IResourceCache resCache) : base(resCache) Stylesheet = new Stylesheet(BaseRules.Concat(new[] { + Element().Class("monospace") + .Prop("font", notoSansMono), // Window title. new StyleRule( new SelectorElement(typeof(Label), new[] {DefaultWindow.StyleClassWindowTitle}, null, null), diff --git a/Content.IntegrationTests/Tests/Commands/RejuvenateTest.cs b/Content.IntegrationTests/Tests/Commands/RejuvenateTest.cs index ddd5e97de73cb0..1fbc6c7532df17 100644 --- a/Content.IntegrationTests/Tests/Commands/RejuvenateTest.cs +++ b/Content.IntegrationTests/Tests/Commands/RejuvenateTest.cs @@ -1,4 +1,5 @@ using Content.Server.Administration.Commands; +using Content.Server.Administration.Systems; using Content.Shared.Damage; using Content.Shared.Damage.Prototypes; using Content.Shared.FixedPoint; @@ -11,7 +12,7 @@ namespace Content.IntegrationTests.Tests.Commands { [TestFixture] - [TestOf(typeof(RejuvenateCommand))] + [TestOf(typeof(RejuvenateSystem))] public sealed class RejuvenateTest { private const string Prototypes = @" @@ -42,6 +43,7 @@ public async Task RejuvenateDeadTest() var prototypeManager = server.ResolveDependency(); var mobStateSystem = entManager.EntitySysManager.GetEntitySystem(); var damSystem = entManager.EntitySysManager.GetEntitySystem(); + var rejuvenateSystem = entManager.EntitySysManager.GetEntitySystem(); await server.WaitAssertion(() => { @@ -78,7 +80,7 @@ await server.WaitAssertion(() => }); // Rejuvenate them - RejuvenateCommand.PerformRejuvenate(human); + rejuvenateSystem.PerformRejuvenate(human); // Check that it is alive and with no damage Assert.Multiple(() => diff --git a/Content.IntegrationTests/Tests/Toolshed/AdminTest.cs b/Content.IntegrationTests/Tests/Toolshed/AdminTest.cs new file mode 100644 index 00000000000000..2c52d5d5c293a2 --- /dev/null +++ b/Content.IntegrationTests/Tests/Toolshed/AdminTest.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; +using System.Linq; +using Robust.Shared.Toolshed; + +namespace Content.IntegrationTests.Tests.Toolshed; + +[TestFixture] +public sealed class AdminTest : ToolshedTest +{ + [Test] + public async Task AllCommandsHavePermissions() + { + await Server.WaitAssertion(() => + { + Assert.That(InvokeCommand("cmd:list where { acmd:perms isnull }", out var res)); + var list = ((IEnumerable) res).ToList(); + Assert.That(list, Is.Empty, "All commands must have admin permissions set up."); + }); + } +} diff --git a/Content.IntegrationTests/Tests/Toolshed/CommandParseTest.cs b/Content.IntegrationTests/Tests/Toolshed/CommandParseTest.cs new file mode 100644 index 00000000000000..f997db1c480fe2 --- /dev/null +++ b/Content.IntegrationTests/Tests/Toolshed/CommandParseTest.cs @@ -0,0 +1,84 @@ +using System.Collections.Generic; +using Robust.Shared.GameObjects; +using Robust.Shared.Toolshed; +using Robust.Shared.Toolshed.Syntax; +using Robust.Shared.Toolshed.TypeParsers; + +namespace Content.IntegrationTests.Tests.Toolshed; + +[TestFixture] +public sealed class CommandRunTest : ToolshedTest +{ + [Test] + public async Task SimpleCommandRun() + { + await Server.WaitAssertion(() => + { + ParseCommand("entities"); + ParseCommand("entities select 1"); + ParseCommand("entities with Item select 1"); + + ExpectError(); + ParseCommand("entities with"); + + ExpectError(); + ParseCommand("player:list with MetaData"); + + ExpectError(); + ParseCommand("player:list", expectedType: typeof(IEnumerable)); + + ParseCommand("entities not with MetaData"); + ParseCommand("with MetaData select 2 any", inputType: typeof(List)); + + ParseCommand("entities not with MetaData => $myEntities"); + ParseCommand("=> $fooBar with MetaData", inputType: typeof(List)); + }); + } + + [Test] + public async Task EntityUidTypeParser() + { + await Server.WaitAssertion(() => + { + ParseCommand("ent 1"); + ParseCommand("ent c1"); + + ExpectError(); + ParseCommand("ent foodigity"); + }); + } + + [Test] + public async Task QuantityTypeParser() + { + await Server.WaitAssertion(() => + { + ParseCommand("entities select 100"); + ParseCommand("entities select 50%"); + + ExpectError(); + ParseCommand("entities select -1"); + + ExpectError(); + ParseCommand("entities select 200%"); + + ExpectError(); + ParseCommand("entities select hotdog"); + }); + } + + [Test] + public async Task ComponentTypeParser() + { + await Server.WaitAssertion(() => + { + ParseCommand("entities with MetaData"); + + ExpectError(); + ParseCommand("entities with Foodiddy"); + + ExpectError(); + ParseCommand("entities with MetaDataComponent"); + }); + } +} diff --git a/Content.IntegrationTests/Tests/Toolshed/LocTest.cs b/Content.IntegrationTests/Tests/Toolshed/LocTest.cs new file mode 100644 index 00000000000000..db8d451dbce013 --- /dev/null +++ b/Content.IntegrationTests/Tests/Toolshed/LocTest.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; +using System.Linq; +using Robust.Shared.Toolshed; + +namespace Content.IntegrationTests.Tests.Toolshed; + +[TestFixture] +public sealed class LocTest : ToolshedTest +{ + [Test] + public async Task AllCommandsHaveDescriptions() + { + await Server.WaitAssertion(() => + { + Assert.That(InvokeCommand("cmd:list where { cmd:descloc loc:tryloc isnull }", out var res)); + Assert.That((IEnumerable)res, Is.Empty, "All commands must have localized descriptions."); + }); + } +} diff --git a/Content.IntegrationTests/Tests/Toolshed/ToolshedTest.cs b/Content.IntegrationTests/Tests/Toolshed/ToolshedTest.cs new file mode 100644 index 00000000000000..54df7b73355fc8 --- /dev/null +++ b/Content.IntegrationTests/Tests/Toolshed/ToolshedTest.cs @@ -0,0 +1,153 @@ +#nullable enable +using System.Collections.Generic; +using Content.Server.Administration.Managers; +using Robust.Server.Player; +using Robust.Shared.Players; +using Robust.Shared.Toolshed; +using Robust.Shared.Toolshed.Errors; +using Robust.Shared.Toolshed.Syntax; +using Robust.UnitTesting; + +namespace Content.IntegrationTests.Tests.Toolshed; + +[TestFixture] +[FixtureLifeCycle(LifeCycle.SingleInstance)] +public abstract class ToolshedTest : IInvocationContext +{ + protected PairTracker PairTracker = default!; + + protected virtual bool NoClient => true; + protected virtual bool AssertOnUnexpectedError => true; + + protected RobustIntegrationTest.ServerIntegrationInstance Server = default!; + protected RobustIntegrationTest.ClientIntegrationInstance? Client = null; + protected ToolshedManager Toolshed = default!; + protected IAdminManager AdminManager = default!; + + protected IInvocationContext? Context = null; + + [TearDown] + public virtual async Task TearDown() + { + Assert.IsEmpty(_expectedErrors); + ClearErrors(); + } + + [OneTimeSetUp] + public virtual async Task Setup() + { + PairTracker = await PoolManager.GetServerClient(new PoolSettings {NoClient = NoClient}); + Server = PairTracker.Pair.Server; + + if (!NoClient) + { + Client = PairTracker.Pair.Client; + await Client.WaitIdleAsync(); + } + + await Server.WaitIdleAsync(); + + Toolshed = Server.ResolveDependency(); + AdminManager = Server.ResolveDependency(); + } + + protected bool InvokeCommand(string command, out object? result, IPlayerSession? session = null) + { + return Toolshed.InvokeCommand(this, command, null, out result); + } + + protected void ParseCommand(string command, Type? inputType = null, Type? expectedType = null, bool once = false) + { + var parser = new ForwardParser(command, Toolshed); + var success = CommandRun.TryParse(false, false, parser, inputType, expectedType, once, out _, out _, out var error); + + if (error is not null) + ReportError(error); + + if (error is null) + Assert.That(success, $"Parse failed despite no error being reported. Parsed {command}"); + } + + public bool CheckInvokable(CommandSpec command, out IConError? error) + { + if (Context is not null) + { + return Context.CheckInvokable(command, out error); + } + + error = null; + return true; + } + + protected IPlayerSession? InvocationSession { get; set; } + + public ICommonSession? Session + { + get + { + if (Context is not null) + { + return Context.Session; + } + + return InvocationSession; + } + } + + public void WriteLine(string line) + { + return; + } + + private Queue _expectedErrors = new(); + + private List _errors = new(); + + public void ReportError(IConError err) + { + if (_expectedErrors.Count == 0) + { + if (AssertOnUnexpectedError) + { + Assert.Fail($"Got an error, {err.GetType()}, when none was expected.\n{err.Describe()}"); + } + + goto done; + } + + var ty = _expectedErrors.Dequeue(); + + if (AssertOnUnexpectedError) + { + Assert.That( + err.GetType().IsAssignableTo(ty), + $"The error {err.GetType()} wasn't assignable to the expected type {ty}.\n{err.Describe()}" + ); + } + + done: + _errors.Add(err); + } + + public IEnumerable GetErrors() + { + return _errors; + } + + public void ClearErrors() + { + _errors.Clear(); + } + + public Dictionary Variables { get; } = new(); + + protected void ExpectError(Type err) + { + _expectedErrors.Enqueue(err); + } + + protected void ExpectError() + { + _expectedErrors.Enqueue(typeof(T)); + } +} diff --git a/Content.Server/Administration/AdminCommandAttribute.cs b/Content.Server/Administration/AdminCommandAttribute.cs index e115be2ef874ad..409d9fe984dcfe 100644 --- a/Content.Server/Administration/AdminCommandAttribute.cs +++ b/Content.Server/Administration/AdminCommandAttribute.cs @@ -12,7 +12,6 @@ namespace Content.Server.Administration /// /// [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)] - [BaseTypeRequired(typeof(IConsoleCommand))] [MeansImplicitUse] public sealed class AdminCommandAttribute : Attribute { diff --git a/Content.Server/Administration/Commands/DeleteEntitiesWithComponent.cs b/Content.Server/Administration/Commands/DeleteEntitiesWithComponent.cs deleted file mode 100644 index 578ef2e4146555..00000000000000 --- a/Content.Server/Administration/Commands/DeleteEntitiesWithComponent.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System.Linq; -using Content.Shared.Administration; -using Robust.Shared.Console; - -namespace Content.Server.Administration.Commands -{ - [AdminCommand(AdminFlags.Spawn)] - sealed class DeleteEntitiesWithComponent : IConsoleCommand - { - public string Command => "deleteewc"; - - public string Description => Loc.GetString("delete-entities-with-component-command-description"); - - public string Help => Loc.GetString("delete-entities-with-component-command-help-text"); - - public void Execute(IConsoleShell shell, string argStr, string[] args) - { - if (args.Length < 1) - { - shell.WriteLine(Help); - return; - } - - var factory = IoCManager.Resolve(); - - var components = new List(); - foreach (var arg in args) - { - components.Add(factory.GetRegistration(arg).Type); - } - - var entityManager = IoCManager.Resolve(); - - var entitiesWithComponents = components.Select(c => entityManager.GetAllComponents(c).Select(x => x.Uid)); - var entitiesWithAllComponents = entitiesWithComponents.Skip(1).Aggregate(new HashSet(entitiesWithComponents.First()), (h, e) => { h.IntersectWith(e); return h; }); - - var count = 0; - foreach (var entity in entitiesWithAllComponents) - { - entityManager.DeleteEntity(entity); - count += 1; - } - - shell.WriteLine(Loc.GetString("delete-entities-with-component-command-deleted-components",("count", count))); - } - } -} diff --git a/Content.Server/Administration/Commands/DeleteEntitiesWithId.cs b/Content.Server/Administration/Commands/DeleteEntitiesWithId.cs deleted file mode 100644 index 82be56ee3656d9..00000000000000 --- a/Content.Server/Administration/Commands/DeleteEntitiesWithId.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Linq; -using Content.Shared.Administration; -using Robust.Shared.Console; - -namespace Content.Server.Administration.Commands -{ - [AdminCommand(AdminFlags.Spawn)] - public sealed class DeleteEntitiesWithId : IConsoleCommand - { - public string Command => "deleteewi"; - public string Description => "Deletes entities with the specified prototype ID."; - public string Help => $"Usage: {Command} "; - - public void Execute(IConsoleShell shell, string argStr, string[] args) - { - if (args.Length != 1) - { - shell.WriteLine(Help); - return; - } - - var id = args[0].ToLower(); - var entityManager = IoCManager.Resolve(); - var entities = entityManager.GetEntities().Where(e => entityManager.GetComponent(e).EntityPrototype?.ID.ToLower() == id); - var i = 0; - - foreach (var entity in entities) - { - entityManager.DeleteEntity(entity); - i++; - } - - shell.WriteLine($"Deleted all entities with id {id}. Occurrences: {i}"); - } - } -} diff --git a/Content.Server/Administration/Commands/DeleteEntityCommand.cs b/Content.Server/Administration/Commands/DeleteEntityCommand.cs deleted file mode 100644 index 5a7df2ac7f5578..00000000000000 --- a/Content.Server/Administration/Commands/DeleteEntityCommand.cs +++ /dev/null @@ -1,39 +0,0 @@ -using Content.Shared.Administration; -using Robust.Shared.Console; - -namespace Content.Server.Administration.Commands -{ - [AdminCommand(AdminFlags.Spawn)] - public sealed class DeleteEntityCommand : IConsoleCommand - { - public string Command => "deleteentity"; - public string Description => "Deletes an entity with the given id."; - public string Help => $"Usage: {Command} "; - - public void Execute(IConsoleShell shell, string argStr, string[] args) - { - if (args.Length != 1) - { - shell.WriteLine($"Invalid amount of arguments.\n{Help}"); - return; - } - - if (!EntityUid.TryParse(args[0], out var id)) - { - shell.WriteLine($"{args[0]} is not a valid entity id."); - return; - } - - var entityManager = IoCManager.Resolve(); - - if (!entityManager.EntityExists(id)) - { - shell.WriteLine($"No entity found with id {id}."); - return; - } - - entityManager.DeleteEntity(id); - shell.WriteLine($"Deleted entity with id {id}."); - } - } -} diff --git a/Content.Server/Administration/Commands/FindEntitiesWithComponents.cs b/Content.Server/Administration/Commands/FindEntitiesWithComponents.cs deleted file mode 100644 index b583b56db662da..00000000000000 --- a/Content.Server/Administration/Commands/FindEntitiesWithComponents.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System.Linq; -using Content.Shared.Administration; -using Robust.Shared.Console; - -namespace Content.Server.Administration.Commands -{ - [AdminCommand(AdminFlags.Mapping)] - public sealed class FindEntitiesWithComponents : IConsoleCommand - { - public string Command => "findentitieswithcomponents"; - public string Description => "Finds entities with all of the specified components."; - public string Help => $"{Command} ..."; - - public void Execute(IConsoleShell shell, string argStr, string[] args) - { - if (args.Length == 0) - { - shell.WriteLine($"Invalid amount of arguments: {args.Length}.\n{Help}"); - return; - } - - var components = new List(); - var componentFactory = IoCManager.Resolve(); - var invalidArgs = new List(); - - foreach (var arg in args) - { - if (!componentFactory.TryGetRegistration(arg, out var registration)) - { - invalidArgs.Add(arg); - continue; - } - - components.Add(registration.Type); - } - - if (invalidArgs.Count > 0) - { - shell.WriteLine($"No component found for component names: {string.Join(", ", invalidArgs)}"); - return; - } - - var entityManager = IoCManager.Resolve(); - var entityIds = new HashSet(); - - var entitiesWithComponents = components.Select(c => entityManager.GetAllComponents(c).Select(x => x.Uid)).ToArray(); - var entitiesWithAllComponents = entitiesWithComponents.Skip(1).Aggregate(new HashSet(entitiesWithComponents.First()), (h, e) => { h.IntersectWith(e); return h; }); - - foreach (var entity in entitiesWithAllComponents) - { - if (entityManager.GetComponent(entity).EntityPrototype is not { } prototypeId) - { - continue; - } - - entityIds.Add(prototypeId.ID); - } - - if (entityIds.Count == 0) - { - shell.WriteLine($"No entities found with components {string.Join(", ", args)}."); - return; - } - - shell.WriteLine($"{entityIds.Count} entities found:\n{string.Join("\n", entityIds)}"); - } - } -} diff --git a/Content.Server/Administration/Commands/RejuvenateCommand.cs b/Content.Server/Administration/Commands/RejuvenateCommand.cs deleted file mode 100644 index 0e2e39a9ee7510..00000000000000 --- a/Content.Server/Administration/Commands/RejuvenateCommand.cs +++ /dev/null @@ -1,48 +0,0 @@ -using Content.Shared.Administration; -using Content.Shared.Rejuvenate; -using Robust.Server.Player; -using Robust.Shared.Console; - -namespace Content.Server.Administration.Commands -{ - [AdminCommand(AdminFlags.Admin)] - public sealed class RejuvenateCommand : IConsoleCommand - { - public string Command => "rejuvenate"; - - public string Description => Loc.GetString("rejuvenate-command-description"); - - public string Help => Loc.GetString("rejuvenate-command-help-text"); - - public void Execute(IConsoleShell shell, string argStr, string[] args) - { - if (args.Length < 1 && shell.Player is IPlayerSession player) //Try to heal the users mob if applicable - { - shell.WriteLine(Loc.GetString("rejuvenate-command-self-heal-message")); - if (player.AttachedEntity == null) - { - shell.WriteLine(Loc.GetString("rejuvenate-command-no-entity-attached-message")); - return; - } - PerformRejuvenate(player.AttachedEntity.Value); - } - - var entityManager = IoCManager.Resolve(); - foreach (var arg in args) - { - if (!EntityUid.TryParse(arg, out var entity) || !entityManager.EntityExists(entity)) - { - shell.WriteLine(Loc.GetString("shell-could-not-find-entity",("entity", arg))); - continue; - } - PerformRejuvenate(entity); - } - } - - public static void PerformRejuvenate(EntityUid target) - { - var entityManager = IoCManager.Resolve(); - entityManager.EventBus.RaiseLocalEvent(target, new RejuvenateEvent()); - } - } -} diff --git a/Content.Server/Administration/Commands/Station/AdjustStationJobCommand.cs b/Content.Server/Administration/Commands/Station/AdjustStationJobCommand.cs deleted file mode 100644 index 3af9ed6b268ec3..00000000000000 --- a/Content.Server/Administration/Commands/Station/AdjustStationJobCommand.cs +++ /dev/null @@ -1,84 +0,0 @@ -using Content.Server.Commands; -using Content.Server.Station.Components; -using Content.Server.Station.Systems; -using Content.Shared.Administration; -using Content.Shared.Roles; -using Robust.Shared.Console; -using Robust.Shared.Prototypes; - -namespace Content.Server.Administration.Commands.Station; - -[AdminCommand(AdminFlags.Round)] -public sealed class AdjustStationJobCommand : IConsoleCommand -{ - [Dependency] private readonly IEntityManager _entityManager = default!; - [Dependency] private readonly IEntitySystemManager _entSysManager = default!; - [Dependency] private readonly IPrototypeManager _prototypeManager = default!; - - public string Command => "adjstationjob"; - - public string Description => "Adjust the job manifest on a station."; - - public string Help => "adjstationjob "; - - public void Execute(IConsoleShell shell, string argStr, string[] args) - { - if (args.Length != 3) - { - shell.WriteError(Loc.GetString("shell-wrong-arguments-number")); - return; - } - - var stationJobs = _entSysManager.GetEntitySystem(); - - if (!EntityUid.TryParse(args[0], out var station) || !_entityManager.HasComponent(station)) - { - shell.WriteError(Loc.GetString("shell-argument-station-id-invalid", ("index", 1))); - return; - } - - if (!_prototypeManager.TryIndex(args[1], out var job)) - { - shell.WriteError(Loc.GetString("shell-argument-must-be-prototype", - ("index", 2), ("prototypeName", nameof(JobPrototype)))); - return; - } - - if (!int.TryParse(args[2], out var amount) || amount < -1) - { - shell.WriteError(Loc.GetString("shell-argument-number-must-be-between", - ("index", 3), ("lower", -1), ("upper", int.MaxValue))); - return; - } - - if (amount == -1) - { - stationJobs.MakeJobUnlimited(station, job); - return; - } - - stationJobs.TrySetJobSlot(station, job, amount, true); - } - - public CompletionResult GetCompletion(IConsoleShell shell, string[] args) - { - if (args.Length == 1) - { - var options = ContentCompletionHelper.StationIds(_entityManager); - return CompletionResult.FromHintOptions(options, ""); - } - - if (args.Length == 2) - { - var options = CompletionHelper.PrototypeIDs(); - return CompletionResult.FromHintOptions(options, ""); - } - - if (args.Length == 3) - { - return CompletionResult.FromHint(""); - } - - return CompletionResult.Empty; - } -} diff --git a/Content.Server/Administration/Commands/Station/ListStationJobsCommand.cs b/Content.Server/Administration/Commands/Station/ListStationJobsCommand.cs deleted file mode 100644 index 53a902ec29fe15..00000000000000 --- a/Content.Server/Administration/Commands/Station/ListStationJobsCommand.cs +++ /dev/null @@ -1,55 +0,0 @@ -using Content.Server.Commands; -using Content.Server.Station.Components; -using Content.Server.Station.Systems; -using Content.Shared.Administration; -using Robust.Shared.Console; - -namespace Content.Server.Administration.Commands.Station; - -[AdminCommand(AdminFlags.Admin)] -public sealed class ListStationJobsCommand : IConsoleCommand -{ - [Dependency] private readonly IEntityManager _entityManager = default!; - [Dependency] private readonly IEntitySystemManager _entSysManager = default!; - - public string Command => "lsstationjobs"; - - public string Description => "Lists all jobs on the given station."; - - public string Help => "lsstationjobs "; - - public void Execute(IConsoleShell shell, string argStr, string[] args) - { - if (args.Length != 1) - { - shell.WriteError(Loc.GetString("shell-wrong-arguments-number")); - return; - } - - var stationSystem = _entSysManager.GetEntitySystem(); - var stationJobs = _entSysManager.GetEntitySystem(); - - if (!EntityUid.TryParse(args[0], out var station) || !_entityManager.HasComponent(station)) - { - shell.WriteError(Loc.GetString("shell-argument-station-id-invalid", ("index", 1))); - return; - } - - foreach (var (job, amount) in stationJobs.GetJobs(station)) - { - var amountText = amount is null ? "Infinite" : amount.ToString(); - shell.WriteLine($"{job}: {amountText}"); - } - } - - public CompletionResult GetCompletion(IConsoleShell shell, string[] args) - { - if (args.Length == 1) - { - var options = ContentCompletionHelper.StationIds(_entityManager); - return CompletionResult.FromHintOptions(options, ""); - } - - return CompletionResult.Empty; - } -} diff --git a/Content.Server/Administration/Commands/Station/ListStationsCommand.cs b/Content.Server/Administration/Commands/Station/ListStationsCommand.cs deleted file mode 100644 index 0877febe4d6042..00000000000000 --- a/Content.Server/Administration/Commands/Station/ListStationsCommand.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Content.Server.Station.Components; -using Content.Server.Station.Systems; -using Content.Shared.Administration; -using Robust.Shared.Console; - -namespace Content.Server.Administration.Commands.Station; - -[AdminCommand(AdminFlags.Admin)] -public sealed class ListStationsCommand : IConsoleCommand -{ - [Dependency] private readonly IEntityManager _entityManager = default!; - - public string Command => "lsstations"; - - public string Description => "List all active stations"; - - public string Help => "lsstations"; - - public void Execute(IConsoleShell shell, string argStr, string[] args) - { - var query = _entityManager.EntityQueryEnumerator(); - - while (query.MoveNext(out var station, out _)) - { - var name = _entityManager.GetComponent(station).EntityName; - shell.WriteLine($"{station, -10} | {name}"); - } - } -} diff --git a/Content.Server/Administration/Commands/Station/RenameStationCommand.cs b/Content.Server/Administration/Commands/Station/RenameStationCommand.cs deleted file mode 100644 index 10df9049fda607..00000000000000 --- a/Content.Server/Administration/Commands/Station/RenameStationCommand.cs +++ /dev/null @@ -1,55 +0,0 @@ -using Content.Server.Commands; -using Content.Server.Station.Components; -using Content.Server.Station.Systems; -using Content.Shared.Administration; -using Robust.Shared.Console; - -namespace Content.Server.Administration.Commands.Station; - -[AdminCommand(AdminFlags.Admin)] -public sealed class RenameStationCommand : IConsoleCommand -{ - [Dependency] private readonly IEntityManager _entityManager = default!; - [Dependency] private readonly IEntitySystemManager _entSysManager = default!; - - public string Command => "renamestation"; - - public string Description => "Renames the given station"; - - public string Help => "renamestation "; - - public void Execute(IConsoleShell shell, string argStr, string[] args) - { - if (args.Length != 2) - { - shell.WriteError(Loc.GetString("shell-wrong-arguments-number")); - return; - } - - var stationSystem = _entSysManager.GetEntitySystem(); - - if (!EntityUid.TryParse(args[0], out var station) || !_entityManager.HasComponent(station)) - { - shell.WriteError(Loc.GetString("shell-argument-station-id-invalid", ("index", 1))); - return; - } - - stationSystem.RenameStation(station, args[1]); - } - - public CompletionResult GetCompletion(IConsoleShell shell, string[] args) - { - if (args.Length == 1) - { - var options = ContentCompletionHelper.StationIds(_entityManager); - return CompletionResult.FromHintOptions(options, ""); - } - - if (args.Length == 2) - { - return CompletionResult.FromHint(""); - } - - return CompletionResult.Empty; - } -} diff --git a/Content.Server/Administration/Commands/TagCommands.cs b/Content.Server/Administration/Commands/TagCommands.cs deleted file mode 100644 index 790768be92dd8c..00000000000000 --- a/Content.Server/Administration/Commands/TagCommands.cs +++ /dev/null @@ -1,113 +0,0 @@ -using Content.Shared.Administration; -using Content.Shared.Tag; -using Robust.Shared.Console; - -namespace Content.Server.Administration.Commands -{ - [AdminCommand(AdminFlags.Debug)] - public sealed class AddTagCommand : LocalizedCommands - { - [Dependency] private readonly IEntityManager _entityManager = default!; - - public override string Command => "addtag"; - public override string Description => Loc.GetString("addtag-command-description"); - public override string Help => Loc.GetString("addtag-command-help"); - - public override void Execute(IConsoleShell shell, string argStr, string[] args) - { - if (args.Length != 2) - { - shell.WriteError(Loc.GetString("shell-wrong-arguments-number")); - return; - } - - if (!EntityUid.TryParse(args[0], out var entityUid)) - { - shell.WriteError(Loc.GetString("shell-entity-uid-must-be-number")); - return; - } - - if (!_entityManager.TrySystem(out TagSystem? tagSystem)) - return; - _entityManager.EnsureComponent(entityUid); - - if (tagSystem.TryAddTag(entityUid, args[1])) - { - shell.WriteLine(Loc.GetString("addtag-command-success", ("tag", args[1]), ("target", entityUid))); - } - else - { - shell.WriteError(Loc.GetString("addtag-command-fail", ("tag", args[1]), ("target", entityUid))); - } - } - - public override CompletionResult GetCompletion(IConsoleShell shell, string[] args) - { - if (args.Length == 1) - { - return CompletionResult.FromHint(Loc.GetString("shell-argument-uid")); - } - - if (args.Length == 2) - { - return CompletionResult.FromHintOptions(CompletionHelper.PrototypeIDs(), - Loc.GetString("tag-command-arg-tag")); - } - - return CompletionResult.Empty; - } - } - - [AdminCommand(AdminFlags.Debug)] - public sealed class RemoveTagCommand : LocalizedCommands - { - [Dependency] private readonly IEntityManager _entityManager = default!; - - public override string Command => "removetag"; - public override string Description => Loc.GetString("removetag-command-description"); - public override string Help => Loc.GetString("removetag-command-help"); - - public override void Execute(IConsoleShell shell, string argStr, string[] args) - { - if (args.Length != 2) - { - shell.WriteError(Loc.GetString("shell-wrong-arguments-number")); - return; - } - - if (!EntityUid.TryParse(args[0], out var entityUid)) - { - shell.WriteError(Loc.GetString("shell-entity-uid-must-be-number")); - return; - } - - if (!_entityManager.TrySystem(out TagSystem? tagSystem)) - return; - - if (tagSystem.RemoveTag(entityUid, args[1])) - { - shell.WriteLine(Loc.GetString("removetag-command-success", ("tag", args[1]), ("target", entityUid))); - } - else - { - shell.WriteError(Loc.GetString("removetag-command-fail", ("tag", args[1]), ("target", entityUid))); - } - } - - public override CompletionResult GetCompletion(IConsoleShell shell, string[] args) - { - if (args.Length == 1) - { - return CompletionResult.FromHint(Loc.GetString("shell-argument-uid")); - } - - if (args.Length == 2&& EntityUid.TryParse(args[0], out var entityUid) && _entityManager.TryGetComponent(entityUid, out TagComponent? tagComponent)) - { - return CompletionResult.FromHintOptions(tagComponent.Tags, - Loc.GetString("tag-command-arg-tag")); - } - - return CompletionResult.Empty; - } - } -} diff --git a/Content.Server/Administration/Managers/AdminManager.cs b/Content.Server/Administration/Managers/AdminManager.cs index 950dffd1c8477a..0265e51ae7d0f2 100644 --- a/Content.Server/Administration/Managers/AdminManager.cs +++ b/Content.Server/Administration/Managers/AdminManager.cs @@ -1,3 +1,4 @@ +using System.Diagnostics; using System.Linq; using System.Reflection; using System.Threading.Tasks; @@ -12,7 +13,11 @@ using Robust.Shared.Console; using Robust.Shared.ContentPack; using Robust.Shared.Enums; +using Robust.Shared.Map; using Robust.Shared.Network; +using Robust.Shared.Players; +using Robust.Shared.Toolshed; +using Robust.Shared.Toolshed.Errors; using Robust.Shared.Utility; @@ -28,6 +33,7 @@ public sealed class AdminManager : IAdminManager, IPostInjectInit, IConGroupCont [Dependency] private readonly IResourceManager _res = default!; [Dependency] private readonly IServerConsoleHost _consoleHost = default!; [Dependency] private readonly IChatManager _chat = default!; + [Dependency] private readonly ToolshedManager _toolshed = default!; private readonly Dictionary _admins = new(); private readonly HashSet _promotedPlayers = new(); @@ -41,6 +47,7 @@ public sealed class AdminManager : IAdminManager, IPostInjectInit, IConGroupCont public IEnumerable AllAdmins => _admins.Select(p => p.Key); private readonly AdminCommandPermissions _commandPermissions = new(); + private readonly AdminCommandPermissions _toolshedCommandPermissions = new(); public bool IsAdmin(IPlayerSession session, bool includeDeAdmin = false) { @@ -196,11 +203,37 @@ public void Initialize() } } + foreach (var spec in _toolshed.AllCommands()) + { + var (isAvail, flagsReq) = GetRequiredFlag(spec.Cmd); + + if (!isAvail) + { + continue; + } + + if (flagsReq.Length != 0) + { + _toolshedCommandPermissions.AdminCommands.TryAdd(spec.Cmd.Name, flagsReq); + } + else + { + _toolshedCommandPermissions.AnyCommands.Add(spec.Cmd.Name); + } + } + // Load flags for engine commands, since those don't have the attributes. if (_res.TryContentFileRead(new ResPath("/engineCommandPerms.yml"), out var efs)) { _commandPermissions.LoadPermissionsFromStream(efs); } + + if (_res.TryContentFileRead(new ResPath("/toolshedEngineCommandPerms.yml"), out var toolshedPerms)) + { + _toolshedCommandPermissions.LoadPermissionsFromStream(toolshedPerms); + } + + _toolshed.ActivePermissionController = this; } public void PromoteHost(IPlayerSession player) @@ -366,6 +399,26 @@ private static bool IsLocal(IPlayerSession player) return Equals(addr, System.Net.IPAddress.Loopback) || Equals(addr, System.Net.IPAddress.IPv6Loopback); } + public bool TryGetCommandFlags(CommandSpec command, out AdminFlags[]? flags) + { + var cmdName = command.Cmd.Name; + + if (_toolshedCommandPermissions.AnyCommands.Contains(cmdName)) + { + // Anybody can use this command. + flags = null; + return true; + } + + if (_toolshedCommandPermissions.AdminCommands.TryGetValue(cmdName, out flags)) + { + return true; + } + + flags = null; + return false; + } + public bool CanCommand(IPlayerSession session, string cmdName) { if (_commandPermissions.AnyCommands.Contains(cmdName)) @@ -398,7 +451,51 @@ public bool CanCommand(IPlayerSession session, string cmdName) return false; } - private static (bool isAvail, AdminFlags[] flagsReq) GetRequiredFlag(IConsoleCommand cmd) + public bool CheckInvokable(CommandSpec command, ICommonSession? user, out IConError? error) + { + if (user is null) + { + error = null; + return true; // Server console. + } + + var name = command.Cmd.Name; + if (!TryGetCommandFlags(command, out var flags)) + { + // Command is missing permissions. + error = new CommandPermissionsUnassignedError(command); + return false; + } + + if (flags is null) + { + // Anyone can execute this. + error = null; + return true; + } + + var data = GetAdminData((IPlayerSession)user); + if (data == null) + { + // Player isn't an admin. + error = new NoPermissionError(command); + return false; + } + + foreach (var flag in flags) + { + if (data.HasFlag(flag)) + { + error = null; + return true; + } + } + + error = new NoPermissionError(command); + return false; + } + + private static (bool isAvail, AdminFlags[] flagsReq) GetRequiredFlag(object cmd) { MemberInfo type = cmd.GetType(); @@ -472,3 +569,28 @@ public AdminReg(IPlayerSession session, AdminData data) } } } + +public record struct CommandPermissionsUnassignedError(CommandSpec Command) : IConError +{ + public FormattedMessage DescribeInner() + { + return FormattedMessage.FromMarkup($"The command {Command.FullName()} is missing permission flags and cannot be executed."); + } + + public string? Expression { get; set; } + public Vector2i? IssueSpan { get; set; } + public StackTrace? Trace { get; set; } +} + + +public record struct NoPermissionError(CommandSpec Command) : IConError +{ + public FormattedMessage DescribeInner() + { + return FormattedMessage.FromMarkup($"You do not have permission to execute {Command.FullName()}"); + } + + public string? Expression { get; set; } + public Vector2i? IssueSpan { get; set; } + public StackTrace? Trace { get; set; } +} diff --git a/Content.Server/Administration/Managers/IAdminManager.cs b/Content.Server/Administration/Managers/IAdminManager.cs index c5cf126f3392bc..f5aa9da23e8278 100644 --- a/Content.Server/Administration/Managers/IAdminManager.cs +++ b/Content.Server/Administration/Managers/IAdminManager.cs @@ -1,6 +1,7 @@ using Content.Shared.Administration; using Content.Shared.Administration.Managers; using Robust.Server.Player; +using Robust.Shared.Toolshed; namespace Content.Server.Administration.Managers @@ -87,5 +88,7 @@ bool HasAdminFlag(IPlayerSession player, AdminFlags flag) void Initialize(); void PromoteHost(IPlayerSession player); + + bool TryGetCommandFlags(CommandSpec command, out AdminFlags[]? flags); } } diff --git a/Content.Server/Administration/Systems/AdminVerbSystem.Tools.cs b/Content.Server/Administration/Systems/AdminVerbSystem.Tools.cs index 7ce01122269fc9..77cdee3a9eb940 100644 --- a/Content.Server/Administration/Systems/AdminVerbSystem.Tools.cs +++ b/Content.Server/Administration/Systems/AdminVerbSystem.Tools.cs @@ -117,7 +117,7 @@ private void AddTricksVerbs(GetVerbsEvent args) Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/AdminActions/rejuvenate.png")), Act = () => { - RejuvenateCommand.PerformRejuvenate(args.Target); + _rejuvenate.PerformRejuvenate(args.Target); }, Impact = LogImpact.Extreme, Message = Loc.GetString("admin-trick-rejuvenate-description"), diff --git a/Content.Server/Administration/Systems/AdminVerbSystem.cs b/Content.Server/Administration/Systems/AdminVerbSystem.cs index ce5d479851ac02..63a5596020474c 100644 --- a/Content.Server/Administration/Systems/AdminVerbSystem.cs +++ b/Content.Server/Administration/Systems/AdminVerbSystem.cs @@ -1,3 +1,4 @@ +using System.Linq; using Content.Server.Administration.Commands; using Content.Server.Administration.Logs; using Content.Server.Administration.Managers; @@ -31,6 +32,7 @@ using Robust.Shared.Map.Components; using Robust.Shared.Prototypes; using Robust.Shared.Timing; +using Robust.Shared.Toolshed; using Robust.Shared.Utility; using static Content.Shared.Configurable.ConfigurationComponent; @@ -55,6 +57,8 @@ public sealed partial class AdminVerbSystem : EntitySystem [Dependency] private readonly PrayerSystem _prayerSystem = default!; [Dependency] private readonly EuiManager _eui = default!; [Dependency] private readonly MindSystem _mindSystem = default!; + [Dependency] private readonly ToolshedManager _toolshed = default!; + [Dependency] private readonly RejuvenateSystem _rejuvenate = default!; private readonly Dictionary _openSolutionUis = new(); @@ -78,6 +82,14 @@ private void AddAdminVerbs(GetVerbsEvent args) if (_adminManager.IsAdmin(player)) { + Verb mark = new(); + mark.Text = Loc.GetString("toolshed-verb-mark"); + mark.Message = Loc.GetString("toolshed-verb-mark-description"); + mark.Category = VerbCategory.Admin; + mark.Act = () => _toolshed.InvokeCommand(player, "=> $marked", Enumerable.Repeat(args.Target, 1), out _); + mark.Impact = LogImpact.Low; + args.Verbs.Add(mark); + if (TryComp(args.Target, out ActorComponent? targetActor)) { // AdminHelp @@ -188,8 +200,6 @@ private void AddAdminVerbs(GetVerbsEvent args) Category = VerbCategory.Admin, Act = () => { - if (!TryComp(args.Target, out var actor)) return; - _console.ExecuteCommand(player, $"respawn {actor.PlayerSession.Name}"); }, ConfirmationPopup = true, @@ -229,7 +239,7 @@ private void AddDebugVerbs(GetVerbsEvent args) Text = Loc.GetString("rejuvenate-verb-get-data-text"), Category = VerbCategory.Debug, Icon = new SpriteSpecifier.Texture(new ("/Textures/Interface/VerbIcons/rejuvenate.svg.192dpi.png")), - Act = () => RejuvenateCommand.PerformRejuvenate(args.Target), + Act = () => _rejuvenate.PerformRejuvenate(args.Target), Impact = LogImpact.Medium }; args.Verbs.Add(verb); @@ -247,11 +257,11 @@ private void AddDebugVerbs(GetVerbsEvent args) Act = () => { MakeSentientCommand.MakeSentient(args.Target, EntityManager); - + var mind = player.ContentData()?.Mind; if (mind == null) return; - + _mindSystem.TransferTo(mind, args.Target, ghostCheckOverride: true); }, Impact = LogImpact.High, diff --git a/Content.Server/Administration/Systems/RejuvenateSystem.cs b/Content.Server/Administration/Systems/RejuvenateSystem.cs new file mode 100644 index 00000000000000..d25db20bd937de --- /dev/null +++ b/Content.Server/Administration/Systems/RejuvenateSystem.cs @@ -0,0 +1,11 @@ +using Content.Shared.Rejuvenate; + +namespace Content.Server.Administration.Systems; + +public sealed class RejuvenateSystem : EntitySystem +{ + public void PerformRejuvenate(EntityUid target) + { + RaiseLocalEvent(target, new RejuvenateEvent()); + } +} diff --git a/Content.Server/Administration/Toolshed/AdminsCommand.cs b/Content.Server/Administration/Toolshed/AdminsCommand.cs new file mode 100644 index 00000000000000..aa82e0f1d93297 --- /dev/null +++ b/Content.Server/Administration/Toolshed/AdminsCommand.cs @@ -0,0 +1,24 @@ +using Content.Server.Administration.Managers; +using Content.Shared.Administration; +using Robust.Server.Player; +using Robust.Shared.Toolshed; + +namespace Content.Server.Administration.Toolshed; + +[ToolshedCommand, AdminCommand(AdminFlags.Admin)] +public sealed class AdminsCommand : ToolshedCommand +{ + [Dependency] private readonly IAdminManager _admin = default!; + + [CommandImplementation("active")] + public IEnumerable Active() + { + return _admin.ActiveAdmins; + } + + [CommandImplementation("all")] + public IEnumerable All() + { + return _admin.AllAdmins; + } +} diff --git a/Content.Server/Administration/Toolshed/MarkedCommand.cs b/Content.Server/Administration/Toolshed/MarkedCommand.cs new file mode 100644 index 00000000000000..b9e39cb82da8af --- /dev/null +++ b/Content.Server/Administration/Toolshed/MarkedCommand.cs @@ -0,0 +1,16 @@ +using Content.Shared.Administration; +using Robust.Shared.Toolshed; + +namespace Content.Server.Administration.Toolshed; + +[ToolshedCommand, AnyCommand] +public sealed class MarkedCommand : ToolshedCommand +{ + [CommandImplementation] + public IEnumerable Marked([CommandInvocationContext] IInvocationContext ctx) + { + var res = (IEnumerable?)ctx.ReadVar("marked"); + res ??= Array.Empty(); + return res; + } +} diff --git a/Content.Server/Administration/Toolshed/RejuvenateCommand.cs b/Content.Server/Administration/Toolshed/RejuvenateCommand.cs new file mode 100644 index 00000000000000..eb1272d3866ca0 --- /dev/null +++ b/Content.Server/Administration/Toolshed/RejuvenateCommand.cs @@ -0,0 +1,22 @@ +using Content.Server.Administration.Systems; +using Content.Shared.Administration; +using Robust.Shared.Toolshed; + +namespace Content.Server.Administration.Toolshed; + +[ToolshedCommand, AdminCommand(AdminFlags.Admin)] +public sealed class RejuvenateCommand : ToolshedCommand +{ + private RejuvenateSystem? _rejuvenate; + [CommandImplementation] + public IEnumerable Rejuvenate([PipedArgument] IEnumerable input) + { + _rejuvenate ??= GetSys(); + + foreach (var i in input) + { + _rejuvenate.PerformRejuvenate(i); + yield return i; + } + } +} diff --git a/Content.Server/Administration/Toolshed/SolutionCommand.cs b/Content.Server/Administration/Toolshed/SolutionCommand.cs new file mode 100644 index 00000000000000..b3f562a264a3c0 --- /dev/null +++ b/Content.Server/Administration/Toolshed/SolutionCommand.cs @@ -0,0 +1,49 @@ +using System.Linq; +using Content.Server.Chemistry.EntitySystems; +using Content.Shared.Administration; +using Content.Shared.Chemistry.Components; +using Robust.Shared.Toolshed; +using Robust.Shared.Toolshed.Syntax; + +namespace Content.Server.Administration.Toolshed; + +[ToolshedCommand, AdminCommand(AdminFlags.Debug)] +public sealed class SolutionCommand : ToolshedCommand +{ + private SolutionContainerSystem? _solutionContainer; + + [CommandImplementation("get")] + public SolutionRef? Get( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] EntityUid input, + [CommandArgument] ValueRef name + ) + { + _solutionContainer ??= GetSys(); + + _solutionContainer.TryGetSolution(input, name.Evaluate(ctx)!, out var solution); + + if (solution is not null) + return new SolutionRef(input, solution); + + return null; + } + + [CommandImplementation("get")] + public IEnumerable Get( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] IEnumerable input, + [CommandArgument] ValueRef name + ) + { + return input.Select(x => Get(ctx, x, name)).Where(x => x is not null).Cast(); + } +} + +public readonly record struct SolutionRef(EntityUid Owner, Solution Solution) +{ + public override string ToString() + { + return $"{Owner} {Solution}"; + } +} diff --git a/Content.Server/Administration/Toolshed/TagCommand.cs b/Content.Server/Administration/Toolshed/TagCommand.cs new file mode 100644 index 00000000000000..1af27797660dad --- /dev/null +++ b/Content.Server/Administration/Toolshed/TagCommand.cs @@ -0,0 +1,106 @@ +using System.Linq; +using Content.Shared.Administration; +using Content.Shared.Tag; +using Robust.Shared.Toolshed; +using Robust.Shared.Toolshed.Syntax; +using Robust.Shared.Toolshed.TypeParsers; + +namespace Content.Server.Administration.Toolshed; + +[ToolshedCommand, AdminCommand(AdminFlags.Debug)] +public sealed class TagCommand : ToolshedCommand +{ + private TagSystem? _tag; + + [CommandImplementation("list")] + public IEnumerable List([PipedArgument] IEnumerable ent) + { + return ent.SelectMany(x => + { + if (TryComp(x, out var tags)) + // Note: Cast is required for C# to figure out the type signature. + return (IEnumerable)tags.Tags; + return Array.Empty(); + }); + } + + [CommandImplementation("add")] + public EntityUid Add( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] EntityUid input, + [CommandArgument] ValueRef> @ref + ) + { + _tag ??= GetSys(); + _tag.AddTag(input, @ref.Evaluate(ctx)!); + return input; + } + + [CommandImplementation("add")] + public IEnumerable Add( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] IEnumerable input, + [CommandArgument] ValueRef> @ref + ) + => input.Select(x => Add(ctx, x, @ref)); + + [CommandImplementation("rm")] + public EntityUid Rm( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] EntityUid input, + [CommandArgument] ValueRef> @ref + ) + { + _tag ??= GetSys(); + _tag.RemoveTag(input, @ref.Evaluate(ctx)!); + return input; + } + + [CommandImplementation("rm")] + public IEnumerable Rm( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] IEnumerable input, + [CommandArgument] ValueRef> @ref + ) + => input.Select(x => Rm(ctx, x, @ref)); + + [CommandImplementation("addmany")] + public EntityUid AddMany( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] EntityUid input, + [CommandArgument] ValueRef, IEnumerable> @ref + ) + { + _tag ??= GetSys(); + _tag.AddTags(input, @ref.Evaluate(ctx)!); + return input; + } + + [CommandImplementation("addmany")] + public IEnumerable AddMany( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] IEnumerable input, + [CommandArgument] ValueRef, IEnumerable> @ref + ) + => input.Select(x => AddMany(ctx, x, @ref)); + + [CommandImplementation("rmmany")] + public EntityUid RmMany( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] EntityUid input, + [CommandArgument] ValueRef, IEnumerable> @ref + ) + { + _tag ??= GetSys(); + _tag.RemoveTags(input, @ref.Evaluate(ctx)!); + return input; + } + + [CommandImplementation("rmmany")] + public IEnumerable RmMany( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] IEnumerable input, + [CommandArgument] ValueRef, IEnumerable> @ref + ) + => input.Select(x => RmMany(ctx, x, @ref)); +} diff --git a/Content.Server/Bql/BqlSelectCommand.cs b/Content.Server/Bql/BqlSelectCommand.cs deleted file mode 100644 index bcb658bfe7d458..00000000000000 --- a/Content.Server/Bql/BqlSelectCommand.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System.Linq; -using Content.Server.Administration; -using Content.Server.EUI; -using Content.Shared.Administration; -using Content.Shared.Bql; -using Content.Shared.Eui; -using Robust.Server.Bql; -using Robust.Server.Player; -using Robust.Shared.Console; - -namespace Content.Server.Bql; - -[AdminCommand(AdminFlags.Query)] -public sealed class BqlSelectCommand : LocalizedCommands -{ - [Dependency] private readonly IBqlQueryManager _bql = default!; - [Dependency] private readonly EuiManager _euiManager = default!; - [Dependency] private readonly IEntityManager _entityManager = default!; - - public override string Command => "bql_select"; - - public override void Execute(IConsoleShell shell, string argStr, string[] args) - { - if (shell.Player == null) - { - shell.WriteError(LocalizationManager.GetString("cmd-bql_select-err-server-shell")); - return; - } - - var (entities, rest) = _bql.SimpleParseAndExecute(argStr["bql_select".Length..]); - - if (!string.IsNullOrWhiteSpace(rest)) - shell.WriteLine(LocalizationManager.GetString("cmd-bql_select-err-rest", ("rest", rest))); - - var ui = new BqlResultsEui( - entities.Select(e => (_entityManager.GetComponent(e).EntityName, e)).ToArray() - ); - _euiManager.OpenEui(ui, (IPlayerSession) shell.Player); - _euiManager.QueueStateUpdate(ui); - } -} - -internal sealed class BqlResultsEui : BaseEui -{ - private readonly (string name, EntityUid entity)[] _entities; - - public BqlResultsEui((string name, EntityUid entity)[] entities) - { - _entities = entities; - } - - public override EuiStateBase GetNewState() - { - return new BqlResultsEuiState(_entities); - } -} diff --git a/Content.Server/Bql/QuerySelectors.cs b/Content.Server/Bql/QuerySelectors.cs deleted file mode 100644 index 829dee7e38c116..00000000000000 --- a/Content.Server/Bql/QuerySelectors.cs +++ /dev/null @@ -1,137 +0,0 @@ -using System.Linq; -using Content.Server.Chemistry.Components.SolutionManager; -using Content.Server.Mind; -using Content.Server.Mind.Components; -using Content.Server.Power.Components; -using Content.Shared.Tag; -using Robust.Server.Bql; - -namespace Content.Server.Bql -{ - public sealed class QuerySelectors - { - [RegisterBqlQuerySelector] - public sealed class MindfulQuerySelector : BqlQuerySelector - { - public override string Token => "mindful"; - - public override QuerySelectorArgument[] Arguments => Array.Empty(); - - public override IEnumerable DoSelection(IEnumerable input, - IReadOnlyList arguments, bool isInverted, IEntityManager entityManager) - { - return input.Where(e => - { - if (entityManager.TryGetComponent(e, out var mind)) - return (mind.Mind?.VisitingEntity == e) ^ isInverted; - - return isInverted; - }); - } - - public override IEnumerable DoInitialSelection(IReadOnlyList arguments, bool isInverted, IEntityManager entityManager) - { - - return DoSelection( - entityManager.EntityQuery().Select(x => x.Owner), - arguments, isInverted, entityManager); - } - } - - [RegisterBqlQuerySelector] - public sealed class TaggedQuerySelector : BqlQuerySelector - { - public override string Token => "tagged"; - - public override QuerySelectorArgument[] Arguments => new [] { QuerySelectorArgument.String }; - - public override IEnumerable DoSelection(IEnumerable input, IReadOnlyList arguments, bool isInverted, IEntityManager entityManager) - { - return input.Where(e => - (entityManager.TryGetComponent(e, out var tag) && - tag.Tags.Contains((string) arguments[0])) ^ isInverted); - } - - public override IEnumerable DoInitialSelection(IReadOnlyList arguments, bool isInverted, IEntityManager entityManager) - { - return DoSelection(entityManager.EntityQuery().Select(x => x.Owner), arguments, - isInverted, entityManager); - - } - } - - [RegisterBqlQuerySelector] - public sealed class AliveQuerySelector : BqlQuerySelector - { - public override string Token => "alive"; - - public override QuerySelectorArgument[] Arguments => Array.Empty(); - - public override IEnumerable DoSelection(IEnumerable input, IReadOnlyList arguments, bool isInverted, IEntityManager entityManager) - { - var mindSystem = entityManager.System(); - return input.Where(e => - entityManager.TryGetComponent(e, out var mind) - && mind.Mind != null - && !mindSystem.IsCharacterDeadPhysically(mind.Mind)); - } - - public override IEnumerable DoInitialSelection(IReadOnlyList arguments, bool isInverted, IEntityManager entityManager) - { - return DoSelection(entityManager.EntityQuery().Select(x => x.Owner), arguments, - isInverted, entityManager); - } - } - - [RegisterBqlQuerySelector] - public sealed class HasReagentQuerySelector : BqlQuerySelector - { - public override string Token => "hasreagent"; - - public override QuerySelectorArgument[] Arguments => new [] { QuerySelectorArgument.String }; - - public override IEnumerable DoSelection(IEnumerable input, IReadOnlyList arguments, bool isInverted, IEntityManager entityManager) - { - var reagent = (string) arguments[0]; - return input.Where(e => - { - if (entityManager.TryGetComponent(e, out var solutionContainerManagerComponent)) - { - return solutionContainerManagerComponent.Solutions - .Any(solution => solution.Value.ContainsReagent(reagent)) ^ isInverted; - } - - return isInverted; - }); - } - - public override IEnumerable DoInitialSelection(IReadOnlyList arguments, bool isInverted, IEntityManager entityManager) - { - return DoSelection(entityManager.EntityQuery().Select(x => x.Owner), arguments, - isInverted, entityManager); - } - } - - [RegisterBqlQuerySelector] - public sealed class ApcPoweredQuerySelector : BqlQuerySelector - { - public override string Token => "apcpowered"; - - public override QuerySelectorArgument[] Arguments => Array.Empty(); - - public override IEnumerable DoSelection(IEnumerable input, IReadOnlyList arguments, bool isInverted, IEntityManager entityManager) - { - return input.Where(e => - entityManager.TryGetComponent(e, out var apcPowerReceiver) - ? apcPowerReceiver.Powered ^ isInverted - : isInverted); - } - - public override IEnumerable DoInitialSelection(IReadOnlyList arguments, bool isInverted, IEntityManager entityManager) - { - return DoSelection(entityManager.EntityQuery().Select(x => x.Owner), arguments, - isInverted, entityManager); - } - } - } -} diff --git a/Content.Server/Entry/EntryPoint.cs b/Content.Server/Entry/EntryPoint.cs index 46ab3f8bd8fd46..41b6963332f6d3 100644 --- a/Content.Server/Entry/EntryPoint.cs +++ b/Content.Server/Entry/EntryPoint.cs @@ -19,18 +19,15 @@ using Content.Server.ServerInfo; using Content.Server.ServerUpdates; using Content.Server.Voting.Managers; -using Content.Shared.Administration; using Content.Shared.CCVar; using Content.Shared.Kitchen; using Robust.Server; -using Robust.Server.Bql; using Robust.Shared.Configuration; using Robust.Server.ServerStatus; using Robust.Shared.ContentPack; using Robust.Shared.Prototypes; using Robust.Shared.Timing; using Robust.Shared.Utility; -using Content.Server.Station.Systems; using Content.Shared.Localizations; namespace Content.Server.Entry @@ -145,7 +142,6 @@ public override void PostInit() IoCManager.Resolve().Initialize(); IoCManager.Resolve().GetEntitySystem().PostInitialize(); - IoCManager.Resolve().DoAutoRegistrations(); IoCManager.Resolve().Initialize(); } } diff --git a/Content.Server/IoC/ServerContentIoC.cs b/Content.Server/IoC/ServerContentIoC.cs index 88d43213ba2b95..70796a72393800 100644 --- a/Content.Server/IoC/ServerContentIoC.cs +++ b/Content.Server/IoC/ServerContentIoC.cs @@ -11,6 +11,7 @@ using Content.Server.Info; using Content.Server.Maps; using Content.Server.MoMMI; +using Content.Server.NewCon; using Content.Server.NodeContainer.NodeGroups; using Content.Server.Objectives; using Content.Server.Objectives.Interfaces; @@ -23,6 +24,7 @@ using Content.Shared.Administration.Logs; using Content.Shared.Administration.Managers; using Content.Shared.Kitchen; +using Robust.Shared.Toolshed; namespace Content.Server.IoC { diff --git a/Content.Server/NewCon/Commands/AdminDebug/ACmdCommand.cs b/Content.Server/NewCon/Commands/AdminDebug/ACmdCommand.cs new file mode 100644 index 00000000000000..a79219671581c9 --- /dev/null +++ b/Content.Server/NewCon/Commands/AdminDebug/ACmdCommand.cs @@ -0,0 +1,34 @@ +using Content.Server.Administration; +using Content.Server.Administration.Managers; +using Content.Shared.Administration; +using Robust.Server.Player; +using Robust.Shared.Toolshed; +using Robust.Shared.Toolshed.Syntax; + +namespace Content.Server.NewCon.Commands.AdminDebug; + +[ToolshedCommand, AdminCommand(AdminFlags.Debug)] +public sealed class ACmdCommand : ToolshedCommand +{ + [Dependency] private readonly IAdminManager _adminManager = default!; + + [CommandImplementation("perms")] + public AdminFlags[]? Perms([PipedArgument] CommandSpec command) + { + var res = _adminManager.TryGetCommandFlags(command, out var flags); + if (res) + flags ??= Array.Empty(); + return flags; + } + + [CommandImplementation("caninvoke")] + public bool CanInvoke( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] CommandSpec command, + [CommandArgument] ValueRef player + ) + { + // Deliberately discard the error. + return ((IPermissionController) _adminManager).CheckInvokable(command, player.Evaluate(ctx), out var err); + } +} diff --git a/Content.Server/NewCon/Commands/Verbs/RunVerbAsCommand.cs b/Content.Server/NewCon/Commands/Verbs/RunVerbAsCommand.cs new file mode 100644 index 00000000000000..21f2119dacf460 --- /dev/null +++ b/Content.Server/NewCon/Commands/Verbs/RunVerbAsCommand.cs @@ -0,0 +1,62 @@ +using System.Linq; +using Content.Server.Administration; +using Content.Shared.Administration; +using Content.Shared.Verbs; +using Robust.Shared.Toolshed; +using Robust.Shared.Toolshed.Syntax; +using Robust.Shared.Toolshed.TypeParsers; + +namespace Content.Server.NewCon.Commands.Verbs; + +[ToolshedCommand, AdminCommand(AdminFlags.Admin)] +public sealed class RunVerbAsCommand : ToolshedCommand +{ + private SharedVerbSystem? _verb; + + [CommandImplementation] + public IEnumerable RunVerbAs( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] IEnumerable input, + [CommandArgument] ValueRef runner, + [CommandArgument] string verb + ) + { + _verb ??= GetSys(); + verb = verb.ToLowerInvariant(); + + foreach (var i in input) + { + var runnerEid = runner.Evaluate(ctx); + + + if (EntityManager.Deleted(runnerEid) && runnerEid != default) + ctx.ReportError(new DeadEntity(runnerEid)); + + if (ctx.GetErrors().Any()) + yield break; + + var verbs = _verb.GetLocalVerbs(i, runnerEid, Verb.VerbTypes, true); + + // if the "verb name" is actually a verb-type, try run any verb of that type. + var verbType = Verb.VerbTypes.FirstOrDefault(x => x.Name == verb); + if (verbType != null) + { + var verbTy = verbs.FirstOrDefault(v => v.GetType() == verbType); + if (verbTy != null) + { + _verb.ExecuteVerb(verbTy, runnerEid, i, forced: true); + yield return i; + } + } + + foreach (var verbTy in verbs) + { + if (verbTy.Text.ToLowerInvariant() == verb) + { + _verb.ExecuteVerb(verbTy, runnerEid, i, forced: true); + yield return i; + } + } + } + } +} diff --git a/Content.Server/NewCon/Commands/VisualizeCommand.cs b/Content.Server/NewCon/Commands/VisualizeCommand.cs new file mode 100644 index 00000000000000..44e4730959a882 --- /dev/null +++ b/Content.Server/NewCon/Commands/VisualizeCommand.cs @@ -0,0 +1,51 @@ +using System.Linq; +using Content.Server.Administration; +using Content.Server.EUI; +using Content.Shared.Administration; +using Content.Shared.Bql; +using Content.Shared.Eui; +using Robust.Server.Player; +using Robust.Shared.Toolshed; +using Robust.Shared.Toolshed.Errors; + +namespace Content.Server.NewCon.Commands; + +[ToolshedCommand, AdminCommand(AdminFlags.Admin)] +public sealed class VisualizeCommand : ToolshedCommand +{ + [Dependency] private readonly EuiManager _euiManager = default!; + + [CommandImplementation] + public void VisualizeEntities( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] IEnumerable input + ) + { + if (ctx.Session is null) + { + ctx.ReportError(new NotForServerConsoleError()); + return; + } + + var ui = new ToolshedVisualizeEui( + input.Select(e => (EntName(e), e)).ToArray() + ); + _euiManager.OpenEui(ui, (IPlayerSession) ctx.Session); + _euiManager.QueueStateUpdate(ui); + } +} +internal sealed class ToolshedVisualizeEui : BaseEui +{ + private readonly (string name, EntityUid entity)[] _entities; + + public ToolshedVisualizeEui((string name, EntityUid entity)[] entities) + { + _entities = entities; + } + + public override EuiStateBase GetNewState() + { + return new ToolshedVisualizeEuiState(_entities); + } +} + diff --git a/Content.Server/Station/Commands/JobsCommand.cs b/Content.Server/Station/Commands/JobsCommand.cs new file mode 100644 index 00000000000000..1d023c4a844fc7 --- /dev/null +++ b/Content.Server/Station/Commands/JobsCommand.cs @@ -0,0 +1,129 @@ +using System.Linq; +using Content.Server.Administration; +using Content.Server.Station.Systems; +using Content.Shared.Administration; +using Content.Shared.Roles; +using Robust.Shared.Toolshed; +using Robust.Shared.Toolshed.Syntax; +using Robust.Shared.Toolshed.TypeParsers; + +namespace Content.Server.Station.Commands; + +[ToolshedCommand, AdminCommand(AdminFlags.VarEdit)] +public sealed class JobsCommand : ToolshedCommand +{ + private StationJobsSystem? _jobs; + + [CommandImplementation("jobs")] + public IEnumerable Jobs([PipedArgument] EntityUid station) + { + _jobs ??= GetSys(); + + foreach (var (job, _) in _jobs.GetJobs(station)) + { + yield return new JobSlotRef(job, station, _jobs, EntityManager); + } + } + + [CommandImplementation("jobs")] + public IEnumerable Jobs([PipedArgument] IEnumerable stations) + => stations.SelectMany(Jobs); + + [CommandImplementation("job")] + public JobSlotRef Job([PipedArgument] EntityUid station, [CommandArgument] Prototype job) + { + _jobs ??= GetSys(); + + return new JobSlotRef(job.Value.ID, station, _jobs, EntityManager); + } + + [CommandImplementation("job")] + public IEnumerable Job([PipedArgument] IEnumerable stations, [CommandArgument] Prototype job) + => stations.Select(x => Job(x, job)); + + [CommandImplementation("isinfinite")] + public bool IsInfinite([PipedArgument] JobSlotRef job, [CommandInverted] bool inverted) + => job.Infinite() ^ inverted; + + [CommandImplementation("isinfinite")] + public IEnumerable IsInfinite([PipedArgument] IEnumerable jobs, [CommandInverted] bool inverted) + => jobs.Select(x => IsInfinite(x, inverted)); + + [CommandImplementation("adjust")] + public JobSlotRef Adjust( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] JobSlotRef @ref, + [CommandArgument] ValueRef by + ) + { + _jobs ??= GetSys(); + _jobs.TryAdjustJobSlot(@ref.Station, @ref.Job, by.Evaluate(ctx), true, true); + return @ref; + } + + [CommandImplementation("adjust")] + public IEnumerable Adjust( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] IEnumerable @ref, + [CommandArgument] ValueRef by + ) + => @ref.Select(x => Adjust(ctx, x, by)); + + + [CommandImplementation("set")] + public JobSlotRef Set( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] JobSlotRef @ref, + [CommandArgument] ValueRef by + ) + { + _jobs ??= GetSys(); + _jobs.TrySetJobSlot(@ref.Station, @ref.Job, by.Evaluate(ctx), true); + return @ref; + } + + [CommandImplementation("set")] + public IEnumerable Set( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] IEnumerable @ref, + [CommandArgument] ValueRef by + ) + => @ref.Select(x => Set(ctx, x, by)); + + [CommandImplementation("amount")] + public int Amount( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] JobSlotRef @ref + ) + { + _jobs ??= GetSys(); + _jobs.TryGetJobSlot(@ref.Station, @ref.Job, out var slots); + return (int)(slots ?? 0); + } + + [CommandImplementation("amount")] + public IEnumerable Amount( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] IEnumerable @ref + ) + => @ref.Select(x => Amount(ctx, x)); +} + +// Used for Toolshed queries. +public readonly record struct JobSlotRef(string Job, EntityUid Station, StationJobsSystem Jobs, IEntityManager EntityManager) +{ + public override string ToString() + { + if (!Jobs.TryGetJobSlot(Station, Job, out var slot)) + { + return $"{EntityManager.ToPrettyString(Station)} job {Job} : (not a slot)"; + } + + return $"{EntityManager.ToPrettyString(Station)} job {Job} : {slot?.ToString() ?? "infinite"}"; + } + + public bool Infinite() + { + return Jobs.TryGetJobSlot(Station, Job, out var slot) && slot is null; + } +} diff --git a/Content.Server/Station/Commands/StationCommand.cs b/Content.Server/Station/Commands/StationCommand.cs new file mode 100644 index 00000000000000..b2381a0322a973 --- /dev/null +++ b/Content.Server/Station/Commands/StationCommand.cs @@ -0,0 +1,126 @@ +using System.Diagnostics; +using System.Linq; +using Content.Server.Administration; +using Content.Server.Station.Components; +using Content.Server.Station.Systems; +using Content.Shared.Administration; +using Robust.Shared.Toolshed; +using Robust.Shared.Toolshed.Errors; +using Robust.Shared.Toolshed.Syntax; +using Robust.Shared.Utility; + +namespace Content.Server.Station.Commands; + +[ToolshedCommand, AdminCommand(AdminFlags.Admin)] +public sealed class StationsCommand : ToolshedCommand +{ + private StationSystem? _station; + + [CommandImplementation("list")] + public IEnumerable List() + { + _station ??= GetSys(); + + return _station.GetStationsSet(); + } + + [CommandImplementation("get")] + public EntityUid Get([CommandInvocationContext] IInvocationContext ctx) + { + _station ??= GetSys(); + + var set = _station.GetStationsSet(); + if (set.Count > 1 || set.Count == 0) + ctx.ReportError(new OnlyOneStationsError()); + + return set.FirstOrDefault(); + } + + [CommandImplementation("getowningstation")] + public IEnumerable GetOwningStation([PipedArgument] IEnumerable input) + => input.Select(GetOwningStation); + + [CommandImplementation("getowningstation")] + public EntityUid? GetOwningStation([PipedArgument] EntityUid input) + { + _station ??= GetSys(); + + return _station.GetOwningStation(input); + } + + [CommandImplementation("largestgrid")] + public EntityUid? LargestGrid([PipedArgument] EntityUid input) + { + _station ??= GetSys(); + + return _station.GetLargestGrid(Comp(input)); + } + + [CommandImplementation("largestgrid")] + public IEnumerable LargestGrid([PipedArgument] IEnumerable input) + => input.Select(LargestGrid); + + + [CommandImplementation("grids")] + public IEnumerable Grids([PipedArgument] EntityUid input) + => Comp(input).Grids; + + [CommandImplementation("grids")] + public IEnumerable Grids([PipedArgument] IEnumerable input) + => input.SelectMany(Grids); + + [CommandImplementation("config")] + public StationConfig? Config([PipedArgument] EntityUid input) + => Comp(input).StationConfig; + + [CommandImplementation("config")] + public IEnumerable Config([PipedArgument] IEnumerable input) + => input.Select(Config); + + [CommandImplementation("addgrid")] + public void AddGrid( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] EntityUid input, + [CommandArgument] ValueRef grid + ) + { + _station ??= GetSys(); + + _station.AddGridToStation(input, grid.Evaluate(ctx)); + } + + [CommandImplementation("rmgrid")] + public void RmGrid( + [CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] EntityUid input, + [CommandArgument] ValueRef grid + ) + { + _station ??= GetSys(); + + _station.RemoveGridFromStation(input, grid.Evaluate(ctx)); + } + + [CommandImplementation("rename")] + public void Rename([CommandInvocationContext] IInvocationContext ctx, + [PipedArgument] EntityUid input, + [CommandArgument] ValueRef name + ) + { + _station ??= GetSys(); + + _station.RenameStation(input, name.Evaluate(ctx)!); + } +} + +public record struct OnlyOneStationsError : IConError +{ + public FormattedMessage DescribeInner() + { + return FormattedMessage.FromMarkup("This command doesn't function if there is more than one or no stations, explicitly specify a station with the ent command or similar."); + } + + public string? Expression { get; set; } + public Vector2i? IssueSpan { get; set; } + public StackTrace? Trace { get; set; } +} diff --git a/Content.Shared/Administration/AnyCommandAttribute.cs b/Content.Shared/Administration/AnyCommandAttribute.cs index 52c895163147fe..66a1bd0badbeab 100644 --- a/Content.Shared/Administration/AnyCommandAttribute.cs +++ b/Content.Shared/Administration/AnyCommandAttribute.cs @@ -1,5 +1,6 @@ using JetBrains.Annotations; using Robust.Shared.Console; +using Robust.Shared.Toolshed; namespace Content.Shared.Administration { @@ -7,7 +8,6 @@ namespace Content.Shared.Administration /// Specifies that a command can be executed by any player. /// [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] - [BaseTypeRequired(typeof(IConsoleCommand))] [MeansImplicitUse] public sealed class AnyCommandAttribute : Attribute { diff --git a/Content.Shared/Bql/BqlResultsEuiState.cs b/Content.Shared/Bql/ToolshedVisualizeEuiState.cs similarity index 62% rename from Content.Shared/Bql/BqlResultsEuiState.cs rename to Content.Shared/Bql/ToolshedVisualizeEuiState.cs index cd298fa8148548..95058546144a9a 100644 --- a/Content.Shared/Bql/BqlResultsEuiState.cs +++ b/Content.Shared/Bql/ToolshedVisualizeEuiState.cs @@ -4,11 +4,11 @@ namespace Content.Shared.Bql; [Serializable, NetSerializable] -public sealed class BqlResultsEuiState : EuiStateBase +public sealed class ToolshedVisualizeEuiState : EuiStateBase { public readonly (string name, EntityUid entity)[] Entities; - public BqlResultsEuiState((string name, EntityUid entity)[] entities) + public ToolshedVisualizeEuiState((string name, EntityUid entity)[] entities) { Entities = entities; } diff --git a/Resources/Locale/en-US/administration/admin-verbs.ftl b/Resources/Locale/en-US/administration/admin-verbs.ftl index dab68eab4d7492..6804171f7d2ffc 100644 --- a/Resources/Locale/en-US/administration/admin-verbs.ftl +++ b/Resources/Locale/en-US/administration/admin-verbs.ftl @@ -7,3 +7,5 @@ admin-verbs-teleport-to = Teleport To admin-verbs-teleport-here = Teleport Here admin-verbs-freeze = Freeze admin-verbs-unfreeze = Unfreeze +toolshed-verb-mark = Mark +toolshed-verb-mark-description = Places this entity into the $marked variable, a list of entities, replacing it's prior value. diff --git a/Resources/Locale/en-US/commands/toolshed-commands.ftl b/Resources/Locale/en-US/commands/toolshed-commands.ftl new file mode 100644 index 00000000000000..a0416d9ecf66ee --- /dev/null +++ b/Resources/Locale/en-US/commands/toolshed-commands.ftl @@ -0,0 +1,56 @@ +command-description-visualize = + Takes the input list of entities and puts them into a UI window for easy browsing. +command-description-runverbas = + Runs a verb over the input entities with the given user. +command-description-acmd-perms = + Returns the admin permissions of the given command, if any. +command-description-acmd-caninvoke = + Check if the given player can invoke the given command. +command-description-jobs-jobs = + Returns all jobs on a station. +command-description-jobs-job = + Returns a given job on a station. +command-description-jobs-isinfinite = + Returns true if the input job is infinite, otherwise false. +command-description-jobs-adjust = + Adjusts the number of slots for the given job. +command-description-jobs-set = + Sets the number of slots for the given job. +command-description-jobs-amount = + Returns the number of slots for the given job. +command-description-stations-list = + Returns a list of all stations. +command-description-stations-get = + Gets the active station, if and only if there is only one. +command-description-stations-getowningstation = + Gets the station that a given entity is "owned by" (within) +command-description-stations-grids = + Returns all grids associated with the input station. +command-description-stations-config = + Returns the config associated with the input station, if any. +command-description-stations-addgrid = + Adds a grid to the given station. +command-description-stations-rmgrid = + Removes a grid from the given station. +command-description-stations-rename = + Renames the given station. +command-description-stations-largestgrid = + Returns the largest grid the given station has, if any. +command-description-admins-active = + Returns a list of active admins. +command-description-admins-all = + Returns a list of ALL admins, including deadmined ones. +command-description-marked = + Returns the value of $marked as a List. +command-description-rejuvenate = + Rejuvenates the given entities, restoring them to full health, clearing status effects, etc. +command-description-tag-list = + Lists tags on the given entities. +command-description-tag-add = + Adds a tag to the given entities. +command-description-tag-rm = + Removes a tag from the given entities. +command-description-tag-addmany = + Adds a list of tags to the given entities. +command-description-tag-rmmany = + Removes a list of tags from the given entities. diff --git a/Resources/engineCommandPerms.yml b/Resources/engineCommandPerms.yml index 6dff0d9b223c71..ccbacde9163e63 100644 --- a/Resources/engineCommandPerms.yml +++ b/Resources/engineCommandPerms.yml @@ -126,7 +126,9 @@ - Flags: QUERY Commands: - - forall - uploadfile - loadprototype - uploadfolder + +- Commands: + - "|" diff --git a/Resources/toolshedEngineCommandPerms.yml b/Resources/toolshedEngineCommandPerms.yml new file mode 100644 index 00000000000000..f090ac4baab4ef --- /dev/null +++ b/Resources/toolshedEngineCommandPerms.yml @@ -0,0 +1,70 @@ +- Flags: QUERY + Commands: + - entities + - nearby + - map + - physics + - player + - splat + - emplace + +- Flags: DEBUG + Commands: + - comp + - delete + - do + - named + - paused + - with + - count + - select + - where + - prototyped + - types + - ecscomp + - actor + +- Flags: HOST + Commands: + - methods + - ioc + +- Commands: + - fuck + - ent + - as + - buildinfo + - help + - explain + - cmd + - stopwatch + - self + - search + - isnull + - help + - isempty + - any + - unique + - cd + - ls + - loc + - vars + - '=>' + - first + - val + - '+' + - '-' + - '*' + - '/' + - 'min' + - 'max' + - '&' + - '|' + - '^' + - 'neg' + - '<' + - '>' + - '<=' + - '>=' + - '==' + - '!=' diff --git a/RobustToolbox b/RobustToolbox index a7315b1c95e335..cf91369d27f565 160000 --- a/RobustToolbox +++ b/RobustToolbox @@ -1 +1 @@ -Subproject commit a7315b1c95e335ec24f77732021fdedc0bd0cf74 +Subproject commit cf91369d27f5653fc5c597b3a9fca04a29172674 diff --git a/SpaceStation14.sln.DotSettings b/SpaceStation14.sln.DotSettings index 37e81819724629..dbb20970b1dae7 100644 --- a/SpaceStation14.sln.DotSettings +++ b/SpaceStation14.sln.DotSettings @@ -604,6 +604,8 @@ public sealed class $CLASS$ : Shared$CLASS$ { True True True + True + True True True True From 75b1435c48de32ab76de163e82376f930e6707e1 Mon Sep 17 00:00:00 2001 From: PuceTint <69696513+PuceTint@users.noreply.github.com> Date: Wed, 2 Aug 2023 23:33:00 +0200 Subject: [PATCH 04/37] nitrous oxide causes laughing (#18575) * n2o causes laughing * lower threshold, sort usign threshold --- Resources/Prototypes/Reagents/gases.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Resources/Prototypes/Reagents/gases.yml b/Resources/Prototypes/Reagents/gases.yml index c8f47118522f1b..3637beadeaf70a 100644 --- a/Resources/Prototypes/Reagents/gases.yml +++ b/Resources/Prototypes/Reagents/gases.yml @@ -245,6 +245,22 @@ metabolisms: Gas: effects: + - !type:Emote + conditions: + - !type:ReagentThreshold + reagent: NitrousOxide + min: 0.2 + emote: Laugh + showInChat: true + probability: 0.1 + - !type:Emote + conditions: + - !type:ReagentThreshold + reagent: NitrousOxide + min: 0.2 + emote: Scream + showInChat: true + probability: 0.01 - !type:PopupMessage conditions: - !type:ReagentThreshold From 8d5a3545924e13a37badde1a12d7d2a06157f8e1 Mon Sep 17 00:00:00 2001 From: PJBot Date: Wed, 2 Aug 2023 17:34:05 -0400 Subject: [PATCH 05/37] Automatic changelog update --- Resources/Changelog/Changelog.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 0004ce7f2cdbba..af0e255391e56b 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: metalgearsloth - changes: - - {message: L6 firerate is 6 again. It requires wielding to have decent accuracy., - type: Tweak} - - {message: SMG accuracy reduced to 3-tiles width at full screen away., type: Tweak} - id: 3917 - time: '2023-06-01T02:40:11.0000000+00:00' - author: liltenhead changes: - {message: Autolathe board economy crashed, type: Tweak} @@ -2990,3 +2983,8 @@ Entries: - {message: Containers used in recipes now drop their contents when crafted., type: Fix} id: 4416 time: '2023-08-02T18:32:51.0000000+00:00' +- author: PuceTint + changes: + - {message: Nitrous oxide now causes laughing, type: Add} + id: 4417 + time: '2023-08-02T21:33:00.0000000+00:00' From 868f3298e5eb3dd7c26b59f0cb4502f99ba10f7a Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Thu, 3 Aug 2023 07:34:54 +1000 Subject: [PATCH 06/37] Xeno spitter fixes (#18573) * Xeno spitter fixes - Require hands for pickup compounds - Ranged combat can force movement to ignore LOS checks if ranged wants better LOS. * Also spirates IDK how this worked before but TryGetGun shouldn't care about combatmode. * 1 more --- .../Weapons/Ranged/Systems/GunSystem.cs | 3 ++- .../NPC/Components/NPCSteeringComponent.cs | 6 ++++++ .../NPC/Systems/NPCCombatSystem.Ranged.cs | 18 ++++++++++++++++-- .../NPC/Systems/NPCSteeringSystem.Context.cs | 3 ++- .../Weapons/Ranged/Systems/SharedGunSystem.cs | 6 +++--- Resources/Prototypes/NPCs/Combat/gun.yml | 1 + Resources/Prototypes/NPCs/Combat/melee.yml | 1 + 7 files changed, 31 insertions(+), 7 deletions(-) diff --git a/Content.Client/Weapons/Ranged/Systems/GunSystem.cs b/Content.Client/Weapons/Ranged/Systems/GunSystem.cs index 2459d1d29ed96a..74ee7bdbbff9f5 100644 --- a/Content.Client/Weapons/Ranged/Systems/GunSystem.cs +++ b/Content.Client/Weapons/Ranged/Systems/GunSystem.cs @@ -2,6 +2,7 @@ using Content.Client.Items; using Content.Client.Weapons.Ranged.Components; using Content.Shared.Camera; +using Content.Shared.CombatMode; using Content.Shared.Spawners.Components; using Content.Shared.Weapons.Ranged; using Content.Shared.Weapons.Ranged.Components; @@ -126,7 +127,7 @@ public override void Update(float frameTime) var entityNull = _player.LocalPlayer?.ControlledEntity; - if (entityNull == null) + if (entityNull == null || !TryComp(entityNull, out var combat) || !combat.IsInCombatMode) { return; } diff --git a/Content.Server/NPC/Components/NPCSteeringComponent.cs b/Content.Server/NPC/Components/NPCSteeringComponent.cs index d1ec137aa97661..521e0688a166f0 100644 --- a/Content.Server/NPC/Components/NPCSteeringComponent.cs +++ b/Content.Server/NPC/Components/NPCSteeringComponent.cs @@ -39,6 +39,12 @@ public sealed class NPCSteeringComponent : Component #endregion + /// + /// Set to true from other systems if you wish to force the NPC to move closer. + /// + [DataField("forceMove")] + public bool ForceMove = false; + /// /// Next time we can change our steering direction. /// diff --git a/Content.Server/NPC/Systems/NPCCombatSystem.Ranged.cs b/Content.Server/NPC/Systems/NPCCombatSystem.Ranged.cs index cbec56aeb3f967..10ec54c895444a 100644 --- a/Content.Server/NPC/Systems/NPCCombatSystem.Ranged.cs +++ b/Content.Server/NPC/Systems/NPCCombatSystem.Ranged.cs @@ -1,6 +1,7 @@ using Content.Server.NPC.Components; using Content.Shared.CombatMode; using Content.Shared.Interaction; +using Content.Shared.Physics; using Content.Shared.Weapons.Ranged.Components; using Content.Shared.Weapons.Ranged.Events; using Robust.Shared.Map; @@ -132,13 +133,20 @@ private void UpdateRanged(float frameTime) if (comp.LOSAccumulator < 0f) { comp.LOSAccumulator += UnoccludedCooldown; - comp.TargetInLOS = _interaction.InRangeUnobstructed(uid, comp.Target, distance + 0.1f); + // For consistency with NPC steering. + comp.TargetInLOS = _interaction.InRangeUnobstructed(uid, Transform(comp.Target).Coordinates, distance + 0.1f); } if (!comp.TargetInLOS) { comp.ShootAccumulator = 0f; comp.Status = CombatStatus.NotInSight; + + if (TryComp(uid, out steering)) + { + steering.ForceMove = true; + } + continue; } @@ -188,8 +196,14 @@ private void UpdateRanged(float frameTime) targetCordinates = new EntityCoordinates(xform.MapUid!.Value, targetSpot); } - _gun.AttemptShoot(uid, gunUid, gun, targetCordinates); comp.Status = CombatStatus.Normal; + + if (gun.NextFire > _timing.CurTime) + { + return; + } + + _gun.AttemptShoot(uid, gunUid, gun, targetCordinates); } } } diff --git a/Content.Server/NPC/Systems/NPCSteeringSystem.Context.cs b/Content.Server/NPC/Systems/NPCSteeringSystem.Context.cs index 8be04ec1167cb0..920db537dfed0b 100644 --- a/Content.Server/NPC/Systems/NPCSteeringSystem.Context.cs +++ b/Content.Server/NPC/Systems/NPCSteeringSystem.Context.cs @@ -81,7 +81,7 @@ private bool TrySeek( // Check if we're in LOS if that's required. // TODO: Need something uhh better not sure on the interaction between these. - if (steering.ArriveOnLineOfSight) + if (!steering.ForceMove && steering.ArriveOnLineOfSight) { // TODO: use vision range inLos = _interaction.InRangeUnobstructed(uid, steering.Coordinates, 10f); @@ -105,6 +105,7 @@ private bool TrySeek( else { steering.LineOfSightTimer = 0f; + steering.ForceMove = false; } // We've arrived, nothing else matters. diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index 8866fcf55ad5d3..a24d2bf35856f2 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -126,8 +126,11 @@ private void OnShootRequest(RequestShootEvent msg, EntitySessionEventArgs args) var user = args.SenderSession.AttachedEntity; if (user == null || + !_combatMode.IsInCombatMode(user) || !TryGetGun(user.Value, out var ent, out var gun)) + { return; + } if (ent != msg.Gun) return; @@ -165,9 +168,6 @@ public bool TryGetGun(EntityUid entity, out EntityUid gunEntity, [NotNullWhen(tr gunEntity = default; gunComp = null; - if (!_combatMode.IsInCombatMode(entity)) - return false; - if (EntityManager.TryGetComponent(entity, out HandsComponent? hands) && hands.ActiveHandEntity is { } held && TryComp(held, out GunComponent? gun)) diff --git a/Resources/Prototypes/NPCs/Combat/gun.yml b/Resources/Prototypes/NPCs/Combat/gun.yml index 21066440b8c211..2b5ccd9fa5586d 100644 --- a/Resources/Prototypes/NPCs/Combat/gun.yml +++ b/Resources/Prototypes/NPCs/Combat/gun.yml @@ -71,6 +71,7 @@ - !type:HTNPrimitiveTask preconditions: + - !type:ActiveHandFreePrecondition - !type:TargetInRangePrecondition targetKey: Target rangeKey: InteractRange diff --git a/Resources/Prototypes/NPCs/Combat/melee.yml b/Resources/Prototypes/NPCs/Combat/melee.yml index aab6e4d1488921..e35dc820502b89 100644 --- a/Resources/Prototypes/NPCs/Combat/melee.yml +++ b/Resources/Prototypes/NPCs/Combat/melee.yml @@ -38,6 +38,7 @@ - !type:HTNPrimitiveTask preconditions: + - !type:ActiveHandFreePrecondition - !type:TargetInRangePrecondition targetKey: Target rangeKey: InteractRange From f2ea6b463331be2398ddf18f1f2db62d02b3d7dc Mon Sep 17 00:00:00 2001 From: PJBot Date: Wed, 2 Aug 2023 17:35:58 -0400 Subject: [PATCH 07/37] Automatic changelog update --- Resources/Changelog/Changelog.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index af0e255391e56b..f3e2d27028f60b 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,9 +1,4 @@ Entries: -- author: liltenhead - changes: - - {message: Autolathe board economy crashed, type: Tweak} - id: 3918 - time: '2023-06-01T06:49:50.0000000+00:00' - author: metalgearsloth changes: - {message: Fix NPCs getting stuck on corners., type: Fix} @@ -2988,3 +2983,8 @@ Entries: - {message: Nitrous oxide now causes laughing, type: Add} id: 4417 time: '2023-08-02T21:33:00.0000000+00:00' +- author: metalgearsloth + changes: + - {message: Fix xenos not spittin'., type: Fix} + id: 4418 + time: '2023-08-02T21:34:54.0000000+00:00' From ce3299c49f63c5ec056a7c3ec1a75f3d07331d22 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Wed, 2 Aug 2023 19:13:07 -0400 Subject: [PATCH 08/37] single line fix to fix GLES2 (#18587) --- Resources/Textures/Shaders/outline.swsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Textures/Shaders/outline.swsl b/Resources/Textures/Shaders/outline.swsl index 5f90df22bfdaa2..7fce6809f69cb4 100644 --- a/Resources/Textures/Shaders/outline.swsl +++ b/Resources/Textures/Shaders/outline.swsl @@ -72,7 +72,7 @@ void fragment() { maxa = max(a, maxa); mina = min(a, mina); - float sampledLight = outline_fullbright ? 1.0 : sqrt(mix(0.0, 1.0, (lightSample.r * 0.34) + (lightSample.g * 0.5) + (lightSample.b * 0.16)) * light_boost); + lowp float sampledLight = outline_fullbright ? 1.0 : sqrt(mix(0.0, 1.0, (lightSample.r * 0.34) + (lightSample.g * 0.5) + (lightSample.b * 0.16)) * light_boost); COLOR = mix(col, outline_color * sampledLight, maxa - col.a); lightSample = vec3(1.0); } From 11aa7e0740f56af425b42965a0f4a78930e85327 Mon Sep 17 00:00:00 2001 From: PJBot Date: Wed, 2 Aug 2023 19:14:11 -0400 Subject: [PATCH 09/37] Automatic changelog update --- Resources/Changelog/Changelog.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index f3e2d27028f60b..007cad8caa663b 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,9 +1,4 @@ Entries: -- author: metalgearsloth - changes: - - {message: Fix NPCs getting stuck on corners., type: Fix} - id: 3919 - time: '2023-06-01T13:11:41.0000000+00:00' - author: EmoGarbage404 changes: - {message: Less severe anomalies now have higher baseline point output., type: Tweak} @@ -2988,3 +2983,8 @@ Entries: - {message: Fix xenos not spittin'., type: Fix} id: 4418 time: '2023-08-02T21:34:54.0000000+00:00' +- author: Bhijn and Myr + changes: + - {message: The game now boots in GLES2 again. oops., type: Fix} + id: 4419 + time: '2023-08-02T23:13:07.0000000+00:00' From 2ef02fee32e6e7faf9cb68d1cf303b48f6a0b41d Mon Sep 17 00:00:00 2001 From: MilenVolf Date: Thu, 3 Aug 2023 02:30:16 +0300 Subject: [PATCH 10/37] forgot about it --- .../components/solution-scanner-component.ftl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Resources/Locale/ru-RU/chemistry/components/solution-scanner-component.ftl b/Resources/Locale/ru-RU/chemistry/components/solution-scanner-component.ftl index da4dce311ad283..169aa7cc08db3a 100644 --- a/Resources/Locale/ru-RU/chemistry/components/solution-scanner-component.ftl +++ b/Resources/Locale/ru-RU/chemistry/components/solution-scanner-component.ftl @@ -1,5 +1,5 @@ -scannable-solution-verb-text = Solution -scannable-solution-verb-message = Examine the chemical composition. -scannable-solution-main-text = It contains the following chemicals: -scannable-solution-empty-container = It contains no chemicals. -scannable-solution-chemical = - { $amount }u [color={ $color }]{ $type }[/color] +scannable-solution-verb-text = Раствор +scannable-solution-verb-message = Изучить химический состав. +scannable-solution-main-text = Имеет следующие реагенты: +scannable-solution-empty-container = Не содержит реагентов. +scannable-solution-chemical = - [color={ $color }]{ $type }[/color]: { $amount }ед. From e9890a8331504fa4883609f94598bd15cfdb7897 Mon Sep 17 00:00:00 2001 From: Moony Date: Wed, 2 Aug 2023 20:29:34 -0500 Subject: [PATCH 11/37] fixe (#18591) Co-authored-by: moonheart08 --- Content.Server/Administration/Systems/AdminVerbSystem.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Content.Server/Administration/Systems/AdminVerbSystem.cs b/Content.Server/Administration/Systems/AdminVerbSystem.cs index 63a5596020474c..bdcaf0de4d2a72 100644 --- a/Content.Server/Administration/Systems/AdminVerbSystem.cs +++ b/Content.Server/Administration/Systems/AdminVerbSystem.cs @@ -217,7 +217,7 @@ private void AddDebugVerbs(GetVerbsEvent args) var player = actor.PlayerSession; // Delete verb - if (_groupController.CanCommand(player, "deleteentity")) + if (_toolshed.ActivePermissionController?.CheckInvokable(new CommandSpec(_toolshed.GetCommand("delete"), null), player, out _) ?? false) { Verb verb = new() { @@ -232,7 +232,7 @@ private void AddDebugVerbs(GetVerbsEvent args) } // Rejuvenate verb - if (_groupController.CanCommand(player, "rejuvenate")) + if (_toolshed.ActivePermissionController?.CheckInvokable(new CommandSpec(_toolshed.GetCommand("rejuvenate"), null), player, out _) ?? false) { Verb verb = new() { From ec749270af5f2a9fc63f5ae89f6c2d0003780b80 Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Thu, 3 Aug 2023 03:24:12 +0100 Subject: [PATCH 12/37] add wires to core apcs (#18590) Co-authored-by: deltanedas <@deltanedas:kde.org> --- Resources/Maps/core.yml | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/Resources/Maps/core.yml b/Resources/Maps/core.yml index 1d67f25003cd1b..23cb136cefc32d 100644 --- a/Resources/Maps/core.yml +++ b/Resources/Maps/core.yml @@ -25961,7 +25961,7 @@ entities: type: Transform - uid: 3008 components: - - pos: 55.5,-23.5 + - pos: 36.5,-4.5 parent: 2 type: Transform - enabled: True @@ -29915,6 +29915,13 @@ entities: type: Transform - enabled: True type: AmbientSound + - uid: 18989 + components: + - pos: 61.5,-9.5 + parent: 2 + type: Transform + - enabled: True + type: AmbientSound - proto: CableApcStack entities: - uid: 3207 @@ -39451,6 +39458,13 @@ entities: - pos: -14.5,29.5 parent: 2 type: Transform + - uid: 18990 + components: + - pos: 36.5,-4.5 + parent: 2 + type: Transform + - enabled: True + type: AmbientSound - proto: CableMVStack entities: - uid: 4724 @@ -88631,7 +88645,7 @@ entities: - pos: 44.5,7.5 parent: 2 type: Transform - - SecondsUntilStateChange: -15037.545 + - SecondsUntilStateChange: -15437.727 state: Opening type: Door - uid: 11091 @@ -88639,7 +88653,7 @@ entities: - pos: 62.5,21.5 parent: 2 type: Transform - - SecondsUntilStateChange: -154788.11 + - SecondsUntilStateChange: -155188.3 state: Opening type: Door - uid: 11092 From 5a9317027ff8ac49d16ff2f1377f84da844d7766 Mon Sep 17 00:00:00 2001 From: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com> Date: Thu, 3 Aug 2023 15:07:21 +1200 Subject: [PATCH 13/37] Warn on improperly disposed tests. (#18594) --- .github/workflows/build-test-debug.yml | 2 +- .github/workflows/build-test-release.yml | 2 +- Content.IntegrationTests/PoolManager.cs | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-test-debug.yml b/.github/workflows/build-test-debug.yml index 89abcee445746c..416955a644fea6 100644 --- a/.github/workflows/build-test-debug.yml +++ b/.github/workflows/build-test-debug.yml @@ -51,7 +51,7 @@ jobs: shell: pwsh run: | $env:DOTNET_gcServer=1 - dotnet test --no-build --configuration DebugOpt Content.IntegrationTests/Content.IntegrationTests.csproj -- NUnit.ConsoleOut=0 + dotnet test --no-build --configuration DebugOpt Content.IntegrationTests/Content.IntegrationTests.csproj -- NUnit.ConsoleOut=0 NUnit.MapWarningTo=Failed ci-success: name: Build & Test Debug needs: diff --git a/.github/workflows/build-test-release.yml b/.github/workflows/build-test-release.yml index 07ce558fb0229b..9ff89d47e8f35f 100644 --- a/.github/workflows/build-test-release.yml +++ b/.github/workflows/build-test-release.yml @@ -51,7 +51,7 @@ jobs: shell: pwsh run: | $env:DOTNET_gcServer=1 - dotnet test --configuration Tools --no-build Content.IntegrationTests/Content.IntegrationTests.csproj -- NUnit.ConsoleOut=0 + dotnet test --configuration Tools --no-build Content.IntegrationTests/Content.IntegrationTests.csproj -- NUnit.ConsoleOut=0 NUnit.MapWarningTo=Failed ci-success: name: Build & Test Release needs: diff --git a/Content.IntegrationTests/PoolManager.cs b/Content.IntegrationTests/PoolManager.cs index c66bc260d3e8cb..397a20950dab16 100644 --- a/Content.IntegrationTests/PoolManager.cs +++ b/Content.IntegrationTests/PoolManager.cs @@ -947,6 +947,10 @@ public PairTracker(TextWriter testOut) _testOut = testOut; } + // Convenience properties. + public RobustIntegrationTest.ServerIntegrationInstance Server => Pair.Server; + public RobustIntegrationTest.ClientIntegrationInstance Client => Pair.Client; + private async Task OnDirtyDispose() { var usageTime = UsageWatch.Elapsed; @@ -957,6 +961,10 @@ private async Task OnDirtyDispose() PoolManager.NoCheckReturn(Pair); var disposeTime = dirtyWatch.Elapsed; await _testOut.WriteLineAsync($"{nameof(DisposeAsync)}: Disposed pair {Pair.PairId} in {disposeTime.TotalMilliseconds} ms"); + + // Test pairs should only dirty dispose if they are failing. If they are not failing, this probably happened + // because someone forgot to clean-return the pair. + Assert.Warn("Test was dirty-disposed."); } private async Task OnCleanDispose() From 7985b7af38ad497421b2937ba6d18c457ae3bbd5 Mon Sep 17 00:00:00 2001 From: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com> Date: Thu, 3 Aug 2023 19:09:18 +1200 Subject: [PATCH 14/37] Fix AllCommandsHaveDescriptions test failure (#18601) --- Resources/Locale/en-US/commands/toolshed-commands.ftl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Resources/Locale/en-US/commands/toolshed-commands.ftl b/Resources/Locale/en-US/commands/toolshed-commands.ftl index a0416d9ecf66ee..3dcf56841cacce 100644 --- a/Resources/Locale/en-US/commands/toolshed-commands.ftl +++ b/Resources/Locale/en-US/commands/toolshed-commands.ftl @@ -54,3 +54,5 @@ command-description-tag-addmany = Adds a list of tags to the given entities. command-description-tag-rmmany = Removes a list of tags from the given entities. +command-description-solution-get = + Returns a solution stored in an entity's solution container. From 123a65306650538d7194cfce929da40d62788994 Mon Sep 17 00:00:00 2001 From: Vordenburg <114301317+Vordenburg@users.noreply.github.com> Date: Thu, 3 Aug 2023 03:11:42 -0400 Subject: [PATCH 15/37] Remove duplicate Spear prototype information (#18581) --- .../Entities/Objects/Weapons/Melee/spear.yml | 186 +----------------- 1 file changed, 3 insertions(+), 183 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml index 8936f786b2bb98..d3c674341bbe39 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml @@ -79,239 +79,59 @@ - type: entity name: reinforced spear - parent: BaseItem + parent: Spear id: SpearReinforced description: A spear with a reinforced glass shard as a tip. components: - - type: Tag - tags: - - Spear - - type: Sharp - type: Sprite sprite: Objects/Weapons/Melee/reinforced_spear.rsi - state: spear - type: MeleeWeapon damage: types: Piercing: 15 - angle: 0 - animation: WeaponArcThrust - type: DamageOtherOnHit damage: types: Piercing: 18 - - type: Item - size: 95 - - type: Clothing - quickEquip: false - slots: - - back - type: Construction graph: SpearReinforced - node: spear - - type: ItemCooldown - - type: SolutionContainerManager - solutions: - melee: - maxVol: 5 - - type: MeleeChemicalInjector - solution: melee - - type: RefillableSolution - solution: melee - - type: InjectableSolution - solution: melee - - type: SolutionTransfer - maxTransferAmount: 5 - - type: Wieldable - - type: IncreaseDamageOnWield - damage: - types: - Piercing: 4 - - type: Damageable - damageContainer: Inorganic - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 30 #excess damage avoids cost of spawning entities. - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - - trigger: - !type:DamageTrigger - damage: 20 - behaviors: - - !type:PlaySoundBehavior - sound: - collection: GlassBreak - - !type:SpawnEntitiesBehavior - spawn: - PartRodMetal1: - min: 1 - max: 1 - - !type:DoActsBehavior - acts: [ "Destruction" ] - - type: DamageOnLand - damage: - types: - Blunt: 5 - type: entity name: plasma spear - parent: BaseItem + parent: Spear id: SpearPlasma description: A spear with a plasma shard as a tip. components: - - type: Tag - tags: - - Spear - - type: Sharp - type: Sprite sprite: Objects/Weapons/Melee/plasma_spear.rsi - state: spear - type: MeleeWeapon damage: types: Piercing: 18 - angle: 0 - animation: WeaponArcThrust - type: DamageOtherOnHit damage: types: Piercing: 21 - - type: Item - size: 95 - - type: Clothing - quickEquip: false - slots: - - back - type: Construction graph: SpearPlasma - node: spear - - type: ItemCooldown - - type: SolutionContainerManager - solutions: - melee: - maxVol: 5 - - type: MeleeChemicalInjector - solution: melee - - type: RefillableSolution - solution: melee - - type: InjectableSolution - solution: melee - - type: SolutionTransfer - maxTransferAmount: 5 - - type: Wieldable - - type: IncreaseDamageOnWield - damage: - types: - Piercing: 4 - - type: Damageable - damageContainer: Inorganic - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 30 #excess damage avoids cost of spawning entities. - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - - trigger: - !type:DamageTrigger - damage: 20 - behaviors: - - !type:PlaySoundBehavior - sound: - collection: GlassBreak - - !type:SpawnEntitiesBehavior - spawn: - PartRodMetal1: - min: 1 - max: 1 - - !type:DoActsBehavior - acts: [ "Destruction" ] - - type: DamageOnLand - damage: - types: - Blunt: 5 - type: entity name: uranium spear - parent: BaseItem + parent: Spear id: SpearUranium description: A spear with a uranium shard as a tip. components: - - type: Tag - tags: - - Spear - - type: Sharp - type: Sprite sprite: Objects/Weapons/Melee/uranium_spear.rsi - state: spear - type: MeleeWeapon damage: types: Piercing: 10 Radiation: 8 - angle: 0 - animation: WeaponArcThrust - type: DamageOtherOnHit damage: types: Piercing: 12 Radiation: 9 - - type: Item - size: 95 - - type: Clothing - quickEquip: false - slots: - - back - type: Construction graph: SpearUranium - node: spear - - type: ItemCooldown - - type: SolutionContainerManager - solutions: - melee: - maxVol: 5 - - type: MeleeChemicalInjector - solution: melee - - type: RefillableSolution - solution: melee - - type: InjectableSolution - solution: melee - - type: SolutionTransfer - maxTransferAmount: 5 - - type: Wieldable - - type: IncreaseDamageOnWield - damage: - types: - Piercing: 4 - - type: Damageable - damageContainer: Inorganic - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 30 #excess damage avoids cost of spawning entities. - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - - trigger: - !type:DamageTrigger - damage: 20 - behaviors: - - !type:PlaySoundBehavior - sound: - collection: GlassBreak - - !type:SpawnEntitiesBehavior - spawn: - PartRodMetal1: - min: 1 - max: 1 - - !type:DoActsBehavior - acts: [ "Destruction" ] - - type: DamageOnLand - damage: - types: - Blunt: 5 From 327762dbb9e5ca8ab9f015a24d602b11b9484232 Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Thu, 3 Aug 2023 08:26:37 +0100 Subject: [PATCH 16/37] add eod closet (#18588) Co-authored-by: deltanedas <@deltanedas:kde.org> --- Resources/Maps/kettle.yml | 214 +++++++++++++++++--------------------- 1 file changed, 98 insertions(+), 116 deletions(-) diff --git a/Resources/Maps/kettle.yml b/Resources/Maps/kettle.yml index 6126e69e96a89b..31f8ed4672f05a 100644 --- a/Resources/Maps/kettle.yml +++ b/Resources/Maps/kettle.yml @@ -18724,7 +18724,7 @@ entities: - pos: 34.5,12.5 parent: 82 type: Transform - - SecondsUntilStateChange: -493679.12 + - SecondsUntilStateChange: -493733.88 state: Opening type: Door - links: @@ -18735,7 +18735,7 @@ entities: - pos: 34.5,14.5 parent: 82 type: Transform - - SecondsUntilStateChange: -493679.12 + - SecondsUntilStateChange: -493733.88 state: Opening type: Door - links: @@ -18762,7 +18762,7 @@ entities: - pos: 34.5,13.5 parent: 82 type: Transform - - SecondsUntilStateChange: -493679.12 + - SecondsUntilStateChange: -493733.88 state: Opening type: Door - links: @@ -18789,7 +18789,7 @@ entities: - pos: 53.5,-25.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491944.06 + - SecondsUntilStateChange: -491998.8 state: Opening type: Door - links: @@ -18800,7 +18800,7 @@ entities: - pos: 53.5,-26.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491944.06 + - SecondsUntilStateChange: -491998.8 state: Opening type: Door - links: @@ -18811,7 +18811,7 @@ entities: - pos: 53.5,-27.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491944.06 + - SecondsUntilStateChange: -491998.8 state: Opening type: Door - links: @@ -18822,7 +18822,7 @@ entities: - pos: 53.5,-28.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491944.06 + - SecondsUntilStateChange: -491998.8 state: Opening type: Door - links: @@ -18833,7 +18833,7 @@ entities: - pos: 53.5,-29.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491944.06 + - SecondsUntilStateChange: -491998.8 state: Opening type: Door - links: @@ -18844,7 +18844,7 @@ entities: - pos: 53.5,-30.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491944.06 + - SecondsUntilStateChange: -491998.8 state: Opening type: Door - links: @@ -18855,7 +18855,7 @@ entities: - pos: 56.5,-25.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491944.06 + - SecondsUntilStateChange: -491998.8 state: Opening type: Door - links: @@ -18866,7 +18866,7 @@ entities: - pos: 56.5,-26.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491944.06 + - SecondsUntilStateChange: -491998.8 state: Opening type: Door - links: @@ -18877,7 +18877,7 @@ entities: - pos: 56.5,-27.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491944.06 + - SecondsUntilStateChange: -491998.8 state: Opening type: Door - links: @@ -18888,7 +18888,7 @@ entities: - pos: 56.5,-28.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491944.06 + - SecondsUntilStateChange: -491998.8 state: Opening type: Door - links: @@ -18899,7 +18899,7 @@ entities: - pos: 56.5,-29.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491944.06 + - SecondsUntilStateChange: -491998.8 state: Opening type: Door - links: @@ -18910,7 +18910,7 @@ entities: - pos: 56.5,-30.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491944.06 + - SecondsUntilStateChange: -491998.8 state: Opening type: Door - links: @@ -18921,7 +18921,7 @@ entities: - pos: -21.5,50.5 parent: 82 type: Transform - - SecondsUntilStateChange: -432599 + - SecondsUntilStateChange: -432653.75 state: Opening type: Door - links: @@ -18932,7 +18932,7 @@ entities: - pos: -21.5,48.5 parent: 82 type: Transform - - SecondsUntilStateChange: -432599 + - SecondsUntilStateChange: -432653.75 state: Opening type: Door - links: @@ -18943,7 +18943,7 @@ entities: - pos: -21.5,49.5 parent: 82 type: Transform - - SecondsUntilStateChange: -432599 + - SecondsUntilStateChange: -432653.75 state: Opening type: Door - links: @@ -18954,7 +18954,7 @@ entities: - pos: -21.5,47.5 parent: 82 type: Transform - - SecondsUntilStateChange: -432599 + - SecondsUntilStateChange: -432653.75 state: Opening type: Door - links: @@ -19019,7 +19019,7 @@ entities: - pos: 23.5,14.5 parent: 82 type: Transform - - SecondsUntilStateChange: -493740.38 + - SecondsUntilStateChange: -493795.12 state: Closing type: Door - links: @@ -19030,7 +19030,7 @@ entities: - pos: 23.5,13.5 parent: 82 type: Transform - - SecondsUntilStateChange: -493740.38 + - SecondsUntilStateChange: -493795.12 state: Closing type: Door - links: @@ -19041,7 +19041,7 @@ entities: - pos: 23.5,12.5 parent: 82 type: Transform - - SecondsUntilStateChange: -493740.38 + - SecondsUntilStateChange: -493795.12 state: Closing type: Door - links: @@ -67196,6 +67196,11 @@ entities: type: EntityStorage - proto: ClosetBombFilled entities: + - uid: 7213 + components: + - pos: 23.5,56.5 + parent: 82 + type: Transform - uid: 7929 components: - pos: 38.5,51.5 @@ -68781,29 +68786,6 @@ entities: - 0 - 0 type: EntityStorage - - uid: 7213 - components: - - pos: 23.5,56.5 - parent: 82 - type: Transform - - air: - volume: 200 - immutable: False - temperature: 293.1496 - moles: - - 1.6971024 - - 6.3843384 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - type: EntityStorage - proto: ClosetL3VirologyFilled entities: - uid: 3013 @@ -122417,7 +122399,7 @@ entities: - pos: -41.5,-42.5 parent: 82 type: Transform - - SecondsUntilStateChange: -380707.8 + - SecondsUntilStateChange: -380762.56 state: Opening type: Door - uid: 2822 @@ -122425,7 +122407,7 @@ entities: - pos: -41.5,-44.5 parent: 82 type: Transform - - SecondsUntilStateChange: -380705.6 + - SecondsUntilStateChange: -380760.34 state: Opening type: Door - uid: 8896 @@ -122434,7 +122416,7 @@ entities: pos: -39.5,-42.5 parent: 82 type: Transform - - SecondsUntilStateChange: -380879.84 + - SecondsUntilStateChange: -380934.6 state: Opening type: Door - uid: 15911 @@ -122443,7 +122425,7 @@ entities: pos: -39.5,-44.5 parent: 82 type: Transform - - SecondsUntilStateChange: -380704.88 + - SecondsUntilStateChange: -380759.62 state: Opening type: Door - uid: 16963 @@ -122471,7 +122453,7 @@ entities: - pos: -41.5,-40.5 parent: 82 type: Transform - - SecondsUntilStateChange: -380706.78 + - SecondsUntilStateChange: -380761.53 state: Opening type: Door - proto: HospitalCurtainsOpen @@ -140984,7 +140966,7 @@ entities: - pos: 58.5,-6.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376776.3 + - SecondsUntilStateChange: -376831.06 state: Opening type: Door - links: @@ -140995,7 +140977,7 @@ entities: - pos: 59.5,-6.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376776.3 + - SecondsUntilStateChange: -376831.06 state: Opening type: Door - links: @@ -141007,7 +140989,7 @@ entities: pos: 3.5,-19.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141019,7 +141001,7 @@ entities: pos: 2.5,-19.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141030,7 +141012,7 @@ entities: - pos: 1.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141041,7 +141023,7 @@ entities: - pos: 2.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141052,7 +141034,7 @@ entities: - pos: 3.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141063,7 +141045,7 @@ entities: - pos: 5.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141074,7 +141056,7 @@ entities: - pos: 6.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141085,7 +141067,7 @@ entities: - pos: 7.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141096,7 +141078,7 @@ entities: - pos: 8.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141107,7 +141089,7 @@ entities: - pos: 9.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141118,7 +141100,7 @@ entities: - pos: 11.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141129,7 +141111,7 @@ entities: - pos: 12.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141140,7 +141122,7 @@ entities: - pos: 13.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141151,7 +141133,7 @@ entities: - pos: 14.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141163,7 +141145,7 @@ entities: pos: 16.5,-11.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141175,7 +141157,7 @@ entities: pos: 16.5,-10.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141187,7 +141169,7 @@ entities: pos: -1.5,-11.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141199,7 +141181,7 @@ entities: pos: -1.5,-10.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141211,7 +141193,7 @@ entities: pos: 25.5,64.5 parent: 82 type: Transform - - SecondsUntilStateChange: -387928.56 + - SecondsUntilStateChange: -387983.3 state: Opening type: Door - links: @@ -141246,7 +141228,7 @@ entities: - pos: 62.5,-6.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376776.3 + - SecondsUntilStateChange: -376831.06 state: Opening type: Door - links: @@ -141257,7 +141239,7 @@ entities: - pos: -8.5,32.5 parent: 82 type: Transform - - SecondsUntilStateChange: -386620.47 + - SecondsUntilStateChange: -386675.22 state: Opening type: Door - links: @@ -141268,7 +141250,7 @@ entities: - pos: -9.5,32.5 parent: 82 type: Transform - - SecondsUntilStateChange: -386620.47 + - SecondsUntilStateChange: -386675.22 state: Opening type: Door - links: @@ -141279,7 +141261,7 @@ entities: - pos: -7.5,32.5 parent: 82 type: Transform - - SecondsUntilStateChange: -386620.47 + - SecondsUntilStateChange: -386675.22 state: Opening type: Door - links: @@ -141291,7 +141273,7 @@ entities: pos: -6.5,34.5 parent: 82 type: Transform - - SecondsUntilStateChange: -386620.47 + - SecondsUntilStateChange: -386675.22 state: Opening type: Door - links: @@ -141303,7 +141285,7 @@ entities: pos: -6.5,35.5 parent: 82 type: Transform - - SecondsUntilStateChange: -386620.47 + - SecondsUntilStateChange: -386675.22 state: Opening type: Door - links: @@ -141314,7 +141296,7 @@ entities: - pos: 60.5,-6.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376776.3 + - SecondsUntilStateChange: -376831.06 state: Opening type: Door - links: @@ -141326,7 +141308,7 @@ entities: pos: 44.5,12.5 parent: 82 type: Transform - - SecondsUntilStateChange: -76117.7 + - SecondsUntilStateChange: -76172.44 state: Opening type: Door - links: @@ -141338,7 +141320,7 @@ entities: pos: 44.5,13.5 parent: 82 type: Transform - - SecondsUntilStateChange: -76117.7 + - SecondsUntilStateChange: -76172.44 state: Opening type: Door - links: @@ -141350,7 +141332,7 @@ entities: pos: -46.5,-34.5 parent: 82 type: Transform - - SecondsUntilStateChange: -379561.62 + - SecondsUntilStateChange: -379616.38 state: Opening type: Door - links: @@ -141362,7 +141344,7 @@ entities: pos: 12.5,-19.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141374,7 +141356,7 @@ entities: pos: 11.5,-19.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141386,7 +141368,7 @@ entities: pos: 10.5,-19.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141398,7 +141380,7 @@ entities: pos: 4.5,-19.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141409,7 +141391,7 @@ entities: - pos: 0.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487811.75 + - SecondsUntilStateChange: -487866.5 state: Opening type: Door - links: @@ -141421,7 +141403,7 @@ entities: pos: 44.5,14.5 parent: 82 type: Transform - - SecondsUntilStateChange: -76117.7 + - SecondsUntilStateChange: -76172.44 state: Opening type: Door - links: @@ -141433,7 +141415,7 @@ entities: pos: -6.5,33.5 parent: 82 type: Transform - - SecondsUntilStateChange: -386620.47 + - SecondsUntilStateChange: -386675.22 state: Opening type: Door - links: @@ -141444,7 +141426,7 @@ entities: - pos: -10.5,32.5 parent: 82 type: Transform - - SecondsUntilStateChange: -386620.47 + - SecondsUntilStateChange: -386675.22 state: Opening type: Door - links: @@ -141456,7 +141438,7 @@ entities: pos: 25.5,65.5 parent: 82 type: Transform - - SecondsUntilStateChange: -387928.56 + - SecondsUntilStateChange: -387983.3 state: Opening type: Door - links: @@ -141467,7 +141449,7 @@ entities: - pos: 28.5,67.5 parent: 82 type: Transform - - SecondsUntilStateChange: -387928.56 + - SecondsUntilStateChange: -387983.3 state: Opening type: Door - links: @@ -141478,7 +141460,7 @@ entities: - pos: 27.5,67.5 parent: 82 type: Transform - - SecondsUntilStateChange: -387928.56 + - SecondsUntilStateChange: -387983.3 state: Opening type: Door - links: @@ -141489,7 +141471,7 @@ entities: - pos: 28.5,62.5 parent: 82 type: Transform - - SecondsUntilStateChange: -387928.56 + - SecondsUntilStateChange: -387983.3 state: Opening type: Door - links: @@ -141500,7 +141482,7 @@ entities: - pos: 26.5,62.5 parent: 82 type: Transform - - SecondsUntilStateChange: -387928.56 + - SecondsUntilStateChange: -387983.3 state: Opening type: Door - links: @@ -141511,7 +141493,7 @@ entities: - pos: 27.5,62.5 parent: 82 type: Transform - - SecondsUntilStateChange: -387928.56 + - SecondsUntilStateChange: -387983.3 state: Opening type: Door - links: @@ -141523,7 +141505,7 @@ entities: pos: -6.5,36.5 parent: 82 type: Transform - - SecondsUntilStateChange: -386620.47 + - SecondsUntilStateChange: -386675.22 state: Opening type: Door - links: @@ -141535,7 +141517,7 @@ entities: pos: -46.5,-35.5 parent: 82 type: Transform - - SecondsUntilStateChange: -379561.62 + - SecondsUntilStateChange: -379616.38 state: Opening type: Door - links: @@ -141546,7 +141528,7 @@ entities: - pos: -45.5,-33.5 parent: 82 type: Transform - - SecondsUntilStateChange: -379561.62 + - SecondsUntilStateChange: -379616.38 state: Opening type: Door - links: @@ -141557,7 +141539,7 @@ entities: - pos: -44.5,-33.5 parent: 82 type: Transform - - SecondsUntilStateChange: -379561.62 + - SecondsUntilStateChange: -379616.38 state: Opening type: Door - links: @@ -141568,7 +141550,7 @@ entities: - pos: -42.5,-33.5 parent: 82 type: Transform - - SecondsUntilStateChange: -379561.62 + - SecondsUntilStateChange: -379616.38 state: Opening type: Door - links: @@ -141579,7 +141561,7 @@ entities: - pos: -41.5,-33.5 parent: 82 type: Transform - - SecondsUntilStateChange: -379561.62 + - SecondsUntilStateChange: -379616.38 state: Opening type: Door - links: @@ -141590,7 +141572,7 @@ entities: - pos: 61.5,-6.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376776.3 + - SecondsUntilStateChange: -376831.06 state: Opening type: Door - links: @@ -141602,7 +141584,7 @@ entities: pos: 57.5,-7.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376776.3 + - SecondsUntilStateChange: -376831.06 state: Opening type: Door - links: @@ -141614,7 +141596,7 @@ entities: pos: 57.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376776.3 + - SecondsUntilStateChange: -376831.06 state: Opening type: Door - links: @@ -141626,7 +141608,7 @@ entities: pos: 57.5,-10.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376776.3 + - SecondsUntilStateChange: -376831.06 state: Opening type: Door - links: @@ -141638,7 +141620,7 @@ entities: pos: 57.5,-11.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376776.3 + - SecondsUntilStateChange: -376831.06 state: Opening type: Door - links: @@ -141650,7 +141632,7 @@ entities: pos: 57.5,-9.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376776.3 + - SecondsUntilStateChange: -376831.06 state: Opening type: Door - links: @@ -141662,7 +141644,7 @@ entities: pos: 59.5,-14.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376776.3 + - SecondsUntilStateChange: -376831.06 state: Opening type: Door - links: @@ -141674,7 +141656,7 @@ entities: pos: 59.5,-15.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376776.3 + - SecondsUntilStateChange: -376831.06 state: Opening type: Door - links: @@ -141853,7 +141835,7 @@ entities: - pos: -26.5,60.5 parent: 82 type: Transform - - SecondsUntilStateChange: -432612.34 + - SecondsUntilStateChange: -432667.1 state: Closing type: Door - links: @@ -141864,7 +141846,7 @@ entities: - pos: -24.5,60.5 parent: 82 type: Transform - - SecondsUntilStateChange: -432612.34 + - SecondsUntilStateChange: -432667.1 state: Closing type: Door - links: @@ -141875,7 +141857,7 @@ entities: - pos: -25.5,60.5 parent: 82 type: Transform - - SecondsUntilStateChange: -432612.34 + - SecondsUntilStateChange: -432667.1 state: Closing type: Door - links: @@ -141886,7 +141868,7 @@ entities: - pos: -23.5,60.5 parent: 82 type: Transform - - SecondsUntilStateChange: -432612.34 + - SecondsUntilStateChange: -432667.1 state: Closing type: Door - links: @@ -141897,7 +141879,7 @@ entities: - pos: -27.5,60.5 parent: 82 type: Transform - - SecondsUntilStateChange: -432612.34 + - SecondsUntilStateChange: -432667.1 state: Closing type: Door - links: @@ -172140,7 +172122,7 @@ entities: - pos: -11.5,17.5 parent: 82 type: Transform - - SecondsUntilStateChange: -557719.7 + - SecondsUntilStateChange: -557774.44 state: Opening type: Door - uid: 4246 @@ -172148,7 +172130,7 @@ entities: - pos: -11.5,19.5 parent: 82 type: Transform - - SecondsUntilStateChange: -557717.94 + - SecondsUntilStateChange: -557772.7 state: Opening type: Door - uid: 8013 From e44c235396f53247ffb290d8a6e476683609e802 Mon Sep 17 00:00:00 2001 From: Vordenburg <114301317+Vordenburg@users.noreply.github.com> Date: Thu, 3 Aug 2023 03:29:05 -0400 Subject: [PATCH 17/37] [CHANGES PROTOTYPE ID] Clean up lantern (#18526) - Fix the un-cased proto ID - Remove the give-away name and description from the Syndicate item - Remove the same-value inherited fields from PointLight - Better uplink catalog description --- Resources/Locale/en-US/store/uplink-catalog.ftl | 2 +- Resources/Prototypes/Catalog/Fills/Lockers/misc.yml | 4 ++-- Resources/Prototypes/Catalog/uplink_catalog.yml | 2 +- .../Entities/Markers/Spawners/Random/maintenance.yml | 2 +- .../Prototypes/Entities/Objects/Tools/lantern.yml | 11 ++++------- Resources/migration.yml | 4 ++++ 6 files changed, 13 insertions(+), 12 deletions(-) diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl index 3c438be955b1dc..14e8d2c9ba17a1 100644 --- a/Resources/Locale/en-US/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/store/uplink-catalog.ftl @@ -259,7 +259,7 @@ uplink-soap-name = Soap uplink-soap-desc = An untrustworthy bar of soap. Smells of fear. uplink-ultrabright-lantern-name = Extra-Bright Lantern -uplink-ultrabright-lantern-desc = Blinding. +uplink-ultrabright-lantern-desc = It can be used to blind people like a flash. uplink-nocturine-chemistry-bottle-name = Nocturine Bottle uplink-nocturine-chemistry-bottle-desc = A chemical that makes it very hard for your target to stand up. diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml b/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml index 1da5a389128b93..d519f238183ae2 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml @@ -93,7 +93,7 @@ components: - type: StorageFill contents: - - id: lantern + - id: Lantern prob: 0.50 - id: Wirecutter prob: 0.33 @@ -178,7 +178,7 @@ components: - type: StorageFill contents: - - id: lantern + - id: Lantern prob: 0.50 - id: Wirecutter prob: 0.33 diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index 7d4c90753907fa..d4d64eeab5f090 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -1105,7 +1105,7 @@ id: UplinkUltrabrightLantern name: uplink-ultrabright-lantern-name description: uplink-ultrabright-lantern-desc - productEntity: lanternextrabright #why is this item id not capitalized??? + productEntity: LanternFlash cost: Telecrystal: 2 categories: diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml index 63dae3705ed52e..ca9ccf8039a8f3 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml @@ -77,7 +77,7 @@ state: high - type: RandomSpawner rarePrototypes: - - lanternextrabright + - LanternFlash - PowerCellHigh - NetProbeCartridge rareChance: 0.08 diff --git a/Resources/Prototypes/Entities/Objects/Tools/lantern.yml b/Resources/Prototypes/Entities/Objects/Tools/lantern.yml index 883bb3ef402e3a..e7e3a1ad029e10 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/lantern.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/lantern.yml @@ -1,7 +1,7 @@ - type: entity name: lantern parent: BaseItem - id: lantern + id: Lantern description: The holy light guides the way. components: - type: HandheldLight @@ -60,10 +60,9 @@ cell_slot: !type:ContainerSlot {} - type: entity - name: extra-bright lantern - parent: lantern - id: lanternextrabright - description: Blinding. + parent: Lantern + id: LanternFlash + suffix: Flash components: - type: Sprite sprite: Objects/Tools/lantern.rsi @@ -78,10 +77,8 @@ map: [ "enum.FlashVisuals.LightLayer" ] visible: false - type: PointLight - enabled: false radius: 5 energy: 10 - color: "#FFC458" - type: Flash - type: LimitedCharges maxCharges: 15 diff --git a/Resources/migration.yml b/Resources/migration.yml index bb8b3241f23d7f..40436c9637dd1f 100644 --- a/Resources/migration.yml +++ b/Resources/migration.yml @@ -114,3 +114,7 @@ ForensicGloves: ClothingHandsGlovesForensic # 2023-07-24 ClothingEyesGlassesBeer: ClothingEyesHudBeer + +# 2023-08-01 +lantern: Lantern +lanternextrabright: LanternFlash From 0c8d4269215072b5577d716f61a0029fadae09f9 Mon Sep 17 00:00:00 2001 From: Ubaser <134914314+UbaserB@users.noreply.github.com> Date: Thu, 3 Aug 2023 18:53:07 +1000 Subject: [PATCH 18/37] Add spaceshrooms to maps (#18605) * SPACESHROOMS * fix kettle --- Resources/Maps/aspid.yml | 74 +- Resources/Maps/bagel.yml | 6461 ++++++++++++++++++----------------- Resources/Maps/barratry.yml | 22 + Resources/Maps/box.yml | 26 +- Resources/Maps/cluster.yml | 17 + Resources/Maps/core.yml | 21 +- Resources/Maps/fland.yml | 32 + Resources/Maps/kettle.yml | 210 +- Resources/Maps/marathon.yml | 22 + Resources/Maps/meta.yml | 34 +- Resources/Maps/omega.yml | 17 + Resources/Maps/origin.yml | 353 +- Resources/Maps/packed.yml | 17 + Resources/Maps/saltern.yml | 22 + 14 files changed, 3834 insertions(+), 3494 deletions(-) diff --git a/Resources/Maps/aspid.yml b/Resources/Maps/aspid.yml index 687ab004914cb2..4156a5d40ed60f 100644 --- a/Resources/Maps/aspid.yml +++ b/Resources/Maps/aspid.yml @@ -8577,7 +8577,23 @@ entities: - type: RadiationGridResistance - id: Aspid type: BecomesStation - - joints: {} + - joints: + docking21482: !type:WeldJoint + bodyB: 8756 + bodyA: 1 + id: docking21482 + localAnchorB: -5,-1.5 + localAnchorA: 38,1.5 + damping: 791.6185 + stiffness: 7105.552 + docking21483: !type:WeldJoint + bodyB: 8756 + bodyA: 1 + id: docking21483 + localAnchorB: -5,0.5 + localAnchorA: 38,3.5 + damping: 791.6185 + stiffness: 7105.552 type: Joint - type: SpreaderGrid - type: GridPathfinding @@ -8756,7 +8772,23 @@ entities: type: GridAtmosphere - type: GasTileOverlay - type: RadiationGridResistance - - joints: {} + - joints: + docking21482: !type:WeldJoint + bodyB: 8756 + bodyA: 1 + id: docking21482 + localAnchorB: -5,-1.5 + localAnchorA: 38,1.5 + damping: 791.6185 + stiffness: 7105.552 + docking21483: !type:WeldJoint + bodyB: 8756 + bodyA: 1 + id: docking21483 + localAnchorB: -5,0.5 + localAnchorA: 38,3.5 + damping: 791.6185 + stiffness: 7105.552 type: Joint - type: SpreaderGrid - type: GridPathfinding @@ -14019,7 +14051,7 @@ entities: - pos: -11.5,-26.5 parent: 1 type: Transform - - SecondsUntilStateChange: -60896.523 + - SecondsUntilStateChange: -61044.906 state: Closing type: Door - links: @@ -14030,7 +14062,7 @@ entities: - pos: -11.5,-27.5 parent: 1 type: Transform - - SecondsUntilStateChange: -60896.523 + - SecondsUntilStateChange: -61044.906 state: Closing type: Door - links: @@ -14041,7 +14073,7 @@ entities: - pos: -11.5,-28.5 parent: 1 type: Transform - - SecondsUntilStateChange: -60896.523 + - SecondsUntilStateChange: -61044.906 state: Closing type: Door - links: @@ -14052,7 +14084,7 @@ entities: - pos: -11.5,-29.5 parent: 1 type: Transform - - SecondsUntilStateChange: -60896.523 + - SecondsUntilStateChange: -61044.906 state: Closing type: Door - links: @@ -14095,7 +14127,7 @@ entities: - pos: 19.5,-38.5 parent: 1 type: Transform - - SecondsUntilStateChange: -59889.773 + - SecondsUntilStateChange: -60038.156 state: Closing type: Door - links: @@ -14106,7 +14138,7 @@ entities: - pos: 14.5,-23.5 parent: 1 type: Transform - - SecondsUntilStateChange: -59912.445 + - SecondsUntilStateChange: -60060.83 state: Closing type: Door - links: @@ -91317,7 +91349,7 @@ entities: - pos: 3.5,27.5 parent: 1 type: Transform - - SecondsUntilStateChange: -564121.7 + - SecondsUntilStateChange: -564270.06 state: Closing type: Door - uid: 4073 @@ -91373,7 +91405,7 @@ entities: pos: 11.5,46.5 parent: 1 type: Transform - - SecondsUntilStateChange: -478273.66 + - SecondsUntilStateChange: -478422.03 state: Closing type: Door - uid: 8393 @@ -93635,6 +93667,28 @@ entities: - pos: 32.5,23.5 parent: 1 type: Transform +- proto: MaintenancePlantSpawner + entities: + - uid: 8163 + components: + - pos: -27.5,53.5 + parent: 1 + type: Transform + - uid: 8164 + components: + - pos: 31.5,52.5 + parent: 1 + type: Transform + - uid: 8165 + components: + - pos: 18.5,21.5 + parent: 1 + type: Transform + - uid: 8166 + components: + - pos: -15.5,-31.5 + parent: 1 + type: Transform - proto: MaintenanceToolSpawner entities: - uid: 7659 diff --git a/Resources/Maps/bagel.yml b/Resources/Maps/bagel.yml index 9e324bb127fb28..2a8d40a8520ec4 100644 --- a/Resources/Maps/bagel.yml +++ b/Resources/Maps/bagel.yml @@ -370,80 +370,80 @@ entities: color: '#FFFFFFFF' id: Arrows decals: - 913: 54,25 - 914: 52,25 - 915: 46,25 - 916: 44,25 - 1023: -51,14 - 2920: 4,-39 - 3386: 53,14 - 3451: 5,-35 + 894: 54,25 + 895: 52,25 + 896: 46,25 + 897: 44,25 + 1004: -51,14 + 2900: 4,-39 + 3366: 53,14 + 3431: 5,-35 - node: angle: -1.5707963267948966 rad color: '#FFFFFFFF' id: Arrows decals: - 465: -4,13 - 466: -4,14 - 467: -4,15 - 468: -4,16 - 666: 49,-1 - 809: 41,6 - 1156: -3,-64 - 1157: -3,-71 - 3268: -19,29 - 3270: -4,18 - 3271: -4,19 - 3540: -40,32 - 3541: -40,34 - 3542: -40,36 - 3543: -40,38 - 3544: -40,40 - 3545: -40,42 - 3546: -40,44 - 3548: -36,30 + 464: -4,13 + 465: -4,14 + 466: -4,15 + 467: -4,16 + 647: 49,-1 + 790: 41,6 + 1137: -3,-64 + 1138: -3,-71 + 3248: -19,29 + 3250: -4,18 + 3251: -4,19 + 3520: -40,32 + 3521: -40,34 + 3522: -40,36 + 3523: -40,38 + 3524: -40,40 + 3525: -40,42 + 3526: -40,44 + 3528: -36,30 - node: color: '#FFFFFFFF' id: Arrows decals: - 832: -30,36 - 1387: -56,1 - 1823: -9,-21 - 3269: -11,27 + 813: -30,36 + 1368: -56,1 + 1803: -9,-21 + 3249: -11,27 - node: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: Arrows decals: - 665: 49,3 - 858: -62,40 - 1158: 3,-71 - 1159: 3,-64 - 3547: -36,31 - 3560: -26,38 + 646: 49,3 + 839: -62,40 + 1139: 3,-71 + 1140: 3,-64 + 3527: -36,31 + 3540: -26,38 - node: color: '#FFFFFFFF' id: ArrowsGreyscale decals: - 678: 23,17 + 659: 23,17 - node: cleanable: True color: '#FFFFFFFF' id: ArrowsGreyscale decals: - 2951: 9,-41 + 2931: 9,-41 - node: cleanable: True color: '#8932B8FF' id: Blasto decals: - 2585: -46.09135,-29.907255 + 2565: -46.09135,-29.907255 - node: color: '#DE3A3A96' id: Bot decals: - 3549: -20,41 - 3552: -13,39 + 3529: -20,41 + 3532: -13,39 - node: color: '#FFFFFFFF' id: Bot @@ -453,1484 +453,1484 @@ entities: 165: 6,-26 202: -2,-45 203: 12,11 - 431: -37,1 - 473: -27,35 - 474: -28,35 - 475: -29,35 - 476: -29,36 - 477: -28,36 - 478: -27,36 - 606: -15,-10 - 607: -32,26 - 674: 22,18 - 675: 22,19 - 676: 20,18 - 677: 20,19 - 810: -9,-38 - 838: -31,34 - 839: -31,35 - 840: -105,17 - 841: -119,17 - 842: -98,17 - 910: 54,26 - 911: 52,26 - 912: 46,26 - 1024: 44,26 - 1154: -4,-69 - 1155: -17,-54 - 1180: -28,2 - 1181: -26,2 - 1338: -52,13 - 1339: -50,13 - 1348: -55,16 - 1349: -56,16 - 1381: -58,-4 - 1382: -57,-4 - 1383: -56,-4 - 1452: 54,8 - 1453: 53,8 - 1454: 52,8 - 1455: 54,10 - 1456: 53,10 - 1457: 52,10 - 1460: 54,12 - 1461: 53,12 - 1462: 52,12 - 1509: 6,-20 - 1627: 30,-23 - 1657: -48,16 - 1658: -47,17 - 1851: -25,-6 - 1960: -19,27 - 1978: -26,32 - 1979: -27,32 - 1980: -28,32 - 1981: -23,32 - 1982: -21,32 - 2114: -33,12 - 2115: -33,14 - 2118: -41,14 - 2134: -40,-6 - 2141: -41,-10 - 2159: -42,-8 - 2169: -57,7 - 2170: -57,14 - 2171: -44,-4 - 2231: -40,-20 - 2313: -11,32 - 2314: -13,32 - 2388: 3,11 - 2389: 3,15 - 2416: -5,21 - 2417: -5,20 - 2496: 17,28 - 2497: 47,14 - 2498: 47,-2 - 2499: 45,-9 - 2500: 19,-21 - 2516: 2,-1 - 2522: 3,-8 - 2526: -20,5 - 2527: -19,5 - 2531: -13,11 - 2540: -42,19 - 2541: -42,20 - 2542: 30,9 - 2543: 36,4 - 2698: 20,16 - 2699: 19,16 - 2934: 4,-35 - 2962: -31,-19 - 2963: -6,-27 - 2964: 3,-28 - 3011: 45,-27 - 3012: 37,-25 - 3013: 32,-21 - 3014: 50,-32 - 3062: 19,26 - 3097: 29,-27 - 3105: 45,10 - 3436: -25,32 - 3437: -29,32 - 3438: -30,32 - 3450: 6,-35 - 3460: 4,-38 - 3461: 6,-38 + 430: -37,1 + 472: -27,35 + 473: -28,35 + 474: -29,35 + 475: -29,36 + 476: -28,36 + 477: -27,36 + 587: -15,-10 + 588: -32,26 + 655: 22,18 + 656: 22,19 + 657: 20,18 + 658: 20,19 + 791: -9,-38 + 819: -31,34 + 820: -31,35 + 821: -105,17 + 822: -119,17 + 823: -98,17 + 891: 54,26 + 892: 52,26 + 893: 46,26 + 1005: 44,26 + 1135: -4,-69 + 1136: -17,-54 + 1161: -28,2 + 1162: -26,2 + 1319: -52,13 + 1320: -50,13 + 1329: -55,16 + 1330: -56,16 + 1362: -58,-4 + 1363: -57,-4 + 1364: -56,-4 + 1433: 54,8 + 1434: 53,8 + 1435: 52,8 + 1436: 54,10 + 1437: 53,10 + 1438: 52,10 + 1441: 54,12 + 1442: 53,12 + 1443: 52,12 + 1490: 6,-20 + 1608: 30,-23 + 1638: -48,16 + 1639: -47,17 + 1831: -25,-6 + 1940: -19,27 + 1958: -26,32 + 1959: -27,32 + 1960: -28,32 + 1961: -23,32 + 1962: -21,32 + 2094: -33,12 + 2095: -33,14 + 2098: -41,14 + 2114: -40,-6 + 2121: -41,-10 + 2139: -42,-8 + 2149: -57,7 + 2150: -57,14 + 2151: -44,-4 + 2211: -40,-20 + 2293: -11,32 + 2294: -13,32 + 2368: 3,11 + 2369: 3,15 + 2396: -5,21 + 2397: -5,20 + 2476: 17,28 + 2477: 47,14 + 2478: 47,-2 + 2479: 45,-9 + 2480: 19,-21 + 2496: 2,-1 + 2502: 3,-8 + 2506: -20,5 + 2507: -19,5 + 2511: -13,11 + 2520: -42,19 + 2521: -42,20 + 2522: 30,9 + 2523: 36,4 + 2678: 20,16 + 2679: 19,16 + 2914: 4,-35 + 2942: -31,-19 + 2943: -6,-27 + 2944: 3,-28 + 2991: 45,-27 + 2992: 37,-25 + 2993: 32,-21 + 2994: 50,-32 + 3042: 19,26 + 3077: 29,-27 + 3085: 45,10 + 3416: -25,32 + 3417: -29,32 + 3418: -30,32 + 3430: 6,-35 + 3440: 4,-38 + 3441: 6,-38 - node: color: '#52B4E996' id: BotGreyscale decals: - 3472: 49,-15 - 3550: -21,41 - 3551: -14,39 + 3452: 49,-15 + 3530: -21,41 + 3531: -14,39 - node: color: '#DE3A3AFF' id: BotLeft decals: - 2960: -33,-21 + 2940: -33,-21 - node: color: '#FFFFFFFF' id: BotLeft decals: - 1384: -52,-1 - 1385: -52,-2 - 1386: -52,-3 - 2133: -40,-5 - 2142: -43,-11 - 2185: -32,4 - 2426: 2,28 - 2427: 2,29 - 2428: 6,23 - 2429: 7,23 - 2430: 8,23 - 2932: 4,-37 - 3448: 6,-36 - 3556: -19,46 - 3557: -20,46 + 1365: -52,-1 + 1366: -52,-2 + 1367: -52,-3 + 2113: -40,-5 + 2122: -43,-11 + 2165: -32,4 + 2406: 2,28 + 2407: 2,29 + 2408: 6,23 + 2409: 7,23 + 2410: 8,23 + 2912: 4,-37 + 3428: 6,-36 + 3536: -19,46 + 3537: -20,46 - node: color: '#52B4E996' id: BotLeftGreyscale decals: - 3474: 49,-13 + 3454: 49,-13 - node: color: '#FFFFFFFF' id: BotLeftGreyscale decals: - 2562: 39,-6 + 2542: 39,-6 - node: color: '#DE3A3AFF' id: BotRight decals: - 2957: -35,-17 - 2958: -35,-18 - 2959: -35,-19 - 2961: -35,-20 + 2937: -35,-17 + 2938: -35,-18 + 2939: -35,-19 + 2941: -35,-20 - node: color: '#FFFFFFFF' id: BotRight decals: - 2184: -35,5 - 2412: -5,13 - 2413: -5,14 - 2414: -5,15 - 2415: -5,16 - 2418: -5,19 - 2419: -5,18 - 2420: 5,13 - 2933: 4,-36 - 3449: 6,-37 - 3558: -15,46 - 3559: -14,46 + 2164: -35,5 + 2392: -5,13 + 2393: -5,14 + 2394: -5,15 + 2395: -5,16 + 2398: -5,19 + 2399: -5,18 + 2400: 5,13 + 2913: 4,-36 + 3429: 6,-37 + 3538: -15,46 + 3539: -14,46 - node: color: '#52B4E996' id: BotRightGreyscale decals: - 3473: 47,-13 + 3453: 47,-13 - node: color: '#FF8FC9FF' id: BotRightGreyscale decals: - 2226: -45,7 + 2206: -45,7 - node: color: '#79150096' id: Box decals: - 2050: -24,-12 - 2051: -24,-13 + 2030: -24,-12 + 2031: -24,-13 - node: color: '#9FED5896' id: Box decals: - 2049: -30,-8 + 2029: -30,-8 - node: color: '#EFB341FF' id: Box decals: - 2047: -30,-13 + 2027: -30,-13 - node: color: '#FFFFFFFF' id: Box decals: - 1732: 53,24 - 1733: 45,24 - 1734: 38,6 - 1735: 38,10 - 2186: -26,0 - 2187: -28,0 + 1713: 53,24 + 1714: 45,24 + 1715: 38,6 + 1716: 38,10 + 2166: -26,0 + 2167: -28,0 - node: color: '#52B4E996' id: BoxGreyscale decals: - 2048: -30,-12 + 2028: -30,-12 - node: color: '#DE3A3A96' id: BoxGreyscale decals: - 1821: -9,-21 + 1801: -9,-21 - node: color: '#FFFFFFFF' id: BoxGreyscale decals: - 3554: -24,45 - 3555: -23,46 + 3534: -24,45 + 3535: -23,46 - node: color: '#FFFFFFFF' id: BrickTileDarkBox decals: - 1388: -53,-2 - 1389: -55,-2 - 1390: -57,-2 - 3475: -49,-7 - 3476: -49,-5 - 3477: -49,-3 - 3478: -49,-1 - 3479: -49,3 - 3480: -51,3 - 3481: -53,3 - 3482: -55,3 - 3483: -47,12 - 3484: -49,12 - 3485: -51,12 + 1369: -53,-2 + 1370: -55,-2 + 1371: -57,-2 + 3455: -49,-7 + 3456: -49,-5 + 3457: -49,-3 + 3458: -49,-1 + 3459: -49,3 + 3460: -51,3 + 3461: -53,3 + 3462: -55,3 + 3463: -47,12 + 3464: -49,12 + 3465: -51,12 - node: color: '#FFFFFFFF' id: BrickTileDarkCornerNe decals: - 2528: -13,13 - 2537: -19,18 - 3217: 25,1 + 2508: -13,13 + 2517: -19,18 + 3197: 25,1 - node: color: '#FFFFFFFF' id: BrickTileDarkCornerNw decals: - 2534: -21,18 - 3218: 21,1 + 2514: -21,18 + 3198: 21,1 - node: color: '#FFFFFFFF' id: BrickTileDarkCornerSe decals: - 2529: -13,11 - 2535: -19,17 - 3153: -110,9 - 3164: -115,12 - 3531: 37,17 + 2509: -13,11 + 2515: -19,17 + 3133: -110,9 + 3144: -115,12 + 3511: 37,17 - node: color: '#FFFFFFFF' id: BrickTileDarkCornerSw decals: - 2536: -21,17 - 3150: -114,9 - 3169: -109,12 - 3530: 35,17 + 2516: -21,17 + 3130: -114,9 + 3149: -109,12 + 3510: 35,17 - node: color: '#FFFFFFFF' id: BrickTileDarkEndN decals: - 3221: 23,2 + 3201: 23,2 - node: color: '#FFFFFFFF' id: BrickTileDarkEndS decals: - 3215: 21,0 - 3216: 25,0 - 3222: 23,-1 + 3195: 21,0 + 3196: 25,0 + 3202: 23,-1 - node: color: '#FFFFFFFF' id: BrickTileDarkInnerNe decals: - 2532: -14,13 - 3161: -114,9 - 3232: 23,1 + 2512: -14,13 + 3141: -114,9 + 3212: 23,1 - node: color: '#FFFFFFFF' id: BrickTileDarkInnerNw decals: - 3160: -110,9 - 3233: 23,1 + 3140: -110,9 + 3213: 23,1 - node: color: '#FFFFFFFF' id: BrickTileDarkInnerSe decals: - 2533: -14,11 - 3220: 21,1 - 3231: 23,1 + 2513: -14,11 + 3200: 21,1 + 3211: 23,1 - node: color: '#FFFFFFFF' id: BrickTileDarkInnerSw decals: - 3219: 25,1 - 3230: 23,1 + 3199: 25,1 + 3210: 23,1 - node: color: '#FFFFFFFF' id: BrickTileDarkLineE decals: - 2530: -13,12 - 3156: -110,10 - 3157: -114,10 - 3171: -115,13 - 3223: 23,0 - 3532: 37,18 + 2510: -13,12 + 3136: -110,10 + 3137: -114,10 + 3151: -115,13 + 3203: 23,0 + 3512: 37,18 - node: color: '#FFFFFFFF' id: BrickTileDarkLineN decals: - 2539: -20,18 - 3158: -111,9 - 3159: -113,9 - 3162: -115,10 - 3163: -109,10 - 3165: -111,10 - 3166: -113,10 - 3228: 22,1 - 3229: 24,1 - 3405: 37,15 - 3406: 36,15 - 3407: 35,15 - 3408: 34,15 + 2519: -20,18 + 3138: -111,9 + 3139: -113,9 + 3142: -115,10 + 3143: -109,10 + 3145: -111,10 + 3146: -113,10 + 3208: 22,1 + 3209: 24,1 + 3385: 37,15 + 3386: 36,15 + 3387: 35,15 + 3388: 34,15 - node: color: '#FFFFFFFF' id: BrickTileDarkLineS decals: - 2538: -20,17 - 3151: -113,9 - 3152: -111,9 - 3167: -111,12 - 3168: -113,12 - 3226: 24,1 - 3227: 22,1 - 3529: 36,17 + 2518: -20,17 + 3131: -113,9 + 3132: -111,9 + 3147: -111,12 + 3148: -113,12 + 3206: 24,1 + 3207: 22,1 + 3509: 36,17 - node: color: '#FFFFFFFF' id: BrickTileDarkLineW decals: - 3154: -114,10 - 3155: -110,10 - 3170: -109,13 - 3224: 23,0 + 3134: -114,10 + 3135: -110,10 + 3150: -109,13 + 3204: 23,0 - node: color: '#FFFFFFFF' id: BrickTileSteelBox decals: - 1539: -38,24 - 1540: -36,24 - 1541: -34,24 - 1542: -26,24 - 1543: -28,24 - 1544: -30,24 - 3115: -24,24 - 3116: -22,24 - 3117: -20,24 - 3118: -18,24 - 3119: -16,24 - 3120: -40,24 + 1520: -38,24 + 1521: -36,24 + 1522: -34,24 + 1523: -26,24 + 1524: -28,24 + 1525: -30,24 + 3095: -24,24 + 3096: -22,24 + 3097: -20,24 + 3098: -18,24 + 3099: -16,24 + 3100: -40,24 - node: color: '#52B4E996' id: BrickTileSteelCornerNe decals: - 2040: -34,-10 - 2199: -20,-5 - 2200: -20,-5 - 3465: 49,-13 + 2020: -34,-10 + 2179: -20,-5 + 2180: -20,-5 + 3445: 49,-13 - node: color: '#9FED5896' id: BrickTileSteelCornerNe decals: - 1670: -3,-26 - 2037: -34,-7 + 1651: -3,-26 + 2017: -34,-7 - node: color: '#D381C996' id: BrickTileSteelCornerNe decals: - 1344: -45,14 - 2059: -50,5 - 2069: -45,0 - 2104: -42,-4 - 2151: -40,12 + 1325: -45,14 + 2039: -50,5 + 2049: -45,0 + 2084: -42,-4 + 2131: -40,12 - node: color: '#DE3A3A96' id: BrickTileSteelCornerNe decals: - 1877: -19,-16 - 2027: -19,-10 - 2028: -19,-13 - 2174: -31,5 - 2895: -8,-45 + 1857: -19,-16 + 2007: -19,-10 + 2008: -19,-13 + 2154: -31,5 + 2875: -8,-45 - node: color: '#52B4E996' id: BrickTileSteelCornerNw decals: - 2039: -35,-10 - 2201: -19,-5 - 2202: -19,-5 - 3464: 47,-13 + 2019: -35,-10 + 2181: -19,-5 + 2182: -19,-5 + 3444: 47,-13 - node: color: '#9FED5896' id: BrickTileSteelCornerNw decals: - 1672: -5,-26 - 1673: -8,-27 - 2038: -35,-7 + 1653: -5,-26 + 1654: -8,-27 + 2018: -35,-7 - node: color: '#D381C996' id: BrickTileSteelCornerNw decals: - 1245: -52,5 - 2100: -46,-4 - 2152: -43,12 + 1226: -52,5 + 2080: -46,-4 + 2132: -43,12 - node: color: '#DE3A3A96' id: BrickTileSteelCornerNw decals: - 1878: -21,-16 - 2029: -20,-10 - 2030: -20,-13 - 2175: -35,5 - 2896: -9,-45 + 1858: -21,-16 + 2009: -20,-10 + 2010: -20,-13 + 2155: -35,5 + 2876: -9,-45 - node: color: '#52B4E996' id: BrickTileSteelCornerSe decals: - 2042: -34,-11 - 2205: -20,-4 - 2206: -20,-4 - 3466: 49,-15 + 2022: -34,-11 + 2185: -20,-4 + 2186: -20,-4 + 3446: 49,-15 - node: color: '#9FED5896' id: BrickTileSteelCornerSe decals: - 2035: -34,-8 + 2015: -34,-8 - node: color: '#D381C996' id: BrickTileSteelCornerSe decals: - 1368: -52,-7 - 2070: -45,-2 - 2079: -48,-9 - 2107: -42,-9 - 2154: -40,11 - 2173: -44,-11 + 1349: -52,-7 + 2050: -45,-2 + 2059: -48,-9 + 2087: -42,-9 + 2134: -40,11 + 2153: -44,-11 - node: color: '#DE3A3A96' id: BrickTileSteelCornerSe decals: - 1880: -19,-17 - 2033: -19,-14 - 2034: -19,-11 - 2177: -31,4 + 1860: -19,-17 + 2013: -19,-14 + 2014: -19,-11 + 2157: -31,4 - node: color: '#52B4E996' id: BrickTileSteelCornerSw decals: - 2041: -35,-11 - 2203: -19,-4 - 2204: -19,-4 - 3463: 47,-15 + 2021: -35,-11 + 2183: -19,-4 + 2184: -19,-4 + 3443: 47,-15 - node: color: '#9FED5896' id: BrickTileSteelCornerSw decals: - 2036: -35,-8 + 2016: -35,-8 - node: color: '#D381C996' id: BrickTileSteelCornerSw decals: - 1358: -58,-3 - 1365: -55,-7 - 1394: -60,1 - 2080: -50,-9 - 2094: -46,-11 - 2153: -43,11 + 1339: -58,-3 + 1346: -55,-7 + 1375: -60,1 + 2060: -50,-9 + 2074: -46,-11 + 2133: -43,11 - node: color: '#DE3A3A96' id: BrickTileSteelCornerSw decals: - 1879: -21,-17 - 2031: -20,-14 - 2032: -20,-11 - 2176: -35,4 + 1859: -21,-17 + 2011: -20,-14 + 2012: -20,-11 + 2156: -35,4 - node: color: '#D381C996' id: BrickTileSteelInnerNe decals: - 1020: -51,14 - 2060: -50,4 - 2066: -48,0 + 1001: -51,14 + 2040: -50,4 + 2046: -48,0 - node: color: '#9FED5896' id: BrickTileSteelInnerNw decals: - 1674: -5,-27 + 1655: -5,-27 - node: color: '#D381C996' id: BrickTileSteelInnerNw decals: - 1019: -51,14 - 1246: -52,4 + 1000: -51,14 + 1227: -52,4 - node: color: '#D381C996' id: BrickTileSteelInnerSe decals: - 2065: -48,2 - 2073: -48,-2 - 2109: -44,-9 + 2045: -48,2 + 2053: -48,-2 + 2089: -44,-9 - node: color: '#D381C996' id: BrickTileSteelInnerSw decals: - 1361: -55,-3 + 1342: -55,-3 - node: color: '#52B4E996' id: BrickTileSteelLineE decals: - 3467: 49,-14 + 3447: 49,-14 - node: color: '#9FED5896' id: BrickTileSteelLineE decals: - 1667: -3,-29 - 1668: -3,-28 - 1669: -3,-27 + 1648: -3,-29 + 1649: -3,-28 + 1650: -3,-27 - node: color: '#D381C996' id: BrickTileSteelLineE decals: - 1369: -52,-6 - 1370: -52,-5 - 1371: -52,-4 - 1372: -52,-3 - 1373: -52,-2 - 1380: -52,-1 - 2074: -48,-4 - 2075: -48,-3 - 2076: -48,-5 - 2077: -48,-7 - 2078: -48,-8 - 2105: -42,-7 - 2106: -42,-8 - 2110: -44,-10 + 1350: -52,-6 + 1351: -52,-5 + 1352: -52,-4 + 1353: -52,-3 + 1354: -52,-2 + 1361: -52,-1 + 2054: -48,-4 + 2055: -48,-3 + 2056: -48,-5 + 2057: -48,-7 + 2058: -48,-8 + 2085: -42,-7 + 2086: -42,-8 + 2090: -44,-10 - node: color: '#DE3A3A96' id: BrickTileSteelLineE decals: - 2897: -8,-46 + 2877: -8,-46 - node: color: '#52B4E996' id: BrickTileSteelLineN decals: - 3468: 48,-13 + 3448: 48,-13 - node: color: '#9FED5896' id: BrickTileSteelLineN decals: - 1671: -4,-26 - 1675: -6,-27 - 1676: -7,-27 + 1652: -4,-26 + 1656: -6,-27 + 1657: -7,-27 - node: color: '#D381C996' id: BrickTileSteelLineN decals: - 1017: -50,14 - 1018: -52,14 - 1247: -53,4 - 1340: -49,14 - 1341: -48,14 - 1342: -47,14 - 1374: -55,-1 - 1375: -57,-1 - 2061: -49,4 - 2062: -48,4 - 2063: -47,4 - 2067: -47,0 - 2068: -46,0 - 2101: -45,-4 - 2102: -44,-4 - 2103: -43,-4 + 998: -50,14 + 999: -52,14 + 1228: -53,4 + 1321: -49,14 + 1322: -48,14 + 1323: -47,14 + 1355: -55,-1 + 1356: -57,-1 + 2041: -49,4 + 2042: -48,4 + 2043: -47,4 + 2047: -47,0 + 2048: -46,0 + 2081: -45,-4 + 2082: -44,-4 + 2083: -43,-4 - node: color: '#DE3A3A96' id: BrickTileSteelLineN decals: - 1802: -8,-18 - 1803: -9,-18 - 1810: -6,-18 - 1881: -20,-16 - 2178: -32,5 - 2179: -33,5 - 2180: -34,5 + 1782: -8,-18 + 1783: -9,-18 + 1790: -6,-18 + 1861: -20,-16 + 2158: -32,5 + 2159: -33,5 + 2160: -34,5 - node: color: '#52B4E996' id: BrickTileSteelLineS decals: - 3469: 48,-15 + 3449: 48,-15 - node: color: '#D381C996' id: BrickTileSteelLineS decals: - 1011: -46,11 - 1012: -47,11 - 1013: -48,11 - 1014: -49,11 - 1015: -50,11 - 1016: -52,11 - 1353: -55,2 - 1359: -57,-3 - 1360: -56,-3 - 1366: -54,-7 - 1367: -53,-7 - 1393: -59,1 - 2064: -47,2 - 2071: -46,-2 - 2072: -47,-2 - 2108: -43,-9 - 2155: -41,11 - 2156: -42,11 - 2172: -45,-11 + 992: -46,11 + 993: -47,11 + 994: -48,11 + 995: -49,11 + 996: -50,11 + 997: -52,11 + 1334: -55,2 + 1340: -57,-3 + 1341: -56,-3 + 1347: -54,-7 + 1348: -53,-7 + 1374: -59,1 + 2044: -47,2 + 2051: -46,-2 + 2052: -47,-2 + 2088: -43,-9 + 2135: -41,11 + 2136: -42,11 + 2152: -45,-11 - node: color: '#DE3A3A96' id: BrickTileSteelLineS decals: - 1804: -6,-19 - 1805: -7,-19 - 1806: -8,-19 - 1882: -20,-17 - 2181: -32,4 - 2182: -34,4 + 1784: -6,-19 + 1785: -7,-19 + 1786: -8,-19 + 1862: -20,-17 + 2161: -32,4 + 2162: -34,4 - node: color: '#9FED5896' id: BrickTileSteelLineW decals: - 1665: -8,-29 - 1666: -8,-28 + 1646: -8,-29 + 1647: -8,-28 - node: color: '#D381C996' id: BrickTileSteelLineW decals: - 1362: -55,-4 - 1363: -55,-5 - 1364: -55,-6 - 1391: -58,-2 - 1395: -60,2 - 2081: -50,-8 - 2082: -50,-7 - 2083: -50,-6 - 2084: -50,-5 - 2085: -50,-4 - 2086: -50,-3 - 2087: -50,-2 - 2088: -50,-1 - 2089: -50,0 - 2095: -46,-10 - 2096: -46,-9 - 2097: -46,-8 - 2098: -46,-7 - 2099: -46,-5 - 2223: -45,7 - 2224: -45,8 - 2225: -45,9 + 1343: -55,-4 + 1344: -55,-5 + 1345: -55,-6 + 1372: -58,-2 + 1376: -60,2 + 2061: -50,-8 + 2062: -50,-7 + 2063: -50,-6 + 2064: -50,-5 + 2065: -50,-4 + 2066: -50,-3 + 2067: -50,-2 + 2068: -50,-1 + 2069: -50,0 + 2075: -46,-10 + 2076: -46,-9 + 2077: -46,-8 + 2078: -46,-7 + 2079: -46,-5 + 2203: -45,7 + 2204: -45,8 + 2205: -45,9 - node: color: '#DE3A3A96' id: BrickTileSteelLineW decals: - 2898: -9,-46 + 2878: -9,-46 - node: color: '#FFFFFFFF' id: BrickTileSteelLineW decals: - 922: 18,12 + 903: 18,12 - node: color: '#334E6DC8' id: BrickTileWhiteBox decals: - 3208: 21,-1 + 3188: 21,-1 - node: color: '#52B4E996' id: BrickTileWhiteBox decals: - 3212: 22,2 + 3192: 22,2 - node: color: '#9FED5896' id: BrickTileWhiteBox decals: - 3210: 22,0 + 3190: 22,0 - node: color: '#A4610696' id: BrickTileWhiteBox decals: - 3214: 25,2 + 3194: 25,2 - node: color: '#D381C996' id: BrickTileWhiteBox decals: - 3213: 21,2 + 3193: 21,2 - node: color: '#D4D4D496' id: BrickTileWhiteBox decals: - 3211: 24,0 + 3191: 24,0 - node: color: '#DE3A3A96' id: BrickTileWhiteBox decals: - 3209: 25,-1 + 3189: 25,-1 - node: color: '#EFB34196' id: BrickTileWhiteBox decals: - 3225: 24,2 + 3205: 24,2 - node: color: '#334E6DC8' id: BrickTileWhiteCornerNe decals: - 2904: 8,-28 - 2925: 5,-39 + 2884: 8,-28 + 2905: 5,-39 - node: color: '#79150096' id: BrickTileWhiteCornerNe decals: - 2216: -41,-20 + 2196: -41,-20 - node: color: '#B02E26FF' id: BrickTileWhiteCornerNe decals: - 2888: -4,-45 + 2868: -4,-45 - node: color: '#D381C996' id: BrickTileWhiteCornerNe decals: - 2168: -54,7 + 2148: -54,7 - node: color: '#DE3A3A96' id: BrickTileWhiteCornerNe decals: - 1858: -24,-19 + 1838: -24,-19 - node: color: '#EFB34141' id: BrickTileWhiteCornerNe decals: - 2043: -34,-13 + 2023: -34,-13 - node: color: '#EFD54193' id: BrickTileWhiteCornerNe decals: - 3494: 24,21 + 3474: 24,21 - node: color: '#EFD54196' id: BrickTileWhiteCornerNe decals: - 1950: -21,32 - 1972: -25,32 + 1930: -21,32 + 1952: -25,32 - node: color: '#EFD84196' id: BrickTileWhiteCornerNe decals: - 1989: -15,29 + 1969: -15,29 - node: color: '#FFFFFFFF' id: BrickTileWhiteCornerNe decals: - 869: 40,-28 - 930: 20,14 + 850: 40,-28 + 911: 20,14 - node: color: '#334E6DC8' id: BrickTileWhiteCornerNw decals: - 2905: 3,-28 - 2924: 3,-39 + 2885: 3,-28 + 2904: 3,-39 - node: color: '#79150096' id: BrickTileWhiteCornerNw decals: - 2217: -47,-20 + 2197: -47,-20 - node: color: '#B02E26FF' id: BrickTileWhiteCornerNw decals: - 2891: -6,-45 + 2871: -6,-45 - node: color: '#D381C996' id: BrickTileWhiteCornerNw decals: - 1346: -47,16 - 2167: -56,7 + 1327: -47,16 + 2147: -56,7 - node: color: '#DE3A3A96' id: BrickTileWhiteCornerNw decals: - 1857: -31,-19 + 1837: -31,-19 - node: color: '#EFB34141' id: BrickTileWhiteCornerNw decals: - 2044: -35,-13 + 2024: -35,-13 - node: color: '#EFCC4196' id: BrickTileWhiteCornerNw decals: - 2308: -13,32 + 2288: -13,32 - node: color: '#EFD54193' id: BrickTileWhiteCornerNw decals: - 3493: 19,21 + 3473: 19,21 - node: color: '#EFD54196' id: BrickTileWhiteCornerNw decals: - 1951: -23,32 - 1971: -31,32 + 1931: -23,32 + 1951: -31,32 - node: color: '#FFFFFFFF' id: BrickTileWhiteCornerNw decals: - 867: 38,-28 - 929: 19,14 - 2525: -4,-10 + 848: 38,-28 + 910: 19,14 + 2505: -4,-10 - node: color: '#334E6DC8' id: BrickTileWhiteCornerSe decals: - 2911: 5,-33 - 2917: 8,-30 - 2921: 5,-40 + 2891: 5,-33 + 2897: 8,-30 + 2901: 5,-40 - node: color: '#79150096' id: BrickTileWhiteCornerSe decals: - 2218: -41,-22 + 2198: -41,-22 - node: color: '#DE3A3A96' id: BrickTileWhiteCornerSe decals: - 1859: -24,-21 + 1839: -24,-21 - node: color: '#EFB34141' id: BrickTileWhiteCornerSe decals: - 2045: -34,-14 + 2025: -34,-14 - node: color: '#EFD54193' id: BrickTileWhiteCornerSe decals: - 3495: 24,17 + 3475: 24,17 - node: color: '#EFD54196' id: BrickTileWhiteCornerSe decals: - 1948: -15,27 + 1928: -15,27 - node: color: '#FFFFFFFF' id: BrickTileWhiteCornerSe decals: - 868: 40,-32 - 928: 20,11 + 849: 40,-32 + 909: 20,11 - node: color: '#334E6DC8' id: BrickTileWhiteCornerSw decals: - 2909: 3,-33 - 2923: 3,-40 + 2889: 3,-33 + 2903: 3,-40 - node: color: '#79150096' id: BrickTileWhiteCornerSw decals: - 2219: -47,-22 + 2199: -47,-22 - node: color: '#DE3A3A96' id: BrickTileWhiteCornerSw decals: - 1860: -31,-21 + 1840: -31,-21 - node: color: '#EFB34141' id: BrickTileWhiteCornerSw decals: - 2046: -35,-14 + 2026: -35,-14 - node: color: '#EFCC4196' id: BrickTileWhiteCornerSw decals: - 2304: -13,27 - 2324: -5,23 + 2284: -13,27 + 2304: -5,23 - node: color: '#EFD54193' id: BrickTileWhiteCornerSw decals: - 3496: 19,17 + 3476: 19,17 - node: color: '#EFD54196' id: BrickTileWhiteCornerSw decals: - 1953: -23,28 - 1957: -19,27 + 1933: -23,28 + 1937: -19,27 - node: color: '#FFFFFFFF' id: BrickTileWhiteCornerSw decals: - 866: 38,-32 - 927: 19,11 + 847: 38,-32 + 908: 19,11 - node: color: '#DE3A3A96' id: BrickTileWhiteInnerNe decals: - 1855: -29,-14 - 1898: -22,-23 + 1835: -29,-14 + 1878: -22,-23 - node: color: '#EFCC4196' id: BrickTileWhiteInnerNe decals: - 2302: -3,23 - 2447: -3,21 + 2282: -3,23 + 2427: -3,21 - node: color: '#EFD84196' id: BrickTileWhiteInnerNe decals: - 1995: -21,29 + 1975: -21,29 - node: color: '#52B4E996' id: BrickTileWhiteInnerNw decals: - 3026: 43,-17 + 3006: 43,-17 - node: color: '#DE3A3A96' id: BrickTileWhiteInnerNw decals: - 1846: -31,-6 - 1856: -25,-14 - 1896: -18,-23 - 1897: -17,-22 + 1826: -31,-6 + 1836: -25,-14 + 1876: -18,-23 + 1877: -17,-22 - node: color: '#EFCC4196' id: BrickTileWhiteInnerNw decals: - 2446: -4,21 + 2426: -4,21 - node: color: '#334E6DC8' id: BrickTileWhiteInnerSe decals: - 2914: 5,-30 + 2894: 5,-30 - node: color: '#DE3A3A96' id: BrickTileWhiteInnerSe decals: - 1850: -29,-6 - 2024: -31,-17 + 1830: -29,-6 + 2004: -31,-17 - node: color: '#EFCC4196' id: BrickTileWhiteInnerSe decals: - 2327: -3,23 - 2425: -3,27 + 2307: -3,23 + 2405: -3,27 - node: color: '#52B4E996' id: BrickTileWhiteInnerSw decals: - 3025: 43,-18 + 3005: 43,-18 - node: color: '#DE3A3A96' id: BrickTileWhiteInnerSw decals: - 1849: -25,-6 + 1829: -25,-6 - node: color: '#EFCC4196' id: BrickTileWhiteInnerSw decals: - 2321: -5,27 - 2326: -4,23 + 2301: -5,27 + 2306: -4,23 - node: color: '#EFD54196' id: BrickTileWhiteInnerSw decals: - 1956: -19,28 + 1936: -19,28 - node: color: '#334E6DC8' id: BrickTileWhiteLineE decals: - 2912: 5,-32 - 2913: 5,-31 - 2918: 8,-29 + 2892: 5,-32 + 2893: 5,-31 + 2898: 8,-29 - node: color: '#52B4E996' id: BrickTileWhiteLineE decals: - 3031: 45,-25 - 3032: 45,-24 - 3033: 45,-23 - 3034: 45,-21 - 3035: 45,-20 - 3038: 45,-19 - 3039: 45,-18 - 3040: 45,-17 + 3011: 45,-25 + 3012: 45,-24 + 3013: 45,-23 + 3014: 45,-21 + 3015: 45,-20 + 3018: 45,-19 + 3019: 45,-18 + 3020: 45,-17 - node: color: '#B02E26FF' id: BrickTileWhiteLineE decals: - 2889: -4,-46 + 2869: -4,-46 - node: color: '#DE3A3A96' id: BrickTileWhiteLineE decals: - 963: -33,-21 - 964: -33,-19 - 965: -33,-18 - 966: -33,-16 - 1831: -22,-6 - 1832: -22,-5 - 1871: -24,-20 + 944: -33,-21 + 945: -33,-19 + 946: -33,-18 + 947: -33,-16 + 1811: -22,-6 + 1812: -22,-5 + 1851: -24,-20 - node: color: '#EFCC4196' id: BrickTileWhiteLineE decals: - 2300: -3,24 - 2301: -3,25 + 2280: -3,24 + 2281: -3,25 - node: color: '#EFD54193' id: BrickTileWhiteLineE decals: - 3497: 24,18 - 3498: 24,19 - 3499: 24,20 + 3477: 24,18 + 3478: 24,19 + 3479: 24,20 - node: color: '#EFD54196' id: BrickTileWhiteLineE decals: - 1949: -21,31 + 1929: -21,31 - node: color: '#EFD84196' id: BrickTileWhiteLineE decals: - 1996: -21,30 + 1976: -21,30 - node: color: '#FFFFFFFF' id: BrickTileWhiteLineE decals: - 874: 40,-31 - 875: 40,-30 - 876: 40,-29 - 924: 20,12 - 925: 20,13 - 926: 20,14 + 855: 40,-31 + 856: 40,-30 + 857: 40,-29 + 905: 20,12 + 906: 20,13 + 907: 20,14 - node: color: '#334E6DC8' id: BrickTileWhiteLineN decals: - 2901: 4,-28 - 2902: 5,-28 - 2903: 6,-28 - 3457: 7,-38 - 3458: 5,-38 - 3459: 3,-38 + 2881: 4,-28 + 2882: 5,-28 + 2883: 6,-28 + 3437: 7,-38 + 3438: 5,-38 + 3439: 3,-38 - node: color: '#52B4E996' id: BrickTileWhiteLineN decals: - 3015: 38,-17 - 3016: 39,-17 - 3017: 40,-17 - 3018: 41,-17 - 3024: 37,-17 + 2995: 38,-17 + 2996: 39,-17 + 2997: 40,-17 + 2998: 41,-17 + 3004: 37,-17 - node: color: '#79150096' id: BrickTileWhiteLineN decals: - 2212: -42,-20 - 2213: -43,-20 - 2214: -45,-20 - 2215: -46,-20 + 2192: -42,-20 + 2193: -43,-20 + 2194: -45,-20 + 2195: -46,-20 - node: color: '#B02E26FF' id: BrickTileWhiteLineN decals: - 2892: -5,-45 + 2872: -5,-45 - node: color: '#D381C996' id: BrickTileWhiteLineN decals: - 1347: -46,16 - 2166: -55,7 + 1328: -46,16 + 2146: -55,7 - node: color: '#DE3A3A96' id: BrickTileWhiteLineN decals: - 1835: -23,-3 - 1836: -24,-3 - 1837: -25,-3 - 1838: -26,-3 - 1839: -28,-3 - 1840: -29,-3 - 1841: -30,-3 - 1852: -26,-14 - 1853: -27,-14 - 1854: -28,-14 - 1867: -25,-19 - 1868: -27,-19 - 1869: -29,-19 - 1870: -30,-19 - 1890: -19,-23 - 1891: -20,-23 - 1892: -21,-23 + 1815: -23,-3 + 1816: -24,-3 + 1817: -25,-3 + 1818: -26,-3 + 1819: -28,-3 + 1820: -29,-3 + 1821: -30,-3 + 1832: -26,-14 + 1833: -27,-14 + 1834: -28,-14 + 1847: -25,-19 + 1848: -27,-19 + 1849: -29,-19 + 1850: -30,-19 + 1870: -19,-23 + 1871: -20,-23 + 1872: -21,-23 - node: color: '#EFB3414A' id: BrickTileWhiteLineN decals: - 3247: 22,5 - 3248: 24,5 + 3227: 22,5 + 3228: 24,5 - node: color: '#EFCC4196' id: BrickTileWhiteLineN decals: - 2295: 2,23 - 2296: 1,23 - 2297: 0,23 - 2298: -1,23 - 2299: -2,23 - 2309: -11,32 + 2275: 2,23 + 2276: 1,23 + 2277: 0,23 + 2278: -1,23 + 2279: -2,23 + 2289: -11,32 - node: color: '#EFD54193' id: BrickTileWhiteLineN decals: - 3505: 20,21 - 3506: 21,21 - 3507: 22,21 - 3508: 23,21 + 3485: 20,21 + 3486: 21,21 + 3487: 22,21 + 3488: 23,21 - node: color: '#EFD54196' id: BrickTileWhiteLineN decals: - 1973: -26,32 - 1974: -27,32 - 1975: -28,32 - 1976: -29,32 - 1977: -30,32 + 1953: -26,32 + 1954: -27,32 + 1955: -28,32 + 1956: -29,32 + 1957: -30,32 - node: color: '#EFD5692E' id: BrickTileWhiteLineN decals: - 2730: 39,-35 - 2731: 40,-35 - 2732: 41,-35 + 2710: 39,-35 + 2711: 40,-35 + 2712: 41,-35 - node: color: '#EFD84196' id: BrickTileWhiteLineN decals: - 1990: -16,29 - 1991: -18,29 - 1992: -17,29 - 1993: -19,29 - 1994: -20,29 + 1970: -16,29 + 1971: -18,29 + 1972: -17,29 + 1973: -19,29 + 1974: -20,29 - node: color: '#FFFFFFFF' id: BrickTileWhiteLineN decals: - 877: 39,-28 + 858: 39,-28 - node: color: '#334E6DC8' id: BrickTileWhiteLineS decals: - 2507: 3,-1 - 2508: 2,-1 - 2509: 1,-1 - 2510: -1,-1 - 2511: -2,-1 - 2512: -3,-1 - 2910: 4,-33 - 2915: 6,-30 - 2916: 7,-30 - 2922: 4,-40 - 3454: 7,-35 - 3455: 5,-35 - 3456: 3,-35 + 2487: 3,-1 + 2488: 2,-1 + 2489: 1,-1 + 2490: -1,-1 + 2491: -2,-1 + 2492: -3,-1 + 2890: 4,-33 + 2895: 6,-30 + 2896: 7,-30 + 2902: 4,-40 + 3434: 7,-35 + 3435: 5,-35 + 3436: 3,-35 - node: color: '#52B4E996' id: BrickTileWhiteLineS decals: - 3019: 41,-18 - 3020: 40,-18 - 3021: 39,-18 - 3022: 38,-18 - 3023: 37,-18 + 2999: 41,-18 + 3000: 40,-18 + 3001: 39,-18 + 3002: 38,-18 + 3003: 37,-18 - node: color: '#79150096' id: BrickTileWhiteLineS decals: - 2207: -42,-22 - 2208: -43,-22 - 2209: -44,-22 - 2210: -45,-22 - 2211: -46,-22 + 2187: -42,-22 + 2188: -43,-22 + 2189: -44,-22 + 2190: -45,-22 + 2191: -46,-22 - node: color: '#D381C925' id: BrickTileWhiteLineS decals: - 918: -44,6 + 899: -44,6 - node: color: '#D381C996' id: BrickTileWhiteLineS decals: - 2162: -54,14 - 2163: -55,14 - 2164: -56,14 - 2165: -57,14 + 2142: -54,14 + 2143: -55,14 + 2144: -56,14 + 2145: -57,14 - node: color: '#DE3A3A96' id: BrickTileWhiteLineS decals: - 1847: -26,-6 - 1848: -28,-6 - 1861: -30,-21 - 1862: -29,-21 - 1863: -28,-21 - 1864: -27,-21 - 1865: -26,-21 - 1866: -25,-21 - 2018: -23,-17 - 2019: -24,-17 - 2020: -25,-17 - 2021: -27,-17 - 2022: -29,-17 - 2023: -30,-17 + 1827: -26,-6 + 1828: -28,-6 + 1841: -30,-21 + 1842: -29,-21 + 1843: -28,-21 + 1844: -27,-21 + 1845: -26,-21 + 1846: -25,-21 + 1998: -23,-17 + 1999: -24,-17 + 2000: -25,-17 + 2001: -27,-17 + 2002: -29,-17 + 2003: -30,-17 - node: color: '#EFCC4196' id: BrickTileWhiteLineS decals: - 2290: 2,23 - 2291: 1,23 - 2292: 0,23 - 2293: -1,23 - 2294: -2,23 - 2303: -11,27 - 2315: -10,27 - 2316: -9,27 - 2317: -8,27 - 2318: -7,27 - 2319: -6,27 - 2421: 1,27 - 2422: 0,27 - 2423: -1,27 - 2424: -2,27 + 2270: 2,23 + 2271: 1,23 + 2272: 0,23 + 2273: -1,23 + 2274: -2,23 + 2283: -11,27 + 2295: -10,27 + 2296: -9,27 + 2297: -8,27 + 2298: -7,27 + 2299: -6,27 + 2401: 1,27 + 2402: 0,27 + 2403: -1,27 + 2404: -2,27 - node: color: '#EFD54193' id: BrickTileWhiteLineS decals: - 3500: 22,17 - 3501: 21,17 - 3502: 20,17 + 3480: 22,17 + 3481: 21,17 + 3482: 20,17 - node: color: '#EFD54196' id: BrickTileWhiteLineS decals: - 1954: -21,28 - 1955: -20,28 - 1958: -17,27 - 1959: -16,27 + 1934: -21,28 + 1935: -20,28 + 1938: -17,27 + 1939: -16,27 - node: color: '#FFFFFFFF' id: BrickTileWhiteLineS decals: - 870: 39,-32 - 901: -3,-9 - 2523: -3,-11 - 2524: -4,-11 + 851: 39,-32 + 882: -3,-9 + 2503: -3,-11 + 2504: -4,-11 - node: color: '#334E6DC8' id: BrickTileWhiteLineW decals: - 2906: 3,-29 - 2907: 3,-31 - 2908: 3,-32 + 2886: 3,-29 + 2887: 3,-31 + 2888: 3,-32 - node: color: '#52B4E996' id: BrickTileWhiteLineW decals: - 3027: 43,-19 - 3028: 43,-20 - 3029: 43,-22 - 3030: 43,-23 - 3486: 43,-25 + 3007: 43,-19 + 3008: 43,-20 + 3009: 43,-22 + 3010: 43,-23 + 3466: 43,-25 - node: color: '#B02E26FF' id: BrickTileWhiteLineW decals: - 2890: -6,-46 + 2870: -6,-46 - node: color: '#D381C996' id: BrickTileWhiteLineW decals: - 1345: -47,15 + 1326: -47,15 - node: color: '#DE3A3A96' id: BrickTileWhiteLineW decals: - 957: -35,-21 - 958: -35,-20 - 959: -35,-19 - 960: -35,-18 - 961: -35,-17 - 962: -35,-16 - 1845: -31,-5 - 1893: -17,-21 - 1894: -17,-20 - 1895: -17,-19 - 2015: -21,-20 - 2016: -21,-22 + 938: -35,-21 + 939: -35,-20 + 940: -35,-19 + 941: -35,-18 + 942: -35,-17 + 943: -35,-16 + 1825: -31,-5 + 1873: -17,-21 + 1874: -17,-20 + 1875: -17,-19 + 1995: -21,-20 + 1996: -21,-22 - node: color: '#EFCC4196' id: BrickTileWhiteLineW decals: - 2305: -13,29 - 2306: -13,30 - 2307: -13,31 - 2320: -5,26 - 2322: -5,25 - 2323: -5,24 - 2325: -4,22 + 2285: -13,29 + 2286: -13,30 + 2287: -13,31 + 2300: -5,26 + 2302: -5,25 + 2303: -5,24 + 2305: -4,22 - node: color: '#EFD54193' id: BrickTileWhiteLineW decals: - 3503: 19,19 - 3504: 19,20 + 3483: 19,19 + 3484: 19,20 - node: color: '#EFD54196' id: BrickTileWhiteLineW decals: - 1952: -23,29 + 1932: -23,29 - node: color: '#FFFFFFFF' id: BrickTileWhiteLineW decals: - 871: 38,-31 - 872: 38,-30 - 873: 38,-29 - 923: 19,13 + 852: 38,-31 + 853: 38,-30 + 854: 38,-29 + 904: 19,13 - node: color: '#FFFFFFFF' id: Bushb1 decals: - 1061: -5.0759892,-67.511505 + 1042: -5.0759892,-67.511505 - node: color: '#FFFFFFFF' id: Bushb2 decals: - 588: -6.033051,-6.006569 + 569: -6.033051,-6.006569 - node: color: '#FFFFFFFF' id: Bushb3 decals: - 513: -8.918216,35.06559 - 1062: 5.128752,-67.43338 + 512: -8.918216,35.06559 + 1043: 5.128752,-67.43338 - node: color: '#FFFFFFFF' id: Bushe2 decals: - 1071: -4.964998,-66.74588 - 1687: -48.067986,5.0444627 + 1052: -4.964998,-66.74588 + 1668: -48.067986,5.0444627 - node: color: '#FFFFFFFF' id: Bushe3 decals: - 1037: 49.993763,22.959341 + 1018: 49.993763,22.959341 - node: color: '#FFFFFFFF' id: Bushe4 decals: - 1036: 48.900013,22.974966 - 1070: -5.339998,-66.605255 - 1072: 5.097502,-68.605255 - 1688: -46.83361,5.0444627 + 1017: 48.900013,22.974966 + 1051: -5.339998,-66.605255 + 1053: 5.097502,-68.605255 + 1669: -46.83361,5.0444627 - node: color: '#FFFFFFFF' id: Bushf1 decals: - 1685: -46.89611,5.0132127 + 1666: -46.89611,5.0132127 - node: color: '#FFFFFFFF' id: Bushf3 decals: - 1686: -48.14611,4.9663377 + 1667: -48.14611,4.9663377 - node: color: '#FFFFFFFF' id: Bushh1 decals: - 1475: 11.007317,-66.29063 + 1456: 11.007317,-66.29063 - node: color: '#FFFFFFFF' id: Bushh2 decals: - 1476: 11.022942,-68.72813 + 1457: 11.022942,-68.72813 - node: color: '#FFFFFFFF' id: Bushi1 decals: 237: 32.840233,-26.000742 - 464: 8.857405,4.0894966 - 518: -8.808841,36.12809 - 1033: 48.025013,28.959341 - 3528: 28.940447,-35.765743 + 463: 8.857405,4.0894966 + 517: -8.808841,36.12809 + 1014: 48.025013,28.959341 + 3508: 28.940447,-35.765743 - node: color: '#FFFFFFFF' id: Bushi2 decals: - 520: -9.136966,33.87809 - 1470: 11.038567,-68.5875 + 519: -9.136966,33.87809 + 1451: 11.038567,-68.5875 - node: color: '#FFFFFFFF' id: Bushi3 decals: 236: 34.512108,-25.938242 - 462: 12.107405,4.5426216 - 517: -9.121341,33.831215 - 1034: 49.946888,28.959341 - 1089: -0.82901984,-67.68338 - 1469: 10.976067,-67.41563 + 461: 12.107405,4.5426216 + 516: -9.121341,33.831215 + 1015: 49.946888,28.959341 + 1070: -0.82901984,-67.68338 + 1450: 10.976067,-67.41563 - node: color: '#FFFFFFFF' id: Bushi4 decals: - 463: 11.013655,3.2457466 - 1088: 0.8428552,-67.55838 - 1468: 10.991692,-65.86875 + 462: 11.013655,3.2457466 + 1069: 0.8428552,-67.55838 + 1449: 10.991692,-65.86875 - node: color: '#FFFFFFFF' id: Bushj2 decals: 238: 33.887108,-25.969492 - 1074: -5.121248,-68.96463 - 1684: -47.52111,5.1225877 + 1055: -5.121248,-68.96463 + 1665: -47.52111,5.1225877 - node: color: '#FFFFFFFF' id: Bushj3 decals: - 1073: 5.097502,-65.99588 - 1090: -5,-66 + 1054: 5.097502,-65.99588 + 1071: -5,-66 - node: color: '#FFFFFFFF' id: Bushm2 decals: - 1474: 10.991692,-67.525 + 1455: 10.991692,-67.525 - node: color: '#FFFFFFFF' id: Bushn1 decals: - 589: -6.033051,-6.444069 - 1035: 48.978138,29.037466 + 570: -6.033051,-6.444069 + 1016: 48.978138,29.037466 - node: color: '#FFFFFFFF' id: Caution decals: - 510: -7,31 - 1182: -27,-1 - 1822: -9,-21 - 2696: -55,17 + 509: -7,31 + 1163: -27,-1 + 1802: -9,-21 + 2676: -55,17 - node: color: '#DE3A3A96' id: CautionGreyscale decals: - 1824: -7,-18 + 1804: -7,-18 - node: color: '#52B4E996' id: CheckerNESW decals: - 1477: -20,-8 - 1478: -20,-7 - 1479: -19,-7 - 1480: -19,-8 + 1458: -20,-8 + 1459: -20,-7 + 1460: -19,-7 + 1461: -19,-8 - node: color: '#D4D4D428' id: CheckerNESW @@ -1944,60 +1944,60 @@ entities: color: '#D4D4D453' id: CheckerNESW decals: - 1983: -20,30 - 1984: -17,30 - 1985: -16,30 + 1963: -20,30 + 1964: -17,30 + 1965: -16,30 - node: color: '#D4D4D46C' id: CheckerNESW decals: - 1416: 23,-37 - 1417: 23,-38 - 1418: 24,-38 - 1419: 24,-37 - 1420: 25,-37 - 1421: 25,-38 - 1422: 26,-38 - 1423: 26,-37 - 1424: 27,-38 - 1425: 27,-37 - 1426: 27,-36 - 1427: 26,-36 - 1428: 25,-36 - 1429: 24,-36 - 1430: 23,-36 - 1431: 23,-35 - 1432: 24,-35 - 1433: 25,-35 - 1434: 26,-35 - 1435: 26,-34 - 1436: 24,-34 - 1437: 23,-34 - 1438: 25,-34 - 1439: 26,-33 - 1440: 25,-33 - 1441: 24,-33 - 1442: 23,-33 - 1443: 23,-32 - 1444: 24,-32 - 1445: 25,-32 - 1446: 26,-32 - 1447: 26,-31 - 1448: 25,-31 - 1449: 24,-31 - 1450: 23,-31 + 1397: 23,-37 + 1398: 23,-38 + 1399: 24,-38 + 1400: 24,-37 + 1401: 25,-37 + 1402: 25,-38 + 1403: 26,-38 + 1404: 26,-37 + 1405: 27,-38 + 1406: 27,-37 + 1407: 27,-36 + 1408: 26,-36 + 1409: 25,-36 + 1410: 24,-36 + 1411: 23,-36 + 1412: 23,-35 + 1413: 24,-35 + 1414: 25,-35 + 1415: 26,-35 + 1416: 26,-34 + 1417: 24,-34 + 1418: 23,-34 + 1419: 25,-34 + 1420: 26,-33 + 1421: 25,-33 + 1422: 24,-33 + 1423: 23,-33 + 1424: 23,-32 + 1425: 24,-32 + 1426: 25,-32 + 1427: 26,-32 + 1428: 26,-31 + 1429: 25,-31 + 1430: 24,-31 + 1431: 23,-31 - node: color: '#334E6DC8' id: CheckerNWSE decals: - 723: -63,17 - 724: -64,17 - 725: -65,17 - 726: -66,17 - 727: -67,17 - 728: -68,17 - 729: -69,17 - 730: -62,17 + 704: -63,17 + 705: -64,17 + 706: -65,17 + 707: -66,17 + 708: -67,17 + 709: -68,17 + 710: -69,17 + 711: -62,17 - node: color: '#52B4E996' id: CheckerNWSE @@ -2017,112 +2017,112 @@ entities: 252: 34,-13 253: 35,-13 254: 36,-13 - 1988: -20,30 - 2993: 44,-14 - 2994: 44,-13 - 2995: 44,-12 - 2996: 44,-11 - 2997: 44,-10 - 3249: 47,-11 - 3250: 47,-10 - 3251: 47,-9 - 3252: 48,-9 - 3253: 48,-10 - 3254: 48,-11 - 3255: 49,-11 - 3256: 49,-10 - 3257: 49,-9 - 3258: 50,-9 - 3259: 50,-10 - 3260: 50,-11 + 1968: -20,30 + 2973: 44,-14 + 2974: 44,-13 + 2975: 44,-12 + 2976: 44,-11 + 2977: 44,-10 + 3229: 47,-11 + 3230: 47,-10 + 3231: 47,-9 + 3232: 48,-9 + 3233: 48,-10 + 3234: 48,-11 + 3235: 49,-11 + 3236: 49,-10 + 3237: 49,-9 + 3238: 50,-9 + 3239: 50,-10 + 3240: 50,-11 - node: color: '#79150096' id: CheckerNWSE decals: - 1811: -9,-16 - 1812: -8,-16 - 1813: -7,-16 - 1814: -6,-16 + 1791: -9,-16 + 1792: -8,-16 + 1793: -7,-16 + 1794: -6,-16 - node: color: '#A4610696' id: CheckerNWSE decals: - 623: 48,16 - 624: 47,16 - 625: 47,17 - 626: 47,18 - 627: 48,18 - 628: 48,17 - 629: 49,16 - 630: 49,17 - 631: 49,18 - 632: 50,18 - 633: 50,17 - 634: 51,18 - 635: 51,17 - 819: 50,16 - 820: 51,16 + 604: 48,16 + 605: 47,16 + 606: 47,17 + 607: 47,18 + 608: 48,18 + 609: 48,17 + 610: 49,16 + 611: 49,17 + 612: 49,18 + 613: 50,18 + 614: 50,17 + 615: 51,18 + 616: 51,17 + 800: 50,16 + 801: 51,16 - node: color: '#D381C93E' id: CheckerNWSE decals: - 389: -45,2 - 390: -45,3 - 391: -44,3 - 392: -44,2 - 393: -43,2 - 394: -43,3 - 395: -42,3 - 396: -42,2 - 397: -42,4 - 398: -43,4 - 399: -44,4 - 400: -45,4 - 401: -45,5 - 402: -44,5 - 403: -43,5 - 404: -42,5 + 388: -45,2 + 389: -45,3 + 390: -44,3 + 391: -44,2 + 392: -43,2 + 393: -43,3 + 394: -42,3 + 395: -42,2 + 396: -42,4 + 397: -43,4 + 398: -44,4 + 399: -45,4 + 400: -45,5 + 401: -44,5 + 402: -43,5 + 403: -42,5 - node: color: '#D381C996' id: CheckerNWSE decals: - 407: -54,8 - 408: -55,8 - 409: -56,8 - 410: -57,8 - 411: -57,9 - 412: -56,9 - 413: -55,9 - 414: -54,9 - 415: -54,10 - 416: -55,10 - 417: -56,10 - 418: -57,10 - 419: -57,11 - 420: -56,11 - 421: -55,11 - 422: -54,11 - 423: -54,12 - 424: -55,12 - 425: -56,12 - 426: -57,12 - 427: -57,13 - 428: -56,13 - 429: -55,13 - 430: -54,13 + 406: -54,8 + 407: -55,8 + 408: -56,8 + 409: -57,8 + 410: -57,9 + 411: -56,9 + 412: -55,9 + 413: -54,9 + 414: -54,10 + 415: -55,10 + 416: -56,10 + 417: -57,10 + 418: -57,11 + 419: -56,11 + 420: -55,11 + 421: -54,11 + 422: -54,12 + 423: -55,12 + 424: -56,12 + 425: -57,12 + 426: -57,13 + 427: -56,13 + 428: -55,13 + 429: -54,13 - node: color: '#D4D4D406' id: CheckerNWSE decals: - 2567: -33,-4 - 2568: -33,-3 - 2569: -34,-3 - 2570: -35,-3 - 2571: -35,-4 - 2572: -34,-4 - 2573: -35,-5 - 2574: -34,-5 - 2575: -33,-5 + 2547: -33,-4 + 2548: -33,-3 + 2549: -34,-3 + 2550: -35,-3 + 2551: -35,-4 + 2552: -34,-4 + 2553: -35,-5 + 2554: -34,-5 + 2555: -33,-5 - node: color: '#D4D4D428' id: CheckerNWSE @@ -2137,133 +2137,133 @@ entities: 189: 10,14 190: 11,14 191: 12,14 - 434: 14,-14 - 435: 14,-13 - 436: 14,-12 - 1199: 1,-55 - 1200: 0,-55 - 1201: -1,-55 - 1202: -1,-56 - 1203: 0,-56 - 1204: 1,-56 - 1205: 1,-57 - 1206: 0,-57 - 1207: -1,-57 - 1208: 0,-58 - 1209: 0,-54 + 433: 14,-14 + 434: 14,-13 + 435: 14,-12 + 1180: 1,-55 + 1181: 0,-55 + 1182: -1,-55 + 1183: -1,-56 + 1184: 0,-56 + 1185: 1,-56 + 1186: 1,-57 + 1187: 0,-57 + 1188: -1,-57 + 1189: 0,-58 + 1190: 0,-54 - node: color: '#D4D4D44A' id: CheckerNWSE decals: - 1022: 26,-35 + 1003: 26,-35 - node: color: '#D4D4D496' id: CheckerNWSE decals: - 1336: 26,-35 - 1337: 25,-35 + 1317: 26,-35 + 1318: 25,-35 - node: color: '#DE3A3A96' id: CheckerNWSE decals: - 1986: -16,30 - 1987: -17,30 + 1966: -16,30 + 1967: -17,30 - node: color: '#EFB34196' id: CheckerNWSE decals: - 491: 10,17 - 492: 9,17 - 493: 8,17 - 494: 8,18 - 495: 9,18 - 496: 10,18 - 497: 10,19 - 498: 9,19 - 499: 8,19 - 500: 8,20 - 501: 8,21 - 502: 9,21 - 503: 9,20 - 504: 10,20 - 505: 10,21 + 490: 10,17 + 491: 9,17 + 492: 8,17 + 493: 8,18 + 494: 9,18 + 495: 10,18 + 496: 10,19 + 497: 9,19 + 498: 8,19 + 499: 8,20 + 500: 8,21 + 501: 9,21 + 502: 9,20 + 503: 10,20 + 504: 10,21 - node: color: '#FFEF9292' id: CheckerNWSE decals: - 2979: 44,-28 - 2980: 44,-29 - 2981: 44,-30 - 2982: 44,-31 - 2983: 44,-32 - 2984: 44,-33 - 2985: 44,-34 + 2959: 44,-28 + 2960: 44,-29 + 2961: 44,-30 + 2962: 44,-31 + 2963: 44,-32 + 2964: 44,-33 + 2965: 44,-34 - node: cleanable: True color: '#00000069' id: Damaged decals: - 2946: -58,26 - 2947: -59,26 - 2948: -60,27 + 2926: -58,26 + 2927: -59,26 + 2928: -60,27 - node: angle: 1.5707963267948966 rad color: '#79150096' id: Delivery decals: - 2943: -7,-47 + 2923: -7,-47 - node: color: '#DE3A3A96' id: Delivery decals: - 3114: -32,-20 + 3094: -32,-20 - node: color: '#FFFFFFFF' id: Delivery decals: 166: 7,-26 - 469: -25,35 - 470: -25,36 - 471: -26,36 - 472: -26,35 - 1458: 51,10 - 1459: 51,8 - 1463: 51,12 - 1659: -46,17 - 1729: 41,19 - 1730: 40,19 - 1731: 39,19 - 1944: -21,26 - 1945: -23,26 - 2113: -41,-5 - 2733: 41,-35 - 3112: 42,6 - 3113: -18,26 - 3261: 0,30 - 3272: 23,3 - 3285: 38,1 - 3553: -21,43 - 3562: -17,47 - 3563: -18,48 - 3564: -16,48 + 468: -25,35 + 469: -25,36 + 470: -26,36 + 471: -26,35 + 1439: 51,10 + 1440: 51,8 + 1444: 51,12 + 1640: -46,17 + 1710: 41,19 + 1711: 40,19 + 1712: 39,19 + 1924: -21,26 + 1925: -23,26 + 2093: -41,-5 + 2713: 41,-35 + 3092: 42,6 + 3093: -18,26 + 3241: 0,30 + 3252: 23,3 + 3265: 38,1 + 3533: -21,43 + 3542: -17,47 + 3543: -18,48 + 3544: -16,48 - node: color: '#D381C941' id: DeliveryGreyscale decals: - 3534: -53,0 - 3535: -56,0 + 3514: -53,0 + 3515: -56,0 - node: color: '#D381C996' id: DeliveryGreyscale decals: - 1354: -56,1 + 1335: -56,1 - node: cleanable: True color: '#FFFFFFFF' id: DeliveryGreyscale decals: - 3432: -61,17 - 3433: -70,17 + 3412: -61,17 + 3413: -70,17 - node: cleanable: True color: '#FFFFFFFF' @@ -2279,156 +2279,156 @@ entities: 69: 18,-51 70: 17,-51 71: 17,-51 - 2613: -45,-32 - 2614: -46,-32 - 2615: -46,-33 - 2616: -47,-33 - 2617: -46,-34 - 2618: -48,-32 - 2619: -49,-31 - 2620: -46,-30 - 2621: -49,-33 - 2622: -49,-32 - 2623: -48,-33 - 2624: -50,-32 - 2625: -50,-31 - 2626: -47,-32 - 2627: -48,-31 - 2628: -47,-34 - 2629: -47,-35 - 2630: -46,-35 - 2631: -45,-34 - 2632: -44,-34 - 2633: -44,-32 - 2634: -46,-31 - 2635: -49,-30 - 2636: -52,-30 - 2637: -52,-33 - 2638: -45,-29 - 2639: -31,-31 - 2640: -31,-32 - 2641: -29,-32 - 2642: -32,-32 - 2643: -35,-32 - 2644: -34,-32 - 2645: -39,-32 - 2646: -40,-31 - 2647: -34,-31 - 2648: -20,-35 - 2649: -11,-45 - 2650: -11,-44 - 2651: -13,-45 - 2652: -14,-45 - 2659: 53,-7 - 2660: 53,-9 - 2661: 53,-10 - 2662: 53,-11 - 2663: 54,-11 - 2664: 55,-12 - 2665: 55,-15 - 2666: 50,-6 - 2667: 47,-5 - 2668: 33,-5 - 2669: 33,-6 - 2670: 31,-7 - 2671: 29,-8 - 2672: 33,-3 - 2673: 30,-10 - 2674: 31,-2 - 2675: 30,-1 - 2676: 32,1 - 2677: 31,2 - 2678: 57,-25 - 2679: 59,-42 - 2680: 58,-43 - 2681: 56,-43 - 2682: 47,-43 - 2683: 45,-41 - 2684: 25,-41 - 2685: 28,-40 - 2686: 31,-40 - 2687: 30,-40 - 2688: 25,-40 - 2700: 36,20 - 2701: 37,20 - 2702: 35,21 - 2703: 32,20 - 2704: 30,20 - 2705: 27,21 - 2706: 31,17 - 2707: 32,11 - 2708: 29,12 - 2717: -31,-35 - 2718: -33,-36 - 2719: -30,-35 - 2720: -17,-38 - 2721: -17,-37 - 2722: -18,-35 - 2723: -13,-46 - 2724: -12,-47 - 2725: -8,-50 - 2726: -8,-52 - 2727: -15,-49 - 2790: 13,-46 - 2791: 14,-47 - 2792: 15,-45 - 2793: 17,-44 - 2794: 19,-47 - 2795: 11,-46 - 2796: 10,-47 - 2797: 10,-49 - 2798: 13,-40 - 2799: 12,-40 - 2800: 11,-41 - 2801: 5,-51 - 2935: 5,-43 - 2936: 6,-43 - 2937: -3,-43 - 2938: -6,-41 - 2939: -13,-40 - 2940: -12,-41 - 2941: -12,-42 - 2942: -14,-41 - 2952: 41,-50 - 2953: 42,-52 - 2954: 41,-49 - 2955: 38,-52 - 2956: 22,-49 - 3121: -59,44 - 3122: -59,45 - 3123: -60,46 - 3124: -58,47 - 3125: -57,44 - 3126: -58,43 - 3127: -59,40 - 3128: -60,41 - 3129: -60,42 - 3130: -61,43 - 3131: -61,44 - 3132: -62,45 - 3133: -62,47 - 3134: -63,47 - 3135: -61,48 - 3136: -61,49 - 3137: -62,50 - 3138: -62,51 - 3139: -58,52 - 3140: -58,51 - 3141: -59,51 - 3142: -59,50 - 3143: -58,49 - 3144: -53,46 - 3145: -56,46 - 3146: -58,37 - 3147: -59,37 - 3148: -60,39 - 3149: -59,36 - 3428: 40,-48 - 3429: 41,-45 - 3430: 40,-44 - 3431: 43,-46 - 3434: -23,-33 - 3435: -24,-33 + 2593: -45,-32 + 2594: -46,-32 + 2595: -46,-33 + 2596: -47,-33 + 2597: -46,-34 + 2598: -48,-32 + 2599: -49,-31 + 2600: -46,-30 + 2601: -49,-33 + 2602: -49,-32 + 2603: -48,-33 + 2604: -50,-32 + 2605: -50,-31 + 2606: -47,-32 + 2607: -48,-31 + 2608: -47,-34 + 2609: -47,-35 + 2610: -46,-35 + 2611: -45,-34 + 2612: -44,-34 + 2613: -44,-32 + 2614: -46,-31 + 2615: -49,-30 + 2616: -52,-30 + 2617: -52,-33 + 2618: -45,-29 + 2619: -31,-31 + 2620: -31,-32 + 2621: -29,-32 + 2622: -32,-32 + 2623: -35,-32 + 2624: -34,-32 + 2625: -39,-32 + 2626: -40,-31 + 2627: -34,-31 + 2628: -20,-35 + 2629: -11,-45 + 2630: -11,-44 + 2631: -13,-45 + 2632: -14,-45 + 2639: 53,-7 + 2640: 53,-9 + 2641: 53,-10 + 2642: 53,-11 + 2643: 54,-11 + 2644: 55,-12 + 2645: 55,-15 + 2646: 50,-6 + 2647: 47,-5 + 2648: 33,-5 + 2649: 33,-6 + 2650: 31,-7 + 2651: 29,-8 + 2652: 33,-3 + 2653: 30,-10 + 2654: 31,-2 + 2655: 30,-1 + 2656: 32,1 + 2657: 31,2 + 2658: 57,-25 + 2659: 59,-42 + 2660: 58,-43 + 2661: 56,-43 + 2662: 47,-43 + 2663: 45,-41 + 2664: 25,-41 + 2665: 28,-40 + 2666: 31,-40 + 2667: 30,-40 + 2668: 25,-40 + 2680: 36,20 + 2681: 37,20 + 2682: 35,21 + 2683: 32,20 + 2684: 30,20 + 2685: 27,21 + 2686: 31,17 + 2687: 32,11 + 2688: 29,12 + 2697: -31,-35 + 2698: -33,-36 + 2699: -30,-35 + 2700: -17,-38 + 2701: -17,-37 + 2702: -18,-35 + 2703: -13,-46 + 2704: -12,-47 + 2705: -8,-50 + 2706: -8,-52 + 2707: -15,-49 + 2770: 13,-46 + 2771: 14,-47 + 2772: 15,-45 + 2773: 17,-44 + 2774: 19,-47 + 2775: 11,-46 + 2776: 10,-47 + 2777: 10,-49 + 2778: 13,-40 + 2779: 12,-40 + 2780: 11,-41 + 2781: 5,-51 + 2915: 5,-43 + 2916: 6,-43 + 2917: -3,-43 + 2918: -6,-41 + 2919: -13,-40 + 2920: -12,-41 + 2921: -12,-42 + 2922: -14,-41 + 2932: 41,-50 + 2933: 42,-52 + 2934: 41,-49 + 2935: 38,-52 + 2936: 22,-49 + 3101: -59,44 + 3102: -59,45 + 3103: -60,46 + 3104: -58,47 + 3105: -57,44 + 3106: -58,43 + 3107: -59,40 + 3108: -60,41 + 3109: -60,42 + 3110: -61,43 + 3111: -61,44 + 3112: -62,45 + 3113: -62,47 + 3114: -63,47 + 3115: -61,48 + 3116: -61,49 + 3117: -62,50 + 3118: -62,51 + 3119: -58,52 + 3120: -58,51 + 3121: -59,51 + 3122: -59,50 + 3123: -58,49 + 3124: -53,46 + 3125: -56,46 + 3126: -58,37 + 3127: -59,37 + 3128: -60,39 + 3129: -59,36 + 3408: 40,-48 + 3409: 41,-45 + 3410: 40,-44 + 3411: 43,-46 + 3414: -23,-33 + 3415: -24,-33 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' @@ -2445,8 +2445,8 @@ entities: color: '#FFFFFFFF' id: DirtHeavy decals: - 3286: 37,-2 - 3287: 37,2 + 3266: 37,-2 + 3267: 37,2 - node: cleanable: True color: '#FFFFFFFF' @@ -2457,46 +2457,46 @@ entities: 104: 13,11 151: -51,-30 167: -39,-14 - 559: -59,19 - 560: -60,22 - 561: -60,23 - 686: 51,0 - 687: 50,0 - 688: 49,-1 - 689: 49,3 - 943: -5,-25 - 944: -4,-25 - 1769: -39,9 - 1789: -10,-15 - 1820: -7,-16 - 2390: -1,13 - 2466: 52,-38 - 2467: 52,-38 - 2579: 53,-22 - 2580: 53,-23 - 2586: -46,-30 - 2587: -45,-30 - 2588: -45,-32 - 2589: -46,-33 - 2590: -46,-33 - 2591: -50,-33 - 2592: -48,-32 - 2709: 30,12 - 2710: 27,11 - 2711: 30,18 - 2712: 29,21 - 2884: -63,-10 - 2949: -59,26 - 2950: -60,26 - 3106: 45,9 - 3332: 43,2 - 3333: 45,0 - 3334: 45,-1 - 3335: 48,4 - 3382: 40,-2 - 3536: -59,20 - 3537: -59,22 - 3538: -59,22 + 540: -59,19 + 541: -60,22 + 542: -60,23 + 667: 51,0 + 668: 50,0 + 669: 49,-1 + 670: 49,3 + 924: -5,-25 + 925: -4,-25 + 1750: -39,9 + 1769: -10,-15 + 1800: -7,-16 + 2370: -1,13 + 2446: 52,-38 + 2447: 52,-38 + 2559: 53,-22 + 2560: 53,-23 + 2566: -46,-30 + 2567: -45,-30 + 2568: -45,-32 + 2569: -46,-33 + 2570: -46,-33 + 2571: -50,-33 + 2572: -48,-32 + 2689: 30,12 + 2690: 27,11 + 2691: 30,18 + 2692: 29,21 + 2864: -63,-10 + 2929: -59,26 + 2930: -60,26 + 3086: 45,9 + 3312: 43,2 + 3313: 45,0 + 3314: 45,-1 + 3315: 48,4 + 3362: 40,-2 + 3516: -59,20 + 3517: -59,22 + 3518: -59,22 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' @@ -2520,24 +2520,24 @@ entities: 354: -24,-15 355: -23,-12 356: -32,-11 - 616: -38,8 - 617: -38,6 - 618: -38,5 - 619: -37,8 - 620: -34,9 - 621: -33,8 - 622: -39,12 - 968: -30,-20 - 969: -21,-19 - 970: -33,-20 - 971: -33,-17 - 972: -32,-20 - 3293: 37,1 - 3294: 37,-1 - 3295: 38,0 - 3296: 36,0 - 3297: 36,-1 - 3298: 40,0 + 597: -38,8 + 598: -38,6 + 599: -38,5 + 600: -37,8 + 601: -34,9 + 602: -33,8 + 603: -39,12 + 949: -30,-20 + 950: -21,-19 + 951: -33,-20 + 952: -33,-17 + 953: -32,-20 + 3273: 37,1 + 3274: 37,-1 + 3275: 38,0 + 3276: 36,0 + 3277: 36,-1 + 3278: 40,0 - node: cleanable: True color: '#FFFFFFFF' @@ -2590,266 +2590,266 @@ entities: 171: -38,-14 172: -38,-18 173: -39,-19 - 432: 11,-21 - 433: 12,-21 - 443: 15,-14 - 444: 15,-15 - 445: 15,-12 - 446: 15,-11 - 447: 16,-9 - 448: 17,-2 - 449: 17,0 - 450: 17,1 - 451: 16,2 - 452: 16,-5 - 482: -26,31 - 483: -27,30 - 484: -23,31 - 485: -23,29 - 486: -21,29 - 487: -18,29 - 488: -22,27 - 489: -24,30 - 490: -29,31 - 552: -16,12 - 553: -16,23 - 554: -23,24 - 555: -39,24 - 556: -42,22 - 557: -43,21 - 558: -56,16 - 564: -58,20 - 565: -59,18 - 566: -60,17 - 567: -59,25 - 568: -60,24 - 569: -56,24 - 570: -57,20 - 693: 47,-1 - 694: 48,-2 - 695: 49,-2 - 696: 51,1 - 697: 50,1 - 698: 51,2 - 699: 48,2 - 700: 47,0 - 701: 44,4 - 702: 49,4 - 703: 43,5 - 704: 43,6 - 705: 55,12 - 706: 54,11 - 707: 53,11 - 708: 55,13 - 709: 55,9 - 710: 49,14 - 711: 50,13 - 712: 41,6 - 713: 41,5 - 714: 40,5 - 715: 37,4 - 716: 36,5 - 783: -22,25 - 784: -17,18 - 785: -37,4 - 786: -37,-11 - 787: -37,-15 - 788: -19,-20 - 789: -17,-14 - 790: -17,-7 - 791: -16,-5 - 799: -16,7 - 801: -16,4 - 802: -15,9 - 803: -16,0 - 940: -9,-25 - 941: -8,-25 - 942: -8,-25 - 947: -4,-24 - 948: -1,-25 - 949: 7,-21 - 950: 16,-25 - 951: 16,-25 - 952: 13,-25 - 1001: 7,-20 - 1002: 8,-20 - 1003: 9,-20 - 1004: 9,-21 - 1005: 10,-23 - 1006: 12,-23 - 1007: -6,-23 - 1008: -25,-23 - 1009: -34,-23 - 1010: -37,-24 - 1183: -10,-55 - 1184: -14,-56 - 1185: -19,-55 - 1186: -7,-54 - 1187: -2,-54 - 1188: -3,-57 - 1189: 2,-59 - 1190: -3,-64 - 1191: 0,-61 - 1192: -3,-66 - 1193: -3,-71 - 1194: -1,-73 - 1195: 2,-71 - 1196: 1,-55 - 1197: -1,-47 - 1198: 0,-45 - 1267: 20,24 - 1268: 15,25 - 1269: 16,27 - 1270: 34,23 - 1271: 38,24 - 1272: 44,26 - 1273: 45,25 - 1274: 52,25 - 1275: 53,26 - 1276: 52,21 - 1277: 44,21 - 1278: 41,20 - 1279: 52,14 - 1280: 48,18 - 1281: 49,16 - 1282: 45,7 - 1283: 20,8 - 1284: 32,7 - 1285: 34,8 - 1286: 16,8 - 1287: 5,8 - 1288: -7,9 - 1289: -8,8 - 1328: 7,-22 - 1329: 5,-23 - 1330: 4,-23 - 1331: 7,-24 - 1332: 23,-23 - 1333: 18,-28 - 1334: 21,-35 - 1335: 19,-34 - 1770: -38,9 - 1771: -39,8 - 1772: -39,7 - 1773: -35,8 - 1774: -39,-1 - 1791: -10,-16 - 1792: -10,-14 - 1793: -11,-14 - 1794: -10,-13 - 1795: -11,-13 - 1796: -8,-12 - 1797: -8,-14 - 1798: -9,-13 - 1799: -10,-13 - 1800: -11,-17 - 1801: -11,-18 - 1817: -9,-16 - 1818: -8,-16 - 1819: -8,-16 - 2143: -39,-12 - 2144: -39,-8 - 2145: -40,-7 - 2146: -39,-8 - 2148: -39,-9 - 2149: -39,-3 - 2150: -39,3 - 2394: 1,13 - 2395: 0,14 - 2396: 0,15 - 2397: 0,15 - 2398: 1,15 - 2399: 3,14 - 2400: 5,15 - 2401: 7,13 - 2402: 9,14 - 2403: 11,12 - 2404: 11,14 - 2405: 5,17 - 2406: 4,17 - 2407: 4,18 - 2408: -4,17 - 2409: -4,19 - 2410: -3,20 - 2411: -2,17 - 2448: 3,19 - 2449: 4,20 - 2451: -4,21 - 2452: -3,22 - 2453: -3,24 - 2454: -2,21 - 2455: -2,20 - 2456: -3,23 - 2457: -5,28 - 2458: -5,27 - 2459: -11,28 - 2460: -12,29 - 2461: -13,30 - 2462: -13,31 - 2463: -12,32 - 2464: -22,31 - 2465: -30,30 - 2468: 51,-38 - 2469: 51,-38 - 2478: 49,-39 - 2600: -52,-35 - 2601: -52,-35 - 2602: -52,-32 - 2603: -49,-31 - 2604: -49,-31 - 2605: -48,-32 - 2606: -48,-32 - 2607: -45,-33 - 2608: -45,-33 - 2609: -45,-33 - 2610: -46,-32 - 2611: -46,-32 - 2612: -46,-32 - 2713: 28,21 - 2714: 31,18 - 2715: 31,12 - 2716: 27,12 - 3107: 44,9 - 3108: 46,8 - 3109: 44,10 - 3110: 45,12 - 3339: 45,3 - 3340: 46,3 - 3341: 43,3 - 3342: 42,3 - 3343: 44,2 - 3344: 45,1 - 3345: 46,-1 - 3346: 45,-2 - 3347: 46,1 - 3348: 47,2 - 3349: 48,1 - 3350: 51,4 - 3351: 48,3 - 3352: 46,2 - 3353: 40,2 - 3365: 49,6 - 3366: 48,7 - 3367: 53,6 - 3368: 45,5 - 3369: 41,8 - 3370: 40,9 - 3371: 39,8 - 3372: 41,13 - 3373: 41,15 - 3374: 40,16 - 3375: 56,7 - 3376: 41,1 - 3377: 41,0 - 3378: 42,2 - 3385: 40,-1 - 3396: 56,12 - 3397: 54,15 - 3398: 49,17 - 3399: 55,7 - 3400: 49,9 - 3401: 50,11 - 3402: 37,7 + 431: 11,-21 + 432: 12,-21 + 442: 15,-14 + 443: 15,-15 + 444: 15,-12 + 445: 15,-11 + 446: 16,-9 + 447: 17,-2 + 448: 17,0 + 449: 17,1 + 450: 16,2 + 451: 16,-5 + 481: -26,31 + 482: -27,30 + 483: -23,31 + 484: -23,29 + 485: -21,29 + 486: -18,29 + 487: -22,27 + 488: -24,30 + 489: -29,31 + 533: -16,12 + 534: -16,23 + 535: -23,24 + 536: -39,24 + 537: -42,22 + 538: -43,21 + 539: -56,16 + 545: -58,20 + 546: -59,18 + 547: -60,17 + 548: -59,25 + 549: -60,24 + 550: -56,24 + 551: -57,20 + 674: 47,-1 + 675: 48,-2 + 676: 49,-2 + 677: 51,1 + 678: 50,1 + 679: 51,2 + 680: 48,2 + 681: 47,0 + 682: 44,4 + 683: 49,4 + 684: 43,5 + 685: 43,6 + 686: 55,12 + 687: 54,11 + 688: 53,11 + 689: 55,13 + 690: 55,9 + 691: 49,14 + 692: 50,13 + 693: 41,6 + 694: 41,5 + 695: 40,5 + 696: 37,4 + 697: 36,5 + 764: -22,25 + 765: -17,18 + 766: -37,4 + 767: -37,-11 + 768: -37,-15 + 769: -19,-20 + 770: -17,-14 + 771: -17,-7 + 772: -16,-5 + 780: -16,7 + 782: -16,4 + 783: -15,9 + 784: -16,0 + 921: -9,-25 + 922: -8,-25 + 923: -8,-25 + 928: -4,-24 + 929: -1,-25 + 930: 7,-21 + 931: 16,-25 + 932: 16,-25 + 933: 13,-25 + 982: 7,-20 + 983: 8,-20 + 984: 9,-20 + 985: 9,-21 + 986: 10,-23 + 987: 12,-23 + 988: -6,-23 + 989: -25,-23 + 990: -34,-23 + 991: -37,-24 + 1164: -10,-55 + 1165: -14,-56 + 1166: -19,-55 + 1167: -7,-54 + 1168: -2,-54 + 1169: -3,-57 + 1170: 2,-59 + 1171: -3,-64 + 1172: 0,-61 + 1173: -3,-66 + 1174: -3,-71 + 1175: -1,-73 + 1176: 2,-71 + 1177: 1,-55 + 1178: -1,-47 + 1179: 0,-45 + 1248: 20,24 + 1249: 15,25 + 1250: 16,27 + 1251: 34,23 + 1252: 38,24 + 1253: 44,26 + 1254: 45,25 + 1255: 52,25 + 1256: 53,26 + 1257: 52,21 + 1258: 44,21 + 1259: 41,20 + 1260: 52,14 + 1261: 48,18 + 1262: 49,16 + 1263: 45,7 + 1264: 20,8 + 1265: 32,7 + 1266: 34,8 + 1267: 16,8 + 1268: 5,8 + 1269: -7,9 + 1270: -8,8 + 1309: 7,-22 + 1310: 5,-23 + 1311: 4,-23 + 1312: 7,-24 + 1313: 23,-23 + 1314: 18,-28 + 1315: 21,-35 + 1316: 19,-34 + 1751: -38,9 + 1752: -39,8 + 1753: -39,7 + 1754: -35,8 + 1755: -39,-1 + 1771: -10,-16 + 1772: -10,-14 + 1773: -11,-14 + 1774: -10,-13 + 1775: -11,-13 + 1776: -8,-12 + 1777: -8,-14 + 1778: -9,-13 + 1779: -10,-13 + 1780: -11,-17 + 1781: -11,-18 + 1797: -9,-16 + 1798: -8,-16 + 1799: -8,-16 + 2123: -39,-12 + 2124: -39,-8 + 2125: -40,-7 + 2126: -39,-8 + 2128: -39,-9 + 2129: -39,-3 + 2130: -39,3 + 2374: 1,13 + 2375: 0,14 + 2376: 0,15 + 2377: 0,15 + 2378: 1,15 + 2379: 3,14 + 2380: 5,15 + 2381: 7,13 + 2382: 9,14 + 2383: 11,12 + 2384: 11,14 + 2385: 5,17 + 2386: 4,17 + 2387: 4,18 + 2388: -4,17 + 2389: -4,19 + 2390: -3,20 + 2391: -2,17 + 2428: 3,19 + 2429: 4,20 + 2431: -4,21 + 2432: -3,22 + 2433: -3,24 + 2434: -2,21 + 2435: -2,20 + 2436: -3,23 + 2437: -5,28 + 2438: -5,27 + 2439: -11,28 + 2440: -12,29 + 2441: -13,30 + 2442: -13,31 + 2443: -12,32 + 2444: -22,31 + 2445: -30,30 + 2448: 51,-38 + 2449: 51,-38 + 2458: 49,-39 + 2580: -52,-35 + 2581: -52,-35 + 2582: -52,-32 + 2583: -49,-31 + 2584: -49,-31 + 2585: -48,-32 + 2586: -48,-32 + 2587: -45,-33 + 2588: -45,-33 + 2589: -45,-33 + 2590: -46,-32 + 2591: -46,-32 + 2592: -46,-32 + 2693: 28,21 + 2694: 31,18 + 2695: 31,12 + 2696: 27,12 + 3087: 44,9 + 3088: 46,8 + 3089: 44,10 + 3090: 45,12 + 3319: 45,3 + 3320: 46,3 + 3321: 43,3 + 3322: 42,3 + 3323: 44,2 + 3324: 45,1 + 3325: 46,-1 + 3326: 45,-2 + 3327: 46,1 + 3328: 47,2 + 3329: 48,1 + 3330: 51,4 + 3331: 48,3 + 3332: 46,2 + 3333: 40,2 + 3345: 49,6 + 3346: 48,7 + 3347: 53,6 + 3348: 45,5 + 3349: 41,8 + 3350: 40,9 + 3351: 39,8 + 3352: 41,13 + 3353: 41,15 + 3354: 40,16 + 3355: 56,7 + 3356: 41,1 + 3357: 41,0 + 3358: 42,2 + 3365: 40,-1 + 3376: 56,12 + 3377: 54,15 + 3378: 49,17 + 3379: 55,7 + 3380: 49,9 + 3381: 50,11 + 3382: 37,7 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' @@ -2875,15 +2875,15 @@ entities: 345: -25,-20 346: -28,-19 347: -23,-5 - 613: -38,7 - 614: -39,10 - 615: -39,11 - 967: -31,-20 - 3288: 36,-2 - 3289: 38,-2 - 3290: 36,2 - 3291: 38,2 - 3292: 37,1 + 594: -38,7 + 595: -39,10 + 596: -39,11 + 948: -31,-20 + 3268: 36,-2 + 3269: 38,-2 + 3270: 36,2 + 3271: 38,2 + 3272: 37,1 - node: cleanable: True color: '#FFFFFFFF' @@ -2902,51 +2902,51 @@ entities: 152: -50,-33 168: -39,-15 169: -39,-16 - 442: 14,-14 - 479: -23,30 - 480: -22,29 - 481: -25,31 - 562: -58,21 - 563: -59,25 - 690: 50,2 - 691: 50,4 - 692: 49,0 - 798: -16,6 - 800: -14,7 - 945: -3,-25 - 946: -6,-25 - 1327: 6,-22 - 1790: -11,-16 - 2147: -40,-8 - 2391: 0,13 - 2392: -1,14 - 2393: 1,14 - 2450: -3,21 - 2470: 52,-36 - 2471: 52,-37 - 2472: 56,-37 - 2473: 55,-38 - 2474: 47,-36 - 2475: 48,-36 - 2476: 50,-39 - 2477: 50,-39 - 2581: 53,-21 - 2582: 53,-24 - 2593: -46,-32 - 2594: -46,-34 - 2595: -45,-33 - 2596: -47,-30 - 2597: -49,-31 - 2598: -51,-33 - 2599: -52,-34 - 2885: -64,-10 - 2886: -62,-9 - 2887: -60,-12 - 3336: 49,4 - 3337: 44,3 - 3338: 40,3 - 3383: 41,-2 - 3384: 42,-2 + 441: 14,-14 + 478: -23,30 + 479: -22,29 + 480: -25,31 + 543: -58,21 + 544: -59,25 + 671: 50,2 + 672: 50,4 + 673: 49,0 + 779: -16,6 + 781: -14,7 + 926: -3,-25 + 927: -6,-25 + 1308: 6,-22 + 1770: -11,-16 + 2127: -40,-8 + 2371: 0,13 + 2372: -1,14 + 2373: 1,14 + 2430: -3,21 + 2450: 52,-36 + 2451: 52,-37 + 2452: 56,-37 + 2453: 55,-38 + 2454: 47,-36 + 2455: 48,-36 + 2456: 50,-39 + 2457: 50,-39 + 2561: 53,-21 + 2562: 53,-24 + 2573: -46,-32 + 2574: -46,-34 + 2575: -45,-33 + 2576: -47,-30 + 2577: -49,-31 + 2578: -51,-33 + 2579: -52,-34 + 2865: -64,-10 + 2866: -62,-9 + 2867: -60,-12 + 3316: 49,4 + 3317: 44,3 + 3318: 40,3 + 3363: 41,-2 + 3364: 42,-2 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' @@ -2959,80 +2959,80 @@ entities: color: '#FED83DFF' id: Donk decals: - 2576: -62.43933,-13.441491 + 2556: -62.43933,-13.441491 - node: color: '#FFFFFFFF' id: Flowersbr1 decals: 235: 34.965233,-25.985117 - 1471: 11.007317,-66.54063 + 1452: 11.007317,-66.54063 - node: color: '#FFFFFFFF' id: Flowersbr3 decals: - 1086: -0.48526984,-68.87088 - 1087: 0.23348016,-66.02713 + 1067: -0.48526984,-68.87088 + 1068: 0.23348016,-66.02713 - node: color: '#FFFFFFFF' id: Flowerspv1 decals: - 1085: 0.7647302,-68.49588 - 1473: 11.007317,-69.05625 + 1066: 0.7647302,-68.49588 + 1454: 11.007317,-69.05625 - node: color: '#FFFFFFFF' id: Flowerspv3 decals: - 514: -8.949466,34.143715 - 1031: 48.118763,22.943716 + 513: -8.949466,34.143715 + 1012: 48.118763,22.943716 - node: color: '#FFFFFFFF' id: Flowersy1 decals: 233: 33.152733,-25.953867 - 1083: 0.6866052,-66.792755 - 3527: 29.018572,-35.56262 + 1064: 0.6866052,-66.792755 + 3507: 29.018572,-35.56262 - node: color: '#FFFFFFFF' id: Flowersy2 decals: 234: 33.933983,-26.047617 - 460: 12.076155,3.7926216 - 516: -9.011966,36.081215 - 1084: -0.76651984,-68.074005 - 1472: 11.038567,-68.22813 + 459: 12.076155,3.7926216 + 515: -9.011966,36.081215 + 1065: -0.76651984,-68.074005 + 1453: 11.038567,-68.22813 - node: color: '#FFFFFFFF' id: Flowersy3 decals: - 1032: 49.540638,22.974966 - 1082: -0.48526984,-65.65213 + 1013: 49.540638,22.974966 + 1063: -0.48526984,-65.65213 - node: color: '#FFFFFFFF' id: Flowersy4 decals: - 461: 11.34178,4.3394966 - 585: -5.970551,-6.928444 - 586: -5.986176,-6.053444 - 821: 9.393604,3.3875775 - 1081: -0.26651984,-69.93338 - 3526: 29.924822,-37.81262 + 460: 11.34178,4.3394966 + 566: -5.970551,-6.928444 + 567: -5.986176,-6.053444 + 802: 9.393604,3.3875775 + 1062: -0.26651984,-69.93338 + 3506: 29.924822,-37.81262 - node: color: '#334E6DC8' id: FullTileOverlayGreyscale decals: - 590: 0,3 - 591: 1,3 - 592: 2,3 - 593: 3,3 - 594: -1,3 - 595: -2,3 - 596: -3,3 - 2928: 5,-36 - 2929: 3,-36 - 2930: 5,-37 - 2931: 3,-37 - 3452: 7,-37 - 3453: 7,-36 + 571: 0,3 + 572: 1,3 + 573: 2,3 + 574: 3,3 + 575: -1,3 + 576: -2,3 + 577: -3,3 + 2908: 5,-36 + 2909: 3,-36 + 2910: 5,-37 + 2911: 3,-37 + 3432: 7,-37 + 3433: 7,-36 - node: color: '#52B4E996' id: FullTileOverlayGreyscale @@ -3049,34 +3049,34 @@ entities: 277: 42,-21 301: 46,-10 302: 42,-24 - 3010: 33,-22 - 3036: 46,-17 - 3037: 46,-19 - 3047: 46,-18 + 2990: 33,-22 + 3016: 46,-17 + 3017: 46,-19 + 3027: 46,-18 - node: color: '#A4610696' id: FullTileOverlayGreyscale decals: - 636: 48,15 - 643: 42,6 - 644: 42,5 - 655: 44,4 - 656: 47,8 - 657: 47,7 - 3273: 37,3 - 3274: 39,-1 - 3275: 39,0 - 3276: 36,-2 - 3277: 37,-2 - 3278: 38,-2 - 3279: 38,2 - 3280: 37,2 - 3281: 36,2 - 3354: 49,5 - 3355: 48,5 - 3379: 40,-2 - 3380: 41,-2 - 3381: 42,-2 + 617: 48,15 + 624: 42,6 + 625: 42,5 + 636: 44,4 + 637: 47,8 + 638: 47,7 + 3253: 37,3 + 3254: 39,-1 + 3255: 39,0 + 3256: 36,-2 + 3257: 37,-2 + 3258: 38,-2 + 3259: 38,2 + 3260: 37,2 + 3261: 36,2 + 3334: 49,5 + 3335: 48,5 + 3359: 40,-2 + 3360: 41,-2 + 3361: 42,-2 - node: color: '#D0BF4AA7' id: FullTileOverlayGreyscale @@ -3087,34 +3087,34 @@ entities: color: '#D381C93E' id: FullTileOverlayGreyscale decals: - 388: -46,3 + 387: -46,3 - node: color: '#D381C996' id: FullTileOverlayGreyscale decals: - 608: -39,10 + 589: -39,10 - node: color: '#D4D4D406' id: FullTileOverlayGreyscale decals: - 2544: 41,-10 - 2545: 40,-10 - 2546: 39,-10 - 2547: 38,-10 - 2548: 37,-10 - 2549: 36,-10 - 2550: 36,-9 - 2551: 36,-8 - 2552: 36,-7 - 2553: 36,-6 - 2554: 38,-9 - 2555: 38,-8 - 2556: 38,-7 - 2557: 38,-6 - 2558: 40,-9 - 2559: 40,-8 - 2560: 40,-7 - 2561: 40,-6 + 2524: 41,-10 + 2525: 40,-10 + 2526: 39,-10 + 2527: 38,-10 + 2528: 37,-10 + 2529: 36,-10 + 2530: 36,-9 + 2531: 36,-8 + 2532: 36,-7 + 2533: 36,-6 + 2534: 38,-9 + 2535: 38,-8 + 2536: 38,-7 + 2537: 38,-6 + 2538: 40,-9 + 2539: 40,-8 + 2540: 40,-7 + 2541: 40,-6 - node: color: '#DE3A3A96' id: FullTileOverlayGreyscale @@ -3134,38 +3134,38 @@ entities: color: '#EFCC4196' id: FullTileOverlayGreyscale decals: - 2368: -2,14 - 2369: 2,14 - 2370: 1,13 - 2371: 0,13 - 2372: -1,13 - 2373: -1,14 - 2374: 0,14 - 2375: 1,14 - 2376: 1,15 - 2377: 0,15 - 2378: -1,15 - 2379: 0,12 + 2348: -2,14 + 2349: 2,14 + 2350: 1,13 + 2351: 0,13 + 2352: -1,13 + 2353: -1,14 + 2354: 0,14 + 2355: 1,14 + 2356: 1,15 + 2357: 0,15 + 2358: -1,15 + 2359: 0,12 - node: color: '#EFD54193' id: FullTileOverlayGreyscale decals: - 3488: 8,14 - 3489: 5,16 - 3509: -14,28 + 3468: 8,14 + 3469: 5,16 + 3489: -14,28 - node: color: '#EFD84196' id: FullTileOverlayGreyscale decals: - 1997: -19,30 - 1998: -18,30 - 1999: -15,30 + 1977: -19,30 + 1978: -18,30 + 1979: -15,30 - node: cleanable: True color: '#169C9CFF' id: Gene decals: - 2578: 53.01786,-22.012398 + 2558: 53.01786,-22.012398 - node: color: '#FFFFFFFF' id: Grassb1 @@ -3176,90 +3176,90 @@ entities: id: Grassb2 decals: 232: 33.699608,-25.985117 - 519: -8.918216,34.34684 - 1064: -5.121248,-69.02713 + 518: -8.918216,34.34684 + 1045: -5.121248,-69.02713 - node: color: '#FFFFFFFF' id: Grassb3 decals: - 1063: 5.175627,-68.99588 + 1044: 5.175627,-68.99588 - node: color: '#FFFFFFFF' id: Grassb4 decals: - 587: -5.939301,-7.022194 - 1066: 5.144377,-65.90213 + 568: -5.939301,-7.022194 + 1047: 5.144377,-65.90213 - node: color: '#FFFFFFFF' id: Grassb5 decals: 231: 32.824608,-26.016367 - 1065: -5.105623,-65.949005 + 1046: -5.105623,-65.949005 - node: color: '#FFFFFFFF' id: Grassd1 decals: - 459: 11.06053,2.6519966 - 1079: -0.84464484,-69.58963 - 3520: 29.893572,-37.234493 - 3523: 29.924822,-35.203243 + 458: 11.06053,2.6519966 + 1060: -0.84464484,-69.58963 + 3500: 29.893572,-37.234493 + 3503: 29.924822,-35.203243 - node: color: '#FFFFFFFF' id: Grassd2 decals: 229: 35.121483,-26.016367 - 458: 10.02928,3.2613716 - 1029: 50,29 - 1030: 48,23 - 1075: 0.9053552,-65.02713 - 1080: 0.8272302,-69.83963 - 1467: 10.976067,-66.05625 - 3521: 29.002947,-37.109493 + 457: 10.02928,3.2613716 + 1010: 50,29 + 1011: 48,23 + 1056: 0.9053552,-65.02713 + 1061: 0.8272302,-69.83963 + 1448: 10.976067,-66.05625 + 3501: 29.002947,-37.109493 - node: color: '#FFFFFFFF' id: Grassd3 decals: - 457: 11.107405,3.8082466 - 1076: -0.92276984,-64.99588 - 3522: 29.018572,-35.15637 + 456: 11.107405,3.8082466 + 1057: -0.92276984,-64.99588 + 3502: 29.018572,-35.15637 - node: color: '#FFFFFFFF' id: Grasse1 decals: 228: 34.449608,-26.000742 - 455: 10.37303,4.2613716 - 456: 11.919905,3.4176216 - 1077: 0.48348016,-65.511505 - 1078: -0.71964484,-67.042755 - 1466: 11.054192,-66.97813 - 1681: -46.974236,5.0132127 + 454: 10.37303,4.2613716 + 455: 11.919905,3.4176216 + 1058: 0.48348016,-65.511505 + 1059: -0.71964484,-67.042755 + 1447: 11.054192,-66.97813 + 1662: -46.974236,5.0132127 - node: color: '#FFFFFFFF' id: Grasse2 decals: 227: 33.683983,-26.016367 - 453: 9.31053,4.0426216 - 454: 11.357405,4.8394966 - 515: -8.980716,36.081215 - 1025: 49,23 - 1026: 49,29 - 1465: 11.007317,-67.97813 - 1680: -47.98986,4.9819627 - 3519: 29.065447,-38.00012 - 3524: 29.049822,-36.15637 + 452: 9.31053,4.0426216 + 453: 11.357405,4.8394966 + 514: -8.980716,36.081215 + 1006: 49,23 + 1007: 49,29 + 1446: 11.007317,-67.97813 + 1661: -47.98986,4.9819627 + 3499: 29.065447,-38.00012 + 3504: 29.049822,-36.15637 - node: color: '#FFFFFFFF' id: Grasse3 decals: 226: 32.949608,-25.985117 - 512: -9.011966,34.12809 - 583: -6.001801,-6.928444 - 584: -6.017426,-6.131569 - 1027: 50,23 - 1028: 48,29 - 1464: 10.976067,-68.97813 - 3518: 29.846697,-37.93762 - 3525: 29.909197,-36.18762 + 511: -9.011966,34.12809 + 564: -6.001801,-6.928444 + 565: -6.017426,-6.131569 + 1008: 50,23 + 1009: 48,29 + 1445: 10.976067,-68.97813 + 3498: 29.846697,-37.93762 + 3505: 29.909197,-36.18762 - node: color: '#52B4E996' id: HalfTileOverlayGreyscale @@ -3270,8 +3270,8 @@ entities: 291: 33,-17 292: 34,-17 293: 35,-17 - 3048: 47,-17 - 3049: 48,-17 + 3028: 47,-17 + 3029: 48,-17 - node: color: '#9FED5896' id: HalfTileOverlayGreyscale @@ -3285,15 +3285,15 @@ entities: color: '#A4610696' id: HalfTileOverlayGreyscale decals: - 682: 47,14 - 683: 48,14 - 684: 49,14 - 3103: 45,9 - 3104: 44,9 - 3387: 56,15 - 3388: 55,15 - 3389: 54,15 - 3390: 53,15 + 663: 47,14 + 664: 48,14 + 665: 49,14 + 3083: 45,9 + 3084: 44,9 + 3367: 56,15 + 3368: 55,15 + 3369: 54,15 + 3370: 53,15 - node: color: '#D0BF4AA7' id: HalfTileOverlayGreyscale @@ -3305,16 +3305,16 @@ entities: color: '#D381C996' id: HalfTileOverlayGreyscale decals: - 376: -42,14 - 377: -41,14 - 378: -40,14 - 379: -39,14 - 380: -38,14 - 609: -34,9 - 610: -33,9 - 611: -32,9 - 1775: -43,0 - 1776: -42,0 + 375: -42,14 + 376: -41,14 + 377: -40,14 + 378: -39,14 + 379: -38,14 + 590: -34,9 + 591: -33,9 + 592: -32,9 + 1756: -43,0 + 1757: -42,0 - node: color: '#DE3A3A96' id: HalfTileOverlayGreyscale @@ -3332,21 +3332,21 @@ entities: color: '#EFCC4196' id: HalfTileOverlayGreyscale decals: - 2274: 8,32 - 2275: 7,32 - 2276: 6,32 - 2277: 5,32 - 2278: 4,32 - 2339: 5,21 - 2340: 4,21 - 2341: 3,21 - 2342: 2,21 - 2343: 1,21 - 2344: 0,21 - 2345: -1,21 - 2346: -2,21 - 2366: 6,15 - 2367: 4,15 + 2254: 8,32 + 2255: 7,32 + 2256: 6,32 + 2257: 5,32 + 2258: 4,32 + 2319: 5,21 + 2320: 4,21 + 2321: 3,21 + 2322: 2,21 + 2323: 1,21 + 2324: 0,21 + 2325: -1,21 + 2326: -2,21 + 2346: 6,15 + 2347: 4,15 - node: color: '#52B4E996' id: HalfTileOverlayGreyscale180 @@ -3354,9 +3354,9 @@ entities: 5: 49,-24 6: 48,-24 7: 47,-24 - 3008: 34,-21 - 3009: 33,-21 - 3462: 50,-24 + 2988: 34,-21 + 2989: 33,-21 + 3442: 50,-24 - node: color: '#9FED5896' id: HalfTileOverlayGreyscale180 @@ -3368,9 +3368,9 @@ entities: color: '#A4610696' id: HalfTileOverlayGreyscale180 decals: - 649: 44,5 - 650: 45,5 - 662: 47,12 + 630: 44,5 + 631: 45,5 + 643: 47,12 - node: color: '#D0BF4AA7' id: HalfTileOverlayGreyscale180 @@ -3382,16 +3382,16 @@ entities: color: '#D381C93E' id: HalfTileOverlayGreyscale180 decals: - 405: -36,2 + 404: -36,2 - node: color: '#D381C996' id: HalfTileOverlayGreyscale180 decals: - 372: -38,11 - 373: -42,13 - 374: -41,13 - 375: -40,13 - 2137: -42,-11 + 371: -38,11 + 372: -42,13 + 373: -41,13 + 374: -40,13 + 2117: -42,-11 - node: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 @@ -3409,27 +3409,27 @@ entities: color: '#EFCC4196' id: HalfTileOverlayGreyscale180 decals: - 2279: 8,23 - 2280: 7,23 - 2281: 6,23 - 2282: 5,23 - 2283: 4,23 - 2331: 4,17 - 2332: 3,17 - 2333: 1,17 - 2334: 2,17 - 2335: 0,17 - 2336: -1,17 - 2337: -2,17 - 2338: -3,17 - 2363: 5,13 - 2364: 4,13 + 2259: 8,23 + 2260: 7,23 + 2261: 6,23 + 2262: 5,23 + 2263: 4,23 + 2311: 4,17 + 2312: 3,17 + 2313: 1,17 + 2314: 2,17 + 2315: 0,17 + 2316: -1,17 + 2317: -2,17 + 2318: -3,17 + 2343: 5,13 + 2344: 4,13 - node: color: '#334E6DC8' id: HalfTileOverlayGreyscale270 decals: - 598: -4,1 - 599: -3,2 + 579: -4,1 + 580: -3,2 - node: color: '#52B4E996' id: HalfTileOverlayGreyscale270 @@ -3445,8 +3445,8 @@ entities: 288: 43,-13 289: 43,-14 290: 43,-15 - 3004: 32,-18 - 3005: 32,-20 + 2984: 32,-18 + 2985: 32,-20 - node: color: '#9FED5896' id: HalfTileOverlayGreyscale270 @@ -3459,24 +3459,24 @@ entities: 27: 50,-28 28: 47,-27 29: 47,-26 - 2972: 43,-27 - 2973: 43,-29 - 2974: 43,-30 - 2975: 43,-31 - 2976: 43,-33 - 2977: 43,-34 + 2952: 43,-27 + 2953: 43,-29 + 2954: 43,-30 + 2955: 43,-31 + 2956: 43,-33 + 2957: 43,-34 - node: color: '#A4610696' id: HalfTileOverlayGreyscale270 decals: - 646: 43,6 - 647: 43,7 - 648: 43,8 - 658: 48,7 - 659: 48,8 - 660: 48,9 - 661: 48,10 - 3356: 48,6 + 627: 43,6 + 628: 43,7 + 629: 43,8 + 639: 48,7 + 640: 48,8 + 641: 48,9 + 642: 48,10 + 3336: 48,6 - node: color: '#D0BF4AA7' id: HalfTileOverlayGreyscale270 @@ -3496,7 +3496,7 @@ entities: color: '#D381C996' id: HalfTileOverlayGreyscale270 decals: - 381: -39,12 + 380: -39,12 - node: color: '#D4D4D428' id: HalfTileOverlayGreyscale270 @@ -3518,23 +3518,23 @@ entities: 326: -32,-8 335: -35,0 336: -35,1 - 1829: -32,-14 - 1830: -32,-7 + 1809: -32,-14 + 1810: -32,-7 - node: color: '#EFCC4196' id: HalfTileOverlayGreyscale270 decals: - 2328: -5,18 - 2329: -5,19 - 2330: -5,20 - 2353: 9,14 - 2365: 3,14 + 2308: -5,18 + 2309: -5,19 + 2310: -5,20 + 2333: 9,14 + 2345: 3,14 - node: color: '#334E6DC8' id: HalfTileOverlayGreyscale90 decals: - 597: 3,2 - 792: -15,3 + 578: 3,2 + 773: -15,3 - node: color: '#52B4E996' id: HalfTileOverlayGreyscale90 @@ -3552,8 +3552,8 @@ entities: 298: 45,-11 299: 45,-10 300: 45,-9 - 3050: 49,-18 - 3051: 49,-19 + 3030: 49,-18 + 3031: 49,-19 - node: color: '#9FED5896' id: HalfTileOverlayGreyscale90 @@ -3565,26 +3565,26 @@ entities: 45: 52,-31 46: 52,-32 47: 52,-33 - 2965: 45,-34 - 2966: 45,-32 - 2967: 45,-31 - 2968: 45,-30 - 2969: 45,-29 - 2970: 45,-28 - 2971: 45,-27 + 2945: 45,-34 + 2946: 45,-32 + 2947: 45,-31 + 2948: 45,-30 + 2949: 45,-29 + 2950: 45,-28 + 2951: 45,-27 - node: color: '#A4610696' id: HalfTileOverlayGreyscale90 decals: - 637: 41,5 - 638: 41,6 - 639: 41,7 - 640: 41,8 - 641: 41,9 - 642: 41,10 - 652: 46,6 - 653: 46,7 - 654: 46,8 + 618: 41,5 + 619: 41,6 + 620: 41,7 + 621: 41,8 + 622: 41,9 + 623: 41,10 + 633: 46,6 + 634: 46,7 + 635: 46,8 - node: color: '#D0BF4AA7' id: HalfTileOverlayGreyscale90 @@ -3598,8 +3598,8 @@ entities: color: '#D381C996' id: HalfTileOverlayGreyscale90 decals: - 370: -37,12 - 371: -37,13 + 369: -37,12 + 370: -37,13 - node: color: '#D4D4D428' id: HalfTileOverlayGreyscale90 @@ -3619,15 +3619,15 @@ entities: 320: -22,-7 340: -31,0 341: -31,1 - 1828: -22,-14 + 1808: -22,-14 - node: color: '#EFCC4196' id: HalfTileOverlayGreyscale90 decals: - 2351: 6,18 - 2352: 6,20 - 2361: 7,13 - 2362: 7,14 + 2331: 6,18 + 2332: 6,20 + 2341: 7,13 + 2342: 7,14 - node: angle: -3.141592653589793 rad color: '#FFFFFFFF' @@ -3639,286 +3639,286 @@ entities: color: '#FFFFFFFF' id: LoadingArea decals: - 664: 54,11 - 808: 43,6 + 645: 54,11 + 789: 43,6 - node: color: '#FFFFFFFF' id: LoadingArea decals: 161: 3,-26 - 612: -33,9 - 3059: -18,27 + 593: -33,9 + 3039: -18,27 - node: angle: 1.5707963267948966 rad color: '#D381C996' id: LoadingAreaGreyscale decals: - 2112: -42,-5 + 2092: -42,-5 - node: color: '#FFFFFFFF' id: MiniTileDarkCornerNe decals: - 3201: -116,21 - 3202: -116,25 + 3181: -116,21 + 3182: -116,25 - node: color: '#FFFFFFFF' id: MiniTileDarkCornerNw decals: - 3199: -108,21 - 3203: -108,25 + 3179: -108,21 + 3183: -108,25 - node: color: '#FFFFFFFF' id: MiniTileDarkCornerSe decals: - 3198: -116,30 - 3204: -116,27 + 3178: -116,30 + 3184: -116,27 - node: color: '#FFFFFFFF' id: MiniTileDarkCornerSw decals: - 3200: -108,30 - 3205: -108,27 + 3180: -108,30 + 3185: -108,27 - node: color: '#FFFFFFFF' id: MiniTileDarkLineE decals: - 3172: -116,22 - 3173: -116,23 - 3174: -116,24 - 3175: -116,26 - 3176: -116,28 - 3177: -116,29 + 3152: -116,22 + 3153: -116,23 + 3154: -116,24 + 3155: -116,26 + 3156: -116,28 + 3157: -116,29 - node: color: '#FFFFFFFF' id: MiniTileDarkLineN decals: - 3191: -109,21 - 3192: -110,21 - 3193: -111,21 - 3194: -112,21 - 3195: -113,21 - 3196: -114,21 - 3197: -115,21 + 3171: -109,21 + 3172: -110,21 + 3173: -111,21 + 3174: -112,21 + 3175: -113,21 + 3176: -114,21 + 3177: -115,21 - node: color: '#FFFFFFFF' id: MiniTileDarkLineS decals: - 3184: -109,30 - 3185: -110,30 - 3186: -111,30 - 3187: -112,30 - 3188: -113,30 - 3189: -114,30 - 3190: -115,30 + 3164: -109,30 + 3165: -110,30 + 3166: -111,30 + 3167: -112,30 + 3168: -113,30 + 3169: -114,30 + 3170: -115,30 - node: color: '#FFFFFFFF' id: MiniTileDarkLineW decals: - 1653: -41,2 - 1654: -41,3 - 1655: -41,4 - 1656: -41,5 - 3178: -108,22 - 3179: -108,23 - 3180: -108,24 - 3181: -108,26 - 3182: -108,28 - 3183: -108,29 - 3533: 35,18 + 1634: -41,2 + 1635: -41,3 + 1636: -41,4 + 1637: -41,5 + 3158: -108,22 + 3159: -108,23 + 3160: -108,24 + 3161: -108,26 + 3162: -108,28 + 3163: -108,29 + 3513: 35,18 - node: color: '#52B4E996' id: MonoOverlay decals: - 3000: 34,-20 - 3001: 33,-19 - 3002: 34,-18 + 2980: 34,-20 + 2981: 33,-19 + 2982: 34,-18 - node: color: '#80C71F95' id: MonoOverlay decals: - 1660: 47,-30 - 1661: 48,-29 - 1662: 49,-28 - 1663: 49,-30 - 1664: 47,-28 + 1641: 47,-30 + 1642: 48,-29 + 1643: 49,-28 + 1644: 49,-30 + 1645: 47,-28 - node: color: '#D4D4D40C' id: PavementCheckerAOverlay decals: - 3080: 35,-34 - 3081: 32,-33 - 3082: 31,-29 + 3060: 35,-34 + 3061: 32,-33 + 3062: 31,-29 - node: color: '#D4D4D428' id: PavementCheckerAOverlay decals: - 3069: 29,-34 - 3070: 30,-32 - 3071: 28,-34 - 3072: 28,-27 - 3073: 30,-29 - 3074: 32,-27 - 3075: 33,-28 - 3076: 33,-31 - 3077: 33,-30 - 3078: 34,-34 - 3079: 33,-33 + 3049: 29,-34 + 3050: 30,-32 + 3051: 28,-34 + 3052: 28,-27 + 3053: 30,-29 + 3054: 32,-27 + 3055: 33,-28 + 3056: 33,-31 + 3057: 33,-30 + 3058: 34,-34 + 3059: 33,-33 - node: color: '#D4D4D40C' id: PavementCheckerBOverlay decals: - 3093: 33,-34 - 3094: 28,-32 - 3095: 31,-27 - 3096: 32,-28 + 3073: 33,-34 + 3074: 28,-32 + 3075: 31,-27 + 3076: 32,-28 - node: color: '#D4D4D412' id: PavementCheckerBOverlay decals: - 3084: 30,-33 - 3085: 30,-34 - 3086: 29,-32 - 3087: 28,-33 - 3088: 30,-31 - 3089: 28,-28 - 3090: 30,-27 - 3091: 30,-28 - 3092: 31,-29 + 3064: 30,-33 + 3065: 30,-34 + 3066: 29,-32 + 3067: 28,-33 + 3068: 30,-31 + 3069: 28,-28 + 3070: 30,-27 + 3071: 30,-28 + 3072: 31,-29 - node: color: '#D4D4D428' id: PavementCheckerBOverlay decals: - 3063: 35,-30 - 3064: 32,-29 - 3065: 31,-28 - 3066: 29,-28 - 3067: 30,-30 - 3068: 29,-33 - 3083: 31,-33 + 3043: 35,-30 + 3044: 32,-29 + 3045: 31,-28 + 3046: 29,-28 + 3047: 30,-30 + 3048: 29,-33 + 3063: 31,-33 - node: cleanable: True color: '#169C9CFF' id: Prima decals: - 2882: 4.4262443,-52.031498 + 2862: 4.4262443,-52.031498 - node: color: '#334E6DC8' id: QuarterTileOverlayGreyscale decals: - 571: -1,-8 - 572: -1,-7 - 573: -1,-6 - 574: -1,-5 - 575: -1,-4 - 576: -1,-3 - 603: -3,1 - 604: -4,0 - 721: -74,18 - 722: -73,18 - 989: -1,-21 - 990: -1,-20 - 991: -1,-19 - 992: -1,-18 - 993: -1,-17 - 994: -1,-16 - 995: -1,-15 - 996: -1,-14 - 997: -1,-13 - 998: -1,-12 - 999: -1,-11 - 1000: -1,-10 + 552: -1,-8 + 553: -1,-7 + 554: -1,-6 + 555: -1,-5 + 556: -1,-4 + 557: -1,-3 + 584: -3,1 + 585: -4,0 + 702: -74,18 + 703: -73,18 + 970: -1,-21 + 971: -1,-20 + 972: -1,-19 + 973: -1,-18 + 974: -1,-17 + 975: -1,-16 + 976: -1,-15 + 977: -1,-14 + 978: -1,-13 + 979: -1,-12 + 980: -1,-11 + 981: -1,-10 - node: color: '#52B4E92E' id: QuarterTileOverlayGreyscale decals: - 1122: 4,-66 + 1103: 4,-66 - node: color: '#52B4E944' id: QuarterTileOverlayGreyscale decals: - 1177: -3,-59 - 1178: -3,-58 - 1179: -3,-57 + 1158: -3,-59 + 1159: -3,-58 + 1160: -3,-57 - node: color: '#52B4E996' id: QuarterTileOverlayGreyscale decals: 9: 51,-21 14: 47,-24 - 2999: 44,-15 - 3045: 48,-19 + 2979: 44,-15 + 3025: 48,-19 - node: color: '#79150096' id: QuarterTileOverlayGreyscale decals: - 1048: 45,26 - 1049: 48,27 - 2839: 37,26 - 2840: 36,26 - 2841: 35,26 - 2842: 34,26 - 2843: 33,26 - 2844: 32,26 - 2845: 20,26 - 2846: 21,26 - 2847: 22,26 - 2848: 23,26 - 2849: 24,26 - 2850: 25,26 - 2851: 26,26 - 2852: 27,26 - 2853: 28,26 - 2854: 29,26 - 2855: 30,26 - 2856: 31,26 - 3060: 19,26 + 1029: 45,26 + 1030: 48,27 + 2819: 37,26 + 2820: 36,26 + 2821: 35,26 + 2822: 34,26 + 2823: 33,26 + 2824: 32,26 + 2825: 20,26 + 2826: 21,26 + 2827: 22,26 + 2828: 23,26 + 2829: 24,26 + 2830: 25,26 + 2831: 26,26 + 2832: 27,26 + 2833: 28,26 + 2834: 29,26 + 2835: 30,26 + 2836: 31,26 + 3040: 19,26 - node: color: '#A4610696' id: QuarterTileOverlayGreyscale decals: - 685: 50,14 - 740: 27,9 - 741: 25,9 - 742: 26,9 - 743: 21,9 - 744: 20,9 - 745: 19,9 - 3282: 37,1 - 3283: 37,0 - 3284: 37,-1 - 3299: 51,4 - 3300: 50,4 - 3301: 49,4 - 3302: 48,4 - 3303: 48,3 - 3304: 47,3 - 3305: 46,3 - 3306: 45,3 - 3307: 44,3 - 3308: 43,3 - 3309: 42,3 - 3310: 41,3 - 3311: 40,3 + 666: 50,14 + 721: 27,9 + 722: 25,9 + 723: 26,9 + 724: 21,9 + 725: 20,9 + 726: 19,9 + 3262: 37,1 + 3263: 37,0 + 3264: 37,-1 + 3279: 51,4 + 3280: 50,4 + 3281: 49,4 + 3282: 48,4 + 3283: 48,3 + 3284: 47,3 + 3285: 46,3 + 3286: 45,3 + 3287: 44,3 + 3288: 43,3 + 3289: 42,3 + 3290: 41,3 + 3291: 40,3 - node: color: '#D381C996' id: QuarterTileOverlayGreyscale decals: - 383: -35,11 - 384: -35,12 - 385: -35,13 - 386: -35,14 - 387: -35,15 - 1736: -31,9 - 1738: -37,9 - 1739: -38,9 - 1740: -39,9 - 1741: -39,8 - 1742: -39,7 - 1743: -39,6 - 2119: -40,-4 - 2120: -39,-4 - 2121: -39,-3 - 2564: 48,-22 + 382: -35,11 + 383: -35,12 + 384: -35,13 + 385: -35,14 + 386: -35,15 + 1717: -31,9 + 1719: -37,9 + 1720: -38,9 + 1721: -39,9 + 1722: -39,8 + 1723: -39,7 + 1724: -39,6 + 2099: -40,-4 + 2100: -39,-4 + 2101: -39,-3 + 2544: 48,-22 - node: color: '#D4D4D428' id: QuarterTileOverlayGreyscale @@ -3926,215 +3926,215 @@ entities: 196: 15,-5 197: 15,-6 198: 15,-7 - 437: 15,-14 - 438: 15,-13 - 439: 15,-12 - 440: 15,-11 - 441: 15,-15 - 1231: -3,-54 - 1238: -2,-52 - 1239: -2,-51 - 1240: -2,-50 - 1241: -2,-49 - 1242: -2,-48 - 1243: -2,-47 - 1244: -2,-46 - 1290: -17,11 - 1291: -17,12 - 1292: -17,13 - 1293: -17,14 - 1294: -17,15 - 1295: -17,17 - 1296: -17,16 - 1297: -17,18 - 1298: -17,19 - 1299: -17,20 - 1300: -17,21 - 1499: 6,-22 - 1500: 6,-21 - 1501: 6,-20 - 1502: 7,-20 - 1503: 8,-20 - 1504: 9,-20 - 1505: 6,-23 - 1506: 5,-23 - 1507: 4,-23 - 1508: 3,-23 - 1529: -4,10 - 1530: -5,10 - 1531: -6,10 - 1532: -7,10 - 1533: -7,9 - 1534: -8,9 - 1535: -9,9 - 1536: -10,9 - 1537: -11,9 - 1538: -12,9 - 1564: -31,25 - 1565: -29,25 - 1566: -30,25 - 1567: -28,25 - 1568: -27,25 - 1569: -26,25 - 1570: -25,25 - 1571: -24,25 - 1596: -22,-23 - 1597: -23,-23 - 1598: -24,-23 - 1599: -25,-23 - 1600: -26,-23 - 1604: 10,-23 - 1605: 11,-23 - 1606: 12,-23 - 1607: 13,-23 - 1608: 14,-23 - 1628: 36,10 - 1629: 36,11 - 1630: 37,11 - 1631: 38,11 - 1768: 8,7 - 2232: -39,-19 - 2233: -39,-20 - 2234: -39,-21 - 2235: -39,-22 - 2236: -39,-23 - 2271: -10,-23 - 2272: -11,-23 - 2273: -12,-23 - 2484: -28,9 - 2485: -29,9 - 2486: -30,9 - 2487: -17,5 - 2488: -17,4 - 2489: -17,3 - 2490: -18,9 - 2493: -17,9 - 2752: 15,12 - 2753: 15,11 - 2754: 15,9 - 2756: 15,-22 - 2757: 15,-23 - 2760: -17,-23 - 2785: 15,23 - 2786: 15,24 - 2787: 15,25 - 2788: 15,27 - 2789: 15,28 - 2803: -1,-41 - 2804: -1,-40 - 2805: -1,-39 - 2806: -1,-38 - 2807: -1,-37 - 2808: -1,-36 - 2809: -1,-35 - 2810: -1,-34 - 2811: -1,-33 - 2812: -1,-32 - 2813: -1,-31 - 2814: -1,-30 - 2815: -1,-29 - 2816: -1,-28 + 436: 15,-14 + 437: 15,-13 + 438: 15,-12 + 439: 15,-11 + 440: 15,-15 + 1212: -3,-54 + 1219: -2,-52 + 1220: -2,-51 + 1221: -2,-50 + 1222: -2,-49 + 1223: -2,-48 + 1224: -2,-47 + 1225: -2,-46 + 1271: -17,11 + 1272: -17,12 + 1273: -17,13 + 1274: -17,14 + 1275: -17,15 + 1276: -17,17 + 1277: -17,16 + 1278: -17,18 + 1279: -17,19 + 1280: -17,20 + 1281: -17,21 + 1480: 6,-22 + 1481: 6,-21 + 1482: 6,-20 + 1483: 7,-20 + 1484: 8,-20 + 1485: 9,-20 + 1486: 6,-23 + 1487: 5,-23 + 1488: 4,-23 + 1489: 3,-23 + 1510: -4,10 + 1511: -5,10 + 1512: -6,10 + 1513: -7,10 + 1514: -7,9 + 1515: -8,9 + 1516: -9,9 + 1517: -10,9 + 1518: -11,9 + 1519: -12,9 + 1545: -31,25 + 1546: -29,25 + 1547: -30,25 + 1548: -28,25 + 1549: -27,25 + 1550: -26,25 + 1551: -25,25 + 1552: -24,25 + 1577: -22,-23 + 1578: -23,-23 + 1579: -24,-23 + 1580: -25,-23 + 1581: -26,-23 + 1585: 10,-23 + 1586: 11,-23 + 1587: 12,-23 + 1588: 13,-23 + 1589: 14,-23 + 1609: 36,10 + 1610: 36,11 + 1611: 37,11 + 1612: 38,11 + 1749: 8,7 + 2212: -39,-19 + 2213: -39,-20 + 2214: -39,-21 + 2215: -39,-22 + 2216: -39,-23 + 2251: -10,-23 + 2252: -11,-23 + 2253: -12,-23 + 2464: -28,9 + 2465: -29,9 + 2466: -30,9 + 2467: -17,5 + 2468: -17,4 + 2469: -17,3 + 2470: -18,9 + 2473: -17,9 + 2732: 15,12 + 2733: 15,11 + 2734: 15,9 + 2736: 15,-22 + 2737: 15,-23 + 2740: -17,-23 + 2765: 15,23 + 2766: 15,24 + 2767: 15,25 + 2768: 15,27 + 2769: 15,28 + 2783: -1,-41 + 2784: -1,-40 + 2785: -1,-39 + 2786: -1,-38 + 2787: -1,-37 + 2788: -1,-36 + 2789: -1,-35 + 2790: -1,-34 + 2791: -1,-33 + 2792: -1,-32 + 2793: -1,-31 + 2794: -1,-30 + 2795: -1,-29 + 2796: -1,-28 - node: color: '#D4D4D437' id: QuarterTileOverlayGreyscale decals: - 1123: -3,-61 - 1124: -3,-62 - 1125: -3,-63 - 1126: -3,-64 - 1127: -3,-65 - 1128: -3,-66 - 1129: -4,-66 - 1130: -4,-67 - 1131: -4,-68 - 1132: -4,-69 - 1133: -3,-70 - 1134: -3,-71 - 1135: -3,-72 - 1136: -3,-73 - 1137: -3,-74 + 1104: -3,-61 + 1105: -3,-62 + 1106: -3,-63 + 1107: -3,-64 + 1108: -3,-65 + 1109: -3,-66 + 1110: -4,-66 + 1111: -4,-67 + 1112: -4,-68 + 1113: -4,-69 + 1114: -3,-70 + 1115: -3,-71 + 1116: -3,-72 + 1117: -3,-73 + 1118: -3,-74 - node: color: '#D4D4D441' id: QuarterTileOverlayGreyscale decals: - 1058: 43,26 - 1059: 47,26 + 1039: 43,26 + 1040: 47,26 - node: color: '#D4D4D496' id: QuarterTileOverlayGreyscale decals: - 1689: 51,22 - 1690: 50,22 - 1691: 49,22 - 1692: 48,22 - 1693: 47,22 - 1701: 52,23 - 1702: 52,22 - 1720: 41,18 - 1721: 40,18 - 1722: 39,18 + 1670: 51,22 + 1671: 50,22 + 1672: 49,22 + 1673: 48,22 + 1674: 47,22 + 1682: 52,23 + 1683: 52,22 + 1701: 41,18 + 1702: 40,18 + 1703: 39,18 - node: color: '#DE3A3A96' id: QuarterTileOverlayGreyscale decals: - 759: -17,-17 - 760: -17,-16 - 761: -17,-15 - 762: -17,-14 - 763: -17,-13 - 764: -17,-12 - 765: -17,-11 - 766: -17,-10 - 767: -17,-9 - 768: -17,-8 - 769: -17,-7 - 770: -17,-6 - 806: -18,1 - 807: -18,2 - 1778: -11,-16 - 1779: -11,-15 - 1780: -11,-14 - 1781: -11,-13 - 1782: -11,-12 - 1788: -10,-12 + 740: -17,-17 + 741: -17,-16 + 742: -17,-15 + 743: -17,-14 + 744: -17,-13 + 745: -17,-12 + 746: -17,-11 + 747: -17,-10 + 748: -17,-9 + 749: -17,-8 + 750: -17,-7 + 751: -17,-6 + 787: -18,1 + 788: -18,2 + 1758: -11,-16 + 1759: -11,-15 + 1760: -11,-14 + 1761: -11,-13 + 1762: -11,-12 + 1768: -10,-12 - node: color: '#EFCC4196' id: QuarterTileOverlayGreyscale decals: - 2359: 9,13 - 2380: -1,11 - 2381: -2,11 - 2382: -3,11 - 2383: -4,11 + 2339: 9,13 + 2360: -1,11 + 2361: -2,11 + 2362: -3,11 + 2363: -4,11 - node: color: '#FFEF9292' id: QuarterTileOverlayGreyscale decals: - 2986: 44,-35 + 2966: 44,-35 - node: color: '#334E6DC8' id: QuarterTileOverlayGreyscale180 decals: - 793: -15,4 + 774: -15,4 - node: color: '#52B4E92E' id: QuarterTileOverlayGreyscale180 decals: - 1107: 3,-61 - 1108: 3,-62 - 1109: 3,-63 - 1110: 3,-64 - 1111: 3,-65 - 1112: 4,-66 - 1113: 4,-67 - 1114: 4,-68 - 1115: 4,-69 - 1116: 3,-70 - 1117: 3,-71 - 1118: 3,-72 - 1119: 3,-73 - 1120: 3,-74 - 1121: 3,-69 + 1088: 3,-61 + 1089: 3,-62 + 1090: 3,-63 + 1091: 3,-64 + 1092: 3,-65 + 1093: 4,-66 + 1094: 4,-67 + 1095: 4,-68 + 1096: 4,-69 + 1097: 3,-70 + 1098: 3,-71 + 1099: 3,-72 + 1100: 3,-73 + 1101: 3,-74 + 1102: 3,-69 - node: color: '#52B4E996' id: QuarterTileOverlayGreyscale180 @@ -4144,16 +4144,16 @@ entities: 305: 39,-25 306: 38,-25 307: 37,-25 - 2998: 44,-9 - 3046: 47,-18 + 2978: 44,-9 + 3026: 47,-18 - node: color: '#79150096' id: QuarterTileOverlayGreyscale180 decals: - 1041: 56,20 - 1042: 54,20 - 1043: 52,20 - 1046: 56,22 + 1022: 56,20 + 1023: 54,20 + 1024: 52,20 + 1027: 56,22 - node: color: '#9FED5896' id: QuarterTileOverlayGreyscale180 @@ -4165,155 +4165,155 @@ entities: color: '#A4610696' id: QuarterTileOverlayGreyscale180 decals: - 733: 41,11 - 746: 34,7 - 747: 33,7 - 748: 32,7 - 749: 31,7 - 750: 30,7 - 751: 29,7 - 752: 28,7 - 754: 38,4 - 755: 41,13 - 756: 41,14 - 757: 41,15 - 758: 41,16 + 714: 41,11 + 727: 34,7 + 728: 33,7 + 729: 32,7 + 730: 31,7 + 731: 30,7 + 732: 29,7 + 733: 28,7 + 735: 38,4 + 736: 41,13 + 737: 41,14 + 738: 41,15 + 739: 41,16 - node: color: '#D381C996' id: QuarterTileOverlayGreyscale180 decals: - 2565: 50,-23 + 2545: 50,-23 - node: color: '#D4D4D428' id: QuarterTileOverlayGreyscale180 decals: - 1579: -28,7 - 1580: -29,7 - 1581: -30,7 - 1582: -31,7 - 1583: -32,7 - 1584: -33,7 - 1585: -34,7 - 1586: -35,7 - 1601: 9,-20 - 1602: 9,-21 - 1603: 9,-22 - 1635: -14,-2 - 1636: -15,-2 - 1637: -15,-3 - 1638: -15,-4 - 1639: -15,-5 - 1640: -15,-6 - 1641: -15,-7 - 1642: -15,-8 - 1643: -15,-9 - 1644: -15,5 - 1645: -15,6 - 1646: -15,7 - 1647: -14,7 - 1648: 10,7 - 1649: 9,7 - 1650: 8,7 - 1744: -12,7 - 1745: -11,7 - 1746: -10,7 - 1747: -9,7 - 1748: -8,7 - 1749: -8,8 - 1750: -7,8 - 1751: -6,8 - 1752: -5,8 - 1753: -5,9 - 1754: -4,9 - 1755: -3,9 - 1756: -2,9 - 1757: -1,9 - 2256: -28,-25 - 2257: -29,-25 - 2781: -28,23 - 2782: -29,23 - 2783: -30,23 - 2784: -31,23 - 2832: 1,-43 - 2833: 2,-78 - 2834: 2,-77 - 2835: 2,-76 + 1560: -28,7 + 1561: -29,7 + 1562: -30,7 + 1563: -31,7 + 1564: -32,7 + 1565: -33,7 + 1566: -34,7 + 1567: -35,7 + 1582: 9,-20 + 1583: 9,-21 + 1584: 9,-22 + 1616: -14,-2 + 1617: -15,-2 + 1618: -15,-3 + 1619: -15,-4 + 1620: -15,-5 + 1621: -15,-6 + 1622: -15,-7 + 1623: -15,-8 + 1624: -15,-9 + 1625: -15,5 + 1626: -15,6 + 1627: -15,7 + 1628: -14,7 + 1629: 10,7 + 1630: 9,7 + 1631: 8,7 + 1725: -12,7 + 1726: -11,7 + 1727: -10,7 + 1728: -9,7 + 1729: -8,7 + 1730: -8,8 + 1731: -7,8 + 1732: -6,8 + 1733: -5,8 + 1734: -5,9 + 1735: -4,9 + 1736: -3,9 + 1737: -2,9 + 1738: -1,9 + 2236: -28,-25 + 2237: -29,-25 + 2761: -28,23 + 2762: -29,23 + 2763: -30,23 + 2764: -31,23 + 2812: 1,-43 + 2813: 2,-78 + 2814: 2,-77 + 2815: 2,-76 - node: color: '#D4D4D437' id: QuarterTileOverlayGreyscale180 decals: - 1138: -4,-69 - 1171: 3,-59 - 1172: 3,-58 - 1173: 3,-57 + 1119: -4,-69 + 1152: 3,-59 + 1153: 3,-58 + 1154: 3,-57 - node: color: '#D4D4D441' id: QuarterTileOverlayGreyscale180 decals: - 1053: 56,21 - 1054: 55,20 - 1055: 53,20 + 1034: 56,21 + 1035: 55,20 + 1036: 53,20 - node: color: '#D4D4D496' id: QuarterTileOverlayGreyscale180 decals: - 1694: 46,23 - 1695: 46,24 - 1696: 47,24 - 1697: 48,24 - 1698: 49,24 - 1699: 50,24 - 1700: 51,24 - 1723: 39,20 - 1724: 40,20 - 1725: 41,20 + 1675: 46,23 + 1676: 46,24 + 1677: 47,24 + 1678: 48,24 + 1679: 49,24 + 1680: 50,24 + 1681: 51,24 + 1704: 39,20 + 1705: 40,20 + 1706: 41,20 - node: color: '#EFB3414A' id: QuarterTileOverlayGreyscale180 decals: - 3239: 19,6 - 3240: 20,6 - 3241: 20,7 - 3242: 21,7 - 3243: 22,7 + 3219: 19,6 + 3220: 20,6 + 3221: 20,7 + 3222: 21,7 + 3223: 22,7 - node: color: '#EFB34160' id: QuarterTileOverlayGreyscale180 decals: - 2734: 17,19 - 2735: 17,20 - 2736: 17,21 + 2714: 17,19 + 2715: 17,20 + 2716: 17,21 - node: color: '#FFEF9292' id: QuarterTileOverlayGreyscale180 decals: - 2987: 44,-27 + 2967: 44,-27 - node: color: '#334E6DC8' id: QuarterTileOverlayGreyscale270 decals: - 718: -74,16 - 719: -73,16 - 720: -72,16 + 699: -74,16 + 700: -73,16 + 701: -72,16 - node: color: '#52B4E92E' id: QuarterTileOverlayGreyscale270 decals: - 1091: -3,-74 - 1092: -3,-73 - 1093: -3,-72 - 1094: -3,-71 - 1095: -3,-70 - 1096: -3,-69 - 1097: -4,-69 - 1098: -4,-68 - 1099: -4,-67 - 1100: -4,-66 - 1101: -3,-65 - 1102: -3,-64 - 1103: -3,-63 - 1104: -3,-62 - 1105: -3,-61 + 1072: -3,-74 + 1073: -3,-73 + 1074: -3,-72 + 1075: -3,-71 + 1076: -3,-70 + 1077: -3,-69 + 1078: -4,-69 + 1079: -4,-68 + 1080: -4,-67 + 1081: -4,-66 + 1082: -3,-65 + 1083: -3,-64 + 1084: -3,-63 + 1085: -3,-62 + 1086: -3,-61 - node: color: '#52B4E996' id: QuarterTileOverlayGreyscale270 @@ -4323,27 +4323,27 @@ entities: color: '#79150096' id: QuarterTileOverlayGreyscale270 decals: - 1038: 42,20 - 1039: 44,20 - 1040: 46,20 - 1710: 47,24 - 1711: 48,24 - 1712: 49,24 - 1713: 50,24 - 1714: 51,24 - 1715: 52,24 - 1716: 52,23 - 1726: 41,20 - 1727: 40,20 - 1728: 39,20 + 1019: 42,20 + 1020: 44,20 + 1021: 46,20 + 1691: 47,24 + 1692: 48,24 + 1693: 49,24 + 1694: 50,24 + 1695: 51,24 + 1696: 52,24 + 1697: 52,23 + 1707: 41,20 + 1708: 40,20 + 1709: 39,20 - node: color: '#9FED584A' id: QuarterTileOverlayGreyscale270 decals: - 3409: 39,16 - 3410: 39,15 - 3411: 39,14 - 3412: 39,13 + 3389: 39,16 + 3390: 39,15 + 3391: 39,14 + 3392: 39,13 - node: color: '#9FED5896' id: QuarterTileOverlayGreyscale270 @@ -4354,40 +4354,40 @@ entities: color: '#A4610696' id: QuarterTileOverlayGreyscale270 decals: - 663: 48,12 - 753: 36,4 - 3325: 45,-2 - 3326: 45,-1 - 3327: 45,0 - 3328: 45,1 - 3329: 45,2 - 3330: 44,2 - 3331: 43,2 - 3357: 49,6 - 3358: 50,6 - 3359: 54,6 - 3360: 51,6 - 3361: 52,6 - 3362: 53,6 - 3363: 55,6 - 3364: 56,6 + 644: 48,12 + 734: 36,4 + 3305: 45,-2 + 3306: 45,-1 + 3307: 45,0 + 3308: 45,1 + 3309: 45,2 + 3310: 44,2 + 3311: 43,2 + 3337: 49,6 + 3338: 50,6 + 3339: 54,6 + 3340: 51,6 + 3341: 52,6 + 3342: 53,6 + 3343: 55,6 + 3344: 56,6 - node: color: '#D381C996' id: QuarterTileOverlayGreyscale270 decals: - 382: -39,13 - 2122: -39,1 - 2123: -39,2 - 2124: -39,3 - 2125: -39,4 - 2126: -40,-8 - 2127: -39,-8 - 2128: -39,-9 - 2129: -39,-10 - 2130: -39,-11 - 2131: -39,-12 - 2132: -40,-7 - 2563: 48,-23 + 381: -39,13 + 2102: -39,1 + 2103: -39,2 + 2104: -39,3 + 2105: -39,4 + 2106: -40,-8 + 2107: -39,-8 + 2108: -39,-9 + 2109: -39,-10 + 2110: -39,-11 + 2111: -39,-12 + 2112: -40,-7 + 2543: 48,-23 - node: color: '#D4D4D428' id: QuarterTileOverlayGreyscale270 @@ -4395,190 +4395,190 @@ entities: 199: 15,2 200: 15,3 201: 15,4 - 1210: -5,-56 - 1211: -6,-56 - 1212: -7,-56 - 1213: -8,-56 - 1214: -9,-56 - 1215: -10,-56 - 1216: -11,-56 - 1217: -12,-56 - 1218: -13,-56 - 1219: -14,-56 - 1220: -15,-56 - 1221: -16,-56 - 1222: -17,-56 - 1223: -18,-56 - 1224: -19,-56 - 1253: 20,23 - 1254: 21,23 - 1255: 22,23 - 1256: 23,23 - 1257: 24,23 - 1258: 25,23 - 1259: 27,23 - 1260: 28,23 - 1261: 29,23 - 1262: 30,23 - 1263: 34,23 - 1264: 35,23 - 1265: 36,23 - 1266: 37,23 - 1545: -44,19 - 1546: -44,20 - 1547: -44,21 - 1548: -44,22 - 1549: -44,23 - 1550: -44,24 - 1551: -44,25 - 1572: -20,7 - 1573: -21,7 - 1574: -22,7 - 1575: -23,7 - 1576: -24,7 - 1577: -25,7 - 1578: -26,7 - 1587: -39,-25 - 1588: -38,-25 - 1589: -37,-25 - 1590: -36,-25 - 1591: -35,-25 - 1592: -34,-25 - 1593: -33,-25 - 1594: -32,-25 - 1595: -31,-25 - 1651: 12,7 - 1652: 13,7 - 1758: 1,9 - 1759: 2,9 - 1760: 3,9 - 1761: 4,9 - 1762: 5,9 - 1763: 5,8 - 1764: 6,8 - 1765: 7,8 - 1766: 8,8 - 1767: 8,7 - 2252: -39,-17 - 2253: -39,-16 - 2254: -39,-15 - 2255: -39,-14 - 2258: -26,-25 - 2259: -25,-25 - 2260: -24,-25 - 2261: -23,-25 - 2262: -22,-25 - 2263: -21,-25 - 2264: -20,-25 - 2265: -19,-25 - 2266: -18,-25 - 2267: -17,-25 - 2268: -16,-25 - 2269: -15,-25 - 2270: -14,-25 - 2494: -17,7 - 2495: -18,7 - 2744: 15,14 - 2745: 15,15 - 2746: 15,16 - 2747: 15,17 - 2748: 15,18 - 2749: 15,19 - 2750: 15,20 - 2751: 15,21 - 2761: -17,-22 - 2775: -24,23 - 2776: -23,23 - 2777: -22,23 - 2778: -21,23 - 2779: -20,23 - 2780: -19,23 - 2831: -1,-43 - 2836: -2,-78 - 2837: -2,-77 - 2838: -2,-76 + 1191: -5,-56 + 1192: -6,-56 + 1193: -7,-56 + 1194: -8,-56 + 1195: -9,-56 + 1196: -10,-56 + 1197: -11,-56 + 1198: -12,-56 + 1199: -13,-56 + 1200: -14,-56 + 1201: -15,-56 + 1202: -16,-56 + 1203: -17,-56 + 1204: -18,-56 + 1205: -19,-56 + 1234: 20,23 + 1235: 21,23 + 1236: 22,23 + 1237: 23,23 + 1238: 24,23 + 1239: 25,23 + 1240: 27,23 + 1241: 28,23 + 1242: 29,23 + 1243: 30,23 + 1244: 34,23 + 1245: 35,23 + 1246: 36,23 + 1247: 37,23 + 1526: -44,19 + 1527: -44,20 + 1528: -44,21 + 1529: -44,22 + 1530: -44,23 + 1531: -44,24 + 1532: -44,25 + 1553: -20,7 + 1554: -21,7 + 1555: -22,7 + 1556: -23,7 + 1557: -24,7 + 1558: -25,7 + 1559: -26,7 + 1568: -39,-25 + 1569: -38,-25 + 1570: -37,-25 + 1571: -36,-25 + 1572: -35,-25 + 1573: -34,-25 + 1574: -33,-25 + 1575: -32,-25 + 1576: -31,-25 + 1632: 12,7 + 1633: 13,7 + 1739: 1,9 + 1740: 2,9 + 1741: 3,9 + 1742: 4,9 + 1743: 5,9 + 1744: 5,8 + 1745: 6,8 + 1746: 7,8 + 1747: 8,8 + 1748: 8,7 + 2232: -39,-17 + 2233: -39,-16 + 2234: -39,-15 + 2235: -39,-14 + 2238: -26,-25 + 2239: -25,-25 + 2240: -24,-25 + 2241: -23,-25 + 2242: -22,-25 + 2243: -21,-25 + 2244: -20,-25 + 2245: -19,-25 + 2246: -18,-25 + 2247: -17,-25 + 2248: -16,-25 + 2249: -15,-25 + 2250: -14,-25 + 2474: -17,7 + 2475: -18,7 + 2724: 15,14 + 2725: 15,15 + 2726: 15,16 + 2727: 15,17 + 2728: 15,18 + 2729: 15,19 + 2730: 15,20 + 2731: 15,21 + 2741: -17,-22 + 2755: -24,23 + 2756: -23,23 + 2757: -22,23 + 2758: -21,23 + 2759: -20,23 + 2760: -19,23 + 2811: -1,-43 + 2816: -2,-78 + 2817: -2,-77 + 2818: -2,-76 - node: color: '#D4D4D437' id: QuarterTileOverlayGreyscale270 decals: - 1153: 4,-69 - 1168: -3,-59 - 1169: -3,-58 - 1170: -3,-57 + 1134: 4,-69 + 1149: -3,-59 + 1150: -3,-58 + 1151: -3,-57 - node: color: '#D4D4D441' id: QuarterTileOverlayGreyscale270 decals: - 1056: 45,20 - 1057: 43,20 + 1037: 45,20 + 1038: 43,20 - node: color: '#DE3A3A96' id: QuarterTileOverlayGreyscale270 decals: - 804: -18,-1 - 805: -18,0 + 785: -18,-1 + 786: -18,0 - node: color: '#DF81C96C' id: QuarterTileOverlayGreyscale270 decals: - 3324: 48,4 + 3304: 48,4 - node: color: '#EFB3414A' id: QuarterTileOverlayGreyscale270 decals: - 3234: 27,6 - 3235: 26,6 - 3236: 26,7 - 3237: 25,7 - 3238: 24,7 + 3214: 27,6 + 3215: 26,6 + 3216: 26,7 + 3217: 25,7 + 3218: 24,7 - node: color: '#EFCC4196' id: QuarterTileOverlayGreyscale270 decals: - 2360: 9,15 + 2340: 9,15 - node: color: '#EFD54193' id: QuarterTileOverlayGreyscale270 decals: - 3487: 6,13 + 3467: 6,13 - node: color: '#334E6DC8' id: QuarterTileOverlayGreyscale90 decals: - 577: 1,-8 - 578: 1,-7 - 579: 1,-6 - 580: 1,-5 - 581: 1,-4 - 582: 1,-3 - 601: 3,1 - 602: -4,1 - 605: 4,0 - 796: -15,2 - 977: 1,-10 - 978: 1,-11 - 979: 1,-12 - 980: 1,-13 - 981: 1,-14 - 982: 1,-15 - 983: 1,-16 - 984: 1,-17 - 985: 1,-18 - 986: 1,-19 - 987: 1,-20 - 988: 1,-21 + 558: 1,-8 + 559: 1,-7 + 560: 1,-6 + 561: 1,-5 + 562: 1,-4 + 563: 1,-3 + 582: 3,1 + 583: -4,1 + 586: 4,0 + 777: -15,2 + 958: 1,-10 + 959: 1,-11 + 960: 1,-12 + 961: 1,-13 + 962: 1,-14 + 963: 1,-15 + 964: 1,-16 + 965: 1,-17 + 966: 1,-18 + 967: 1,-19 + 968: 1,-20 + 969: 1,-21 - node: color: '#52B4E92E' id: QuarterTileOverlayGreyscale90 decals: - 1106: -4,-66 + 1087: -4,-66 - node: color: '#52B4E944' id: QuarterTileOverlayGreyscale90 decals: - 1174: 3,-59 - 1175: 3,-58 - 1176: 3,-57 + 1155: 3,-59 + 1156: 3,-58 + 1157: 3,-57 - node: color: '#52B4E996' id: QuarterTileOverlayGreyscale90 @@ -4593,20 +4593,20 @@ entities: color: '#79150096' id: QuarterTileOverlayGreyscale90 decals: - 1044: 56,26 - 1045: 56,24 - 1047: 53,26 - 1050: 50,27 - 1703: 51,22 - 1704: 50,22 - 1705: 49,22 - 1706: 48,22 - 1707: 47,22 - 1708: 46,22 - 1709: 46,23 - 1717: 41,18 - 1718: 40,18 - 1719: 39,18 + 1025: 56,26 + 1026: 56,24 + 1028: 53,26 + 1031: 50,27 + 1684: 51,22 + 1685: 50,22 + 1686: 49,22 + 1687: 48,22 + 1688: 47,22 + 1689: 46,22 + 1690: 46,23 + 1698: 41,18 + 1699: 40,18 + 1700: 39,18 - node: color: '#9FED5896' id: QuarterTileOverlayGreyscale90 @@ -4616,286 +4616,286 @@ entities: color: '#A4610696' id: QuarterTileOverlayGreyscale90 decals: - 734: 34,9 - 735: 33,9 - 736: 32,9 - 737: 31,9 - 738: 30,9 - 739: 29,9 + 715: 34,9 + 716: 33,9 + 717: 32,9 + 718: 31,9 + 719: 30,9 + 720: 29,9 - node: color: '#D381C996' id: QuarterTileOverlayGreyscale90 decals: - 1737: -35,9 - 2566: 50,-22 - 2691: -55,17 - 2692: -56,17 - 2693: -57,17 - 2694: -54,17 + 1718: -35,9 + 2546: 50,-22 + 2671: -55,17 + 2672: -56,17 + 2673: -57,17 + 2674: -54,17 - node: color: '#D4D4D428' id: QuarterTileOverlayGreyscale90 decals: - 1225: 10,-54 - 1226: 9,-54 - 1227: 7,-54 - 1228: 8,-54 - 1229: 5,-54 - 1230: 3,-54 - 1232: 2,-47 - 1233: 2,-48 - 1234: 2,-49 - 1235: 2,-50 - 1236: 2,-51 - 1237: 2,-52 - 1510: -3,-23 - 1511: -4,-23 - 1512: -5,-23 - 1513: -6,-23 - 1514: -7,-23 - 1515: -8,-23 - 1516: -13,-23 - 1517: -14,-23 - 1518: 5,10 - 1519: 6,10 - 1520: 7,10 - 1521: 4,10 - 1522: 7,9 - 1523: 8,9 - 1524: 9,9 - 1525: 10,9 - 1526: 11,9 - 1527: 12,9 - 1528: 13,9 - 1552: -44,25 - 1553: -43,25 - 1554: -42,25 - 1555: -41,25 - 1556: -40,25 - 1557: -39,25 - 1558: -38,25 - 1559: -37,25 - 1560: -36,25 - 1561: -35,25 - 1562: -34,25 - 1563: -33,25 - 1609: 35,-23 - 1610: 34,-23 - 1611: 32,-23 - 1612: 31,-23 - 1613: 33,-23 - 1614: 30,-23 - 1615: 29,-23 - 1616: 28,-23 - 1617: 27,-23 - 1618: 26,-23 - 1619: 25,-23 - 1620: 24,-23 - 1621: 23,-23 - 1622: 22,-23 - 1623: 21,-23 - 1624: 20,-23 - 1625: 19,-23 - 1626: 18,-23 - 1632: -15,1 - 1633: -15,0 - 1634: -14,0 - 2000: -15,21 - 2001: -15,20 - 2002: -15,19 - 2003: -15,18 - 2004: -15,17 - 2005: -15,16 - 2006: -15,15 - 2007: -15,14 - 2008: -15,13 - 2009: -15,12 - 2010: -15,11 - 2238: -28,-23 - 2239: -29,-23 - 2240: -30,-23 - 2241: -31,-23 - 2242: -32,-23 - 2243: -33,-23 - 2244: -34,-23 - 2245: -35,-23 - 2246: -36,-23 - 2247: -37,-23 - 2248: -37,-22 - 2249: -37,-21 - 2250: -37,-20 - 2251: -37,-19 - 2479: -20,9 - 2480: -21,9 - 2481: -22,9 - 2482: -23,9 - 2483: -24,9 - 2491: -14,9 - 2492: -15,9 - 2740: 17,14 - 2741: 17,13 - 2742: 17,12 - 2743: 17,11 - 2755: 17,9 - 2758: 17,-22 - 2759: 17,-23 - 2762: -18,-23 - 2763: -15,-23 - 2764: -15,-22 - 2765: -15,-21 - 2766: -15,-20 - 2767: -15,-19 - 2768: -15,-17 - 2769: -15,-16 - 2770: -15,-15 - 2771: -15,-14 - 2772: -15,-13 - 2773: -15,-12 - 2774: -15,-11 - 2817: 1,-28 - 2818: 1,-29 - 2819: 1,-30 - 2820: 1,-31 - 2821: 1,-32 - 2822: 1,-33 - 2823: 1,-34 - 2824: 1,-35 - 2825: 1,-36 - 2826: 1,-37 - 2827: 1,-38 - 2828: 1,-39 - 2829: 1,-40 - 2830: 1,-41 + 1206: 10,-54 + 1207: 9,-54 + 1208: 7,-54 + 1209: 8,-54 + 1210: 5,-54 + 1211: 3,-54 + 1213: 2,-47 + 1214: 2,-48 + 1215: 2,-49 + 1216: 2,-50 + 1217: 2,-51 + 1218: 2,-52 + 1491: -3,-23 + 1492: -4,-23 + 1493: -5,-23 + 1494: -6,-23 + 1495: -7,-23 + 1496: -8,-23 + 1497: -13,-23 + 1498: -14,-23 + 1499: 5,10 + 1500: 6,10 + 1501: 7,10 + 1502: 4,10 + 1503: 7,9 + 1504: 8,9 + 1505: 9,9 + 1506: 10,9 + 1507: 11,9 + 1508: 12,9 + 1509: 13,9 + 1533: -44,25 + 1534: -43,25 + 1535: -42,25 + 1536: -41,25 + 1537: -40,25 + 1538: -39,25 + 1539: -38,25 + 1540: -37,25 + 1541: -36,25 + 1542: -35,25 + 1543: -34,25 + 1544: -33,25 + 1590: 35,-23 + 1591: 34,-23 + 1592: 32,-23 + 1593: 31,-23 + 1594: 33,-23 + 1595: 30,-23 + 1596: 29,-23 + 1597: 28,-23 + 1598: 27,-23 + 1599: 26,-23 + 1600: 25,-23 + 1601: 24,-23 + 1602: 23,-23 + 1603: 22,-23 + 1604: 21,-23 + 1605: 20,-23 + 1606: 19,-23 + 1607: 18,-23 + 1613: -15,1 + 1614: -15,0 + 1615: -14,0 + 1980: -15,21 + 1981: -15,20 + 1982: -15,19 + 1983: -15,18 + 1984: -15,17 + 1985: -15,16 + 1986: -15,15 + 1987: -15,14 + 1988: -15,13 + 1989: -15,12 + 1990: -15,11 + 2218: -28,-23 + 2219: -29,-23 + 2220: -30,-23 + 2221: -31,-23 + 2222: -32,-23 + 2223: -33,-23 + 2224: -34,-23 + 2225: -35,-23 + 2226: -36,-23 + 2227: -37,-23 + 2228: -37,-22 + 2229: -37,-21 + 2230: -37,-20 + 2231: -37,-19 + 2459: -20,9 + 2460: -21,9 + 2461: -22,9 + 2462: -23,9 + 2463: -24,9 + 2471: -14,9 + 2472: -15,9 + 2720: 17,14 + 2721: 17,13 + 2722: 17,12 + 2723: 17,11 + 2735: 17,9 + 2738: 17,-22 + 2739: 17,-23 + 2742: -18,-23 + 2743: -15,-23 + 2744: -15,-22 + 2745: -15,-21 + 2746: -15,-20 + 2747: -15,-19 + 2748: -15,-17 + 2749: -15,-16 + 2750: -15,-15 + 2751: -15,-14 + 2752: -15,-13 + 2753: -15,-12 + 2754: -15,-11 + 2797: 1,-28 + 2798: 1,-29 + 2799: 1,-30 + 2800: 1,-31 + 2801: 1,-32 + 2802: 1,-33 + 2803: 1,-34 + 2804: 1,-35 + 2805: 1,-36 + 2806: 1,-37 + 2807: 1,-38 + 2808: 1,-39 + 2809: 1,-40 + 2810: 1,-41 - node: color: '#D4D4D437' id: QuarterTileOverlayGreyscale90 decals: - 1139: 3,-61 - 1140: 3,-62 - 1141: 3,-63 - 1142: 3,-64 - 1143: 3,-65 - 1144: 4,-66 - 1145: 4,-67 - 1146: 4,-68 - 1147: 4,-69 - 1148: 3,-70 - 1149: 3,-71 - 1150: 3,-72 - 1151: 3,-73 - 1152: 3,-74 + 1120: 3,-61 + 1121: 3,-62 + 1122: 3,-63 + 1123: 3,-64 + 1124: 3,-65 + 1125: 4,-66 + 1126: 4,-67 + 1127: 4,-68 + 1128: 4,-69 + 1129: 3,-70 + 1130: 3,-71 + 1131: 3,-72 + 1132: 3,-73 + 1133: 3,-74 - node: color: '#D4D4D441' id: QuarterTileOverlayGreyscale90 decals: - 1051: 55,26 - 1052: 56,25 - 1060: 51,26 + 1032: 55,26 + 1033: 56,25 + 1041: 51,26 - node: color: '#D4D4D496' id: QuarterTileOverlayGreyscale90 decals: - 2857: 20,26 - 2858: 21,26 - 2859: 22,26 - 2860: 23,26 - 2861: 24,26 - 2862: 25,26 - 2863: 26,26 - 2864: 27,26 - 2865: 28,26 - 2866: 29,26 - 2867: 37,26 - 2868: 36,26 - 2869: 35,26 - 2870: 34,26 - 2871: 33,26 - 2872: 32,26 - 2873: 31,26 - 2874: 30,26 - 3061: 19,26 + 2837: 20,26 + 2838: 21,26 + 2839: 22,26 + 2840: 23,26 + 2841: 24,26 + 2842: 25,26 + 2843: 26,26 + 2844: 27,26 + 2845: 28,26 + 2846: 29,26 + 2847: 37,26 + 2848: 36,26 + 2849: 35,26 + 2850: 34,26 + 2851: 33,26 + 2852: 32,26 + 2853: 31,26 + 2854: 30,26 + 3041: 19,26 - node: color: '#DE3A3A96' id: QuarterTileOverlayGreyscale90 decals: - 771: -37,-17 - 772: -37,-16 - 773: -37,-15 - 774: -37,-14 - 775: -37,-13 - 776: -37,-12 - 777: -37,-11 - 778: -37,-10 - 779: -37,-9 - 780: -37,-8 - 781: -37,-7 - 782: -37,-6 - 1783: -8,-15 - 1784: -8,-14 - 1785: -8,-13 - 1786: -8,-12 - 1787: -9,-12 + 752: -37,-17 + 753: -37,-16 + 754: -37,-15 + 755: -37,-14 + 756: -37,-13 + 757: -37,-12 + 758: -37,-11 + 759: -37,-10 + 760: -37,-9 + 761: -37,-8 + 762: -37,-7 + 763: -37,-6 + 1763: -8,-15 + 1764: -8,-14 + 1765: -8,-13 + 1766: -8,-12 + 1767: -9,-12 - node: color: '#DF81C96C' id: QuarterTileOverlayGreyscale90 decals: - 3312: 40,3 - 3313: 41,3 - 3314: 42,3 - 3315: 43,3 - 3316: 44,3 - 3317: 45,3 - 3318: 46,3 - 3319: 47,3 - 3320: 48,4 - 3321: 49,4 - 3322: 50,4 - 3323: 51,4 + 3292: 40,3 + 3293: 41,3 + 3294: 42,3 + 3295: 43,3 + 3296: 44,3 + 3297: 45,3 + 3298: 46,3 + 3299: 47,3 + 3300: 48,4 + 3301: 49,4 + 3302: 50,4 + 3303: 51,4 - node: color: '#EFB34160' id: QuarterTileOverlayGreyscale90 decals: - 2737: 17,17 - 2738: 17,16 - 2739: 17,15 + 2717: 17,17 + 2718: 17,16 + 2719: 17,15 - node: color: '#EFCC4196' id: QuarterTileOverlayGreyscale90 decals: - 2384: 1,11 - 2385: 2,11 - 2386: 3,11 - 2387: 4,11 - 2431: -15,23 - 2432: -15,24 - 2433: -15,25 - 2434: -16,25 - 2435: -17,25 - 2436: -18,25 - 2437: -19,25 - 2438: -20,25 + 2364: 1,11 + 2365: 2,11 + 2366: 3,11 + 2367: 4,11 + 2411: -15,23 + 2412: -15,24 + 2413: -15,25 + 2414: -16,25 + 2415: -17,25 + 2416: -18,25 + 2417: -19,25 + 2418: -20,25 - node: color: '#FFFFFFFF' id: Remains decals: - 2875: -63.989975,-10.123885 + 2855: -63.989975,-10.123885 - node: color: '#FFFFFFFF' id: Rock01 decals: - 1067: -5.089998,-68.511505 - 1069: 5.097502,-68.08963 + 1048: -5.089998,-68.511505 + 1050: 5.097502,-68.08963 - node: color: '#FFFFFFFF' id: Rock03 decals: - 1682: -47.98986,4.9975877 + 1663: -47.98986,4.9975877 - node: color: '#FFFFFFFF' id: Rock04 decals: - 1068: 5.097502,-66.74588 - 1683: -47.02111,4.9975877 + 1049: 5.097502,-66.74588 + 1664: -47.02111,4.9975877 - node: cleanable: True color: '#FFFFFFFF' @@ -4918,56 +4918,56 @@ entities: color: '#80C71FFF' id: Sirius decals: - 2881: -9.970831,-51.964848 + 2861: -9.970831,-51.964848 - node: color: '#FFFFFFFF' id: SpaceStationSign1 decals: - 859: -3,10 + 840: -3,10 - node: color: '#FFFFFFFF' id: SpaceStationSign2 decals: - 860: -2,10 + 841: -2,10 - node: color: '#FFFFFFFF' id: SpaceStationSign3 decals: - 861: -1,10 + 842: -1,10 - node: color: '#FFFFFFFF' id: SpaceStationSign4 decals: - 862: 0,10 + 843: 0,10 - node: color: '#FFFFFFFF' id: SpaceStationSign5 decals: - 863: 1,10 + 844: 1,10 - node: color: '#FFFFFFFF' id: SpaceStationSign6 decals: - 864: 2,10 + 845: 2,10 - node: color: '#FFFFFFFF' id: SpaceStationSign7 decals: - 865: 3,10 + 846: 3,10 - node: color: '#FFFFFFFF' id: StandClear decals: - 406: -40,-1 - 511: -6,31 - 1889: -23,-20 - 1943: -22,26 + 405: -40,-1 + 510: -6,31 + 1869: -23,-20 + 1923: -22,26 - node: color: '#D381C996' id: StandClearGreyscale decals: - 1357: -53,1 - 2090: -49,1 + 1338: -53,1 + 2070: -49,1 - node: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale @@ -4975,12 +4975,12 @@ entities: 261: 29,-20 266: 29,-17 279: 38,-20 - 3003: 32,-17 + 2983: 32,-17 - node: color: '#A4610696' id: ThreeQuarterTileOverlayGreyscale decals: - 3101: 43,9 + 3081: 43,9 - node: color: '#D0BF4AA7' id: ThreeQuarterTileOverlayGreyscale @@ -4990,8 +4990,8 @@ entities: color: '#D381C996' id: ThreeQuarterTileOverlayGreyscale decals: - 369: -43,14 - 2136: -43,-10 + 368: -43,14 + 2116: -43,-10 - node: color: '#DE3A3A96' id: ThreeQuarterTileOverlayGreyscale @@ -5001,8 +5001,8 @@ entities: color: '#EFCC4196' id: ThreeQuarterTileOverlayGreyscale decals: - 2347: -5,21 - 2357: 3,15 + 2327: -5,21 + 2337: 3,15 - node: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale180 @@ -5010,17 +5010,17 @@ entities: 263: 30,-21 268: 30,-18 281: 40,-21 - 3007: 35,-21 + 2987: 35,-21 - node: color: '#9FED5896' id: ThreeQuarterTileOverlayGreyscale180 decals: - 2991: 45,-35 + 2971: 45,-35 - node: color: '#A4610696' id: ThreeQuarterTileOverlayGreyscale180 decals: - 651: 46,5 + 632: 46,5 - node: color: '#D0BF4AA7' id: ThreeQuarterTileOverlayGreyscale180 @@ -5030,8 +5030,8 @@ entities: color: '#D381C996' id: ThreeQuarterTileOverlayGreyscale180 decals: - 2117: -37,11 - 2135: -41,-11 + 2097: -37,11 + 2115: -41,-11 - node: color: '#DE3A3A96' id: ThreeQuarterTileOverlayGreyscale180 @@ -5041,8 +5041,8 @@ entities: color: '#EFCC4196' id: ThreeQuarterTileOverlayGreyscale180 decals: - 2348: 6,17 - 2358: 7,12 + 2328: 6,17 + 2338: 7,12 - node: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale270 @@ -5050,18 +5050,18 @@ entities: 264: 29,-21 265: 29,-18 278: 38,-21 - 3006: 32,-21 - 3044: 48,-18 + 2986: 32,-21 + 3024: 48,-18 - node: color: '#9FED5896' id: ThreeQuarterTileOverlayGreyscale270 decals: - 2990: 43,-35 + 2970: 43,-35 - node: color: '#A4610696' id: ThreeQuarterTileOverlayGreyscale270 decals: - 645: 43,5 + 626: 43,5 - node: color: '#D0BF4AA7' id: ThreeQuarterTileOverlayGreyscale270 @@ -5071,9 +5071,9 @@ entities: color: '#D381C996' id: ThreeQuarterTileOverlayGreyscale270 decals: - 367: -39,11 - 368: -43,13 - 2140: -43,-11 + 366: -39,11 + 367: -43,13 + 2120: -43,-11 - node: color: '#DE3A3A96' id: ThreeQuarterTileOverlayGreyscale270 @@ -5083,14 +5083,14 @@ entities: color: '#EFCC4196' id: ThreeQuarterTileOverlayGreyscale270 decals: - 2350: -5,17 - 2354: 6,12 - 2355: 3,13 + 2330: -5,17 + 2334: 6,12 + 2335: 3,13 - node: color: '#334E6DC8' id: ThreeQuarterTileOverlayGreyscale90 decals: - 600: 4,1 + 581: 4,1 - node: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale90 @@ -5098,12 +5098,12 @@ entities: 262: 30,-20 267: 30,-17 280: 40,-20 - 3052: 49,-17 + 3032: 49,-17 - node: color: '#A4610696' id: ThreeQuarterTileOverlayGreyscale90 decals: - 3102: 46,9 + 3082: 46,9 - node: color: '#D0BF4AA7' id: ThreeQuarterTileOverlayGreyscale90 @@ -5113,8 +5113,8 @@ entities: color: '#D381C996' id: ThreeQuarterTileOverlayGreyscale90 decals: - 2116: -37,14 - 2139: -41,-10 + 2096: -37,14 + 2119: -41,-10 - node: color: '#DE3A3A96' id: ThreeQuarterTileOverlayGreyscale90 @@ -5124,40 +5124,40 @@ entities: color: '#EFCC4196' id: ThreeQuarterTileOverlayGreyscale90 decals: - 2349: 6,21 - 2356: 7,15 + 2329: 6,21 + 2336: 7,15 - node: cleanable: True color: '#B02E26FF' id: Tunnel decals: - 2584: 32.016933,17.019823 + 2564: 32.016933,17.019823 - node: color: '#FFFFFFFF' id: VentSmall decals: - 902: -3,-9 + 883: -3,-9 - node: cleanable: True color: '#835432FF' id: Waffle decals: - 2876: -15.97007,-46.029713 + 2856: -15.97007,-46.029713 - node: color: '#FFFFFFFF' id: WarnBox decals: - 2188: -25,2 - 3413: 12,-55 - 3414: -25,-36 - 3415: 23,-47 - 3416: 20,28 - 3417: 5,-71 - 3418: -5,-71 - 3419: -5,-64 - 3420: 5,-64 - 3421: 39,-47 - 3561: -17,48 + 2168: -25,2 + 3393: 12,-55 + 3394: -25,-36 + 3395: 23,-47 + 3396: 20,28 + 3397: 5,-71 + 3398: -5,-71 + 3399: -5,-64 + 3400: 5,-64 + 3401: 39,-47 + 3541: -17,48 - node: color: '#FFFFFFFF' id: WarnCorner @@ -5184,485 +5184,485 @@ entities: color: '#DE3A3A96' id: WarnCornerGreyscaleNE decals: - 1834: -22,-3 + 1814: -22,-3 - node: color: '#D381C996' id: WarnCornerGreyscaleNW decals: - 1392: -58,-1 + 1373: -58,-1 - node: color: '#DE3A3A96' id: WarnCornerGreyscaleNW decals: - 1842: -31,-3 + 1822: -31,-3 - node: color: '#FFFFFFFF' id: WarnCornerSmallNE decals: - 828: -30,34 - 973: -12,2 - 1498: -2,31 - 3539: -2,24 - 3601: -19,40 + 809: -30,34 + 954: -12,2 + 1479: -2,31 + 3519: -2,24 + 3581: -19,40 - node: color: '#FFFFFFFF' id: WarnCornerSmallNW decals: - 953: -8,2 - 1497: 2,31 - 2289: 2,24 - 3589: -27,38 - 3600: -15,40 + 934: -8,2 + 1478: 2,31 + 2269: 2,24 + 3569: -27,38 + 3580: -15,40 - node: color: '#FFFFFFFF' id: WarnCornerSmallSE decals: - 1164: -2,-78 - 1496: -2,36 - 3599: -19,42 + 1145: -2,-78 + 1477: -2,36 + 3579: -19,42 - node: color: '#FFFFFFFF' id: WarnCornerSmallSW decals: - 837: -30,36 - 1163: 2,-78 - 1495: 2,36 - 2729: 40,-35 - 3588: -27,40 - 3598: -15,42 + 818: -30,36 + 1144: 2,-78 + 1476: 2,36 + 2709: 40,-35 + 3568: -27,40 + 3578: -15,42 - node: color: '#52B4E996' id: WarnFullGreyscale decals: - 3471: 46,-14 + 3451: 46,-14 - node: color: '#D381C996' id: WarnFullGreyscale decals: - 2161: -58,0 + 2141: -58,0 - node: color: '#FFFFFFFF' id: WarnFullGreyscale decals: - 3245: 23,6 - 3490: 5,16 - 3492: 18,18 - 3510: -14,28 - 3511: -24,30 - 3512: -24,31 - 3513: -22,27 - 3514: -32,30 - 3515: -32,31 - 3516: -22,33 - 3517: -12,33 + 3225: 23,6 + 3470: 5,16 + 3472: 18,18 + 3490: -14,28 + 3491: -24,30 + 3492: -24,31 + 3493: -22,27 + 3494: -32,30 + 3495: -32,31 + 3496: -22,33 + 3497: -12,33 - node: color: '#FFFFFFFF' id: WarnLineE decals: - 827: -30,36 - 833: -30,35 - 853: -100,20 - 854: -100,21 - 974: -12,3 - 975: -12,4 - 976: -12,5 - 1021: -54,16 - 1488: -2,32 - 1489: -2,33 - 1490: -2,34 - 1491: -2,35 - 1904: -15,-18 - 1908: -37,-18 - 1912: -37,5 - 1917: -15,6 - 1918: -15,10 - 1919: -15,22 - 1923: 17,6 - 1924: 17,10 - 1925: 41,12 - 1933: 17,22 - 1934: 17,26 - 1935: 17,-9 - 1947: -21,26 - 2012: -15,-3 - 2053: -54,6 - 2056: -52,1 - 2057: -48,1 - 2287: -2,25 - 2444: -3,26 - 2445: -3,22 - 2695: -54,17 - 3053: 45,-16 - 3265: 3,34 - 3266: 3,35 - 3267: 3,36 - 3391: 56,15 - 3392: 56,14 - 3393: 56,13 - 3394: 56,12 - 3395: 56,11 - 3597: -19,41 + 808: -30,36 + 814: -30,35 + 834: -100,20 + 835: -100,21 + 955: -12,3 + 956: -12,4 + 957: -12,5 + 1002: -54,16 + 1469: -2,32 + 1470: -2,33 + 1471: -2,34 + 1472: -2,35 + 1884: -15,-18 + 1888: -37,-18 + 1892: -37,5 + 1897: -15,6 + 1898: -15,10 + 1899: -15,22 + 1903: 17,6 + 1904: 17,10 + 1905: 41,12 + 1913: 17,22 + 1914: 17,26 + 1915: 17,-9 + 1927: -21,26 + 1992: -15,-3 + 2033: -54,6 + 2036: -52,1 + 2037: -48,1 + 2267: -2,25 + 2424: -3,26 + 2425: -3,22 + 2675: -54,17 + 3033: 45,-16 + 3245: 3,34 + 3246: 3,35 + 3247: 3,36 + 3371: 56,15 + 3372: 56,14 + 3373: 56,13 + 3374: 56,12 + 3375: 56,11 + 3577: -19,41 - node: color: '#52B4E996' id: WarnLineGreyscaleE decals: - 3043: 45,-22 + 3023: 45,-22 - node: color: '#9FED5896' id: WarnLineGreyscaleE decals: - 2978: 45,-33 + 2958: 45,-33 - node: color: '#B02E26FF' id: WarnLineGreyscaleE decals: - 2894: -4,-47 + 2874: -4,-47 - node: color: '#D381C996' id: WarnLineGreyscaleE decals: - 2091: -48,-6 - 2093: -45,-1 - 2111: -42,-6 + 2071: -48,-6 + 2073: -45,-1 + 2091: -42,-6 - node: color: '#DE3A3A96' id: WarnLineGreyscaleE decals: - 1833: -22,-4 - 1875: -33,-20 - 1876: -33,-17 - 2899: -8,-47 + 1813: -22,-4 + 1855: -33,-20 + 1856: -33,-17 + 2879: -8,-47 - node: color: '#FFFFFFFF' id: WarnLineGreyscaleE decals: - 1886: -23,-21 - 1887: -23,-20 - 1888: -23,-19 - 1899: -18,-21 - 1900: -18,-20 - 1901: -18,-19 - 1962: -15,28 - 1967: -25,30 - 1968: -25,31 - 2440: 6,19 - 2521: 3,-6 - 3491: 17,18 + 1866: -23,-21 + 1867: -23,-20 + 1868: -23,-19 + 1879: -18,-21 + 1880: -18,-20 + 1881: -18,-19 + 1942: -15,28 + 1947: -25,30 + 1948: -25,31 + 2420: 6,19 + 2501: 3,-6 + 3471: 17,18 - node: color: '#D381C996' id: WarnLineGreyscaleN decals: - 1248: -54,4 - 1249: -55,4 - 1250: -51,5 - 1343: -46,14 - 1356: -56,4 - 1376: -56,-1 - 1377: -54,-1 - 1378: -53,-1 - 1379: -52,-1 - 2157: -41,12 - 2158: -42,12 + 1229: -54,4 + 1230: -55,4 + 1231: -51,5 + 1324: -46,14 + 1337: -56,4 + 1357: -56,-1 + 1358: -54,-1 + 1359: -53,-1 + 1360: -52,-1 + 2137: -41,12 + 2138: -42,12 - node: color: '#DE3A3A96' id: WarnLineGreyscaleN decals: - 1844: -27,-3 - 1872: -26,-19 - 1873: -28,-19 + 1824: -27,-3 + 1852: -26,-19 + 1853: -28,-19 - node: color: '#FFFFFFFF' id: WarnLineGreyscaleN decals: - 1964: -22,32 - 2138: -42,-10 - 2312: -12,32 - 2441: 5,15 - 3246: 23,5 + 1944: -22,32 + 2118: -42,-10 + 2292: -12,32 + 2421: 5,15 + 3226: 23,5 - node: color: '#334E6DC8' id: WarnLineGreyscaleS decals: - 2513: 4,-1 - 2514: -4,-1 - 2515: 0,-1 + 2493: 4,-1 + 2494: -4,-1 + 2495: 0,-1 - node: color: '#9FED5896' id: WarnLineGreyscaleS decals: - 2992: 44,-35 + 2972: 44,-35 - node: color: '#D381C996' id: WarnLineGreyscaleS decals: - 1251: -51,11 - 1252: -45,11 - 1350: -52,2 - 1351: -53,2 - 1352: -54,2 - 1355: -56,2 - 2160: -58,1 + 1232: -51,11 + 1233: -45,11 + 1331: -52,2 + 1332: -53,2 + 1333: -54,2 + 1336: -56,2 + 2140: -58,1 - node: color: '#DE3A3A96' id: WarnLineGreyscaleS decals: - 1827: -27,-6 - 2025: -26,-17 - 2026: -28,-17 - 2183: -33,4 + 1807: -27,-6 + 2005: -26,-17 + 2006: -28,-17 + 2163: -33,4 - node: color: '#FFFFFFFF' id: WarnLineGreyscaleS decals: - 1902: -19,-22 - 1903: -20,-22 - 1961: -18,27 - 1963: -22,28 - 2017: -21,-22 - 2310: -12,27 - 2439: 5,17 - 3244: 23,7 + 1882: -19,-22 + 1883: -20,-22 + 1941: -18,27 + 1943: -22,28 + 1997: -21,-22 + 2290: -12,27 + 2419: 5,17 + 3224: 23,7 - node: color: '#52B4E996' id: WarnLineGreyscaleW decals: - 3041: 43,-24 - 3042: 43,-21 - 3470: 47,-14 + 3021: 43,-24 + 3022: 43,-21 + 3450: 47,-14 - node: color: '#9FED5896' id: WarnLineGreyscaleW decals: - 2988: 43,-28 - 2989: 43,-32 + 2968: 43,-28 + 2969: 43,-32 - node: color: '#B02E26FF' id: WarnLineGreyscaleW decals: - 2893: -6,-47 + 2873: -6,-47 - node: color: '#D381C996' id: WarnLineGreyscaleW decals: - 2092: -46,-6 + 2072: -46,-6 - node: color: '#DE3A3A96' id: WarnLineGreyscaleW decals: - 1843: -31,-4 - 1874: -31,-20 - 2013: -21,-21 - 2014: -21,-19 - 2900: -9,-47 + 1823: -31,-4 + 1854: -31,-20 + 1993: -21,-21 + 1994: -21,-19 + 2880: -9,-47 - node: color: '#FFFFFFFF' id: WarnLineGreyscaleW decals: - 1883: -23,-21 - 1884: -23,-20 - 1885: -23,-19 - 1965: -23,30 - 1966: -23,31 - 1969: -31,30 - 1970: -31,31 - 2311: -13,28 - 2520: 5,-6 - 2697: 19,18 + 1863: -23,-21 + 1864: -23,-20 + 1865: -23,-19 + 1945: -23,30 + 1946: -23,31 + 1949: -31,30 + 1950: -31,31 + 2291: -13,28 + 2500: 5,-6 + 2677: 19,18 - node: color: '#DE3A3A96' id: WarnLineN decals: - 1807: -9,-19 + 1787: -9,-19 - node: color: '#FFFFFFFF' id: WarnLineN decals: - 814: -25,-1 - 815: -26,-1 - 816: -27,-1 - 817: -28,-1 - 818: -29,-1 - 836: -31,36 - 848: -117,18 - 849: -118,18 - 850: -119,18 - 851: -120,18 - 852: -121,18 - 1160: 0,-78 - 1161: 1,-78 - 1162: -1,-78 - 1492: -1,36 - 1493: 0,36 - 1494: 1,36 - 1906: -27,-25 - 1909: -40,-2 - 1913: -36,7 - 1928: 35,7 - 1929: 38,23 - 1939: 2,-25 - 1940: -2,-25 - 1941: 18,-25 - 2728: 39,-35 - 3055: 42,-18 - 3056: 36,-18 - 3206: -41,23 - 3403: 43,2 - 3565: -15,48 - 3566: -14,48 - 3567: -13,48 - 3568: -12,48 - 3569: -11,48 - 3570: -19,48 - 3571: -20,48 - 3572: -21,48 - 3573: -22,48 - 3574: -23,48 - 3590: -18,42 - 3591: -17,42 - 3592: -16,42 + 795: -25,-1 + 796: -26,-1 + 797: -27,-1 + 798: -28,-1 + 799: -29,-1 + 817: -31,36 + 829: -117,18 + 830: -118,18 + 831: -119,18 + 832: -120,18 + 833: -121,18 + 1141: 0,-78 + 1142: 1,-78 + 1143: -1,-78 + 1473: -1,36 + 1474: 0,36 + 1475: 1,36 + 1886: -27,-25 + 1889: -40,-2 + 1893: -36,7 + 1908: 35,7 + 1909: 38,23 + 1919: 2,-25 + 1920: -2,-25 + 1921: 18,-25 + 2708: 39,-35 + 3035: 42,-18 + 3036: 36,-18 + 3186: -41,23 + 3383: 43,2 + 3545: -15,48 + 3546: -14,48 + 3547: -13,48 + 3548: -12,48 + 3549: -11,48 + 3550: -19,48 + 3551: -20,48 + 3552: -21,48 + 3553: -22,48 + 3554: -23,48 + 3570: -18,42 + 3571: -17,42 + 3572: -16,42 - node: color: '#DE3A3A96' id: WarnLineS decals: - 1815: -9,-16 + 1795: -9,-16 - node: color: '#FFFFFFFF' id: WarnLineS decals: - 829: -24,34 - 830: -24,35 - 831: -24,36 - 834: -30,34 - 835: -30,35 - 954: -8,3 - 955: -8,4 - 956: -8,5 - 1165: -20,-56 - 1166: -20,-55 - 1167: -20,-54 - 1484: 2,32 - 1485: 2,33 - 1486: 2,34 - 1487: 2,35 - 1905: -17,-18 - 1907: -39,-18 - 1911: -39,5 - 1915: -17,6 - 1916: -17,10 - 1920: -17,22 - 1921: 15,10 - 1922: 15,6 - 1926: 39,12 - 1931: 15,22 - 1932: 15,26 - 1936: 15,-9 - 1946: -23,26 - 2011: -17,-3 - 2054: -56,6 - 2055: -54,1 - 2058: -50,1 - 2288: 2,25 - 2442: -4,22 - 2443: -5,26 - 2517: 3,-8 - 2518: 3,-7 - 2519: 3,-6 - 3054: 43,-16 - 3587: -27,39 - 3593: -15,41 + 810: -24,34 + 811: -24,35 + 812: -24,36 + 815: -30,34 + 816: -30,35 + 935: -8,3 + 936: -8,4 + 937: -8,5 + 1146: -20,-56 + 1147: -20,-55 + 1148: -20,-54 + 1465: 2,32 + 1466: 2,33 + 1467: 2,34 + 1468: 2,35 + 1885: -17,-18 + 1887: -39,-18 + 1891: -39,5 + 1895: -17,6 + 1896: -17,10 + 1900: -17,22 + 1901: 15,10 + 1902: 15,6 + 1906: 39,12 + 1911: 15,22 + 1912: 15,26 + 1916: 15,-9 + 1926: -23,26 + 1991: -17,-3 + 2034: -56,6 + 2035: -54,1 + 2038: -50,1 + 2268: 2,25 + 2422: -4,22 + 2423: -5,26 + 2497: 3,-8 + 2498: 3,-7 + 2499: 3,-6 + 3034: 43,-16 + 3567: -27,39 + 3573: -15,41 - node: color: '#DE3A3A96' id: WarnLineW decals: - 1809: -7,-18 + 1789: -7,-18 - node: color: '#FFFFFFFF' id: WarnLineW decals: - 811: -9,2 - 812: -10,2 - 813: -11,2 - 822: -25,34 - 823: -26,34 - 824: -27,34 - 825: -28,34 - 826: -29,34 - 843: -117,15 - 844: -118,15 - 845: -119,15 - 846: -120,15 - 847: -121,15 - 855: -62,40 - 856: -63,40 - 857: -64,40 - 1481: -1,31 - 1482: 0,31 - 1483: 1,31 - 1677: -58,2 - 1678: -59,2 - 1679: -60,2 - 1910: -40,0 - 1914: -36,9 - 1927: 35,9 - 1930: 38,25 - 1937: 2,-23 - 1938: -2,-23 - 1942: 18,-23 - 2052: -42,-2 - 2237: -27,-23 - 2284: 0,24 - 2285: 1,24 - 2286: -1,24 - 2919: 4,-39 - 2926: 5,-39 - 2927: 3,-39 - 3057: 42,-17 - 3058: 36,-17 - 3207: -41,25 - 3262: 0,29 - 3263: 1,29 - 3264: -1,29 - 3404: 43,3 - 3575: -16,51 - 3576: -15,51 - 3577: -14,51 - 3578: -13,51 - 3579: -12,51 - 3580: -11,51 - 3581: -18,51 - 3582: -19,51 - 3583: -20,51 - 3584: -21,51 - 3585: -22,51 - 3586: -23,51 - 3594: -16,40 - 3595: -17,40 - 3596: -18,40 - 3602: -43,-2 + 792: -9,2 + 793: -10,2 + 794: -11,2 + 803: -25,34 + 804: -26,34 + 805: -27,34 + 806: -28,34 + 807: -29,34 + 824: -117,15 + 825: -118,15 + 826: -119,15 + 827: -120,15 + 828: -121,15 + 836: -62,40 + 837: -63,40 + 838: -64,40 + 1462: -1,31 + 1463: 0,31 + 1464: 1,31 + 1658: -58,2 + 1659: -59,2 + 1660: -60,2 + 1890: -40,0 + 1894: -36,9 + 1907: 35,9 + 1910: 38,25 + 1917: 2,-23 + 1918: -2,-23 + 1922: 18,-23 + 2032: -42,-2 + 2217: -27,-23 + 2264: 0,24 + 2265: 1,24 + 2266: -1,24 + 2899: 4,-39 + 2906: 5,-39 + 2907: 3,-39 + 3037: 42,-17 + 3038: 36,-17 + 3187: -41,25 + 3242: 0,29 + 3243: 1,29 + 3244: -1,29 + 3384: 43,3 + 3555: -16,51 + 3556: -15,51 + 3557: -14,51 + 3558: -13,51 + 3559: -12,51 + 3560: -11,51 + 3561: -18,51 + 3562: -19,51 + 3563: -20,51 + 3564: -21,51 + 3565: -22,51 + 3566: -23,51 + 3574: -16,40 + 3575: -17,40 + 3576: -18,40 + 3582: -43,-2 - node: angle: -3.141592653589793 rad color: '#FFFFFFFF' id: WarningLine decals: - 539: -11,36 - 540: -12,36 - 541: -13,36 - 542: -14,36 - 543: -15,36 - 544: -16,36 - 545: -17,36 - 546: -18,36 - 547: -19,36 - 548: -20,36 - 549: -21,36 - 550: -22,36 - 551: -23,36 + 520: -11,36 + 521: -12,36 + 522: -13,36 + 523: -14,36 + 524: -15,36 + 525: -16,36 + 526: -17,36 + 527: -18,36 + 528: -19,36 + 529: -20,36 + 530: -21,36 + 531: -22,36 + 532: -23,36 - node: angle: -1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLine decals: - 731: -72,20 + 712: -72,20 - node: color: '#FFFFFFFF' id: WarningLine @@ -5672,338 +5672,338 @@ entities: 361: -34,11 364: -43,0 365: -42,0 - 506: -6,31 - 507: -7,31 - 679: 24,15 - 680: 23,15 - 681: 22,15 + 505: -6,31 + 506: -7,31 + 660: 24,15 + 661: 23,15 + 662: 22,15 - node: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLine decals: - 667: 51,0 - 668: 51,1 - 669: 51,2 - 670: 51,3 - 671: 51,-1 - 672: 51,-2 - 794: -15,3 + 648: 51,0 + 649: 51,1 + 650: 51,2 + 651: 51,3 + 652: 51,-1 + 653: 51,-2 + 775: -15,3 - node: color: '#FFFFFFFF' id: WarningLineCorner decals: 363: -35,11 - 508: -8,31 + 507: -8,31 - node: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLineCorner decals: - 673: 56,10 - 797: -15,2 + 654: 56,10 + 778: -15,2 - node: angle: -1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLineCornerFlipped decals: - 732: -72,19 + 713: -72,19 - node: color: '#FFFFFFFF' id: WarningLineCornerFlipped decals: 362: -31,11 - 509: -5,31 + 508: -5,31 - node: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLineCornerFlipped decals: - 795: -15,4 + 776: -15,4 - node: color: '#FFFFFFFF' id: WoodTrimThinBox decals: - 1451: 12,-30 + 1432: 12,-30 - node: color: '#FFFFFFFF' id: WoodTrimThinInnerNw decals: - 1322: -7,14 + 1303: -7,14 - node: color: '#FFFFFFFF' id: WoodTrimThinInnerSe decals: - 1312: -12,19 - 1409: 10,-27 + 1293: -12,19 + 1390: 10,-27 - node: color: '#FFFFFFFF' id: WoodTrimThinInnerSw decals: - 939: -23,-27 - 1317: -7,19 + 920: -23,-27 + 1298: -7,19 - node: color: '#FFFFFFFF' id: WoodTrimThinLineE decals: - 889: -29,11 - 890: -29,12 - 891: -29,13 - 892: -29,14 - 893: -29,15 - 894: -29,16 - 895: -29,17 - 896: -29,18 - 897: -29,19 - 898: -29,20 - 899: -29,21 - 903: -6,-5 - 917: 11,19 - 920: -42,8 - 931: -24,-31 - 932: -24,-30 - 933: -24,-29 - 934: -24,-28 - 1308: -12,15 - 1309: -12,16 - 1310: -12,17 - 1311: -12,18 - 1407: 10,-29 - 1408: 10,-28 - 2197: -24,-27 - 2222: -46,-16 - 2501: 24,-21 - 2502: 24,-20 - 2503: 24,-19 - 2504: 24,-18 - 2505: 24,-17 - 2506: 24,-16 + 870: -29,11 + 871: -29,12 + 872: -29,13 + 873: -29,14 + 874: -29,15 + 875: -29,16 + 876: -29,17 + 877: -29,18 + 878: -29,19 + 879: -29,20 + 880: -29,21 + 884: -6,-5 + 898: 11,19 + 901: -42,8 + 912: -24,-31 + 913: -24,-30 + 914: -24,-29 + 915: -24,-28 + 1289: -12,15 + 1290: -12,16 + 1291: -12,17 + 1292: -12,18 + 1388: 10,-29 + 1389: 10,-28 + 2177: -24,-27 + 2202: -46,-16 + 2481: 24,-21 + 2482: 24,-20 + 2483: 24,-19 + 2484: 24,-18 + 2485: 24,-17 + 2486: 24,-16 - node: color: '#FFFFFFFF' id: WoodTrimThinLineN decals: - 900: -3,-9 - 919: -44,6 - 935: -24,-28 - 936: -25,-28 - 937: -26,-28 - 938: -27,-28 - 1301: -7,19 - 1302: -8,19 - 1303: -9,19 - 1304: -10,19 - 1305: -11,19 - 1306: -12,19 - 1307: -13,19 - 1323: -8,14 - 1324: -9,14 - 1325: -10,14 - 1326: -11,14 - 1410: 17,-38 - 1411: 16,-38 - 1412: 18,-38 - 1413: 19,-38 - 1414: 20,-38 - 1415: 21,-38 - 2193: -20,-1 - 2194: -21,-1 - 2195: -22,-1 - 2196: -23,-1 - 2198: -23,-28 - 2228: -41,9 - 2229: -44,9 - 2230: -43,9 - 3098: 43,12 - 3099: 44,12 - 3100: 45,12 - 3439: 11,-38 - 3440: 10,-38 - 3441: 9,-38 - 3442: -25,10 - 3443: -26,10 - 3444: -27,10 + 881: -3,-9 + 900: -44,6 + 916: -24,-28 + 917: -25,-28 + 918: -26,-28 + 919: -27,-28 + 1282: -7,19 + 1283: -8,19 + 1284: -9,19 + 1285: -10,19 + 1286: -11,19 + 1287: -12,19 + 1288: -13,19 + 1304: -8,14 + 1305: -9,14 + 1306: -10,14 + 1307: -11,14 + 1391: 17,-38 + 1392: 16,-38 + 1393: 18,-38 + 1394: 19,-38 + 1395: 20,-38 + 1396: 21,-38 + 2173: -20,-1 + 2174: -21,-1 + 2175: -22,-1 + 2176: -23,-1 + 2178: -23,-28 + 2208: -41,9 + 2209: -44,9 + 2210: -43,9 + 3078: 43,12 + 3079: 44,12 + 3080: 45,12 + 3419: 11,-38 + 3420: 10,-38 + 3421: 9,-38 + 3422: -25,10 + 3423: -26,10 + 3424: -27,10 - node: color: '#FFFFFFFF' id: WoodTrimThinLineS decals: - 905: -3,-3 - 906: -4,-3 - 907: -5,-3 - 908: -7,-3 - 909: -8,-3 - 1313: -11,19 - 1314: -10,19 - 1315: -9,19 - 1316: -8,19 - 1396: 21,-27 - 1397: 20,-27 - 1398: 19,-27 - 1399: 18,-27 - 1400: 17,-27 - 1401: 16,-27 - 1402: 14,-27 - 1403: 15,-27 - 1404: 13,-27 - 1405: 12,-27 - 1406: 11,-27 - 2189: -20,2 - 2190: -21,2 - 2191: -22,2 - 2192: -23,2 - 2220: -47,-16 - 2221: -46,-16 - 2227: -41,7 - 3445: -25,22 - 3446: -26,22 - 3447: -27,22 + 886: -3,-3 + 887: -4,-3 + 888: -5,-3 + 889: -7,-3 + 890: -8,-3 + 1294: -11,19 + 1295: -10,19 + 1296: -9,19 + 1297: -8,19 + 1377: 21,-27 + 1378: 20,-27 + 1379: 19,-27 + 1380: 18,-27 + 1381: 17,-27 + 1382: 16,-27 + 1383: 14,-27 + 1384: 15,-27 + 1385: 13,-27 + 1386: 12,-27 + 1387: 11,-27 + 2169: -20,2 + 2170: -21,2 + 2171: -22,2 + 2172: -23,2 + 2200: -47,-16 + 2201: -46,-16 + 2207: -41,7 + 3425: -25,22 + 3426: -26,22 + 3427: -27,22 - node: color: '#FFFFFFFF' id: WoodTrimThinLineW decals: - 878: -23,11 - 879: -23,12 - 880: -23,13 - 881: -23,14 - 882: -23,15 - 883: -23,16 - 884: -23,17 - 885: -23,18 - 886: -23,19 - 887: -23,20 - 888: -23,21 - 904: -6,-5 - 921: -42,8 - 1318: -7,18 - 1319: -7,17 - 1320: -7,16 - 1321: -7,15 + 859: -23,11 + 860: -23,12 + 861: -23,13 + 862: -23,14 + 863: -23,15 + 864: -23,16 + 865: -23,17 + 866: -23,18 + 867: -23,19 + 868: -23,20 + 869: -23,21 + 885: -6,-5 + 902: -42,8 + 1299: -7,18 + 1300: -7,17 + 1301: -7,16 + 1302: -7,15 - node: cleanable: True color: '#474F52FF' id: amyjon decals: - 2878: -59.733913,26.110247 + 2858: -59.733913,26.110247 - node: cleanable: True color: '#FFFFFFFF' id: b decals: - 2945: -64,51 + 2925: -64,51 - node: cleanable: True color: '#B02E26FF' id: beepsky decals: - 2689: -51.97618,-34.20235 + 2669: -51.97618,-34.20235 - node: cleanable: True color: '#FFFFFFFF' id: body decals: - 2690: -45.397133,-31.934364 + 2670: -45.397133,-31.934364 - node: cleanable: True color: '#1D1D21FF' id: clawprint decals: - 2654: 51.849873,-10.273688 - 2655: 52.068623,-9.992438 - 2656: 51.849873,-9.726813 - 2657: 52.084248,-9.383063 - 2658: 51.849873,-9.070563 + 2634: 51.849873,-10.273688 + 2635: 52.068623,-9.992438 + 2636: 51.849873,-9.726813 + 2637: 52.084248,-9.383063 + 2638: 51.849873,-9.070563 - node: color: '#DE3A3A96' id: clown decals: - 1808: -9,-13 + 1788: -9,-13 - node: cleanable: True color: '#F38BAAFF' id: clown decals: - 2880: 29.974606,-11.088503 + 2860: 29.974606,-11.088503 - node: cleanable: True color: '#79150096' id: electricdanger decals: - 2802: -10.991777,-32.08159 + 2782: -10.991777,-32.08159 - node: cleanable: True color: '#79150096' id: end decals: - 1826: -60,-9 + 1806: -60,-9 - node: cleanable: True color: '#B02E26FF' id: end decals: - 2583: 32.02958,-5.0098457 + 2563: 32.02958,-5.0098457 - node: cleanable: True color: '#A4610696' id: engie decals: - 1825: 32,-54 + 1805: 32,-54 - node: cleanable: True color: '#F38BAAFF' id: evac decals: - 2653: 36.93115,20.930944 + 2633: 36.93115,20.930944 - node: cleanable: True color: '#F9801DFF' id: food decals: - 2577: 25.008858,-39.996895 + 2557: 25.008858,-39.996895 - node: color: '#D4D4D428' id: footprint decals: - 3422: 39.8631,-46.230442 - 3423: 40.128723,-45.902317 - 3424: 39.8631,-45.636692 - 3425: 40.159973,-45.371067 - 3426: 39.909973,-44.996067 - 3427: 40.191223,-44.621067 + 3402: 39.8631,-46.230442 + 3403: 40.128723,-45.902317 + 3404: 39.8631,-45.636692 + 3405: 40.159973,-45.371067 + 3406: 39.909973,-44.996067 + 3407: 40.191223,-44.621067 - node: cleanable: True color: '#FFFFFFFF' id: guy decals: - 2879: -67.988,9.536162 - 3111: 35,-29 + 2859: -67.988,9.536162 + 3091: 35,-29 - node: cleanable: True color: '#DE3A3AFF' id: largebrush decals: - 2944: -64,51 + 2924: -64,51 - node: color: '#D4D4D428' id: matt decals: - 1816: -30,-36 + 1796: -30,-36 - node: cleanable: True color: '#FED83DFF' id: shop decals: - 2877: -66.02228,7.9843655 + 2857: -66.02228,7.9843655 - node: cleanable: True color: '#DE3A3A18' id: splatter decals: - 717: 19,-8 + 698: 19,-8 - node: cleanable: True color: '#B02E26FF' id: stickman decals: - 2883: 9.979055,-45.00161 + 2863: 9.979055,-45.00161 type: DecalGrid - version: 2 data: @@ -114182,6 +114182,33 @@ entities: - pos: 12.5,-69.5 parent: 60 type: Transform +- proto: MaintenancePlantSpawner + entities: + - uid: 16997 + components: + - pos: -57.5,26.5 + parent: 60 + type: Transform + - uid: 16998 + components: + - pos: -56.5,-24.5 + parent: 60 + type: Transform + - uid: 16999 + components: + - pos: -6.5,-48.5 + parent: 60 + type: Transform + - uid: 17000 + components: + - pos: 59.5,-42.5 + parent: 60 + type: Transform + - uid: 17001 + components: + - pos: 30.5,18.5 + parent: 60 + type: Transform - proto: MaintenanceToolSpawner entities: - uid: 4328 diff --git a/Resources/Maps/barratry.yml b/Resources/Maps/barratry.yml index a2fc77f57d79b5..c88bff094e8178 100644 --- a/Resources/Maps/barratry.yml +++ b/Resources/Maps/barratry.yml @@ -80993,6 +80993,28 @@ entities: - pos: -61.5,26.5 parent: 1 type: Transform +- proto: MaintenancePlantSpawner + entities: + - uid: 9010 + components: + - pos: -21.5,0.5 + parent: 1 + type: Transform + - uid: 9013 + components: + - pos: -66.5,50.5 + parent: 1 + type: Transform + - uid: 9014 + components: + - pos: 8.5,39.5 + parent: 1 + type: Transform + - uid: 9016 + components: + - pos: 29.5,-5.5 + parent: 1 + type: Transform - proto: MaintenanceToolSpawner entities: - uid: 2072 diff --git a/Resources/Maps/box.yml b/Resources/Maps/box.yml index 78f4e0ab67badd..e1a354f08db7b7 100644 --- a/Resources/Maps/box.yml +++ b/Resources/Maps/box.yml @@ -11269,7 +11269,7 @@ entities: - dockJointId: docking46345 dockedWith: 21828 type: Docking - - SecondsUntilStateChange: -50852.926 + - SecondsUntilStateChange: -50920.91 changeAirtight: False state: Opening type: Door @@ -11317,7 +11317,7 @@ entities: - dockJointId: docking46345 dockedWith: 562 type: Docking - - SecondsUntilStateChange: -50852.926 + - SecondsUntilStateChange: -50920.91 changeAirtight: False state: Opening type: Door @@ -133764,6 +133764,28 @@ entities: - pos: -4.5,-48.5 parent: 8364 type: Transform +- proto: MaintenancePlantSpawner + entities: + - uid: 27525 + components: + - pos: -53.5,9.5 + parent: 8364 + type: Transform + - uid: 27526 + components: + - pos: -35.5,-15.5 + parent: 8364 + type: Transform + - uid: 27527 + components: + - pos: 41.5,-66.5 + parent: 8364 + type: Transform + - uid: 27528 + components: + - pos: 82.5,-37.5 + parent: 8364 + type: Transform - proto: MaintenanceToolSpawner entities: - uid: 14239 diff --git a/Resources/Maps/cluster.yml b/Resources/Maps/cluster.yml index 47ff0afa1a3d4c..42424846b2748e 100644 --- a/Resources/Maps/cluster.yml +++ b/Resources/Maps/cluster.yml @@ -59028,6 +59028,23 @@ entities: - pos: -31.5,21.5 parent: 1 type: Transform +- proto: MaintenancePlantSpawner + entities: + - uid: 10641 + components: + - pos: -28.5,24.5 + parent: 1 + type: Transform + - uid: 10642 + components: + - pos: 28.5,-18.5 + parent: 1 + type: Transform + - uid: 10643 + components: + - pos: 20.5,35.5 + parent: 1 + type: Transform - proto: MaintenanceToolSpawner entities: - uid: 8832 diff --git a/Resources/Maps/core.yml b/Resources/Maps/core.yml index 23cb136cefc32d..ac7ec2522e5031 100644 --- a/Resources/Maps/core.yml +++ b/Resources/Maps/core.yml @@ -88645,7 +88645,7 @@ entities: - pos: 44.5,7.5 parent: 2 type: Transform - - SecondsUntilStateChange: -15437.727 + - SecondsUntilStateChange: -15489.894 state: Opening type: Door - uid: 11091 @@ -88653,7 +88653,7 @@ entities: - pos: 62.5,21.5 parent: 2 type: Transform - - SecondsUntilStateChange: -155188.3 + - SecondsUntilStateChange: -155240.47 state: Opening type: Door - uid: 11092 @@ -90287,6 +90287,23 @@ entities: - pos: 2.5,33.5 parent: 2 type: Transform +- proto: MaintenancePlantSpawner + entities: + - uid: 18991 + components: + - pos: -35.5,13.5 + parent: 2 + type: Transform + - uid: 18992 + components: + - pos: 50.5,-31.5 + parent: 2 + type: Transform + - uid: 18993 + components: + - pos: 59.5,27.5 + parent: 2 + type: Transform - proto: MaintenanceToolSpawner entities: - uid: 11271 diff --git a/Resources/Maps/fland.yml b/Resources/Maps/fland.yml index 8e533ee8ac8ca5..86266b6076b341 100644 --- a/Resources/Maps/fland.yml +++ b/Resources/Maps/fland.yml @@ -173312,6 +173312,38 @@ entities: - pos: 58.5,-18.5 parent: 13329 type: Transform +- proto: MaintenancePlantSpawner + entities: + - uid: 19940 + components: + - pos: -23.5,19.5 + parent: 13329 + type: Transform + - uid: 20989 + components: + - pos: -25.5,74.5 + parent: 13329 + type: Transform + - uid: 20990 + components: + - pos: 51.5,48.5 + parent: 13329 + type: Transform + - uid: 20995 + components: + - pos: 100.5,24.5 + parent: 13329 + type: Transform + - uid: 20996 + components: + - pos: 66.5,-44.5 + parent: 13329 + type: Transform + - uid: 25466 + components: + - pos: 23.5,-25.5 + parent: 13329 + type: Transform - proto: MaintenanceToolSpawner entities: - uid: 31817 diff --git a/Resources/Maps/kettle.yml b/Resources/Maps/kettle.yml index 31f8ed4672f05a..3706dcf1fa52cd 100644 --- a/Resources/Maps/kettle.yml +++ b/Resources/Maps/kettle.yml @@ -18724,7 +18724,7 @@ entities: - pos: 34.5,12.5 parent: 82 type: Transform - - SecondsUntilStateChange: -493733.88 + - SecondsUntilStateChange: -493809.1 state: Opening type: Door - links: @@ -18735,7 +18735,7 @@ entities: - pos: 34.5,14.5 parent: 82 type: Transform - - SecondsUntilStateChange: -493733.88 + - SecondsUntilStateChange: -493809.1 state: Opening type: Door - links: @@ -18762,7 +18762,7 @@ entities: - pos: 34.5,13.5 parent: 82 type: Transform - - SecondsUntilStateChange: -493733.88 + - SecondsUntilStateChange: -493809.1 state: Opening type: Door - links: @@ -18789,7 +18789,7 @@ entities: - pos: 53.5,-25.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491998.8 + - SecondsUntilStateChange: -492074.03 state: Opening type: Door - links: @@ -18800,7 +18800,7 @@ entities: - pos: 53.5,-26.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491998.8 + - SecondsUntilStateChange: -492074.03 state: Opening type: Door - links: @@ -18811,7 +18811,7 @@ entities: - pos: 53.5,-27.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491998.8 + - SecondsUntilStateChange: -492074.03 state: Opening type: Door - links: @@ -18822,7 +18822,7 @@ entities: - pos: 53.5,-28.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491998.8 + - SecondsUntilStateChange: -492074.03 state: Opening type: Door - links: @@ -18833,7 +18833,7 @@ entities: - pos: 53.5,-29.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491998.8 + - SecondsUntilStateChange: -492074.03 state: Opening type: Door - links: @@ -18844,7 +18844,7 @@ entities: - pos: 53.5,-30.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491998.8 + - SecondsUntilStateChange: -492074.03 state: Opening type: Door - links: @@ -18855,7 +18855,7 @@ entities: - pos: 56.5,-25.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491998.8 + - SecondsUntilStateChange: -492074.03 state: Opening type: Door - links: @@ -18866,7 +18866,7 @@ entities: - pos: 56.5,-26.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491998.8 + - SecondsUntilStateChange: -492074.03 state: Opening type: Door - links: @@ -18877,7 +18877,7 @@ entities: - pos: 56.5,-27.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491998.8 + - SecondsUntilStateChange: -492074.03 state: Opening type: Door - links: @@ -18888,7 +18888,7 @@ entities: - pos: 56.5,-28.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491998.8 + - SecondsUntilStateChange: -492074.03 state: Opening type: Door - links: @@ -18899,7 +18899,7 @@ entities: - pos: 56.5,-29.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491998.8 + - SecondsUntilStateChange: -492074.03 state: Opening type: Door - links: @@ -18910,7 +18910,7 @@ entities: - pos: 56.5,-30.5 parent: 82 type: Transform - - SecondsUntilStateChange: -491998.8 + - SecondsUntilStateChange: -492074.03 state: Opening type: Door - links: @@ -18921,7 +18921,7 @@ entities: - pos: -21.5,50.5 parent: 82 type: Transform - - SecondsUntilStateChange: -432653.75 + - SecondsUntilStateChange: -432728.97 state: Opening type: Door - links: @@ -18932,7 +18932,7 @@ entities: - pos: -21.5,48.5 parent: 82 type: Transform - - SecondsUntilStateChange: -432653.75 + - SecondsUntilStateChange: -432728.97 state: Opening type: Door - links: @@ -18943,7 +18943,7 @@ entities: - pos: -21.5,49.5 parent: 82 type: Transform - - SecondsUntilStateChange: -432653.75 + - SecondsUntilStateChange: -432728.97 state: Opening type: Door - links: @@ -18954,7 +18954,7 @@ entities: - pos: -21.5,47.5 parent: 82 type: Transform - - SecondsUntilStateChange: -432653.75 + - SecondsUntilStateChange: -432728.97 state: Opening type: Door - links: @@ -19019,7 +19019,7 @@ entities: - pos: 23.5,14.5 parent: 82 type: Transform - - SecondsUntilStateChange: -493795.12 + - SecondsUntilStateChange: -493870.34 state: Closing type: Door - links: @@ -19030,7 +19030,7 @@ entities: - pos: 23.5,13.5 parent: 82 type: Transform - - SecondsUntilStateChange: -493795.12 + - SecondsUntilStateChange: -493870.34 state: Closing type: Door - links: @@ -19041,7 +19041,7 @@ entities: - pos: 23.5,12.5 parent: 82 type: Transform - - SecondsUntilStateChange: -493795.12 + - SecondsUntilStateChange: -493870.34 state: Closing type: Door - links: @@ -122399,7 +122399,7 @@ entities: - pos: -41.5,-42.5 parent: 82 type: Transform - - SecondsUntilStateChange: -380762.56 + - SecondsUntilStateChange: -380837.78 state: Opening type: Door - uid: 2822 @@ -122407,7 +122407,7 @@ entities: - pos: -41.5,-44.5 parent: 82 type: Transform - - SecondsUntilStateChange: -380760.34 + - SecondsUntilStateChange: -380835.56 state: Opening type: Door - uid: 8896 @@ -122416,7 +122416,7 @@ entities: pos: -39.5,-42.5 parent: 82 type: Transform - - SecondsUntilStateChange: -380934.6 + - SecondsUntilStateChange: -381009.8 state: Opening type: Door - uid: 15911 @@ -122425,7 +122425,7 @@ entities: pos: -39.5,-44.5 parent: 82 type: Transform - - SecondsUntilStateChange: -380759.62 + - SecondsUntilStateChange: -380834.84 state: Opening type: Door - uid: 16963 @@ -122453,7 +122453,7 @@ entities: - pos: -41.5,-40.5 parent: 82 type: Transform - - SecondsUntilStateChange: -380761.53 + - SecondsUntilStateChange: -380836.75 state: Opening type: Door - proto: HospitalCurtainsOpen @@ -123439,7 +123439,7 @@ entities: - pos: 38.44111,-13.189944 parent: 82 type: Transform -- proto: lantern +- proto: Lantern entities: - uid: 20173 components: @@ -125222,6 +125222,28 @@ entities: - pos: 7.5,-1.5 parent: 82 type: Transform +- proto: MaintenancePlantSpawner + entities: + - uid: 21987 + components: + - pos: -42.5,46.5 + parent: 82 + type: Transform + - uid: 22029 + components: + - pos: -12.5,-18.5 + parent: 82 + type: Transform + - uid: 22031 + components: + - pos: 41.5,54.5 + parent: 82 + type: Transform + - uid: 22043 + components: + - pos: -54.5,-4.5 + parent: 82 + type: Transform - proto: MaintenanceToolSpawner entities: - uid: 1209 @@ -140966,7 +140988,7 @@ entities: - pos: 58.5,-6.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376831.06 + - SecondsUntilStateChange: -376906.28 state: Opening type: Door - links: @@ -140977,7 +140999,7 @@ entities: - pos: 59.5,-6.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376831.06 + - SecondsUntilStateChange: -376906.28 state: Opening type: Door - links: @@ -140989,7 +141011,7 @@ entities: pos: 3.5,-19.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141001,7 +141023,7 @@ entities: pos: 2.5,-19.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141012,7 +141034,7 @@ entities: - pos: 1.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141023,7 +141045,7 @@ entities: - pos: 2.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141034,7 +141056,7 @@ entities: - pos: 3.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141045,7 +141067,7 @@ entities: - pos: 5.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141056,7 +141078,7 @@ entities: - pos: 6.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141067,7 +141089,7 @@ entities: - pos: 7.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141078,7 +141100,7 @@ entities: - pos: 8.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141089,7 +141111,7 @@ entities: - pos: 9.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141100,7 +141122,7 @@ entities: - pos: 11.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141111,7 +141133,7 @@ entities: - pos: 12.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141122,7 +141144,7 @@ entities: - pos: 13.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141133,7 +141155,7 @@ entities: - pos: 14.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141145,7 +141167,7 @@ entities: pos: 16.5,-11.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141157,7 +141179,7 @@ entities: pos: 16.5,-10.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141169,7 +141191,7 @@ entities: pos: -1.5,-11.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141181,7 +141203,7 @@ entities: pos: -1.5,-10.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141193,7 +141215,7 @@ entities: pos: 25.5,64.5 parent: 82 type: Transform - - SecondsUntilStateChange: -387983.3 + - SecondsUntilStateChange: -388058.53 state: Opening type: Door - links: @@ -141228,7 +141250,7 @@ entities: - pos: 62.5,-6.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376831.06 + - SecondsUntilStateChange: -376906.28 state: Opening type: Door - links: @@ -141239,7 +141261,7 @@ entities: - pos: -8.5,32.5 parent: 82 type: Transform - - SecondsUntilStateChange: -386675.22 + - SecondsUntilStateChange: -386750.44 state: Opening type: Door - links: @@ -141250,7 +141272,7 @@ entities: - pos: -9.5,32.5 parent: 82 type: Transform - - SecondsUntilStateChange: -386675.22 + - SecondsUntilStateChange: -386750.44 state: Opening type: Door - links: @@ -141261,7 +141283,7 @@ entities: - pos: -7.5,32.5 parent: 82 type: Transform - - SecondsUntilStateChange: -386675.22 + - SecondsUntilStateChange: -386750.44 state: Opening type: Door - links: @@ -141273,7 +141295,7 @@ entities: pos: -6.5,34.5 parent: 82 type: Transform - - SecondsUntilStateChange: -386675.22 + - SecondsUntilStateChange: -386750.44 state: Opening type: Door - links: @@ -141285,7 +141307,7 @@ entities: pos: -6.5,35.5 parent: 82 type: Transform - - SecondsUntilStateChange: -386675.22 + - SecondsUntilStateChange: -386750.44 state: Opening type: Door - links: @@ -141296,7 +141318,7 @@ entities: - pos: 60.5,-6.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376831.06 + - SecondsUntilStateChange: -376906.28 state: Opening type: Door - links: @@ -141308,7 +141330,7 @@ entities: pos: 44.5,12.5 parent: 82 type: Transform - - SecondsUntilStateChange: -76172.44 + - SecondsUntilStateChange: -76247.664 state: Opening type: Door - links: @@ -141320,7 +141342,7 @@ entities: pos: 44.5,13.5 parent: 82 type: Transform - - SecondsUntilStateChange: -76172.44 + - SecondsUntilStateChange: -76247.664 state: Opening type: Door - links: @@ -141332,7 +141354,7 @@ entities: pos: -46.5,-34.5 parent: 82 type: Transform - - SecondsUntilStateChange: -379616.38 + - SecondsUntilStateChange: -379691.6 state: Opening type: Door - links: @@ -141344,7 +141366,7 @@ entities: pos: 12.5,-19.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141356,7 +141378,7 @@ entities: pos: 11.5,-19.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141368,7 +141390,7 @@ entities: pos: 10.5,-19.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141380,7 +141402,7 @@ entities: pos: 4.5,-19.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141391,7 +141413,7 @@ entities: - pos: 0.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -487866.5 + - SecondsUntilStateChange: -487941.72 state: Opening type: Door - links: @@ -141403,7 +141425,7 @@ entities: pos: 44.5,14.5 parent: 82 type: Transform - - SecondsUntilStateChange: -76172.44 + - SecondsUntilStateChange: -76247.664 state: Opening type: Door - links: @@ -141415,7 +141437,7 @@ entities: pos: -6.5,33.5 parent: 82 type: Transform - - SecondsUntilStateChange: -386675.22 + - SecondsUntilStateChange: -386750.44 state: Opening type: Door - links: @@ -141426,7 +141448,7 @@ entities: - pos: -10.5,32.5 parent: 82 type: Transform - - SecondsUntilStateChange: -386675.22 + - SecondsUntilStateChange: -386750.44 state: Opening type: Door - links: @@ -141438,7 +141460,7 @@ entities: pos: 25.5,65.5 parent: 82 type: Transform - - SecondsUntilStateChange: -387983.3 + - SecondsUntilStateChange: -388058.53 state: Opening type: Door - links: @@ -141449,7 +141471,7 @@ entities: - pos: 28.5,67.5 parent: 82 type: Transform - - SecondsUntilStateChange: -387983.3 + - SecondsUntilStateChange: -388058.53 state: Opening type: Door - links: @@ -141460,7 +141482,7 @@ entities: - pos: 27.5,67.5 parent: 82 type: Transform - - SecondsUntilStateChange: -387983.3 + - SecondsUntilStateChange: -388058.53 state: Opening type: Door - links: @@ -141471,7 +141493,7 @@ entities: - pos: 28.5,62.5 parent: 82 type: Transform - - SecondsUntilStateChange: -387983.3 + - SecondsUntilStateChange: -388058.53 state: Opening type: Door - links: @@ -141482,7 +141504,7 @@ entities: - pos: 26.5,62.5 parent: 82 type: Transform - - SecondsUntilStateChange: -387983.3 + - SecondsUntilStateChange: -388058.53 state: Opening type: Door - links: @@ -141493,7 +141515,7 @@ entities: - pos: 27.5,62.5 parent: 82 type: Transform - - SecondsUntilStateChange: -387983.3 + - SecondsUntilStateChange: -388058.53 state: Opening type: Door - links: @@ -141505,7 +141527,7 @@ entities: pos: -6.5,36.5 parent: 82 type: Transform - - SecondsUntilStateChange: -386675.22 + - SecondsUntilStateChange: -386750.44 state: Opening type: Door - links: @@ -141517,7 +141539,7 @@ entities: pos: -46.5,-35.5 parent: 82 type: Transform - - SecondsUntilStateChange: -379616.38 + - SecondsUntilStateChange: -379691.6 state: Opening type: Door - links: @@ -141528,7 +141550,7 @@ entities: - pos: -45.5,-33.5 parent: 82 type: Transform - - SecondsUntilStateChange: -379616.38 + - SecondsUntilStateChange: -379691.6 state: Opening type: Door - links: @@ -141539,7 +141561,7 @@ entities: - pos: -44.5,-33.5 parent: 82 type: Transform - - SecondsUntilStateChange: -379616.38 + - SecondsUntilStateChange: -379691.6 state: Opening type: Door - links: @@ -141550,7 +141572,7 @@ entities: - pos: -42.5,-33.5 parent: 82 type: Transform - - SecondsUntilStateChange: -379616.38 + - SecondsUntilStateChange: -379691.6 state: Opening type: Door - links: @@ -141561,7 +141583,7 @@ entities: - pos: -41.5,-33.5 parent: 82 type: Transform - - SecondsUntilStateChange: -379616.38 + - SecondsUntilStateChange: -379691.6 state: Opening type: Door - links: @@ -141572,7 +141594,7 @@ entities: - pos: 61.5,-6.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376831.06 + - SecondsUntilStateChange: -376906.28 state: Opening type: Door - links: @@ -141584,7 +141606,7 @@ entities: pos: 57.5,-7.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376831.06 + - SecondsUntilStateChange: -376906.28 state: Opening type: Door - links: @@ -141596,7 +141618,7 @@ entities: pos: 57.5,-8.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376831.06 + - SecondsUntilStateChange: -376906.28 state: Opening type: Door - links: @@ -141608,7 +141630,7 @@ entities: pos: 57.5,-10.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376831.06 + - SecondsUntilStateChange: -376906.28 state: Opening type: Door - links: @@ -141620,7 +141642,7 @@ entities: pos: 57.5,-11.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376831.06 + - SecondsUntilStateChange: -376906.28 state: Opening type: Door - links: @@ -141632,7 +141654,7 @@ entities: pos: 57.5,-9.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376831.06 + - SecondsUntilStateChange: -376906.28 state: Opening type: Door - links: @@ -141644,7 +141666,7 @@ entities: pos: 59.5,-14.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376831.06 + - SecondsUntilStateChange: -376906.28 state: Opening type: Door - links: @@ -141656,7 +141678,7 @@ entities: pos: 59.5,-15.5 parent: 82 type: Transform - - SecondsUntilStateChange: -376831.06 + - SecondsUntilStateChange: -376906.28 state: Opening type: Door - links: @@ -141835,7 +141857,7 @@ entities: - pos: -26.5,60.5 parent: 82 type: Transform - - SecondsUntilStateChange: -432667.1 + - SecondsUntilStateChange: -432742.3 state: Closing type: Door - links: @@ -141846,7 +141868,7 @@ entities: - pos: -24.5,60.5 parent: 82 type: Transform - - SecondsUntilStateChange: -432667.1 + - SecondsUntilStateChange: -432742.3 state: Closing type: Door - links: @@ -141857,7 +141879,7 @@ entities: - pos: -25.5,60.5 parent: 82 type: Transform - - SecondsUntilStateChange: -432667.1 + - SecondsUntilStateChange: -432742.3 state: Closing type: Door - links: @@ -141868,7 +141890,7 @@ entities: - pos: -23.5,60.5 parent: 82 type: Transform - - SecondsUntilStateChange: -432667.1 + - SecondsUntilStateChange: -432742.3 state: Closing type: Door - links: @@ -141879,7 +141901,7 @@ entities: - pos: -27.5,60.5 parent: 82 type: Transform - - SecondsUntilStateChange: -432667.1 + - SecondsUntilStateChange: -432742.3 state: Closing type: Door - links: @@ -172122,7 +172144,7 @@ entities: - pos: -11.5,17.5 parent: 82 type: Transform - - SecondsUntilStateChange: -557774.44 + - SecondsUntilStateChange: -557849.7 state: Opening type: Door - uid: 4246 @@ -172130,7 +172152,7 @@ entities: - pos: -11.5,19.5 parent: 82 type: Transform - - SecondsUntilStateChange: -557772.7 + - SecondsUntilStateChange: -557847.94 state: Opening type: Door - uid: 8013 diff --git a/Resources/Maps/marathon.yml b/Resources/Maps/marathon.yml index 8ec944a6491379..2c6d1ca2d633fc 100644 --- a/Resources/Maps/marathon.yml +++ b/Resources/Maps/marathon.yml @@ -106750,6 +106750,28 @@ entities: - pos: -41.5,-26.5 parent: 30 type: Transform +- proto: MaintenancePlantSpawner + entities: + - uid: 20805 + components: + - pos: -47.5,26.5 + parent: 30 + type: Transform + - uid: 20806 + components: + - pos: 20.5,52.5 + parent: 30 + type: Transform + - uid: 20807 + components: + - pos: 2.5,-13.5 + parent: 30 + type: Transform + - uid: 20808 + components: + - pos: -63.5,-64.5 + parent: 30 + type: Transform - proto: MaintenanceToolSpawner entities: - uid: 9197 diff --git a/Resources/Maps/meta.yml b/Resources/Maps/meta.yml index a4ad4f74de1ad1..e1addb3f06f607 100644 --- a/Resources/Maps/meta.yml +++ b/Resources/Maps/meta.yml @@ -124951,6 +124951,28 @@ entities: - pos: 25.5,35.5 parent: 5350 type: Transform +- proto: MaintenancePlantSpawner + entities: + - uid: 11184 + components: + - pos: -14.5,35.5 + parent: 5350 + type: Transform + - uid: 11185 + components: + - pos: 21.5,35.5 + parent: 5350 + type: Transform + - uid: 11186 + components: + - pos: 33.5,-35.5 + parent: 5350 + type: Transform + - uid: 11187 + components: + - pos: -35.5,-56.5 + parent: 5350 + type: Transform - proto: MaintenanceToolSpawner entities: - uid: 3250 @@ -139447,7 +139469,7 @@ entities: - pos: 9.5,-47.5 parent: 5350 type: Transform - - SecondsUntilStateChange: -29641.27 + - SecondsUntilStateChange: -29681.104 state: Closing type: Door - links: @@ -139458,7 +139480,7 @@ entities: - pos: 10.5,-47.5 parent: 5350 type: Transform - - SecondsUntilStateChange: -29641.27 + - SecondsUntilStateChange: -29681.104 state: Closing type: Door - links: @@ -139469,7 +139491,7 @@ entities: - pos: 11.5,-47.5 parent: 5350 type: Transform - - SecondsUntilStateChange: -29641.27 + - SecondsUntilStateChange: -29681.104 state: Closing type: Door - links: @@ -139480,7 +139502,7 @@ entities: - pos: 13.5,-47.5 parent: 5350 type: Transform - - SecondsUntilStateChange: -29641.27 + - SecondsUntilStateChange: -29681.104 state: Closing type: Door - links: @@ -139491,7 +139513,7 @@ entities: - pos: 14.5,-47.5 parent: 5350 type: Transform - - SecondsUntilStateChange: -29641.27 + - SecondsUntilStateChange: -29681.104 state: Closing type: Door - links: @@ -139502,7 +139524,7 @@ entities: - pos: 15.5,-47.5 parent: 5350 type: Transform - - SecondsUntilStateChange: -29641.27 + - SecondsUntilStateChange: -29681.104 state: Closing type: Door - links: diff --git a/Resources/Maps/omega.yml b/Resources/Maps/omega.yml index af8f4124dfb4db..b79b10ae9afad2 100644 --- a/Resources/Maps/omega.yml +++ b/Resources/Maps/omega.yml @@ -60827,6 +60827,23 @@ entities: - pos: 7.5,12.5 parent: 4812 type: Transform +- proto: MaintenancePlantSpawner + entities: + - uid: 10549 + components: + - pos: -13.5,13.5 + parent: 4812 + type: Transform + - uid: 10585 + components: + - pos: -29.5,-31.5 + parent: 4812 + type: Transform + - uid: 10586 + components: + - pos: 22.5,-34.5 + parent: 4812 + type: Transform - proto: MaintenanceToolSpawner entities: - uid: 4608 diff --git a/Resources/Maps/origin.yml b/Resources/Maps/origin.yml index 972424d4fd9d5e..e48a10209a559f 100644 --- a/Resources/Maps/origin.yml +++ b/Resources/Maps/origin.yml @@ -22312,7 +22312,7 @@ entities: - pos: 10.5,47.5 parent: 2 type: Transform - - SecondsUntilStateChange: -236008.25 + - SecondsUntilStateChange: -236068.19 state: Closing type: Door - enabled: False @@ -22329,7 +22329,7 @@ entities: - pos: 10.5,49.5 parent: 2 type: Transform - - SecondsUntilStateChange: -236008.25 + - SecondsUntilStateChange: -236068.19 state: Closing type: Door - enabled: False @@ -22346,7 +22346,7 @@ entities: - pos: 10.5,48.5 parent: 2 type: Transform - - SecondsUntilStateChange: -236008.25 + - SecondsUntilStateChange: -236068.19 state: Closing type: Door - enabled: False @@ -22365,7 +22365,7 @@ entities: - pos: 18.5,-56.5 parent: 2 type: Transform - - SecondsUntilStateChange: -301437.7 + - SecondsUntilStateChange: -301497.62 state: Closing type: Door - enabled: False @@ -22382,7 +22382,7 @@ entities: - pos: 47.5,-51.5 parent: 2 type: Transform - - SecondsUntilStateChange: -170818.45 + - SecondsUntilStateChange: -170878.39 state: Closing type: Door - enabled: False @@ -22399,7 +22399,7 @@ entities: - pos: 47.5,-52.5 parent: 2 type: Transform - - SecondsUntilStateChange: -170818.45 + - SecondsUntilStateChange: -170878.39 state: Closing type: Door - enabled: False @@ -22416,7 +22416,7 @@ entities: - pos: 47.5,-53.5 parent: 2 type: Transform - - SecondsUntilStateChange: -170818.45 + - SecondsUntilStateChange: -170878.39 state: Closing type: Door - enabled: False @@ -22433,7 +22433,7 @@ entities: - pos: 47.5,-54.5 parent: 2 type: Transform - - SecondsUntilStateChange: -170818.45 + - SecondsUntilStateChange: -170878.39 state: Closing type: Door - enabled: False @@ -22450,7 +22450,7 @@ entities: - pos: 52.5,-58.5 parent: 2 type: Transform - - SecondsUntilStateChange: -170806.12 + - SecondsUntilStateChange: -170866.06 state: Closing type: Door - enabled: False @@ -22467,7 +22467,7 @@ entities: - pos: 50.5,-62.5 parent: 2 type: Transform - - SecondsUntilStateChange: -170808.66 + - SecondsUntilStateChange: -170868.6 state: Closing type: Door - enabled: False @@ -22485,7 +22485,7 @@ entities: pos: 55.5,-56.5 parent: 2 type: Transform - - SecondsUntilStateChange: -170756.94 + - SecondsUntilStateChange: -170816.88 state: Closing type: Door - enabled: False @@ -22503,7 +22503,7 @@ entities: pos: 54.5,-56.5 parent: 2 type: Transform - - SecondsUntilStateChange: -170756.94 + - SecondsUntilStateChange: -170816.88 state: Closing type: Door - enabled: False @@ -22520,7 +22520,7 @@ entities: - pos: -45.5,-34.5 parent: 2 type: Transform - - SecondsUntilStateChange: -426286.12 + - SecondsUntilStateChange: -426346.06 state: Closing type: Door - enabled: False @@ -22538,7 +22538,7 @@ entities: pos: -40.5,-40.5 parent: 2 type: Transform - - SecondsUntilStateChange: -424636.47 + - SecondsUntilStateChange: -424696.4 state: Closing type: Door - enabled: False @@ -22556,7 +22556,7 @@ entities: pos: -39.5,-40.5 parent: 2 type: Transform - - SecondsUntilStateChange: -424636.47 + - SecondsUntilStateChange: -424696.4 state: Closing type: Door - enabled: False @@ -22574,7 +22574,7 @@ entities: pos: -38.5,-40.5 parent: 2 type: Transform - - SecondsUntilStateChange: -424636.47 + - SecondsUntilStateChange: -424696.4 state: Closing type: Door - enabled: False @@ -22592,7 +22592,7 @@ entities: pos: -37.5,-40.5 parent: 2 type: Transform - - SecondsUntilStateChange: -424636.47 + - SecondsUntilStateChange: -424696.4 state: Closing type: Door - enabled: False @@ -22609,7 +22609,7 @@ entities: - pos: -49.5,19.5 parent: 2 type: Transform - - SecondsUntilStateChange: -304600.84 + - SecondsUntilStateChange: -304660.78 state: Closing type: Door - enabled: False @@ -22626,7 +22626,7 @@ entities: - pos: -49.5,23.5 parent: 2 type: Transform - - SecondsUntilStateChange: -304600.84 + - SecondsUntilStateChange: -304660.78 state: Closing type: Door - enabled: False @@ -22643,7 +22643,7 @@ entities: - pos: 51.5,44.5 parent: 2 type: Transform - - SecondsUntilStateChange: -266759.16 + - SecondsUntilStateChange: -266819.1 state: Closing type: Door - enabled: False @@ -22662,7 +22662,7 @@ entities: - pos: 54.5,45.5 parent: 2 type: Transform - - SecondsUntilStateChange: -266759.16 + - SecondsUntilStateChange: -266819.1 state: Closing type: Door - enabled: False @@ -22680,7 +22680,7 @@ entities: - pos: -52.5,34.5 parent: 2 type: Transform - - SecondsUntilStateChange: -98727.94 + - SecondsUntilStateChange: -98787.87 state: Closing type: Door - enabled: False @@ -22697,7 +22697,7 @@ entities: - pos: -52.5,30.5 parent: 2 type: Transform - - SecondsUntilStateChange: -98700.23 + - SecondsUntilStateChange: -98760.16 state: Closing type: Door - enabled: False @@ -22714,7 +22714,7 @@ entities: - pos: -53.5,23.5 parent: 2 type: Transform - - SecondsUntilStateChange: -98768.875 + - SecondsUntilStateChange: -98828.805 state: Closing type: Door - enabled: False @@ -22731,7 +22731,7 @@ entities: - pos: -53.5,19.5 parent: 2 type: Transform - - SecondsUntilStateChange: -98768.875 + - SecondsUntilStateChange: -98828.805 state: Closing type: Door - enabled: False @@ -22748,7 +22748,7 @@ entities: - pos: 53.5,46.5 parent: 2 type: Transform - - SecondsUntilStateChange: -265017.03 + - SecondsUntilStateChange: -265076.97 state: Closing type: Door - enabled: False @@ -22767,7 +22767,7 @@ entities: - pos: 55.5,46.5 parent: 2 type: Transform - - SecondsUntilStateChange: -267019.4 + - SecondsUntilStateChange: -267079.34 state: Closing type: Door - enabled: False @@ -22785,7 +22785,7 @@ entities: - pos: 50.5,47.5 parent: 2 type: Transform - - SecondsUntilStateChange: -266759.16 + - SecondsUntilStateChange: -266819.1 state: Closing type: Door - enabled: False @@ -22802,7 +22802,7 @@ entities: - pos: 57.5,44.5 parent: 2 type: Transform - - SecondsUntilStateChange: -266759.16 + - SecondsUntilStateChange: -266819.1 state: Closing type: Door - enabled: False @@ -22819,7 +22819,7 @@ entities: - pos: 56.5,47.5 parent: 2 type: Transform - - SecondsUntilStateChange: -266759.16 + - SecondsUntilStateChange: -266819.1 state: Closing type: Door - enabled: False @@ -22841,7 +22841,7 @@ entities: - pos: 53.5,48.5 parent: 2 type: Transform - - SecondsUntilStateChange: -265017.03 + - SecondsUntilStateChange: -265076.97 state: Closing type: Door - enabled: False @@ -22868,7 +22868,7 @@ entities: - pos: 58.5,47.5 parent: 2 type: Transform - - SecondsUntilStateChange: -266759.16 + - SecondsUntilStateChange: -266819.1 state: Closing type: Door - enabled: False @@ -22885,7 +22885,7 @@ entities: - pos: 52.5,45.5 parent: 2 type: Transform - - SecondsUntilStateChange: -267254.8 + - SecondsUntilStateChange: -267314.75 state: Closing type: Door - enabled: False @@ -22903,7 +22903,7 @@ entities: - pos: 53.5,44.5 parent: 2 type: Transform - - SecondsUntilStateChange: -265017.03 + - SecondsUntilStateChange: -265076.97 state: Closing type: Door - enabled: False @@ -22921,7 +22921,7 @@ entities: - pos: 55.5,44.5 parent: 2 type: Transform - - SecondsUntilStateChange: -266759.16 + - SecondsUntilStateChange: -266819.1 state: Closing type: Door - enabled: False @@ -22939,7 +22939,7 @@ entities: - pos: 58.5,45.5 parent: 2 type: Transform - - SecondsUntilStateChange: -266759.16 + - SecondsUntilStateChange: -266819.1 state: Closing type: Door - enabled: False @@ -22956,7 +22956,7 @@ entities: - pos: 57.5,46.5 parent: 2 type: Transform - - SecondsUntilStateChange: -266759.16 + - SecondsUntilStateChange: -266819.1 state: Closing type: Door - enabled: False @@ -22980,7 +22980,7 @@ entities: - pos: 54.5,47.5 parent: 2 type: Transform - - SecondsUntilStateChange: -266759.16 + - SecondsUntilStateChange: -266819.1 state: Closing type: Door - enabled: False @@ -22997,7 +22997,7 @@ entities: - pos: 52.5,47.5 parent: 2 type: Transform - - SecondsUntilStateChange: -266759.16 + - SecondsUntilStateChange: -266819.1 state: Closing type: Door - enabled: False @@ -23014,7 +23014,7 @@ entities: - pos: 51.5,46.5 parent: 2 type: Transform - - SecondsUntilStateChange: -266759.16 + - SecondsUntilStateChange: -266819.1 state: Closing type: Door - enabled: False @@ -23032,7 +23032,7 @@ entities: - pos: 56.5,45.5 parent: 2 type: Transform - - SecondsUntilStateChange: -267113.5 + - SecondsUntilStateChange: -267173.44 state: Closing type: Door - enabled: False @@ -23050,7 +23050,7 @@ entities: - pos: 50.5,45.5 parent: 2 type: Transform - - SecondsUntilStateChange: -266759.16 + - SecondsUntilStateChange: -266819.1 state: Closing type: Door - enabled: False @@ -23068,7 +23068,7 @@ entities: - pos: -18.5,-96.5 parent: 2 type: Transform - - SecondsUntilStateChange: -213133.38 + - SecondsUntilStateChange: -213193.31 state: Closing type: Door - enabled: False @@ -23085,7 +23085,7 @@ entities: - pos: -18.5,-98.5 parent: 2 type: Transform - - SecondsUntilStateChange: -213133.38 + - SecondsUntilStateChange: -213193.31 state: Closing type: Door - enabled: False @@ -23102,7 +23102,7 @@ entities: - pos: -26.5,-96.5 parent: 2 type: Transform - - SecondsUntilStateChange: -213141.7 + - SecondsUntilStateChange: -213201.64 state: Closing type: Door - enabled: False @@ -23119,7 +23119,7 @@ entities: - pos: -26.5,-98.5 parent: 2 type: Transform - - SecondsUntilStateChange: -213141.7 + - SecondsUntilStateChange: -213201.64 state: Closing type: Door - enabled: False @@ -23136,7 +23136,7 @@ entities: - pos: 67.5,-39.5 parent: 2 type: Transform - - SecondsUntilStateChange: -168915.25 + - SecondsUntilStateChange: -168975.19 state: Closing type: Door - enabled: False @@ -23165,7 +23165,7 @@ entities: pos: 24.5,46.5 parent: 2 type: Transform - - SecondsUntilStateChange: -230996.28 + - SecondsUntilStateChange: -231056.22 state: Opening type: Door - enabled: True @@ -23183,7 +23183,7 @@ entities: pos: 23.5,46.5 parent: 2 type: Transform - - SecondsUntilStateChange: -230996.28 + - SecondsUntilStateChange: -231056.22 state: Opening type: Door - enabled: True @@ -23201,7 +23201,7 @@ entities: pos: 25.5,46.5 parent: 2 type: Transform - - SecondsUntilStateChange: -230996.28 + - SecondsUntilStateChange: -231056.22 state: Opening type: Door - enabled: True @@ -23219,7 +23219,7 @@ entities: pos: 26.5,44.5 parent: 2 type: Transform - - SecondsUntilStateChange: -230996.28 + - SecondsUntilStateChange: -231056.22 state: Opening type: Door - enabled: True @@ -23237,7 +23237,7 @@ entities: pos: 24.5,44.5 parent: 2 type: Transform - - SecondsUntilStateChange: -230996.28 + - SecondsUntilStateChange: -231056.22 state: Opening type: Door - enabled: True @@ -23255,7 +23255,7 @@ entities: pos: 23.5,44.5 parent: 2 type: Transform - - SecondsUntilStateChange: -230996.28 + - SecondsUntilStateChange: -231056.22 state: Opening type: Door - enabled: True @@ -23273,7 +23273,7 @@ entities: pos: 25.5,44.5 parent: 2 type: Transform - - SecondsUntilStateChange: -230996.28 + - SecondsUntilStateChange: -231056.22 state: Opening type: Door - enabled: True @@ -23291,7 +23291,7 @@ entities: pos: 26.5,46.5 parent: 2 type: Transform - - SecondsUntilStateChange: -230996.28 + - SecondsUntilStateChange: -231056.22 state: Opening type: Door - enabled: True @@ -23309,7 +23309,7 @@ entities: pos: 22.5,44.5 parent: 2 type: Transform - - SecondsUntilStateChange: -230996.28 + - SecondsUntilStateChange: -231056.22 state: Opening type: Door - enabled: True @@ -23327,7 +23327,7 @@ entities: pos: 22.5,46.5 parent: 2 type: Transform - - SecondsUntilStateChange: -230996.28 + - SecondsUntilStateChange: -231056.22 state: Opening type: Door - enabled: True @@ -23344,7 +23344,7 @@ entities: - pos: -8.5,-91.5 parent: 2 type: Transform - - SecondsUntilStateChange: -214890.36 + - SecondsUntilStateChange: -214950.3 state: Opening type: Door - enabled: True @@ -23362,7 +23362,7 @@ entities: - pos: -8.5,-92.5 parent: 2 type: Transform - - SecondsUntilStateChange: -214890.36 + - SecondsUntilStateChange: -214950.3 state: Opening type: Door - enabled: True @@ -23380,7 +23380,7 @@ entities: - pos: -8.5,-93.5 parent: 2 type: Transform - - SecondsUntilStateChange: -214890.36 + - SecondsUntilStateChange: -214950.3 state: Opening type: Door - enabled: True @@ -23398,7 +23398,7 @@ entities: - pos: -6.5,-91.5 parent: 2 type: Transform - - SecondsUntilStateChange: -214890.36 + - SecondsUntilStateChange: -214950.3 state: Opening type: Door - enabled: True @@ -23416,7 +23416,7 @@ entities: - pos: -6.5,-90.5 parent: 2 type: Transform - - SecondsUntilStateChange: -214890.36 + - SecondsUntilStateChange: -214950.3 state: Opening type: Door - enabled: True @@ -23434,7 +23434,7 @@ entities: - pos: -6.5,-92.5 parent: 2 type: Transform - - SecondsUntilStateChange: -214890.36 + - SecondsUntilStateChange: -214950.3 state: Opening type: Door - enabled: True @@ -23452,7 +23452,7 @@ entities: - pos: -6.5,-93.5 parent: 2 type: Transform - - SecondsUntilStateChange: -214890.36 + - SecondsUntilStateChange: -214950.3 state: Opening type: Door - enabled: True @@ -23470,7 +23470,7 @@ entities: - pos: -8.5,-90.5 parent: 2 type: Transform - - SecondsUntilStateChange: -214890.36 + - SecondsUntilStateChange: -214950.3 state: Opening type: Door - enabled: True @@ -23490,7 +23490,7 @@ entities: - pos: -11.5,-11.5 parent: 2 type: Transform - - SecondsUntilStateChange: -59840.848 + - SecondsUntilStateChange: -59900.78 state: Closing type: Door - enabled: False @@ -23509,7 +23509,7 @@ entities: - pos: -56.5,-11.5 parent: 2 type: Transform - - SecondsUntilStateChange: -342566.3 + - SecondsUntilStateChange: -342626.25 state: Opening type: Door - enabled: True @@ -23526,7 +23526,7 @@ entities: - pos: -56.5,-12.5 parent: 2 type: Transform - - SecondsUntilStateChange: -342566.3 + - SecondsUntilStateChange: -342626.25 state: Opening type: Door - enabled: True @@ -23543,7 +23543,7 @@ entities: - pos: -56.5,-13.5 parent: 2 type: Transform - - SecondsUntilStateChange: -342566.3 + - SecondsUntilStateChange: -342626.25 state: Opening type: Door - enabled: True @@ -23560,7 +23560,7 @@ entities: - pos: -56.5,-14.5 parent: 2 type: Transform - - SecondsUntilStateChange: -342566.3 + - SecondsUntilStateChange: -342626.25 state: Opening type: Door - enabled: True @@ -23577,7 +23577,7 @@ entities: - pos: -56.5,-15.5 parent: 2 type: Transform - - SecondsUntilStateChange: -342566.3 + - SecondsUntilStateChange: -342626.25 state: Opening type: Door - enabled: True @@ -23595,7 +23595,7 @@ entities: pos: -64.5,-22.5 parent: 2 type: Transform - - SecondsUntilStateChange: -111763.92 + - SecondsUntilStateChange: -111823.85 state: Opening type: Door - enabled: True @@ -23613,7 +23613,7 @@ entities: pos: -65.5,-22.5 parent: 2 type: Transform - - SecondsUntilStateChange: -111763.92 + - SecondsUntilStateChange: -111823.85 state: Opening type: Door - enabled: True @@ -23631,7 +23631,7 @@ entities: pos: -66.5,-22.5 parent: 2 type: Transform - - SecondsUntilStateChange: -111763.92 + - SecondsUntilStateChange: -111823.85 state: Opening type: Door - enabled: True @@ -23649,7 +23649,7 @@ entities: pos: -67.5,-22.5 parent: 2 type: Transform - - SecondsUntilStateChange: -111763.92 + - SecondsUntilStateChange: -111823.85 state: Opening type: Door - enabled: True @@ -23667,7 +23667,7 @@ entities: pos: -68.5,-22.5 parent: 2 type: Transform - - SecondsUntilStateChange: -111763.92 + - SecondsUntilStateChange: -111823.85 state: Opening type: Door - enabled: True @@ -141846,7 +141846,7 @@ entities: - pos: 60.5,21.5 parent: 2 type: Transform - - SecondsUntilStateChange: -503956.84 + - SecondsUntilStateChange: -504016.78 state: Opening type: Door - uid: 20663 @@ -141877,7 +141877,7 @@ entities: - pos: 3.5,-62.5 parent: 2 type: Transform - - SecondsUntilStateChange: -578518.5 + - SecondsUntilStateChange: -578578.44 state: Closing type: Door - uid: 20668 @@ -144722,6 +144722,33 @@ entities: - pos: -32.5,-7.5 parent: 2 type: Transform +- proto: MaintenancePlantSpawner + entities: + - uid: 30926 + components: + - pos: -26.5,31.5 + parent: 2 + type: Transform + - uid: 30927 + components: + - pos: 52.5,39.5 + parent: 2 + type: Transform + - uid: 30928 + components: + - pos: 17.5,-50.5 + parent: 2 + type: Transform + - uid: 30929 + components: + - pos: -28.5,-98.5 + parent: 2 + type: Transform + - uid: 30930 + components: + - pos: -56.5,-68.5 + parent: 2 + type: Transform - proto: MaintenanceToolSpawner entities: - uid: 20976 @@ -160415,7 +160442,7 @@ entities: type: Occluder - canCollide: False type: Physics - - SecondsUntilStateChange: -114041.08 + - SecondsUntilStateChange: -114101.01 state: Closing type: Door - airBlocked: False @@ -160433,7 +160460,7 @@ entities: type: Occluder - canCollide: False type: Physics - - SecondsUntilStateChange: -114041.08 + - SecondsUntilStateChange: -114101.01 state: Closing type: Door - airBlocked: False @@ -160467,7 +160494,7 @@ entities: pos: 15.5,13.5 parent: 2 type: Transform - - SecondsUntilStateChange: -95096.164 + - SecondsUntilStateChange: -95156.09 state: Opening type: Door - canCollide: True @@ -160490,7 +160517,7 @@ entities: - pos: -32.5,32.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124654.555 + - SecondsUntilStateChange: -124714.484 state: Opening type: Door - canCollide: True @@ -160507,7 +160534,7 @@ entities: - pos: 37.5,-0.5 parent: 2 type: Transform - - SecondsUntilStateChange: -32744.418 + - SecondsUntilStateChange: -32804.35 state: Opening type: Door - canCollide: True @@ -160533,7 +160560,7 @@ entities: pos: 15.5,11.5 parent: 2 type: Transform - - SecondsUntilStateChange: -95096.164 + - SecondsUntilStateChange: -95156.09 state: Opening type: Door - canCollide: True @@ -160551,7 +160578,7 @@ entities: pos: 15.5,10.5 parent: 2 type: Transform - - SecondsUntilStateChange: -95096.164 + - SecondsUntilStateChange: -95156.09 state: Opening type: Door - canCollide: True @@ -160569,7 +160596,7 @@ entities: pos: -2.5,-5.5 parent: 2 type: Transform - - SecondsUntilStateChange: -74765.33 + - SecondsUntilStateChange: -74825.26 state: Opening type: Door - canCollide: True @@ -160586,7 +160613,7 @@ entities: - pos: -0.5,-2.5 parent: 2 type: Transform - - SecondsUntilStateChange: -74765.33 + - SecondsUntilStateChange: -74825.26 state: Opening type: Door - canCollide: True @@ -160603,7 +160630,7 @@ entities: - pos: 18.5,15.5 parent: 2 type: Transform - - SecondsUntilStateChange: -95096.164 + - SecondsUntilStateChange: -95156.09 state: Opening type: Door - canCollide: True @@ -160620,7 +160647,7 @@ entities: - pos: 17.5,15.5 parent: 2 type: Transform - - SecondsUntilStateChange: -95096.164 + - SecondsUntilStateChange: -95156.09 state: Opening type: Door - canCollide: True @@ -160646,7 +160673,7 @@ entities: pos: 48.5,6.5 parent: 2 type: Transform - - SecondsUntilStateChange: -30290.246 + - SecondsUntilStateChange: -30350.18 state: Opening type: Door - canCollide: True @@ -160664,7 +160691,7 @@ entities: pos: 35.5,4.5 parent: 2 type: Transform - - SecondsUntilStateChange: -94183.44 + - SecondsUntilStateChange: -94243.37 state: Opening type: Door - canCollide: True @@ -160682,7 +160709,7 @@ entities: pos: 15.5,12.5 parent: 2 type: Transform - - SecondsUntilStateChange: -95096.164 + - SecondsUntilStateChange: -95156.09 state: Opening type: Door - canCollide: True @@ -160699,7 +160726,7 @@ entities: - pos: 61.5,-56.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124568.82 + - SecondsUntilStateChange: -124628.75 state: Opening type: Door - canCollide: True @@ -160717,7 +160744,7 @@ entities: pos: 15.5,14.5 parent: 2 type: Transform - - SecondsUntilStateChange: -95096.164 + - SecondsUntilStateChange: -95156.09 state: Opening type: Door - canCollide: True @@ -160734,7 +160761,7 @@ entities: - pos: 45.5,9.5 parent: 2 type: Transform - - SecondsUntilStateChange: -30290.246 + - SecondsUntilStateChange: -30350.18 state: Opening type: Door - canCollide: True @@ -160751,7 +160778,7 @@ entities: - pos: 43.5,7.5 parent: 2 type: Transform - - SecondsUntilStateChange: -30290.246 + - SecondsUntilStateChange: -30350.18 state: Opening type: Door - canCollide: True @@ -160768,7 +160795,7 @@ entities: - pos: 62.5,-56.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124568.82 + - SecondsUntilStateChange: -124628.75 state: Opening type: Door - canCollide: True @@ -160785,7 +160812,7 @@ entities: - pos: 63.5,-56.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124568.82 + - SecondsUntilStateChange: -124628.75 state: Opening type: Door - canCollide: True @@ -160802,7 +160829,7 @@ entities: - pos: 22.5,-40.5 parent: 2 type: Transform - - SecondsUntilStateChange: -119660.23 + - SecondsUntilStateChange: -119720.16 state: Opening type: Door - canCollide: True @@ -160819,7 +160846,7 @@ entities: - pos: -30.5,27.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124654.555 + - SecondsUntilStateChange: -124714.484 state: Opening type: Door - canCollide: True @@ -160836,7 +160863,7 @@ entities: - pos: 29.5,9.5 parent: 2 type: Transform - - SecondsUntilStateChange: -94183.44 + - SecondsUntilStateChange: -94243.37 state: Opening type: Door - canCollide: True @@ -160853,7 +160880,7 @@ entities: - pos: 34.5,9.5 parent: 2 type: Transform - - SecondsUntilStateChange: -94183.44 + - SecondsUntilStateChange: -94243.37 state: Opening type: Door - canCollide: True @@ -160870,7 +160897,7 @@ entities: - pos: -31.5,27.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124654.555 + - SecondsUntilStateChange: -124714.484 state: Opening type: Door - canCollide: True @@ -160888,7 +160915,7 @@ entities: pos: 35.5,7.5 parent: 2 type: Transform - - SecondsUntilStateChange: -94183.44 + - SecondsUntilStateChange: -94243.37 state: Opening type: Door - canCollide: True @@ -160905,7 +160932,7 @@ entities: - pos: -33.5,27.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124654.555 + - SecondsUntilStateChange: -124714.484 state: Opening type: Door - canCollide: True @@ -160922,7 +160949,7 @@ entities: - pos: -49.5,13.5 parent: 2 type: Transform - - SecondsUntilStateChange: -84833.375 + - SecondsUntilStateChange: -84893.305 state: Opening type: Door - canCollide: True @@ -160939,7 +160966,7 @@ entities: - pos: -48.5,13.5 parent: 2 type: Transform - - SecondsUntilStateChange: -84833.375 + - SecondsUntilStateChange: -84893.305 state: Opening type: Door - canCollide: True @@ -160956,7 +160983,7 @@ entities: - pos: -31.5,32.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124654.555 + - SecondsUntilStateChange: -124714.484 state: Opening type: Door - canCollide: True @@ -160973,7 +161000,7 @@ entities: - pos: 32.5,9.5 parent: 2 type: Transform - - SecondsUntilStateChange: -94183.44 + - SecondsUntilStateChange: -94243.37 state: Opening type: Door - canCollide: True @@ -160990,7 +161017,7 @@ entities: - pos: 39.5,-0.5 parent: 2 type: Transform - - SecondsUntilStateChange: -32744.418 + - SecondsUntilStateChange: -32804.35 state: Opening type: Door - canCollide: True @@ -161007,7 +161034,7 @@ entities: - pos: -33.5,32.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124654.555 + - SecondsUntilStateChange: -124714.484 state: Opening type: Door - canCollide: True @@ -161024,7 +161051,7 @@ entities: - pos: -46.5,13.5 parent: 2 type: Transform - - SecondsUntilStateChange: -84833.375 + - SecondsUntilStateChange: -84893.305 state: Opening type: Door - canCollide: True @@ -161041,7 +161068,7 @@ entities: - pos: -47.5,13.5 parent: 2 type: Transform - - SecondsUntilStateChange: -84833.375 + - SecondsUntilStateChange: -84893.305 state: Opening type: Door - canCollide: True @@ -161058,7 +161085,7 @@ entities: - pos: 43.5,5.5 parent: 2 type: Transform - - SecondsUntilStateChange: -30290.246 + - SecondsUntilStateChange: -30350.18 state: Opening type: Door - canCollide: True @@ -161075,7 +161102,7 @@ entities: - pos: 59.5,-54.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124568.82 + - SecondsUntilStateChange: -124628.75 state: Opening type: Door - canCollide: True @@ -161092,7 +161119,7 @@ entities: - pos: 65.5,-54.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124568.82 + - SecondsUntilStateChange: -124628.75 state: Opening type: Door - canCollide: True @@ -161110,7 +161137,7 @@ entities: pos: 66.5,-51.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124568.82 + - SecondsUntilStateChange: -124628.75 state: Opening type: Door - canCollide: True @@ -161128,7 +161155,7 @@ entities: pos: 66.5,-52.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124568.82 + - SecondsUntilStateChange: -124628.75 state: Opening type: Door - canCollide: True @@ -161146,7 +161173,7 @@ entities: pos: 58.5,-51.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124568.82 + - SecondsUntilStateChange: -124628.75 state: Opening type: Door - canCollide: True @@ -161164,7 +161191,7 @@ entities: pos: 58.5,-52.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124568.82 + - SecondsUntilStateChange: -124628.75 state: Opening type: Door - canCollide: True @@ -161181,7 +161208,7 @@ entities: - pos: 61.5,-50.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124568.82 + - SecondsUntilStateChange: -124628.75 state: Opening type: Door - canCollide: True @@ -161198,7 +161225,7 @@ entities: - pos: 63.5,-50.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124568.82 + - SecondsUntilStateChange: -124628.75 state: Opening type: Door - canCollide: True @@ -161215,7 +161242,7 @@ entities: - pos: -20.5,-58.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124509.625 + - SecondsUntilStateChange: -124569.555 state: Opening type: Door - canCollide: True @@ -161232,7 +161259,7 @@ entities: - pos: -18.5,-58.5 parent: 2 type: Transform - - SecondsUntilStateChange: -124509.625 + - SecondsUntilStateChange: -124569.555 state: Opening type: Door - canCollide: True @@ -161249,7 +161276,7 @@ entities: - pos: -37.5,-14.5 parent: 2 type: Transform - - SecondsUntilStateChange: -74722.48 + - SecondsUntilStateChange: -74782.41 state: Opening type: Door - canCollide: True @@ -161267,7 +161294,7 @@ entities: pos: -33.5,-15.5 parent: 2 type: Transform - - SecondsUntilStateChange: -74722.48 + - SecondsUntilStateChange: -74782.41 state: Opening type: Door - canCollide: True @@ -161285,7 +161312,7 @@ entities: pos: -33.5,-17.5 parent: 2 type: Transform - - SecondsUntilStateChange: -74722.48 + - SecondsUntilStateChange: -74782.41 state: Opening type: Door - canCollide: True @@ -161302,7 +161329,7 @@ entities: - pos: 0.5,-2.5 parent: 2 type: Transform - - SecondsUntilStateChange: -74765.33 + - SecondsUntilStateChange: -74825.26 state: Opening type: Door - canCollide: True @@ -161319,7 +161346,7 @@ entities: - pos: 1.5,-2.5 parent: 2 type: Transform - - SecondsUntilStateChange: -74765.33 + - SecondsUntilStateChange: -74825.26 state: Opening type: Door - canCollide: True @@ -161337,7 +161364,7 @@ entities: pos: 7.5,9.5 parent: 2 type: Transform - - SecondsUntilStateChange: -63918.418 + - SecondsUntilStateChange: -63978.35 state: Opening type: Door - canCollide: True @@ -161355,7 +161382,7 @@ entities: pos: 7.5,8.5 parent: 2 type: Transform - - SecondsUntilStateChange: -63918.418 + - SecondsUntilStateChange: -63978.35 state: Opening type: Door - canCollide: True @@ -161373,7 +161400,7 @@ entities: pos: 7.5,7.5 parent: 2 type: Transform - - SecondsUntilStateChange: -63918.418 + - SecondsUntilStateChange: -63978.35 state: Opening type: Door - canCollide: True @@ -161390,7 +161417,7 @@ entities: - pos: 2.5,4.5 parent: 2 type: Transform - - SecondsUntilStateChange: -63918.418 + - SecondsUntilStateChange: -63978.35 state: Opening type: Door - canCollide: True @@ -161415,7 +161442,7 @@ entities: - pos: 0.5,4.5 parent: 2 type: Transform - - SecondsUntilStateChange: -63918.418 + - SecondsUntilStateChange: -63978.35 state: Opening type: Door - canCollide: True @@ -161432,7 +161459,7 @@ entities: - pos: 5.5,11.5 parent: 2 type: Transform - - SecondsUntilStateChange: -63918.418 + - SecondsUntilStateChange: -63978.35 state: Opening type: Door - canCollide: True @@ -161449,7 +161476,7 @@ entities: - pos: 4.5,11.5 parent: 2 type: Transform - - SecondsUntilStateChange: -63918.418 + - SecondsUntilStateChange: -63978.35 state: Opening type: Door - canCollide: True @@ -161466,7 +161493,7 @@ entities: - pos: 23.5,-40.5 parent: 2 type: Transform - - SecondsUntilStateChange: -119660.23 + - SecondsUntilStateChange: -119720.16 state: Opening type: Door - canCollide: True @@ -161483,7 +161510,7 @@ entities: - pos: 24.5,-40.5 parent: 2 type: Transform - - SecondsUntilStateChange: -119660.23 + - SecondsUntilStateChange: -119720.16 state: Opening type: Door - canCollide: True @@ -161500,7 +161527,7 @@ entities: - pos: 25.5,-40.5 parent: 2 type: Transform - - SecondsUntilStateChange: -119660.23 + - SecondsUntilStateChange: -119720.16 state: Opening type: Door - canCollide: True @@ -161517,7 +161544,7 @@ entities: - pos: 26.5,-40.5 parent: 2 type: Transform - - SecondsUntilStateChange: -119660.23 + - SecondsUntilStateChange: -119720.16 state: Opening type: Door - canCollide: True @@ -161534,7 +161561,7 @@ entities: - pos: 27.5,-40.5 parent: 2 type: Transform - - SecondsUntilStateChange: -119660.23 + - SecondsUntilStateChange: -119720.16 state: Opening type: Door - canCollide: True @@ -161551,7 +161578,7 @@ entities: - pos: 28.5,-40.5 parent: 2 type: Transform - - SecondsUntilStateChange: -119660.23 + - SecondsUntilStateChange: -119720.16 state: Opening type: Door - canCollide: True @@ -161569,7 +161596,7 @@ entities: pos: -2.5,-4.5 parent: 2 type: Transform - - SecondsUntilStateChange: -74765.33 + - SecondsUntilStateChange: -74825.26 state: Opening type: Door - canCollide: True @@ -161587,7 +161614,7 @@ entities: pos: 1.5,-46.5 parent: 2 type: Transform - - SecondsUntilStateChange: -30160.002 + - SecondsUntilStateChange: -30219.936 state: Opening type: Door - canCollide: True @@ -161604,7 +161631,7 @@ entities: - pos: 34.5,18.5 parent: 2 type: Transform - - SecondsUntilStateChange: -92679.03 + - SecondsUntilStateChange: -92738.96 state: Opening type: Door - canCollide: True @@ -161621,7 +161648,7 @@ entities: - pos: 35.5,18.5 parent: 2 type: Transform - - SecondsUntilStateChange: -92679.03 + - SecondsUntilStateChange: -92738.96 state: Opening type: Door - canCollide: True @@ -161638,7 +161665,7 @@ entities: - pos: 36.5,18.5 parent: 2 type: Transform - - SecondsUntilStateChange: -92679.03 + - SecondsUntilStateChange: -92738.96 state: Opening type: Door - canCollide: True @@ -161664,7 +161691,7 @@ entities: pos: 48.5,7.5 parent: 2 type: Transform - - SecondsUntilStateChange: -30290.246 + - SecondsUntilStateChange: -30350.18 state: Opening type: Door - canCollide: True @@ -161681,7 +161708,7 @@ entities: - pos: 46.5,9.5 parent: 2 type: Transform - - SecondsUntilStateChange: -30290.246 + - SecondsUntilStateChange: -30350.18 state: Opening type: Door - canCollide: True @@ -161699,7 +161726,7 @@ entities: pos: 35.5,-1.5 parent: 2 type: Transform - - SecondsUntilStateChange: -32744.418 + - SecondsUntilStateChange: -32804.35 state: Opening type: Door - canCollide: True @@ -161717,7 +161744,7 @@ entities: pos: 35.5,-2.5 parent: 2 type: Transform - - SecondsUntilStateChange: -32744.418 + - SecondsUntilStateChange: -32804.35 state: Opening type: Door - canCollide: True @@ -161735,7 +161762,7 @@ entities: pos: 35.5,-4.5 parent: 2 type: Transform - - SecondsUntilStateChange: -32744.418 + - SecondsUntilStateChange: -32804.35 state: Opening type: Door - canCollide: True @@ -161753,7 +161780,7 @@ entities: pos: 35.5,-5.5 parent: 2 type: Transform - - SecondsUntilStateChange: -32744.418 + - SecondsUntilStateChange: -32804.35 state: Opening type: Door - canCollide: True @@ -161770,7 +161797,7 @@ entities: - pos: 41.5,-0.5 parent: 2 type: Transform - - SecondsUntilStateChange: -32739.918 + - SecondsUntilStateChange: -32799.85 state: Opening type: Door - canCollide: True @@ -161787,7 +161814,7 @@ entities: - pos: 42.5,-0.5 parent: 2 type: Transform - - SecondsUntilStateChange: -32739.918 + - SecondsUntilStateChange: -32799.85 state: Opening type: Door - canCollide: True @@ -161804,7 +161831,7 @@ entities: - pos: 43.5,-0.5 parent: 2 type: Transform - - SecondsUntilStateChange: -32739.918 + - SecondsUntilStateChange: -32799.85 state: Opening type: Door - canCollide: True @@ -161821,7 +161848,7 @@ entities: - pos: 46.5,3.5 parent: 2 type: Transform - - SecondsUntilStateChange: -30290.246 + - SecondsUntilStateChange: -30350.18 state: Opening type: Door - canCollide: True @@ -161839,7 +161866,7 @@ entities: pos: 1.5,-47.5 parent: 2 type: Transform - - SecondsUntilStateChange: -30160.002 + - SecondsUntilStateChange: -30219.936 state: Opening type: Door - canCollide: True @@ -161857,7 +161884,7 @@ entities: pos: 1.5,-48.5 parent: 2 type: Transform - - SecondsUntilStateChange: -30160.002 + - SecondsUntilStateChange: -30219.936 state: Opening type: Door - canCollide: True @@ -161874,7 +161901,7 @@ entities: - pos: 3.5,-44.5 parent: 2 type: Transform - - SecondsUntilStateChange: -30160.002 + - SecondsUntilStateChange: -30219.936 state: Opening type: Door - canCollide: True @@ -161891,7 +161918,7 @@ entities: - pos: 4.5,-44.5 parent: 2 type: Transform - - SecondsUntilStateChange: -30160.002 + - SecondsUntilStateChange: -30219.936 state: Opening type: Door - canCollide: True @@ -161908,7 +161935,7 @@ entities: - pos: 5.5,-44.5 parent: 2 type: Transform - - SecondsUntilStateChange: -30160.002 + - SecondsUntilStateChange: -30219.936 state: Opening type: Door - canCollide: True @@ -161925,7 +161952,7 @@ entities: - pos: 3.5,-51.5 parent: 2 type: Transform - - SecondsUntilStateChange: -30160.002 + - SecondsUntilStateChange: -30219.936 state: Opening type: Door - canCollide: True diff --git a/Resources/Maps/packed.yml b/Resources/Maps/packed.yml index aaf77866094090..24b64c90e0ec8e 100644 --- a/Resources/Maps/packed.yml +++ b/Resources/Maps/packed.yml @@ -61917,6 +61917,23 @@ entities: - pos: 23.5,4.5 parent: 2 type: Transform +- proto: MaintenancePlantSpawner + entities: + - uid: 12855 + components: + - pos: 2.5,-8.5 + parent: 2 + type: Transform + - uid: 12856 + components: + - pos: 54.5,-20.5 + parent: 2 + type: Transform + - uid: 12857 + components: + - pos: 71.5,34.5 + parent: 2 + type: Transform - proto: MaintenanceToolSpawner entities: - uid: 12284 diff --git a/Resources/Maps/saltern.yml b/Resources/Maps/saltern.yml index 2ef8ac5eeadf19..c5966ca740b8fa 100644 --- a/Resources/Maps/saltern.yml +++ b/Resources/Maps/saltern.yml @@ -45793,6 +45793,28 @@ entities: - pos: -20.5,-23.5 parent: 31 type: Transform +- proto: MaintenancePlantSpawner + entities: + - uid: 982 + components: + - pos: -26.5,18.5 + parent: 31 + type: Transform + - uid: 1018 + components: + - pos: -22.5,-19.5 + parent: 31 + type: Transform + - uid: 1019 + components: + - pos: 27.5,-6.5 + parent: 31 + type: Transform + - uid: 1020 + components: + - pos: -0.5,21.5 + parent: 31 + type: Transform - proto: MaintenanceToolSpawner entities: - uid: 976 From 0a9164d8574ff0b575c2683088bc885af5890182 Mon Sep 17 00:00:00 2001 From: Emisse <99158783+Emisse@users.noreply.github.com> Date: Thu, 3 Aug 2023 04:23:57 -0600 Subject: [PATCH 19/37] new posters (#18608) --- .../Markers/Spawners/Random/posters.yml | 10 ++ .../Structures/Wallmounts/Signs/posters.yml | 138 +++++++++++++++++- .../Wallmounts/posters.rsi/meta.json | 2 +- .../Wallmounts/posters.rsi/poster43_legit.png | Bin 0 -> 913 bytes .../Wallmounts/posters.rsi/poster44_legit.png | Bin 0 -> 1190 bytes .../posters.rsi/poster45_contraband.png | Bin 1702 -> 1624 bytes .../Wallmounts/posters.rsi/poster45_legit.png | Bin 0 -> 1254 bytes .../Wallmounts/posters.rsi/poster46_legit.png | Bin 0 -> 1048 bytes .../Wallmounts/posters.rsi/poster47_legit.png | Bin 0 -> 992 bytes .../Wallmounts/posters.rsi/poster48_legit.png | Bin 0 -> 553 bytes .../Wallmounts/posters.rsi/poster49_legit.png | Bin 0 -> 651 bytes .../Wallmounts/posters.rsi/poster50_legit.png | Bin 0 -> 617 bytes .../Wallmounts/posters.rsi/poster51_legit.png | Bin 0 -> 524 bytes .../posters.rsi/poster57_contraband.png | Bin 0 -> 996 bytes .../posters.rsi/poster58_contraband.png | Bin 0 -> 812 bytes .../posters.rsi/poster59_contraband.png | Bin 0 -> 617 bytes .../posters.rsi/poster60_contraband.png | Bin 0 -> 962 bytes .../posters.rsi/poster61_contraband.png | Bin 0 -> 665 bytes .../posters.rsi/poster62_contraband.png | Bin 0 -> 591 bytes 19 files changed, 147 insertions(+), 3 deletions(-) create mode 100644 Resources/Textures/Structures/Wallmounts/posters.rsi/poster43_legit.png create mode 100644 Resources/Textures/Structures/Wallmounts/posters.rsi/poster44_legit.png create mode 100644 Resources/Textures/Structures/Wallmounts/posters.rsi/poster45_legit.png create mode 100644 Resources/Textures/Structures/Wallmounts/posters.rsi/poster46_legit.png create mode 100644 Resources/Textures/Structures/Wallmounts/posters.rsi/poster47_legit.png create mode 100644 Resources/Textures/Structures/Wallmounts/posters.rsi/poster48_legit.png create mode 100644 Resources/Textures/Structures/Wallmounts/posters.rsi/poster49_legit.png create mode 100644 Resources/Textures/Structures/Wallmounts/posters.rsi/poster50_legit.png create mode 100644 Resources/Textures/Structures/Wallmounts/posters.rsi/poster51_legit.png create mode 100644 Resources/Textures/Structures/Wallmounts/posters.rsi/poster57_contraband.png create mode 100644 Resources/Textures/Structures/Wallmounts/posters.rsi/poster58_contraband.png create mode 100644 Resources/Textures/Structures/Wallmounts/posters.rsi/poster59_contraband.png create mode 100644 Resources/Textures/Structures/Wallmounts/posters.rsi/poster60_contraband.png create mode 100644 Resources/Textures/Structures/Wallmounts/posters.rsi/poster61_contraband.png create mode 100644 Resources/Textures/Structures/Wallmounts/posters.rsi/poster62_contraband.png diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/posters.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/posters.yml index db266ffb3f8233..541a766fef245e 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/posters.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/posters.yml @@ -85,6 +85,12 @@ - PosterContrabandNuclearDeviceInformational - PosterContrabandRevolt - PosterContrabandRise + - PosterContrabandMoth + - PosterContrabandCybersun600 + - PosterContrabandDonk + - PosterContrabandEnlistGorlex + - PosterContrabandInterdyne + - PosterContrabandWaffleCorp chance: 1 - type: entity @@ -139,4 +145,8 @@ - PosterLegitThereIsNoGasGiant - PosterLegitJustAWeekAway - PosterLegitSecWatch + - PosterLegitVacation + - PosterLegitPeriodicTable + - PosterLegitRenault + - PosterLegitNTTGC chance: 1 diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/posters.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/posters.yml index 61c6c308c995ad..5306273a6457a0 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/posters.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/posters.yml @@ -537,6 +537,59 @@ - type: Sprite state: poster56_contraband +- type: entity + parent: PosterBase + id: PosterContrabandMoth + name: "Syndie Moth - Nuclear Operation" + description: "A Syndicate-commissioned poster that uses Syndie Moth™ to tell the viewer to keep the nuclear authentication disk unsecured. \"Peace was never an option!\" No good employee would listen to this nonsense." + components: + - type: Sprite + state: poster57_contraband + +- type: entity + parent: PosterBase + id: PosterContrabandCybersun600 + name: "Cybersun: 600 Years Commemorative Poster" + description: "An artistic poster commemorating 600 years of continual business for Cybersun Industries." + components: + - type: Sprite + state: poster58_contraband + +- type: entity + parent: PosterBase + id: PosterContrabandDonk + name: "DONK CO. BRAND MICROWAVEABLE FOOD" + description: "DONK CO. BRAND MICROWAVABLE FOOD: MADE BY STARVING COLLEGE STUDENTS, FOR STARVING COLLEGE STUDENTS." + components: + - type: Sprite + state: poster59_contraband + +- type: entity + parent: PosterBase + id: PosterContrabandEnlistGorlex + name: "Enlist" + description: "Enlist with the Gorlex Marauders today! See the galaxy, kill corpos, get paid!" + components: + - type: Sprite + state: poster60_contraband + +- type: entity + parent: PosterBase + id: PosterContrabandInterdyne + name: "Interdyne Pharmaceutics: For the Health of Humankind" + description: "An advertisement for Interdyne Pharmaceutics' GeneClean clinics. 'Become the master of your own body!'" + components: + - type: Sprite + state: poster61_contraband + +- type: entity + parent: PosterBase + id: PosterContrabandWaffleCorp + name: "Make Mine a Waffle Corp: Fine Rifles, Economic Prices" + description: "An old advertisement for Waffle Corp rifles. 'Better weapons, lower prices!'" + components: + - type: Sprite + state: poster62_contraband # Legit - type: entity @@ -898,7 +951,7 @@ components: - type: Sprite state: poster40_legit - + - type: entity parent: PosterBase id: PosterLegitMime @@ -916,7 +969,88 @@ components: - type: Sprite state: poster42_legit - + +- type: entity + parent: PosterBase + id: PosterLegitSafetyMothDelam + name: "Safety Moth - Delamination Safety Precautions" + description: "This informational poster uses Safety Moth™ to tell the viewer to hide in lockers when the Supermatter Crystal has delaminated, to prevent hallucinations. Evacuating might be a better strategy." + components: + - type: Sprite + state: poster43_legit + +- type: entity + parent: PosterBase + id: PosterLegitSafetyMothEpi + name: "Safety Moth - Epinephrine" + description: "This informational poster uses Safety Moth™ to inform the viewer to help injured/deceased crewmen with their epinephrine injectors. \"Prevent organ rot with this one simple trick!\"" + components: + - type: Sprite + state: poster44_legit + +- type: entity + parent: PosterBase + id: PosterLegitSafetyMothHardhat + name: "Safety Moth - Hardhats" + description: "This informational poster uses Safety Moth™ to tell the viewer to wear hardhats in cautious areas. \"It's like a lamp for your head!\"" + components: + - type: Sprite + state: poster45_legit + +- type: entity + parent: PosterBase + id: PosterLegitSafetyMothMeth + name: "Safety Moth - Methamphetamine" + description: "This informational poster uses Safety Moth™ to tell the viewer to seek CMO approval before cooking methamphetamine. \"Stay close to the target temperature, and never go over!\" ...You shouldn't ever be making this." + components: + - type: Sprite + state: poster46_legit + +- type: entity + parent: PosterBase + id: PosterLegitSafetyMothPiping + name: "Safety Moth - Piping" + description: "This informational poster uses Safety Moth™ to tell atmospheric technicians correct types of piping to be used. \"Pipes, not Pumps! Proper pipe placement prevents poor performance!\"" + components: + - type: Sprite + state: poster47_legit + +- type: entity + parent: PosterBase + id: PosterLegitVacation + name: "Nanotrasen Corporate Perks: Vacation" + description: "This informational poster provides information on some of the prizes available via the NT Corporate Perks program, including a two-week vacation for two on the resort world Idyllus." + components: + - type: Sprite + state: poster48_legit + +- type: entity + parent: PosterBase + id: PosterLegitPeriodicTable + name: "Periodic Table of the Elements" + description: "A periodic table of the elements, from Hydrogen to Oganesson, and everything inbetween." + components: + - type: Sprite + state: poster49_legit + +- type: entity + parent: PosterBase + id: PosterLegitRenault + name: "Renault Poster" + description: "Yap." + components: + - type: Sprite + state: poster50_legit + +- type: entity + parent: PosterBase + id: PosterLegitNTTGC + name: "Nanotrasen Tactical Game Cards" + description: "An advertisement for Nanotrasen's TCG cards: BUY MORE CARDS." + components: + - type: Sprite + state: poster51_legit + #maps - type: entity diff --git a/Resources/Textures/Structures/Wallmounts/posters.rsi/meta.json b/Resources/Textures/Structures/Wallmounts/posters.rsi/meta.json index cde1eaf618d934..b0d8f4e6817950 100644 --- a/Resources/Textures/Structures/Wallmounts/posters.rsi/meta.json +++ b/Resources/Textures/Structures/Wallmounts/posters.rsi/meta.json @@ -1 +1 @@ -{"version": 1, "license": "CC-BY-SA-3.0", "copyright": "Taken from at commit https://github.com/tgstation/tgstation/commit/f01de25493e2bd2706ef9b0303cb0d7b5e3e471b. poster52_contraband, poster53_contraband and poster54_contraband taken from https://github.com/vgstation-coders/vgstation13/blob/435ed5f2a7926e91cc31abac3a0d47d7e9ad7ed4/icons/obj/posters.dmi. originmap, poster55_contraband, poster56_contraband, poster57_contraband and poster39_legit by discord brainfood#7460", "size": {"x": 32, "y": 32}, "states": [{"name": "rolled_contraband"}, {"name": "rolled_legit"}, {"name": "poster_being_set", "delays": [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]}, {"name": "pinningposter"}, {"name": "poster_broken"}, {"name": "poster1_contraband"}, {"name": "poster2_contraband"}, {"name": "poster3_contraband"}, {"name": "poster4_contraband"}, {"name": "poster5_contraband"}, {"name": "poster6_contraband"}, {"name": "poster7_contraband"}, {"name": "poster8_contraband"}, {"name": "poster9_contraband"}, {"name": "poster10_contraband"}, {"name": "poster11_contraband"}, {"name": "poster12_contraband"}, {"name": "poster13_contraband"}, {"name": "poster14_contraband"}, {"name": "poster15_contraband"}, {"name": "poster16_contraband"}, {"name": "poster17_contraband"}, {"name": "poster18_contraband"}, {"name": "poster19_contraband"}, {"name": "poster20_contraband"}, {"name": "poster21_contraband"}, {"name": "poster22_contraband"}, {"name": "poster23_contraband"}, {"name": "poster24_contraband"}, {"name": "poster25_contraband"}, {"name": "poster26_contraband"}, {"name": "poster27_contraband"}, {"name": "poster28_contraband"}, {"name": "poster29_contraband"}, {"name": "poster30_contraband"}, {"name": "poster31_contraband"}, {"name": "poster32_contraband"}, {"name": "poster33_contraband"}, {"name": "poster35_contraband"}, {"name": "poster36_contraband"}, {"name": "poster37_contraband"}, {"name": "poster38_contraband"}, {"name": "poster39_contraband"}, {"name": "poster40_contraband"}, {"name": "poster41_contraband"}, {"name": "poster42_contraband"}, {"name": "poster43_contraband"}, {"name": "poster44_contraband"}, {"name": "poster45_contraband"}, {"name": "poster46_contraband"}, {"name": "poster47_contraband"}, {"name": "poster48_contraband"}, {"name": "poster50_contraband"}, {"name": "poster55_contraband"}, {"name": "poster56_contraband"}, {"name": "poster51_contraband"}, {"name": "poster1_legit"}, {"name": "poster2_legit"}, {"name": "poster3_legit"}, {"name": "poster4_legit"}, {"name": "poster5_legit"}, {"name": "poster6_legit"}, {"name": "poster7_legit"}, {"name": "poster8_legit"}, {"name": "poster9_legit"}, {"name": "poster10_legit"}, {"name": "poster11_legit"}, {"name": "poster12_legit"}, {"name": "poster13_legit"}, {"name": "poster14_legit"}, {"name": "poster15_legit"}, {"name": "poster16_legit"}, {"name": "poster17_legit"}, {"name": "poster18_legit"}, {"name": "poster19_legit"}, {"name": "poster20_legit"}, {"name": "poster21_legit"}, {"name": "poster22_legit"}, {"name": "poster23_legit"}, {"name": "poster24_legit"}, {"name": "poster25_legit"}, {"name": "poster26_legit"}, {"name": "poster27_legit"}, {"name": "poster28_legit"}, {"name": "poster29_legit"}, {"name": "poster30_legit"}, {"name": "poster31_legit"}, {"name": "poster32_legit"}, {"name": "poster33_legit"}, {"name": "poster34_legit"}, {"name": "poster35_legit"}, {"name": "poster36_legit"}, {"name": "poster37_legit"}, {"name": "poster38_legit"}, {"name": "poster39_legit"}, {"name": "poster40_legit"}, {"name": "poster41_legit"}, {"name": "poster42_legit"}, {"name": "random_legit"}, {"name": "random_contraband"}, {"name": "random_anything"}, {"name": "poster52_contraband", "directions": 1, "delays": [[1.0]]}, {"name": "poster53_contraband", "directions": 1, "delays": [[1.0]]}, {"name": "poster54_contraband", "directions": 1, "delays": [[1.0]]}, {"name": "bagelmap", "directions": 1, "delays": [[1.0]]}, {"name": "deltamap", "directions": 1, "delays": [[1.0]]}, {"name": "marathonmap", "directions": 1, "delays": [[1.0]]}, {"name": "originmap", "delays": [[1.0]]}, {"name": "moosemap", "directions": 1, "delays": [[1.0]]}, {"name": "packedmap", "directions": 1, "delays": [[1.0]]}, {"name": "pillarmap", "directions": 1, "delays": [[1.0]]}, {"name": "salternmap", "directions": 1, "delays": [[1.0]]}, {"name": "splitmap", "directions": 1, "delays": [[1.0]]}, {"name": "lighthousemap", "directions": 1, "delays": [[1.0]]}, {"name": "waystationmap", "directions": 1, "delays": [[1.0]]}]} +{"version": 1, "license": "CC-BY-SA-3.0", "copyright": "Taken from at commit https://github.com/tgstation/tgstation/commit/f01de25493e2bd2706ef9b0303cb0d7b5e3e471b. poster52_contraband, poster53_contraband and poster54_contraband taken from https://github.com/vgstation-coders/vgstation13/blob/435ed5f2a7926e91cc31abac3a0d47d7e9ad7ed4/icons/obj/posters.dmi. originmap, poster55_contraband, poster56_contraband, poster57_contraband and poster39_legit by discord brainfood#7460", "size": {"x": 32, "y": 32}, "states": [{"name": "rolled_contraband"}, {"name": "rolled_legit"}, {"name": "poster_being_set", "delays": [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]}, {"name": "pinningposter"}, {"name": "poster_broken"}, {"name": "poster1_contraband"}, {"name": "poster2_contraband"}, {"name": "poster3_contraband"}, {"name": "poster4_contraband"}, {"name": "poster5_contraband"}, {"name": "poster6_contraband"}, {"name": "poster7_contraband"}, {"name": "poster8_contraband"}, {"name": "poster9_contraband"}, {"name": "poster10_contraband"}, {"name": "poster11_contraband"}, {"name": "poster12_contraband"}, {"name": "poster13_contraband"}, {"name": "poster14_contraband"}, {"name": "poster15_contraband"}, {"name": "poster16_contraband"}, {"name": "poster17_contraband"}, {"name": "poster18_contraband"}, {"name": "poster19_contraband"}, {"name": "poster20_contraband"}, {"name": "poster21_contraband"}, {"name": "poster22_contraband"}, {"name": "poster23_contraband"}, {"name": "poster24_contraband"}, {"name": "poster25_contraband"}, {"name": "poster26_contraband"}, {"name": "poster27_contraband"}, {"name": "poster28_contraband"}, {"name": "poster29_contraband"}, {"name": "poster30_contraband"}, {"name": "poster31_contraband"}, {"name": "poster32_contraband"}, {"name": "poster33_contraband"}, {"name": "poster35_contraband"}, {"name": "poster36_contraband"}, {"name": "poster37_contraband"}, {"name": "poster38_contraband"}, {"name": "poster39_contraband"}, {"name": "poster40_contraband"}, {"name": "poster41_contraband"}, {"name": "poster42_contraband"}, {"name": "poster43_contraband"}, {"name": "poster44_contraband"}, {"name": "poster45_contraband"}, {"name": "poster46_contraband"}, {"name": "poster47_contraband"}, {"name": "poster48_contraband"}, {"name": "poster50_contraband"}, {"name": "poster55_contraband"}, {"name": "poster56_contraband"}, {"name": "poster57_contraband"}, {"name": "poster58_contraband"}, {"name": "poster59_contraband"}, {"name": "poster60_contraband"}, {"name": "poster61_contraband"}, {"name": "poster62_contraband"}, {"name": "poster51_contraband"}, {"name": "poster1_legit"}, {"name": "poster2_legit"}, {"name": "poster3_legit"}, {"name": "poster4_legit"}, {"name": "poster5_legit"}, {"name": "poster6_legit"}, {"name": "poster7_legit"}, {"name": "poster8_legit"}, {"name": "poster9_legit"}, {"name": "poster10_legit"}, {"name": "poster11_legit"}, {"name": "poster12_legit"}, {"name": "poster13_legit"}, {"name": "poster14_legit"}, {"name": "poster15_legit"}, {"name": "poster16_legit"}, {"name": "poster17_legit"}, {"name": "poster18_legit"}, {"name": "poster19_legit"}, {"name": "poster20_legit"}, {"name": "poster21_legit"}, {"name": "poster22_legit"}, {"name": "poster23_legit"}, {"name": "poster24_legit"}, {"name": "poster25_legit"}, {"name": "poster26_legit"}, {"name": "poster27_legit"}, {"name": "poster28_legit"}, {"name": "poster29_legit"}, {"name": "poster30_legit"}, {"name": "poster31_legit"}, {"name": "poster32_legit"}, {"name": "poster33_legit"}, {"name": "poster34_legit"}, {"name": "poster35_legit"}, {"name": "poster36_legit"}, {"name": "poster37_legit"}, {"name": "poster38_legit"}, {"name": "poster39_legit"}, {"name": "poster40_legit"}, {"name": "poster41_legit"}, {"name": "poster42_legit"}, {"name": "poster43_legit"}, {"name": "poster44_legit"}, {"name": "poster45_legit"}, {"name": "poster46_legit"}, {"name": "poster47_legit"}, {"name": "poster48_legit"}, {"name": "poster49_legit"}, {"name": "poster50_legit"}, {"name": "poster51_legit"}, {"name": "random_legit"}, {"name": "random_contraband"}, {"name": "random_anything"}, {"name": "poster52_contraband", "directions": 1, "delays": [[1.0]]}, {"name": "poster53_contraband", "directions": 1, "delays": [[1.0]]}, {"name": "poster54_contraband", "directions": 1, "delays": [[1.0]]}, {"name": "bagelmap", "directions": 1, "delays": [[1.0]]}, {"name": "deltamap", "directions": 1, "delays": [[1.0]]}, {"name": "marathonmap", "directions": 1, "delays": [[1.0]]}, {"name": "originmap", "delays": [[1.0]]}, {"name": "moosemap", "directions": 1, "delays": [[1.0]]}, {"name": "packedmap", "directions": 1, "delays": [[1.0]]}, {"name": "pillarmap", "directions": 1, "delays": [[1.0]]}, {"name": "salternmap", "directions": 1, "delays": [[1.0]]}, {"name": "splitmap", "directions": 1, "delays": [[1.0]]}, {"name": "lighthousemap", "directions": 1, "delays": [[1.0]]}, {"name": "waystationmap", "directions": 1, "delays": [[1.0]]}]} diff --git a/Resources/Textures/Structures/Wallmounts/posters.rsi/poster43_legit.png b/Resources/Textures/Structures/Wallmounts/posters.rsi/poster43_legit.png new file mode 100644 index 0000000000000000000000000000000000000000..2aa4745dda1b1af6fac86c5a9b16d8b0f86cd3a3 GIT binary patch literal 913 zcmV;C18)3@P)Px&OG!jQR9J=Wm0w6?RUF4ZGycm_7_ZY%u$4;EFyv6oRJLw7%E~ZN8;S_~5Nrst zAp4{~?4oQ*iGs{S6j2D#!$J#Y8w9(efvYtdNK@f%ZnLp_M;&CW<}!)1>q_1p^j@8r zd#^KVJ>~c5cYeQfe&6r?o^#KEBmCcC(n{7pdrbZ>$YyRvGx+lLCQsj3`B%xkHBV^f zbp-&JOqvEE%d%!IJ+F*qS>I4Y0Y(e;YUz2S9)<#b|L#&o&VJ%e!)5@nwHTY5n-nk2 z95~ld06_lQ4K)^8hA^3T?3K4=HCC`c7l}lOmex>l=Q4;v%)*loCmH%^qHWbmcrk%MkMR-kvIPY%NA45>biEE%ynHjUZ;xHzxk{lp4-cZny(dz4wr=xS)f zHun);zeTMZZGkx}Rx!xL@O72kdf|dvdhMi#uKpe*DbD=-4$=DS!}N|P=^alJaE9n> zuhVU<>pQ{Iv$RG!B)HhOSt0ENqily-Pyn5zc%B*F)C_um&qI=OzN$4RC z;d`IXvQcc)tR)5q)mRdj5P(8k)y`Oob36PCojwoUi|zx@fbL`Tl8~G}l)b zNmM)ROke*7cWVcbd9xY{*uMn%ng`$VUZ%2Y=q>h1yq0JbfBx-j2gjF-&!l zq|S5M^K=F1I`H<_aW;zGz}^|q!uwy`;@o4=l$_UL*CkAct^CIxQoj# z*Q!Dk^20*cfvx2q;jc&3v9GOwiP5bLV$H7?gQ>j|_j4Bj5KCM5oDZNVwRvoYFWX8C n*BL=qz}d0YteYI+2#3KxDDg!HnK|1700000NkvXXu0mjf(Gjo~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Wallmounts/posters.rsi/poster44_legit.png b/Resources/Textures/Structures/Wallmounts/posters.rsi/poster44_legit.png new file mode 100644 index 0000000000000000000000000000000000000000..66c7d3f79e94c5263b0fe126a4f096fba5a67a69 GIT binary patch literal 1190 zcmV;X1X=ruP)Px(U`a$lR9J=Wmfee#RUF4Z=R9w-FRqX!iyQ4OYi@~Xu@}-sBuX#_fD3JOGe;2wmaeIIy$cI%gpn3>TrnQfXgF?Fjy zc;I=y=bYc~^Zd^5yuf37)J@pL9iy)rLySt6@B@e5-X{<;AXNdvfjGR2RuP`#qhmu5 z^r4L4;Yt-P41P`^9fQKq+vk((>7f>`a$)Ajws@`$KoN7bFimQ}NDxBTX(f&U%o@JY zAS4(8N=LZT%LW-h0Z!I+babmV16F|8ECS%UKEih~s+Kv_k~C2So)3Tq3Igi#d?3=HJD2k=}C379k{ioo+g%4S5;FwQ2=)c;U{t{Q|_*L0?ZQ8jaD zKx^GSfJhWm(^stn{;#E>vFcWUL}v0_vDBg;pUgMhW$9LKGZS|zcZi}0fX~nU-ZE}< zc!)~*p%p;d#L)HIv_^2p6F8oSa6F`+0eGIrGlPSSjtm2EDBoUiODomx0i%}5-^F^RN0{{wT1+Y#*zqhVU8?T(I9|vS$1tN0C4ubV@SVs15*;y&sX(n-rCchoZ9LP5Mz%B|Zk(Ut#`zh_m*+@LX!mIqbJlADkS()sK70#+)yggA zDz^am^vjEEEPdAOcjNp_%Qz3weGw)}&FW;oBlu}4h56YQJ$~^duRUGn`=2xYc}H;V zZ|%SQ`X>_mVPu_x<>h6{m*-lvH`4C_czM9(-l}Ro0RE+S+I%$nH|#%c#YSY*8`nD= zKa#Iw=9}%~R#&k9*lF(ETRRmGv34$W0pF07*qoM6N<$ Ef~n3h`v3p{ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Wallmounts/posters.rsi/poster45_contraband.png b/Resources/Textures/Structures/Wallmounts/posters.rsi/poster45_contraband.png index a9f6a06fdcb25e8926d5b536e53c3f08d54a48b9..b1c034bd2a433785b06975c67697e59fd60a81d8 100644 GIT binary patch delta 1607 zcmV-N2DtgA4cH8jB!2;OQb$4nuFf3k000IONklor&rgr`K zF6k?0D3_tNLqubpMVx@rh)Y30YmGR-D3r=jXb?dws!J=h(g+TPk5+Dxc)PMK^h0{~`iQ@`uURX=c51825#`{N)@bar0m@{WKKY!*~ zf-pxzp^g_{+d%vH37oxffo*T@lT(h@_jnSU(1JIoJD<0Gv(NE&)xH>L<1P5 z`OL)YSiER4IbYMgeJ77TxQLd19V0zbfcihoL_f&gKdBaJLhEMeYYvy3=N$(xWk zj>&~N2s|=`F!1q}rhlMJp+3Mm#lS#Bp*Bw?iqM|NsXfo(X`3M;*vxV6;yH%5G?G?? zO5|v&%j2}cIgK9*k|t!duL@7mzvOA^YwiP(5son;7o?$SuG!#Na!TC$QTr;dlnnsi>mL!X5Xs#nEr+;|H z;>1UVK3A_?CW#%b#YVhBj<`R@VlkeNWDe1etC#y}y=FLQkJG7WSLK)xfV|wqBy3$SRhVfJW&{>8PPg|Fw7ArDTq+l6p|!awX+(9 z(Za~K8mtq<3WCK`&Y?AARse9$ReyW5@3C$7E)Ko_C!YG*N|tp!$^8rOqc7@Z-@ZdU z`0elT+?q9v8#9Ix#U?6oOha=sd-v~WQs*Q_jT*^;LkF2VZw|%g;UKmeTMU8#8m$ys zNrFfQnCiw+Q*M)_wGGRy>S{(|Kb^r9zM+Gtvg7Ql=Yj|(SP4tqLOAj z`ov?pdoZDH+8tLf>vO6UoQASlEMS~NyGa0%v~n>xA*)Zl-H_7g?4t_4A*jskzAUQ>U3Wc?#2SoKC3}Gw=4>IDYap z2uz%CEmJ4oL~F}%jvqfxdw+X7&Vh)k4mP8?boyP?h9At8{?_@79@~jv$oU?=QHW>? zg#u}kqLrq$wvKY8jPX1S3hOL2wRy@(gtbC#ZGnNPM6u9JY*WN07!#6aDIjE7hQi<+ zXrt-5e2KoJFW@!R8T?OnQ98F1=M>sHv~ksBXb;5UoJN!&2ucNr2tZ0Kq7obdq6|u^ zqa1`p1g$hG&2UN~nrdvLaZceGkJu_&o3sDbw`0hE_aD9l)zZc@`+@)f002ovPDHLk FV1f%I621Tc delta 1686 zcmV;H25I@&45kf`B!3BTNLh0L01m_e01m_fl`9S#000J9Nkl8}N#^F9oPYbi=lMR*cX>^|;hzxz zBLGGKi~tw`Falr%z&8)zIq15FQaY~ZqC5qfE>|1mR@eP|*jer!8OCY|P^_d78|p(uJZ%A$MgXlXIQ|BA*443~_I7$MUFLN6U)l8AjXbsE8RpHaW`F9W3G6v=fcq9N;lE#B=k1<% zSpTbL{?dI0-7vXn!UQh&^^q(qXWEQP5~T@D-EjHx^Zzhq+H|_lp2l-@9&7kHZ+4yM z+~r=b_Vse&$SJ1YJb_&=zf8@7T3lsu=FHoC`q}4P>H9kcMG3a;*hX{HFFAVb7&9hM z=Z&sTVt?@x22%qxx31^MbqjfVa|_EF|HzZAZ8C`rwsJ5X$L2eeCQ_a#;o%1#C7X3P z*zqbYO^-8W^38lWyN;r=q>R<$zWTd_rXks^bIY_DtX{dAXh`SSYbRLSxRSDxBrojv zgK+LrGryXi-giM7s$X;urWqy_iSm;l)lys#Cx4Y1#1I{so?K$W(VCTwLXJWeLd&{e zctRkwbR z$&;t>%HcztJ=GOht7z0HHf-61CGTr)YJXzh;`yv!vkpC?bKuYs4({E@hRtgzA3c#x zPyB|Q?FP0qJsFJ>G1!9af%}(mz5gr5j~g$~G)5M=t zY#C2H2q7I!2rrZ3rYv@x5CzFmzJGVgis*_G1tLOAc+>)Cj2$zUhzQXark|39r4b1( zC!ee`4MSH{d^;9|mJ-p3@-Q{e^V3pNN(I^Md0ueULMDIiJjumN?@1_aq2z9^{mbexgG?fc9AR(VGjNgq$T+;E?*N;I)5%dUAT}HOB)y(OwqQvoh>qje|*qK>)KWHr~3JB)$^nRC?CED)i4fw+CwDEYXWP+&>b_pe@I z{7usZp&`j;5)!_Y94HSgxu36Z3<_eC-)(z_bSBNrs%m`DKCg%N9e*L6%ZjfRt! z&!*V@!agiHbd)q@7?Hs1Q!Bq8_+K~uO!0@Uix|Hm7Kvk)78-=UJW1->34BZHen|M^ z@yYPhLe5}6h?J%R?ldhN1eYe9DlI36ulz4U)>Qr|_fNr``u~{4A)e-UOa9%49$bAv gTVlmANr(RdV6M)j1`qUK;s5{u07*qoM6N<$g5*s}GXMYp diff --git a/Resources/Textures/Structures/Wallmounts/posters.rsi/poster45_legit.png b/Resources/Textures/Structures/Wallmounts/posters.rsi/poster45_legit.png new file mode 100644 index 0000000000000000000000000000000000000000..5954cec86201cd83cbaa9592dea742188fe11024 GIT binary patch literal 1254 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 DD)T4H literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Wallmounts/posters.rsi/poster51_legit.png b/Resources/Textures/Structures/Wallmounts/posters.rsi/poster51_legit.png new file mode 100644 index 0000000000000000000000000000000000000000..2c37cc4415b5012b09de454acebaabc0cc2901f4 GIT binary patch literal 524 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 D?rajs literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Wallmounts/posters.rsi/poster60_contraband.png b/Resources/Textures/Structures/Wallmounts/posters.rsi/poster60_contraband.png new file mode 100644 index 0000000000000000000000000000000000000000..e597b62d6a3642970aa6ca1be51ebe5c1cb384e8 GIT binary patch literal 962 zcmV;z13mnSP)Px&d`Uz>R9J=WmfcTVWgN#p=cT8N(w45LGBRL58^o6-8iBdFkdQ^AL=1^udBer- zyx6~?@p2d5d+kU}8a3HwNEWjRMY+L^VF9JEb@a5QFRbh9<3-atXz4i+5-;SNH0SB_ z^80?y_c?EHs{gyB!v?%QU7WO8JZ3cbsjU`xW5&M!Nnm8+U4FYa4?y2Q04f4xiOr2L z0Pl=nVsY+QJO|BvdQ*><01c8r(qvSJM*mQNUboI!mxDxl53N(u48cLfAFG`jmECWcggrX^QZ?19e^AGuD zXOk9NgITd7D-VvDO|A944)+bEiXR460L<^-};03->`Wk)&hV!1tw=gVvKT)jZi zr_%FYAD*v2VA-BQJ=cNFX$R@h>wBM$lz^xRu*qa{DV#rUViaWBJM0+G;+*~7AhVYQ zn_Qh|&EI+gq9TxF35sQ$ZEmE=KD@ezz2|xKE-%t_KTd}SN}_u5Cw>tMK_Q*z_pKBo z^N-QgGo%waM5)4dG=ekSPGKp`QZ!BJc@ev?Mqn8rQ4uJGGSR157K#=6Tv5*9s1Di$ zTd^G?4|j-0vy}5?5*5+#EI2km5y-33=BE)!g= zKL6LBJpI=+yI23!v?9C!1Q+MIGI80ocFP2kFSX<2W87X{fiu1QP|U-vI{=LO{e;%m z0N4Q7O%Yj~Cq6#bw9Y}bd>zX%gD+lvgGhL#4gs+JcZ^Rzd!Nmvb&TvDnOrpiBc0*= z1z&ajy#)Yz1H*jt_zx;Rz3J=NbPFQk6|PTC(;FD((cA;xdXffU_SPLjYisBo4vcgL zBb})mKbm_$Z(x|~lhbwhV<&J@I#vQV)d6m*0|0!Bv)*58AJ%uUU8~Vdrdx2Mw9#N< zrWrE(jxX0ZGC++!rRvO(F@;E}`o1|SwfU!*Wq^b9Gh~_;t@Yg~ZJ3%K382;frBuCP kyw&_>`p-YhPj#w)04GpizBZ3^k^lez07*qoM6N<$f|>opUH||9 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Wallmounts/posters.rsi/poster61_contraband.png b/Resources/Textures/Structures/Wallmounts/posters.rsi/poster61_contraband.png new file mode 100644 index 0000000000000000000000000000000000000000..3eb0d49718410d2e0f103fd8bc11353733366322 GIT binary patch literal 665 zcmV;K0%rY*P)Px%Q%OWYR9J=WmcMHhK@`V7D_1E89=jW{k&BY%3N1uTniPVm1SM7}Vyx_PaED#M zL%~MGgS~)|N~2;YcVb}>QrILA@)ukYJMr#v!GvgGU@YF=?XJ7CKMJ|#zRNJ|%y;I! z_uV)17RDH3#4w@;P1{oc!`Obe7qXYrk?%e10`TI4tf|f`>MJr=c^bVYj=TQcPVcE{ zTMGA4*QM1~l_Doi9WreGCyuLARjYvWPWT5W5|w!tKvZdb^!9RmYvQ@l3TSg+ztcla z%lq3E&*0*`^r|mQjlBDwz_l(}*>a${sfH2d&-iB~veu3mYPzGz+>8qJF7^QUQV)N+ zxmoE|-@wRw(Z_Mkf}Kr)gA?h45e*=bZSN_z&_y5Q>Y!DieWAzCmi{`JEXv0HD-!^T zT(eNhrof-iiqqOH;m3EIiCeN?=TkDbREnO{I&khh?0wU3TDf)<8s4CZNSyxly0KAA^qGe{QB*+ zn-zmX4!%B9G&dEk9Yu4)2JBd_4q63nUo!yZMi!3f&JB@P6o4od{9IF$1KML)tIIJf z-Hpel`)2!xf)hq2Kk4_o}?Au zH?0O(U6*Tzxa(PK!J{|vS7=r|SPx%2}wjjR9J=Wma%IZQ5?rVE$wzLsX=@=1cEnYaX6$MGL%rkp%5Ez$Y0R^pp;}z zhd}>;tXUi~G|=Th2o4=A(jiL+L!d)=hnQq}QYb=`LEiJ!JH69uD8%pbJAdch@8kFV z-p>b1J$5|_O1@Z4-~EeXH{I)rde6eXT;BbWXmPjZ1m;5lrs;3@BT`Cog=1Q72>_)O zTh(UlcRig4KuU?{dFFFAn;p4-@$O(GCI--QOSIe)p68*I;_T!V0KHx>wD>HDNK4?i z86cHPnW%Gq<-hDldF^ZfUD$CP8jS`3>5Smd?;(g%Y64{ZS5E_)>44)nNGVP6o$a^O zYBhuqChspkUTmQyD3)_;J#U+PyKf47J{|!09f;C+eno0R%d#eN_L?x)K@N<^ zg#d!o{w2+|b|?&DVF10&E-%_9=XXH&!aSM@P%PJt#n&Cl`Og8wxC256GZzvC&=A_@ z@822#d~IF=uvKjuNZYn!LqzU@V!2K_GqhbVi=Gt#LWqgy5(ChBx%nCx?hHMW^{|Tj zhZGB7J#SOk7|a6yI2J;fNf}pjZ$mAm6qaQf`{VXN=!vNEsk Date: Thu, 3 Aug 2023 06:36:10 -0400 Subject: [PATCH 20/37] Add API to change the sound of AmbientSoundComponent (#18115) --- Content.Client/Audio/AmbientSoundSystem.cs | 24 ++++++++++--------- Content.Shared/Audio/AmbientSoundComponent.cs | 1 + .../Audio/SharedAmbientSoundSystem.cs | 13 ++++++++++ 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/Content.Client/Audio/AmbientSoundSystem.cs b/Content.Client/Audio/AmbientSoundSystem.cs index 210b92d81563bc..8fe331119a6b30 100644 --- a/Content.Client/Audio/AmbientSoundSystem.cs +++ b/Content.Client/Audio/AmbientSoundSystem.cs @@ -50,7 +50,7 @@ protected override void QueueUpdate(EntityUid uid, AmbientSoundComponent ambienc /// private int MaxSingleSound => (int) (_maxAmbientCount / (16.0f / 6.0f)); - private readonly Dictionary _playingSounds = new(); + private readonly Dictionary _playingSounds = new(); private readonly Dictionary _playingCount = new(); public bool OverlayEnabled @@ -104,9 +104,9 @@ private void OnShutdown(EntityUid uid, AmbientSoundComponent component, Componen return; sound.Stream?.Stop(); - _playingCount[sound.Sound] -= 1; - if (_playingCount[sound.Sound] == 0) - _playingCount.Remove(sound.Sound); + _playingCount[sound.Path] -= 1; + if (_playingCount[sound.Path] == 0) + _playingCount.Remove(sound.Path); } private void SetAmbienceVolume(float value) @@ -141,9 +141,9 @@ private int PlayingCount(string countSound) { var count = 0; - foreach (var (_, (_, sound)) in _playingSounds) + foreach (var (_, (_, sound, path)) in _playingSounds) { - if (sound.Equals(countSound)) + if (path.Equals(countSound)) count++; } @@ -177,7 +177,7 @@ public override void Update(float frameTime) private void ClearSounds() { - foreach (var (stream, _) in _playingSounds.Values) + foreach (var (stream, _, _) in _playingSounds.Values) { stream?.Stop(); } @@ -245,6 +245,8 @@ private void ProcessNearbyAmbience(TransformComponent playerXform) var entity = comp.Owner; if (comp.Enabled && + // Don't keep playing sounds that have changed since. + sound.Sound == comp.Sound && query.TryGetComponent(entity, out var xform) && xform.MapID == playerXform.MapID && !metaQuery.GetComponent(entity).EntityPaused) @@ -259,9 +261,9 @@ private void ProcessNearbyAmbience(TransformComponent playerXform) sound.Stream?.Stop(); _playingSounds.Remove(comp); - _playingCount[sound.Sound] -= 1; - if (_playingCount[sound.Sound] == 0) - _playingCount.Remove(sound.Sound); + _playingCount[sound.Path] -= 1; + if (_playingCount[sound.Path] == 0) + _playingCount.Remove(sound.Path); } if (_playingSounds.Count >= _maxAmbientCount) @@ -301,7 +303,7 @@ private void ProcessNearbyAmbience(TransformComponent playerXform) if (stream == null) continue; - _playingSounds[comp] = (stream, key); + _playingSounds[comp] = (stream, comp.Sound, key); playingCount++; if (_playingSounds.Count >= _maxAmbientCount) diff --git a/Content.Shared/Audio/AmbientSoundComponent.cs b/Content.Shared/Audio/AmbientSoundComponent.cs index b120510f4afc1b..db13db2e6fac45 100644 --- a/Content.Shared/Audio/AmbientSoundComponent.cs +++ b/Content.Shared/Audio/AmbientSoundComponent.cs @@ -50,4 +50,5 @@ public sealed class AmbientSoundComponentState : ComponentState public bool Enabled { get; init; } public float Range { get; init; } public float Volume { get; init; } + public SoundSpecifier Sound { get; init; } = default!; } diff --git a/Content.Shared/Audio/SharedAmbientSoundSystem.cs b/Content.Shared/Audio/SharedAmbientSoundSystem.cs index 3bda37c634ef9d..30fdc946edd562 100644 --- a/Content.Shared/Audio/SharedAmbientSoundSystem.cs +++ b/Content.Shared/Audio/SharedAmbientSoundSystem.cs @@ -1,3 +1,4 @@ +using Robust.Shared.Audio; using Robust.Shared.GameStates; namespace Content.Shared.Audio; @@ -45,12 +46,23 @@ public virtual void SetVolume(EntityUid uid, float value, AmbientSoundComponent? Dirty(ambience); } + public virtual void SetSound(EntityUid uid, SoundSpecifier sound, AmbientSoundComponent? ambience = null) + { + if (!Resolve(uid, ref ambience, false) || ambience.Sound == sound) + return; + + ambience.Sound = sound; + QueueUpdate(uid, ambience); + Dirty(ambience); + } + private void HandleCompState(EntityUid uid, AmbientSoundComponent component, ref ComponentHandleState args) { if (args.Current is not AmbientSoundComponentState state) return; SetAmbience(uid, state.Enabled, component); SetRange(uid, state.Range, component); SetVolume(uid, state.Volume, component); + SetSound(uid, state.Sound, component); } private void GetCompState(EntityUid uid, AmbientSoundComponent component, ref ComponentGetState args) @@ -60,6 +72,7 @@ private void GetCompState(EntityUid uid, AmbientSoundComponent component, ref Co Enabled = component.Enabled, Range = component.Range, Volume = component.Volume, + Sound = component.Sound, }; } } From f97a2dbb133b59aff6ec4ca9771fd55444fe6300 Mon Sep 17 00:00:00 2001 From: router Date: Thu, 3 Aug 2023 14:13:16 +0300 Subject: [PATCH 21/37] make ringtone and uplink code 6 notes long (#17545) Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> --- .../PDA/Ringer/RingerBoundUserInterface.cs | 2 +- Content.Client/PDA/Ringer/RingtoneMenu.xaml | 24 +++++++++++++-- .../PDA/Ringer/RingtoneMenu.xaml.cs | 4 +-- .../GameTicking/Rules/TraitorRuleSystem.cs | 4 +-- Content.Server/PDA/Ringer/RingerSystem.cs | 29 +++++++++++++++++-- Content.Shared/PDA/SharedRingerSystem.cs | 2 +- 6 files changed, 53 insertions(+), 12 deletions(-) diff --git a/Content.Client/PDA/Ringer/RingerBoundUserInterface.cs b/Content.Client/PDA/Ringer/RingerBoundUserInterface.cs index bb8b785287c323..aee8357cdc3b08 100644 --- a/Content.Client/PDA/Ringer/RingerBoundUserInterface.cs +++ b/Content.Client/PDA/Ringer/RingerBoundUserInterface.cs @@ -43,7 +43,7 @@ private bool TryGetRingtone(out Note[] ringtone) return false; } - ringtone = new Note[4]; + ringtone = new Note[_menu.RingerNoteInputs.Length]; for (int i = 0; i < _menu.RingerNoteInputs.Length; i++) { diff --git a/Content.Client/PDA/Ringer/RingtoneMenu.xaml b/Content.Client/PDA/Ringer/RingtoneMenu.xaml index ecf5d3043621a3..a361a58dd29451 100644 --- a/Content.Client/PDA/Ringer/RingtoneMenu.xaml +++ b/Content.Client/PDA/Ringer/RingtoneMenu.xaml @@ -1,7 +1,7 @@ + MinSize="320 128" + SetSize="320 128"> + MinSize="180 0"> diff --git a/Content.Client/PDA/Ringer/RingtoneMenu.xaml.cs b/Content.Client/PDA/Ringer/RingtoneMenu.xaml.cs index 198c34b0953b96..044714b06fe64c 100644 --- a/Content.Client/PDA/Ringer/RingtoneMenu.xaml.cs +++ b/Content.Client/PDA/Ringer/RingtoneMenu.xaml.cs @@ -10,14 +10,14 @@ namespace Content.Client.PDA.Ringer [GenerateTypedNameReferences] public sealed partial class RingtoneMenu : DefaultWindow { - public string[] PreviousNoteInputs = new[] { "A", "A", "A", "A" }; + public string[] PreviousNoteInputs = new[] { "A", "A", "A", "A", "A", "A" }; public LineEdit[] RingerNoteInputs = default!; public RingtoneMenu() { RobustXamlLoader.Load(this); - RingerNoteInputs = new[] { RingerNoteOneInput, RingerNoteTwoInput, RingerNoteThreeInput, RingerNoteFourInput }; + RingerNoteInputs = new[] { RingerNoteOneInput, RingerNoteTwoInput, RingerNoteThreeInput, RingerNoteFourInput, RingerNoteFiveInput, RingerNoteSixInput }; for (var i = 0; i < RingerNoteInputs.Length; ++i) { diff --git a/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs b/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs index b134bad70312eb..8778e29ec08f94 100644 --- a/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs @@ -249,7 +249,7 @@ public bool MakeTraitor(IPlayerSession traitor) traitorRole.Mind.Briefing = string.Format( "{0}\n{1}", Loc.GetString("traitor-role-codewords-short", ("codewords", string.Join(", ", traitorRule.Codewords))), - Loc.GetString("traitor-role-uplink-code-short", ("code", string.Join("", code)))); + Loc.GetString("traitor-role-uplink-code-short", ("code", string.Join("-", code).Replace("sharp","#")))); // Assign traitor roles _mindSystem.AddRole(mind, traitorRole); @@ -295,7 +295,7 @@ private void SendTraitorBriefing(Mind.Mind mind, string[] codewords, Note[] code { _chatManager.DispatchServerMessage(session, Loc.GetString("traitor-role-greeting")); _chatManager.DispatchServerMessage(session, Loc.GetString("traitor-role-codewords", ("codewords", string.Join(", ", codewords)))); - _chatManager.DispatchServerMessage(session, Loc.GetString("traitor-role-uplink-code", ("code", string.Join("", code)))); + _chatManager.DispatchServerMessage(session, Loc.GetString("traitor-role-uplink-code", ("code", string.Join("-", code).Replace("sharp","#")))); } } diff --git a/Content.Server/PDA/Ringer/RingerSystem.cs b/Content.Server/PDA/Ringer/RingerSystem.cs index 46bcc999b8de45..eba052f9e1be07 100644 --- a/Content.Server/PDA/Ringer/RingerSystem.cs +++ b/Content.Server/PDA/Ringer/RingerSystem.cs @@ -122,7 +122,30 @@ public void RandomizeRingtone(EntityUid uid, RingerComponent ringer, MapInitEven public void RandomizeUplinkCode(EntityUid uid, RingerUplinkComponent uplink, ComponentInit args) { - uplink.Code = GenerateRingtone(); + var notes = new[] + { + Note.A, + Note.Asharp, + Note.B, + Note.C, + Note.Csharp, + Note.D, + Note.Dsharp, + Note.E, + Note.F, + Note.Fsharp, + Note.G, + Note.Gsharp, + }; + + var ringtone = new Note[RingtoneLength]; + + for (var i = 0; i < RingtoneLength; i++) + { + ringtone[i] = _random.Pick(notes); + } + + uplink.Code = ringtone; } //Non Event Functions @@ -141,7 +164,7 @@ private Note[] GenerateRingtone() var ringtone = new Note[RingtoneLength]; - for (var i = 0; i < 4; i++) + for (var i = 0; i < RingtoneLength; i++) { ringtone[i] = _random.Pick(notes); } @@ -196,7 +219,7 @@ public bool ToggleRingerUI(EntityUid uid, IPlayerSession session) ringer.NoteCount++; - if (ringer.NoteCount > 3) + if (ringer.NoteCount > RingtoneLength - 1) { remove.Add(uid); UpdateRingerUserInterface(uid, ringer); diff --git a/Content.Shared/PDA/SharedRingerSystem.cs b/Content.Shared/PDA/SharedRingerSystem.cs index 77963517326e4a..5652a60599832a 100644 --- a/Content.Shared/PDA/SharedRingerSystem.cs +++ b/Content.Shared/PDA/SharedRingerSystem.cs @@ -4,7 +4,7 @@ namespace Content.Shared.PDA; public abstract class SharedRingerSystem : EntitySystem { - public const int RingtoneLength = 4; + public const int RingtoneLength = 6; public const int NoteTempo = 300; public const float NoteDelay = 60f / NoteTempo; } From ede878ca0a1fc57f9efa5f97bab7f06a970d5e13 Mon Sep 17 00:00:00 2001 From: PJBot Date: Thu, 3 Aug 2023 07:14:24 -0400 Subject: [PATCH 22/37] Automatic changelog update --- Resources/Changelog/Changelog.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 007cad8caa663b..3e2546267e0883 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,10 +1,4 @@ Entries: -- author: EmoGarbage404 - changes: - - {message: Less severe anomalies now have higher baseline point output., type: Tweak} - - {message: Random anomaly stability fluctuation is less extreme., type: Tweak} - id: 3920 - time: '2023-06-01T23:07:20.0000000+00:00' - author: PJB3005 changes: - {message: 'Handcuffs don''t eat all interaction events anymore, so you can put @@ -2988,3 +2982,10 @@ Entries: - {message: The game now boots in GLES2 again. oops., type: Fix} id: 4419 time: '2023-08-02T23:13:07.0000000+00:00' +- author: router + changes: + - {message: Ringtones now have 2 more notes you can play around with., type: Tweak} + - {message: 'The Syndicate has taken advantage of this hardware expansion, making + brute-force attacks on their uplinks unfeasible.', type: Fix} + id: 4420 + time: '2023-08-03T11:13:17.0000000+00:00' From 6afc9ea923c97351b311179985441ad98a6b41bb Mon Sep 17 00:00:00 2001 From: Emisse <99158783+Emisse@users.noreply.github.com> Date: Thu, 3 Aug 2023 05:28:33 -0600 Subject: [PATCH 23/37] nukie planet update (#18612) --- Resources/Maps/nukieplanet.yml | 412 +++++++++++++++++++++------------ 1 file changed, 266 insertions(+), 146 deletions(-) diff --git a/Resources/Maps/nukieplanet.yml b/Resources/Maps/nukieplanet.yml index 4676d7687c02c0..abf67d3973c90d 100644 --- a/Resources/Maps/nukieplanet.yml +++ b/Resources/Maps/nukieplanet.yml @@ -35,70 +35,70 @@ entities: - chunks: -1,-1: ind: -1,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAADwAAAA8AAAAPAAAAEQAAAlEAAACXwAAABcAAAJSAAAAUgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAAA8AAAAPAAAADwAAABEAAALRAAAC18AAAAXAAACUgAAAUUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAPAAAADwAAAA8AAAARAAADEQAAARfAAAAFwAAA1IAAAJSAAADAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAADwAAAA8AAAAPAAAAEQAAAdEAAALXwAAABcAAAEXAAAAFwAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAAA8AAAAPAAAADwAAABEAAAKRAAAAF8AAABfAAAAXwAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAPAAAADwAAAA8AAAARAAACUQAAAhEAAAMRAAABEQAAAVEAAALAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAADwAAAA8AAAAPAAAAEQAAAhEAAADRAAADEQAAAhEAAAIDAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAAA8AAAAPAAAADwAAABEAAAGRAAABEQAAAhEAAAADAAAAFwAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAPAAAADwAAAA8AAAARAAAAEQAAAxEAAADRAAACAwAAABcAAABAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAADwAAAA8AAAAPAAAAEQAAAZEAAALRAAACUQAAAoMAAAAXAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAAA8AAAAPAAAADwAAAAXAAADRAAACUQAAAtEAAAGDAAAAwwAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAPAAAADwAAAA8AAAAXwAAAF8AAABfAAAAXwAAAF8AAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAADwAAAA8AAAAPAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAADAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAAA8AAAAPAAAADwAAABfAAAAXwAAAF8AAABfAAAAXwAAAAwAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAPAAAADwAAAA8AAAAXwAAAF8AAABfAAAAXwAAAF8AAAAMAAABAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAADwAAAA8AAAAPAAAAEQAAAZEAAAFRAAAB0QAAAZfAAAADAAAAg== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAADwAAAA8AAAAPAAAAEQAAAFEAAAJXwAAABcAAANSAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAAA8AAAAPAAAADwAAABEAAAMRAAABV8AAAAXAAADUgAAA0UAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAPAAAADwAAAA8AAAARAAAAkQAAAZfAAAAFwAAA1IAAANSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAADwAAAA8AAAAPAAAAEQAAAxEAAAAXwAAABcAAAIXAAABFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAAA8AAAAPAAAADwAAABEAAACRAAAA18AAABfAAAAXwAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAPAAAADwAAAA8AAAARAAAAEQAAAxEAAAGRAAAC0QAAAdEAAAIAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAADwAAAA8AAAAPAAAAEQAAAVEAAAGRAAADEQAAANEAAAFDAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAAA8AAAAPAAAADwAAABEAAADRAAAA0QAAAlEAAAGDAAAA1wAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAPAAAADwAAAA8AAAARAAABUQAAAREAAADRAAAAwwAAAJcAAABAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAADwAAAA8AAAAPAAAAEQAAAdEAAACRAAACUQAAAgMAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAAA8AAAAPAAAADwAAAAXAAADRAAABUQAAAJEAAALDAAAAgwAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAPAAAADwAAAA8AAAAXwAAAF8AAABfAAAAXwAAAF8AAAAMAAACAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAADwAAAA8AAAAPAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAAA8AAAAPAAAADwAAABfAAAAXwAAAF8AAABfAAAAXwAAAAwAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAPAAAADwAAAA8AAAAXwAAAF8AAABfAAAAXwAAAF8AAAAMAAABAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAADwAAAA8AAAAPAAAAEQAAAREAAAIRAAABkQAAABfAAAADAAAAA== 0,-1: ind: 0,-1 - tiles: UgAAAVIAAANfAAAAUgAAAlIAAABSAAABUgAAAFIAAAIXAAAAFwAAAxcAAAMXAAADFwAAABcAAAIXAAACFwAAA0UAAABSAAAAUgAAAVIAAAJSAAADUgAAAFIAAAJSAAAAFwAAA0EAAAAXAAACQQAAABcAAAJBAAAAFwAAARcAAAJSAAAAUgAAAl8AAABSAAAAUgAAAVIAAANSAAADUgAAARcAAAFBAAAAFwAAAkEAAAAXAAACQQAAABcAAAAXAAAAFwAAAxcAAAIXAAABRQAAAUUAAABFAAADUgAAAVIAAAEXAAABFwAAAxcAAAIXAAABFwAAARcAAAEXAAAAFwAAAl8AAABfAAAAUgAAAEUAAAJFAAADRQAAAlIAAABSAAAADAAAAxcAAAAXAAACFwAAABcAAAAXAAACFwAAAhcAAANEAAABRAAADFIAAAJFAAABRQAAAEUAAANSAAABUgAAAEQAAAsXAAABFwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAADAAAAAwAAAEMAAABDAAAAAwAAAFfAAAAFwAAAF8AAAAMAAABDAAAAQwAAAIMAAAADAAAAxcAAAAXAAACFwAAA0EAAABBAAAAXAAAAFwAAANcAAABFwAAABcAAAAXAAAAFwAAABcAAAAXAAAAXwAAABcAAAMXAAAAFwAAABcAAABcAAABXAAAAVwAAAFcAAABXAAAABcAAAAXAAAAFwAAABcAAAAXAAAAFwAAABcAAAIXAAADFwAAARcAAAMXAAADXAAAAFwAAAJcAAABXAAAAVwAAAAXAAAAFwAAABcAAAAXAAAAFwAAABcAAABfAAAAFwAAABcAAAAXAAABFwAAAQwAAAIMAAAADAAAAAwAAAAMAAACDAAAAwwAAAAMAAAADAAAAQwAAAEMAAADDAAAAQwAAAEXAAABFwAAAxcAAAIMAAACDAAAAgwAAAAMAAACDAAAAAwAAAIMAAABDAAAAAwAAAMmAAAAJgAAACYAAAAMAAABXAAAAFwAAABcAAAADAAAAwwAAAAMAAABDAAAAgwAAAIMAAACDAAAAUEAAAAMAAABJgAAACYAAAAmAAAADAAAAVwAAABcAAAAXAAAAAwAAAMMAAABDAAAAAwAAAMMAAADDAAAAQwAAAFBAAAADAAAAD0AAAAmAAAADAAAAQwAAAIXAAAAFwAAAxcAAAMMAAACDAAAAAwAAAEMAAADDAAAAwwAAAAMAAABQQAAAAwAAAA9AAAAPQAAAD0AAAA9AAAAPQAAAD0AAAA9AAAADAAAAAwAAAIMAAABDAAAAAwAAAMMAAADDAAAAQwAAAEMAAAAPQAAAD0AAAAmAAAAPQAAAD0AAABEAAACRAAACQ== + tiles: UgAAAFIAAAJfAAAAUgAAAVIAAAFSAAABUgAAAFIAAAIXAAABFwAAABcAAAMXAAADFwAAAxcAAAIXAAACFwAAAUUAAAFSAAABUgAAA1IAAAJSAAADUgAAA1IAAANSAAACFwAAAkEAAAAXAAABQQAAABcAAAFBAAAAFwAAABcAAAFSAAAAUgAAA18AAABSAAABUgAAAFIAAABSAAABUgAAABcAAAFBAAAAFwAAAUEAAAAXAAABQQAAABcAAAAXAAACFwAAABcAAAAXAAADRQAAAkUAAANFAAACUgAAAlIAAAIXAAABFwAAABcAAAIXAAACFwAAARcAAAEXAAABFwAAAV8AAABfAAAAUgAAAkUAAAFFAAACRQAAAVIAAAJSAAADDAAAARcAAAEXAAABFwAAAxcAAAEXAAAAFwAAARcAAANEAAAFRAAACVIAAAJFAAADRQAAAEUAAABSAAAAUgAAAkQAAAwXAAADFwAAAj8AAAA/AAAAPwAAAD8AAAA/AAAADAAAAAwAAAIMAAADDAAAAAwAAAJfAAAAFwAAAV8AAAAMAAAADAAAAgwAAAMMAAAADAAAABcAAAAXAAACFwAAAUEAAABBAAAAXAAAAFwAAANcAAACFwAAARcAAAMXAAAAFwAAARcAAAIXAAADXwAAABcAAAIXAAADFwAAAhcAAANcAAACXAAAAVwAAAJcAAADXAAAAxcAAAIXAAACFwAAARcAAAAXAAADFwAAARcAAAIXAAACFwAAAxcAAAEXAAAAXAAAA1wAAABcAAABXAAAAVwAAAMXAAABFwAAAhcAAAAXAAADFwAAABcAAAJfAAAAFwAAAxcAAAAXAAACFwAAAQwAAAIMAAACDAAAAgwAAAIMAAACDAAAAwwAAAAMAAABDAAAAAwAAAAMAAAADAAAAwwAAAIXAAABFwAAAxcAAAIMAAADDAAAAwwAAAIMAAADDAAAAAwAAAAMAAADDAAAAAwAAAAmAAAAJgAAACYAAAAMAAAAXAAAAFwAAAFcAAABDAAAAQwAAAIMAAACDAAAAgwAAAEMAAABDAAAAUEAAAAMAAABJgAAACYAAAAmAAAADAAAAlwAAAJcAAAAXAAAAgwAAAMMAAADDAAAAAwAAAAMAAAADAAAAgwAAANBAAAADAAAAz0AAAAmAAAADAAAAQwAAAIXAAAAFwAAAxcAAAAMAAADDAAAAwwAAAEMAAAADAAAAgwAAAEMAAABQQAAAAwAAAE9AAAAPQAAAD0AAAA9AAAAPQAAAD0AAAA9AAAADAAAAgwAAAAMAAACDAAAAwwAAAIMAAAADAAAAQwAAAIMAAABPQAAAD0AAAAmAAAAPQAAAD0AAABEAAAHRAAACg== 0,0: ind: 0,0 - tiles: FwAAABcAAAAXAAAADAAAAQwAAAMMAAADDAAAAwwAAAEMAAABPQAAAD0AAAA9AAAAPQAAAD0AAABEAAAMRAAADF8AAABfAAAAXwAAABcAAAFfAAAADAAAAAwAAAEMAAACDAAAAAwAAAMMAAACDAAAAAwAAAJEAAAMRAAAC0QAAANEAAALRAAAB18AAAA8AAAAXwAAAEQAAApEAAAKRAAACEQAAAJEAAAKRAAAC0QAAApEAAAFRAAAAEQAAAdEAAACRAAAC0QAAAZfAAAAPAAAAF8AAABEAAALRAAADEQAAAFEAAAFRAAABkQAAAlEAAAARAAABUQAAAM8AAAARAAACEQAAAhEAAAAPAAAADwAAABEAAABRAAABUQAAAREAAAJRAAABEQAAAtEAAAJRAAACEQAAANEAAAKRAAABkQAAAxEAAAJRAAAAEQAAAw8AAAARAAABUQAAAdEAAAJRAAAA0QAAAJEAAAGRAAACkQAAAhEAAAIRAAAAUQAAAREAAAIRAAACEQAAAREAAAARAAAC0QAAAFEAAALRAAADEQAAAREAAACRAAACUQAAAVEAAALRAAAB0QAAAVEAAAJRAAAB0QAAAZEAAAARAAACkQAAAREAAAFRAAACUQAAAJEAAAKRAAACEQAAAdEAAACRAAABEQAAAVEAAABRAAAC0QAAAFEAAAGRAAAB0QAAAVEAAAHRAAACkQAAAtEAAAIRAAACEQAAAVEAAAKRAAAAEQAAAtEAAADRAAAAEQAAAxEAAALRAAADEQAAAFEAAADRAAAA0QAAAxEAAAERAAAAkQAAAtEAAAHRAAAAUQAAAtEAAABRAAABUQAAAVEAAAARAAABUQAAAREAAAIRAAACEQAAAREAAAMPAAAADwAAAA8AAAARAAACEQAAAZEAAALRAAABkQAAApEAAACRAAAA0QAAAtEAAAMRAAAAkQAAAdEAAAFRAAACDwAAAA8AAAAPAAAAEQAAAhEAAADRAAABEQAAAFEAAAKRAAABkQAAAxEAAAERAAACUQAAAFEAAAARAAACEQAAAU8AAAAPAAAADwAAABEAAAHRAAAAkQAAAJEAAALRAAABEQAAAtEAAAKRAAAB0QAAAVEAAAJRAAACkQAAABEAAAEPAAAADwAAAA8AAAARAAAB0QAAAREAAABRAAAAEQAAAxEAAACRAAAAEQAAAVEAAAARAAABkQAAAhEAAAIRAAABjwAAAA8AAAAPAAAAEQAAAZEAAAARAAACUQAAAZEAAABRAAAAkQAAANEAAACRAAAA0QAAAxEAAAMRAAACkQAAABEAAADRAAAB0QAAAZEAAAHRAAAAUQAAAhEAAAIRAAABUQAAAdEAAADRAAABA== + tiles: FwAAAxcAAAMXAAADDAAAAAwAAAAMAAACDAAAAwwAAAIMAAABPQAAAD0AAAA9AAAAPQAAAD0AAABEAAAIRAAAAl8AAABfAAAAXwAAABcAAAFfAAAADAAAAQwAAAEMAAADDAAAAAwAAAMMAAACDAAAAAwAAABEAAAIRAAAAUQAAAxEAAAIRAAACV8AAAA8AAAAXwAAAEQAAAZEAAAMRAAADEQAAAVEAAAERAAAAEQAAAFEAAABRAAABkQAAAtEAAAKRAAAAkQAAApfAAAAPAAAAF8AAABEAAADRAAAAkQAAAVEAAAARAAAAEQAAAREAAACRAAACUQAAAw8AAAARAAACkQAAAtEAAACPAAAADwAAABEAAAHRAAAAEQAAAVEAAACRAAACEQAAAZEAAAIRAAAAkQAAANEAAAERAAAAEQAAAlEAAALRAAADEQAAAo8AAAARAAACEQAAAxEAAABRAAAA0QAAABEAAABRAAABkQAAAhEAAAIRAAAAUQAAAZEAAAHRAAADEQAAAdEAAAGRAAAAkQAAAxEAAAHRAAAA0QAAANEAAAIRAAABkQAAAdEAAAKRAAABkQAAAxEAAAKRAAABUQAAANEAAACRAAACEQAAApEAAABRAAABUQAAAVEAAAMRAAAAUQAAAdEAAADRAAACkQAAABEAAAHRAAABUQAAAFEAAAHRAAABUQAAAVEAAAHRAAAA0QAAApEAAADRAAABEQAAAdEAAAMRAAAA0QAAAdEAAAJRAAACEQAAAtEAAAFRAAABEQAAANEAAAMRAAABUQAAApEAAADRAAACUQAAAxEAAAIRAAADEQAAApEAAAIRAAAAkQAAANEAAALRAAABUQAAAdEAAAMRAAAA0QAAAxEAAAAPAAAADwAAAA8AAAARAAAAkQAAABEAAABRAAAAUQAAAdEAAABRAAACkQAAAxEAAAMRAAAB0QAAApEAAAERAAAAjwAAAA8AAAAPAAAAEQAAAREAAAHRAAACkQAAAVEAAAFRAAACkQAAABEAAALRAAACEQAAAhEAAAERAAAB0QAAAw8AAAAPAAAADwAAABEAAAERAAABkQAAAZEAAAGRAAAAkQAAAxEAAAERAAAAUQAAAhEAAAJRAAAA0QAAApEAAAMPAAAADwAAAA8AAAARAAABUQAAAVEAAAIRAAAC0QAAANEAAAGRAAABUQAAAhEAAAERAAACkQAAAFEAAADRAAACTwAAAA8AAAAPAAAAEQAAApEAAAARAAAAUQAAAxEAAADRAAAB0QAAABEAAAKRAAAAEQAAAxEAAABRAAAAUQAAAREAAAFRAAAAUQAAAdEAAADRAAAA0QAAAhEAAAERAAACkQAAAdEAAAFRAAAAw== -1,0: ind: -1,0 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAADwAAAA8AAAAPAAAAEQAAApEAAAJRAAAAEQAAANfAAAAXwAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAAA8AAAAPAAAADwAAABEAAAHRAAACEQAAAlEAAALRAAADF8AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAPAAAADwAAABEAAAKRAAAAUQAAAdEAAALRAAACEQAAAhEAAABXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAADwAAAA8AAAARAAAA0QAAAJEAAABRAAAA0QAAAZEAAAGRAAAA14AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAAA8AAAARAAAAkQAAAZEAAAARAAAAUQAAAlEAAACRAAABkQAAAJEAAAIFwAAAxcAAAEXAAABRAAAARcAAAEXAAADRAAACEQAAAtEAAAGRAAAA0QAAAtEAAALRAAAAkQAAABEAAAERAAAChcAAAEXAAABFwAAABcAAAMXAAADFwAAA0QAAAZEAAAIRAAAAkQAAAREAAAKRAAAC0QAAAZEAAAHRAAAA0QAAAcXAAABFwAAABcAAANEAAAAFwAAAxcAAAFEAAALRAAAB0QAAAhEAAAHRAAAA0QAAAdEAAAARAAAAEQAAAA8AAAAFwAAAxcAAAMXAAAAPAAAADwAAAA8AAAARAAAAEQAAAxEAAAMRAAAAEQAAAFEAAAKRAAAA0QAAAdEAAABPAAAADwAAAA8AAAAFwAAADwAAAA8AAAAPAAAADwAAABEAAALRAAAC0QAAAtEAAABRAAACkQAAABEAAAIRAAAAzwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAARAAACkQAAABEAAAGRAAAB0QAAANEAAAERAAACkQAAApEAAAGRAAAC0QAAApEAAAERAAACUQAAAVEAAAAPAAAAEQAAAdEAAALRAAAB0QAAAFEAAAGRAAAC0QAAAdEAAAMRAAAAEQAAAZEAAAGRAAAAkQAAABEAAAARAAABzwAAABEAAAFRAAACEQAAAtEAAAERAAACkQAAAhEAAABRAAAA0QAAAhEAAAARAAACEQAAAtEAAAMRAAAAkQAAAE8AAAARAAABUQAAAhEAAAFRAAAAEQAAANEAAAGRAAABkQAAAVEAAAHRAAADEQAAAFEAAAHRAAACEQAAAxEAAAIPAAAAEQAAABEAAAERAAACEQAAAxEAAAHRAAABkQAAANEAAABRAAACEQAAAxEAAAHRAAABkQAAABEAAABRAAABEQAAABEAAAGRAAAAUQAAAtEAAADRAAAAEQAAAlEAAALRAAACw== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAADwAAAA8AAAAPAAAAEQAAAhEAAAARAAABEQAAABfAAAAXwAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAAA8AAAAPAAAADwAAABEAAALRAAABUQAAAlEAAAERAAAAl8AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAPAAAADwAAABEAAAARAAAC0QAAAFEAAAERAAAA0QAAAFEAAAJXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAADwAAAA8AAAARAAAAUQAAAJEAAABRAAAAkQAAAVEAAAFRAAAAV4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAAA8AAAARAAACEQAAAtEAAABRAAABEQAAANEAAAFRAAAAEQAAAlEAAAJFwAAAxcAAAAXAAABRAAAARcAAAIXAAADRAAACkQAAABEAAAIRAAAAkQAAAZEAAAMRAAACkQAAAdEAAAERAAAAxcAAAAXAAABFwAAAhcAAAEXAAAAFwAAA0QAAAVEAAAGRAAABUQAAAJEAAAMRAAABkQAAABEAAAHRAAABkQAAAYXAAADFwAAABcAAABEAAAJFwAAAhcAAABEAAALRAAABkQAAAlEAAAHRAAABUQAAAhEAAABRAAAA0QAAAg8AAAAFwAAAxcAAAAXAAAAPAAAADwAAAA8AAAARAAABUQAAAdEAAACRAAACkQAAAdEAAALRAAACEQAAANEAAAIPAAAADwAAAA8AAAAFwAAADwAAAA8AAAAPAAAADwAAABEAAAARAAACEQAAANEAAABRAAAAEQAAANEAAAHRAAABTwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAARAAACEQAAApEAAAIRAAACEQAAAVEAAAMRAAAA0QAAApEAAAARAAAAUQAAAdEAAAGRAAABkQAAAREAAADPAAAAEQAAAdEAAAJRAAABUQAAANEAAAFRAAACEQAAAdEAAAARAAAAEQAAAREAAAHRAAAAEQAAAZEAAABRAAABDwAAABEAAAARAAABUQAAApEAAALRAAAAUQAAAVEAAAERAAAAkQAAAVEAAACRAAACUQAAABEAAAARAAADEQAAAo8AAAARAAABkQAAApEAAAIRAAACkQAAAZEAAACRAAAAUQAAAdEAAADRAAAAUQAAAVEAAABRAAAAkQAAAtEAAAEPAAAAEQAAAdEAAAIRAAAAUQAAAdEAAADRAAACEQAAAxEAAAJRAAACEQAAAhEAAAARAAABEQAAAZEAAAKRAAACEQAAABEAAAIRAAAAkQAAApEAAAMRAAAAUQAAAxEAAAFRAAABg== 1,-1: ind: 1,-1 - tiles: FwAAABcAAAIXAAACFwAAABcAAAI7AAAAOwAAADsAAAAXAAACFwAAARcAAAIXAAAAXwAAAEQAAAxEAAAERAAAABcAAAAXAAADFwAAAhcAAAMXAAACOwAAADsAAAA7AAAAFwAAAxcAAAIXAAAAFwAAAF8AAABEAAAKRAAAAUQAAAUXAAACFwAAABcAAAMXAAACFwAAARcAAAMXAAADFwAAARcAAAAXAAAAFwAAABcAAANfAAAARAAABkQAAAVEAAAGFwAAARcAAAAXAAAAFwAAARcAAAIXAAACFwAAAxcAAAAXAAAAFwAAAl8AAABfAAAAXwAAAEQAAAZEAAAERAAACxcAAAIXAAACFwAAAhcAAAAXAAACFwAAARcAAAIXAAADFwAAARcAAANEAAAFRAAADEQAAAJEAAAIRAAAAwAAAAAXAAADFwAAAhcAAAIXAAACFwAAARcAAAEXAAAAFwAAAhcAAAIXAAADRAAACEQAAAo8AAAARAAAAkQAAAMAAAAAFwAAABcAAABBAAAAQQAAAEEAAABBAAAAQQAAABcAAAMXAAAAFwAAAEQAAAxEAAAJRAAADEQAAAhEAAAGAAAAAF8AAAAXAAAAQQAAAEEAAABBAAAAQQAAAEEAAAAXAAABFwAAARcAAABEAAABPAAAAEQAAAFEAAAKRAAAAQAAAAAXAAACFwAAA0EAAABBAAAAQQAAAEEAAABBAAAAFwAAABcAAAIXAAABRAAAAzwAAAA8AAAARAAAC0QAAAFEAAALXwAAABcAAABBAAAAQQAAAEEAAABBAAAAQQAAABcAAAMXAAADFwAAA0QAAAA8AAAARAAAAUQAAAtEAAAARAAAChcAAAMXAAABQQAAAEEAAABBAAAAQQAAAEEAAAAXAAACFwAAAhcAAAFEAAADRAAACEQAAAlEAAAFRAAAAkQAAAsXAAADFwAAABcAAAAXAAABFwAAAhcAAAAXAAACFwAAAhcAAAAXAAABRAAAAzwAAABEAAACRAAACUQAAAlEAAAHFwAAABcAAAEXAAAAFwAAARcAAAIXAAADFwAAAxcAAAEXAAABFwAAA0QAAAZEAAAJRAAAAEQAAAxEAAAERAAABRcAAAAXAAACFwAAAxcAAAAXAAADFwAAAxcAAAAXAAADFwAAABcAAABEAAABPAAAADwAAABEAAAFRAAAC0QAAAJEAAAMRAAABkQAAANEAAAJRAAACkQAAAhEAAADRAAABUQAAAxEAAAKRAAABEQAAAhEAAAARAAAB0QAAAhEAAAAPAAAAEQAAAQ8AAAARAAABTwAAAA8AAAAPAAAAEQAAAZEAAAHRAAACzwAAAA8AAAARAAADEQAAAlEAAAGRAAABw== + tiles: FwAAAhcAAAMXAAACFwAAAhcAAAA7AAAAOwAAADsAAAAXAAADFwAAAhcAAAEXAAAAXwAAAEQAAAxEAAAGRAAAAhcAAAIXAAABFwAAAxcAAAMXAAACOwAAADsAAAA7AAAAFwAAARcAAAAXAAACFwAAA18AAABEAAAFRAAADEQAAAEXAAAAFwAAABcAAAIXAAADFwAAARcAAAEXAAAAFwAAAxcAAAIXAAAAFwAAAxcAAANfAAAARAAAC0QAAAxEAAAMFwAAABcAAAIXAAADFwAAARcAAAEXAAAAFwAAARcAAAAXAAACFwAAAl8AAABfAAAAXwAAAEQAAAlEAAAHRAAABhcAAAEXAAAAFwAAAxcAAAIXAAADFwAAAhcAAAEXAAABFwAAAhcAAAJEAAAGRAAACUQAAAdEAAAMRAAACQAAAAAXAAADFwAAABcAAAMXAAAAFwAAAhcAAAIXAAABFwAAAxcAAAEXAAACRAAABUQAAAY8AAAARAAACUQAAAwAAAAAFwAAAhcAAAFBAAAAQQAAAEEAAABBAAAAQQAAABcAAAAXAAABFwAAAkQAAApEAAAMRAAAAEQAAAZEAAAGAAAAAF8AAAAXAAAAQQAAAEEAAABBAAAAQQAAAEEAAAAXAAABFwAAAxcAAAJEAAAGPAAAAEQAAABEAAADRAAAAQAAAAAXAAADFwAAAUEAAABBAAAAQQAAAEEAAABBAAAAFwAAARcAAAAXAAABRAAAAjwAAAA8AAAARAAABUQAAANEAAAMXwAAABcAAAFBAAAAQQAAAEEAAABBAAAAQQAAABcAAAEXAAAAFwAAAkQAAAY8AAAARAAACkQAAAZEAAAERAAAChcAAAEXAAADQQAAAEEAAABBAAAAQQAAAEEAAAAXAAAAFwAAABcAAANEAAAHRAAAAEQAAAFEAAAIRAAACkQAAAUXAAACFwAAABcAAAIXAAADFwAAABcAAAMXAAAAFwAAAhcAAAAXAAABRAAAAjwAAABEAAAJRAAABUQAAAxEAAABFwAAABcAAAEXAAABFwAAABcAAAAXAAACFwAAABcAAAIXAAACFwAAAEQAAABEAAAGRAAABEQAAAVEAAAERAAACxcAAAMXAAADFwAAAhcAAAAXAAAAFwAAAhcAAAMXAAACFwAAARcAAABEAAAMPAAAADwAAABEAAAIRAAACkQAAAtEAAAIRAAAAkQAAAZEAAAGRAAABEQAAAdEAAAKRAAAAUQAAApEAAABRAAADEQAAAZEAAAARAAAAUQAAApEAAAKPAAAAEQAAAE8AAAARAAACjwAAAA8AAAAPAAAAEQAAAFEAAAIRAAAADwAAAA8AAAARAAACEQAAApEAAAFRAAACg== 0,-2: ind: 0,-2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAFRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAABkQAAAdEAAAIRAAAA0QAAAFEAAAHRAAAA0QAAAlEAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAtEAAAHRAAABUQAAAdEAAAARAAADEQAAAREAAAARAAAAUQAAApEAAAHRAAABEQAAAdEAAADRAAAAEQAAABEAAAHRAAABkQAAAREAAAHRAAABUQAAAM8AAAARAAABkQAAANfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAARAAAAkQAAAREAAABRAAAB0QAAAdEAAADRAAAAUQAAAVEAAAGXwAAADsAAAA7AAAAOwAAADsAAAA7AAAAXwAAAEQAAAZEAAABRAAAAkQAAAJEAAAHRAAAAkQAAABEAAAERAAADF8AAAA7AAAAOwAAADsAAAA7AAAAOwAAAF8AAABEAAAARAAAA0QAAANEAAALRAAAAUQAAAlEAAAGRAAAAEQAAAZfAAAAOwAAADsAAAA7AAAAOwAAADsAAABfAAAARAAAAEQAAAlEAAAJRAAAAEQAAAxEAAAIRAAAAUQAAAFEAAAFXwAAADsAAAA7AAAAOwAAADsAAAA7AAAAXwAAAEQAAAdEAAAFRAAABlIAAABSAAABUgAAA1IAAANSAAAAPAAAAF8AAABFAAABRQAAAkUAAAFFAAAARQAAAl8AAABfAAAARAAABkQAAABSAAABUgAAAFIAAAJSAAABUgAAAl8AAABPAAAARQAAAEUAAAJFAAABRQAAA0UAAANfAAAAFwAAABcAAAJEAAADUgAAA1IAAANSAAADUgAAAlIAAANPAAAATwAAAEUAAABFAAADRQAAAUUAAAJFAAABXwAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAIRAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAABUQAAApEAAAERAAAC0QAAANEAAAIRAAABUQAAApEAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAApEAAAERAAAAEQAAAdEAAALRAAABkQAAAdEAAAERAAACEQAAAFEAAABRAAABkQAAAZEAAAIRAAADEQAAAxEAAAERAAAAkQAAAVEAAAFRAAAAEQAAAQ8AAAARAAACEQAAARfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAARAAAA0QAAAdEAAAKRAAAAUQAAAlEAAAJRAAAAUQAAAJEAAAJXwAAADsAAAA7AAAAOwAAADsAAAA7AAAAXwAAAEQAAAFEAAALRAAABkQAAAFEAAACRAAABEQAAApEAAAKRAAAB18AAAA7AAAAOwAAADsAAAA7AAAAOwAAAF8AAABEAAAARAAACUQAAAVEAAAHRAAABkQAAAREAAAIRAAAA0QAAAFfAAAAOwAAADsAAAA7AAAAOwAAADsAAABfAAAARAAAA0QAAAVEAAALRAAAB0QAAAREAAAHRAAACkQAAAlEAAAMXwAAADsAAAA7AAAAOwAAADsAAAA7AAAAXwAAAEQAAAJEAAAFRAAAAVIAAANSAAAAUgAAAFIAAAJSAAACPAAAAF8AAABFAAACRQAAAUUAAABFAAAARQAAAl8AAABfAAAARAAACUQAAAxSAAABUgAAAFIAAANSAAADUgAAA18AAABPAAAARQAAA0UAAAJFAAADRQAAAkUAAAFfAAAAFwAAAxcAAAJEAAAKUgAAAVIAAAFSAAABUgAAAVIAAAFPAAAATwAAAEUAAANFAAAARQAAAUUAAABFAAACXwAAAA== -1,-2: ind: -1,-2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAHRAAABEQAAApEAAAIRAAAC0QAAAtEAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAACkQAAAFEAAAFRAAABkQAAAJEAAAGRAAAAkQAAABEAAAMRAAACgAAAAAAAAAAAAAAAAAAAABEAAAHRAAACUQAAAFEAAAHRAAAAUQAAAxEAAAKRAAACEQAAAdEAAAGRAAAAEQAAAheAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAPAAAADwAAAA8AAAAFwAAAEQAAAhEAAACRAAAA0QAAAhEAAALXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAADwAAAA8AAAAPAAAAEQAAAxEAAADRAAACkQAAAZEAAAJRAAABl4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAAA8AAAAPAAAADwAAABEAAAERAAAC0QAAAREAAAIRAAACkQAAAReAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAPAAAADwAAAA8AAAARAAADEQAAAdEAAAKRAAACUQAAAdEAAADAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAADwAAAA8AAAAPAAAAEQAAAVEAAABRAAACEQAAAhEAAABRAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAAA8AAAAPAAAADwAAABEAAAERAAABUQAAAxEAAALRAAABkQAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAPAAAADwAAAA8AAAARAAAB0QAAAZfAAAAXwAAAF8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAADwAAAA8AAAAPAAAAEQAAAZEAAAKXwAAABcAAAEXAAACFwAAAw== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAERAAAAEQAAAxEAAAIRAAACUQAAAxEAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAACkQAAAlEAAAHRAAABUQAAAREAAALRAAABEQAAAdEAAAARAAACAAAAAAAAAAAAAAAAAAAAABEAAAHRAAAAUQAAAZEAAAKRAAAAEQAAAREAAABRAAACUQAAAZEAAAARAAACUQAAAJeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAPAAAADwAAAA8AAAAFwAAAEQAAAtEAAABRAAAB0QAAApEAAAKXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAADwAAAA8AAAAPAAAAEQAAAJEAAAFRAAADEQAAAhEAAAKRAAAAV4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAAA8AAAAPAAAADwAAABEAAAFRAAABEQAAAVEAAAHRAAABUQAAAheAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAPAAAADwAAAA8AAAARAAAB0QAAANEAAAARAAACkQAAAdEAAAHAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAADwAAAA8AAAAPAAAAEQAAAlEAAAIRAAACEQAAAREAAAJRAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAAA8AAAAPAAAADwAAABEAAAKRAAACUQAAAtEAAAGRAAACUQAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAPAAAADwAAAA8AAAARAAAAEQAAAhfAAAAXwAAAF8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAADwAAAA8AAAAPAAAAEQAAAZEAAAAXwAAABcAAAIXAAAAFwAAAQ== -1,1: ind: -1,1 - tiles: RAAAAUQAAAZEAAAERAAAAUQAAANEAAAARAAABkQAAABEAAAKRAAABUQAAAxEAAAJRAAACUQAAAZEAAAJRAAACkQAAAlEAAAFRAAAAEQAAAtEAAAARAAACEQAAAtEAAALRAAAAEQAAAFEAAAGRAAACkQAAAVEAAAHRAAACkQAAAFEAAAERAAACEQAAANEAAAKRAAAC0QAAAhEAAADPAAAADwAAABEAAAIRAAAAEQAAAVEAAAIRAAABEQAAAdEAAACEgAAABIAAAASAAAAEgAAAEQAAAVEAAAKRAAACTwAAAA8AAAARAAABEQAAAREAAAARAAAAEQAAAZEAAABRAAACxIAAAASAAAAEgAAABIAAABEAAALRAAABEQAAAM8AAAAPAAAAEQAAAFEAAAJRAAAA0QAAAA8AAAAPAAAADwAAAASAAAAEgAAABIAAAASAAAARAAABEQAAAtEAAAHRAAACEQAAAlEAAABPAAAAEQAAAZEAAACRAAAAUQAAAxEAAAIEgAAABIAAAASAAAAEgAAAEQAAAVEAAAMRAAAAEQAAAlEAAAHRAAAA0QAAAtEAAACRAAAAEQAAAJEAAABRAAAARIAAAASAAAAEgAAABIAAABEAAAIRAAAA0QAAAFEAAAGRAAACEQAAAZEAAAKRAAACkQAAAlEAAABAAAAAAAAAAASAAAAEgAAABIAAAASAAAARAAADEQAAAJEAAAERAAAC0QAAAlEAAAJRAAACkQAAAREAAAMRAAACgAAAAAAAAAARAAACkQAAAJEAAAGRAAACEQAAAREAAAKRAAAB0QAAAtEAAABRAAAC0QAAAREAAAMRAAAAEQAAAsAAAAAAAAAAEQAAAZEAAABRAAAC0QAAAZEAAAHRAAADEQAAAREAAAFRAAAAUQAAAREAAAMRAAAC0QAAAFEAAAAAAAAAAAAAABEAAACRAAABUQAAAtEAAAFRAAAA0QAAAREAAALRAAACkQAAAlEAAAFRAAADEQAAAhEAAAGRAAABwAAAAAAAAAARAAAA0QAAAJEAAAGRAAADEQAAAZEAAACRAAACUQAAAlEAAALRAAABkQAAApEAAAGRAAACkQAAAkAAAAAAAAAAEQAAANEAAAIRAAAAkQAAAJEAAALRAAADEQAAAFEAAAIRAAAC0QAAAREAAAGRAAAAkQAAABEAAAFAAAAAAAAAABEAAAERAAAAEQAAAlEAAAJRAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: RAAABkQAAAxEAAAERAAAAkQAAAdEAAAERAAABkQAAABEAAAGRAAACEQAAAtEAAAFRAAADEQAAApEAAAKRAAAAkQAAAhEAAAKRAAADEQAAAJEAAABRAAADEQAAABEAAAGRAAABkQAAAxEAAALRAAABEQAAAhEAAAHRAAABkQAAAhEAAALRAAABEQAAAlEAAAMRAAACUQAAApEAAAHPAAAADwAAABEAAAERAAAAUQAAAlEAAAHRAAABEQAAAlEAAAEEgAAABIAAAASAAAAEgAAAEQAAAZEAAAHRAAAATwAAAA8AAAARAAAA0QAAANEAAACRAAABkQAAAREAAAKRAAABhIAAAASAAAAEgAAABIAAABEAAAKRAAAC0QAAAc8AAAAPAAAAEQAAANEAAAJRAAAAEQAAAk8AAAAPAAAADwAAAASAAAAEgAAABIAAAASAAAARAAAAkQAAAlEAAAMRAAABEQAAAZEAAAEPAAAAEQAAAdEAAAKRAAACEQAAAZEAAAKEgAAABIAAAASAAAAEgAAAEQAAAlEAAALRAAAA0QAAAxEAAAARAAAAUQAAApEAAAGRAAAA0QAAABEAAAKRAAABhIAAAASAAAAEgAAABIAAABEAAAGRAAAAUQAAAlEAAAHRAAACUQAAAFEAAACRAAAB0QAAAdEAAAHAAAAAAAAAAASAAAAEgAAABIAAAASAAAARAAABkQAAAhEAAAGRAAAB0QAAAJEAAAMRAAAB0QAAAZEAAAGRAAAAgAAAAAAAAAARAAACkQAAAJEAAABRAAACUQAAABEAAAKRAAABkQAAAVEAAAMRAAACkQAAAxEAAAJRAAACEQAAAMAAAAAAAAAAEQAAAZEAAAMRAAACEQAAAlEAAAGRAAAAUQAAAFEAAAERAAABUQAAANEAAAGRAAABkQAAAtEAAAMAAAAAAAAAABEAAAFRAAACEQAAABEAAAARAAAAUQAAApEAAACRAAABEQAAAxEAAABRAAABkQAAAFEAAALRAAABwAAAAAAAAAARAAADEQAAAdEAAABRAAAAkQAAAdEAAAFRAAACUQAAAdEAAAHRAAABUQAAANEAAAHRAAAC0QAAAUAAAAAAAAAAEQAAAZEAAAIRAAAB0QAAAVEAAACRAAAAkQAAAtEAAADRAAAB0QAAAVEAAAMRAAACkQAAAREAAABAAAAAAAAAABEAAALRAAAB0QAAAJEAAADRAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== 0,1: ind: 0,1 - tiles: RAAAB0QAAAdEAAALRAAAA0QAAAtEAAAKRAAAC0QAAAZEAAAGRAAABEQAAANEAAADRAAAAEQAAABEAAALRAAAC0QAAAVEAAAHRAAAAUQAAApEAAAJRAAACkQAAAlEAAAMRAAAB0QAAApEAAALRAAAAkQAAAhEAAAJRAAAAkQAAAxEAAABRAAAAUQAAAZEAAACRAAACUQAAABEAAAJRAAAAkQAAAtEAAAKRAAACUQAAAhEAAAIRAAACkQAAAxEAAAHRAAAAUQAAAtEAAAERAAAA0QAAAJEAAACRAAABkQAAAdEAAAERAAAA0QAAApEAAABRAAAAUQAAAtEAAAJRAAAADwAAABEAAAGRAAAAkQAAAZEAAAGRAAACUQAAAVEAAAEPAAAAEQAAAE8AAAAPAAAADwAAAA8AAAARAAACEQAAAlfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABEAAALRAAAC0QAAAhEAAAKRAAAB0QAAAZEAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAABEQAAAFEAAAJRAAAAEQAAANEAAALRAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAKRAAACEQAAAFEAAAHRAAAAUQAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAABEQAAABEAAALRAAAAUQAAApEAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAJEAAALRAAAAEQAAAZEAAAHRAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAGRAAADEQAAAxEAAAGRAAAAEQAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAkQAAAlEAAAJRAAAC0QAAAhEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAlEAAACRAAAAEQAAANEAAABRAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAADRAAABEQAAAxEAAAJRAAAB0QAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAABkQAAAZEAAAGRAAAAUQAAABEAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAREAAAARAAAAEQAAABEAAAMRAAABA== + tiles: RAAABEQAAAZEAAAHRAAAC0QAAApEAAAFRAAACEQAAAtEAAAARAAAAEQAAApEAAAGRAAACEQAAAxEAAAMRAAABUQAAAxEAAAGRAAACEQAAAxEAAAARAAABEQAAABEAAAHRAAABkQAAAlEAAAIRAAABkQAAAxEAAABRAAACkQAAAhEAAAGRAAABkQAAAdEAAAHRAAABkQAAAhEAAALRAAAA0QAAAFEAAAIRAAAAEQAAApEAAAIRAAAA0QAAANEAAADRAAACEQAAABEAAAIRAAABUQAAABEAAABRAAABkQAAAhEAAAARAAAA0QAAAtEAAABRAAABUQAAAlEAAAKRAAADDwAAABEAAAJRAAAAkQAAAVEAAADRAAABEQAAAdEAAAEPAAAAEQAAAY8AAAAPAAAADwAAAA8AAAARAAADEQAAAZfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABEAAAERAAACUQAAANEAAALRAAACkQAAAVEAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAACUQAAAJEAAABRAAADEQAAANEAAACRAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAADRAAABUQAAAREAAACRAAACkQAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAACUQAAAtEAAAIRAAABUQAAAxEAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAApEAAAFRAAACkQAAAJEAAAKRAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAACRAAABUQAAAFEAAAARAAAAkQAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAEQAAAZEAAAJRAAAAkQAAAZEAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAABEAAAIRAAAAEQAAAREAAAJRAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAADRAAACUQAAAFEAAAERAAABUQAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAACEQAAAJEAAAJRAAADEQAAAtEAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAZEAAAERAAACEQAAAVEAAAHRAAACQ== 1,1: ind: 1,1 - tiles: RAAABkQAAAZEAAAKRAAABUQAAAxEAAAARAAAAkQAAAxEAAAFRAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAhEAAAARAAADEQAAAZEAAALRAAACEQAAApEAAAJRAAAB0QAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAADRAAACkQAAAQ8AAAARAAACEQAAABEAAAFRAAAAEQAAAlEAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAABEQAAAhEAAADPAAAAEQAAABEAAADRAAABEQAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAs8AAAAPAAAADwAAABEAAAIRAAAA0QAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAABRAAAA0QAAAdEAAAGRAAAAkQAAABEAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAB0QAAANEAAALRAAACkQAAAlEAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAApEAAAFRAAACEQAAAhEAAAGRAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAFRAAAA0QAAABEAAABRAAAB0QAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAA0QAAAlEAAAARAAAAkQAAAZEAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAhEAAAIRAAABUQAAAtEAAAERAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAKRAAABkQAAAFEAAACRAAAAEQAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAB0QAAAdEAAAJRAAAAkQAAAxEAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAlEAAAIRAAAC0QAAApEAAAMRAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAJRAAAA0QAAAtEAAAERAAAAkQAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAABkQAAApEAAAMRAAACUQAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: RAAAA0QAAAFEAAAJRAAABUQAAAdEAAAJRAAABkQAAAlEAAAHRAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAVEAAAMRAAABkQAAAJEAAAKRAAAAUQAAAdEAAALRAAAAUQAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAALRAAAA0QAAAI8AAAARAAABEQAAAFEAAADRAAADEQAAAhEAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAABkQAAAJEAAALPAAAAEQAAABEAAABRAAACEQAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAk8AAAAPAAAADwAAABEAAAMRAAAB0QAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAERAAADEQAAAtEAAACRAAAB0QAAAREAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAADEQAAAZEAAACRAAAAkQAAAxEAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAlEAAAARAAAB0QAAAhEAAALRAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAHRAAACEQAAAZEAAALRAAAAkQAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAABEQAAAdEAAAFRAAAAEQAAABEAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAxEAAAARAAAA0QAAAdEAAAHRAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAALRAAAAEQAAAlEAAAHRAAAC0QAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAB0QAAAVEAAAHRAAABEQAAAhEAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAxEAAAKRAAABEQAAAdEAAACRAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAERAAAA0QAAAdEAAAJRAAAAEQAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAABEQAAAFEAAAERAAAA0QAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== 1,0: ind: 1,0 - tiles: RAAADDwAAAA8AAAARAAABkQAAAREAAAHRAAACUQAAAREAAAIPAAAADwAAABEAAAIRAAACEQAAAREAAAFRAAADEQAAAFEAAAMRAAACEQAAAJEAAACRAAAC0QAAAREAAAFRAAAAUQAAAhEAAAGRAAACUQAAAdEAAAIRAAAA0QAAAFEAAAGRAAAAUQAAAFEAAAHRAAAAUQAAAVEAAAJRAAABEQAAAJEAAAMRAAAC0QAAAVEAAAMRAAABEQAAABEAAABRAAABEQAAAxEAAACRAAABEQAAAtEAAADRAAACEQAAAhEAAAIRAAAB0QAAAdEAAAJRAAAA0QAAAJEAAAHRAAAAEQAAANEAAAHRAAABEQAAAhEAAAERAAABjwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAAEQAAABEAAAHRAAACUQAAAtEAAAFRAAADEQAAAdEAAAGRAAADEQAAAdEAAABRAAAA0QAAAREAAAARAAAAkQAAAFEAAAJRAAACkQAAAlEAAAHRAAAAUQAAAtEAAABRAAACUQAAANEAAADRAAAA0QAAAFEAAADRAAAA0QAAAlEAAAJRAAABEQAAAlEAAAARAAAA0QAAANEAAAMRAAAA0QAAAFEAAAERAAACEQAAANEAAACRAAACUQAAAZEAAAKAAAAAAAAAABEAAALRAAABkQAAAhEAAAGRAAABUQAAAREAAAMRAAACUQAAAFEAAALRAAABkQAAAxEAAAJRAAAAQAAAAAAAAAARAAAB0QAAApEAAAKRAAAAkQAAAdEAAABRAAAAkQAAAZEAAALRAAAAUQAAAxEAAALRAAAC0QAAAMAAAAAAAAAAEQAAAREAAABRAAAAEQAAAtEAAAKRAAABkQAAApEAAAERAAABkQAAAdEAAALAAAAAAAAAAAAAAAAAAAAAAAAAABEAAABRAAACUQAAAtEAAAKRAAAB0QAAAZEAAADRAAAAkQAAAVEAAALRAAABAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAB0QAAAVEAAAERAAAB0QAAAhEAAAARAAACEQAAABEAAAGRAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAApEAAAARAAAAEQAAAlEAAAGRAAAAkQAAAREAAADRAAABkQAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAADRAAACEQAAAxEAAAHRAAACUQAAABEAAAGRAAACUQAAAlEAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAB0QAAAFEAAADPAAAAEQAAAhEAAAIRAAAA0QAAAJEAAAGRAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: RAAADDwAAAA8AAAARAAAB0QAAAJEAAALRAAACUQAAAhEAAAHPAAAADwAAABEAAAIRAAAAEQAAABEAAAJRAAABkQAAAFEAAAMRAAAC0QAAAZEAAABRAAACUQAAAtEAAAFRAAAA0QAAAxEAAACRAAAB0QAAAhEAAABRAAAB0QAAANEAAAHRAAAB0QAAAZEAAAKRAAAA0QAAAdEAAAMRAAACUQAAAVEAAADRAAACEQAAAtEAAAFRAAABkQAAAxEAAAHRAAAAkQAAAhEAAAIRAAAAEQAAAJEAAAFRAAABkQAAAJEAAABRAAACkQAAAtEAAAKRAAABkQAAApEAAAJRAAAB0QAAAFEAAAGRAAAA0QAAAVEAAAKRAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAAEQAAAhEAAADRAAACUQAAApEAAADRAAACUQAAAZEAAALRAAACUQAAAVEAAAARAAAAkQAAAFEAAALRAAACkQAAAVEAAALRAAAC0QAAABEAAAERAAABkQAAAREAAAMRAAACkQAAABEAAADRAAABkQAAAREAAAFRAAAB0QAAAlEAAACRAAACUQAAAREAAAIRAAAB0QAAABEAAAARAAACUQAAAtEAAAGRAAAAUQAAAlEAAAARAAAC0QAAAFEAAADAAAAAAAAAABEAAAKRAAABkQAAABEAAACRAAAC0QAAAtEAAAARAAAA0QAAAxEAAAHRAAACEQAAAhEAAAARAAACgAAAAAAAAAARAAADEQAAAVEAAAARAAAB0QAAAREAAAARAAADEQAAAhEAAALRAAAC0QAAApEAAAHRAAADEQAAAYAAAAAAAAAAEQAAAREAAALRAAAA0QAAABEAAAJRAAABUQAAANEAAAGRAAADEQAAAxEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAADRAAADEQAAAJEAAALRAAACEQAAAxEAAACRAAACEQAAAtEAAAHRAAACgAAAAAAAAAAAAAAAAAAAAAAAAAARAAACUQAAAREAAAGRAAAAUQAAAZEAAAJRAAAA0QAAAxEAAACRAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAxEAAAKRAAAAkQAAAtEAAAJRAAAC0QAAApEAAABRAAACEQAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAIRAAACEQAAAxEAAAARAAAAEQAAANEAAAHRAAAC0QAAAREAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAkQAAAREAAAMPAAAAEQAAApEAAAFRAAAAkQAAANEAAAIRAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== 1,-2: ind: 1,-2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAANEAAAARAAACUQAAANEAAAHRAAADEQAAAtEAAAJRAAABEQAAAREAAAKRAAABkQAAAFEAAAFRAAABAAAAABEAAAARAAAB0QAAAhEAAAERAAAAjwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAABEAAAGRAAAAkQAAAdEAAADRAAAC0QAAAtEAAAMRAAABkQAAAdEAAACRAAABUQAAAREAAAARAAADEQAAAFEAAAKRAAACUQAAAlEAAAFRAAAC0QAAABEAAALRAAAB0QAAAREAAAJRAAAAkQAAANEAAAERAAAAEQAAAJEAAACRAAAA0QAAAFEAAAJRAAACUQAAAlfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAARAAACkQAAAxEAAAHXwAAAE8AAAAXAAABFwAAAhcAAANfAAAAXwAAAF8AAAAXAAACFwAAABcAAAFPAAAAXwAAAEQAAAVEAAAGRAAABV8AAABPAAAAFwAAARcAAAIXAAAAFwAAARcAAAEXAAACFwAAAxcAAAAXAAADTwAAAF8AAABEAAALRAAAB0QAAApfAAAATwAAABcAAAIXAAAAFwAAAV8AAABfAAAAXwAAABcAAAMXAAACFwAAA08AAABfAAAARAAADEQAAAtEAAAERAAAABcAAAMXAAABFwAAARcAAAE7AAAAOwAAADsAAAAXAAACFwAAAxcAAAIXAAADXwAAAEQAAAREAAAMRAAABw== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAREAAACRAAAB0QAAApEAAAMRAAAAkQAAApEAAAFRAAAAkQAAAREAAAERAAABUQAAApEAAAJRAAABgAAAABEAAAKRAAACEQAAAZEAAADRAAAATwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAABEAAADRAAAC0QAAABEAAAARAAAB0QAAABEAAACRAAACEQAAAFEAAACRAAAC0QAAAdEAAAJRAAACkQAAAtEAAAJRAAAAUQAAANEAAAARAAAA0QAAAlEAAAARAAABUQAAAhEAAAERAAAC0QAAANEAAACRAAAA0QAAAxEAAADRAAAC0QAAAJEAAAIRAAAAUQAAANfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAARAAAC0QAAAxEAAAAXwAAAE8AAAAXAAAAFwAAAhcAAAJfAAAAXwAAAF8AAAAXAAACFwAAARcAAAJPAAAAXwAAAEQAAAVEAAACRAAACF8AAABPAAAAFwAAAhcAAAEXAAADFwAAAxcAAAIXAAADFwAAARcAAAAXAAACTwAAAF8AAABEAAAKRAAAAkQAAApfAAAATwAAABcAAAIXAAACFwAAAF8AAABfAAAAXwAAABcAAAIXAAABFwAAAU8AAABfAAAARAAACEQAAAFEAAAJRAAAAhcAAAMXAAADFwAAAxcAAAI7AAAAOwAAADsAAAAXAAADFwAAABcAAAEXAAADXwAAAEQAAAdEAAAMRAAACw== -2,0: ind: -2,0 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAANEAAAJRAAADEQAAAxEAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAABRAAACUQAAAtEAAAIRAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAJRAAAC0QAAAREAAAFRAAAA0QAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAUQAAAxEAAACRAAABjwAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAlEAAAMRAAACUQAAAU8AAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAARAAABTwAAAA8AAAAPAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAABUQAAAJEAAALRAAAAEQAAAhEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAABEQAAAJEAAAARAAACkQAAAFEAAACRAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAABUQAAAdEAAAGRAAAA0QAAAlEAAAERAAABkQAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAFEAAAKRAAACkQAAApEAAAERAAACUQAAANEAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAERAAACUQAAAJEAAAERAAAAEQAAAdEAAAIRAAADA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAtEAAAARAAACkQAAAhEAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAJRAAAAEQAAAFEAAAERAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAMRAAAB0QAAAFEAAAFRAAABEQAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAABkQAAAVEAAAGRAAABjwAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAdEAAAFRAAACEQAAAE8AAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAALRAAABjwAAAA8AAAAPAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAACEQAAANEAAALRAAABUQAAABEAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAB0QAAApEAAAMRAAAAkQAAAREAAAARAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAC0QAAAdEAAAGRAAACUQAAAFEAAAERAAABkQAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAABEAAAKRAAAC0QAAABEAAAIRAAABUQAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAGRAAADEQAAAtEAAAGRAAABEQAAAREAAAERAAACA== -2,1: ind: -2,1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAFRAAAB0QAAAlEAAAIRAAACUQAAABEAAAARAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAACEQAAABEAAAIRAAABEQAAABEAAADRAAAB0QAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAHRAAACUQAAAdEAAABRAAAB0QAAAREAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAUQAAANEAAAJPAAAAEQAAAUSAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAABUQAAAxEAAAJRAAABjwAAABEAAAFEgAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAACUQAAAZEAAAIRAAADEQAAAhEAAAHRAAABRIAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAhEAAAIRAAACUQAAAZEAAAARAAACkQAAAMSAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAHRAAABUQAAAhEAAABRAAAAUQAAAhEAAAHEgAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAABkQAAAJEAAAKRAAAC0QAAAZEAAAERAAADBIAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAVEAAAERAAABkQAAAVEAAACRAAAAkQAAAtEAAALRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAGRAAAA0QAAApEAAALRAAABkQAAAxEAAAHRAAABkQAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAACEQAAAhEAAADRAAADEQAAAlEAAAGRAAABEQAAAxEAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAxEAAACRAAABEQAAAxEAAAFRAAACUQAAAJEAAADRAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAtEAAADRAAABEQAAAhEAAALRAAABUQAAAlEAAAIRAAACEQAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAFRAAAC0QAAAxEAAAKRAAACEQAAAREAAAERAAABUQAAAJEAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAACkQAAApEAAAGRAAABUQAAAFEAAAKRAAAAEQAAAVEAAAHAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAIRAAACkQAAAhEAAAGRAAABkQAAAxEAAAGRAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAB0QAAAZEAAAFRAAADEQAAAlEAAALRAAABUQAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAJRAAACUQAAAZEAAALRAAAB0QAAAhEAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAACUQAAANEAAAIPAAAAEQAAAwSAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAUQAAAFEAAADRAAACzwAAABEAAAGEgAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAEQAAAJEAAALRAAACEQAAABEAAAFRAAACxIAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAVEAAAJRAAAC0QAAAxEAAAGRAAABkQAAAcSAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAFRAAACUQAAAJEAAAARAAABEQAAANEAAAMEgAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAUQAAAZEAAAJRAAAAUQAAAZEAAALRAAABRIAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAABEAAAHRAAADEQAAAFEAAACRAAACEQAAApEAAAHRAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAARAAAAEQAAAREAAAIRAAAAUQAAAFEAAAKRAAAAUQAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAC0QAAAhEAAABRAAACUQAAAdEAAAIRAAAAUQAAANEAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAhEAAAJRAAACkQAAAtEAAAERAAAA0QAAAlEAAADRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAVEAAAFRAAACUQAAAlEAAADRAAAB0QAAANEAAAKRAAAA0QAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAALRAAACEQAAAZEAAAJRAAABUQAAAVEAAAIRAAACkQAAAREAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAADEQAAAVEAAAERAAAA0QAAAlEAAADRAAABkQAAApEAAAFAAAAAA== -2,-2: ind: -2,-2 tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== 2,0: ind: 2,0 - tiles: PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== 2,-1: ind: 2,-1 - tiles: PAAAAEQAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAABEAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAARAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAEQAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: PAAAAEQAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAABEAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAARAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAEQAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== 2,-2: ind: 2,-2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAhEAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAMRAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAABEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAFEAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAARAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAEQAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAtEAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAADRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAACEQAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAApEAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAALRAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAEQAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== -2,2: ind: -2,2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAEQAAAZEAAAJRAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAA0QAAAVEAAADRAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== -3,-2: ind: -3,-2 tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAAF4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAABeAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAXgAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAAF4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== 0,2: ind: 0,2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAFEAAAIRAAACEQAAAlEAAACRAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAxEAAAJRAAAA0QAAANEAAAIRAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== 1,2: ind: 1,2 - tiles: RAAAAEQAAAdEAAAIRAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: RAAAC0QAAApEAAAHRAAAC0QAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== -3,0: ind: -3,0 tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== @@ -715,17 +715,17 @@ entities: color: '#FFFFFFFF' id: WoodTrimThinInnerSw decals: - 130: 5,-6 + 422: 5,-6 - node: color: '#FFFFFFFF' id: WoodTrimThinLineS decals: - 124: 4,-6 - 125: 3,-6 - 126: 2,-6 - 127: 1,-6 - 128: 0,-6 - 129: -1,-6 + 420: 0,-6 + 421: -1,-6 + 423: 4,-6 + 424: 3,-6 + 425: 2,-6 + 426: 1,-6 - node: color: '#FFFFFFFF' id: WoodTrimThinLineW @@ -5533,13 +5533,6 @@ entities: - pos: -0.5,-1.5 parent: 104 type: Transform -- proto: CheckerBoard - entities: - - uid: 162 - components: - - pos: 3.4476795,-2.4108348 - parent: 104 - type: Transform - proto: chem_master entities: - uid: 2444 @@ -5566,6 +5559,13 @@ entities: - pos: 4.5,-12.5 parent: 104 type: Transform +- proto: ChessBoard + entities: + - uid: 354 + components: + - pos: 13.499366,-8.433407 + parent: 104 + type: Transform - proto: ClosetEmergencyFilledRandom entities: - uid: 1359 @@ -5641,6 +5641,20 @@ entities: - pos: 5.483225,11.368477 parent: 104 type: Transform +- proto: ComfyChair + entities: + - uid: 21 + components: + - rot: 1.5707963267948966 rad + pos: 12.5,-8.5 + parent: 104 + type: Transform + - uid: 352 + components: + - rot: -1.5707963267948966 rad + pos: 14.5,-8.5 + parent: 104 + type: Transform - proto: computerBodyScanner entities: - uid: 2436 @@ -5680,9 +5694,14 @@ entities: type: Transform - proto: DrinkBeerBottleFull entities: - - uid: 161 + - uid: 157 components: - - pos: 3.5883045,-2.2700634 + - pos: 2.5961013,-2.2186527 + parent: 104 + type: Transform + - uid: 170 + components: + - pos: 3.6117263,-3.1874027 parent: 104 type: Transform - proto: DrinkGinBottleFull @@ -5998,32 +6017,27 @@ entities: - pos: -3.5,16.5 parent: 104 type: Transform -- proto: FoodBoxDonut +- proto: FoodBoxDonkpocket entities: - - uid: 2445 + - uid: 11 components: - - pos: 2.5389562,-6.3072195 + - pos: 12.527094,-6.308407 parent: 104 type: Transform -- proto: FoodBoxPizzaFilled +- proto: FoodBoxDonkpocketTeriyaki entities: - - uid: 159 + - uid: 2475 components: - - pos: 3.5,-1.5 + - pos: 12.636917,-6.187726 + parent: 104 + type: Transform +- proto: FoodBoxDonut + entities: + - uid: 2445 + components: + - pos: 2.5389562,-6.3072195 parent: 104 type: Transform - - containers: - entity_storage: !type:Container - showEnts: False - occludes: True - ents: [] - storagebase: !type:Container - showEnts: False - occludes: True - ents: [] - type: ContainerContainer - - isPlaceable: False - type: PlaceableSurface - proto: FoodDonutJellySlugcat entities: - uid: 3327 @@ -6285,6 +6299,13 @@ entities: - pos: 11.5,-6.5 parent: 104 type: Transform +- proto: KitchenMicrowave + entities: + - uid: 10 + components: + - pos: 13.5,-6.5 + parent: 104 + type: Transform - proto: KitchenReagentGrinder entities: - uid: 1257 @@ -6435,6 +6456,11 @@ entities: - pos: 13.5,-14.5 parent: 104 type: Transform + - uid: 2476 + components: + - pos: 15.5,-6.5 + parent: 104 + type: Transform - proto: MagazinePistolSubMachineGunPractice entities: - uid: 1648 @@ -11204,25 +11230,11 @@ entities: type: Transform - proto: PersonalAI entities: - - uid: 156 - components: - - flags: SessionSpecific - type: MetaData - - pos: 2.5,-1.5 - parent: 104 - type: Transform - - uid: 157 - components: - - flags: SessionSpecific - type: MetaData - - pos: 2.5,-1.5 - parent: 104 - type: Transform - - uid: 158 + - uid: 160 components: - flags: SessionSpecific type: MetaData - - pos: 2.5,-1.5 + - pos: 1.4711013,-3.6405277 parent: 104 type: Transform - proto: PianoInstrument @@ -11263,11 +11275,6 @@ entities: type: Transform - proto: PlushieLizard entities: - - uid: 160 - components: - - pos: 2.5,-2.5 - parent: 104 - type: Transform - uid: 1266 components: - pos: -15.435635,22.055351 @@ -11278,6 +11285,11 @@ entities: - pos: -1.5,-16.5 parent: 104 type: Transform + - uid: 2472 + components: + - pos: 4.5344934,-2.448209 + parent: 104 + type: Transform - uid: 3367 components: - pos: -4.605839,20.481245 @@ -11337,6 +11349,25 @@ entities: - pos: 12.5,1.5 parent: 104 type: Transform +- proto: PosterContrabandCybersun600 + entities: + - uid: 2466 + components: + - pos: 8.5,-9.5 + parent: 104 + type: Transform +- proto: PosterContrabandDonk + entities: + - uid: 12 + components: + - pos: 12.5,-5.5 + parent: 104 + type: Transform + - uid: 2465 + components: + - pos: -10.5,8.5 + parent: 104 + type: Transform - proto: PosterContrabandDonutCorp entities: - uid: 2450 @@ -11351,6 +11382,20 @@ entities: - pos: 14.5,-9.5 parent: 104 type: Transform +- proto: PosterContrabandEnlistGorlex + entities: + - uid: 2461 + components: + - pos: -0.5,0.5 + parent: 104 + type: Transform +- proto: PosterContrabandInterdyne + entities: + - uid: 2464 + components: + - pos: 8.5,-12.5 + parent: 104 + type: Transform - proto: PosterContrabandLustyExomorph entities: - uid: 754 @@ -11363,6 +11408,13 @@ entities: - pos: 15.5,-15.5 parent: 104 type: Transform +- proto: PosterContrabandMoth + entities: + - uid: 2462 + components: + - pos: 8.5,-2.5 + parent: 104 + type: Transform - proto: PosterContrabandNuclearDeviceInformational entities: - uid: 2298 @@ -11560,6 +11612,13 @@ entities: - pos: 12.5,-3.5 parent: 104 type: Transform +- proto: PosterContrabandWaffleCorp + entities: + - uid: 2463 + components: + - pos: 14.5,-2.5 + parent: 104 + type: Transform - proto: PosterLegitAnatomyPoster entities: - uid: 2320 @@ -11618,14 +11677,9 @@ entities: type: Transform - proto: PottedPlantBioluminscent entities: - - uid: 354 - components: - - pos: 12.5,-6.5 - parent: 104 - type: Transform - - uid: 355 + - uid: 7 components: - - pos: 12.5,-8.5 + - pos: 15.481667,-8.824032 parent: 104 type: Transform - proto: PottedPlantRandom @@ -11657,6 +11711,14 @@ entities: type: Transform - enabled: False type: AmbientSound +- proto: PoweredSmallLight + entities: + - uid: 23 + components: + - rot: 3.141592653589793 rad + pos: 15.5,-1.5 + parent: 104 + type: Transform - proto: Rack entities: - uid: 472 @@ -12633,10 +12695,9 @@ entities: type: Transform - proto: SinkStemlessWater entities: - - uid: 352 + - uid: 22 components: - - rot: 3.141592653589793 rad - pos: 15.5,-1.5 + - pos: 15.5,-1.5 parent: 104 type: Transform - proto: SinkWide @@ -12690,11 +12751,6 @@ entities: - pos: 11.5,-16.5 parent: 104 type: Transform - - uid: 2321 - components: - - pos: 15.5,-1.5 - parent: 104 - type: Transform - proto: SMESBasic entities: - uid: 2331 @@ -12732,41 +12788,48 @@ entities: - pos: 9.5,-6.5 parent: 104 type: Transform +- proto: SpawnMobLizard + entities: + - uid: 2473 + components: + - pos: 5.5,-1.5 + parent: 104 + type: Transform - proto: SpawnPointNukies entities: - - uid: 164 + - uid: 167 components: - - pos: 1.5,-1.5 + - pos: 3.5,-5.5 parent: 104 type: Transform - - uid: 166 + - uid: 172 components: - - pos: 4.5,-1.5 + - pos: 3.5,-7.5 parent: 104 type: Transform - - uid: 167 + - uid: 173 components: - - pos: 3.5,-5.5 + - pos: 0.5,-5.5 parent: 104 type: Transform - - uid: 169 + - uid: 2477 components: - - pos: 2.5,-3.5 + - pos: 4.5,-3.5 parent: 104 type: Transform - - uid: 170 + - uid: 2478 components: - - pos: 3.5,-0.5 + - pos: 3.5,-1.5 parent: 104 type: Transform - - uid: 172 + - uid: 2479 components: - - pos: 3.5,-7.5 + - pos: 2.5,-1.5 parent: 104 type: Transform - - uid: 173 + - uid: 2480 components: - - pos: 0.5,-5.5 + - pos: 1.5,-2.5 parent: 104 type: Transform - proto: Spear @@ -12792,50 +12855,38 @@ entities: type: Transform - proto: Stool entities: - - uid: 7 + - uid: 24 components: - rot: -1.5707963267948966 rad pos: 4.5,-2.5 parent: 104 type: Transform - - uid: 8 - components: - - rot: 3.141592653589793 rad - pos: 2.5,-3.5 - parent: 104 - type: Transform - - uid: 9 - components: - - rot: 3.141592653589793 rad - pos: 3.5,-3.5 - parent: 104 - type: Transform - - uid: 10 + - uid: 156 components: - rot: -1.5707963267948966 rad - pos: 4.5,-1.5 + pos: 4.5,-3.5 parent: 104 type: Transform - - uid: 11 + - uid: 158 components: - - pos: 3.5,-0.5 + - rot: 1.5707963267948966 rad + pos: 1.5,-2.5 parent: 104 type: Transform - - uid: 12 + - uid: 164 components: - - pos: 2.5,-0.5 + - rot: 1.5707963267948966 rad + pos: 1.5,-3.5 parent: 104 type: Transform - - uid: 14 + - uid: 166 components: - - rot: 1.5707963267948966 rad - pos: 1.5,-1.5 + - pos: 2.5,-1.5 parent: 104 type: Transform - - uid: 16 + - uid: 169 components: - - rot: 1.5707963267948966 rad - pos: 1.5,-2.5 + - pos: 3.5,-1.5 parent: 104 type: Transform - uid: 194 @@ -13052,6 +13103,11 @@ entities: type: Transform - proto: Table entities: + - uid: 16 + components: + - pos: 12.5,-6.5 + parent: 104 + type: Transform - uid: 107 components: - pos: 7.5,-4.5 @@ -13092,6 +13148,18 @@ entities: - pos: 14.5,-17.5 parent: 104 type: Transform + - uid: 2321 + components: + - pos: 13.5,-6.5 + parent: 104 + type: Transform +- proto: TableCarpet + entities: + - uid: 9 + components: + - pos: 13.5,-8.5 + parent: 104 + type: Transform - proto: TableGlass entities: - uid: 980 @@ -13267,24 +13335,9 @@ entities: type: Transform - proto: TableWood entities: - - uid: 21 - components: - - pos: 3.5,-1.5 - parent: 104 - type: Transform - - uid: 22 - components: - - pos: 3.5,-2.5 - parent: 104 - type: Transform - - uid: 23 - components: - - pos: 2.5,-2.5 - parent: 104 - type: Transform - - uid: 24 + - uid: 8 components: - - pos: 2.5,-1.5 + - pos: 3.5,-3.5 parent: 104 type: Transform - uid: 28 @@ -13339,6 +13392,21 @@ entities: pos: -0.5,-6.5 parent: 104 type: Transform + - uid: 159 + components: + - pos: 2.5,-3.5 + parent: 104 + type: Transform + - uid: 162 + components: + - pos: 2.5,-2.5 + parent: 104 + type: Transform + - uid: 355 + components: + - pos: 3.5,-2.5 + parent: 104 + type: Transform - proto: TargetClown entities: - uid: 1291 @@ -13365,6 +13433,13 @@ entities: - pos: 0.5,10.5 parent: 104 type: Transform +- proto: Telecrystal1 + entities: + - uid: 2474 + components: + - pos: 2.9398513,-3.4842777 + parent: 104 + type: Transform - proto: TimerTrigger entities: - uid: 1225 @@ -13406,6 +13481,51 @@ entities: - pos: 12.366143,-10.392332 parent: 104 type: Transform +- proto: ToyFigurineCaptain + entities: + - uid: 2470 + components: + - pos: 2.5657434,-3.260709 + parent: 104 + type: Transform +- proto: ToyFigurineNukie + entities: + - uid: 14 + components: + - pos: 3.4242263,-2.6717777 + parent: 104 + type: Transform + - uid: 161 + components: + - pos: 3.5492263,-2.4374027 + parent: 104 + type: Transform + - uid: 2468 + components: + - pos: 3.6429763,-2.6717777 + parent: 104 + type: Transform +- proto: ToyFigurineNukieCommander + entities: + - uid: 2471 + components: + - pos: 3.1898513,-2.9530277 + parent: 104 + type: Transform +- proto: ToyFigurineNukieElite + entities: + - uid: 2467 + components: + - pos: 3.1117263,-2.6874027 + parent: 104 + type: Transform +- proto: ToyMauler + entities: + - uid: 2469 + components: + - pos: 3.0179763,-2.3124027 + parent: 104 + type: Transform - proto: ToyNuke entities: - uid: 26 From 221b5f498f1f829852aabd0316917949fb69ab8c Mon Sep 17 00:00:00 2001 From: Emisse <99158783+Emisse@users.noreply.github.com> Date: Thu, 3 Aug 2023 05:44:50 -0600 Subject: [PATCH 24/37] bagel update (#18610) * bagel update * hehe silly --- Resources/Maps/bagel.yml | 261 +++++++++++++++++++++++++++++++++------ 1 file changed, 223 insertions(+), 38 deletions(-) diff --git a/Resources/Maps/bagel.yml b/Resources/Maps/bagel.yml index 2a8d40a8520ec4..a48f06b50f8a98 100644 --- a/Resources/Maps/bagel.yml +++ b/Resources/Maps/bagel.yml @@ -6296,7 +6296,8 @@ entities: 0: 36863 1: 28672 6,-7: - 1: 119 + 1: 115 + 2: 4 0: 65416 6,-6: 0: 65535 @@ -7218,7 +7219,7 @@ entities: 0: 65535 -8,11: 0: 64719 - 2: 816 + 3: 816 -7,8: 0: 65535 -7,9: @@ -7251,15 +7252,15 @@ entities: 0: 65535 -12,10: 0: 62451 - 2: 3072 - 3: 12 + 3: 3072 + 4: 12 -11,10: - 2: 256 + 3: 256 0: 65278 - 3: 1 + 4: 1 -11,11: 0: 52478 - 2: 1 + 3: 1 -10,10: 0: 65535 -10,8: @@ -7276,7 +7277,7 @@ entities: 0: 65535 -9,11: 0: 63359 - 2: 2176 + 3: 2176 -8,12: 0: 48063 -7,12: @@ -7478,7 +7479,7 @@ entities: -1,11: 0: 65535 -5,12: - 2: 30515 + 3: 30515 0: 35020 -5,13: 0: 65535 @@ -7496,7 +7497,7 @@ entities: 0: 65535 -4,12: 0: 17 - 2: 65518 + 3: 65518 -4,13: 0: 65535 -4,14: @@ -7504,7 +7505,7 @@ entities: -4,15: 0: 61951 -3,12: - 2: 13107 + 3: 13107 0: 52428 -3,13: 0: 65535 @@ -7536,13 +7537,13 @@ entities: 0: 65535 -7,14: 0: 8191 - 2: 57344 + 3: 57344 -7,15: - 2: 238 + 3: 238 0: 65297 -6,12: 0: 4369 - 2: 61166 + 3: 61166 -6,13: 0: 65535 -6,14: @@ -7854,7 +7855,7 @@ entities: 17,-8: 0: 29457 17,-7: - 3: 1 + 4: 1 0: 4990 17,-6: 0: 4593 @@ -7982,14 +7983,14 @@ entities: 0: 35771 -12,8: 0: 62451 - 4: 12 - 5: 3072 + 5: 12 + 6: 3072 -12,9: 0: 62451 - 2: 3084 + 3: 3084 -12,11: 0: 8947 - 2: 12 + 3: 12 -12,12: 0: 8751 -12,13: @@ -8183,11 +8184,11 @@ entities: -13,7: 0: 39327 -11,8: - 4: 1 + 5: 1 0: 65278 - 5: 256 + 6: 256 -11,9: - 2: 257 + 3: 257 0: 65278 1,12: 0: 63897 @@ -8209,8 +8210,8 @@ entities: 0: 65497 -13,12: 0: 53199 - 5: 48 - 4: 12288 + 6: 48 + 5: 12288 -13,13: 0: 61727 -18,4: @@ -8703,8 +8704,8 @@ entities: 0: 255 -14,12: 0: 32639 - 5: 128 - 4: 32768 + 6: 128 + 5: 32768 -14,13: 0: 31 -17,12: @@ -8750,6 +8751,21 @@ entities: - 0 - 0 - 0 + - volume: 2500 + temperature: 235 + moles: + - 21.596506 + - 81.243996 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 - volume: 2500 temperature: 293.15 moles: @@ -15205,6 +15221,13 @@ entities: - pos: -30.487093,19.620901 parent: 60 type: Transform +- proto: BookChefGaming + entities: + - uid: 18647 + components: + - pos: 24.502895,-35.332874 + parent: 60 + type: Transform - proto: BookEscalation entities: - uid: 23696 @@ -75793,21 +75816,33 @@ entities: type: Transform - proto: FoodMeat entities: - - uid: 2617 + - uid: 2619 components: - - pos: 24.931736,-26.971676 - parent: 60 + - flags: InContainer + type: MetaData + - parent: 2623 type: Transform - - uid: 2618 + - canCollide: False + type: Physics + - type: InsideEntityStorage + - uid: 19882 components: - - pos: 24.712986,-27.159176 - parent: 60 + - flags: InContainer + type: MetaData + - parent: 2623 type: Transform - - uid: 2619 + - canCollide: False + type: Physics + - type: InsideEntityStorage + - uid: 21020 components: - - pos: 25.103611,-27.846676 - parent: 60 + - flags: InContainer + type: MetaData + - parent: 2623 type: Transform + - canCollide: False + type: Physics + - type: InsideEntityStorage - proto: FoodMeatRatdoubleKebab entities: - uid: 6784 @@ -112728,7 +112763,7 @@ entities: - pos: -34.433372,-3.1512034 parent: 60 type: Transform -- proto: lantern +- proto: Lantern entities: - uid: 24223 components: @@ -113391,8 +113426,8 @@ entities: immutable: False temperature: 234.99966 moles: - - 1.6495836 - - 6.2055764 + - 1.877957 + - 7.0646954 - 0 - 0 - 0 @@ -113404,6 +113439,19 @@ entities: - 0 - 0 type: EntityStorage + - containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 2619 + - 19882 + - 21020 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + type: ContainerContainer - uid: 17736 components: - pos: -61.5,27.5 @@ -114992,6 +115040,13 @@ entities: - pos: -2.512361,3.5139241 parent: 60 type: Transform +- proto: MysteryFigureBox + entities: + - uid: 2618 + components: + - pos: -8.327919,25.771437 + parent: 60 + type: Transform - proto: NanoManipulatorStockPart entities: - uid: 9474 @@ -116245,6 +116300,18 @@ entities: - pos: 22.5,-14.5 parent: 60 type: Transform +- proto: PosterContrabandDonk + entities: + - uid: 18473 + components: + - pos: -46.5,-28.5 + parent: 60 + type: Transform + - uid: 18641 + components: + - pos: 24.5,-38.5 + parent: 60 + type: Transform - proto: PosterContrabandDonutCorp entities: - uid: 9152 @@ -116259,6 +116326,11 @@ entities: - pos: -8.5,-39.5 parent: 60 type: Transform + - uid: 18642 + components: + - pos: 27.5,-30.5 + parent: 60 + type: Transform - proto: PosterContrabandEnergySwords entities: - uid: 3978 @@ -116318,6 +116390,13 @@ entities: - pos: 0.5,16.5 parent: 60 type: Transform +- proto: PosterContrabandInterdyne + entities: + - uid: 17253 + components: + - pos: 41.5,-33.5 + parent: 60 + type: Transform - proto: PosterContrabandKosmicheskayaStantsiya entities: - uid: 7465 @@ -116411,6 +116490,13 @@ entities: - pos: 25.5,-10.5 parent: 60 type: Transform +- proto: PosterContrabandSmoke + entities: + - uid: 18640 + components: + - pos: 27.5,-28.5 + parent: 60 + type: Transform - proto: PosterContrabandSpaceCola entities: - uid: 16098 @@ -116465,6 +116551,13 @@ entities: - pos: 56.5,-9.5 parent: 60 type: Transform +- proto: PosterContrabandWaffleCorp + entities: + - uid: 17467 + components: + - pos: -23.5,2.5 + parent: 60 + type: Transform - proto: PosterContrabandWehWatches entities: - uid: 154 @@ -116719,6 +116812,13 @@ entities: - pos: 21.5,11.5 parent: 60 type: Transform +- proto: PosterLegitNTTGC + entities: + - uid: 17250 + components: + - pos: -11.5,13.5 + parent: 60 + type: Transform - proto: PosterLegitPDAAd entities: - uid: 6776 @@ -116726,6 +116826,20 @@ entities: - pos: 2.5,-28.5 parent: 60 type: Transform +- proto: PosterLegitPeriodicTable + entities: + - uid: 17002 + components: + - pos: 36.5,-26.5 + parent: 60 + type: Transform +- proto: PosterLegitRenault + entities: + - uid: 17249 + components: + - pos: -6.5,-7.5 + parent: 60 + type: Transform - proto: PosterLegitReportCrimes entities: - uid: 1635 @@ -116787,6 +116901,41 @@ entities: - pos: -42.5,-2.5 parent: 60 type: Transform +- proto: PosterLegitSafetyMothDelam + entities: + - uid: 17245 + components: + - pos: -8.5,30.5 + parent: 60 + type: Transform +- proto: PosterLegitSafetyMothEpi + entities: + - uid: 17003 + components: + - pos: 36.5,-27.5 + parent: 60 + type: Transform +- proto: PosterLegitSafetyMothHardhat + entities: + - uid: 17005 + components: + - pos: 9.5,16.5 + parent: 60 + type: Transform +- proto: PosterLegitSafetyMothMeth + entities: + - uid: 17004 + components: + - pos: 37.5,-33.5 + parent: 60 + type: Transform +- proto: PosterLegitSafetyMothPiping + entities: + - uid: 17244 + components: + - pos: -14.5,31.5 + parent: 60 + type: Transform - proto: PosterLegitSafetyReport entities: - uid: 1698 @@ -116842,6 +116991,28 @@ entities: - pos: 47.5,23.5 parent: 60 type: Transform +- proto: PosterLegitVacation + entities: + - uid: 2617 + components: + - pos: -13.5,19.5 + parent: 60 + type: Transform + - uid: 17251 + components: + - pos: -22.5,6.5 + parent: 60 + type: Transform + - uid: 17252 + components: + - pos: -2.5,-48.5 + parent: 60 + type: Transform + - uid: 18639 + components: + - pos: 31.5,-34.5 + parent: 60 + type: Transform - proto: PosterLegitWorkForAFuture entities: - uid: 923 @@ -132978,6 +133149,13 @@ entities: pos: 9.5,-71.5 parent: 60 type: Transform +- proto: SpawnMobAlexander + entities: + - uid: 18691 + components: + - pos: 25.5,-31.5 + parent: 60 + type: Transform - proto: SpawnMobBandito entities: - uid: 10857 @@ -133037,6 +133215,13 @@ entities: - pos: -8.5,-3.5 parent: 60 type: Transform +- proto: SpawnMobGoat + entities: + - uid: 18710 + components: + - pos: 25.5,-28.5 + parent: 60 + type: Transform - proto: SpawnMobMcGriff entities: - uid: 4710 From 4b888e34ae8b261915fa08df680ba7e984535bac Mon Sep 17 00:00:00 2001 From: Emisse <99158783+Emisse@users.noreply.github.com> Date: Thu, 3 Aug 2023 05:49:43 -0600 Subject: [PATCH 25/37] infiltrator update (#18613) --- Resources/Maps/infiltrator.yml | 896 +++++++++++++++++++++++---------- 1 file changed, 641 insertions(+), 255 deletions(-) diff --git a/Resources/Maps/infiltrator.yml b/Resources/Maps/infiltrator.yml index a082f92a135ca1..f5d95a9d66ef68 100644 --- a/Resources/Maps/infiltrator.yml +++ b/Resources/Maps/infiltrator.yml @@ -5,11 +5,15 @@ tilemap: 0: Space 3: FloorArcadeRed 23: FloorDark + 28: FloorDarkMono + 32: FloorDarkPlastic + 45: FloorGreenCircuit 59: FloorReinforced 65: FloorShuttleRed 66: FloorShuttleWhite 69: FloorSteel 75: FloorSteelMono + 81: FloorTechMaint3 92: FloorWood 94: Lattice 95: Plating @@ -26,16 +30,16 @@ entities: - chunks: -1,-1: ind: -1,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAABfAAAAXwAAAF8AAAAXAAADFwAAARcAAAIXAAABFwAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAABcAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABfAAAAXwAAAF8AAABfAAAAQQAAABcAAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAABfAAAAXwAAAEEAAAAXAAACXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAABfAAAAXwAAAF8AAABBAAAAFwAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXwAAAF8AAABfAAAAXwAAABcAAAIXAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAABeAAAAXgAAAF8AAAAXAAABFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF8AAABfAAAAFwAAAhcAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF8AAABfAAAAXwAAAF8AAAAXAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAABfAAAARQAAAkEAAAAXAAACFwAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAABFAAACSwAAAEIAAAAXAAADFwAAABcAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAARQAAA0IAAABLAAABQQAAABcAAAAXAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAABFAAAARQAAA0EAAAAXAAACFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABfAAAAXwAAAF8AAABBAAAAQQAAAEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAAXwAAAF8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAABfAAAAXwAAAF8AAAAXAAADFwAAARcAAAIXAAABFwAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAABfAAAAUQAAAF8AAABfAAAAXwAAABcAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABfAAAAXwAAAF8AAABfAAAAQQAAABcAAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAABfAAAAXwAAAEEAAAAXAAACXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAABfAAAAXwAAAF8AAABBAAAAFwAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXwAAAF8AAABfAAAAXwAAABcAAAIXAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAABeAAAAXgAAAF8AAAAXAAABFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF8AAABfAAAAFwAAAhcAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF8AAABfAAAAXwAAAF8AAAAXAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAABfAAAARQAAAkEAAAAXAAACFwAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAABFAAACSwAAAEIAAAAXAAADFwAAABcAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAARQAAA0IAAABLAAABQQAAABcAAAAXAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAABFAAAARQAAA0EAAAAXAAACFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABfAAAAXwAAAF8AAABBAAAAQQAAAEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAAXwAAAF8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== 0,-1: ind: 0,-1 - tiles: FwAAARcAAAEXAAABFwAAAV8AAABfAAAAXwAAAF8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAACQQAAAF8AAABfAAAAXwAAAF8AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAkEAAABfAAAAXwAAAF8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAFBAAAAXwAAAF8AAABfAAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAXwAAAF8AAABfAAAAXwAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAV8AAABeAAAAXgAAAF4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAANfAAAAXwAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAAXwAAAF8AAABfAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAUEAAABcAAADXwAAAF8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAMXAAAAFwAAAFwAAANcAAABXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAQQAAAFwAAAADAAAAXAAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAA0EAAABfAAAAAwAAAF8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAABBAAAAXwAAAF8AAABfAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAAXwAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: FwAAARcAAAEXAAABFwAAAV8AAABfAAAAXwAAAF8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAABfAAAAXwAAAFEAAABfAAAAXwAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAACQQAAAF8AAABfAAAAXwAAAF8AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAkEAAABfAAAAXwAAAF8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAFBAAAAXwAAAF8AAABfAAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAXwAAAF8AAABfAAAAXwAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAV8AAABeAAAAXgAAAF4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAANfAAAAXwAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAAXwAAAF8AAABfAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAUEAAABcAAADXwAAAF8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAMXAAAAFwAAAFwAAANcAAABXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAQQAAAFwAAAADAAAAXAAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAA0EAAABfAAAAAwAAAF8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAABBAAAAXwAAAF8AAABfAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAAXwAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== -1,-2: ind: -1,-2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAABeAAAAXgAAAF4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXwAAAF8AAABfAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAAXwAAAF8AAABfAAAAXwAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAABcAAAMXAAABFwAAAV8AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAAAXAAADXwAAABcAAABfAAAAXgAAAF4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAAFwAAAV8AAAAXAAACXwAAAF8AAABfAAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAABcAAAFfAAAAFwAAAUEAAABfAAAAXwAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAAAXAAACXwAAABcAAANBAAAAXwAAAF8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAAFwAAAhcAAAEXAAABQQAAAF8AAABfAAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAABcAAAAXAAAAFwAAAEEAAABfAAAAFwAAABcAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAABfAAAAFwAAAxcAAABBAAAAFwAAAxcAAAAXAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXwAAAEEAAAAXAAAAQQAAAF8AAAAXAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAABcAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAAXwAAAF8AAABfAAAAXwAAABcAAAIXAAABFwAAABcAAAMXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAABfAAAAXwAAAF8AAAAXAAAAFwAAAV8AAABfAAAAXwAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAABeAAAAXgAAAF4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXwAAAF8AAABfAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAAXwAAAF8AAABfAAAAXwAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAEEAAABBAAAAQQAAAF8AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAAAtAAAAHAAAAC0AAABfAAAAXgAAAF4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAALQAAABwAAAAtAAAAXwAAAF8AAABfAAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAC0AAAAcAAAALQAAAEEAAABfAAAAXwAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAAAXAAACFwAAABcAAANBAAAAXwAAAF8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAAFwAAAjsAAAAXAAABQQAAAF8AAABfAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAABcAAAAXAAAAFwAAAEEAAABfAAAAFwAAABcAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAABfAAAAIAAAACAAAABBAAAAFwAAAxcAAAAXAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXwAAAEEAAAAXAAAAQQAAAF8AAAAXAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAABcAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAAXwAAAF8AAABfAAAAXwAAABcAAAIXAAABFwAAABcAAAMXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAABfAAAAXwAAAFEAAAAXAAAAFwAAAV8AAABfAAAAXwAAAA== 0,-2: ind: 0,-2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAAF4AAABeAAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF8AAABfAAAAXwAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABfAAAAXwAAAF8AAABfAAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXwAAADsAAABfAAAAOwAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAAF8AAAA7AAAAXwAAADsAAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAABfAAAAOwAAAF8AAAA7AAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAABfAAAAFwAAAV8AAABfAAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAEXAAADFwAAARcAAAMXAAABQQAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAADFwAAAhcAAAAXAAACFwAAA18AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAABcAAAIXAAAAFwAAAxcAAAFfAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAABFwAAABcAAAEXAAADXwAAAF8AAABfAAAAXwAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAAAXAAAAFwAAAl8AAABfAAAAXwAAAF8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAAF4AAABeAAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF8AAABfAAAAXwAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABfAAAAXwAAAF8AAABfAAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXwAAADsAAABfAAAAOwAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAAF8AAAA7AAAAXwAAADsAAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAABfAAAAOwAAAF8AAAA7AAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAABfAAAAFwAAAV8AAABfAAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAEXAAADFwAAARcAAAMXAAABQQAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAADFwAAAhcAAAAXAAACFwAAA18AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAABcAAAIXAAAAFwAAAxcAAAFfAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAABFwAAABcAAAEXAAADXwAAAF8AAABfAAAAXwAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAF8AAAAXAAAAFwAAAlEAAABfAAAAXwAAAF8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== type: MapGrid - type: Broadphase - angularDamping: 0.05 @@ -73,7 +77,8 @@ entities: 0: 21879 1: 512 1,-2: - 0: 30581 + 0: 30325 + 2: 256 1,-1: 0: 55 0,-5: @@ -115,16 +120,16 @@ entities: 0: 65523 0,-7: 0: 61303 - 2: 4096 - 3: 136 + 3: 4096 + 4: 136 0,-6: - 2: 1 + 3: 1 0: 65534 1,-8: 0: 30512 1,-7: 0: 30549 - 4: 34 + 5: 34 1,-6: 0: 30583 -1,-9: @@ -166,6 +171,21 @@ entities: - 0 - 0 - 0 + - volume: 2500 + temperature: 293.14996 + moles: + - 20.078888 + - 75.53487 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 - volume: 2500 temperature: 293.15 moles: @@ -216,6 +236,24 @@ entities: - chunkCollection: version: 2 nodes: + - node: + color: '#FFFFFFFF' + id: Arrows + decals: + 128: -6,-24 + - node: + color: '#FFFFFFFF' + id: Bot + decals: + 125: -6,-27 + 126: -6,-26 + 127: -6,-25 + - node: + color: '#79150096' + id: Box + decals: + 115: -6,-21 + 116: -5,-21 - node: color: '#DE3A3A96' id: BrickTileSteelCornerNe @@ -293,6 +331,51 @@ entities: 39: -2,-12 40: -2,-11 41: -2,-10 + - node: + color: '#79150096' + id: BrickTileWhiteCornerNe + decals: + 109: -5,-22 + - node: + color: '#79150096' + id: BrickTileWhiteCornerNw + decals: + 108: -7,-22 + - node: + color: '#79150096' + id: BrickTileWhiteCornerSe + decals: + 110: -5,-24 + - node: + color: '#79150096' + id: BrickTileWhiteCornerSw + decals: + 111: -7,-24 + - node: + color: '#79150096' + id: BrickTileWhiteLineE + decals: + 107: -5,-23 + - node: + color: '#79150096' + id: BrickTileWhiteLineN + decals: + 114: -6,-22 + - node: + color: '#79150096' + id: BrickTileWhiteLineS + decals: + 112: -6,-24 + - node: + color: '#79150096' + id: BrickTileWhiteLineW + decals: + 113: -7,-23 + - node: + color: '#79150096' + id: Delivery + decals: + 129: -1,-23 - node: color: '#DE3A3A96' id: DeliveryGreyscale @@ -340,6 +423,26 @@ entities: id: WarnCornerGreyscaleNW decals: 80: -5,-16 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallNE + decals: + 101: -7,-24 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallNW + decals: + 100: -5,-24 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallSE + decals: + 99: -7,-22 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallSW + decals: + 106: -5,-22 - node: color: '#FFFFFFFF' id: WarnLineE @@ -347,6 +450,7 @@ entities: 3: -4,-23 4: -4,-24 5: -4,-25 + 96: -7,-23 - node: color: '#DE3A3A96' id: WarnLineGreyscaleE @@ -372,6 +476,24 @@ entities: decals: 58: -2,-21 79: -5,-17 + - node: + color: '#FFFFFFFF' + id: WarnLineN + decals: + 91: -5,-28 + 92: -6,-28 + 93: -7,-28 + 105: -6,-22 + - node: + color: '#FFFFFFFF' + id: WarnLineS + decals: + 95: -5,-23 + - node: + color: '#FFFFFFFF' + id: WarnLineW + decals: + 97: -6,-24 - node: angle: 1.5707963267948966 rad color: '#FFFFFFFF' @@ -454,52 +576,59 @@ entities: - type: GridPathfinding - proto: AirlockExternal entities: - - uid: 442 + - uid: 69 components: - - pos: -0.5,-25.5 + - pos: -5.5,-16.5 parent: 73 type: Transform - - uid: 443 + - uid: 70 components: - - pos: 3.5,-10.5 + - pos: 3.5,-14.5 parent: 73 type: Transform - - uid: 444 + - uid: 78 components: - - pos: -4.5,-10.5 + - pos: -0.5,-22.5 parent: 73 type: Transform -- proto: AirlockExternalGlass - entities: - - uid: 446 + - uid: 138 components: - - pos: 4.5,-16.5 + - pos: -4.5,-14.5 parent: 73 type: Transform - - uid: 447 + - uid: 184 components: - - pos: -4.5,-14.5 + - pos: 4.5,-16.5 parent: 73 type: Transform - - uid: 448 + - uid: 442 components: - - pos: -0.5,-22.5 + - pos: -0.5,-25.5 parent: 73 type: Transform - - uid: 449 + - uid: 443 components: - - pos: 3.5,-14.5 + - pos: 3.5,-10.5 parent: 73 type: Transform - - uid: 694 + - uid: 444 components: - - pos: -5.5,-16.5 + - pos: -4.5,-10.5 parent: 73 type: Transform - proto: AirlockSecurity entities: + - uid: 201 + components: + - name: Commander's Office + type: MetaData + - pos: 2.5,-5.5 + parent: 73 + type: Transform - uid: 237 components: + - name: Bridge + type: MetaData - pos: -0.5,-7.5 parent: 73 type: Transform @@ -510,11 +639,6 @@ entities: type: Transform - proto: AirlockSecurityGlass entities: - - uid: 138 - components: - - pos: 2.5,-5.5 - parent: 73 - type: Transform - uid: 371 components: - name: syndicate airlock @@ -546,97 +670,6 @@ entities: pos: -9.5,-16.5 parent: 73 type: Transform -- proto: AmeController - entities: - - uid: 725 - components: - - pos: -5.5,-23.5 - parent: 73 - type: Transform -- proto: AmeJar - entities: - - uid: 651 - components: - - pos: -6.7039676,-22.42969 - parent: 73 - type: Transform - - uid: 652 - components: - - pos: -6.5633426,-22.42969 - parent: 73 - type: Transform - - uid: 653 - components: - - pos: -6.4070926,-22.42969 - parent: 73 - type: Transform - - uid: 655 - components: - - pos: -6.2820926,-22.42969 - parent: 73 - type: Transform -- proto: AmeShielding - entities: - - uid: 69 - components: - - pos: -6.5,-26.5 - parent: 73 - type: Transform - - uid: 201 - components: - - pos: -6.5,-27.5 - parent: 73 - type: Transform - - uid: 202 - components: - - pos: -5.5,-27.5 - parent: 73 - type: Transform - - uid: 203 - components: - - pos: -4.5,-27.5 - parent: 73 - type: Transform - - uid: 699 - components: - - pos: -5.5,-26.5 - parent: 73 - type: Transform - - uid: 700 - components: - - pos: -4.5,-26.5 - parent: 73 - type: Transform - - uid: 709 - components: - - pos: -4.5,-25.5 - parent: 73 - type: Transform - - uid: 710 - components: - - pos: -5.5,-25.5 - parent: 73 - type: Transform - - uid: 715 - components: - - pos: -6.5,-25.5 - parent: 73 - type: Transform - - uid: 716 - components: - - pos: -6.5,-24.5 - parent: 73 - type: Transform - - uid: 717 - components: - - pos: -5.5,-24.5 - parent: 73 - type: Transform - - uid: 722 - components: - - pos: -4.5,-24.5 - parent: 73 - type: Transform - proto: APCBasic entities: - uid: 220 @@ -701,19 +734,23 @@ entities: - pos: 3.5,-27.5 parent: 73 type: Transform -- proto: Bed +- proto: BannerSyndicate entities: - - uid: 564 + - uid: 794 components: - - pos: 3.5,-3.5 + - pos: 2.5,-15.5 + parent: 73 + type: Transform + - uid: 795 + components: + - pos: -3.5,-15.5 parent: 73 type: Transform -- proto: BedsheetMedical +- proto: Bed entities: - - uid: 676 + - uid: 564 components: - - rot: 1.5707963267948966 rad - pos: -4.5,-3.5 + - pos: 3.5,-3.5 parent: 73 type: Transform - proto: BedsheetSyndie @@ -723,6 +760,17 @@ entities: - pos: 3.5,-3.5 parent: 73 type: Transform +- proto: BoxEncryptionKeySyndie + entities: + - uid: 710 + components: + - flags: InContainer + type: MetaData + - parent: 692 + type: Transform + - canCollide: False + type: Physics + - type: InsideEntityStorage - proto: BoxFlashbang entities: - uid: 844 @@ -805,8 +853,6 @@ entities: - pos: -5.5,-16.5 parent: 73 type: Transform - - enabled: True - type: AmbientSound - uid: 254 components: - pos: -6.5,-16.5 @@ -852,8 +898,6 @@ entities: - pos: -4.5,-14.5 parent: 73 type: Transform - - enabled: True - type: AmbientSound - uid: 261 components: - pos: -4.5,-13.5 @@ -946,8 +990,6 @@ entities: - pos: 4.5,-16.5 parent: 73 type: Transform - - enabled: True - type: AmbientSound - uid: 275 components: - pos: 5.5,-16.5 @@ -993,8 +1035,6 @@ entities: - pos: 3.5,-14.5 parent: 73 type: Transform - - enabled: True - type: AmbientSound - uid: 282 components: - pos: 3.5,-13.5 @@ -1360,8 +1400,6 @@ entities: - pos: -0.5,-22.5 parent: 73 type: Transform - - enabled: True - type: AmbientSound - uid: 350 components: - pos: -0.5,-24.5 @@ -1663,39 +1701,31 @@ entities: type: Transform - enabled: True type: AmbientSound - - uid: 204 + - uid: 202 components: - - pos: -5.5,-27.5 + - pos: -4.5,-26.5 parent: 73 type: Transform - - uid: 205 + - uid: 203 components: - - pos: -5.5,-26.5 + - pos: -4.5,-27.5 parent: 73 type: Transform - - enabled: True - type: AmbientSound - - uid: 206 + - uid: 204 components: - - pos: -5.5,-25.5 + - pos: -5.5,-27.5 parent: 73 type: Transform - - enabled: True - type: AmbientSound - - uid: 207 + - uid: 205 components: - - pos: -5.5,-24.5 + - pos: -6.5,-27.5 parent: 73 type: Transform - - enabled: True - type: AmbientSound - uid: 208 components: - pos: -5.5,-23.5 parent: 73 type: Transform - - enabled: True - type: AmbientSound - uid: 209 components: - pos: -5.5,-22.5 @@ -1726,6 +1756,31 @@ entities: - pos: -3.5,-19.5 parent: 73 type: Transform + - uid: 576 + components: + - pos: -5.5,-21.5 + parent: 73 + type: Transform + - uid: 579 + components: + - pos: -6.5,-26.5 + parent: 73 + type: Transform + - uid: 580 + components: + - pos: -6.5,-25.5 + parent: 73 + type: Transform + - uid: 581 + components: + - pos: -6.5,-24.5 + parent: 73 + type: Transform + - uid: 653 + components: + - pos: -4.5,-23.5 + parent: 73 + type: Transform - uid: 663 components: - pos: -2.5,-20.5 @@ -1738,11 +1793,28 @@ entities: type: Transform - enabled: True type: AmbientSound + - uid: 679 + components: + - pos: -4.5,-25.5 + parent: 73 + type: Transform - uid: 712 components: - pos: -6.5,-23.5 parent: 73 type: Transform + - uid: 715 + components: + - pos: -6.5,-20.5 + parent: 73 + type: Transform + - enabled: True + type: AmbientSound + - uid: 716 + components: + - pos: -4.5,-24.5 + parent: 73 + type: Transform - uid: 853 components: - pos: -5.5,-18.5 @@ -1774,11 +1846,6 @@ entities: - pos: -4.5,-21.5 parent: 73 type: Transform - - uid: 858 - components: - - pos: -4.5,-22.5 - parent: 73 - type: Transform - proto: CableMV entities: - uid: 222 @@ -1990,21 +2057,6 @@ entities: - pos: -2.5,-16.5 parent: 73 type: Transform - - uid: 579 - components: - - pos: -5.5,-25.5 - parent: 73 - type: Transform - - uid: 580 - components: - - pos: -5.5,-24.5 - parent: 73 - type: Transform - - uid: 581 - components: - - pos: -5.5,-23.5 - parent: 73 - type: Transform - uid: 582 components: - pos: 4.5,-24.5 @@ -2095,11 +2147,6 @@ entities: - pos: 0.5,-16.5 parent: 73 type: Transform - - uid: 644 - components: - - pos: -2.5,-30.5 - parent: 73 - type: Transform - uid: 645 components: - pos: 0.5,-26.5 @@ -2145,11 +2192,6 @@ entities: - pos: 1.5,-29.5 parent: 73 type: Transform - - uid: 680 - components: - - pos: 1.5,-30.5 - parent: 73 - type: Transform - uid: 681 components: - pos: -1.5,-26.5 @@ -2271,12 +2313,39 @@ entities: pos: 0.5,-9.5 parent: 73 type: Transform + - uid: 758 + components: + - pos: -2.5,-15.5 + parent: 73 + type: Transform + - uid: 762 + components: + - pos: -1.5,-15.5 + parent: 73 + type: Transform + - uid: 763 + components: + - pos: 0.5,-15.5 + parent: 73 + type: Transform + - uid: 764 + components: + - pos: 1.5,-15.5 + parent: 73 + type: Transform - uid: 767 components: - rot: 3.141592653589793 rad pos: -0.5,-3.5 parent: 73 type: Transform +- proto: CigPackSyndicate + entities: + - uid: 449 + components: + - pos: -3.5658307,-17.516623 + parent: 73 + type: Transform - proto: ClothingBackpackDuffelSyndicateFilledMedical entities: - uid: 669 @@ -2284,6 +2353,35 @@ entities: - pos: -3.5044222,-6.293252 parent: 73 type: Transform +- proto: ClothingHeadHatSyndie + entities: + - uid: 447 + components: + - pos: -3.1200604,-17.289778 + parent: 73 + type: Transform +- proto: ClothingHeadHatSyndieMAA + entities: + - uid: 709 + components: + - flags: InContainer + type: MetaData + - parent: 692 + type: Transform + - canCollide: False + type: Physics + - type: InsideEntityStorage +- proto: ClothingHeadPyjamaSyndicateRed + entities: + - uid: 699 + components: + - flags: InContainer + type: MetaData + - parent: 692 + type: Transform + - canCollide: False + type: Physics + - type: InsideEntityStorage - proto: ClothingHeadsetAltSyndicate entities: - uid: 706 @@ -2293,26 +2391,74 @@ entities: type: Transform - proto: ClothingMaskGasSyndicate entities: - - uid: 705 + - uid: 705 + components: + - pos: 0.94071925,-13.482027 + parent: 73 + type: Transform +- proto: ClothingNeckMantleHOS + entities: + - uid: 563 + components: + - flags: InContainer + desc: Looted from a fallen enemy, the commander earned this in battle. + name: commander mantle + type: MetaData + - parent: 692 + type: Transform + - canCollide: False + type: Physics + - type: InsideEntityStorage +- proto: ClothingOuterCoatSyndieCap + entities: + - uid: 694 + components: + - flags: InContainer + type: MetaData + - parent: 692 + type: Transform + - canCollide: False + type: Physics + - type: InsideEntityStorage +- proto: ClothingUniformJumpskirtSyndieFormalDress + entities: + - uid: 700 + components: + - flags: InContainer + type: MetaData + - parent: 692 + type: Transform + - canCollide: False + type: Physics + - type: InsideEntityStorage +- proto: ClothingUniformJumpsuitPyjamaSyndicateRed + entities: + - uid: 697 components: - - pos: 0.94071925,-13.482027 - parent: 73 + - flags: InContainer + type: MetaData + - parent: 692 type: Transform -- proto: ClothingNeckMantleHOS + - canCollide: False + type: Physics + - type: InsideEntityStorage +- proto: ClothingUniformJumpsuitSyndieFormal entities: - - uid: 563 + - uid: 695 components: - - desc: Looted from a fallen enemy, the commander earned this in battle. - name: commander mantle + - flags: InContainer type: MetaData - - pos: 4.5259347,-5.370554 - parent: 73 + - parent: 692 type: Transform + - canCollide: False + type: Physics + - type: InsideEntityStorage - proto: ComfyChair entities: - - uid: 184 + - uid: 635 components: - - pos: 4.5,-4.5 + - rot: -1.5707963267948966 rad + pos: 4.5,-4.5 parent: 73 type: Transform - proto: computerBodyScanner @@ -2353,6 +2499,13 @@ entities: - pos: -0.5,-2.5 parent: 73 type: Transform +- proto: CrowbarRed + entities: + - uid: 448 + components: + - pos: -3.492848,-22.485775 + parent: 73 + type: Transform - proto: DisposalBend entities: - uid: 607 @@ -2517,6 +2670,16 @@ entities: - pos: -1.4112403,-23.458082 parent: 73 type: Transform + - uid: 783 + components: + - pos: 5.390987,-17.346693 + parent: 73 + type: Transform + - uid: 784 + components: + - pos: -6.6334953,-17.346693 + parent: 73 + type: Transform - proto: DrinkGlass entities: - uid: 537 @@ -2543,6 +2706,13 @@ entities: - pos: 2.0968437,-19.526567 parent: 73 type: Transform +- proto: DrinkMugRed + entities: + - uid: 600 + components: + - pos: 1.9918958,-17.588755 + parent: 73 + type: Transform - proto: DrinkVacuumFlask entities: - uid: 541 @@ -2574,11 +2744,25 @@ entities: - pos: 2.7185502,-19.320925 parent: 73 type: Transform -- proto: FoodPizzaMeat +- proto: FoodBoxDonut entities: - - uid: 478 + - uid: 756 + components: + - pos: 5.5401826,-21.187487 + parent: 73 + type: Transform +- proto: FoodPizzaDonkpocket + entities: + - uid: 644 + components: + - pos: 1.4776825,-21.296862 + parent: 73 + type: Transform +- proto: FoodSnackSyndi + entities: + - uid: 446 components: - - pos: 1.4768602,-21.281406 + - pos: 1.5361897,-17.367903 parent: 73 type: Transform - proto: GasMinerNitrogen @@ -3375,18 +3559,50 @@ entities: type: AmbientSound - color: '#FF1212FF' type: AtmosPipeColor -- proto: GeneratorUranium +- proto: GeneratorBasic15kW entities: - - uid: 719 + - uid: 206 components: - - pos: -6.5,-23.5 + - pos: -4.5,-26.5 + parent: 73 + type: Transform + - uid: 207 + components: + - pos: -4.5,-25.5 + parent: 73 + type: Transform + - uid: 502 + components: + - pos: -4.5,-24.5 + parent: 73 + type: Transform + - uid: 567 + components: + - pos: -6.5,-24.5 + parent: 73 + type: Transform + - uid: 568 + components: + - pos: -6.5,-25.5 + parent: 73 + type: Transform + - uid: 570 + components: + - pos: -6.5,-26.5 + parent: 73 + type: Transform +- proto: GeneratorWallmountAPU + entities: + - uid: 676 + components: + - pos: -6.5,-20.5 parent: 73 type: Transform - proto: GravityGeneratorMini entities: - - uid: 688 + - uid: 652 components: - - pos: -3.5,-24.5 + - pos: -5.5,-22.5 parent: 73 type: Transform - proto: Grille @@ -3527,7 +3743,7 @@ entities: type: Transform - proto: HospitalCurtainsOpen entities: - - uid: 660 + - uid: 633 components: - pos: 3.5,-3.5 parent: 73 @@ -3575,6 +3791,49 @@ entities: temporary: False event: !type:ToggleActionEvent {} type: HandheldLight +- proto: LockerSyndicatePersonal + entities: + - uid: 692 + components: + - pos: 4.5,-5.5 + parent: 73 + type: Transform + - air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459903 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + type: EntityStorage + - containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 563 + - 700 + - 699 + - 697 + - 695 + - 694 + - 709 + - 710 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + type: ContainerContainer - proto: MedicalBed entities: - uid: 673 @@ -3603,9 +3862,9 @@ entities: type: Transform - proto: Multitool entities: - - uid: 635 + - uid: 499 components: - - pos: -6.585132,-21.443342 + - pos: -3.383473,-22.548275 parent: 73 type: Transform - proto: NitrogenTankFilled @@ -3620,6 +3879,16 @@ entities: - pos: -5.397322,-12.569441 parent: 73 type: Transform + - uid: 788 + components: + - pos: -6.3522453,-17.549818 + parent: 73 + type: Transform + - uid: 790 + components: + - pos: 5.6633797,-17.565443 + parent: 73 + type: Transform - proto: NuclearBombUnanchored entities: - uid: 76 @@ -3672,6 +3941,16 @@ entities: - pos: 4.399553,-12.522566 parent: 73 type: Transform + - uid: 785 + components: + - pos: 5.5227547,-17.440443 + parent: 73 + type: Transform + - uid: 786 + components: + - pos: -6.4928703,-17.440443 + parent: 73 + type: Transform - proto: PinpointerNuclear entities: - uid: 872 @@ -3713,6 +3992,36 @@ entities: - pos: 1.5,-14.5 parent: 73 type: Transform +- proto: PosterContrabandCC64KAd + entities: + - uid: 796 + components: + - pos: -5.5,-18.5 + parent: 73 + type: Transform +- proto: PosterContrabandCybersun600 + entities: + - uid: 793 + components: + - pos: 2.5,-6.5 + parent: 73 + type: Transform +- proto: PosterContrabandDonk + entities: + - uid: 719 + components: + - rot: 3.141592653589793 rad + pos: 3.5,-18.5 + parent: 73 + type: Transform +- proto: PosterContrabandDonutCorp + entities: + - uid: 755 + components: + - rot: 3.141592653589793 rad + pos: 1.5,-22.5 + parent: 73 + type: Transform - proto: PosterContrabandEnergySwords entities: - uid: 534 @@ -3720,6 +4029,14 @@ entities: - pos: 2.5,-18.5 parent: 73 type: Transform +- proto: PosterContrabandEnlistGorlex + entities: + - uid: 754 + components: + - rot: 3.141592653589793 rad + pos: 2.5,-13.5 + parent: 73 + type: Transform - proto: PosterContrabandFreeSyndicateEncryptionKey entities: - uid: 779 @@ -3727,6 +4044,14 @@ entities: - pos: -2.5,-8.5 parent: 73 type: Transform +- proto: PosterContrabandInterdyne + entities: + - uid: 725 + components: + - rot: 3.141592653589793 rad + pos: -4.5,-6.5 + parent: 73 + type: Transform - proto: PosterContrabandKosmicheskayaStantsiya entities: - uid: 780 @@ -3734,8 +4059,26 @@ entities: - pos: -2.5,-22.5 parent: 73 type: Transform +- proto: PosterContrabandMoth + entities: + - uid: 757 + components: + - pos: -2.5,-14.5 + parent: 73 + type: Transform + - uid: 792 + components: + - pos: 2.5,-3.5 + parent: 73 + type: Transform - proto: PosterContrabandNuclearDeviceInformational entities: + - uid: 717 + components: + - rot: 3.141592653589793 rad + pos: -3.5,-13.5 + parent: 73 + type: Transform - uid: 791 components: - pos: 0.5,-14.5 @@ -3755,6 +4098,14 @@ entities: - pos: -1.5,-14.5 parent: 73 type: Transform +- proto: PosterContrabandWaffleCorp + entities: + - uid: 722 + components: + - rot: 3.141592653589793 rad + pos: -2.5,-23.5 + parent: 73 + type: Transform - proto: Poweredlight entities: - uid: 129 @@ -3892,13 +4243,6 @@ entities: type: Transform - powerLoad: 0 type: ApcPowerReceiver - - uid: 502 - components: - - pos: 6.5,-16.5 - parent: 73 - type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - uid: 505 components: - rot: 3.141592653589793 rad @@ -3907,13 +4251,6 @@ entities: type: Transform - powerLoad: 0 type: ApcPowerReceiver - - uid: 507 - components: - - pos: -7.5,-16.5 - parent: 73 - type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - uid: 513 components: - rot: 1.5707963267948966 rad @@ -3922,6 +4259,16 @@ entities: type: Transform - powerLoad: 0 type: ApcPowerReceiver + - uid: 655 + components: + - pos: -6.5,-15.5 + parent: 73 + type: Transform + - uid: 660 + components: + - pos: 5.5,-15.5 + parent: 73 + type: Transform - uid: 740 components: - pos: 2.5,-19.5 @@ -3954,10 +4301,9 @@ entities: type: ApcPowerReceiver - proto: Rack entities: - - uid: 78 + - uid: 478 components: - - rot: 3.141592653589793 rad - pos: -6.5,-21.5 + - pos: -3.5,-22.5 parent: 73 type: Transform - uid: 525 @@ -3982,9 +4328,14 @@ entities: - pos: -1.5,-23.5 parent: 73 type: Transform - - uid: 633 + - uid: 689 components: - - pos: -6.5,-22.5 + - pos: -6.5,-17.5 + parent: 73 + type: Transform + - uid: 690 + components: + - pos: 5.5,-17.5 parent: 73 type: Transform - proto: ReinforcedPlasmaWindow @@ -4264,27 +4615,33 @@ entities: type: DeviceLinkSource - proto: SignDirectionalEvac entities: - - uid: 568 + - uid: 572 components: - - rot: 3.141592653589793 rad - pos: 2.5,-14.5 + - pos: 0.5,-22.5 parent: 73 type: Transform - - uid: 570 + - uid: 574 + components: + - rot: 1.5707963267948966 rad + pos: 4.5,-15.5 + parent: 73 + type: Transform + - uid: 680 components: - rot: 3.141592653589793 rad - pos: -3.5,-14.5 + pos: -5.5,-14.5 parent: 73 type: Transform - - uid: 572 + - uid: 688 components: - - pos: 0.5,-22.5 + - rot: 3.141592653589793 rad + pos: 4.5,-14.5 parent: 73 type: Transform - - uid: 574 + - uid: 718 components: - - rot: 1.5707963267948966 rad - pos: 4.5,-15.5 + - rot: -1.5707963267948966 rad + pos: -5.5,-15.5 parent: 73 type: Transform - proto: SignElectricalMed @@ -4330,6 +4687,13 @@ entities: - pos: -4.5,-19.5 parent: 73 type: Transform +- proto: SoapSyndie + entities: + - uid: 797 + components: + - pos: 2.4424396,-17.430403 + parent: 73 + type: Transform - proto: soda_dispenser entities: - uid: 535 @@ -4363,14 +4727,14 @@ entities: - pos: 0.5,-23.5 parent: 73 type: Transform - - uid: 567 + - uid: 774 components: - - pos: 5.5,-17.5 + - pos: 3.5,-17.5 parent: 73 type: Transform - - uid: 576 + - uid: 782 components: - - pos: -6.5,-17.5 + - pos: -4.5,-17.5 parent: 73 type: Transform - proto: SyndicateComputerComms @@ -4492,23 +4856,36 @@ entities: - pos: 1.5,-11.5 parent: 73 type: Transform + - uid: 765 + components: + - pos: 2.5,-17.5 + parent: 73 + type: Transform + - uid: 768 + components: + - pos: 1.5,-17.5 + parent: 73 + type: Transform + - uid: 769 + components: + - pos: -2.5,-17.5 + parent: 73 + type: Transform - uid: 770 components: - rot: -1.5707963267948966 rad pos: 1.5,-2.5 parent: 73 type: Transform - - uid: 773 + - uid: 772 components: - - rot: -1.5707963267948966 rad - pos: -1.5,-2.5 + - pos: -3.5,-17.5 parent: 73 type: Transform -- proto: TableWood - entities: - - uid: 499 + - uid: 773 components: - - pos: 4.5,-5.5 + - rot: -1.5707963267948966 rad + pos: -1.5,-2.5 parent: 73 type: Transform - proto: Thruster @@ -4571,6 +4948,13 @@ entities: pos: 3.5,-30.5 parent: 73 type: Transform +- proto: ToolboxSyndicate + entities: + - uid: 651 + components: + - pos: -2.5731854,-17.414778 + parent: 73 + type: Transform - proto: ToolboxSyndicateFilled entities: - uid: 748 @@ -4604,11 +4988,11 @@ entities: type: Transform - proto: VendingMachineYouTool entities: - - uid: 695 + - uid: 507 components: - flags: SessionSpecific type: MetaData - - pos: -3.5,-22.5 + - pos: -3.5,-24.5 parent: 73 type: Transform - proto: WallPlastitanium @@ -5417,6 +5801,13 @@ entities: - pos: 4.5,-18.5 parent: 73 type: Transform +- proto: WaterCooler + entities: + - uid: 599 + components: + - pos: 0.5,-17.5 + parent: 73 + type: Transform - proto: WindoorSecure entities: - uid: 713 @@ -5427,11 +5818,6 @@ entities: type: Transform - proto: Wrench entities: - - uid: 70 - components: - - pos: -6.522632,-21.426788 - parent: 73 - type: Transform - uid: 545 components: - pos: 5.4749,-23.512577 From d8b478a7312c564ce1bed7588cb715431c6bf6e0 Mon Sep 17 00:00:00 2001 From: Hyenh <108431937+Hyenh@users.noreply.github.com> Date: Thu, 3 Aug 2023 18:50:05 +0700 Subject: [PATCH 26/37] Discount resprite. (#18609) --- .../VendingMachines/discount.rsi/broken.png | Bin 1326 -> 1512 bytes .../discount.rsi/deny-unshaded.png | Bin 0 -> 1736 bytes .../discount.rsi/eject-unshaded.png | Bin 0 -> 1421 bytes .../VendingMachines/discount.rsi/meta.json | 73 ++++++++++++------ .../discount.rsi/normal-unshaded.png | Bin 897 -> 1662 bytes .../VendingMachines/discount.rsi/off.png | Bin 1003 -> 990 bytes .../VendingMachines/discount.rsi/panel.png | Bin 0 -> 694 bytes 7 files changed, 49 insertions(+), 24 deletions(-) create mode 100644 Resources/Textures/Structures/Machines/VendingMachines/discount.rsi/deny-unshaded.png create mode 100644 Resources/Textures/Structures/Machines/VendingMachines/discount.rsi/eject-unshaded.png create mode 100644 Resources/Textures/Structures/Machines/VendingMachines/discount.rsi/panel.png diff --git a/Resources/Textures/Structures/Machines/VendingMachines/discount.rsi/broken.png b/Resources/Textures/Structures/Machines/VendingMachines/discount.rsi/broken.png index d3b9cc148a3940bf2ef273a54b39ce93d2b8b5f9..4a62baccbcdafd4737c5885958d3c6b78ae085ad 100644 GIT binary patch delta 1495 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 delta 982 zcmV;{11bF82kQrrBYy+3Nkl5XV0=yXPPmi5(geVmXN~?&(}1pbC;h z6!8~WAq7Uwf)xK zLl)m=Pw%~(`OeQbPpH8By>I;5)HPfT5y5c84FGY)MR7m?#ed1j5D_F7P!FpDYTyD( zOG^^dlSY-#&->KXtGw{s^CY5}KSFc>%y9wCK?NiOS0F_s$MTf+)&^=61Ts{F-&d{x zH#|ln%If^s1s9COp_3SiX=zu3h31Hd6%)nDNl7ufC<$E=QgS3yMn>LcdG!YO7xxp0 zdO(2D)9=N$`hUhR58es1&7=Eq0>#gT>GbuB+`e;{{Sd#*A&Vu?c5~`XdlEu_#^C>xE$W%_Zh; z4f4{ZqkqbQBKD&71a8bVc|G5z-A)-j(I0_|AQ#O;>y_is8;gAS!627jJR%SDYFF}l z0$aB(@S1GX+Q>OO+#i9c2l9e}dp!at-dbSx<`Z0*tXDN<#H*kf6FiBI3;WQT9cRY2 zSZ@pGjv@!#^WsNMi@aM5DfI}KQE?lF?vR&JmwgVqPW(*IcgA)!t!DLII`Je$-as5WS4Eg2J3AyDb^aP1EsK3GLG#avLgaAT^3Zt1!!AvEmuN$ zuY}&afSnLT^;Zm~{r8g^h|d;LUgPJ-{7=l&NAooMdF5@Cr1EuK*}R+0anH@dYe+#Y z#U&#bNW3?&9>b&?p6xyW(jhoi5jWfgNi!A~?pNyh7Y2QEfW@7wb^rhX07*qoM6N<$ Eg04ch($ diff --git a/Resources/Textures/Structures/Machines/VendingMachines/discount.rsi/panel.png b/Resources/Textures/Structures/Machines/VendingMachines/discount.rsi/panel.png new file mode 100644 index 0000000000000000000000000000000000000000..e8babedfe58dad0ee3ecc09b2f97dcf7494fd53c GIT binary patch literal 694 zcmV;n0!jUeP)EX>4Tx04R}tkv&MmP!xqvQ>7vm2Q!E`WT?7W5EXHhDi*;)X)CnqVDi#GXws0R zxHt-~1qXi?s}3&Cx;nTDg5VE`tBaGOi5Z zOvPhTHn%E;UJ-zZ5C$<_Qpd2CnqBzuEw1KS{5* zwa5|BzYSbmw>4!CxZD8-pA6ZQT`5RQC=`JAGy0|+FmMa>u6c87o#XTY$k42oZ-9eC zV6;ft>pt)9>73iYJ+1lu0CfOzsO6?e&Hw-a24YJ`L;$e>kN^j_ledTf000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2j>A50~a*AL&5z3000?uMObu0Z*6U5Zgc=ca%Ew3 zWn>_CX>@2HM@dakSAh-}0001UNkl~qxp0@pm{4`+B&n7wybT11DHMQzrZgd9=HGtzaaRYD+3t-000hUSV?A0O#mtY c000O800000007cclK=n!07*qoM6N<$f_k_VyZ`_I literal 0 HcmV?d00001 From c9da59e57aef5dcf546807e1cbba97dec602e3a6 Mon Sep 17 00:00:00 2001 From: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com> Date: Fri, 4 Aug 2023 04:44:31 +1200 Subject: [PATCH 27/37] Add oldhelp to engine commands perms (#18603) --- Resources/engineCommandPerms.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Resources/engineCommandPerms.yml b/Resources/engineCommandPerms.yml index ccbacde9163e63..0b0e3c13a73757 100644 --- a/Resources/engineCommandPerms.yml +++ b/Resources/engineCommandPerms.yml @@ -132,3 +132,5 @@ - Commands: - "|" + - oldhelp + \ No newline at end of file From adec1511a1bc4a216eaf9618b3dcde29ddba5036 Mon Sep 17 00:00:00 2001 From: MilenVolf Date: Thu, 3 Aug 2023 20:03:35 +0300 Subject: [PATCH 28/37] Update english locale files --- .../entities/objects/tools/lantern.ftl | 8 ++-- .../structures/wallmounts/signs/posters.ftl | 45 +++++++++++++++++++ 2 files changed, 49 insertions(+), 4 deletions(-) diff --git a/Resources/Locale/en-US/ss14-ru/prototypes/entities/objects/tools/lantern.ftl b/Resources/Locale/en-US/ss14-ru/prototypes/entities/objects/tools/lantern.ftl index 407a62717973a2..5d8372bb75a7d9 100644 --- a/Resources/Locale/en-US/ss14-ru/prototypes/entities/objects/tools/lantern.ftl +++ b/Resources/Locale/en-US/ss14-ru/prototypes/entities/objects/tools/lantern.ftl @@ -1,6 +1,6 @@ -ent-lantern = lantern +ent-Lantern = lantern .desc = The holy light guides the way. .suffix = { "" } -ent-lanternextrabright = extra-bright lantern - .desc = Blinding. - .suffix = { "" } +ent-LanternFlash = { ent-Lantern } + .suffix = Flash + .desc = { ent-Lantern.desc } diff --git a/Resources/Locale/en-US/ss14-ru/prototypes/entities/structures/wallmounts/signs/posters.ftl b/Resources/Locale/en-US/ss14-ru/prototypes/entities/structures/wallmounts/signs/posters.ftl index ad93a40a9cb757..37623b67cce173 100644 --- a/Resources/Locale/en-US/ss14-ru/prototypes/entities/structures/wallmounts/signs/posters.ftl +++ b/Resources/Locale/en-US/ss14-ru/prototypes/entities/structures/wallmounts/signs/posters.ftl @@ -166,6 +166,24 @@ ent-PosterContrabandRise = Rise Up ent-PosterContrabandRevolt = Revolt .desc = Revolutionist propaganda, manufactured by the Syndicate. .suffix = { "" } +ent-PosterContrabandMoth = Syndie Moth - Nuclear Operation + .desc = A Syndicate-commissioned poster that uses Syndie Moth™ to tell the viewer to keep the nuclear authentication disk unsecured. "Peace was never an option!" No good employee would listen to this nonsense. + .suffix = { "" } +ent-PosterContrabandCybersun600 = Cybersun: 600 Years Commemorative Poster + .desc = An artistic poster commemorating 600 years of continual business for Cybersun Industries. + .suffix = { "" } +ent-PosterContrabandDonk = DONK CO. BRAND MICROWAVEABLE FOOD + .desc = DONK CO. BRAND MICROWAVABLE FOOD: MADE BY STARVING COLLEGE STUDENTS, FOR STARVING COLLEGE STUDENTS. + .suffix = { "" } +ent-PosterContrabandEnlistGorlex = Enlist + .desc = Enlist with the Gorlex Marauders today! See the galaxy, kill corpos, get paid! + .suffix = { "" } +ent-PosterContrabandInterdyne = Interdyne Pharmaceutics: For the Health of Humankind + .desc = An advertisement for Interdyne Pharmaceutics' GeneClean clinics. 'Become the master of your own body!' + .suffix = { "" } +ent-PosterContrabandWaffleCorp = Make Mine a Waffle Corp: Fine Rifles, Economic Prices + .desc = An old advertisement for Waffle Corp rifles. 'Better weapons, lower prices!' + .suffix = { "" } ent-PosterLegitHereForYourSafety = Here For Your Safety .desc = A poster glorifying the station's security force. .suffix = { "" } @@ -292,6 +310,33 @@ ent-PosterLegitMime = Mime Postmodern ent-PosterLegitCarpMount = Wall-mounted Carp .desc = Carpe diem! .suffix = { "" } +ent-PosterLegitSafetyMothDelam = Safety Moth - Delamination Safety Precautions + .desc = This informational poster uses Safety Moth™ to tell the viewer to hide in lockers when the Supermatter Crystal has delaminated, to prevent hallucinations. Evacuating might be a better strategy. + .suffix = { "" } +ent-PosterLegitSafetyMothEpi = Safety Moth - Epinephrine + .desc = This informational poster uses Safety Moth™ to inform the viewer to help injured/deceased crewmen with their epinephrine injectors. "Prevent organ rot with this one simple trick!" + .suffix = { "" } +ent-PosterLegitSafetyMothHardhat = Safety Moth - Hardhats + .desc = This informational poster uses Safety Moth™ to tell the viewer to wear hardhats in cautious areas. "It's like a lamp for your head!" + .suffix = { "" } +ent-PosterLegitSafetyMothMeth = Safety Moth - Methamphetamine + .desc = This informational poster uses Safety Moth™ to tell the viewer to seek CMO approval before cooking methamphetamine. "Stay close to the target temperature, and never go over!" ...You shouldn't ever be making this. + .suffix = { "" } +ent-PosterLegitSafetyMothPiping = Safety Moth - Piping + .desc = This informational poster uses Safety Moth™ to tell atmospheric technicians correct types of piping to be used. "Pipes, not Pumps! Proper pipe placement prevents poor performance!" + .suffix = { "" } +ent-PosterLegitVacation = Nanotrasen Corporate Perks: Vacation + .desc = This informational poster provides information on some of the prizes available via the NT Corporate Perks program, including a two-week vacation for two on the resort world Idyllus. + .suffix = { "" } +ent-PosterLegitPeriodicTable = Periodic Table of the Elements + .desc = A periodic table of the elements, from Hydrogen to Oganesson, and everything inbetween. + .suffix = { "" } +ent-PosterLegitRenault = Renault Poster + .desc = Yap. + .suffix = { "" } +ent-PosterLegitNTTGC = Nanotrasen Tactical Game Cards + .desc = An advertisement for Nanotrasen's TCG cards: BUY MORE CARDS. + .suffix = { "" } ent-PosterMapBagel = Bagel Map .desc = A map of Bagel Station. .suffix = { "" } From f0088dd630d93ee159289be25862bd77c6b587fc Mon Sep 17 00:00:00 2001 From: MilenVolf Date: Thu, 3 Aug 2023 20:04:41 +0300 Subject: [PATCH 29/37] Update russian locale files --- .../ru-RU/administration/admin-verbs.ftl | 2 + .../ru-RU/commands/toolshed-commands.ftl | 29 ++++++++++++ .../entities/objects/tools/lantern.ftl | 6 +++ .../structures/wallmounts/signs/posters.ftl | 45 +++++++++++++++++++ 4 files changed, 82 insertions(+) create mode 100644 Resources/Locale/ru-RU/commands/toolshed-commands.ftl diff --git a/Resources/Locale/ru-RU/administration/admin-verbs.ftl b/Resources/Locale/ru-RU/administration/admin-verbs.ftl index dab9cd87877f78..3e6f626cbec4dd 100644 --- a/Resources/Locale/ru-RU/administration/admin-verbs.ftl +++ b/Resources/Locale/ru-RU/administration/admin-verbs.ftl @@ -7,3 +7,5 @@ admin-verbs-teleport-to = Телепортироваться к admin-verbs-teleport-here = Телепортировать сюда admin-verbs-freeze = Заморозить admin-verbs-unfreeze = Разморозить +toolshed-verb-mark = Mark +toolshed-verb-mark-description = Places this entity into the $marked variable, a list of entities, replacing it's prior value. diff --git a/Resources/Locale/ru-RU/commands/toolshed-commands.ftl b/Resources/Locale/ru-RU/commands/toolshed-commands.ftl new file mode 100644 index 00000000000000..9e6603e8d1f9a8 --- /dev/null +++ b/Resources/Locale/ru-RU/commands/toolshed-commands.ftl @@ -0,0 +1,29 @@ +command-description-visualize = Takes the input list of entities and puts them into a UI window for easy browsing. +command-description-runverbas = Runs a verb over the input entities with the given user. +command-description-acmd-perms = Returns the admin permissions of the given command, if any. +command-description-acmd-caninvoke = Check if the given player can invoke the given command. +command-description-jobs-jobs = Returns all jobs on a station. +command-description-jobs-job = Returns a given job on a station. +command-description-jobs-isinfinite = Returns true if the input job is infinite, otherwise false. +command-description-jobs-adjust = Adjusts the number of slots for the given job. +command-description-jobs-set = Sets the number of slots for the given job. +command-description-jobs-amount = Returns the number of slots for the given job. +command-description-stations-list = Returns a list of all stations. +command-description-stations-get = Gets the active station, if and only if there is only one. +command-description-stations-getowningstation = Gets the station that a given entity is "owned by" (within) +command-description-stations-grids = Returns all grids associated with the input station. +command-description-stations-config = Returns the config associated with the input station, if any. +command-description-stations-addgrid = Adds a grid to the given station. +command-description-stations-rmgrid = Removes a grid from the given station. +command-description-stations-rename = Renames the given station. +command-description-stations-largestgrid = Returns the largest grid the given station has, if any. +command-description-admins-active = Returns a list of active admins. +command-description-admins-all = Returns a list of ALL admins, including deadmined ones. +command-description-marked = Returns the value of $marked as a List. +command-description-rejuvenate = Rejuvenates the given entities, restoring them to full health, clearing status effects, etc. +command-description-tag-list = Lists tags on the given entities. +command-description-tag-add = Adds a tag to the given entities. +command-description-tag-rm = Removes a tag from the given entities. +command-description-tag-addmany = Adds a list of tags to the given entities. +command-description-tag-rmmany = Removes a list of tags from the given entities. +command-description-solution-get = Returns a solution stored in an entity's solution container. diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/tools/lantern.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/tools/lantern.ftl index afaae8f14d4d64..af0726903272e2 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/tools/lantern.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/tools/lantern.ftl @@ -1,3 +1,9 @@ +ent-Lantern = lantern + .desc = The holy light guides the way. + .suffix = { "" } +ent-LanternFlash = { ent-Lantern } + .suffix = Flash + .desc = { ent-Lantern.desc } ent-lantern = светильник .desc = Благословенный свет указывает путь. .suffix = { "" } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/wallmounts/signs/posters.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/wallmounts/signs/posters.ftl index 10a06a0910da2e..26c3b007c8f6ac 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/wallmounts/signs/posters.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/wallmounts/signs/posters.ftl @@ -166,6 +166,24 @@ ent-PosterContrabandRise = Восстань ent-PosterContrabandRevolt = Бунт .desc = Революционная пропаганда, выпущенная Синдикатом. .suffix = { "" } +ent-PosterContrabandMoth = Syndie Moth - Nuclear Operation + .desc = A Syndicate-commissioned poster that uses Syndie Moth™ to tell the viewer to keep the nuclear authentication disk unsecured. "Peace was never an option!" No good employee would listen to this nonsense. + .suffix = { "" } +ent-PosterContrabandCybersun600 = Cybersun: 600 Years Commemorative Poster + .desc = An artistic poster commemorating 600 years of continual business for Cybersun Industries. + .suffix = { "" } +ent-PosterContrabandDonk = DONK CO. BRAND MICROWAVEABLE FOOD + .desc = DONK CO. BRAND MICROWAVABLE FOOD: MADE BY STARVING COLLEGE STUDENTS, FOR STARVING COLLEGE STUDENTS. + .suffix = { "" } +ent-PosterContrabandEnlistGorlex = Enlist + .desc = Enlist with the Gorlex Marauders today! See the galaxy, kill corpos, get paid! + .suffix = { "" } +ent-PosterContrabandInterdyne = Interdyne Pharmaceutics: For the Health of Humankind + .desc = An advertisement for Interdyne Pharmaceutics' GeneClean clinics. 'Become the master of your own body!' + .suffix = { "" } +ent-PosterContrabandWaffleCorp = Make Mine a Waffle Corp: Fine Rifles, Economic Prices + .desc = An old advertisement for Waffle Corp rifles. 'Better weapons, lower prices!' + .suffix = { "" } ent-PosterLegitHereForYourSafety = Здесь для вашей безопасности .desc = Плакат, восхваляющий службу безопасности станции. .suffix = { "" } @@ -292,6 +310,33 @@ ent-PosterLegitMime = Мим Постмодерн ent-PosterLegitCarpMount = Настенный Карп .desc = Карпе диэм! .suffix = { "" } +ent-PosterLegitSafetyMothDelam = Safety Moth - Delamination Safety Precautions + .desc = This informational poster uses Safety Moth™ to tell the viewer to hide in lockers when the Supermatter Crystal has delaminated, to prevent hallucinations. Evacuating might be a better strategy. + .suffix = { "" } +ent-PosterLegitSafetyMothEpi = Safety Moth - Epinephrine + .desc = This informational poster uses Safety Moth™ to inform the viewer to help injured/deceased crewmen with their epinephrine injectors. "Prevent organ rot with this one simple trick!" + .suffix = { "" } +ent-PosterLegitSafetyMothHardhat = Safety Moth - Hardhats + .desc = This informational poster uses Safety Moth™ to tell the viewer to wear hardhats in cautious areas. "It's like a lamp for your head!" + .suffix = { "" } +ent-PosterLegitSafetyMothMeth = Safety Moth - Methamphetamine + .desc = This informational poster uses Safety Moth™ to tell the viewer to seek CMO approval before cooking methamphetamine. "Stay close to the target temperature, and never go over!" ...You shouldn't ever be making this. + .suffix = { "" } +ent-PosterLegitSafetyMothPiping = Safety Moth - Piping + .desc = This informational poster uses Safety Moth™ to tell atmospheric technicians correct types of piping to be used. "Pipes, not Pumps! Proper pipe placement prevents poor performance!" + .suffix = { "" } +ent-PosterLegitVacation = Nanotrasen Corporate Perks: Vacation + .desc = This informational poster provides information on some of the prizes available via the NT Corporate Perks program, including a two-week vacation for two on the resort world Idyllus. + .suffix = { "" } +ent-PosterLegitPeriodicTable = Periodic Table of the Elements + .desc = A periodic table of the elements, from Hydrogen to Oganesson, and everything inbetween. + .suffix = { "" } +ent-PosterLegitRenault = Renault Poster + .desc = Yap. + .suffix = { "" } +ent-PosterLegitNTTGC = Nanotrasen Tactical Game Cards + .desc = An advertisement for Nanotrasen's TCG cards: BUY MORE CARDS. + .suffix = { "" } ent-PosterMapBagel = карта Bagel .desc = Карта станции Bagel. .suffix = { "" } From b452c52046128ab3b958e13077022c6c9c42b6bb Mon Sep 17 00:00:00 2001 From: quartG <140832593+quartuG3@users.noreply.github.com> Date: Thu, 3 Aug 2023 20:12:23 +0300 Subject: [PATCH 30/37] Some changes for "big salvage and miners update #208." v2 (#212) * some changes for "big salvage and miners update #208." * fix * Few changes for bluespase orebag * Another change to the ore bag Change in size and capacity * small change in "ore_bag.yml" * Another update "ore_bag.yml". Again. --- .../Locale/en-US/research/technologies.ftl | 1 + .../catalog/fills/crates/salvage.ftl | 3 + .../Locale/ru-RU/research/technologies.ftl | 1 + .../catalog/fills/crates/salvage.ftl | 7 +- .../Prototypes/Catalog/Cargo/cargo_cargo.yml | 21 ------ .../Catalog/Fills/Crates/salvage.yml | 27 ++----- .../Objects/Specific/Salvage/ore_bag.yml | 4 ++ .../Weapons/Guns/Battery/battery_guns.yml | 17 +++-- .../Weapons/Guns/Projectiles/projectiles.yml | 67 +++++++++++------- .../Entities/Structures/Machines/lathe.yml | 1 + .../Prototypes/Procedural/salvage_rewards.yml | 2 + .../Prototypes/Recipes/Lathes/security.yml | 10 +++ Resources/Prototypes/Research/arsenal.yml | 12 ++++ .../ore_bag_bluespace.rsi/equipped-BELT.png | Bin 1000 -> 939 bytes .../ore_bag_bluespace.rsi/icon-unlit.png | Bin 0 -> 475 bytes .../ore_bag_bluespace.rsi/inhand-left.png | Bin 969 -> 864 bytes .../ore_bag_bluespace.rsi/inhand-right.png | Bin 921 -> 862 bytes .../Mining/ore_bag_bluespace.rsi/meta.json | 12 ++++ .../Projectiles/bullet_cutter.rsi/icon.png | Bin 0 -> 274 bytes .../Projectiles/bullet_cutter.rsi/meta.json | 14 ++++ 20 files changed, 121 insertions(+), 78 deletions(-) create mode 100644 Resources/Textures/Objects/Specific/Mining/ore_bag_bluespace.rsi/icon-unlit.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Projectiles/bullet_cutter.rsi/icon.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Projectiles/bullet_cutter.rsi/meta.json diff --git a/Resources/Locale/en-US/research/technologies.ftl b/Resources/Locale/en-US/research/technologies.ftl index 24a9809199224e..3f692ff153de80 100644 --- a/Resources/Locale/en-US/research/technologies.ftl +++ b/Resources/Locale/en-US/research/technologies.ftl @@ -30,6 +30,7 @@ research-technology-bluespace-chemistry = Bluespace Chemistry research-technology-cloning = Cloning research-technology-salvage-weapons = Salvage Weapons +research-technology-salvage-cutters = Ion weapons research-technology-draconic-munitions = Draconic Munitions research-technology-explosive-technology = Explosive Technology research-technology-advanced-laser-manipulation = Advanced Laser Manipulation diff --git a/Resources/Locale/en-US/ss14-ru/prototypes/catalog/fills/crates/salvage.ftl b/Resources/Locale/en-US/ss14-ru/prototypes/catalog/fills/crates/salvage.ftl index 734b84f8f5aec1..f3444c9f1e5720 100644 --- a/Resources/Locale/en-US/ss14-ru/prototypes/catalog/fills/crates/salvage.ftl +++ b/Resources/Locale/en-US/ss14-ru/prototypes/catalog/fills/crates/salvage.ftl @@ -13,3 +13,6 @@ ent-CratePartsT3T4 = tier 3/4 parts crate ent-CratePartsT4 = tier 4 parts crate .desc = Contains 5 random tier 4 parts for upgrading machines. .suffix = { "" } +ent-CrateAdvSalvageEquipment = advanced salvage equipment crate + .desc = Contains one advanced set of miner's tools. + .suffix = Filled \ No newline at end of file diff --git a/Resources/Locale/ru-RU/research/technologies.ftl b/Resources/Locale/ru-RU/research/technologies.ftl index 58c7382605b6fe..4a68b4d50a233a 100644 --- a/Resources/Locale/ru-RU/research/technologies.ftl +++ b/Resources/Locale/ru-RU/research/technologies.ftl @@ -5,6 +5,7 @@ research-discipline-arsenal = Оружейная research-discipline-experimental = Экспериментальная research-discipline-civilian-services = Сервисная research-technology-salvage-weapons = Оружия утилизаторов +research-technology-salvage-cutters = Ионная экипировка research-technology-salvage-equipment = Экипировка для утилизаторов research-technology-advanced-powercells = Продвинутые батареи research-technology-compact-power = Компактное энергопитание diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/catalog/fills/crates/salvage.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/catalog/fills/crates/salvage.ftl index b95736478bacf4..79b58d0b9873b6 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/catalog/fills/crates/salvage.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/catalog/fills/crates/salvage.ftl @@ -13,9 +13,6 @@ ent-CratePartsT3T4 = ящик деталей 3/4 уровня ent-CratePartsT4 = ящик деталей 4 уровня .desc = Содержит 5 случайных деталей 4 уровня для улучшения оборудования. .suffix = { "" } -ent-CrateMinerEquipment = ящик шахтерских инструментов - .desc = Содержит набор инструментов для двух шахтеров - .suffix = Заполненный -ent-CrateMinerAdvancedEquipment = ящик продвинутых шахтерских инструментов - .desc = Содержит набор продвинутых инструментов для двух шахтеров +ent-CrateAdvSalvageEquipment = ящик продвинутых шахтерских инструментов + .desc = Содержит в себе один продвинутый набор шахтёрских инструментов. .suffix = Заполненный \ No newline at end of file diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_cargo.yml b/Resources/Prototypes/Catalog/Cargo/cargo_cargo.yml index 71e188d8a00f45..d1694a9924e528 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_cargo.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_cargo.yml @@ -7,24 +7,3 @@ cost: 250 category: Cargo group: market - -- type: cargoProduct - id: CargoCrateMinerEquipment - icon: - sprite: Objects/Weapons/Guns/Battery/cutter.rsi - state: icon - product: CrateMinerEquipment - cost: 7500 - category: Cargo - group: market - -- type: cargoProduct - id: CargoCrateMinerAdvancedEquipment - icon: - sprite: Objects/Weapons/Guns/Battery/cutteradv.rsi - state: icon - product: CrateMinerAdvancedEquipment - cost: 12500 - category: Cargo - group: market - \ No newline at end of file diff --git a/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml b/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml index a5e9486ba311f5..b4730466047eb7 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml @@ -148,30 +148,13 @@ amount: 5 - type: entity - id: CrateMinerEquipment - name: "mining" - description: For the daring. - suffix: Filled parent: CrateGenericSteel - components: - - type: StorageFill - contents: - - id: WeaponCutter - amount: 2 - - id: OreBagBluespace - amount: 2 - -- type: entity - id: CrateMinerAdvancedEquipment - name: "mining advanced" - description: For the daring. + id: CrateAdvSalvageEquipment + name: advanced salvage equipment suffix: Filled - parent: CrateGenericSteel + description: Contains one advanced plasma cutter and bluespace ore bag. components: - type: StorageFill contents: - - id: WeaponCutterAdv - amount: 2 - - id: OreBagBluespace - amount: 2 - + - id: WeaponCutterAdv + - id: OreBagBluespace diff --git a/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag.yml b/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag.yml index d700dcde54a063..6f75fbd66b54d2 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag.yml @@ -32,6 +32,10 @@ - type: Sprite sprite: Objects/Specific/Mining/ore_bag_bluespace.rsi state: icon + layers: + - state: icon + - state: icon-unlit + shader: unshaded - type: Clothing sprite: Objects/Specific/Mining/ore_bag_bluespace.rsi quickEquip: false diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index 28d6137fd58d97..58956862a54034 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -496,17 +496,22 @@ sprite: Objects/Weapons/Guns/Battery/cutter.rsi state: icon - type: Gun - fireRate: 6 + fireRate: 0.6 soundGunshot: path: /Audio/Weapons/Guns/Gunshots/plasma_cutter.ogg + - type: Item + size: 25 - type: ProjectileBatteryAmmoProvider proto: BulletCutter - fireCost: 10 + fireCost: 200 + - type: Battery + maxCharge: 5000 + startingCharge: 5000 - type: Appearance - type: entity name: Advanced Cutter - parent: BaseWeaponBatterySmall + parent: WeaponCutter id: WeaponCutterAdv description: A self-defense weapon that exhausts organic targets, weakening them until they collapse. components: @@ -514,10 +519,10 @@ sprite: Objects/Weapons/Guns/Battery/cutteradv.rsi state: icon - type: Gun - fireRate: 8 + fireRate: 1 soundGunshot: path: /Audio/Weapons/Guns/Gunshots/plasma_cutter.ogg - type: ProjectileBatteryAmmoProvider - proto: BulletCutter - fireCost: 5 + proto: BulletCutterAdv + fireCost: 100 - type: Appearance diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index 2f4c36f68bbf26..943b4b8bd6f9d1 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -292,6 +292,49 @@ path: "/Audio/Weapons/tap.ogg" soundForce: true +- type: entity + id: BulletCutter + name: cutter bolt + parent: BaseBullet + noSpawn: true + description: Not too bad, but you still don't want to get hit by it. + components: + - type: Reflective + reflective: + - NonEnergy + - type: Sprite + noRot: false + sprite: Objects/Weapons/Guns/Projectiles/bullet_cutter.rsi + layers: + - state: icon + shader: unshaded + - type: GatheringProjectile + amount: 30 + - type: Projectile + deleteOnCollide: false + damage: + types: + Heat: 10 + - type: TimedDespawn + lifetime: 0.2 + - type: PointLight + radius: 2 + color: purple + energy: 1 + +- type: entity + id: BulletCutterAdv + name: cutter bolt advanced + parent: BulletCutter + noSpawn: true + components: + - type: Projectile + damage: + types: + Heat: 15 + - type: TimedDespawn + lifetime: 0.25 + - type: entity name: emitter bolt id: EmitterBolt @@ -766,27 +809,3 @@ lifetime: 0.4 - type: StaminaDamageOnCollide damage: 65 - -- type: entity - id: BulletCutter - name: Cutter bolt - parent: BaseBullet - noSpawn: true - description: Not too bad, but you still don't want to get hit by it. - components: - - type: Reflective - reflective: - - NonEnergy - - type: Sprite - noRot: false - sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi - layers: - - state: scatterlaser - - type: GatheringProjectile - - type: Projectile - damage: - types: - Heat: 0.5 - # Short lifespan - - type: TimedDespawn - lifetime: 0.4 diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 30a3f391d61717..fa0587e6b77339 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -223,6 +223,7 @@ - WeaponCrusherDagger - WeaponForceGun - WeaponProtoKineticAccelerator + - WeaponCutter - WeaponTetherGun - WeaponGrapplingGun - ClothingBackpackHolding diff --git a/Resources/Prototypes/Procedural/salvage_rewards.yml b/Resources/Prototypes/Procedural/salvage_rewards.yml index 304d3363c3a818..8253bda6e5f0ce 100644 --- a/Resources/Prototypes/Procedural/salvage_rewards.yml +++ b/Resources/Prototypes/Procedural/salvage_rewards.yml @@ -65,6 +65,8 @@ CrateArmoryLaser: 1.0 CrateArmoryShotgun: 1.0 BoxCursedKatana: 1.0 + # rare equipment + CrateAdvSalvageEquipment: 1.0 # rare armor ClothingOuterArmorRiot: 1.0 # rare chemicals diff --git a/Resources/Prototypes/Recipes/Lathes/security.yml b/Resources/Prototypes/Recipes/Lathes/security.yml index 73e2e494173b5b..c901c629951f6d 100644 --- a/Resources/Prototypes/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/Recipes/Lathes/security.yml @@ -37,6 +37,16 @@ Glass: 800 Plastic: 500 +- type: latheRecipe + id: WeaponCutter + result: WeaponCutter + completetime: 10 + materials: + Steel: 1100 + Glass: 200 + Gold: 300 + Plasma: 800 + - type: latheRecipe id: WeaponAdvancedLaser result: WeaponAdvancedLaser diff --git a/Resources/Prototypes/Research/arsenal.yml b/Resources/Prototypes/Research/arsenal.yml index 1b5d739213a300..cc494e57fe8191 100644 --- a/Resources/Prototypes/Research/arsenal.yml +++ b/Resources/Prototypes/Research/arsenal.yml @@ -87,6 +87,18 @@ # Tier 2 +- type: technology + id: SalvageCutters + name: research-technology-salvage-cutters + icon: + sprite: Objects/Weapons/Guns/Battery/cutter.rsi + state: icon + discipline: Arsenal + tier: 2 + cost: 8500 + recipeUnlocks: + - WeaponCutter + - type: technology id: OptimizedBallistics name: research-technology-optimized-ballistics diff --git a/Resources/Textures/Objects/Specific/Mining/ore_bag_bluespace.rsi/equipped-BELT.png b/Resources/Textures/Objects/Specific/Mining/ore_bag_bluespace.rsi/equipped-BELT.png index 1c69c8195b282620ba71edc7d1353ec66265eafb..510c3e3110eed09ac94977c6da60b4121f4c58de 100644 GIT binary patch delta 515 zcmV+e0{s2x2df9LvjKkr;z>k7RCt{2+CNJ|Q5XjB$7s9NZe5UunxZ8rkcyz82B%PH z6e;=uM$ljwZBZY<#ZMqj5g`dTl7`UDp-E9hX|l}Q7N^0k{gv+PO*43Y%Y}O`=RLff zdzSM6L_|bHL_|bH^uNtwO-a5VkQUesMwPTkFZp$^s0o9T$&-IZMghRY#Sr}Pszmu3 zQ`-24Z{p^$OERZKNDHfT)4-~>^kuBw`=5v!P%Kmd0FCDc%JoN-Q3OnJ&5q^F0)VI2 z=V#6L`pB?oPTLK5NYAV7dmoV4hx>IgIy}uL^oUifUCrkE>FyMtTTiR}*@8+M8MWt* zs*o1$%X1*4g++g7l1sL2j~Z|vjKksA4x<(RCt{2+OcaBQ5*;GZ={B6j!V)-E+<3`lmx7`lv)Vc z(y@!89qkkx`xiJm76%6>r-GY8Cr39a1d*r+g+Rc7NvV{?JJMcT+vgB+6fTkbrAeCL z_p@BMclrI^d-vm(_XCKCh=_=Yh=}Ol<`)*#{KBHT>Us21$Qgg4xm}Yyyt!toWxb5` z*&4=m6Ec=A+Jvco5+t%QpbR{JaMzdU+4i@PG-gm6D{19Mqev>(H&zX4&}Tv~H(+zk zR3F{~84F$o9JGH<11A~;+ifqbS6EtW+ z7%u|I-Zqt_0s?;oGnVdMx5^g2mOhVk@j>lXo1*6fSHM=;@_vu&;sKyJbseuiI%7LO zA|fIpA|fIpA|fK9$#qo?6RY_-wVI#1bY4+|L^n?&C9HqX*2J9|gK#r8?Yp8*uSWzj={X=An&LGA<1>Fi#)e_vZ6xDWy6+ z1VM>UQ42Xkh5wvl+R%`g(NJ%=IC5N^jQCV``Q9yGsTaTe5a$>72mwGU8Hf7056oyV z4{d~!H`+Ok6C>2mV!P=pNFisaPQwJy?jD)cGx@$Jeeqi`sf#BfqW|4rbMda=vX|Ux P00000NkvXXu0mjfQrr*c diff --git a/Resources/Textures/Objects/Specific/Mining/ore_bag_bluespace.rsi/icon-unlit.png b/Resources/Textures/Objects/Specific/Mining/ore_bag_bluespace.rsi/icon-unlit.png new file mode 100644 index 0000000000000000000000000000000000000000..c84ad70e1c0eb3dda0aaa482a4b151d8b3341ce7 GIT binary patch literal 475 zcmeAS@N?(olHy`uVBq!ia0vp^4nUm1!3HGP9xZtRq!^2X+?^QKos)S9WKZ>UaSW-L z^Y+gAyh8yZ$3JdPJ0EaXWZA)UI(wKFrKy~akx$5DdA6Tv!=lh-CRj%BT7i9$6!SLWwOs4!BU$NP5U-vJU{u=Ro zO@3zgZ9nfW<$}e{oO6Q$?F*ER*>h_{nRAw_u74|DY&)m_NLkdZg&|DlMy221%f62K z958K((UggqhYIW_>3D_;U-+A!@N4$v-T6%=U^*#2=tz14{@E#zap#t-<=TNAOC+d zPCdIa?A3dAkLWTdp`ZW1&vyU&x1m&hn$Ah_x9V|ge>P~Dn#qHmHzj_}o4uEQ|2WkF O;(EIJxvX=$H{UGbjZc5;dcG?-_q1TA zio{M1R?!EBx**GmV(AP;5f^Biw8EI%?u7$o|pZ!%oI`M~nb)ss$G zdp>d1(>odAf&^4@qiz4DR$eb^Dj^;0fC<59%vzY+1~ z_1kYW969@TFEhhSA0~JH-|rTQo(pJZy1H_SA0vbMElZ!n$Cm9p%5|Y$re^O`!~Zk7 zx1Xr5o_WJVR_=hw8;6}w-!*t~zfC)H|4c?=%eBkf6Oy(VFzjf}H&1q0x-~FwBa_LZ zbdA@nAzOtQW^zsp-RIv2WS**G?0s?54P>me+x0+gKL&*_kKcd%bfru9%dxM$McsE9 z^Vh%sciDcP;$PNZFI+Yh{Acpt+qi#U?;V%_XVe>RumAO%A>k(j5O})!xvX5h+L)zfE8xW>h(FkO-Tx@OwS|50qm+m6gwv~!O|e+=uJ8j<~0h1&gF zr_FHMXuEaKrR%G&`Jb;8ZxQU$4^_Xq(=Bky3kUrW7Dj_P=Q+dtq>s&TVXv=RsKn85 z?C|RCO9E}a)cM}6`L&xE`1@m?(Lhhn$w%ARx{?*>+zh( zxU+x#^(arL_m5TnZ+@P6a#qLbqDQ9jJ^YC^-(DY$zFX0*8Fgdnj))^w|NM@~WvtjW z<*AwYK9059tN0z5eorkt*!3niUiGnxCcnCim15&Q{(MsgmCi@z+j{26^{6CQpU?HZ zo3^~xzopr0Ify&mjD0& diff --git a/Resources/Textures/Objects/Specific/Mining/ore_bag_bluespace.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Mining/ore_bag_bluespace.rsi/inhand-right.png index da85765a9e600a9d2dbea964f24d7820b6a96700..fa4c242111976e00a1b50fee5f157460363f20ed 100644 GIT binary patch delta 460 zcmV;-0W7j#42Ax#K_8$lBi1_wVT9bh4_ z*F^tGkZ}f3=t{{+f45W&5^`p_&{X_jrA?jAG5W zJKtZ;fBN>L>yf+hv1LM`S2+EO=It*_-(|Gj=6y_yExY!DtI=nhd<|9$E}dvoqwZO; zw~66f_`8&aVNn{&x4P|R>mEjbmS$m8xbgXQdd>AVt`FJUGJY&ywT&~Z{^I6`zl=pV zCom8|5&{~p1pbCy*O=zF!93%@TmN>B@BPNV7m9XNmL0gh?Me`1L*v|=uSJeddcD{F z;enR&`hOP%ypt<$@?6e~+p~I4`zimsKinTlWLR&H*(AZfwR+;4onM@S>L2gdza;ju zN50^J_gA?FVR4UtUzX{qACGl(ePGA>=-yEo*IQv#Sqwk*8?t}r1oHL&(q!rRla+d^ zKX^&*(xq$-Mn_I|?~!3VSf2(HyTx2*w*AxMB11C=70a042fG*_PdHGo_JNl@rdRQr Sh{YZTAny4Smr^r7L{*f;ck?7WQPc!t0h?T2TOT;4A-<7v9++>}M-@ao1hDj*h;ws@%)ZxiWM{Jt*7X_Wgb6Zpj$dfCDUt z@+9rn|60@_wzXl~GXqAEtj3_vyQJ^10HxY4Up8moB7KM@U{T-XIc5mbZbpgMP_n+rf&g);s W Date: Thu, 3 Aug 2023 17:12:54 +0000 Subject: [PATCH 31/37] Automatic changelog update --- Resources/Changelog/ChangelogAruMoon.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Resources/Changelog/ChangelogAruMoon.yml b/Resources/Changelog/ChangelogAruMoon.yml index 4279db90c88118..18d42576b0c58f 100644 --- a/Resources/Changelog/ChangelogAruMoon.yml +++ b/Resources/Changelog/ChangelogAruMoon.yml @@ -807,3 +807,27 @@ Entries: type: Add id: 71 time: '2023-07-31T04:44:40.0000000+00:00' +- author: Quartug + changes: + - message: "\u041D\u043E\u0432\u0430\u044F \u0442\u0435\u0445\u043D\u043E\u043B\u043E\ + \u0433\u0438\u044F \"\u0438\u043E\u043D\u043D\u043E\u0439 \u044D\u043A\u0438\ + \u043F\u0438\u0440\u043E\u0432\u043A\u0438\" \u0432 \u043E\u0440\u0443\u0436\ + \u0435\u0439\u043D\u0443\u044E \u0432\u0435\u0442\u043A\u0443 \u0420\u041D\u0414\ + ." + type: Add + - message: "\u0423\u043B\u0443\u0447\u0448\u0435\u043D\u043D\u044B\u0435 \u0438\u043E\ + \u043D\u043D\u044B\u0435 \u0440\u0435\u0437\u0430\u043A\u0438 \u0438 \u0431\u0435\ + \u0437\u0434\u043E\u043D\u043D\u044B\u0435 \u043C\u0435\u0448\u043A\u0438 \u0434\ + \u043B\u044F \u0440\u0443\u0434\u044B \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\ + \u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u0434\u043B\u044F \u043F\ + \u043E\u043A\u0443\u043F\u043A\u0438." + type: Remove + - message: "\u0422\u0435\u043F\u0435\u0440\u044C \u0438\u043E\u043D\u043D\u044B\u0435\ + \ \u0440\u0435\u0437\u0430\u043A\u0438 \u0432\u044B\u043F\u0443\u0441\u043A\u0430\ + \u044E\u0442 \u043E\u0434\u0438\u043D \u0441\u0438\u043B\u044C\u043D\u044B\u0439\ + \ \u0441\u043D\u0430\u0440\u044F\u0434, \u043A\u043E\u0442\u043E\u0440\u044B\ + \u0439 \u043A\u0440\u0443\u0448\u0438\u0442 \u043F\u043E\u0440\u043E\u0434\u0443\ + \ \u043D\u0430 \u0441\u0432\u043E\u0435\u043C \u043F\u0443\u0442\u0438." + type: Tweak + id: 72 + time: '2023-08-03T17:12:24.0000000+00:00' From c1d677ea9ff02483baf9d64101a855e812540979 Mon Sep 17 00:00:00 2001 From: Vordenburg <114301317+Vordenburg@users.noreply.github.com> Date: Thu, 3 Aug 2023 13:58:08 -0400 Subject: [PATCH 32/37] Remove extraneous debug log from PickRule (#18619) --- Content.Server/GameTicking/Rules/SecretRuleSystem.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Content.Server/GameTicking/Rules/SecretRuleSystem.cs b/Content.Server/GameTicking/Rules/SecretRuleSystem.cs index 8cf09595812106..835fddc9f54cc2 100644 --- a/Content.Server/GameTicking/Rules/SecretRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/SecretRuleSystem.cs @@ -38,7 +38,6 @@ private void PickRule(SecretRuleComponent component) var rules = _prototypeManager.Index(preset).Rules; foreach (var rule in rules) { - Logger.Debug($"what the fuck, {rule}"); GameTicker.StartGameRule(rule, out var ruleEnt); component.AdditionalGameRules.Add(ruleEnt); } From f74c5861f4d770954b371bcf304c1ee1f3735d4d Mon Sep 17 00:00:00 2001 From: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com> Date: Fri, 4 Aug 2023 06:34:51 +1200 Subject: [PATCH 33/37] Try fix test failures (#18620) --- .../Tests/Interaction/InteractionTest.cs | 7 ++++++- .../Tests/Toolshed/ToolshedTest.cs | 12 +++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Content.IntegrationTests/Tests/Interaction/InteractionTest.cs b/Content.IntegrationTests/Tests/Interaction/InteractionTest.cs index f3c2a835ca0666..1ef8c11e0b3975 100644 --- a/Content.IntegrationTests/Tests/Interaction/InteractionTest.cs +++ b/Content.IntegrationTests/Tests/Interaction/InteractionTest.cs @@ -233,9 +233,14 @@ await Server.WaitPost(() => } [TearDown] - public virtual async Task Cleanup() + public async Task TearDownInternal() { await Server.WaitPost(() => MapMan.DeleteMap(MapId)); await PairTracker.CleanReturnAsync(); + await TearDown(); + } + + protected virtual async Task TearDown() + { } } diff --git a/Content.IntegrationTests/Tests/Toolshed/ToolshedTest.cs b/Content.IntegrationTests/Tests/Toolshed/ToolshedTest.cs index 54df7b73355fc8..acec0489066185 100644 --- a/Content.IntegrationTests/Tests/Toolshed/ToolshedTest.cs +++ b/Content.IntegrationTests/Tests/Toolshed/ToolshedTest.cs @@ -11,7 +11,7 @@ namespace Content.IntegrationTests.Tests.Toolshed; [TestFixture] -[FixtureLifeCycle(LifeCycle.SingleInstance)] +[FixtureLifeCycle(LifeCycle.InstancePerTestCase)] public abstract class ToolshedTest : IInvocationContext { protected PairTracker PairTracker = default!; @@ -27,13 +27,19 @@ public abstract class ToolshedTest : IInvocationContext protected IInvocationContext? Context = null; [TearDown] - public virtual async Task TearDown() + public async Task TearDownInternal() + { + await PairTracker.CleanReturnAsync(); + await TearDown(); + } + + protected virtual async Task TearDown() { Assert.IsEmpty(_expectedErrors); ClearErrors(); } - [OneTimeSetUp] + [SetUp] public virtual async Task Setup() { PairTracker = await PoolManager.GetServerClient(new PoolSettings {NoClient = NoClient}); From f29e2ec8e5e3b823c1e819fa258bb51517fefe05 Mon Sep 17 00:00:00 2001 From: MilenVolf Date: Thu, 3 Aug 2023 22:15:23 +0300 Subject: [PATCH 34/37] Localization --- .../ru-RU/administration/admin-verbs.ftl | 4 +- .../entities/objects/tools/lantern.ftl | 12 +--- .../structures/wallmounts/signs/posters.ftl | 60 +++++++++---------- 3 files changed, 35 insertions(+), 41 deletions(-) diff --git a/Resources/Locale/ru-RU/administration/admin-verbs.ftl b/Resources/Locale/ru-RU/administration/admin-verbs.ftl index 3e6f626cbec4dd..309cca92715efd 100644 --- a/Resources/Locale/ru-RU/administration/admin-verbs.ftl +++ b/Resources/Locale/ru-RU/administration/admin-verbs.ftl @@ -7,5 +7,5 @@ admin-verbs-teleport-to = Телепортироваться к admin-verbs-teleport-here = Телепортировать сюда admin-verbs-freeze = Заморозить admin-verbs-unfreeze = Разморозить -toolshed-verb-mark = Mark -toolshed-verb-mark-description = Places this entity into the $marked variable, a list of entities, replacing it's prior value. +toolshed-verb-mark = Отметить +toolshed-verb-mark-description = Помещает данную сущность в переменную $marked, список сущностей, заменяя её предыдущее значение. diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/tools/lantern.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/tools/lantern.ftl index af0726903272e2..00a7a05faff3b1 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/tools/lantern.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/tools/lantern.ftl @@ -1,12 +1,6 @@ -ent-Lantern = lantern - .desc = The holy light guides the way. +ent-Lantern = светильник + .desc = Благословенный свет указывает путь. .suffix = { "" } ent-LanternFlash = { ent-Lantern } - .suffix = Flash + .suffix = Вспышка .desc = { ent-Lantern.desc } -ent-lantern = светильник - .desc = Благословенный свет указывает путь. - .suffix = { "" } -ent-lanternextrabright = сверхъяркий светильник - .desc = Ослепительно. - .suffix = { "" } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/wallmounts/signs/posters.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/wallmounts/signs/posters.ftl index 26c3b007c8f6ac..e01d1ab44e3e3d 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/wallmounts/signs/posters.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/wallmounts/signs/posters.ftl @@ -166,23 +166,23 @@ ent-PosterContrabandRise = Восстань ent-PosterContrabandRevolt = Бунт .desc = Революционная пропаганда, выпущенная Синдикатом. .suffix = { "" } -ent-PosterContrabandMoth = Syndie Moth - Nuclear Operation - .desc = A Syndicate-commissioned poster that uses Syndie Moth™ to tell the viewer to keep the nuclear authentication disk unsecured. "Peace was never an option!" No good employee would listen to this nonsense. +ent-PosterContrabandMoth = Синди-Моль - Ядерная операция + .desc = Плакат, созданный по заказу Синдиката, на котором Синди-Моль™ призывает читателя оставить диск ядерной аутентификации незащищённым. "Мир никогда не был вариантом!" Ни один хороший сотрудник не станет слушать эту чушь. .suffix = { "" } -ent-PosterContrabandCybersun600 = Cybersun: 600 Years Commemorative Poster - .desc = An artistic poster commemorating 600 years of continual business for Cybersun Industries. +ent-PosterContrabandCybersun600 = Cybersun: 600 лет + .desc = Художественный плакат, посвященный 600-летию непрерывной деятельности компании Cybersun Industries. .suffix = { "" } -ent-PosterContrabandDonk = DONK CO. BRAND MICROWAVEABLE FOOD - .desc = DONK CO. BRAND MICROWAVABLE FOOD: MADE BY STARVING COLLEGE STUDENTS, FOR STARVING COLLEGE STUDENTS. +ent-PosterContrabandDonk = DONK CO. ФИРМЕННАЯ РАЗОГРЕВАЕМАЯ ЕДА + .desc = DONK CO. ФИРМЕННАЯ РАЗОГРЕВАЕМАЯ ЕДА: СДЕЛАНО ГОЛОДАЮЩИМИ СТУДЕНТАМИ КОЛЛЕДЖА, ДЛЯ ГОЛОДАЮЩИХ СТУДЕНТОВ КОЛЛЕДЖА. .suffix = { "" } -ent-PosterContrabandEnlistGorlex = Enlist - .desc = Enlist with the Gorlex Marauders today! See the galaxy, kill corpos, get paid! +ent-PosterContrabandEnlistGorlex = Вступай! + .desc = Вступайте в ряды мародёров Горлекса уже сегодня! Повидайте галактику, убивайте корпорации, получайте деньги! .suffix = { "" } -ent-PosterContrabandInterdyne = Interdyne Pharmaceutics: For the Health of Humankind - .desc = An advertisement for Interdyne Pharmaceutics' GeneClean clinics. 'Become the master of your own body!' +ent-PosterContrabandInterdyne = Interdyne Pharmaceutics: Для здоровья человечества + .desc = Реклама клиник GeneClean компании Interdyne Pharmaceutics. 'Станьте хозяином своего тела!' .suffix = { "" } -ent-PosterContrabandWaffleCorp = Make Mine a Waffle Corp: Fine Rifles, Economic Prices - .desc = An old advertisement for Waffle Corp rifles. 'Better weapons, lower prices!' +ent-PosterContrabandWaffleCorp = Make Mine a Waffle Corp: Отличные винтовки, выгодные цены + .desc = Старая реклама винтовок Waffle Corp. 'Лучшее оружие, низкие цены!' .suffix = { "" } ent-PosterLegitHereForYourSafety = Здесь для вашей безопасности .desc = Плакат, восхваляющий службу безопасности станции. @@ -310,32 +310,32 @@ ent-PosterLegitMime = Мим Постмодерн ent-PosterLegitCarpMount = Настенный Карп .desc = Карпе диэм! .suffix = { "" } -ent-PosterLegitSafetyMothDelam = Safety Moth - Delamination Safety Precautions - .desc = This informational poster uses Safety Moth™ to tell the viewer to hide in lockers when the Supermatter Crystal has delaminated, to prevent hallucinations. Evacuating might be a better strategy. +ent-PosterLegitSafetyMothDelam = Предосторожная Моль - меры предосторожности при расслаивании + .desc = Этот информационный плакат использует Предосторожную Моль™ , чтобы рассказать читателям о необходимости прятаться в шкафах, когда кристалл суперматерии расслаивается, во избежание галлюцинаций. Лучшей стратегией может быть эвакуация. .suffix = { "" } -ent-PosterLegitSafetyMothEpi = Safety Moth - Epinephrine - .desc = This informational poster uses Safety Moth™ to inform the viewer to help injured/deceased crewmen with their epinephrine injectors. "Prevent organ rot with this one simple trick!" +ent-PosterLegitSafetyMothEpi = Предосторожная Моль - Эпинефрин + .desc = Этот информационный плакат использует Предосторожную Моль™ для информирования читателей о необходимости помочь раненым/погибшим членам экипажа с помощью инъекторов с эпинефрином. "Предотвратите гниение органов с помощью одного простого приёма!" .suffix = { "" } -ent-PosterLegitSafetyMothHardhat = Safety Moth - Hardhats - .desc = This informational poster uses Safety Moth™ to tell the viewer to wear hardhats in cautious areas. "It's like a lamp for your head!" +ent-PosterLegitSafetyMothHardhat = Предосторожная Моль - Каски + .desc = Этот информационный плакат использует Предосторожную Моль™, чтобы рассказать читателям о необходимости ношения касок в зонах повышенной опасности. "Это как лампа для головы!" .suffix = { "" } -ent-PosterLegitSafetyMothMeth = Safety Moth - Methamphetamine - .desc = This informational poster uses Safety Moth™ to tell the viewer to seek CMO approval before cooking methamphetamine. "Stay close to the target temperature, and never go over!" ...You shouldn't ever be making this. +ent-PosterLegitSafetyMothMeth = Предосторожная Моль - Метамфетамин + .desc = Этот информационный плакат использует Предосторожную Моль™, чтобы предупредить читателей о необходимости получения разрешения ГВ перед приготовлением метамфетамина. "Держитесь ближе к заданной температуре и никогда не превышайте ее!" ...Вы никогда не должны готовить это. .suffix = { "" } -ent-PosterLegitSafetyMothPiping = Safety Moth - Piping - .desc = This informational poster uses Safety Moth™ to tell atmospheric technicians correct types of piping to be used. "Pipes, not Pumps! Proper pipe placement prevents poor performance!" +ent-PosterLegitSafetyMothPiping = Предосторожная Моль - Трубопровод + .desc = Этот информационный плакат использует Предосторожную Моль™, чтобы рассказать атмосферным техникам о правильных типах используемых трубопроводов. "Трубы, а не насосы! Правильное размещение труб предотвращает низкую производительность!" .suffix = { "" } -ent-PosterLegitVacation = Nanotrasen Corporate Perks: Vacation - .desc = This informational poster provides information on some of the prizes available via the NT Corporate Perks program, including a two-week vacation for two on the resort world Idyllus. +ent-PosterLegitVacation = Корпоративные льготы Nanotrasen: Отпуск + .desc = На этом информационном плакате представлена информация о некоторых призах, которые можно получить в рамках программы Корпоративные льготы NT, включая двухнедельный отпуск на двоих на курорте Идиллус. .suffix = { "" } -ent-PosterLegitPeriodicTable = Periodic Table of the Elements - .desc = A periodic table of the elements, from Hydrogen to Oganesson, and everything inbetween. +ent-PosterLegitPeriodicTable = Периодическая таблица элементов + .desc = Периодическая таблица элементов, от Водорода до Оганессона и всего, что между ними. .suffix = { "" } -ent-PosterLegitRenault = Renault Poster - .desc = Yap. +ent-PosterLegitRenault = Плакат Алисы + .desc = Яп. .suffix = { "" } -ent-PosterLegitNTTGC = Nanotrasen Tactical Game Cards - .desc = An advertisement for Nanotrasen's TCG cards: BUY MORE CARDS. +ent-PosterLegitNTTGC = Карты Тактической Игры Nanotrasen + .desc = Реклама карт КТИ от Nanotrasen: ПОКУПАЙТЕ БОЛЬШЕ КАРТ. .suffix = { "" } ent-PosterMapBagel = карта Bagel .desc = Карта станции Bagel. From f7f911feaf568e1b4662da47fdd9fe67148af33c Mon Sep 17 00:00:00 2001 From: MilenVolf Date: Fri, 4 Aug 2023 02:18:21 +0300 Subject: [PATCH 35/37] Sop poster rename --- .../Structures/Wallmounts/Signs/posters.yml | 2 +- .../Structures/Wallmounts/posters.rsi/meta.json | 4 ++-- ...ter57_contraband.png => poster63_contraband.png} | Bin 3 files changed, 3 insertions(+), 3 deletions(-) rename Resources/Textures/Structures/Wallmounts/posters.rsi/{poster57_contraband.png => poster63_contraband.png} (100%) diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/posters.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/posters.yml index 56f2471f6fcd99..a7ea30ce33a632 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/posters.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/posters.yml @@ -544,7 +544,7 @@ description: "A poster encouraging people crew to stop using 'standard operating procedures' because they are inefficient and boring." components: - type: Sprite - state: poster57_contraband + state: poster63_contraband # Legit - type: entity diff --git a/Resources/Textures/Structures/Wallmounts/posters.rsi/meta.json b/Resources/Textures/Structures/Wallmounts/posters.rsi/meta.json index a9c1101cc3b444..1b493768d2dcfc 100644 --- a/Resources/Textures/Structures/Wallmounts/posters.rsi/meta.json +++ b/Resources/Textures/Structures/Wallmounts/posters.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from at commit https://github.com/tgstation/tgstation/commit/f01de25493e2bd2706ef9b0303cb0d7b5e3e471b. poster52_contraband, poster53_contraband and poster54_contraband taken from https://github.com/vgstation-coders/vgstation13/blob/435ed5f2a7926e91cc31abac3a0d47d7e9ad7ed4/icons/obj/posters.dmi. originmap, poster55_contraband, poster56_contraband, poster57_contraband and poster39_legit by discord brainfood#7460. poster59_contraband by discord csqrb#7132 (704678264186077264)", + "copyright": "Taken from at commit https://github.com/tgstation/tgstation/commit/f01de25493e2bd2706ef9b0303cb0d7b5e3e471b. poster52_contraband, poster53_contraband and poster54_contraband taken from https://github.com/vgstation-coders/vgstation13/blob/435ed5f2a7926e91cc31abac3a0d47d7e9ad7ed4/icons/obj/posters.dmi. originmap, poster55_contraband, poster56_contraband, poster57_contraband and poster39_legit by discord brainfood#7460. poster63_contraband by discord csqrb#7132 (704678264186077264)", "size":{ "x": 32, @@ -469,7 +469,7 @@ ] }, { - "name": "poster57_contraband" + "name": "poster63_contraband" } ] } diff --git a/Resources/Textures/Structures/Wallmounts/posters.rsi/poster57_contraband.png b/Resources/Textures/Structures/Wallmounts/posters.rsi/poster63_contraband.png similarity index 100% rename from Resources/Textures/Structures/Wallmounts/posters.rsi/poster57_contraband.png rename to Resources/Textures/Structures/Wallmounts/posters.rsi/poster63_contraband.png From 65278bf2cf9034d19567b2913463dad4f953af3a Mon Sep 17 00:00:00 2001 From: Mr0maks Date: Sat, 5 Aug 2023 12:15:18 +0500 Subject: [PATCH 36/37] Fix locale --- Resources/Locale/ru-RU/components/storage-component.ftl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Locale/ru-RU/components/storage-component.ftl b/Resources/Locale/ru-RU/components/storage-component.ftl index 21e29b0fe6b78f..2562f0dcc022a4 100644 --- a/Resources/Locale/ru-RU/components/storage-component.ftl +++ b/Resources/Locale/ru-RU/components/storage-component.ftl @@ -3,7 +3,7 @@ comp-storage-cant-insert = Невозможно поместить. comp-storage-insufficient-capacity = Недостаточная вместимость. comp-storage-invalid-container = Неправильный контейнер для этого предмета. comp-storage-anchored-failure = Невозможно поместить закрепленный предмет. -comp-storage-cant-drop = Вы не можете отпустить { entity }! +comp-storage-cant-drop = Вы не можете отпустить { $entity }! comp-storage-window-title = Предмет хранилище comp-storage-window-volume = Занято: { $usedVolume }/{ $maxVolume }, предметов: { $itemCount } comp-storage-window-volume-unlimited = Предметов: { $itemCount } From 4ea0bc56241e0aac730dd0c0c4faa9aea50efb00 Mon Sep 17 00:00:00 2001 From: MilenVolf Date: Sat, 5 Aug 2023 09:55:21 +0000 Subject: [PATCH 37/37] Moths wings sprites fix --- .../Customization/moth_wings.rsi/aphid.png | Bin 3073 -> 1591 bytes .../moth_wings.rsi/blackstriped.png | Bin 3361 -> 1832 bytes .../moth_wings.rsi/bushyblack.png | Bin 3779 -> 2400 bytes .../Customization/moth_wings.rsi/charred.png | Bin 4110 -> 2522 bytes .../Mobs/Customization/moth_wings.rsi/fan.png | Bin 3374 -> 1831 bytes .../Customization/moth_wings.rsi/fanpink.png | Bin 3610 -> 2031 bytes .../Customization/moth_wings.rsi/feather.png | Bin 3261 -> 1933 bytes .../Customization/moth_wings.rsi/holoblue.png | Bin 3757 -> 2110 bytes .../Customization/moth_wings.rsi/holored.png | Bin 3748 -> 2096 bytes .../Customization/moth_wings.rsi/ladybug.png | Bin 4271 -> 3291 bytes .../Customization/moth_wings.rsi/meta.json | 4 ++-- .../Customization/moth_wings.rsi/normal.png | Bin 3470 -> 1855 bytes .../Customization/moth_wings.rsi/pieidk.png | Bin 3749 -> 2247 bytes .../moth_wings.rsi/pinkstriped.png | Bin 3505 -> 2030 bytes .../moth_wings.rsi/piratecape.png | Bin 3881 -> 2183 bytes .../moth_wings.rsi/pirategold.png | Bin 3976 -> 2074 bytes .../Customization/moth_wings.rsi/pointy.png | Bin 3042 -> 1473 bytes .../Customization/moth_wings.rsi/psyho.png | Bin 3508 -> 2001 bytes .../moth_wings.rsi/royalpurple.png | Bin 3677 -> 2045 bytes .../Customization/moth_wings.rsi/shulker.png | Bin 3661 -> 2249 bytes .../Customization/moth_wings.rsi/squigly.png | Bin 3257 -> 1788 bytes .../moth_wings.rsi/squiglygreen.png | Bin 3568 -> 2027 bytes .../Customization/moth_wings.rsi/stared.png | Bin 3310 -> 1808 bytes .../moth_wings.rsi/termalstripes.png | Bin 4201 -> 2494 bytes .../Customization/moth_wings.rsi/woodland.png | Bin 4050 -> 2266 bytes 25 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/aphid.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/aphid.png index a5565696dcb1a072e4b8dfec3a4e0d7595aa5033..c2a0025a380970fecdb286d4883d8f778b956f38 100644 GIT binary patch literal 1591 zcmV-72FUq|P)bC82`<(XfcjM=q9_P3G8JLl9raxQX(xB+DnWDS*olT?MaJ=9zrR!J@*eqJoHf1 zLqU5;k!HEJc9XK?5-^%#7i5ge?p|gO?wft{H}6fNhVJ|z#Bttx-}}D# zz3)xl?*lw|@ZiCNhyN{v7R|f0r8X?m=1E*8P8fcLxDEj4!2i-T%wVHsakq%q;k}c2hk( zh>{<`e=PWv{S8;**8m*611!$ZpgnSm`{@H5448cOgejt|?N~rReexkrMxrrnm5PW& zV*n0~CX5VW=(yag`K&*-l0+B?BE z0Ce=|EXxAAJ@2+e_ltM;0Dx)zZ*COvxmW-Id@dHSxlz>JC+%5S;K%^-#0Q4&2zzA( z1H*S5lb*3%Eti8a2-UVDuna)5zf0{M7(_L6Cd;OGV33;y#6F=h{k^gb@#appWU+8eJ)J60x`7(hp# z{NMoC^8nq>CrV6D!OlLN$jZt#rY9#5@9r@rI8pK=-ra-g$qCEAIoY?(0mcZ@!El1H z9q*d7>nBQnw6=w8v%B5>O7?XDpffK3NWKI5y4eLB$M*ePcf-`=%T~Cy=tT4WB4+2Y~KxOiV2OjQxott!*Kl^9281tH$>M z7W4sP+yFGTYZJ0joDE0LZ*s z!t*z8nSS^@fAdzzyjwDjVI1EIcJ|4Z$6}vsjjZ-989?@10Qh5D!Q-(M*RQ_EV=3V~ zzof0Vi&r~&y6fx%!0kt4T=s828WTnUclJl_-c(2K-mK{n7tff-ZQp|j4<0;t@ZiCN z6AoJic7r3EQ#v)S7JmQr(4}x5R5K@TX)Gv*uvb`aG!>I1V#OKBa2d=88AGg{$9P!4g` z2rx6??1f7R$YEsHRy9E~(KjTVznsttCXNcEDC7L)gjSmniN=s!TSY()0tg(Dh_%ja&C0 z;^~8Xx*CCoMm9;#u|k9h6-K?S(&_GTz<8nz9Ec$RRHtRY!~iFKz8>IIBTxwy1Hh}c z)&qFN7{>|`qOjQM^YsF!8i7j6v?BvZLZJtwb@_UMaZWUAxzu3-D~;YspRWg4)d*Bo z9{`xEG@SJLdVtj&D>1;d4cck+qU5*K=j#DP9`79(G}Qj73Z z0su@&(Fn&PDSD84b)1H=M!+hG8(|87)f*L$K3@+QothO|+d?Xl#hu<@Z5cpo^t}3f pJ%Fwe;H^*i>h$!l%^wf7#6QY>m?$0kG?D-S002ovPDHLkV1id50HFW? literal 3073 zcmbtWdpwkB8-5)lWod*@vC~M~GUk}m7&AE^a!L-PR5Qk4!pxW%8Pw1=R2!+7Ela80 zay~_AbwFW|uT&0`Qxp+4WlJoE?;Yu@uigFQ+kJn}>Ajxox$paWe$V~9?=eqz$JHx! zRssO9+S$p@3+xl5RY?(S>j;zDHgREeFCT=J48I~9dfA{qfoe|0$qM!1Ux$^80Tf@u<}c{!omWH!XPmiV~}CYiD7UlJYxn&f7yT?jYDPASzJ1k0hJo01Tv$zQl-oBN3i~D zmBCrwA8@CTJPHd528smDfQoUpY#N2jWP3B2;e;JgfgCP{L8U=K)jg3cs$-yI~ z&OUSgLC$BupG8CC(Lag&pKzozALEgZarR*2OJj3DT?7;cgTf>K0OOYsPdbklPO_s% z&=^Z(G{$_H`{m4MeE+}Xe>U^?G;-;|f1y!2^HHO8jB}2lgwXuxLEKQnQq*69_)mZ< zjS=!k+A{iqNAjX^nBh^M#sD)g8cekeyS!NdSnIb?M@l>ges`(R5|VP`6U$X;2D?C45Si=f^auF%3&pBxD%mZK$76rc_)SBB^lVop zA>e?>Z$PV&s4U=jbIydTvfiZl8Qq-5i@BV(eKoxog4s0=guu-*kNWI7tLH#YJ;wP(w z5?$R4@vo=-yYxzfR^^uhcO^+~7d79Hw{{?_372ah>q6fzD4Z#6&)TXOu_=jfE|Z9B zGz>M(9lhE(Tjic~iNGIXU74i?rL}ZB4_?D0e7voOoP72mN z7`U{jM)Oc|9{7Ph+&YuybtS|r?!dX6Q!erOst-xV8B zx_A9qq&n2JdP|e?SpSNlhkI|xL0$CVhs^I>Nqs6FO*fHLTFvr`Q$=f@?5u+m9%h-? z4?k^svoE*PGOfD8)_#j;rpV=TjrWSYX|i2%fS#(P|GW}2exBAQu6>u=U;e_#uyFsc zMfMQuqm8+*!;L2A0}qd$Di!`d_UNReP0A@RFf`~P*Y%ImiO3XzpX&O3%`-R7FI-2A z=1Yt=khxyRrm(MX&#Ag@BTAX=do)SLVu&Re=CAh_oRrN&|(d$>5n&w z*nf66{OzmdrKzloZcoIG+{Zm8u4=fMo>pOrI$qe(*wfv-u{mDTN*KJxA&q#!DT{Q* zfnP8_ysu}g@DSUuc2jgl=VIW&+i7)e=v!-?xZB2N9D2zY=4C7MLdR2`}EI-z$BIoM@y-3I(gR3S$PwPXT2OW5v!^kgq zj`iJYd3Ud2-hGk1k;);ZyrD+{hanFY3#)g>unmGEf%?9v*5R_N(Nh9J^Uld4rCIK_ zJ1;dxLk^J-7^EewRnFn055)oXrwk=InInmJu(`+KT|tlyw!S5(Gjc;yy>bqhGB;qG z@)y!5_q(H>)x?)-_&4mp-qVzE`q}1tt~?{2?ZJ~=)+#yDm332dQ?_nQDOvE#ajm3^ z(0@M%iueYEyUM7A3S_mbd=rda*)Ok&+F+Y!eh2R8JO&6V&DR#xH*{TNAN^GjSMQo` z4EHH-I_v1Q;$aHvmfhsP`WHuzD0cKtnZVOcyir$4-17zQ6M(iJx=Q}CtdJ9M<$Eo+ zg1K)vz}-b&=Xl_h{z_}Sj9PcPA4*u}u45K_H!Xp5aRY6bCGr>sR_Vo+-^%d3PHB50 z1`Y;@NcFDuF7sX(m*>Fbn0QE?GvD+qaBACy?toN-zD=0ZRMNVTNSA*poHkEbrE>&R zU)CnvJQaCRxK-Z)T~}z;VrkeX^X_Htw}#0Z+%5ZpGp&i zc%RJKGGB`*xIl?K*m4OHW??-~xN!bOz0p03ZO;K$V^jPIa-Esk*{5^U=X4E!l3CTT z{dmFeo7={>-;k@Wb5Hd9Bp)Hwo<8_O9^F&kls*Ccs4Ws#EId89;`HKJ z-rNJBPVk)VX8xu#`rKsGk()@d_pm?0BQ;od6Z!uuoHMnHHZShB)vW2Ukp84Q+q>J9 I*pR>b4=9iU7XSbN diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/blackstriped.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/blackstriped.png index 99b1960289c4c8a77e98529523388cbd14bc2001..7f6f48881aa0411097a435f5f3e3fd36167a3f06 100644 GIT binary patch literal 1832 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 diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/bushyblack.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/bushyblack.png index 459bbe228931b441bccff5d4bc89bc3ed9cd8e3f..967be267d9b0a5c4d6eaad7048bae4f5044adffe 100644 GIT binary patch literal 2400 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 diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/charred.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/charred.png index 0f32d8ece285ed2f7effb4f854f8bce4dba463aa..c2da6f6d1e9ac41c91e02e12f8c0c9e90cc1e42e 100644 GIT binary patch literal 2522 zcmV<02_^Q4P)a@LUI~^Mz+Y+Mf z>fKe^*}Kyj@cWR-E<#mRSeAt|XU;TaAJf2ul;b!YI(UfQ>iJS~^IF31c_Us+mBC;$~x62K$+);!mA?nZEbl z2UspHqfKsu+wF$rlVIC6+-^6tqJ~fZ`6()u3Jk-5#Z+CkY>9xj5d#DJKU!GG zr0%^ZLFVQbAj>i=%L32yh(sg!@WT(mb3DS~5CC9qZvKBq09lr)D2nj;e5h6`AcTR( z;{nUEU>F9|Gt&@w0ZykAKFN!b(NQG3yOGIcFg`J{;ri+hf_H;cCts$bD1uUo+1XjJ zEC-)oLa|tcWm$-Ci=$L3!Rf4R`(&~kav*@&*;y!x0$G+f49InRz|I{z=;s$NZrHxP zy`3&BEHuTlR-V3TnqU|PvMfW_b%+iT48yGMd5_0~f&KeXSX##A%a;KFnx;WF49v~V zt!vAg9&oLCU0q$25Q0P^v96-waG0_zTbJ_n($n2jwr!iTEK5~Yg{rC$og!wh&VuK8 zTGWcj<#YJ^C+Bf~co>8b7^Vr+G@)tQhPKqT1uB&a^7%Ym&h_6gUauDnAqWP8tG{hl z3|W?G^8RkaFmwb00gEBT_Ikb4=kpnzUCRG3CZiV z0)aqvy?NFYAQ%iH7L8H>NT<_8QG&R%!E0`8Y>bGah|$qe0st?)^bGE1Hj}+W7zu?~Q52c^`FTPq1&>&K03k(L4K4ui;GR8o86Jy80RT^Y=W$vn6cCQK*VXSv1?|;v_ww)}?G#n1o za5zk#KYr|{xn4Z+!scRtKM=rcufMUX-iZ@0)b*jG>pI3KC*ku+@VMO=8cfyG?Iwl> zQ*gUnM3TH@d~y=HuEQ`4unc3}*p^`!5JGNg=g(ewb#rfl8#})8%Byt+%tSm6N-1)= zJXnT7Zc(kL+fC#aRl+h1$>s8(lp+z2!!QiwRn@$%T`ouNiO0clY(sXg(DZ{)c5x8^ zU>F9Xkr>`N{qCmr;5(<^B|CQXScYL-H|}SjT@Y_<`_Z{`THA8g8DXz!i}?MEJd zs02WG=IN(sYX5%P5sR(+Zf}G;@hwnL6a|^ZOj8ESWHTfhi3k8HzyHG@Nhs8A5{7B$ z(&Mg>>`pet1DZ8Xixw?fv}nb^ioBofr)_TaI{9z`yfqq<=dP19_7K=+06BBbwg{7(_Npxsv=#FoVp`jrvNfNB8B^C+=PEnM$L?RIj2HSA; z>O5GM1sbrTE&+OyNxHnejD>{-4F6*o)vARhbqODT{PAB#M@N5te)#+^=C00V$XAeT zCLkzjCFJrs7`lOUI*nps8I@`k9&fE~fMr>nI{9*4GSpKc!sPOK005;Fnx^5er%%H) zO%#j8<139OCMRNvMB?b?mQ_E6r2?weDlT2Rw5qls@U*a`!t3+F@AqSVZocmEHhg6J z`}^tC)ECeV9RT2PI8d!t?MEJdn0fopf8G+8kO0u%zmEok3JhIGI{hWedKtQ|BbUo< zE-$b`sZ<6p@NhbvxF?Z-$L+yGhYxS5#REV#lU1|X3}$Dq!m=z-N+F6OetPQU=Ci|I zua|0?hJfD>IS@c1k-$TT4}xK~!rSjZJn{Gun=p)!$z%Znl*%PkDir|0Z+`o`b^C5u zA7B_d4ATV1aro@Q1$=UT7=Jr^7TwEE2U)AS;z&?d=NufdI0ZECimvWqSHHSV7?N=-0mnpjM+Gx*W#H<+ZEZ))ioO_Nr)@ zCJ`JC3qWOhW`+m?zh%?YiV`$a0|R*N^*0=Q_w0ti3%4JvJs!`Ni}-awo_*$Mbz4Wr kf1~Zqqg7kbqQ!>%3;Q+gluu8hiU0rr07*qoM6N<$f@glpwEzGB literal 4110 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 diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/fan.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/fan.png index 25d46b8942705d427389d4c3949fe271347ad319..08bb0672fb2d198e28988d90339a74ef765b4a0c 100644 GIT binary patch literal 1831 zcmV+?2iW+DP)bC9R9NGMNy(TXmnsVf*2AIM%^XUf=CV}MB*(BSZHA(XQ3>;F1ap6=w&Z~E?Y1V zyeUmX4$>`+5?VD7Xf{DGWj8kU5H~1#oIPaU+c%RpGjHO*z~%#q^X9$x`}^L!nePYm z&_fSB^w7iq7LL1CpcCw_$5i+D2)(W!pWxoZL`SyR8nn9}Q_Tcf-M=b!*JCOGOiX#< z9PFp<&9e&}RmuQh+Y!Q@iP!rEhT;DH$F_0x_s`VJ^V2IuLsUL%JVEp90-ebJ%8n9! z1H&yL@1Ln`J2Ad*VA#%dw&5O=0JMy4o?Xy(Vtgm^g&lD3VZw1#DQlc?`NuCRYy45A zd?V2Zfb3=tg}nnf2m5h(e%h7=?lB2Rl`^uMIa~AE$^hbo`tb=a&rdaJcaz4)6~7wr zy8yJJ?H-e82IzkSei!13U**r#j*b;38xmlD<_X$Gt=O&WUg-ou20{B<&31g!Ba*!AunlTiO$ zYwM%LR)jLa&;fD9uRecuc%{fbe|6}vla6}%#Q1zVgM2yz&;1aZhb7dHPv{;{|6D`; z_=HBE^aaG6AiM{NM)Rss*CU_KpjvC7T5C`zkPVUSN7>CBHJpK#Rmt_%7kjIfk-qcoCU0W64gLBq%o*}$gLT}UbB5ui6pG# ze{G~lBpSqTzhW1BjGED17SKApi&sgDki zlu-lW5F*haUH8>mLo<&VG#Nm=4*sM z0Z%@85=_s_8pFu{`nKtLSu@T`zTqBFtu;W5u)C&7|0QKvqo5sBYYl1yyCLe+pVv4WhVH!1TPVISZJ{*JJ=mAA)bj|MPt9%ipHLdHvY&y!rJoyDyqaX8m~cw=IF< zPJ!;C`E&+GYoB=1D5Bn3AB{pF9HLRMf?htWv{Cx=?z357CZ9UMBe_uADRjJMtx&Bs zP~0iN=zt?C-{`<&)NUo8I^glzJICX-ciiXv_Um0pqeIBPd_tp5-n7^^uI$Svsx&%; z?bo|pCCp@)-P_vOriz<6ko<0KYzxb8I|q0q7d=x)qCxywZ*nIS!SuY0R3b@FXClzc z*Td+9$7>gn-{t_~A>P`yIt&@zH;SxTU!MGYI)gyC_0q#eoNc!&-|!qj)?|6V1Zi}L z9&fGi^u-5r}!t{>Y&4?XnILk~Ula4ldNp>9Jby4m6e zch_U8JU4^g^_Z$>i0=~h_s>*TH#=i(Ilw(Wg67!;L(;`lp$`KLR zDv%&T0KhrekNW2t<>+pb9p>pWG35mSN{+I674{B1;#b|{Bhtl&S3OW{$q~$#XMskB=a(_*D^lT*v`>1i~Ry6G=^)-PY5getZHzTL%qA(BsLgz5u?mOzVh&%q;=C}UH#_zHX52!umO zC6f5k%+N2(0fBL*6(UBTle#qnc(|7O06pg}%DvwvSl#S=h2|~+!qRSSY@?b;f>)^2 z&0y;T07{W_H$>AtfaT~}ex7ji*Q|HPAaw$~8Ub7N0RW$)2ekbBP0?pp0jnF!Cw5#P zKqgaSD?er50;}B<>$KrY>fb*tq!wsDsLp`25RWLsTLH=Y6s z^tzGy0G3YIgL@D%;^+wv-;G&7bmF}ebW|TeCgt(-b_yPD3y;^{Ie0Y!-59K{!ax6N V8JAp)R)YWl002ovPDHLkV1iuKcVYkl literal 3374 zcmc&%c{tST9{W~4Z|I(Teox0ANSrr?)!Y-<@b3%?{|5h@ArM4-vv7x3t4GJ zX#fCZtt`zQM050Vms~9x>(D+eqDd;$(wzhVGV7N+=v6;$0RUFr#XGr?-K?=lKVpck zk3Z2Dr%Me96|n&Tg`tM}_#MZQA-=c(Ji%B+1%mfCR&h13hFgd3!v*3kBf@Zw5jIYK z5y$Jtg@mLDOxYXFcruOg?!vt#dO&i#Le0cvX2;s zgBa-U((!}C5fD9H_)61;EKjf%(SgH}D+2k_RM4m}|6@o8^8;TjiN1_g0?Fi1Bn(EO zP;@E!y2P*mn4Xc55e$xiArLwuh7Rczf$T%oA&^wRC@{y7{KD{|WIT}oSyt%dOAIG3 zNBYJ8kkEf=C6K<{kLadgRG(0o$WfR`jVNN|zA&5*nHc6oBnG1$!+l9)AA%naB2tbI zAmGAKupc=n*s`(jjDHU2JK(Rp!BO$wg8VmkmUq7Tv%E&`7Y#1BFp?-PG#r6|qhNo6 zQ7ecYo{9^0GslPE2rFbg#GWtQA9udvyZzIl9y7f>E^AM@U+#;FV3DXBna>XBem`V;c#GUGriyqVI8vC z%X;BbqC5w)v%Dy2!+~Zst3Wj-rcYt`58uwF?WK5n4)l=%23q)!o>lU*G5iHIHWehig!Ut@bW%mx;6MgvEtIJ9@6-%wTyrneq~xhn&5 zgQrtENd^^7;rm@*F7EkM5--_Vx9AlJc>IB-;r;b`?8P#po;o7C8tghpl=N#et+Bf> zYEq^twcB|VC~$OJDZp2k2Ox^c+a@{UC-cuy>Q*f=+aka?uCL2Icr&WhqNTHT@4CKDb}dx_7ixxZ@wkL8*-jwQhhyEixl1 zYY)S75BYjZ<@g^v5%AIV;I@MBq1%_52l*d294%;&Q_z%uEq)KE5M(S=M()skvpquS zt*+8kC61aIOB!G#M|Ei2v4@^^oB!q2>ZMKUn6=I+ZTe7#PHwi~x>0w_l$4@+Av*oU zv|i1n$M-wh_88vGx4yREM?a$RfHU7zcSYf~cFv3(BdS8+=b<>l6LU8<5!*8nwEdpv zWTdK>er{sGbN+d^qpD!20dy_x=3GJ5ZO^1P+F%nQ>F$xz_lV-Y>V@B#k!=s(H_-Cltc*Y9B8^K6*7X ziZ`k=GLk({zxrw$W9)rGwe}KQLMz+$!z!1kgd>l3$n0>v=%Ju z(9Z+xDvo9tXRr$J-x`B{H)^)??67Kia7X)ZdT`Hv8|-tIyI7`qC8ej1)~0-la59&j zH*-|t(Zn-5w^Bjn8lp4cfQb?EE!Zu3n5wt$RWNS5u$%xFF z5~dY#_B=pvqDrN+Ls_(x%$zKQmZ zlVySmOoV^#S;L#H2ej&F(93xpZQ*2opH>661SW5}tEBhXKqg>UyE-Xo>jM3Gwk?b7 zGF#kcleCL4Vb3`Elk~VmSCeKAeW1OOFQY0uDy?bIV@tZE1WhAxQ;#>aCzUDR7nVr@ zei?b`gr46FW_O=WoulqPczvMUbU%k}zQkf*%ADY_PYlT)aBr@g7`avJ4DyCccUo=U zlom->(_?iWbn#@G?JWZf+7Fg=^#=08=Wl3Sze-f3Xcu}Y@a{u_KK;fU-bz847k}b! z6&75lhv*OUQcC-acqB-DSyy{dn=>p;#kPdboGZ0_{*4h+IIXb@U4E@9 z^)BCW>G5EH*{E|l#YxWaMQmfIKcaA=-&kvHs&u+kR?4)1@5kOjPA6 z9#0W++M9OydJu z-cd2T8b}?ihgp7G8J%d@!C*&n*i{p4l~U=^{|C95VRCUx)#&qrn=!=!F=sGQ?++(m zi~onCA>Hrls>G&alSz$%=~K21hL=X(@ELFAVQD$d=MIe^<1Q0}^rza=qs*Guo4H&z zzmIw65HRzqC((}eBp*?1FV<&E8lz4oN^S0?@P@C~Hy5rwDyfP&7(CL=Wp$M;-FxS= z%D#!bMhygtv5H>>_t@%LLsp{UmFry-EsjENqqyPf;McZ=ZK6lqfuF|6)*hBZIhm&p z8$C{uU)9x~ed}^;G&^Oger+cs*+L9;-hEBM<-|kk;3B!~+Do=htt^iF*4c=5YI3(D zl5$}RYly9JNB37Y_lQTIsBdydMk2EWuNmXrQbXhYRZm`M#BGXo{OFyYMFl@;A`a+b z;aS{<$y~k@sw4D_*N0^`-eqh1?U;2dLob`N#Pm5+J33 zdEA_7Vn8=n5Q&MqExt#Hjn;{tvushAfB&mSv;65P?rt9Qj#P99Gsaq&U(`G904~)# zqpVF*lDsPg$y8S!dsm3+tmH5o&Y{9tCU+!(hV_V~ISNZqU~<8A{+!(1+Ks06XLQc& zidRl=knxu{F`9V%NdAoPQuCHR58bo^imk)i#LAx7u$O^a8mh5tw~SWghl2uV^#jeC zHRZ+R_12lVHx@rT#kkOYYiN_&wzyj@BjSe@Os-*}ihP)}Xo3LZb!V?^hdLIZ7W?8>BRACIWW1 zZ0@k=#a+`&AMRYd=q+JE8#0Xe)5{Ph@dA2dXM!7rBBSK zM)Vw>KB54eN&2L=PNHGlD<;jvw~{$8rgEbR8xSq3x&Prvf@yZnBoik%pV` zjbxvKic8U|J3M9xGZR6p7q)MJgZ=|a2ZJ%74H+IW5(b(x%YQUh`)$n2&AiY46SnH* A^#A|> diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/fanpink.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/fanpink.png index 9934b965a1395e4dd278de6701c4c40613f04398..871509a924ef257dd029993c11826e1ed77c1926 100644 GIT binary patch literal 2031 zcmVILl>e10=;kZ5Rxb9QyzlJgD;6f zpe#59_oA+ERL*;atj?5t*dYG!;sHR- zYdBdhV?X@D1|T?=-DQN0%6ZSR?6i+cjZve-bl~|M%ZAgip%%2bTVs*RU1%57f)>~X zQs6;iQG^=+W|vN5t6FEqAbvHkVRc~zK)NtUtt=@*hM5N>1ya(Sm=W7H^NbzudHD+TWT2%Cv|^{fID$axi~eT>|V8<$RC>or%`+$}0|_D2izm zy>Y{L_l=pe*qAxXvVCK>$rid*t)sEqWTC;!jvM7J4+=xL3KWl?5L$?+oCs(^ExC>B zM}KAuQ(OtF3oEFZCK|gvIG2+l{tu0t@*FUhoBH-nRpbH8npo0B`-8X+npJ!&Aff^1>DNR|LHL;i+NhP*F2Y0KL6Hg#T9FKj~3v1i(rj z0Nlz;srdsQFl6XVc*xN4-GysHi;ly07p^hO*Gx0f3q<%wjS?m+bL`lwxDqBSbAgwm zH2jfekahw9hM`0%OGz&7Y{1{gKTia4{AxkNR<-UQb2~|H4{bP>jjd`u@H#BY{{%1O zH2j1?mTJju9G)7+rHdC+E#T6{i#R+r%-oco=QQkCWkmVu%`*)C_cZ*>0P|SSEL&?C zaxHR29>&XMw%c?*;NKVc>jZj^;!0Sy)-v;0k30*A@HemSKyf8F4I6i4|F=7`zc9s> z(7d|Sbx#t1R|x1(*-nJ5rRe{N(mnP%D`^coF@uZp(>Z|80ct_R@w~P#{@9b*G>YDc zQNmBRZ{o`fS1=3(|3eGC-Vi5{^GNQMsn>AqnWNaQ)`i~7Mfs1wU$_nx^H|Tkhqt{Z z8~}bkNXsAlErio`vv|M{ofA-@Lw%_H0}L?0 z00Rs#zyMu1sP6B>z=7*FCg;43%6V^0&Ut5y#lA7b8Dr7obxU(^s`hvxtHZHu%r2dV z)3DJGMmS?EdQPLGlVu0`1R@ZANg0!K9+3e4he-Y-M9nl0v`HG)$SSD zBCJcQ5t%?A-VBba%;rx63o8dYA_Lst2p%*Sz;BQ!o)jf5WObZ)^HtV{{$=Pc{`>8> zxM$x+t!CndXP?8tp37=oPg7N7$ zanHUD>F$&7UjMa~s7s;;Orz+*1(5B&cG=y@Ty{HOVLC%f2aU#VlTD%!cU0n2TnW=C zdP(0RdK!Q}N|4*DmWD!BM+42SVT4B&|4}?N6+%h6vD?IKr4tTS^fW@x`2boxeRo&$ z8g6tlEq!q82hiegbaE5`)*c@*NzcsS7FjobVfjEJ|K*= zwf0dUNvF6q_4EMh&nvFPIxxWf-h97+pA!h{n^YEKlb{aOZ!C6NQGjod<9UBZP^tD; z2&j1tPG@Y6*LS;G_nW4OHbmrr1V3;T#)whc_owcI1SM_i2J;|Kh&rvth5)$^S(CZH zz~Is20_hgkxmOs(8h~8KvFyO#en*tfQC>laoDiY@{E(qzyIN;|Z{?*xS?niJ*}IjO z0y+;FI-3zloDTr*cT(vAVeq~Aega>mc#si*=qZuJ`2gPS)qyzX&r z`G5haN6+`?`KgV+5@;fXpAm?f4+xwC=CPiE1)M1?dQpp}wslKx1MWeozCX0&Hq$SR znrY%>xr}9Nt*dlLhCp0@UM&QB^Zf*x6A1sW5q?G>3XvzlWos=njiN`Pptw??ob+Qk z?9$KmX9k809ZJ=~vfI7;fWUkJ_1NdJp3ysf__#5b$BD3hVf_b)!Jlp;oZlvUaXtV5 N002ovPDHLkV1kIz-tzze literal 3610 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 diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/feather.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/feather.png index 86476a0e5c557c7b0f84cbbb097ba94b639a1ab4..90f6c3b72bff0f6bec0c24798b7d20f93d55fcfc 100644 GIT binary patch literal 1933 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 diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/holoblue.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/holoblue.png index 2fb50641abc2824a158c4084f2276ea578f8ed4e..fbd388012de338c410fc43a91d907de77dfb3bfe 100644 GIT binary patch literal 2110 zcmV-E2*LM>P)wP z&b-i&cy>H3v*(E7W?R$Y#}p_8yo4bW%#;~fh9c^y{vzp|gixn;Xq)QpkEeTe-+T8x zy{F(vF#SNtx?jI@&OPV8>vs;2M;>|Pkw+f?w{T=zfK1ROhe&zJcJ}+)^;_ul)@P)P ztw~*Sh?o(j>wi#m$sqy&yDN6WSysy0<8$+vnppq<+lH__m|A_y<^nudRi>LaIz2~L zR_{H~Zdm2#m8Xc$%_9^3b#{c8Y=BO0y<=)-L1l!HV$W5DOOhR>Ab*Q>B7{^0_0Es zVryMn9zcz7?fNaOtlm?(-C8PN+kTY%x%UJBWw+gxF6IH+?|}a_Jic}!UP+Hf>qvZ2Rwb~H^hIe6V={U;L*of zd)G_*;BBZ=pZtHjoSL{as~F+UgP0sSZK|W;8L+4MkSdPcuk=`oEA2SX{tnCWsO6{1 zORic-g~jaC+0zYqY#j7F>g?%O^;1s>`1|4Une!VOVBLldsUM9;NObuo(0IgL8NoP* zBQq!C`NMZ^q&`>A16y~%+fax9eg`Gyx9&jr>Uq^T#=p*-Uub|m%?H`33jpqIMR0E` zvLv{6?Ad`noj0We<=5`M7WeOeuWQqKK{|e+0Z1Y_{^=J907O52S21Joq`5hh{cL=4 z{`w6YO{W?11F9Vr8G#4w*Lr~&zs>-Anh%nIzaQ1!R=A(=u$Yc6-?St=9p`?fhq#~c zpxWDtq23Si)LZXc@&cZp?mktDA|elBAb1&ndiiILf#79CK;&Y;B7M8-^;B3?bl0+ z67yl8R01OZO0Pkwgy{5VK&b@xwjylW`4jeRZd<>eO!$9m7)DxtrbIjhIO~-`OS8t@ z$uZ%p=K*KEVu-?GQ+|~PkVHbYUUc~;aC;E|Y#o9CfZL0@ut|LXo#|XHfB4P~rm)dL z$U`+|X;$R{M*PeG(rZV^*?~TF@9HwJ@|Cjtc2FuQ^H!Ht%|oX?g!JlRVJr&ymu7)) z7E`-#70!BPp2k~5{LBC)t||avx2|yP3L^3#sw&Ev7g)yaMLbzmg@`GL#;d)lUk00(k2~Y7Rgkx7ACF8lhaUa^wT_OO`cJ2~sZ``Mx z8->LP$F9Irya{KHcU$5&{&$$O8UuI3`|Dw!ga20bCvSh+JG?Cj__Z;uMXKLAzs>;6 zZIb^`DC;?J!GA1$DBNDe1^+RuTmJ}K3rn-iovlE~4+mSzXdS+vUZZXEKYM(bMD7yR zXZMROr0LWMxe)n+T!?&OdYPePnof<7UEck=wVpjbY&u`W|I?OVk+yS}RBhD#DMbAq zUxy`r)ji-J@4V&!zy@89O=IelA;;7wLx3jMMHu<#1b|dnv>bVi6jxMg*EfWSKRkTW z@$aD%0H-uP09C&Q{VfFrw)peNBab}t$Rm$DOu=V_at&)PTbCRnk-LO+$swZ65N8vk z({qHE&CXm~$X&*~Y?ylHr+x;>D4a2FK1(cU;PbEg$JMeqRW8>%zjI(yB zuoz+Pt?R>ze-V#VSd1`$;Kdk%7h`Drg$ri~`tT|oczhis;6Dw?Rg2)om@e^1Z>@bh&+fhpN-=WV?z%n`~%{x*AL+JU)G`8+saa6YM38Qh6eEX+DX8FTA!!m zkRVyV2MJ}MUTURY$kI*FC_hg~LNxrLLMwwPGi(N-0n+V0O;4R^dM4{{S7V`hPl1z# zs}YcDUQpEsh|YqvXMn2Y#AcE+8{p-%;sGiH(C5AiOSAU#^SJ z0Q5O}v;2H6z^Fz*R3AWfq%aHt-rdde^SJ<{8Uc#T>H`2>jy{*}|3=_t%&0y95a;OA z<>zw&S{XB`Prw_a6S};5y8L`DKqRA9k2gjqbaD$1GJfF1-#^0S$bh5GBtM@k(8}oX owUfQiH?#gfKDRd~<<2Vp2P{uoHU5rym;e9(07*qoM6N<$g3t>Si~s-t literal 3757 zcmcgvc{r5q8Xu7@OC5zaGf2M33^O5OY!f09SyN*$7|V=iMl+eQM%kAlN?A&lNU01W zlk9|$gzTh5WXUpPoS`~(`o8avbIx_0_qw0u{oTLkUY_f|-|KqA%}fmh`FHUH006;b zh6r=^8n`}qx!H3S9M!~L_`D5m2>`&Bf2oLfiTXRQr5~QiYDHAXg7?ZFCJ~-YkJDb*TYH8 zSxO78K~`rU_Cga;AhMSymY`17l-jVV&fc%X5Gl|Gh3KIvrL*n~WMg6m(!=4=AZ73& z1t&#CC`bvcxbYkWtuK%bQBYJ=-w@FEM+&ZicXm-XN9cd|#D3G1aw8JG)gcfPi3BFW zz&N}sL`h9e4WbBzK%ok3h63RNmWU!NUjqJdI3MDArr+cD z^8S}qEaCh8ux|=NMtMWnfkN13*cq$q;n64}4u1-V^MqUYI1-2`tP>imPa{g@ZZ6>W`iCc42l zqW&G!_z4_GV_pAD`;LC&*_fjVI8UGTN`R|EH6R;@e+9qMZ2yY(EBKA}lVyp;5aB=U z{RaQV6>Ss-yR6~tqWRHG@SmNC#myub*VOM|Hk&L!~WJ&bOp6TwE^e5BME{F`hMyu&C30 zb86$Ml=1kJf;CbOM`u2=iLhwBbuByX!r4znOVz5GHuWz7FDC}(YrFBE%A4f- zDTAYgHu(oE<1D;#W_{7{$qHu0tQRQCL2fkQq6sK+Pvhk{Ga8O7i#o4La4(}-rn}i2 zy6|Q(bK|sNoPi!ya)At(Gys4kmsIATaj@c6h2pi5MWfe3p(`m$K}t(}3l|My8Y_X+ zI-Jni0`HoP0XGInNay{w!LRW*ESFUadc>#v2j%ZM^sb?nXn-g+QGmccI=*NRP@*28 zdi?@Gq&>m&(yNyds@EZ8k4RApW6^lvM)|d&&CQJN2?H$wP*XxFN3ypIuNCeM({DEk zak}e%!m=@3=GJ}Hd&y=MQ;TMB8rQygr+48OkxAu-387;3)y+A?j+wNSH~t5Dib|~$ z

2~eDi+9_yXb_V5MoC5?i-A+x}QY{~;t!Aoe5J4mgkuvBXA-bI5u z11nT}$gz}ziLoAZf)A0If|A_l8fPjvn=HIsI?Ux2w@=I#dM z1M@_)yJ_;hM+-c=o~s8nquoOa{S~dFvY@ukn z%qbn))CK?2f0N3{-Zn8eK(`riZ|o{e72}l&nBd-ew5D^qItV({zTiNbo%vMd`!sz- z>1`Cp*cX^Uqr@ilqo&OKdz0b%s@Uzd!+7!5eB*&_l%O$~3!?6PpLOxsbbJ5$yGGTO ztwQ9_vi+I4hiipG#?FF5n7O;O55ZI8Osr>+YdKzK@7-<}`^rd+f38|;QEd(9iJ^Z@ zE3uCa#V=bf9}Ufe_GNBS763_b4!t`}7Vyxs;9a(W1-5)%XdBcMc1*oHKhY%hfQfNj zNV01^6I>kFmF$Odoa~=MCYH6NM)NahUAM$?%2H>~ua07%6Y<*4+CB)$_tRjJml=#kY8q z)6J)|?-8KOWnBeH*```~5g`VKdjNgTB0QC2DY91Ou$zlSVtuMYN^n!!4UVP3A==AM zP48*3(Nqe--FOjouIXr1g9l%Y4Lsqw`D{_moFaqEoqC6)RF zSc*%>MJKd)t`H zDsD+WA_<)Nqc$6KTj!{K;mgVW%m&wg%2TV`)RYgNkN z>x4>3V%ucnWvba>^U06ckKxSv;hvAI>rvMivJ-h!0f@GK)tR`brF$8&_IvjuC3s}H zuUvEXS-I(sm)oK`5D$#~*trm7)gb4B_vQ?%ZFSeqtWaJ)90Mj=M8sNT-)QuyG z##p-WO6*YItPGfRVvrV^&g{PQ`Vs1*Ay_J%TOUz7%DY|q_D&#q6JqP`ckK!n#MCrL zZ9zF4HuK_-JuOv)j(|X*5#p5Cd0gxL;Nm)DP!x> z&Nc5n!os>T0+pS0&$K&^Wn`bYzl(E@OB8)@+N%A_P!MRqGk9m<1KmF)bcf6rk&{uk zo%2y^sUOY3t`3b5w0fN-VD3xM>SK$8Rj7W0%qM1X&N%NOfWE z;Fx%@OmY^}&d=Uk*dY(dNGb3yUOSNql2G8fBamwAJoNU1+Vf|Hk4I<`3b1N~xoY4& z3f;ngkIs=8jy=`sdWwyM*CiqyGtY@{iUPD%>7{OFQ}A}Qq#DX;Pr#V8El*JLRr!=f zfn)nEIUf$JhV$tS9nCX+^4L5DkQ{X8OD`Yyh_&U1=}kqlJ~90#fQLnatocD}jps|3 zb@sTC0r^}zfn0q-w!*;@N77`(t@~H$#hDWvOw5N96}QXkWSd{Sy}IJl^c7a!UL;=1 z^6MxR7<({bw><#HA-@KD*b4Q6R|;s$s*m&UXbdTw)9%qd)Gj9!%6^C)D^hq~ z!SQ^d7iZ(47Zcg5eJuJt%TJ$GynQ5$^`tnk{h+zrvi_iaZ)1Hf)97u*HgV~+osE(S zz)_DVtu`ku>ZzH%z1HfBEF(^BV>M}V&}N{msBpjEr(n=Z1oHW&|FFBYM?{t&G4oC5 Uph~-`>pzsoj+!D0bRB~K32nfSQ2+n{ diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/holored.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/holored.png index bb3fcbcc7dfd75a60f7ee64b084bce79d1afab38..9513d784f6f9379d83c174267f8e7532c9b62278 100644 GIT binary patch literal 2096 zcmV-02+#M4P)55eka%?*@R~{1oM>`A8!B&Mlx->5hn0L-OYrQhiJh$pgR-T= z)?%+43!RraZ5qGC6hjIbjhRylBQ)NS33dfWmcN8XevwVxH5rV8$tJhH`yk)P_j!@@ zJj&b%rawF=e(uXT_uO;Ny?OoziYTIpB8n*D{}!%?tw27AgnLAJRi*a#y~G@i9WUjz z7Dt03;U1AqP_Fg|MI_uK0Cv}Sso1k&faL5Pi_SHitBaRN&d!mK{1PWhY%43{{>lmq*KP>)y`vPS5C!AYuujE`D)(W>a<_;M(ZBjE{^`v8R&zD=Q{1sP=hToSxyz z$cUqP9eIE>!o5V=;;P$i=Hg$e|DHHEa1luFcD2u|d4Tb^cW8jN+K{lG$&5#wDkB#u z6O#IFv#|3^j{z{$ah9XuUjgVgpxWnUd}NfNj_toTeCs)J{M@f; z^#`dB>;=%pd$rHY?RfeGs1NL=)gPoUHVH?6EG|rq<tt5_ zT(0~!pj45+98GG^)o6lUh;*#~<6kr!KEy5rSEC7CKfCfR4RCUQla_S>cKAH(@Of-0 zZtQ#ha=*!&azVS4);_m2UX`!ze1ugk{;eSMK!jDDC*+c^^NpV!__pX7yrjk6C;$03cjL=M zStWp*zuQs2vkbSO3 z6ExyZ=L5(pU*`d9O6);;2bb0bI!S^6OQduj0FcVz1xESH(WJKEOo>p1+Gn1W&I2;Z z*9>qva8R7T+^=i=l+XDX7lC!l+C>02ALHUv^a6k1{|2W52Q7X0l!g3xQY_)pcGfN$ zakGTW6S z-*!{FubQd&g09c-krP7wm6(bzP`a<0Q(YaF^Vxyg|FywOY_0WiD|!b{pn_I^kWgDQ z>M0OvYo^s7#1p9CR`d>AYkhRR`6pZQGu{MMt4XLw;g8;a-KGAj?ec~34(|k3@{KWV zglu;r-(&#kHu66da>DNG@8k@HB~o->e}_j(O0>D=NonqE2btu{xiZb8w!2HVc+9d9N7=im5_ke40# zNcWepYHzO%*^;lj2Q>d>&;=VejhT;<^iM}z{nHVK$#4TvFfsgRU?VKP+;Utz>DgtR zKO>Ct;~ypYL-dC0+y{TDtD@W|WQGtXM z0#LE1lH2hajicL4cGyan-8Jc20ZERkdX0~a+SbL<2m9pgoF-s#dPY~OQn9C!2yAMJ z3~X$Ks?+$$C;;jP*@Z0wwAY42c~zyh_^ysF8gUZ}zpRmyyKB6T-7g==FkGCTp}eY6 zBSs^v@(O6-*IF6v_Y&zHmY&wac476^Ctps|1j*Dy z!aX{6RzEKh`NoS;O`Q(#R9?c1Enx#jvk_eDb0N&dUlA7oAB-k+=n zXs>-*^bQSBAK1(7(JLn6p-^BXPi~K1p+2ye-k|~7YoE?)g{(P1te=wVZbw*U7lOXn zB;#+sMgQyJ2VTH~;OL2V8h-Kut^S}!iK!4dPWp@<&{i7~y+Z@q_japq>tb!qV&oSK zD;=c1t^Q!nsxezP!A$)8+Cxu)W*w}UVaI4&|D-H4Y&L$r5Rk1#K-LFj@`9WmupCWV z^7DoCeOc;atP!x|1*RmZ#=hj})#M^GZozCndR^2Sfgc8{boBvNwS%@i0POMeg#cAg zJ074jK>PactC%O{n4d2MG~zbhRnqr@EOmnuFLr9luM3ZsK-6SdXbDh4CPHKKGp=Rg z#ZK!22_sZ@&&JOe0y5PINaR%?0A`N9knaDPpz4@ceE?W<^tt%?LV!`neCiXlJYeM8 zv+?tV04p7h>oCSYSlk2ZE_S*ml%w^ni7_rrjal;Vg#@b_fwm9E#S3*Itxw&>&VtkX aq2s^6{;fKNll-z*jv~9snTr1b5hp>||?$@F3!$ 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 MGP5(yF?Nmo2Po5xjsO4v diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/ladybug.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/ladybug.png index 346fa53ed88c5b41af3cf27541c4d5926ceca9c7..1af6c2f99c776f123e608713aeafb7deda82fb2b 100644 GIT binary patch literal 3291 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 literal 4271 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 H)2)92Y}SiR diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/meta.json b/Resources/Textures/Mobs/Customization/moth_wings.rsi/meta.json index 440d6ad9c41f75..e436d3c9c6c321 100644 --- a/Resources/Textures/Mobs/Customization/moth_wings.rsi/meta.json +++ b/Resources/Textures/Mobs/Customization/moth_wings.rsi/meta.json @@ -3,8 +3,8 @@ "license": "CC-BY-SA-3.0", "copyright": "https://github.com/tgstation/tgstation/blob/master/icons/mob/species/moth/", "size": { - "x": 64, - "y": 64 + "x": 32, + "y": 32 }, "states": [ { diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/normal.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/normal.png index 511d5c18b7039903e7451e1afec86142e1848087..0f7537ed48e03463be6f223888088c013587f6a6 100644 GIT binary patch literal 1855 zcmV-F2f+A=P)0XurIR@;oRPt%uHtDU&`itN#_2YbH01- znV)ljGRi2Uj55mj-@)YZctUzRgJR@= z=R}Fhs@j~8cMnv)os6%ns&%rQV+ajC06AmR+ZonQ#up>sHUV8XhFmL4aSaLC55KFt z@heO5ec62g2#-xco}GuM+KueaR-P9K4L+S^=aDp^DZ>_pnOVb`g7x-se_}7 z1$A_E1P&UK=vRAsgUF;506^Wz0Mg4bD9H^L1C&n*D9H_^mt&|q82|ueQVM!{gSL)> zDFOP)FCN{rb*}W|oSaAfyq?}5q7fO6aw>5Hq0GJt{z~JbjYi4``05r#d#;<+c zEGVB5K4zkEg}rGR$HE=WF42D!Q3{jK_G4J-M11VkgU<{S|T@?U@3 zQl7@~)65~Ruh|+>*$Yx#sl>113-K(hRN5{ z2wv*awBNaMT;+cW!Ao73d_9f$Tud{b-vzTcU?e{pk@52RBzk&-aMuWVXPdD0aTD$u z0X@AzynH^Hx8r7Bz}^M)tkK}adJ4Y!nmmKd5TA>|S6_p~dWx-KCyZ(YLxbIV%~-?{)`aCFgiXXjtmenq?rJbrJgK;Xi8yc!*2*F=tfeO`e= z^1-!>p*~X*sC{(k>#H!m4Vta*82a<>w12mdM8Eps%{_H^;G9ZvL=ye#@W46s!<&0* zu`gcV6eQ7~XQ)wI8D*4FMj2(4QO2HwQq-l0Vsvwq7?~aksez7mOpkxclMu@33&3<4ePhH3J{0A;5G9qqZqDOWjS2aXCPNC*IUs@+gNC0LGbKeNL| zx*R*v0^nND8~JY0c`}yt*okLX);f> zTT?h;2ez`qlIT~3#yZCC(rgT?iA`L*nmZOsas$Usv^aLZVnD}mWhu^NhsUPaH-^dZz~jeuo+0H2?)sHk9lW*;{X6TD6p z6&1E?1Pay%==1Xc(0autbIyqWrvBfkG*u>8RJTMxbDQ0FZy%(C6n%9ac30Mz=%_0X%E; zB*o|Ffzo^iAdqf+jR4s}Fsu&%v^n}>^Yf*ELNx+_L45$A&7oW6=Sv-SY6STD07nlq tlIT~-wMywh2sl99N;wZ-%DR;-{sW2f;Xmb}hYJ7z002ovPDHLkV1n;gcbWhI literal 3470 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 diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/pieidk.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/pieidk.png index 8879f093644d272a39d84f7af8115493aee92f05..3f26f2f65db03adc985c600e6a60c09a02b9c380 100644 GIT binary patch literal 2247 zcmV;&2srnNP)p)0Y}iNNR&ALYNKfuvx8OZJZ)Y$X1f6D!h@EZX{+OM&H$)(adPZkrUDCfRUy7 zIp6*6ckkS}=Kw9V&_W9>wD6mS@V)~$3FZPm+3V_I-;+`vtMR=PwWZxIu^Cal<8O<( zfKLX1P|y#z=w!cV(>VZ;0oYE&@9dC==f`pX&Wx;g{QjL8IXpkkf^0OX*R_oY0JrEw zDCmdR)nl9AQUZuPo6f;4Iy`_V2QCgU5&*0hC@Fjp@tw?DjY~cLYf}NnwZ0K&$bCBtZ|W8 zf{{@`kyrwOivu;~*$7b5<2xB-(>az5pxXQN$)9fpbtl2q_?|Eq@X3^ALL`=8|MO#W zeIwqm-q%AUmOv=zM|>y4;<+{z!179z{ca}#rWG(Z>}6w#vJ6xoJM@>7@&JJKjkt=O zzy2hc8}`bxeI8bERQBD|@%ot(+2;!Ufl4Aj5K_E()MGK__q(Tm|hsg!v~K6 zKsCN;B^aI`M>d^f6EpxkeDE043!_T%>hS9(AjOp!0DR{4BJunMCT?Ca4SeF}6(pX& zz-L}B`z@Q!Ayt_ptb+K{!Y=@TwD1c=xdSu|0c9Q%6pI#)rv52^9nxyAu90K-<=6!tj}es3V42?I;N)= zMu9>J%PUd#BuF0@*l6(ytj{G+T&k9DDCoyw?g;m8-LN%=@7=l~ALfo!4Vbv( zty=|JexRBNzDKF?)L`w4kzT`%_*DrQa&)8ovdAWrrL`DtOMix_frn_jEs=drXFgWk~4mO63rFypTo0weuylwTH21GS6t z%OXbl-ImVf`L&6NeE$@H(&(kN7`6^2VQDSKl0e4^biElrO8`B0DF{*S008VJvlwum z#paV;OAXk3vWo%dS?ngW002?$VB}`cWg~u|I**8*U8dZ0oG<@+{Hk|>?Sm})f27}y z^l<^D+-tNu&p5 z$`d=gkldG4za{sj+5{C!2wlGnug7J|uNw?oIu=Uo#_|6i0RSHDrwtcFv;+=(coqPV zJ}v-V$|$q*dQAMZ+|@Q1P%38YP!h)aT(aKm?)A8oYb&cjBYxfe06KZB&n451KKaN>g3jojf+N|66~j;$Z{d)y4f&l2Hrsdl6y-#^8WqZ?b0*rP3U{c_EY zlv%?Grmw?%SuTG4NXX=l*fCn^(I)_8az|MF`jJqt+^vFwPfB_G>2GU7QpzI|ODMft zsVsE0!|QRewbcs2NaCt-2&s!XCR+ZobPuZ&=;0<=0D04!FV8K)_T zYQbA%_{NiFXa|-8<~;&#(aFRJetVi^snbpZ4MW}&KwDt+`>FT?fNBMh9VHS=V0|Ob zN{=@#ofgQc0)Y7vNS(OKM3Iv6xH}V6iz0=RsZ3vY5}fVxFqM`{FBJ4+ zc_qqv;eBj8R5)e65=ayY&yVBbgU8jKWfK_c-Ml_e5_L9}g8%{lE0yuDR2DMc@2*SY zMefVN4?Dj|NqIPgHpqn%iifYT_wNj*7e*1?+QFxuA+*c#7m1(qU+Ue%a1u-vU#S{D z((h&h1IbLyu;sKG-xEku1Hj_sJpx8s@qj@BNTTL-b`lq6ediVB#^OHxyMWl)g^_+Y z+lJph$f{yLkvvY|^?4dk<>78+%ezUCJ}#g^=(YO1R-11IXng{D9sx`K0HCVTYr*UDcCBdd0u+;xN5HZ_005iq z_4IjOn}6%58wB1bVB`^~>kk0b8vRN1`DTETM*y(k4*;qfy^%iuPaXS8vmm~cVZH{d z9syMa@EZL|_4#Iio=2drKLAjRp+@?=o>bi|sELj92-xxm0P0;A?TtyBZ&cuofSyl) z_Xrp*+s$8xxp!}-yH}FYNGEtBK$9EqC9twbVQ!b#(dSj#d^4fq6F7B`z^_dg_&jKY<%PG{ocO!a9!W^eb@Cp*L`|^|KI(;|G)op-_P|tQC3LP?OUa`0sw&R zX2*UugeYk7@Kv$pYgT{DbDIhm24o}dNmj~h9_2f}n77z;`BkWoHF&YVLOGDaWXr36D zySzR^mkQ@j_Qq1sAgZ?)fefeW$#3|CbI0p2SRS-Np?K=aA6Z`vkiRwL_f;9(jW1A z`~1r*f&3#s+)RO~Xdf^)P%zgGS25g(ghf+`Bs(I}3t{W$My8+%7%YhE9FHSlNxI-a za&*D#i~Y3tuX26@{wf+Q75}@)e+y^b@>@LXW4H;oIf*5axw;S#C={X#{u8Xbfmq?G zST6@-yf>DxLDqok{NVo4@)O_jZ}~r2{yU8nyvN^YT(|tDaeWLo^G4&aD7-u6EMg<- zKZ3fy1Ljx)?$5Lz=&w8n8!VaV<+r{Q5Qm|<;El;YgTK-o|BCiA_$%#qmOTMaLHy?L z5Aa{4Xk%k=w>5&hX?{CQh~G~lmcTuM{@kOMY+SGe0BlV%Gd^NR<(W*IzUur^@-G=U}S&Loo)iLcxzCRo;WlvKX$_1WMK&5lghDr~~E*akwzqZVFFq-&d z6i3zhZ+o_GaZ2T_@3TP;WQK|?QDUH|`1-M2)RYh@NHV>6<$|fSO%G2}+xu;ULpI~N zqQrBDA=-@#-(w!XejZ}v)OmzRc`4bZ>?1ggfP*jNvtU{Gcy&n==JQ|1Dm0twm#y#N zU4eYL8X;4hMUM9~C5{lQhB!l^7U3w8QsMz(21LHgeR9pug8Q>i1c&5y=PliXhhAeS zfdFq&X}!KFimgTz=lT0Z15A5jeq#2%oja}T26XStjAcgXw*xb~0vU_b_A1q%8qAau zPn4vuu#~3rdut|7^v~90Y!i^}4seW26fNK|WmUHJ0fBPCQ}gIEO#S2SN>(p<1jm$o z7w+P2#02IYc9pAh_Q{?MQlNUsN6t_(QVK5onZ5f()_{sSNbOXYh~;tm zwetC*z#AGyZI|9NzNQ82Fv|LHREL3v)-WEg+5=q?2NNzA6Pue92K2wAF)n7L(L6Kp z<*Vaw=t4JRg|9bS@0g9gacr%*j&4)Zg*?wd@^^H`euX7ku2R(3UA&a(t9~o}lpQ#_ znxmr^_I~vO8<;^IUXDFKzqVlYS>Qs%L;!3mpK@=yK5D9=WCX>e`@EfWZkQdpJ1%G( ze&HSP1pi2o6o1I7%LRcncrCEYNgpi8PsBvw%)=s#$0}5ts}-hkQ1Bno^y&Y9a%eruW4p zR|{*dn1WZdbvX;^Q$_mB9{n1Y@DTlLqi28A<(d!vIWATEWHzTPW#q-!)?inzth0K#_4vV$$3Ej+EJor;VD$e_d;t<#sw=?9Ss zNkD7xY=+Rf%p{4_r4jEV5{4D>*}(9Jz|e_5h>FXB)Cz-2RtM!rP>6yyniV znQtzwd+I>*ja9_NJZAe~;AT1s7v-12lw__g$c-`97P>Tb-X3u4(`3S-x|${}b}?s8 zthwz3p$wu;V9MX3!9?ez&e;U&%r_Rh5^GfM?O|K)Gk1Y<#fSdw`zT}eE{An|t$N@0 zJ3Lj6);!rW$5jUIKbbfj#=3+$b)Ogp5^?Go$YOP9>nE~ptHN%{U7xtaIpE*ZihBW* zDX}EmJtDQ9<`fFnzo&)FIE++j@rXkH&n1k-w_?G3e)012yvBStfxD66Ic8VmV)qES&mCWWj-pb3eNg3I0J1VpkPbCDw`6|R&H&4okiX{{)oG^|QB=N}` zrlzy^53V>$@wcF=T$J5znuwX6y>BF>xXG1z)7Y1`DJHA{HTdjNX)vX3A##`LRi4+z zfX-6I_I(D3xi_s^5(Z|l=euWuSL{^W(sg3Vv8^!`}QqLOI@=24aHpUYg=c(W?Bg@K@}fw znkba4-DRHYrzq|lpSZs{&RX3`9BDovZHHGL2his8;|8k|&kEVfqSNNjEA#Bp zP>7UNtSg@9Z&$0>Z`Hq1r-nSSo;WntDKq#@B#Pp^8ng2#%B z$f2tks;}BZOKX8=t}HqAUVhutjd&6XS{2E8@M)>6^!vxV8mKctbGRN%bgEq7^}LoSvE1E@4<=>i zI821fEhg)ZOYB!qwNw-taI>DiJggrKdDS3!9O=&Ib^FO!{!9Vj=yb{W!`wC~f_V=P z*l}GnM^2Asot0-g)8s2=VqVlx5uJ_T?N)usFYZt)(d4mRntdII?Mt7s@+X U#E{>YxBeq(W`Z<+Wat|HPkgYFr~m)} diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/pinkstriped.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/pinkstriped.png index 60e78e861114b7c09c93b1c19f6f3a153474c690..a13df0472f85a7c8448deec5a72b37916a5769a5 100644 GIT binary patch literal 2030 zcmV7xDZ2&dK>r8_ifAC~403^ZtDA z`<|2Yyg&sNR8T<$75r~e^`;dl26AMO1Uo|P`&cxF@R{93+2UxC92q2Lf~>|D3OO=J z03g^Ag0RBFuBWCGNXL@^;MfswIT0T02x0Wv2+NXQl97aDn`C-2ZYb; zu1d#~DkmsYIl>#Cjwg%GMJwETFpRtMFhsuu!Rt{)fs)NZSm8lBp2V#O!;bcK6amx; zW6>A{uLr5=1O%@KW6@Yijpvb?PC!`UVNsBpPO$66plF5pTr0KV-GNTBA+QbrAP7Rf z4!n#y8Vz^lVJM0M0C+exf}f^-wxv_q-v+w_oy5CrIr|=JX+^Lj#PVJAOHiKYFcys= zHZjWPW#?vXIpOUR=)7p)PaXggnG`c}bGVD80dKtI6Z4-C0f1OJ!LSB&2Rc=i{;Q9^ zv~_#Y&eQH=7xd&4nG_P46o9;Ol22p>k=CPI4~E$o0Jg@vY`LX;TM@9cWjlHN>mv#3-_Jv!Lmr9j9xvQ?sTrbR$5UcdJ&`vp+NF&9id~M)I{M zPmQXpcD)L9pNP6@m+m|}QDB$?l263WmhA)pPW*VP>hZHDIPv2t(^J*X+u5?6P-UD# zd-~KF*|}M`YuxO6B9nr<#*OUUtnPd(`2{IJ3s1PW2kZW9M+67Rnh#qXhx6o}2?7B1 z@6-bW0BjT_t$ZGR`wk(INwL$Xw>mn1erBE--GBb1dQ%hmrVm2L`;Osw-!V+ynIKl- zPqAucJtpr=5W03D*t4q#dv@g=A^F6D)2HC0fSx$N)(k2K@ZOgPhTvN2f@`U(DCOx| zd0+_P-X3fSth1~ITKV2(%fZ*8x@s5t&z~#^Ysn{~|NKc-3jnaSR`N|FVAaZcM2;K) z0F2K}+OeC>iyS#%Sv0Lc4FmE|ckUXu>3nyM8xN;O06^DKdSEr6JJ3nCZR}!?lQaj< z9{&aaP`jkomeRFLYH|DOO#s0D!v|Dj+ctIq2DxY?Umh3&psxHzkbENMXXe=&Z5`2* zuZn<%rbg8Qd0+_sU^B*NCULm`sA}x})f)-_NpZOUD8^?d;SV-5MU3{>LQj6My$uhi zMsV)Zg#v@L2>15j+@%Y6I5mP`dz&r!s=Giso`fI>Y@r|sxP0XjzW97EJ5?*(zIqd1 ze7+Z#uUtZS^Czmk=vx~j=*d5Q_B0OeKge=f9vFfk2-4IMwY{~%7EJ&kP}yDa6i z2%rU|p{WsqARyS@hWn4A0Dz~-4E(`n)no22e>|w-KY{#Xus_(0r^yTe;Qpg1g6(bW z7aT7~3p4rYc#@rHu)R$+pMLV=)KEL}3sQhCzIgG1YGVCrAGYrLSXX(9t-C%({c4}; z8r>%yPufZWBl)6VLb$gF>39#Oy!6i86-wD`J2G#wGqPW=47p-mz}A538G|kjE+*WIkbMZ z?v2uGl%1x8so?cM{6Mm;lWl5DjtmlEMV^pMO()o|E*c51iyfxA&>ua#@j$+Zz)7cy zBW{oyPHCxzrbgxn(Jw&;O4=d= z{FT>YfSxulyF1WHkO4wMt4ilZqsP6=ma9Cihu4+=W^xooLEpYZ2(`4T_yjXpw#ak` zI#v804gGRMsHIiK7)d_S7Ab3bYCKEKJ7IF>cf9!LFWYS>rABw4lhjqau;#sHc8w=f z&GfWP0m&y8@bm5(H(vbn*MgK@Z0K=@l20tIKLAj3^jhA%SjxMU;B}*a3+fNxH`Vg< zT2Ge)=$(oFZ?``{H#hV+`o4XK008rU&zDvHQ_wm<2~@sEKpq$}Y@M^b3+VCl@Vofx;#UEp%%D<=ZJ2Usvs7JiE5(pq#+#SXb>T zutN_84ydbk6>#*M)_17*cO#DfO`@*arP6WJ`i_GB06o2RBS4R%=lOXpJzWmCK7ON0 zuSbCI572{d4d6L?J$}AiL3QIBA^6^bqG6YxF9(!N*Z+d?6i#&g7adu10xA8q`~Uy| M07*qoM6N<$f>r{^s{jB1 literal 3505 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

LMFy0iaOUGFl1tE0yFc@ zFqcrXdhx!872279%-)9B@_yk6ogPHBroZP zgz-oikG$+(Bu%<5*G}xQuK}8LU0(Jtl4~dSh`Lr|Ueb-C`U@U|LsgXkG=mIR8<2Qd z)bQbIgXXCz8Oe;VaP0C-+%g`$^AGu}NhXsR!8!&r*H{++HVk||A4agwzMh(#oH2ej zgqUk>J*)wosQodlzxEr_IA7f z@ZrOD`X4!RgwD=R%`{Efy?ZwRqoboUiiF=80!Pz z(+g3$y8BtTtoVAIu76kSb7^OS>ujg4f8EQ)-tX;{&b0Dc%VM5yZn5RO@v8uQ{P{Np z_2*>3mi5c!>h1Jd`bl>`m%fYwaOv0~-reMP2G=^oz{nr_5j#3`rTkUQ~o(-OP2&0zI%^fzP*)?{`8Mo9cbJ3bN=$#X_hVt^6j;L_I-4?yXuXx` z@2SD@{^qFFxIePxnzu`jrAT5lXMO z(#t?B!Qgl@FHu?yjsmb5P3kqxj&5VEK}*{zQWGhxxWzy$QBwMq0<{bWVhOCcMQS2N zOWP_MYYhfs34FSbdQEd&BTy1OJ`hXL0y(uf;qm0W><3X1P|Gc&@c_s`EK$<)iUvUO z^GPeok6-%{)j#mkd+g>6x%pcEh4i$vts?Z_6t}u>vsU*xsu6Is1Qg>s8TWGj_zhPE z&nM0wzhPI1IAw_o1|XZC_vt={dxtRQXQE4jF{LrwJ7gD7IjIqFdoewkX@?yh0?KpU>vz7ZOyRfZG~@q5+uB&llt8o+bi;fa@B8Sr>FD6q27LES6g1 z0Q|>a&BMtQ)fHYIPNwLytOd0hH0io1+o~(P{P01V${*INxMk?vzklC7JDiW7_xXG_ zH@}deY6FywZfXQ(z%)&XL?RN2L?jdn*}q66B0W7l;*{x~Pnf1DJv}{nZH`1Dv)Wwr zMaT_5zYyTIMj&qh6hE&J9jgJD!OJf+Ot&xFhme0N@0h#+=!%@5m7o7(=NGQZUFHj_ zPGFC@5y)R7kPkDCLB*lZ#?LQw6si#@S|0$|9Qthhd^R_~kdR#`Fk6j4zWRW?sr=6C ztJAf9%^{jzY2ozoFBmnJ0O`zFw@l~Em47X$WuU4{l(T`vUAF#eBYl^9Is5f};1TVf zjiU7d`S|%48gwaE>@eT>X@f3+_C#w06c0aV51eC^YXnNb{{Xu%c%wLhz%>8>002ov JPDHLkV1heRMt%SQ literal 3881 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 diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/pirategold.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/pirategold.png index 7251a5902ab6768ca87fe9d2c779fcd69f8df434..eea41c2e531eda012238217b5bfce179bdb6ae9f 100644 GIT binary patch literal 2074 zcmV+#2<7*QP)$Rk{XO>8gO=LxvRb;b8vJU|VdI)jA2Om;sO9Li{2ueyIrVR~* zgc?Fjp^1*oB{oeV2cxP7U!sIKk!3p{RLE&03(1j%wClCi{g|CuIr7`Xn;FeYJG--z zHrkT?UtV_RdFJ_;_kCw}{(q>Wjyme7qmG{}d^?@MW)O`=MN?Cg{o6E6CMG5}RZB%q z(P&hZ3RLd=RuPRx1%RR`?Ao=;HL2Cs%ezd@i8n*Fj^=Q*qRK%=y) z2CVq3<`CHg#|Cc$aO^iz(qJ`5drRfHYUc&k)NgN*zpW1)dtv)6*kb1LceB>y>srJ=@oW=G}rj_kDH~QmGWf zr{jEfv5yxI+~Tu~eGH$DlS-ukS^S;*KF>43wE@oVMfSqtf1!2b(knn~K-xw27Qap< zaIXE1wzVc0hQSM0p5WTM9|Cag-4A);$`crdVHe-gCNNff96F$ujbCyGJaa<6@Qhyl zkIy-}VZEK@zgbv!{a$wMSR#?Y@Aoq}9^>UPmBH~Ce!rhYB4OKD_LhGs6m5X2s^ZB$ zl{@!+oEX^LbUrcABktVy@nm25yHF~=bvFSfXVdid_5zShCW*)6zGN~9KyPm^le1}n zf>~28{)Psqsw&Pry`QNi8MMhS*R*q5mqKK(v~T+14RLD8$C;=1dv3z|_<`N>ct@MS zFbqat{hrZt8gKT^0q|zu9HZwnMqm9N!!YP*69sDQxBc?x@Eb40=cNXp?{)QRQ9T9{=AyTOn;UHwQ zSq|-kiP`LW)1sJ|mG;?emT*w++M!U0?ufTlus(h&m7-e{T>mzWrfCe0$GCZEq`>Fq zr4a_lV`!Sj^>5R3YofrvRQwGMcswG<*Pm-)CVGiq(1797agM&C%dY>>v6Dw0 z^68|`<=0vZ9K+$TaE=x(zt+m9lR77l$m!P|k$2}oc<0XrCi+}lx4BxyH=E~ch zjGohq`i`E{xbk)<-@Fs%@)sG;@e3NzKP3Mf{NtH9yJOv&y!&(4rVAYZa3onUT9~^w zjcJ;6YqEgHBl3FA>$|}%zF`;zYk%~d#`$BinDfWt1x=a$WD>(LJjZuU=-|PF0^skz zS9tb~IFX3VsN5$pfW^f{{`n`BU;agYrkb0ZtN2fsGybVRC+Y0$w9gIo-(Y$Hesu}o zg;R*bk5I4-=I7_R^vAHL_^vNPmQ%x&?EG)F2~UYzc9!2}iZ2%brH&i+xl((8Ww+J% zMREQYl-$b8o!=@hoI+eUg^0ys!g{2ssw!f!n6S=OGk(oreW5>@!t1D`jyme7qmG@0 z^}b(=*i3E}>jU=e*+V*=Mo|>5UcFiq%+kQXfY5avE4NDM@rnv~_))*`wd}X4X?6v6 zya@vX1AFHX9MUh)e(+kQr zz~bmzLvmd?X=m%p>`ua&gOyurD6qZyfb|^x@aZ^Te{gs+`BnvAe{k6T=D%(F0C4B% zo&0<)z|sh8Mjudi6Oy#0st_r~(bqEE^Z}j(5>Axj=-2b}wSb$K zMoQ`f+)(l<;KtEAxw%?^lOJ@`2e_eV11#O08%JNOD5Vc@(rZFQXIXLpRWZt zH3Dw>05@%d>w7@|5Wa)|(gi?wM85wIj>lkpiJ|@*Zf-jUOD6;|VBVn&fw?*NFJC41 z05^`lmiK_F>H|Ph(N2E87U0wf{3royk&my%oc=HHKc%N&Z6j03A^-pY07*qoM6N<$ Ef}v6fp8x;= literal 3976 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 LE5kwqx2yjKY~u8D diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/pointy.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/pointy.png index a716944239f1eeff503b3ba57434b9b1fd7ebb88..370b36709d1498d3c784c47c2f6ff0c9e292915a 100644 GIT binary patch literal 1473 zcmV;y1wQ(TP)A~6^YEtKhEIOCn0J2UrA)J*AoAW3G<+;h*l=iC|R93Uhl zBqSu{e@kTC6Y#^u!M35zONHF4fCn$WXMQ!Lu%WOJtwUmfZGzPFgL+LzY72u^t;ezbrcI%=-rk~ zIRyfL8_Z?XMoKqVe)w=TK(m<43^h208A&)hDiI-$67` zMO>d3ZRhD6eG;s!Occ0A0IlfvzkG{UJ)aMXl2=yV844^Cqn1|@_xN_hnK$xutphMudN+R)q1E2pS{KTD>34h%UlYcZyp}<1(mt=)q$b=5 z`Lqz}AKC+G^P!8PuVSdT?uJ%$XJf(m@%P&ZebRA#X3~;p^H26(&FiP%DLpxq|3rTO zS4)qly?O09d0vhmLk0d?_6bk42k=jfvifcJb@t%{Fhi%)|J!x}yV^Yb zEi*as8Tj$s{y`Dx=h@s^$MNB*ZJb;-ZP0NZFa5&XASotcKFpmU8CIV1P9+j}{kd$~ zpzpi+n<4q#{7r;C&dMw4&t=nw-$&P{7<=6MLqbAALPA19LfoJdbrA70H>JYJ#lg0b zSzW=!!M4Fyh{s9ua?fDrrgE*41GKqm^zI*!SzQs9$;Sazr!%W7X5p0S9Fak(L4uS3 zk2N`}(LHB%STvXU#U%ib#Zh)%#ln^JT$Cc9cmIGyJceqejAG%+>efiaWAGDxexQXQ zz0rv&t4x-N$83!gGDwxjbJ?_^%}rb0trSYA)jRm=YcnmHjW*^Nmz2ZL50r-0O4-s) z!+8>ed|b97s6s}|rD1xkAWy?x~il|g{!M01oy+5we9$@d%Hmn5Yp zQ7On(vH=eV@C^#0_w7M}otsLNgj57L)#ihQs82u!PY2Ly(|}I(_;JI|i{>g5sjeL& zd{Kd~&5tzWC&aB!z;}ND@aRD{3WAvbfODUKa(@6YT%&iZ%?An5JV)*ipq}l)chydJ^_O7GvIMe0lq#zO1=LjVEY8v zV{W)MNC1x>JU%?No(6+-3nX^)HxYUYq&@+eexV^l_#V9=8mj`^AE4AA@n1Kb;2R}E bLhSqt+-IH3_^n9400000NkvXXu0mjf|7O?l literal 3042 zcmc&$X;f3!7QT@|6jY{SMA6%bC~oG+WW4%+tP%tP*=>2*vOw1%ObW1feQedy2=4*?-kAffJ!wrAcPl!_eK+0 z49iFoD~fC>V6YWz0Khm2*pb9oG7pR*Q>aWw7!0J69AUxMcm$rkg&afmNZ^qD6MO=Q z39&?b63hvU5ug=^8Dw50C}7Z;T(rOuHfIy9*ehW;44k9zVjW>FN@rjQ-WS}$;*ddW zODhW^0)YaNmWa8>98@mwIk7+>&~pOLKQJtYLyAWG;oRmuDc&4mF+3g{4Ttmjd`tc& zOBRO$N7~!l!x1Pr3T2^SSa9Q+yhwosle>1_0FKNha;R(`mBj>=1|y?baXe+F^YJs- z|FX*D&fkyXrr?4|He3-XTwz9$F?tJ!9LZyG0$40M);}(a%Zp?Z$)LhGmBJ)*Fz`<~ z7`W2eN6z1+^AYg5XvhNUha~?k9Hr)cJjy-VRWSvTIb20vSOf}%z`*|oW9ATFs(?%n z!BH7x<{TM`vYY3As`-dd_(%Rnn*T0G9yR(Oa#U*G=cwGHJsFV{axj&|i^0xC{V9m~ z0COG3v9D5 zj1yy}7jnbK?mvr9?3Pc3FW>Y1VMmO9I4RlmRxI!K{@4b#)$E4Fs`e>RX|)<~Iy=x=>aPue zS?iY!`J~mt`YYP%E5fX=&DKZBuhgbTWbTrm)^qxzXn9o`ee%S>e)!;%rwgYvUPfoU zTAPVF-J0^c@OsI@N#@3r{PB^AS=D+2=XLcnHy2z@kb8?8N4%O=x^JV1@ikgt9_N)G z=v^~dR+!LFn=0i^?7HY@Kq{t}cjdmWh!4FRa1lo^u~<807&P1KP!m|gIAS>|Luqc9 zMtT@Tc>OwPtA3-Y7DE6N)uEnnGHNR!wfn(DxD*^4p79z1ubIx!uBo!P%`;Mpny=%s$+bb0dhu4#uVBl|w6 zYAB`8SPha8b@Q~HgK)f~TTpzcw8R|96ehPEc8rgXu#nV>?NyveswOlEF)K)DRnaoC z!;5aRTzEQ*&~U6#+BukITdvd=Xf0@MlZ6E8QJ0o7mIcLtDQH zaGh^aMaK>%gXU^vi~)HidHsxK=hx<1RVW>_{5xFwwg!78{~R zWi^+ttOl}#TGs=jfqOaQ+s`EIT~p)*`l_0|FoWK%bQ#9UIESrn*FXJ=NFS}6z?U^h zfbyMZ94-m3_ce>3H9D!eB)8g0UO2DXTC`qe?<<1D?9GbY9$?Z`!wT-&O9Qmapu77u zB4)#`zUr!`g4<)(P#Mu!fXv3_^R^4(SiwdnSUx6Az!$0MI#aW2tQ~ zI`ABcykK`{^D$a>>Q@2U2AIPP)y=OL2A|t78SCs&<1%ewP$F1-I}yF@rUJCaVec!on&zVlE!z$>xK|g9U@we`}6y2)9q>?pf_jU5IZ-Zerm%MKi(RfNUa7gQM-iXEt0CH15T?J8_5ezrFwag;p zPntMW(>QF~lU7||CV05`;JM$i`~mN{KO56_y2j<(tf%N{-7kET?q;xHMXt@$!6!FW zA%lpH6)L8Mq(!MFkR6w+QAI=ecDtpDFV`2Qt0~L8h_3+WRi~1{8BvOD;GZc;I zCh#^HmDbup4Zlai=(wG~7nrY}+TM_}rKA7u()6&&TR6=Oi;HIDlit^t7%u@@jIWz& zK==86!|zQrE2_!pq~|Y8g>6sQ*O27i=-liso66f0^5X9P7P)Tun=0UF5N*q^uSH3R z#(GO9#)NN^|F~Cbq~`L>tiZxwh6kzYzN!^>#I(ts=kuC>-5hkgUw?;RNftgIc=+;w zwkuNhi_bb*=#h=X?mmWI668T+;JC_f>~^OWsaC@>C*7}^jp}aa+ilJ#S>r1t0O*G- z=q&raU__(%DXO$`)DZH^?+##CyUkvh=B3pDv@&qb&KuJyJnC$X+|O`%PBHwXOcXjB zlMn2*|H|WwC**`ukNrcnVK6XEVYKj`II2%t6(v^LdjLm?WqC<9X5+GBmpCBv)z#FJ zLuwva5`ep6#!7R<%Cg6{1t^yu%sx8A6c$%%_fw_+(qOQ&>Kbc-NyL9FKdZ`BqMOy5 Uu=Oq`%D-?=S07yE=7{va00vP3N&o-= diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/psyho.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/psyho.png index 0d885bc69d4b13ca56eb12cb5039ad2d0582baef..f958b22645883d9180071d5ae9f5c6e5da22382e 100644 GIT binary patch literal 2001 zcmV;?2QK)DP)!`Q%b365ot;dAv8aP zpn`=!kcNN+OYo^;BmH>@iiVUVU?QZtNhg#n%VkkY$Nk??t1rlyvz|8Gsb;sgI$w0C@Nm#x;CZ z0w8XP4I<>K8ceV}4^<5^yU|$-$g;%zem{x|i_tm~G%4RY5=2p9G5mhNt#>4YYXkWG zerTEoCnKn8kZGC*zuzyyFNBk|6Y%EcBEIn4Fhc7{5b=fQ@aE;>WbK6TJ6#*#P}ziW zwHiTHgN%QkE|eA|8i7~7v_SlwLi6Qp2<+SI`ds5jTGKQDz<2M(@a157;)*OwjGz0h zBSGUCDNnILBn}7*do~32h6Eh`MKY#E_xmyY6GPgRALyuLp{fFG-gny+013SEbNyQ} zc;_iT_-s7A0sc}wm@G@|Qa#cV^ms7Fm=aJJ1>(LYu;FHyt`vZkfWjDKX_x7>Vz?PB znGvkY4>!9X6xTs;y)kmcgQ>_A0N8#70AMOIg^?p^@_e^e6|ugXchTtczsUebHLEBZD8-7jGa4j4I0MvFecsw2tV~o+KZ*PyjI!%QivMjMv`8kY@RvZ6L z<>wf4ijN1$K=V#jgSPK;+OE3cmu1QH902&gWm#gP{2T3r8LJsX^=LH!ebF)5^CmX$ zyX{7QgxV%C*S{6z;YYUba|0*-YvCA1E{>Vn@_%0o1A7JeZG#}+*qfJY+p(`n|JKvh z3cjC+^2zuQ4hC^>P+tMkW{7^%Gf{rS1ESHGr(Kp9cHT5K=xN@B%EL243RE7RK~M80 z{Lu=W=HA!7!RxqHb<0o7UMuKaK$Jg07=Dfv6&3@~t*L1miVBMnc@S|7gi1hRGqcn1 z`~8NXGqcksC7t@Zfci7jNOv z#uZtJlfN&*@7Q1zU_<#i0D#Wok`=<2FC7I~4d9_Gpicp6cVt?3)jiLaP?N&RlM_Fk z2mbUR0^`4b+DA~C9yAYVOmc7MXDeBCAYJX=b5=Ee}o_z6~}cw_NxQsK`c zi!8FpB8x1N!)XV&-bh6*;e|n86BwVEbaP6SZtw@OCu=A0@g?_q2@6kabAJ1|o<<<$ zNgmNXNYc%a6|yWD%3s+RK|{Y{5(0QV#^CvA{ZI0E^Kv1}5_7u?6%v-u(GwXjL@Fa7 z3Vy>yoFv1QeG%ar0oQ`cvc!rCi!n1hjh_0Lai7oCfAO1clyrK5ss>qn;W^IjiX`v@ zy7DBa8zTr!0YKkthp%eJ-#kfQQ^XV?(}i=pBBnscADr-~L2lq`q-0rQ^Yc-ZDP`aT zpr&cBbmFsCpb9cR5Kcv=;Pc6ABOjlE<&mzEI8pG)Q9g_8M!r?20F6GuT!0{@CUF|T z%T?Q{>pkBI_+RQp_`-8E^ee`|lrgXeZ$L72RCP4Jjr3lEAHc)`xR>~^DBeS1&&wT$BQR9 zhRp4<#K`Tfu?oGN-IozZ6LFhCy){NGYhH}bgC0D-LT8e1LpjEXK_hJDo;=X j3gf^1c69>4O0B@Z+S5KeiV=&EQu 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 bT7mxnHt!+9PIi3E00000NkvXXu0mjfmS*Eu literal 3677 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 I#N+fo0ns*7@&Et; diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/shulker.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/shulker.png index a4ace6d149fdc4c41a80259c78d76c6d4699f464..17dc3120e309a2281ea9be4b23b583a95bc86645 100644 GIT binary patch literal 2249 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 T@3_;v`om{!ZjUP6<9FnrVXGK9 diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/squigly.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/squigly.png index e071e3666d3e3173be87715993b32201164730eb..086d3e7369c139cd62c5b57b36f99a98d17b5002 100644 GIT binary patch literal 1788 zcmVbC9R9K_3<+BQKqb|MwXjqSD@5&5l%D2LYM0Pc2w2*(h1?1YvUd@BDy2{;d#HzE zi-FWr6)FE`l8HC~NIOD!FnQhC)CTu2f9U3=-#*atM|(9zLsUL*JRy6SgB|(b$tdA$ zYAXtP`#|Hblkv``Hkrps!+ov`K+)LjVUArVO~ zmgob(;_MP)E30T}b|HVXr^^EOxh^CVaV*X*Nj+CuS*k-yM@l1{63!kgi zjof}3eZyXKceP_8;IY)Dsss4RFCX93oM+Bj8fP?4M2Twh`P3)l)|O-N`Biua`>{B? z1n*!!e0~*c%ds*ii8{g10VKQ<&NF9Cl{UIB8VMu$m#$qcyY6arV<<>(-{$Ll^?>=_`z~ZwpO(q>H+fM@kdVltm&7uGN7|~2HT?6LBv$%ifq6Sz;pFrd8-?^yGhi8T6R6}?&gg37i z02B?Hn~A{ZR{;Poo`f(SUU$5B5&{7D{3_;VBFykNuNDxV3|Y!3a{%xCxtR#mks>~c|J$eRu5qTXIQabWF zik^X9#NWL~{$LkAzseLb%K{_$wCeL2VFo_pv@2N2*S!k&4SQML0bs_fBSUyJ|IyL` z>c|iqzyB$T{ZFOm8l|$8eBStK(I?P-8qdqCCg1QZaOv7rmP%7k7od&|>C*Z4Uw_gb z&3|;zFI{(@Im?`I`?umYMtis@c==?EtJRIotqgwrLBBl{Hn%b?d-#kolg~cVR)=Qq=SK49W+DKJPM{TibIbTWfUbupLuK=< z0PRg7_B^Y@Nu_-K_>dL|j_RDi8*em6RQ@-CiGWA@ z@Yg+!7PHF#vXD9ritOWdl#r2c^okDHd*ucs9l#6cBVcs@IAC->AkcfiEG%ncYV5KG zm@i;F_$b|e_;<}U$IA}{NAc#>f=(Cy@D!d5;cLoopn(P&XrO@xN+4>i9$`l}sW-vs zbWrmS_9HqS)G8U`(?t611C7^BX0DV2+?^fB9_HX3>^G#zPXokGdk6cGJVbjL}J8|iZXLJxovIm+u5TUiy>MJfY`l1?V#h^?%$ZjF{^7wn{;9Z(=h zuCu9)(PWi$xd?S8T}4r_IJ;Ej=02woTUoW0es(}*7+YCI`g4jkMJS5G z8YtYI9l}Rr>HYv7e43rq?oe#TDDMNR1L&xk-rm99zuBry2q#tlW^xoo!TW#K zQ79DH2NJ6zymWtnEdPFzu%nx>0~AGJpO@*YYdv9ZCc@}(nN}H72k=}SZ@d*la~dEn zfSgcMe*mDTse$@Ve*&+gh!ad3Bq;KLIX_K%M{m{flNV8ziF`T2Uq=2pg_N5H&4z_0}B zX^*cJU(J?U8xc+dc67A-9xyd_StDxtTR~CRkk;MRZb^~rZt{FQ-;h8HOTCu|MV|sj e{RGu|2L1zk^e^WKDihKG0000+|{Jcg7ZPDJP>M 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 JPDHLkV1ib)+z0>w literal 3568 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 diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/stared.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/stared.png index 8ff98021011c6030383d932c43365d633627c4a7..fc09c940425581c5ce2f7a2f133ec336e33d00a3 100644 GIT binary patch literal 1808 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 IM6N<$g6aA5YybcN literal 4201 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 diff --git a/Resources/Textures/Mobs/Customization/moth_wings.rsi/woodland.png b/Resources/Textures/Mobs/Customization/moth_wings.rsi/woodland.png index 176c6d6cbe28c578faae2049092c85012f051fac..08a30055d838afe8bd63185719ddf8675704a758 100644 GIT binary patch literal 2266 zcmV<02qpK4P)BQ^|GjEEp=HZ`WvH1R7jYIYkmx~4burVVD3X7^$*jA?pd zV`6HI7w%pdD@Ecqx_bfG)X?AttaMjk1}eg+pab*4r$dJ|%<%5Tcn$*`m~%iZo6hfM zGVj;(zR&wS=e#rT9}*-;kRU;VUoFxvJ%RbqSWzZy*;&eWZ?B(skNGkUtbO9uFO6}oj_comq zp`32cUdd9eUnpOEwm}RV{4*90u)>^5?)rR&4Sv4(Y=bWQnjLVpzJaWW!~^%;8BXvv zof8k-cj@Z%(0qSU){p2<#+*ArZO7M)1VfAjLrUFGu67={?_$oKK=dc;8rP_`VdbTO z1dYOOPsN-&!IQeb2-|8qBf${09beOOZy4`H@Kw9lkH;J2o3GmV-5&}V8y&*7+OE|3 z!p|`0PVmiFZA1e4#?>4F5Ospb6XMo)t&Ar-srvD6ycn;?7k;kP>oc#7@=}Me+spuT zb$WQ{b14z;^ReG z{Ml1Q!tO9ZY8U`t_&IrN1uw?y0Z7a4QOW^G4P$qhID4u{lM{410O0(^$I{jM2F_o6 zEZzF9bgsNG6arip^lA`M$t!5WMxWkda^rcaNlOg3VwikT#07AQ_K0sA>Eq zeGWK#sz_M38zy(R!$R|jAGss)5LKLsag8b-1z-nBBuPMTx zzigRvjhZ9iQ>9uonN3GxG22F%DQ2;lCKi1Zn-445H5ptN;$ z4`_;lSsf6YL#NJUirCNDP-~|(7uD>S983qmVjok=JC}{HXJ;W&#{f?rbs%*NuxDo> zoy$g)HgfxtgXwYY&*}g*?{&E5UW;12)?C!mulc^9U{e|ZErUTS|9OX&!DzdJO=+rU zka+f09Uy!E)6d@)0AHT&mjG&S49uBNa=qOC)6d@)T6SSJ`>yVRDdodM698C^Ie5H5 zE>u01Jl-HyW6qR%8CUl}+$d0WfX5re*Y*;KANI2$_w%*A)Exz}_AU0YX#T(A{k&q; zKC$Hik4Z^`c=k0t1W$f!7w)c~wKT=u_48|e5X!WrYkNtCNYT_^&3>PAoPteh zQ{Dz@SnOjIY)YfgIj-5hdJ2RleFf}Rvuw<9ve39;j8BBp(xbDYil!nCJT4(Z~%bTS|e?)Q8w=jPjSLr_Gd-_QBPToIarNrSec$gXM=&G zyGy3DJGLiB#D2;g-CaUwgMpRlNmz|*lqa-2Zak*j&&o`pwbn@ap`DyKyq%hxPSt)j zH=Ud~yq)qxJ87*ol9idF$-Zg?6sVLQ@f1gkcDF0PeI~_zLNpqxZ~LT)p=iI?LdZxY02SAJrJ9>gYHm7}#mekI zQixnvalKcH1kjvzst21hr5nX>H?E>(FsK|j^v+xU4PUg%%n$8@oUUruJVreG<)sc0 zTQ>c>9{Z{haJs5p`k{T0qE%+ixjUTBa>eX#U^(CrFSW zL4pJc5==q9qF##3XKuP~h8io%MDf-wG**;}*{;cd3A|0`MC{!3^ws46TXq&B!4Sn; zw=gz3G^wvBSRu7&sW zBVev$L zrZlC1#Xg2%bp(hC6fFL9)=jKf=zL!r>n2uU@uw>y3B&40+-o!$T_?dVR00!h8h^O95G0r%NCKGerto1qw@n=^}~w2_!(dT~!k(=n*5oDdah+iX`T^DORnC z6)9w84%1ruU&;@^3oxrdVJT2^)5(b=+kr`)fYq3TkEi+s5-=%JP!lLDRn$Zh@dOg_ ze+$S0g{odDLpYaQ=*J>QXGK-7R9@;37~(H)*4LRVQmAh4U6QXoEtHo!#DR_3`UMg& oDN>lPKw>G7LCV4e62Aui2b11oN&U5`$p8QV07*qoM6N<$g5x$)2LJ#7 literal 4050 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