From ffb2263ee89ef319fa1bc02bd5d387fe058234f3 Mon Sep 17 00:00:00 2001 From: fox Date: Mon, 1 Jan 2024 20:27:31 +0300 Subject: [PATCH 1/9] Did the deed --- .../BUI/ShipyardConsoleBoundUserInterface.cs | 6 +- .../Shipyard/UI/ShipyardConsoleMenu.xaml.cs | 51 +++++++---------- .../Systems/ShipyardSystem.Consoles.cs | 56 ++++++++++++++++++- .../BUI/ShipyardConsoleInterfaceState.cs | 9 ++- .../Components/ShipyardListingComponent.cs | 18 ++++++ .../Shipyard/SharedShipyardSystem.cs | 21 ++++++- Resources/Maps/Shuttles/empress.yml | 2 +- .../Machines/Computers/computers.yml | 29 ++++++++-- .../Computers/mothership-computers.yml | 27 +++++++++ Resources/Prototypes/_NF/Shipyard/cleric.yml | 2 +- Resources/Prototypes/_NF/Shipyard/fighter.yml | 2 +- 11 files changed, 175 insertions(+), 48 deletions(-) create mode 100644 Content.Shared/Shipyard/Components/ShipyardListingComponent.cs create mode 100644 Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml diff --git a/Content.Client/Shipyard/BUI/ShipyardConsoleBoundUserInterface.cs b/Content.Client/Shipyard/BUI/ShipyardConsoleBoundUserInterface.cs index d1703159a70..f1a257045f6 100644 --- a/Content.Client/Shipyard/BUI/ShipyardConsoleBoundUserInterface.cs +++ b/Content.Client/Shipyard/BUI/ShipyardConsoleBoundUserInterface.cs @@ -42,12 +42,12 @@ protected override void Open() _menu.TargetIdButton.OnPressed += _ => SendMessage(new ItemSlotButtonPressedEvent("ShipyardConsole-targetId")); } - private void Populate(byte uiKey) + private void Populate(List prototypes, string name) { if (_menu == null) return; - _menu.PopulateProducts((ShipyardConsoleUiKey) uiKey); + _menu.PopulateProducts(prototypes, name); _menu.PopulateCategories(); } @@ -61,7 +61,7 @@ protected override void UpdateState(BoundUserInterfaceState state) Balance = cState.Balance; ShipSellValue = cState.ShipSellValue; var castState = (ShipyardConsoleInterfaceState) state; - Populate(castState.UiKey); + Populate(castState.ShipyardPrototypes, castState.ShipyardName); _menu?.UpdateState(castState); } diff --git a/Content.Client/Shipyard/UI/ShipyardConsoleMenu.xaml.cs b/Content.Client/Shipyard/UI/ShipyardConsoleMenu.xaml.cs index d6489776385..93ae70fd5ac 100644 --- a/Content.Client/Shipyard/UI/ShipyardConsoleMenu.xaml.cs +++ b/Content.Client/Shipyard/UI/ShipyardConsoleMenu.xaml.cs @@ -23,6 +23,9 @@ public sealed partial class ShipyardConsoleMenu : FancyWindow private readonly List _categoryStrings = new(); private string? _category; + private List _lastProtos = new(); + private string _lastType = ""; + public ShipyardConsoleMenu(ShipyardConsoleBoundUserInterface owner) { RobustXamlLoader.Load(this); @@ -38,12 +41,12 @@ public ShipyardConsoleMenu(ShipyardConsoleBoundUserInterface owner) private void OnCategoryItemSelected(OptionButton.ItemSelectedEventArgs args) { SetCategoryText(args.Id); - PopulateProducts((ShipyardConsoleUiKey) _menu.UiKey); + PopulateProducts(_lastProtos, _lastType); } private void OnSearchBarTextChanged(LineEdit.LineEditEventArgs args) { - PopulateProducts((ShipyardConsoleUiKey) _menu.UiKey); + PopulateProducts(_lastProtos, _lastType); } private void SetCategoryText(int id) @@ -52,52 +55,35 @@ private void SetCategoryText(int id) Categories.SelectId(id); } - private void GetPrototypes(out IEnumerable vessels) - { - vessels = _protoManager.EnumeratePrototypes(); - } - /// /// Populates the list of products that will actually be shown, using the current filters. /// - public void PopulateProducts(ShipyardConsoleUiKey uiKey) + public void PopulateProducts(List prototypes, string type) { Vessels.RemoveAllChildren(); - GetPrototypes(out var vessels); - var vesselList = vessels.ToList(); - vesselList.Sort((x, y) => - string.Compare(x.Name, y.Name, StringComparison.CurrentCultureIgnoreCase)); - var type = uiKey switch - { - ShipyardConsoleUiKey.Shipyard => "Civilian", - ShipyardConsoleUiKey.Security => "Security", - ShipyardConsoleUiKey.BlackMarket => "BlackMarket", - ShipyardConsoleUiKey.Expedition => "Expedition", - ShipyardConsoleUiKey.Scrap => "Scrap", - _ => "Shipyard", - }; + var newVessels = prototypes.Select(it => _protoManager.TryIndex(it, out var proto) ? proto : null) + .Where(it => it != null) + .ToList(); + + newVessels.Sort((x, y) => + string.Compare(x!.Name, y!.Name, StringComparison.CurrentCultureIgnoreCase)); var search = SearchBar.Text.Trim().ToLowerInvariant(); - foreach (var prototype in vesselList) + foreach (var prototype in newVessels) { - // filter by type for ui key - if (prototype.Group != type) - { - continue; - } // if no search or category // else if search // else if category and not search if (search.Length == 0 && _category == null || - search.Length != 0 && prototype.Name.ToLowerInvariant().Contains(search) || - search.Length == 0 && _category != null && prototype.Category.Equals(_category)) + search.Length != 0 && prototype!.Name.ToLowerInvariant().Contains(search) || + search.Length == 0 && _category != null && prototype!.Category.Equals(_category)) { var vesselEntry = new VesselRow { Vessel = prototype, - VesselName = { Text = prototype.Name }, + VesselName = { Text = prototype!.Name }, Purchase = { ToolTip = prototype.Description, TooltipDelay = 0.2f }, Price = { Text = Loc.GetString("cargo-console-menu-points-amount", ("amount", prototype.Price.ToString())) }, }; @@ -105,6 +91,9 @@ public void PopulateProducts(ShipyardConsoleUiKey uiKey) Vessels.AddChild(vesselEntry); } } + + _lastProtos = prototypes; + _lastType = type; } /// @@ -114,7 +103,7 @@ public void PopulateCategories() { _categoryStrings.Clear(); Categories.Clear(); - GetPrototypes(out var vessels); + var vessels = _protoManager.EnumeratePrototypes(); foreach (var prototype in vessels) { if (!_categoryStrings.Contains(prototype.Category)) diff --git a/Content.Server/Shipyard/Systems/ShipyardSystem.Consoles.cs b/Content.Server/Shipyard/Systems/ShipyardSystem.Consoles.cs index 36e90332228..838fab5e2c9 100644 --- a/Content.Server/Shipyard/Systems/ShipyardSystem.Consoles.cs +++ b/Content.Server/Shipyard/Systems/ShipyardSystem.Consoles.cs @@ -102,6 +102,13 @@ private void OnPurchaseMessage(EntityUid uid, ShipyardConsoleComponent component return; } + if (!GetAvailableShuttles(uid).Contains(vessel.ID)) + { + PlayDenySound(uid, component); + _adminLogger.Add(LogType.Action, LogImpact.Medium, $"{ToPrettyString(player):player} tried to purchase a vessel that was never available."); + return; + } + var name = vessel.Name; if (vessel.Price <= 0) return; @@ -495,15 +502,62 @@ public bool FoundOrganics(EntityUid uid, EntityQuery mobQuery return false; } + /// + /// Returns all shuttle prototype IDs the given shipyard console can offer. + /// + public List GetAvailableShuttles(EntityUid uid, ShipyardConsoleUiKey? key = null, ShipyardListingComponent? listing = null) + { + var availableShuttles = new List(); + + if (key == null && TryComp(uid, out var ui)) + { + // Try to find a ui key that is an instance of the shipyard console ui key + foreach (var (k, v) in ui.Interfaces) + { + if (k is ShipyardConsoleUiKey shipyardKey) + { + key = shipyardKey; + break; + } + } + } + + // Add all prototypes matching the ui key + if (key != null && key != ShipyardConsoleUiKey.Custom && ShipyardGroupMapping.TryGetValue(key.Value, out var group)) + { + var protos = _prototypeManager.EnumeratePrototypes(); + foreach (var proto in protos) + { + if (proto.Group == group) + availableShuttles.Add(proto.IDid); + } + } + + // Add all prototypes specified in ShipyardListing + if (listing != null || TryComp(uid, out listing)) + { + foreach (var shuttle in listing.Shuttles) + { + availableShuttles.Add(shuttle); + } + } + + return availableShuttles; + } + private void RefreshState(EntityUid uid, int balance, bool access, string? shipDeed, int shipSellValue, bool isTargetIdPresent, ShipyardConsoleUiKey uiKey) { + var listing = TryComp(uid, out var comp) ? comp : null; + var newState = new ShipyardConsoleInterfaceState( balance, access, shipDeed, shipSellValue, isTargetIdPresent, - ((byte)uiKey)); + ((byte)uiKey), + GetAvailableShuttles(uid, uiKey, listing), + uiKey.ToString()); _ui.TrySetUiState(uid, uiKey, newState); } diff --git a/Content.Shared/Shipyard/BUI/ShipyardConsoleInterfaceState.cs b/Content.Shared/Shipyard/BUI/ShipyardConsoleInterfaceState.cs index 95fcac3f857..b1072735618 100644 --- a/Content.Shared/Shipyard/BUI/ShipyardConsoleInterfaceState.cs +++ b/Content.Shared/Shipyard/BUI/ShipyardConsoleInterfaceState.cs @@ -12,13 +12,18 @@ public sealed class ShipyardConsoleInterfaceState : BoundUserInterfaceState public readonly bool IsTargetIdPresent; public readonly byte UiKey; + public readonly List ShipyardPrototypes; + public readonly string ShipyardName; + public ShipyardConsoleInterfaceState( int balance, bool accessGranted, string? shipDeedTitle, int shipSellValue, bool isTargetIdPresent, - byte uiKey) + byte uiKey, + List shipyardPrototypes, + string shipyardName) { Balance = balance; AccessGranted = accessGranted; @@ -26,5 +31,7 @@ public ShipyardConsoleInterfaceState( ShipSellValue = shipSellValue; IsTargetIdPresent = isTargetIdPresent; UiKey = uiKey; + ShipyardPrototypes = shipyardPrototypes; + ShipyardName = shipyardName; } } diff --git a/Content.Shared/Shipyard/Components/ShipyardListingComponent.cs b/Content.Shared/Shipyard/Components/ShipyardListingComponent.cs new file mode 100644 index 00000000000..f25042cc63f --- /dev/null +++ b/Content.Shared/Shipyard/Components/ShipyardListingComponent.cs @@ -0,0 +1,18 @@ +using Content.Shared.Shipyard.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; + +namespace Content.Shared.Shipyard.Components; + +/// +/// When applied to a shipyard console, adds all specified shuttles to the list of sold shuttles. +/// Can also override the name of the console. +/// +[RegisterComponent] +public sealed partial class ShipyardListingComponent : Component +{ + [ViewVariables, DataField(customTypeSerializer: typeof(PrototypeIdListSerializer))] + public List Shuttles = new(); + + [ViewVariables, DataField("name")] + public string? NameOverride = null; +} diff --git a/Content.Shared/Shipyard/SharedShipyardSystem.cs b/Content.Shared/Shipyard/SharedShipyardSystem.cs index 222024b2ec4..1798b763066 100644 --- a/Content.Shared/Shipyard/SharedShipyardSystem.cs +++ b/Content.Shared/Shipyard/SharedShipyardSystem.cs @@ -7,6 +7,7 @@ namespace Content.Shared.Shipyard; +// Note: when adding a new ui key, don't forget to modify the dictionary in SharedShipyardSystem [NetSerializable, Serializable] public enum ShipyardConsoleUiKey : byte { @@ -14,14 +15,28 @@ public enum ShipyardConsoleUiKey : byte Security, BlackMarket, Expedition, - Scrap + Scrap, + // Not currently implemented. Could be used in the future to give other factions a variety of shuttle options, like nukies, syndicate, or for evac purchases. // Syndicate - //Not currently implemented. Could be used in the future to give other factions a variety of shuttle options, - //like nukies, syndicate, or for evac purchases. + // Do not add any ship to this key. Shipyards using it are inherently empty and are populated using the ShipyardListingComponent. + Custom, + // Ships that do not appear in normal console should be added here. No console must have this key. + None } public abstract class SharedShipyardSystem : EntitySystem { + public static readonly Dictionary ShipyardGroupMapping = new() + { + {ShipyardConsoleUiKey.Shipyard, "Civilian"}, + {ShipyardConsoleUiKey.Security, "Security"}, + {ShipyardConsoleUiKey.BlackMarket, "BlackMarket"}, + {ShipyardConsoleUiKey.Expedition, "Expedition"}, + {ShipyardConsoleUiKey.Scrap, "Scrap"}, + {ShipyardConsoleUiKey.Custom, "Custom"}, + {ShipyardConsoleUiKey.None, ""} + }; + [Dependency] private readonly ItemSlotsSystem _itemSlotsSystem = default!; public override void Initialize() diff --git a/Resources/Maps/Shuttles/empress.yml b/Resources/Maps/Shuttles/empress.yml index 9abec7d0eab..99cd1722da0 100644 --- a/Resources/Maps/Shuttles/empress.yml +++ b/Resources/Maps/Shuttles/empress.yml @@ -6940,7 +6940,7 @@ entities: - pos: 15.5,-6.5 parent: 1 type: Transform -- proto: ComputerShipyardSecurity +- proto: EmpressMothershipComputer entities: - uid: 118 components: diff --git a/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/computers.yml b/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/computers.yml index 00c75ac18c5..dccc0ddb10f 100644 --- a/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/computers.yml +++ b/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/computers.yml @@ -68,7 +68,7 @@ interfaces: - key: enum.ShipyardConsoleUiKey.Shipyard type: ShipyardConsoleBoundUserInterface - - type: ItemSlots + - type: ItemSlots - type: ContainerContainer containers: ShipyardConsole-targetId: !type:ContainerSlot {} @@ -80,6 +80,23 @@ !type:DamageTrigger damage: 0 +# Custom console +- type: entity + id: BaseMothershipComputer + parent: ComputerShipyard + name: mothership console + description: Used on motherships to purchase and sell ships without returning to a station. + components: + - type: ActivatableUI + key: enum.ShipyardConsoleUiKey.Custom + - type: UserInterface + interfaces: + - key: enum.ShipyardConsoleUiKey.Custom + type: ShipyardConsoleBoundUserInterface + - type: ShipyardListing + name: Local + +# Hardcoded consoles - type: entity id: ComputerShipyardSecurity parent: ComputerShipyard @@ -100,7 +117,7 @@ - map: ["computerLayerKeyboard"] state: generic_keyboard - map: ["computerLayerScreen"] - state: shipyard_security + state: shipyard_security - map: ["computerLayerKeys"] state: telesci_key @@ -124,7 +141,7 @@ - map: ["computerLayerKeyboard"] state: generic_keyboard - map: ["computerLayerScreen"] - state: shipyard_blackmarket + state: shipyard_blackmarket - map: ["computerLayerKeys"] state: blackmarket_key - type: Destructible @@ -156,7 +173,7 @@ - map: ["computerLayerKeyboard"] state: generic_keyboard - map: ["computerLayerScreen"] - state: shipyard_blackmarket + state: shipyard_blackmarket - map: ["computerLayerKeys"] state: blackmarket_key @@ -180,7 +197,7 @@ - map: ["computerLayerKeyboard"] state: generic_keyboard - map: ["computerLayerScreen"] - state: shipyard_blackmarket + state: shipyard_blackmarket - map: ["computerLayerKeys"] state: blackmarket_key @@ -281,4 +298,4 @@ description: Used to sell goods loaded onto cargo pallets components: - type: MarketModifier - mod: 0.40 \ No newline at end of file + mod: 0.40 diff --git a/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml b/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml new file mode 100644 index 00000000000..20ce6e9e9e4 --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml @@ -0,0 +1,27 @@ +# The empress console +- type: entity + id: EmpressMothershipComputer + name: Empress mothership console + parent: BaseMothershipComputer + components: + - type: Sprite + sprite: _NF/Structures/Machines/computers.rsi + layers: + - map: ["computerLayerBody"] + state: computer + - map: ["computerLayerKeyboard"] + state: generic_keyboard + - map: ["computerLayerScreen"] + state: shipyard_security + - map: ["computerLayerKeys"] + state: telesci_key + - type: ShipyardListing + name: Empress + shuttles: + - Interceptor + - Fighter + - Cleric + - Hospitaller + - Inquisitor + - Rogue + - Templar diff --git a/Resources/Prototypes/_NF/Shipyard/cleric.yml b/Resources/Prototypes/_NF/Shipyard/cleric.yml index fd0f9b7f2ae..f4f706fd8db 100644 --- a/Resources/Prototypes/_NF/Shipyard/cleric.yml +++ b/Resources/Prototypes/_NF/Shipyard/cleric.yml @@ -4,7 +4,7 @@ description: Small support vessel used for emergency rescues and first aid. price: 10800 #Appraisal is 10500 category: Small - group: Security #Should be only available at a cruiser custom shipyard TODO + group: None shuttlePath: /Maps/Shuttles/cleric.yml - type: gameMap diff --git a/Resources/Prototypes/_NF/Shipyard/fighter.yml b/Resources/Prototypes/_NF/Shipyard/fighter.yml index a425f334c65..ae8ec1a2610 100644 --- a/Resources/Prototypes/_NF/Shipyard/fighter.yml +++ b/Resources/Prototypes/_NF/Shipyard/fighter.yml @@ -4,7 +4,7 @@ description: Small attack vessel used for boarding and transport of prisoners. price: 9000 #not sure how much mark up % to add but the appraisal is 8491$ category: Small - group: Security #Should be only available at a cruiser custom shipyard TODO + group: None shuttlePath: /Maps/Shuttles/fighter.yml - type: gameMap From 5e6f4a2688606f2e355e3c1ef41cb015760d7c44 Mon Sep 17 00:00:00 2001 From: fox Date: Mon, 1 Jan 2024 20:28:51 +0300 Subject: [PATCH 2/9] Fix spectre's name tag --- Resources/Prototypes/_NF/Shipyard/spectre.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/_NF/Shipyard/spectre.yml b/Resources/Prototypes/_NF/Shipyard/spectre.yml index 30103fecf95..fa6d628638e 100644 --- a/Resources/Prototypes/_NF/Shipyard/spectre.yml +++ b/Resources/Prototypes/_NF/Shipyard/spectre.yml @@ -1,6 +1,6 @@ - type: vessel id: Spectre - name: Spectre + name: NSS Spectre description: A large research mothership designed to be flown nexto a small fleet of other ships including salvage and food services. price: 195000 category: Large @@ -17,7 +17,7 @@ stationProto: StandardFrontierVessel components: - type: StationNameSetup - mapNameTemplate: 'Spectre {1}' + mapNameTemplate: 'Spectre {1}' nameGenerator: !type:NanotrasenNameGenerator prefixCreator: '14' From 6f56ca5d6d727109b355d4a02ee4750b574cc7dd Mon Sep 17 00:00:00 2001 From: fox Date: Mon, 1 Jan 2024 20:42:42 +0300 Subject: [PATCH 3/9] Removed the None ui key --- Content.Shared/Shipyard/SharedShipyardSystem.cs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Content.Shared/Shipyard/SharedShipyardSystem.cs b/Content.Shared/Shipyard/SharedShipyardSystem.cs index 1798b763066..4d032b58f19 100644 --- a/Content.Shared/Shipyard/SharedShipyardSystem.cs +++ b/Content.Shared/Shipyard/SharedShipyardSystem.cs @@ -19,9 +19,7 @@ public enum ShipyardConsoleUiKey : byte // Not currently implemented. Could be used in the future to give other factions a variety of shuttle options, like nukies, syndicate, or for evac purchases. // Syndicate // Do not add any ship to this key. Shipyards using it are inherently empty and are populated using the ShipyardListingComponent. - Custom, - // Ships that do not appear in normal console should be added here. No console must have this key. - None + Custom } public abstract class SharedShipyardSystem : EntitySystem @@ -33,8 +31,7 @@ public abstract class SharedShipyardSystem : EntitySystem {ShipyardConsoleUiKey.BlackMarket, "BlackMarket"}, {ShipyardConsoleUiKey.Expedition, "Expedition"}, {ShipyardConsoleUiKey.Scrap, "Scrap"}, - {ShipyardConsoleUiKey.Custom, "Custom"}, - {ShipyardConsoleUiKey.None, ""} + {ShipyardConsoleUiKey.Custom, ""} }; [Dependency] private readonly ItemSlotsSystem _itemSlotsSystem = default!; From 6fefb33994d8984273663a2ae73cc78277522d4e Mon Sep 17 00:00:00 2001 From: fox Date: Mon, 1 Jan 2024 20:50:12 +0300 Subject: [PATCH 4/9] Typo --- Content.Server/Shipyard/Systems/ShipyardSystem.Consoles.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Server/Shipyard/Systems/ShipyardSystem.Consoles.cs b/Content.Server/Shipyard/Systems/ShipyardSystem.Consoles.cs index 838fab5e2c9..88047b65b39 100644 --- a/Content.Server/Shipyard/Systems/ShipyardSystem.Consoles.cs +++ b/Content.Server/Shipyard/Systems/ShipyardSystem.Consoles.cs @@ -529,7 +529,7 @@ public List GetAvailableShuttles(EntityUid uid, ShipyardConsoleUiKey? ke foreach (var proto in protos) { if (proto.Group == group) - availableShuttles.Add(proto.IDid); + availableShuttles.Add(proto.ID); } } From a1b37ef23f1126540e35bb127a38448494162e96 Mon Sep 17 00:00:00 2001 From: fox Date: Mon, 1 Jan 2024 20:51:56 +0300 Subject: [PATCH 5/9] Limit the empress' console to just 3 ships --- .../Structures/Machines/Computers/mothership-computers.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml b/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml index 20ce6e9e9e4..58578a0ad65 100644 --- a/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml +++ b/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml @@ -18,10 +18,6 @@ - type: ShipyardListing name: Empress shuttles: - - Interceptor - Fighter - Cleric - - Hospitaller - - Inquisitor - Rogue - - Templar From f210db0a4622aed985c7e36b4603704ee8e5218b Mon Sep 17 00:00:00 2001 From: fox Date: Mon, 1 Jan 2024 22:50:41 +0300 Subject: [PATCH 6/9] Cleanup --- .../Shipyard/Components/ShipyardListingComponent.cs | 7 +++---- Content.Shared/Shipyard/SharedShipyardSystem.cs | 5 +++-- .../Structures/Machines/Computers/mothership-computers.yml | 1 - Resources/Prototypes/_NF/Shipyard/rogue.yml | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Content.Shared/Shipyard/Components/ShipyardListingComponent.cs b/Content.Shared/Shipyard/Components/ShipyardListingComponent.cs index f25042cc63f..2aa1df67534 100644 --- a/Content.Shared/Shipyard/Components/ShipyardListingComponent.cs +++ b/Content.Shared/Shipyard/Components/ShipyardListingComponent.cs @@ -5,14 +5,13 @@ namespace Content.Shared.Shipyard.Components; /// /// When applied to a shipyard console, adds all specified shuttles to the list of sold shuttles. -/// Can also override the name of the console. /// [RegisterComponent] public sealed partial class ShipyardListingComponent : Component { + /// + /// All VesselPrototype IDs that should be listed in this shipyard console. + /// [ViewVariables, DataField(customTypeSerializer: typeof(PrototypeIdListSerializer))] public List Shuttles = new(); - - [ViewVariables, DataField("name")] - public string? NameOverride = null; } diff --git a/Content.Shared/Shipyard/SharedShipyardSystem.cs b/Content.Shared/Shipyard/SharedShipyardSystem.cs index 4d032b58f19..17a153aae75 100644 --- a/Content.Shared/Shipyard/SharedShipyardSystem.cs +++ b/Content.Shared/Shipyard/SharedShipyardSystem.cs @@ -16,14 +16,15 @@ public enum ShipyardConsoleUiKey : byte BlackMarket, Expedition, Scrap, - // Not currently implemented. Could be used in the future to give other factions a variety of shuttle options, like nukies, syndicate, or for evac purchases. - // Syndicate // Do not add any ship to this key. Shipyards using it are inherently empty and are populated using the ShipyardListingComponent. Custom } public abstract class SharedShipyardSystem : EntitySystem { + /// + /// Maps entries of the enum to how they're specified in shuttle prototype files + /// public static readonly Dictionary ShipyardGroupMapping = new() { {ShipyardConsoleUiKey.Shipyard, "Civilian"}, diff --git a/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml b/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml index 58578a0ad65..07a1a5a83b2 100644 --- a/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml +++ b/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml @@ -16,7 +16,6 @@ - map: ["computerLayerKeys"] state: telesci_key - type: ShipyardListing - name: Empress shuttles: - Fighter - Cleric diff --git a/Resources/Prototypes/_NF/Shipyard/rogue.yml b/Resources/Prototypes/_NF/Shipyard/rogue.yml index 9cb24143192..de155d51d9f 100644 --- a/Resources/Prototypes/_NF/Shipyard/rogue.yml +++ b/Resources/Prototypes/_NF/Shipyard/rogue.yml @@ -4,7 +4,7 @@ description: Small assault vessel with a toggle for going dark in deep space. price: 8200 #the appraisal is 7941$ category: Small - group: Security #Should be only available at a cruiser custom shipyard TODO + group: None shuttlePath: /Maps/Shuttles/rogue.yml - type: gameMap From abd232f4a43355bc646681c3333d875beec8d634 Mon Sep 17 00:00:00 2001 From: fox Date: Wed, 3 Jan 2024 18:13:16 +0300 Subject: [PATCH 7/9] Add a custom shipyard console to the caduceus --- Resources/Maps/Shuttles/caduceus.yml | 82 +++++++++++-------- .../Computers/mothership-computers.yml | 23 ++++++ 2 files changed, 70 insertions(+), 35 deletions(-) diff --git a/Resources/Maps/Shuttles/caduceus.yml b/Resources/Maps/Shuttles/caduceus.yml index 6f15cce9d40..48ea6f8bcb4 100644 --- a/Resources/Maps/Shuttles/caduceus.yml +++ b/Resources/Maps/Shuttles/caduceus.yml @@ -4,20 +4,20 @@ meta: tilemap: 0: Space 12: FloorBar - 26: FloorDark - 31: FloorDarkMono - 35: FloorDarkPlastic - 41: FloorFreezer - 47: FloorGrassLight - 55: FloorHydro - 75: FloorShuttleBlue - 83: FloorSteel - 95: FloorTechMaint - 97: FloorTechMaint3 - 99: FloorWhite - 100: FloorWhiteDiagonal - 111: Lattice - 112: Plating + 28: FloorDark + 33: FloorDarkMono + 37: FloorDarkPlastic + 43: FloorFreezer + 49: FloorGrassLight + 57: FloorHydro + 77: FloorShuttleBlue + 85: FloorSteel + 97: FloorTechMaint + 99: FloorTechMaint3 + 101: FloorWhite + 102: FloorWhiteDiagonal + 113: Lattice + 114: Plating entities: - proto: "" entities: @@ -26,48 +26,48 @@ entities: - name: grid type: MetaData - pos: -0.49010277,-0.49010563 - parent: invalid + parent: 1116 type: Transform - chunks: 0,-1: ind: 0,-1 - tiles: IwAAAAAAcAAAAAAAcAAAAAAAYwAAAAABYwAAAAADYwAAAAADYwAAAAADYwAAAAADYwAAAAAAYwAAAAADYQAAAAACYQAAAAADYQAAAAABYQAAAAADYQAAAAAAYQAAAAACYwAAAAACYwAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAYwAAAAADYwAAAAADYwAAAAABYwAAAAAAcAAAAAAAYQAAAAABYQAAAAAAYQAAAAACYQAAAAAAYQAAAAABZAAAAAABZAAAAAABKQAAAAAAKQAAAAAAKQAAAAAAKQAAAAAAYwAAAAADYwAAAAAAYwAAAAACYwAAAAABcAAAAAAAYQAAAAABYQAAAAADYQAAAAABYQAAAAAAYQAAAAADYwAAAAABZAAAAAABcAAAAAAAKQAAAAAAKQAAAAAAcAAAAAAAYwAAAAADYwAAAAACYwAAAAADYwAAAAACcAAAAAAAYQAAAAACYQAAAAADYQAAAAACYQAAAAADYQAAAAACcAAAAAAAZAAAAAADYwAAAAADYwAAAAABYwAAAAACYwAAAAABYwAAAAADcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAYQAAAAABYQAAAAACYQAAAAAAYwAAAAACZAAAAAABYwAAAAAAYwAAAAABYwAAAAABYwAAAAACYwAAAAADYwAAAAABcAAAAAAAcAAAAAAAbwAAAAAAbwAAAAAAbwAAAAAAcAAAAAAAcAAAAAAAcAAAAAAALwAAAAAAZAAAAAABcAAAAAAAYwAAAAADYwAAAAABYwAAAAADYwAAAAAAYwAAAAACcAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwAAAAAAZAAAAAADcAAAAAAAYwAAAAACYwAAAAACYwAAAAAAYwAAAAADYwAAAAACcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwAAAAAAZAAAAAACYwAAAAAAYwAAAAADYwAAAAAAYwAAAAAAYwAAAAADYwAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAADZAAAAAACYwAAAAAAYwAAAAABYwAAAAADYwAAAAADYwAAAAAAcAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAAAZAAAAAAAYwAAAAAAYwAAAAAAYwAAAAADYwAAAAAAYwAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAAAZAAAAAABYwAAAAABYwAAAAACYwAAAAACYwAAAAAAcAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAAAZAAAAAAAYwAAAAABYwAAAAADYwAAAAADYwAAAAACcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAZAAAAAABYwAAAAADYwAAAAADYwAAAAABcAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAADZAAAAAAAYwAAAAACYwAAAAAAYwAAAAABcAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAACZAAAAAACYwAAAAAAYwAAAAACYwAAAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: JQAAAAAAcgAAAAAAcgAAAAAAZQAAAAABZQAAAAADZQAAAAADZQAAAAADZQAAAAADZQAAAAAAZQAAAAADYwAAAAACYwAAAAADYwAAAAABYwAAAAADYwAAAAAAYwAAAAACZQAAAAACZQAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAZQAAAAADZQAAAAADZQAAAAABZQAAAAAAcgAAAAAAYwAAAAABYwAAAAAAYwAAAAACYwAAAAAAYwAAAAABZgAAAAABZgAAAAABKwAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAZQAAAAADZQAAAAAAZQAAAAACZQAAAAABcgAAAAAAYwAAAAABYwAAAAADYwAAAAABYwAAAAAAYwAAAAADZQAAAAABZgAAAAABcgAAAAAAKwAAAAAAKwAAAAAAcgAAAAAAZQAAAAADZQAAAAACZQAAAAADZQAAAAACcgAAAAAAYwAAAAACYwAAAAADYwAAAAACYwAAAAADYwAAAAACcgAAAAAAZgAAAAADZQAAAAADZQAAAAABZQAAAAACZQAAAAABZQAAAAADcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAYwAAAAABYwAAAAACYwAAAAAAZQAAAAACZgAAAAABZQAAAAAAZQAAAAABZQAAAAABZQAAAAACZQAAAAADZQAAAAABcgAAAAAAcgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAMQAAAAAAZgAAAAABcgAAAAAAZQAAAAADZQAAAAABZQAAAAADZQAAAAAAZQAAAAACcgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAZgAAAAADcgAAAAAAZQAAAAACZQAAAAACZQAAAAAAZQAAAAADZQAAAAACcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAZgAAAAACZQAAAAAAZQAAAAADZQAAAAAAZQAAAAAAZQAAAAADZQAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZQAAAAADZgAAAAACZQAAAAAAZQAAAAABZQAAAAADZQAAAAADZQAAAAAAcgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZQAAAAAAZgAAAAAAZQAAAAAAZQAAAAAAZQAAAAADZQAAAAAAZQAAAAABcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZQAAAAAAZgAAAAABZQAAAAABZQAAAAACZQAAAAACZQAAAAAAcgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZQAAAAAAZgAAAAAAZQAAAAABZQAAAAADZQAAAAADZQAAAAACcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAZgAAAAABZQAAAAADZQAAAAADZQAAAAABcgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZQAAAAADZgAAAAAAZQAAAAACZQAAAAAAZQAAAAABcgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZQAAAAACZgAAAAACZQAAAAAAZQAAAAACZQAAAAADcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 0,0: ind: 0,0 - tiles: YwAAAAAAZAAAAAAAYwAAAAABYwAAAAACYwAAAAACcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAABZAAAAAADYwAAAAAAYwAAAAABYwAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAADZAAAAAAAYwAAAAABYwAAAAADYwAAAAADcAAAAAAAbwAAAAAAAAAAAAAAbwAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAZAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAABZAAAAAACYwAAAAAAYwAAAAABYwAAAAAAYwAAAAABYwAAAAABIwAAAAAAIwAAAAACIwAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAADZAAAAAABZAAAAAADZAAAAAAAZAAAAAACZAAAAAABYwAAAAAAcAAAAAAAIwAAAAACcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAABYwAAAAABYwAAAAADYwAAAAABYwAAAAADYwAAAAACYwAAAAACIwAAAAAAIwAAAAACIwAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAGgAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAAAACGgAAAAACGgAAAAABGgAAAAACDAAAAAABDAAAAAABDAAAAAABcAAAAAAAcAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAAAADGgAAAAADGgAAAAADcAAAAAAADAAAAAABDAAAAAACDAAAAAAADAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAAAABGgAAAAABGgAAAAADcAAAAAAADAAAAAADDAAAAAACDAAAAAACDAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAADAAAAAADDAAAAAADDAAAAAACDAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAbwAAAAAAcAAAAAAADAAAAAACDAAAAAABDAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAbwAAAAAAbwAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: ZQAAAAAAZgAAAAAAZQAAAAABZQAAAAACZQAAAAACcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZQAAAAABZgAAAAADZQAAAAAAZQAAAAABZQAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZQAAAAADZgAAAAAAZQAAAAABZQAAAAADZQAAAAADcgAAAAAAcQAAAAAAAAAAAAAAcQAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAZgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZQAAAAABZgAAAAACZQAAAAAAZQAAAAABZQAAAAAAZQAAAAABZQAAAAABJQAAAAAAJQAAAAACJQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZgAAAAADZgAAAAABZgAAAAADZgAAAAAAZgAAAAACZgAAAAABZQAAAAAAcgAAAAAAJQAAAAACcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZQAAAAABZQAAAAABZQAAAAADZQAAAAABZQAAAAADZQAAAAACZQAAAAACJQAAAAAAJQAAAAACJQAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAHAAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAACHAAAAAACHAAAAAABHAAAAAACDAAAAAABDAAAAAABDAAAAAABcgAAAAAAcgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAADHAAAAAADHAAAAAADcgAAAAAADAAAAAABDAAAAAACDAAAAAAADAAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAABHAAAAAABHAAAAAADcgAAAAAADAAAAAADDAAAAAACDAAAAAACDAAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAADAAAAAADDAAAAAADDAAAAAACDAAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcgAAAAAADAAAAAACDAAAAAABDAAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 0,-2: ind: 0,-2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAbwAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAIwAAAAADcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAbwAAAAAAbwAAAAAAbwAAAAAAbwAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAIwAAAAACcAAAAAAAYwAAAAABYwAAAAABYwAAAAABYwAAAAAAYwAAAAADcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAYQAAAAADYQAAAAAAYQAAAAABYQAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAJQAAAAADcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAJQAAAAACcgAAAAAAZQAAAAABZQAAAAABZQAAAAABZQAAAAAAZQAAAAADcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAYwAAAAADYwAAAAAAYwAAAAABYwAAAAAA version: 6 -1,0: ind: -1,0 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAcAAAAAAAYwAAAAACYwAAAAAAYwAAAAACZAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAYwAAAAAAYwAAAAADYwAAAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAbwAAAAAAAAAAAAAAbwAAAAAAcAAAAAAAYwAAAAACYwAAAAABYwAAAAACZAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAZAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAABIwAAAAAAIwAAAAADYwAAAAAAYwAAAAAAYwAAAAACYwAAAAAAYwAAAAABZAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAIwAAAAACcAAAAAAAYwAAAAADZAAAAAADZAAAAAABZAAAAAABZAAAAAACZAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAABIwAAAAABIwAAAAADYwAAAAABYwAAAAACYwAAAAABYwAAAAACYwAAAAAAYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAGgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAcAAAAAAAcAAAAAAANwAAAAAANwAAAAAANwAAAAAAGgAAAAACGgAAAAAAGgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAANwAAAAAANwAAAAAANwAAAAAANwAAAAAAcAAAAAAAGgAAAAADGgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAANwAAAAAANwAAAAAANwAAAAAANwAAAAAAcAAAAAAAGgAAAAACGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAANwAAAAAANwAAAAAANwAAAAAANwAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAANwAAAAAANwAAAAAANwAAAAAAcAAAAAAAbwAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAbwAAAAAAcAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcgAAAAAAZQAAAAACZQAAAAAAZQAAAAACZgAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAZQAAAAAAZQAAAAADZQAAAAAAZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcQAAAAAAAAAAAAAAcQAAAAAAcgAAAAAAZQAAAAACZQAAAAABZQAAAAACZgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAZgAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAAABJQAAAAAAJQAAAAADZQAAAAAAZQAAAAAAZQAAAAACZQAAAAAAZQAAAAABZgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAJQAAAAACcgAAAAAAZQAAAAADZgAAAAADZgAAAAABZgAAAAABZgAAAAACZgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAAABJQAAAAABJQAAAAADZQAAAAABZQAAAAACZQAAAAABZQAAAAACZQAAAAAAZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAHAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcgAAAAAAcgAAAAAAOQAAAAAAOQAAAAAAOQAAAAAAHAAAAAACHAAAAAAAHAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAOQAAAAAAOQAAAAAAOQAAAAAAOQAAAAAAcgAAAAAAHAAAAAADHAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAOQAAAAAAOQAAAAAAOQAAAAAAOQAAAAAAcgAAAAAAHAAAAAACHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAOQAAAAAAOQAAAAAAOQAAAAAAOQAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAOQAAAAAAOQAAAAAAOQAAAAAAcgAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -1,-1: ind: -1,-1 - tiles: YQAAAAAAYQAAAAADYQAAAAACYQAAAAAAYQAAAAABcAAAAAAAXwAAAAAAXwAAAAAAcAAAAAAAHwAAAAADHwAAAAAAHwAAAAADHwAAAAACHwAAAAABcAAAAAAAIwAAAAAAYQAAAAACYQAAAAADYQAAAAAAYQAAAAAAYQAAAAABXwAAAAAAXwAAAAAAXwAAAAAAXwAAAAAAYwAAAAAAYwAAAAAAYwAAAAABYwAAAAACYwAAAAADYwAAAAADYwAAAAADYQAAAAACYQAAAAAAYQAAAAAAYQAAAAADYQAAAAABXwAAAAAAXwAAAAAAXwAAAAAAXwAAAAAAZAAAAAADZAAAAAABZAAAAAABZAAAAAACZAAAAAADZAAAAAABZAAAAAACYQAAAAACYQAAAAAAYQAAAAADYQAAAAADYQAAAAAAcAAAAAAAXwAAAAAAXwAAAAAAcAAAAAAAUwAAAAAAUwAAAAAAUwAAAAADUwAAAAADYwAAAAAAYwAAAAAAZAAAAAADYQAAAAADYQAAAAAAYQAAAAACYQAAAAACcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAYwAAAAAAYwAAAAABZAAAAAACcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAbwAAAAAAbwAAAAAAbwAAAAAAcAAAAAAAcAAAAAAAKQAAAAAAKQAAAAAAKQAAAAAAKQAAAAAAYwAAAAADYwAAAAACZAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAcAAAAAAAKQAAAAAAKQAAAAAAKQAAAAAAKQAAAAAAYwAAAAADYwAAAAADZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAKQAAAAAAKQAAAAAAKQAAAAAAKQAAAAAAYwAAAAABYwAAAAADZAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAYwAAAAADcAAAAAAAcAAAAAAAYwAAAAABYwAAAAABZAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAcAAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAAYwAAAAADZAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAASwAAAAAASwAAAAAASwAAAAAASwAAAAAAYwAAAAADZAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAcAAAAAAASwAAAAAASwAAAAAASwAAAAAAcAAAAAAAZAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAASwAAAAAASwAAAAAASwAAAAAAcAAAAAAAZAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAZAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAcAAAAAAAYwAAAAABYwAAAAAAYwAAAAAAZAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAYwAAAAADYwAAAAADYwAAAAABZAAAAAAD + tiles: YwAAAAAAYwAAAAADYwAAAAACYwAAAAAAYwAAAAABcgAAAAAAYQAAAAAAYQAAAAAAcgAAAAAAIQAAAAADIQAAAAAAIQAAAAADIQAAAAACIQAAAAABcgAAAAAAJQAAAAAAYwAAAAACYwAAAAADYwAAAAAAYwAAAAAAYwAAAAABYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAZQAAAAAAZQAAAAAAZQAAAAABZQAAAAACZQAAAAADZQAAAAADZQAAAAADYwAAAAACYwAAAAAAYwAAAAAAYwAAAAADYwAAAAABYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAZgAAAAADZgAAAAABZgAAAAABZgAAAAACZgAAAAADZgAAAAABZgAAAAACYwAAAAACYwAAAAAAYwAAAAADYwAAAAADYwAAAAAAcgAAAAAAYQAAAAAAYQAAAAAAcgAAAAAAVQAAAAAAVQAAAAAAVQAAAAADVQAAAAADZQAAAAAAZQAAAAAAZgAAAAADYwAAAAADYwAAAAAAYwAAAAACYwAAAAACcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAZQAAAAAAZQAAAAABZgAAAAACcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcgAAAAAAcgAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAZQAAAAADZQAAAAACZgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcgAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAZQAAAAADZQAAAAADZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAZQAAAAABZQAAAAADZgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAZQAAAAADcgAAAAAAcgAAAAAAZQAAAAABZQAAAAABZgAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcgAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAZQAAAAADZgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAZQAAAAADZgAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcgAAAAAATQAAAAAATQAAAAAATQAAAAAAcgAAAAAAZgAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAATQAAAAAATQAAAAAATQAAAAAAcgAAAAAAZgAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAZgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcgAAAAAAZQAAAAABZQAAAAAAZQAAAAAAZgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAZQAAAAADZQAAAAADZQAAAAABZgAAAAAD version: 6 -1,-2: ind: -1,-2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAbwAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAbwAAAAAAbwAAAAAAbwAAAAAAbwAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAIwAAAAABYQAAAAAAYQAAAAABYQAAAAACYQAAAAADYQAAAAACcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAHwAAAAADHwAAAAABHwAAAAAAHwAAAAABHwAAAAACcAAAAAAAIwAAAAAD + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAJQAAAAABYwAAAAAAYwAAAAABYwAAAAACYwAAAAADYwAAAAACcgAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAIQAAAAADIQAAAAABIQAAAAAAIQAAAAABIQAAAAACcgAAAAAAJQAAAAAD version: 6 -2,-1: ind: -2,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -2,-2: ind: -2,-2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAA version: 6 1,-1: ind: 1,-1 - tiles: YQAAAAABcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAABcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAADcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAABcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAABcAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: YwAAAAABcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAABcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAADcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAABcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAABcgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 1,-2: ind: 1,-2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAABcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAABcgAAAAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 type: MapGrid - type: Broadphase @@ -3714,6 +3714,23 @@ entities: pos: 16.5,-15.5 parent: 1 type: Transform +- proto: CaduceusMothershipComputer + entities: + - uid: 1117 + components: + - pos: -1.5,6.5 + parent: 1 + type: Transform + - containers: + ShipyardConsole-targetId: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + board: !type:Container + showEnts: False + occludes: True + ents: [] + type: ContainerContainer - proto: Chair entities: - uid: 739 @@ -3739,16 +3756,6 @@ entities: - pos: 2.5,6.5 parent: 1 type: Transform - - uid: 1116 - components: - - pos: -1.5,6.5 - parent: 1 - type: Transform - - uid: 1117 - components: - - pos: 0.5,6.5 - parent: 1 - type: Transform - uid: 1143 components: - rot: -1.5707963267948966 rad @@ -3767,6 +3774,11 @@ entities: pos: -1.5,-9.5 parent: 1 type: Transform + - uid: 1464 + components: + - pos: 0.5,6.5 + parent: 1 + type: Transform - proto: ChairOfficeDark entities: - uid: 1142 diff --git a/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml b/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml index 07a1a5a83b2..a459679f345 100644 --- a/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml +++ b/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml @@ -20,3 +20,26 @@ - Fighter - Cleric - Rogue + +# The caduceus console +- type: entity + id: CaduceusMothershipComputer + name: Caduceus mothership console + parent: BaseMothershipComputer + components: + - type: Sprite + sprite: Structures/Machines/computers.rsi + layers: + - map: ["computerLayerBody"] + state: computer + - map: ["computerLayerKeyboard"] + state: generic_keyboard + - map: ["computerLayerScreen"] + state: medcomp + - map: ["computerLayerKeys"] + state: med_key + - type: ShipyardListing + shuttles: + - Pulse + - searchlight # lowercase intended + - MailTruck From aa8fc4aa21807c6e79cf2c8ced9c3d70a643a322 Mon Sep 17 00:00:00 2001 From: Dvir Date: Sun, 14 Jan 2024 02:45:33 +0200 Subject: [PATCH 8/9] Unmail your mail --- .../Structures/Machines/Computers/mothership-computers.yml | 3 +-- Resources/Prototypes/_NF/Shipyard/searchlight.yml | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml b/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml index 835d979450e..63a6341f0f0 100644 --- a/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml +++ b/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml @@ -41,5 +41,4 @@ - type: ShipyardListing shuttles: - Pulse - - searchlight # lowercase intended - - MailTruck + - Searchlight diff --git a/Resources/Prototypes/_NF/Shipyard/searchlight.yml b/Resources/Prototypes/_NF/Shipyard/searchlight.yml index 4b1e01ccb0b..ff6bd638501 100644 --- a/Resources/Prototypes/_NF/Shipyard/searchlight.yml +++ b/Resources/Prototypes/_NF/Shipyard/searchlight.yml @@ -1,5 +1,5 @@ - type: vessel - id: searchlight + id: Searchlight name: NM Searchlight description: A small vessel outfitted for the search and recovery of wounded NT personnel. Primarily for recovery. Search though? Well. You got that medical tracker implanted, right? price: 29500 @@ -8,12 +8,12 @@ shuttlePath: /Maps/Shuttles/searchlight.yml - type: gameMap - id: searchlight + id: Searchlight mapName: 'NM Searchlight' mapPath: /Maps/Shuttles/searchlight.yml minPlayers: 0 stations: - searchlight: + Searchlight: stationProto: StandardFrontierVessel components: - type: StationNameSetup From eadd16ccdafdc4c5931adad246dec844f0109b4b Mon Sep 17 00:00:00 2001 From: Dvir Date: Sun, 14 Jan 2024 03:08:09 +0200 Subject: [PATCH 9/9] Medical Shipyard RSI --- .../Computers/mothership-computers.yml | 8 ++-- .../computers.rsi/computer_medical.png | Bin 0 -> 2016 bytes .../Machines/computers.rsi/meta.json | 36 +++++++++++++++++- .../computers.rsi/shipyard_medical.png | Bin 0 -> 2461 bytes 4 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 Resources/Textures/_NF/Structures/Machines/computers.rsi/computer_medical.png create mode 100644 Resources/Textures/_NF/Structures/Machines/computers.rsi/shipyard_medical.png diff --git a/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml b/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml index 63a6341f0f0..356b4a065c6 100644 --- a/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml +++ b/Resources/Prototypes/_NF/Entities/Structures/Machines/Computers/mothership-computers.yml @@ -28,16 +28,16 @@ parent: BaseMothershipComputer components: - type: Sprite - sprite: Structures/Machines/computers.rsi + sprite: _NF/Structures/Machines/computers.rsi layers: - map: ["computerLayerBody"] - state: computer + state: computer_medical - map: ["computerLayerKeyboard"] state: generic_keyboard - map: ["computerLayerScreen"] - state: medcomp + state: shipyard_medical - map: ["computerLayerKeys"] - state: med_key + state: telesci_key - type: ShipyardListing shuttles: - Pulse diff --git a/Resources/Textures/_NF/Structures/Machines/computers.rsi/computer_medical.png b/Resources/Textures/_NF/Structures/Machines/computers.rsi/computer_medical.png new file mode 100644 index 0000000000000000000000000000000000000000..bb79dfb822b5a3c9fb41942d6d842414d3a2637c GIT binary patch literal 2016 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 literal 0 HcmV?d00001