diff --git a/Content.Client/Entry/EntryPoint.cs b/Content.Client/Entry/EntryPoint.cs index 73c3187a6a..fee72f5096 100644 --- a/Content.Client/Entry/EntryPoint.cs +++ b/Content.Client/Entry/EntryPoint.cs @@ -98,6 +98,7 @@ namespace Content.Client.Entry prototypes.RegisterIgnore("advertisementsPack"); prototypes.RegisterIgnore("metabolizerType"); prototypes.RegisterIgnore("metabolismGroup"); + prototypes.RegisterIgnore("salvageMap"); prototypes.RegisterIgnore("gamePreset"); prototypes.RegisterIgnore("gameRule"); diff --git a/Content.Client/Entry/IgnoredComponents.cs b/Content.Client/Entry/IgnoredComponents.cs index d3e0e640c7..1254b068e4 100644 --- a/Content.Client/Entry/IgnoredComponents.cs +++ b/Content.Client/Entry/IgnoredComponents.cs @@ -126,6 +126,8 @@ namespace Content.Client.Entry "Toys", "SurgeryTool", "EmitSoundOnThrow", + "Salvage", + "SalvageMagnet", "Flash", "Docking", "Telecrystal", diff --git a/Content.Server/Atmos/Commands/FixGridAtmos.cs b/Content.Server/Atmos/Commands/FixGridAtmos.cs index 4dd76ba00c..b0a6fee2ac 100644 --- a/Content.Server/Atmos/Commands/FixGridAtmos.cs +++ b/Content.Server/Atmos/Commands/FixGridAtmos.cs @@ -29,7 +29,7 @@ namespace Content.Server.Atmos.Commands var entityManager = IoCManager.Resolve(); var atmosphereSystem = EntitySystem.Get(); - var mixtures = new GasMixture[5]; + var mixtures = new GasMixture[6]; for (var i = 0; i < mixtures.Length; i++) mixtures[i] = new GasMixture(Atmospherics.CellVolume) { Temperature = Atmospherics.T20C }; @@ -48,6 +48,11 @@ namespace Content.Server.Atmos.Commands // 4: Plasma (GM) mixtures[4].AdjustMoles(Gas.Plasma, Atmospherics.MolesCellGasMiner); + // 5: Instant Plasmafire (r) + mixtures[5].AdjustMoles(Gas.Oxygen, Atmospherics.MolesCellGasMiner); + mixtures[5].AdjustMoles(Gas.Plasma, Atmospherics.MolesCellGasMiner); + mixtures[5].Temperature = 5000f; + foreach (var gid in args) { // I like offering detailed error messages, that's why I don't use one of the extension methods. diff --git a/Content.Server/Atmos/GasMixture.cs b/Content.Server/Atmos/GasMixture.cs index bafb44608f..4a3700f77b 100644 --- a/Content.Server/Atmos/GasMixture.cs +++ b/Content.Server/Atmos/GasMixture.cs @@ -116,7 +116,7 @@ namespace Content.Server.Atmos [MethodImpl(MethodImplOptions.AggressiveInlining)] public void SetMoles(int gasId, float quantity) { - if (float.IsInfinity(quantity) || float.IsNaN(quantity) || float.IsNegative(quantity)) + if (!float.IsFinite(quantity) || float.IsNegative(quantity)) throw new ArgumentException($"Invalid quantity \"{quantity}\" specified!", nameof(quantity)); if (!Immutable) @@ -134,14 +134,14 @@ namespace Content.Server.Atmos { if (!Immutable) { - if (float.IsInfinity(quantity) || float.IsNaN(quantity)) + if (!float.IsFinite(quantity)) throw new ArgumentException($"Invalid quantity \"{quantity}\" specified!", nameof(quantity)); Moles[gasId] += quantity; var moles = Moles[gasId]; - if (float.IsInfinity(moles) || float.IsNaN(moles) || float.IsNegative(moles)) + if (!float.IsFinite(moles) || float.IsNegative(moles)) throw new Exception($"Invalid mole quantity \"{moles}\" in gas Id {gasId} after adjusting moles with \"{quantity}\"!"); } } diff --git a/Content.Server/Database/ServerDbBase.cs b/Content.Server/Database/ServerDbBase.cs index 8c912e0a04..9b219ba4d8 100644 --- a/Content.Server/Database/ServerDbBase.cs +++ b/Content.Server/Database/ServerDbBase.cs @@ -487,7 +487,16 @@ namespace Content.Server.Database .Where(player => playerIds.Contains(player.UserId)) .ToListAsync(); - round.Players.AddRange(players); + var playerSet = new HashSet(round.Players.Select(player => player.UserId)); + foreach (var player in players) + { + if (playerSet.Contains(player.UserId)) + { + continue; + } + + round.Players.Add(player); + } await db.DbContext.SaveChangesAsync(); } diff --git a/Content.Server/Doors/Components/AirlockComponent.cs b/Content.Server/Doors/Components/AirlockComponent.cs index b03f0dcb40..48f6f060b2 100644 --- a/Content.Server/Doors/Components/AirlockComponent.cs +++ b/Content.Server/Doors/Components/AirlockComponent.cs @@ -153,27 +153,29 @@ namespace Content.Server.Doors.Components public void UpdateWiresStatus() { - if (DoorComponent == null) - { - return; - } + if (WiresComponent == null) return; - var powerLight = new StatusLightData(Color.Yellow, StatusLightState.On, "POWR"); - if (PowerWiresPulsed) + var mainPowerCut = WiresComponent.IsWireCut(Wires.MainPower); + var backupPowerCut = WiresComponent.IsWireCut(Wires.BackupPower); + var statusLightState = PowerWiresPulsed ? StatusLightState.BlinkingFast : StatusLightState.On; + StatusLightData powerLight; + if (mainPowerCut && backupPowerCut) { - powerLight = new StatusLightData(Color.Yellow, StatusLightState.BlinkingFast, "POWR"); + powerLight = new StatusLightData(Color.DarkGoldenrod, StatusLightState.Off, "POWER"); } - else if (WiresComponent != null && - WiresComponent.IsWireCut(Wires.MainPower) && - WiresComponent.IsWireCut(Wires.BackupPower)) + else if (mainPowerCut != backupPowerCut) { - powerLight = new StatusLightData(Color.Red, StatusLightState.On, "POWR"); + powerLight = new StatusLightData(Color.Gold, statusLightState, "POWER"); + } + else + { + powerLight = new StatusLightData(Color.Yellow, statusLightState, "POWER"); } var boltStatus = new StatusLightData(Color.Red, BoltsDown ? StatusLightState.On : StatusLightState.Off, "BOLT"); var boltLightsStatus = new StatusLightData(Color.Lime, - _boltLightsWirePulsed ? StatusLightState.On : StatusLightState.Off, "BLTL"); + _boltLightsWirePulsed ? StatusLightState.On : StatusLightState.Off, "BOLT LED"); var ev = new DoorGetCloseTimeModifierEvent(); IoCManager.Resolve().EventBus.RaiseLocalEvent(Owner, ev, false); @@ -185,17 +187,13 @@ namespace Content.Server.Doors.Components "TIME"); var safetyStatus = - new StatusLightData(Color.Red, Safety ? StatusLightState.On : StatusLightState.Off, "SAFE"); + new StatusLightData(Color.Red, Safety ? StatusLightState.On : StatusLightState.Off, "SAFETY"); - if (WiresComponent == null) - { - return; - } WiresComponent.SetStatus(AirlockWireStatus.PowerIndicator, powerLight); WiresComponent.SetStatus(AirlockWireStatus.BoltIndicator, boltStatus); WiresComponent.SetStatus(AirlockWireStatus.BoltLightIndicator, boltLightsStatus); - WiresComponent.SetStatus(AirlockWireStatus.AIControlIndicator, new StatusLightData(Color.Purple, StatusLightState.BlinkingSlow, "AICT")); + WiresComponent.SetStatus(AirlockWireStatus.AIControlIndicator, new StatusLightData(Color.Purple, StatusLightState.BlinkingSlow, "AI CTRL")); WiresComponent.SetStatus(AirlockWireStatus.TimingIndicator, timingStatus); WiresComponent.SetStatus(AirlockWireStatus.SafetyIndicator, safetyStatus); } @@ -219,7 +217,7 @@ namespace Content.Server.Doors.Components } ReceiverComponent.PowerDisabled = - WiresComponent.IsWireCut(Wires.MainPower) || + WiresComponent.IsWireCut(Wires.MainPower) && WiresComponent.IsWireCut(Wires.BackupPower); } diff --git a/Content.Server/Maps/Conditions/HolidayMapCondition.cs b/Content.Server/Maps/Conditions/HolidayMapCondition.cs new file mode 100644 index 0000000000..a68057380e --- /dev/null +++ b/Content.Server/Maps/Conditions/HolidayMapCondition.cs @@ -0,0 +1,22 @@ +using System.Linq; +using Content.Server.Holiday; +using Robust.Shared.GameObjects; +using Robust.Shared.IoC; +using Robust.Shared.Log; +using Robust.Shared.Serialization.Manager.Attributes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; + +namespace Content.Server.Maps.Conditions; + +public class HolidayMapCondition : GameMapCondition +{ + [DataField("holidays")] + public string[] Holidays { get; } = default!; + + public override bool Check(GameMapPrototype map) + { + var holidaySystem = EntitySystem.Get(); + + return Holidays.Any(holiday => holidaySystem.IsCurrentlyHoliday(holiday)) ^ Inverted; + } +} diff --git a/Content.Server/Maps/GameMapCondition.cs b/Content.Server/Maps/GameMapCondition.cs new file mode 100644 index 0000000000..7a9e66d054 --- /dev/null +++ b/Content.Server/Maps/GameMapCondition.cs @@ -0,0 +1,11 @@ +using Robust.Shared.Serialization.Manager.Attributes; + +namespace Content.Server.Maps; + +[ImplicitDataDefinitionForInheritors] +public abstract class GameMapCondition +{ + [DataField("inverted")] + public bool Inverted { get; } + public abstract bool Check(GameMapPrototype map); +} diff --git a/Content.Server/Maps/GameMapManager.cs b/Content.Server/Maps/GameMapManager.cs index efabeeae3e..974c89057c 100644 --- a/Content.Server/Maps/GameMapManager.cs +++ b/Content.Server/Maps/GameMapManager.cs @@ -111,7 +111,9 @@ public class GameMapManager : IGameMapManager private bool IsMapEligible(GameMapPrototype map) { - return map.MaxPlayers >= _playerManager.PlayerCount && map.MinPlayers <= _playerManager.PlayerCount; + return map.MaxPlayers >= _playerManager.PlayerCount && + map.MinPlayers <= _playerManager.PlayerCount && + map.Conditions.All(x => x.Check(map)); } private bool TryLookupMap(string gameMap, [NotNullWhen(true)] out GameMapPrototype? map) diff --git a/Content.Server/Maps/GameMapPrototype.cs b/Content.Server/Maps/GameMapPrototype.cs index d64fe04192..09c0c98ab4 100644 --- a/Content.Server/Maps/GameMapPrototype.cs +++ b/Content.Server/Maps/GameMapPrototype.cs @@ -66,6 +66,9 @@ public class GameMapPrototype : IPrototype [DataField("votable")] public bool Votable { get; } = true; + [DataField("conditions")] + public List Conditions { get; } = new(); + /// /// Jobs used at round start should the station run out of job slots. /// Doesn't necessarily mean the station has infinite slots for the given jobs midround! diff --git a/Content.Server/Salvage/SalvageMagnetComponent.cs b/Content.Server/Salvage/SalvageMagnetComponent.cs new file mode 100644 index 0000000000..bcb20e1357 --- /dev/null +++ b/Content.Server/Salvage/SalvageMagnetComponent.cs @@ -0,0 +1,51 @@ +using Robust.Shared.GameObjects; +using Robust.Shared.Maths; +using Robust.Shared.Serialization.Manager.Attributes; +using Robust.Shared.ViewVariables; +using System; + +namespace Content.Server.Salvage +{ + /// + /// A salvage magnet. + /// + [RegisterComponent] + [ComponentProtoName("SalvageMagnet")] + public class SalvageMagnetComponent : Component + { + /// + /// Offset relative to magnet that salvage should spawn. + /// Keep in sync with marker sprite (if any???) + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField("offset")] + public Vector2 Offset = Vector2.Zero; // TODO: Maybe specify a direction, and find the nearest edge of the magnets grid the salvage can fit at + + + /// + /// The entity attached to the magnet + /// + [ViewVariables(VVAccess.ReadOnly)] + [DataField("attachedEntity")] + public EntityUid? AttachedEntity = null; + + /// + /// Current state of this magnet + /// + [ViewVariables(VVAccess.ReadOnly)] + [DataField("magnetState")] + public MagnetState MagnetState = MagnetState.Inactive; + } + public record struct MagnetState(MagnetStateType StateType, TimeSpan Until) + { + public static readonly MagnetState Inactive = new (MagnetStateType.Inactive, TimeSpan.Zero); + }; + public enum MagnetStateType + { + Inactive, + Attaching, + Holding, + Detaching, + CoolingDown, + } +} diff --git a/Content.Server/Salvage/SalvageMapPrototype.cs b/Content.Server/Salvage/SalvageMapPrototype.cs new file mode 100644 index 0000000000..7ff63be143 --- /dev/null +++ b/Content.Server/Salvage/SalvageMapPrototype.cs @@ -0,0 +1,38 @@ +using System.Collections.Generic; +using System.Linq; +using Content.Server.Objectives.Interfaces; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.Manager.Attributes; +using Robust.Shared.ViewVariables; + +namespace Content.Server.Salvage +{ + [Prototype("salvageMap")] + public class SalvageMapPrototype : IPrototype + { + [ViewVariables] + [DataField("id", required: true)] + public string ID { get; } = default!; + + /// + /// Relative directory path to the given map, i.e. `Maps/Salvage/test.yml` + /// + [ViewVariables] + [DataField("mapPath", required: true)] + public string MapPath { get; } = default!; + + /// + /// Size *from 0,0* in units of the map (used to determine if it fits) + /// + [ViewVariables] + [DataField("size", required: true)] + public float Size { get; } = 1.0f; // TODO: Find a way to figure out the size automatically + + /// + /// Name for admin use + /// + [ViewVariables] + [DataField("name")] + public string Name { get; } = ""; + } +} diff --git a/Content.Server/Salvage/SalvageSystem.cs b/Content.Server/Salvage/SalvageSystem.cs new file mode 100644 index 0000000000..5c0e3c0096 --- /dev/null +++ b/Content.Server/Salvage/SalvageSystem.cs @@ -0,0 +1,378 @@ +using Content.Server.Chat.Managers; +using Content.Server.GameTicking; +using Content.Shared.CCVar; +using Content.Shared.Examine; +using Content.Shared.GameTicking; +using Content.Shared.Interaction; +using Content.Shared.Popups; +using Robust.Server.Maps; +using Robust.Shared.Configuration; +using Robust.Shared.GameObjects; +using Robust.Shared.IoC; +using Robust.Shared.Localization; +using Robust.Shared.Log; +using Robust.Shared.Map; +using Robust.Shared.Maths; +using Robust.Shared.Player; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; +using Robust.Shared.Timing; +using Robust.Shared.Utility; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Content.Server.Salvage +{ + public class SalvageSystem : EntitySystem + { + [Dependency] private readonly IChatManager _chatManager = default!; + [Dependency] private readonly IPauseManager _pauseManager = default!; + [Dependency] private readonly IMapLoader _mapLoader = default!; + [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly IConfigurationManager _configurationManager = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly SharedPopupSystem _popupSystem = default!; + + private static readonly TimeSpan AttachingTime = TimeSpan.FromSeconds(30); + private static readonly TimeSpan HoldTime = TimeSpan.FromMinutes(4); + private static readonly TimeSpan DetachingTime = TimeSpan.FromSeconds(30); + private static readonly TimeSpan CooldownTime = TimeSpan.FromMinutes(1); + + private readonly Dictionary _salvageGridStates = new(); + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnInteractHand); + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnMagnetRemoval); + SubscribeLocalEvent(OnGridRemoval); + + // Can't use RoundRestartCleanupEvent, I need to clean up before the grid, and components are gone to prevent the announcements + SubscribeLocalEvent(OnRoundEnd); + } + + private void OnRoundEnd(GameRunLevelChangedEvent ev) + { + if(ev.New != GameRunLevel.InRound) + { + _salvageGridStates.Clear(); + } + } + + private void OnGridRemoval(GridRemovalEvent ev) + { + // If we ever want to give magnets names, and announce them individually, we would need to loop this, before removing it. + if (_salvageGridStates.Remove(ev.GridId)) + { + Report("salvage-system-announcement-spawn-magnet-lost"); + // For the very unlikely possibility that the salvage magnet was on a salvage, we will not return here + } + foreach(var gridState in _salvageGridStates) + { + foreach(var magnet in gridState.Value.ActiveMagnets) + { + if (magnet.AttachedEntity == ev.EntityUid) + { + magnet.AttachedEntity = null; + magnet.MagnetState = MagnetState.Inactive; + Report("salvage-system-announcement-lost"); + return; + } + } + } + } + + private void OnMagnetRemoval(EntityUid uid, SalvageMagnetComponent component, ComponentShutdown args) + { + if (component.MagnetState.StateType == MagnetStateType.Inactive) return; + + var magnetTranform = EntityManager.GetComponent(component.Owner); + if (!_salvageGridStates.TryGetValue(magnetTranform.GridID, out var salvageGridState)) + { + return; + } + salvageGridState.ActiveMagnets.Remove(component); + Report("salvage-system-announcement-spawn-magnet-lost"); + if (component.AttachedEntity.HasValue) + { + SafeDeleteSalvage(component.AttachedEntity.Value); + component.AttachedEntity = null; + Report("salvage-system-announcement-lost"); + } + else if (component.MagnetState is { StateType: MagnetStateType.Attaching }) + { + Report("salvage-system-announcement-spawn-no-debris-available"); + } + component.MagnetState = MagnetState.Inactive; + } + + private void OnExamined(EntityUid uid, SalvageMagnetComponent component, ExaminedEvent args) + { + if (!args.IsInDetailsRange) + return; + switch (component.MagnetState.StateType) + { + case MagnetStateType.Inactive: + args.PushMarkup(Loc.GetString("salvage-system-magnet-examined-inactive")); + break; + case MagnetStateType.Attaching: + args.PushMarkup(Loc.GetString("salvage-system-magnet-examined-pulling-in")); + break; + case MagnetStateType.Detaching: + args.PushMarkup(Loc.GetString("salvage-system-magnet-examined-releasing")); + break; + case MagnetStateType.CoolingDown: + args.PushMarkup(Loc.GetString("salvage-system-magnet-examined-cooling-down")); + break; + case MagnetStateType.Holding: + var magnetTranform = EntityManager.GetComponent(component.Owner); + if (_salvageGridStates.TryGetValue(magnetTranform.GridID, out var salvageGridState)) + { + var remainingTime = component.MagnetState.Until - salvageGridState.CurrentTime; + args.PushMarkup(Loc.GetString("salvage-system-magnet-examined-active", ("timeLeft", remainingTime.TotalSeconds))); + } + else + { + Logger.WarningS("salvage", "Failed to load salvage grid state, can't display remaining time"); + } + break; + default: + throw new NotImplementedException("Unexpected magnet state type"); + } + } + + private void OnInteractHand(EntityUid uid, SalvageMagnetComponent component, InteractHandEvent args) + { + if (args.Handled) + return; + args.Handled = true; + StartMagnet(component, args.User); + } + + private void StartMagnet(SalvageMagnetComponent component, EntityUid user) + { + switch (component.MagnetState.StateType) + { + case MagnetStateType.Inactive: + ShowPopup("salvage-system-report-activate-success", component, user); + var magnetTranform = EntityManager.GetComponent(component.Owner); + SalvageGridState? gridState; + if (!_salvageGridStates.TryGetValue(magnetTranform.GridID, out gridState)) + { + gridState = new SalvageGridState(); + _salvageGridStates[magnetTranform.GridID] = gridState; + } + gridState.ActiveMagnets.Add(component); + component.MagnetState = new MagnetState(MagnetStateType.Attaching, gridState.CurrentTime + AttachingTime); + Report("salvage-system-report-activate-success"); + break; + case MagnetStateType.Attaching: + case MagnetStateType.Holding: + ShowPopup("salvage-system-report-already-active", component, user); + break; + case MagnetStateType.Detaching: + case MagnetStateType.CoolingDown: + ShowPopup("salvage-system-report-cooling-down", component, user); + break; + default: + throw new NotImplementedException("Unexpected magnet state type"); + } + } + private void ShowPopup(string messageKey, SalvageMagnetComponent component, EntityUid user) + { + _popupSystem.PopupEntity(Loc.GetString(messageKey), component.Owner, Filter.Entities(user)); + } + + private void SafeDeleteSalvage(EntityUid salvage) + { + if(!EntityManager.TryGetComponent(salvage, out var salvageTransform)) + { + Logger.ErrorS("salvage", "Salvage entity was missing transform component"); + return; + } + + var parentTransform = salvageTransform.Parent!; + foreach (var player in Filter.Empty().AddInGrid(salvageTransform.GridID, EntityManager).Recipients) + { + if (player.AttachedEntity.HasValue) + { + var playerTransform = EntityManager.GetComponent(player.AttachedEntity.Value); + playerTransform.AttachParent(parentTransform); + } + } + EntityManager.QueueDeleteEntity(salvage); + } + + private bool TryGetSalvagePlacementLocation(out MapCoordinates coords, out Angle angle) + { + coords = MapCoordinates.Nullspace; + angle = Angle.Zero; + foreach (var (smc, tsc) in EntityManager.EntityQuery(true)) + { + coords = new EntityCoordinates(smc.Owner, smc.Offset).ToMap(EntityManager); + var grid = tsc.GridID; + if (grid != GridId.Invalid) + { + // Has a valid grid - synchronize angle so that salvage doesn't have to deal with cross-grid manipulation issues + angle = tsc.WorldRotation; + } + return true; + } + return false; + } + + private IEnumerable GetAllSalvageMaps() => + _prototypeManager.EnumeratePrototypes(); + + private bool SpawnSalvage(SalvageMagnetComponent component) + { + if (!TryGetSalvagePlacementLocation(out var spl, out var spAngle)) + { + Report("salvage-system-announcement-spawn-magnet-lost"); + return false; + } + + SalvageMapPrototype? map = null; + + var forcedSalvage = _configurationManager.GetCVar(CCVars.SalvageForced); + List allSalvageMaps; + if (string.IsNullOrWhiteSpace(forcedSalvage)) + { + allSalvageMaps = GetAllSalvageMaps().ToList(); + } + else + { + allSalvageMaps = new(); + if (_prototypeManager.TryIndex(forcedSalvage, out map)) + { + allSalvageMaps.Add(map); + } + else + { + Logger.ErrorS("c.s.salvage", $"Unable to get forced salvage map prototype {forcedSalvage}"); + } + } + for (var i = 0; i < allSalvageMaps.Count; i++) + { + map = _random.PickAndTake(allSalvageMaps); + var box2 = Box2.CenteredAround(spl.Position, new Vector2(map.Size * 2.0f, map.Size * 2.0f)); + var box2rot = new Box2Rotated(box2, spAngle, spl.Position); + + // This doesn't stop it from spawning on top of random things in space + // Might be better like this, ghosts could stop it before + if (_mapManager.FindGridsIntersecting(spl.MapId, box2rot).Any()) + { + map = null; + } + else + { + break; + } + } + + if (map == null) + { + Report("salvage-system-announcement-spawn-no-debris-available"); + return false; + } + var bp = _mapLoader.LoadBlueprint(spl.MapId, map.MapPath); + if (bp == null) + { + Report("salvage-system-announcement-spawn-debris-disintegrated"); + return false; + } + var salvageEntityId = bp.GridEntityId; + component.AttachedEntity = salvageEntityId; + + var pulledTransform = EntityManager.GetComponent(salvageEntityId); + pulledTransform.Coordinates = EntityCoordinates.FromMap(_mapManager, spl); + pulledTransform.WorldRotation = spAngle; + + Report("salvage-system-announcement-arrived", ("timeLeft", HoldTime.TotalSeconds)); + return true; + } + private void Report(string messageKey) => + _chatManager.DispatchStationAnnouncement(Loc.GetString(messageKey), Loc.GetString("salvage-system-announcement-source")); + private void Report(string messageKey, params (string, object)[] args) => + _chatManager.DispatchStationAnnouncement(Loc.GetString(messageKey, args), Loc.GetString("salvage-system-announcement-source")); + + private void Transition(SalvageMagnetComponent magnet, TimeSpan currentTime) + { + switch (magnet.MagnetState.StateType) + { + case MagnetStateType.Attaching: + if (SpawnSalvage(magnet)) + { + magnet.MagnetState = new MagnetState(MagnetStateType.Holding, currentTime + HoldTime); + } + else + { + magnet.MagnetState = new MagnetState(MagnetStateType.CoolingDown, currentTime + CooldownTime); + } + break; + case MagnetStateType.Holding: + Report("salvage-system-announcement-losing", ("timeLeft", DetachingTime.TotalSeconds)); + magnet.MagnetState = new MagnetState(MagnetStateType.Detaching, currentTime + DetachingTime); + break; + case MagnetStateType.Detaching: + if (magnet.AttachedEntity.HasValue) + { + SafeDeleteSalvage(magnet.AttachedEntity.Value); + } + else + { + Logger.ErrorS("salvage", "Salvage detaching was expecting attached entity but it was null"); + } + Report("salvage-system-announcement-lost"); + magnet.MagnetState = new MagnetState(MagnetStateType.CoolingDown, currentTime + CooldownTime); + break; + case MagnetStateType.CoolingDown: + magnet.MagnetState = MagnetState.Inactive; + break; + } + } + + public override void Update(float frameTime) + { + var secondsPassed = TimeSpan.FromSeconds(frameTime); + // Keep track of time, and state per grid + foreach (var gridIdAndState in _salvageGridStates) + { + var state = gridIdAndState.Value; + if (state.ActiveMagnets.Count == 0) continue; + var gridId = gridIdAndState.Key; + // Not handling the case where the salvage we spawned got paused + // They both need to be paused, or it doesn't make sense + if (_pauseManager.IsGridPaused(gridId)) continue; + state.CurrentTime += secondsPassed; + + var deleteQueue = new RemQueue(); + foreach(var magnet in state.ActiveMagnets) + { + if (magnet.MagnetState.Until > state.CurrentTime) continue; + Transition(magnet, state.CurrentTime); + if (magnet.MagnetState.StateType == MagnetStateType.Inactive) + { + deleteQueue.Add(magnet); + } + } + + foreach(var magnet in deleteQueue) + { + state.ActiveMagnets.Remove(magnet); + } + } + } + } + + public class SalvageGridState + { + public TimeSpan CurrentTime { get; set; } + public List ActiveMagnets { get; } = new(); + } +} + diff --git a/Content.Server/Speech/Components/MouseAccentComponent.cs b/Content.Server/Speech/Components/MouseAccentComponent.cs deleted file mode 100644 index a22719a301..0000000000 --- a/Content.Server/Speech/Components/MouseAccentComponent.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Robust.Shared.GameObjects; - -namespace Content.Server.Speech.Components -{ - [RegisterComponent] - public class MouseAccentComponent : Component - { - public override string Name => "MouseAccent"; - } -} diff --git a/Content.Server/Speech/EntitySystems/MouseAccentSystem.cs b/Content.Server/Speech/EntitySystems/MouseAccentSystem.cs deleted file mode 100644 index 9e25ef7982..0000000000 --- a/Content.Server/Speech/EntitySystems/MouseAccentSystem.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System.Collections.Generic; -using Content.Server.Speech.Components; -using Robust.Shared.GameObjects; -using Robust.Shared.IoC; -using Robust.Shared.Random; - -namespace Content.Server.Speech.EntitySystems -{ - // TODO: Code in-game languages and make this a language - public class MouseAccentSystem : EntitySystem - { - [Dependency] private readonly IRobustRandom _random = default!; - - private static readonly IReadOnlyList Squeek = new List{ "Squeak!", "Piep!", "Chuu!" }; - - public override void Initialize() - { - SubscribeLocalEvent(OnAccent); - } - - public string Accentuate(string message) - { - // TODO: Maybe add more than one squeek when there are more words? - return _random.Pick(Squeek); - } - - private void OnAccent(EntityUid uid, MouseAccentComponent component, AccentGetEvent args) - { - args.Message = Accentuate(args.Message); - } - } -} diff --git a/Content.Server/Weapon/Ranged/Ammunition/Components/AmmoComponent.cs b/Content.Server/Weapon/Ranged/Ammunition/Components/AmmoComponent.cs index a12ca95d19..4481e6a1a5 100644 --- a/Content.Server/Weapon/Ranged/Ammunition/Components/AmmoComponent.cs +++ b/Content.Server/Weapon/Ranged/Ammunition/Components/AmmoComponent.cs @@ -3,14 +3,18 @@ using Content.Shared.Examine; using Content.Shared.Sound; using Content.Shared.Weapons.Ranged.Barrels.Components; using Robust.Server.GameObjects; +using Robust.Shared.Analyzers; using Robust.Shared.GameObjects; using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Log; using Robust.Shared.Map; using Robust.Shared.Maths; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization; using Robust.Shared.Serialization.Manager.Attributes; +using Robust.Shared.Serialization.TypeSerializers.Implementations; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; using Robust.Shared.Timing; using Robust.Shared.Utility; @@ -21,15 +25,10 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components /// Generally used for bullets but can be used for other things like bananas /// [RegisterComponent] -#pragma warning disable 618 - public class AmmoComponent : Component, IExamine, ISerializationHooks -#pragma warning restore 618 + [ComponentProtoName("Ammo")] + [Friend(typeof(GunSystem))] + public sealed class AmmoComponent : Component, ISerializationHooks { - [Dependency] private readonly IEntityManager _entMan = default!; - [Dependency] private readonly IGameTiming _gameTiming = default!; - - public override string Name => "Ammo"; - [DataField("caliber")] public BallisticCaliber Caliber { get; } = BallisticCaliber.Unspecified; @@ -37,22 +36,23 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components { get { - if (_ammoIsProjectile) + if (AmmoIsProjectile) { return false; } return _spent; } + set => _spent = value; } private bool _spent; + // TODO: Make it so null projectile = dis /// /// Used for anything without a case that fires itself /// - [DataField("isProjectile")] - private bool _ammoIsProjectile; + [DataField("isProjectile")] public bool AmmoIsProjectile; /// /// Used for something that is deleted when the projectile is retrieved @@ -69,8 +69,8 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components [DataField("projectilesFired")] public int ProjectilesFired { get; } = 1; - [DataField("projectile")] - private string? _projectileId; + [DataField("projectile", customTypeSerializer: typeof(PrototypeIdSerializer))] + public string? ProjectileId; // How far apart each entity is if multiple are shot [DataField("ammoSpread")] @@ -82,8 +82,8 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components [DataField("ammoVelocity")] public float Velocity { get; } = 20f; - [DataField("muzzleFlash")] - private string _muzzleFlashSprite = "Objects/Weapons/Guns/Projectiles/bullet_muzzle.png"; + [DataField("muzzleFlash", customTypeSerializer:typeof(ResourcePathSerializer))] + public ResourcePath? MuzzleFlashSprite = new("Objects/Weapons/Guns/Projectiles/bullet_muzzle.png"); [DataField("soundCollectionEject")] public SoundSpecifier SoundCollectionEject { get; } = new SoundCollectionSpecifier("CasingEject"); @@ -91,7 +91,7 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components void ISerializationHooks.AfterDeserialization() { // Being both caseless and shooting yourself doesn't make sense - DebugTools.Assert(!(_ammoIsProjectile == true && Caseless == true)); + DebugTools.Assert(!(AmmoIsProjectile && Caseless)); if (ProjectilesFired < 1) { @@ -104,63 +104,6 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components throw new InvalidOperationException(); } } - - public EntityUid? TakeBullet(EntityCoordinates spawnAt) - { - if (_ammoIsProjectile) - { - return Owner; - } - - if (_spent) - { - return null; - } - - _spent = true; - if (_entMan.TryGetComponent(Owner, out AppearanceComponent? appearanceComponent)) - { - appearanceComponent.SetData(AmmoVisuals.Spent, true); - } - - var entity = _entMan.SpawnEntity(_projectileId, spawnAt); - - return entity; - } - - public void MuzzleFlash(EntityUid entity, Angle angle) - { - if (_muzzleFlashSprite == null) - { - return; - } - - var time = _gameTiming.CurTime; - var deathTime = time + TimeSpan.FromMilliseconds(200); - // Offset the sprite so it actually looks like it's coming from the gun - var offset = angle.ToVec().Normalized / 2; - - var message = new EffectSystemMessage - { - EffectSprite = _muzzleFlashSprite, - Born = time, - DeathTime = deathTime, - AttachedEntityUid = entity, - AttachedOffset = offset, - //Rotated from east facing - Rotation = (float) angle.Theta, - Color = Vector4.Multiply(new Vector4(255, 255, 255, 255), 1.0f), - ColorDelta = new Vector4(0, 0, 0, -1500f), - Shaded = false - }; - EntitySystem.Get().CreateParticle(message); - } - - public void Examine(FormattedMessage message, bool inDetailsRange) - { - var text = Loc.GetString("ammo-component-on-examine",("caliber", Caliber)); - message.AddMarkup(text); - } } public enum BallisticCaliber diff --git a/Content.Server/Weapon/Ranged/Barrels/Components/BoltActionBarrelComponent.cs b/Content.Server/Weapon/Ranged/Barrels/Components/BoltActionBarrelComponent.cs index dc6012d76b..d5d6a8a17c 100644 --- a/Content.Server/Weapon/Ranged/Barrels/Components/BoltActionBarrelComponent.cs +++ b/Content.Server/Weapon/Ranged/Barrels/Components/BoltActionBarrelComponent.cs @@ -26,12 +26,11 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components [RegisterComponent] [NetworkedComponent()] #pragma warning disable 618 - public sealed class BoltActionBarrelComponent : ServerRangedBarrelComponent, IUse, IInteractUsing, IMapInit, IExamine + public sealed class BoltActionBarrelComponent : ServerRangedBarrelComponent, IUse, IInteractUsing, IMapInit #pragma warning restore 618 { // Originally I had this logic shared with PumpBarrel and used a couple of variables to control things // but it felt a lot messier to play around with, especially when adding verbs - [Dependency] private readonly IEntityManager _entities = default!; public override string Name => "BoltActionBarrel"; @@ -111,7 +110,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components if (_unspawnedCount > 0) { _unspawnedCount--; - var chamberEntity = _entities.SpawnEntity(_fillPrototype, _entities.GetComponent(Owner).Coordinates); + var chamberEntity = Entities.SpawnEntity(_fillPrototype, Entities.GetComponent(Owner).Coordinates); _chamberContainer.Insert(chamberEntity); } } @@ -125,7 +124,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components // (Is one chambered?, is the bullet spend) var chamber = (chamberedExists, false); - if (chamberedExists && _entities.TryGetComponent(_chamberContainer.ContainedEntity!.Value, out var ammo)) + if (chamberedExists && Entities.TryGetComponent(_chamberContainer.ContainedEntity!.Value, out var ammo)) { chamber.Item2 = ammo.Spent; } @@ -155,7 +154,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components _chamberContainer = ContainerHelpers.EnsureContainer(Owner, $"{Name}-chamber-container"); - if (_entities.TryGetComponent(Owner, out AppearanceComponent? appearanceComponent)) + if (Entities.TryGetComponent(Owner, out AppearanceComponent? appearanceComponent)) { _appearanceComponent = appearanceComponent; } @@ -188,10 +187,11 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components Dirty(); } - if (_chamberContainer.ContainedEntity is not {Valid: true} chamberEntity) - return null; + if (_chamberContainer.ContainedEntity is not {Valid: true} chamberEntity) return null; - return _entities.GetComponentOrNull(chamberEntity)?.TakeBullet(spawnAt); + var ammoComponent = Entities.GetComponentOrNull(chamberEntity); + + return ammoComponent == null ? null : EntitySystem.Get().TakeBullet(ammoComponent, spawnAt); } protected override bool WeaponCanFire() @@ -229,7 +229,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components public bool TryInsertBullet(EntityUid user, EntityUid ammo) { - if (!_entities.TryGetComponent(ammo, out AmmoComponent? ammoComponent)) + if (!Entities.TryGetComponent(ammo, out AmmoComponent? ammoComponent)) { return false; } @@ -297,7 +297,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components { return false; } - if (!_entities.GetComponent(chambered).Caseless) + if (!Entities.GetComponent(chambered).Caseless) { EjectCasing(chambered); } @@ -321,7 +321,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components else if (_unspawnedCount > 0) { _unspawnedCount--; - var ammoEntity = _entities.SpawnEntity(_fillPrototype, _entities.GetComponent(Owner).Coordinates); + var ammoEntity = Entities.SpawnEntity(_fillPrototype, Entities.GetComponent(Owner).Coordinates); _chamberContainer.Insert(ammoEntity); return true; } diff --git a/Content.Server/Weapon/Ranged/Barrels/Components/PumpBarrelComponent.cs b/Content.Server/Weapon/Ranged/Barrels/Components/PumpBarrelComponent.cs index 6b90cf9917..ebfd57b9ce 100644 --- a/Content.Server/Weapon/Ranged/Barrels/Components/PumpBarrelComponent.cs +++ b/Content.Server/Weapon/Ranged/Barrels/Components/PumpBarrelComponent.cs @@ -27,8 +27,6 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components [NetworkedComponent()] public sealed class PumpBarrelComponent : ServerRangedBarrelComponent, IUse, IInteractUsing, IMapInit, ISerializationHooks { - [Dependency] private readonly IEntityManager _entMan = default!; - public override string Name => "PumpBarrel"; public override int ShotsLeft @@ -87,7 +85,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components // (Is one chambered?, is the bullet spend) var chamber = (chamberedExists, false); - if (chamberedExists && _entMan.TryGetComponent(_chamberContainer.ContainedEntity!.Value, out var ammo)) + if (chamberedExists && Entities.TryGetComponent(_chamberContainer.ContainedEntity!.Value, out var ammo)) { chamber.Item2 = ammo.Spent; } @@ -126,7 +124,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components _unspawnedCount--; } - if (_entMan.TryGetComponent(Owner, out AppearanceComponent? appearanceComponent)) + if (Entities.TryGetComponent(Owner, out AppearanceComponent? appearanceComponent)) { _appearanceComponent = appearanceComponent; } @@ -158,10 +156,11 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components Dirty(); } - if (_chamberContainer.ContainedEntity is not {Valid: true} chamberEntity) - return null; + if (_chamberContainer.ContainedEntity is not {Valid: true} chamberEntity) return null; - return _entMan.GetComponentOrNull(chamberEntity)?.TakeBullet(spawnAt); + var ammoComponent = Entities.GetComponentOrNull(chamberEntity); + + return ammoComponent == null ? null : EntitySystem.Get().TakeBullet(ammoComponent, spawnAt); } private void Cycle(bool manual = false) @@ -169,7 +168,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components if (_chamberContainer.ContainedEntity is {Valid: true} chamberedEntity) { _chamberContainer.Remove(chamberedEntity); - var ammoComponent = _entMan.GetComponent(chamberedEntity); + var ammoComponent = Entities.GetComponent(chamberedEntity); if (!ammoComponent.Caseless) { EjectCasing(chamberedEntity); @@ -185,7 +184,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components if (_unspawnedCount > 0) { _unspawnedCount--; - var ammoEntity = _entMan.SpawnEntity(_fillPrototype, _entMan.GetComponent(Owner).Coordinates); + var ammoEntity = Entities.SpawnEntity(_fillPrototype, Entities.GetComponent(Owner).Coordinates); _chamberContainer.Insert(ammoEntity); } @@ -200,7 +199,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components public bool TryInsertBullet(InteractUsingEventArgs eventArgs) { - if (!_entMan.TryGetComponent(eventArgs.Using, out AmmoComponent? ammoComponent)) + if (!Entities.TryGetComponent(eventArgs.Using, out AmmoComponent? ammoComponent)) { return false; } diff --git a/Content.Server/Weapon/Ranged/Barrels/Components/RevolverBarrelComponent.cs b/Content.Server/Weapon/Ranged/Barrels/Components/RevolverBarrelComponent.cs index 6966a64f88..07ec5d877f 100644 --- a/Content.Server/Weapon/Ranged/Barrels/Components/RevolverBarrelComponent.cs +++ b/Content.Server/Weapon/Ranged/Barrels/Components/RevolverBarrelComponent.cs @@ -24,7 +24,6 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components [NetworkedComponent()] public sealed class RevolverBarrelComponent : ServerRangedBarrelComponent, IUse, IInteractUsing, ISerializationHooks { - [Dependency] private readonly IEntityManager _entMan = default!; [Dependency] private readonly IRobustRandom _random = default!; public override string Name => "RevolverBarrel"; @@ -82,7 +81,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components { slotsSpent[i] = null; var ammoEntity = _ammoSlots[i]; - if (ammoEntity != default && _entMan.TryGetComponent(ammoEntity, out AmmoComponent? ammo)) + if (ammoEntity != default && Entities.TryGetComponent(ammoEntity, out AmmoComponent? ammo)) { slotsSpent[i] = ammo.Spent; } @@ -114,7 +113,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components for (var i = 0; i < _unspawnedCount; i++) { - var entity = _entMan.SpawnEntity(_fillPrototype, _entMan.GetComponent(Owner).Coordinates); + var entity = Entities.SpawnEntity(_fillPrototype, Entities.GetComponent(Owner).Coordinates); _ammoSlots[idx] = entity; _ammoContainer.Insert(entity); idx++; @@ -126,7 +125,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components private void UpdateAppearance() { - if (!_entMan.TryGetComponent(Owner, out AppearanceComponent? appearance)) + if (!Entities.TryGetComponent(Owner, out AppearanceComponent? appearance)) { return; } @@ -139,7 +138,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components public bool TryInsertBullet(EntityUid user, EntityUid entity) { - if (!_entMan.TryGetComponent(entity, out AmmoComponent? ammoComponent)) + if (!Entities.TryGetComponent(entity, out AmmoComponent? ammoComponent)) { return false; } @@ -209,8 +208,8 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components EntityUid? bullet = null; if (ammo != default) { - var ammoComponent = _entMan.GetComponent(ammo); - bullet = ammoComponent.TakeBullet(spawnAt); + var ammoComponent = Entities.GetComponent(ammo); + bullet = EntitySystem.Get().TakeBullet(ammoComponent, spawnAt); if (ammoComponent.Caseless) { _ammoSlots[_currentSlot] = default; diff --git a/Content.Server/Weapon/Ranged/Barrels/Components/ServerMagazineBarrelComponent.cs b/Content.Server/Weapon/Ranged/Barrels/Components/ServerMagazineBarrelComponent.cs index 7e0a30b51f..243d3b1ad6 100644 --- a/Content.Server/Weapon/Ranged/Barrels/Components/ServerMagazineBarrelComponent.cs +++ b/Content.Server/Weapon/Ranged/Barrels/Components/ServerMagazineBarrelComponent.cs @@ -205,7 +205,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components var entity = _chamberContainer.ContainedEntity ?? default; Cycle(); - return entity != default ? _entities.GetComponent(entity).TakeBullet(spawnAt) : null; + return entity != default ? EntitySystem.Get().TakeBullet(_entities.GetComponent(entity), spawnAt) : null; } private void Cycle(bool manual = false) diff --git a/Content.Server/Weapon/Ranged/Barrels/Components/ServerRangedBarrelComponent.cs b/Content.Server/Weapon/Ranged/Barrels/Components/ServerRangedBarrelComponent.cs index 6577172f3a..0f84af3763 100644 --- a/Content.Server/Weapon/Ranged/Barrels/Components/ServerRangedBarrelComponent.cs +++ b/Content.Server/Weapon/Ranged/Barrels/Components/ServerRangedBarrelComponent.cs @@ -42,7 +42,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components // it's just when I re-organised it changed me as the contributor [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly IRobustRandom _robustRandom = default!; - [Dependency] private readonly IEntityManager _entities = default!; + [Dependency] protected readonly IEntityManager Entities = default!; public override FireRateSelector FireRateSelector => _fireRateSelector; @@ -147,7 +147,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components protected override void OnRemove() { base.OnRemove(); - if (_entities.TryGetComponent(Owner, out ServerRangedWeaponComponent? rangedWeaponComponent)) + if (Entities.TryGetComponent(Owner, out ServerRangedWeaponComponent? rangedWeaponComponent)) { rangedWeaponComponent.Barrel = null; rangedWeaponComponent.FireHandler -= Fire; @@ -198,39 +198,39 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components } var ammo = PeekAmmo(); - if (TakeProjectile(_entities.GetComponent(shooter).Coordinates) is not {Valid: true} projectile) + if (TakeProjectile(Entities.GetComponent(shooter).Coordinates) is not {Valid: true} projectile) { SoundSystem.Play(Filter.Broadcast(), SoundEmpty.GetSound(), Owner); return; } // At this point firing is confirmed - var direction = (targetPos - _entities.GetComponent(shooter).WorldPosition).ToAngle(); + var direction = (targetPos - Entities.GetComponent(shooter).WorldPosition).ToAngle(); var angle = GetRecoilAngle(direction); // This should really be client-side but for now we'll just leave it here - if (_entities.TryGetComponent(shooter, out CameraRecoilComponent? recoilComponent)) + if (Entities.TryGetComponent(shooter, out CameraRecoilComponent? recoilComponent)) { recoilComponent.Kick(-angle.ToVec() * 0.15f); } // This section probably needs tweaking so there can be caseless hitscan etc. - if (_entities.TryGetComponent(projectile, out HitscanComponent? hitscan)) + if (Entities.TryGetComponent(projectile, out HitscanComponent? hitscan)) { FireHitscan(shooter, hitscan, angle); } - else if (_entities.HasComponent(projectile) && - _entities.TryGetComponent(ammo, out AmmoComponent? ammoComponent)) + else if (Entities.HasComponent(projectile) && + Entities.TryGetComponent(ammo, out AmmoComponent? ammoComponent)) { FireProjectiles(shooter, projectile, ammoComponent.ProjectilesFired, ammoComponent.EvenSpreadAngle, angle, ammoComponent.Velocity, ammo.Value); if (CanMuzzleFlash) { - ammoComponent.MuzzleFlash(Owner, angle); + EntitySystem.Get().MuzzleFlash(Owner, ammoComponent, angle); } if (ammoComponent.Caseless) { - _entities.DeleteEntity(ammo.Value); + Entities.DeleteEntity(ammo.Value); } } else @@ -324,9 +324,9 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components } else { - projectile = _entities.SpawnEntity( - _entities.GetComponent(baseProjectile).EntityPrototype?.ID, - _entities.GetComponent(baseProjectile).Coordinates); + projectile = Entities.SpawnEntity( + Entities.GetComponent(baseProjectile).EntityPrototype?.ID, + Entities.GetComponent(baseProjectile).Coordinates); } firedProjectiles[i] = projectile; @@ -342,10 +342,10 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components projectileAngle = angle; } - var physics = _entities.GetComponent(projectile); + var physics = Entities.GetComponent(projectile); physics.BodyStatus = BodyStatus.InAir; - var projectileComponent = _entities.GetComponent(projectile); + var projectileComponent = Entities.GetComponent(projectile); projectileComponent.IgnoreEntity(shooter); // FIXME: Work around issue where inserting and removing an entity from a container, @@ -353,16 +353,16 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components // See SharedBroadphaseSystem.HandleContainerInsert()... It sets Awake to false, which causes this. projectile.SpawnTimer(TimeSpan.FromMilliseconds(25), () => { - _entities.GetComponent(projectile) + Entities.GetComponent(projectile) .LinearVelocity = projectileAngle.ToVec() * velocity; }); - _entities.GetComponent(projectile).WorldRotation = projectileAngle + MathHelper.PiOver2; + Entities.GetComponent(projectile).WorldRotation = projectileAngle + MathHelper.PiOver2; } - _entities.EventBus.RaiseLocalEvent(Owner, new GunShotEvent(firedProjectiles)); - _entities.EventBus.RaiseLocalEvent(ammo, new AmmoShotEvent(firedProjectiles)); + Entities.EventBus.RaiseLocalEvent(Owner, new GunShotEvent(firedProjectiles)); + Entities.EventBus.RaiseLocalEvent(ammo, new AmmoShotEvent(firedProjectiles)); } /// @@ -386,9 +386,9 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components /// private void FireHitscan(EntityUid shooter, HitscanComponent hitscan, Angle angle) { - var ray = new CollisionRay(_entities.GetComponent(Owner).Coordinates.ToMapPos(_entities), angle.ToVec(), (int) hitscan.CollisionMask); + var ray = new CollisionRay(Entities.GetComponent(Owner).Coordinates.ToMapPos(Entities), angle.ToVec(), (int) hitscan.CollisionMask); var physicsManager = EntitySystem.Get(); - var rayCastResults = physicsManager.IntersectRay(_entities.GetComponent(Owner).MapID, ray, hitscan.MaxLength, shooter, false).ToList(); + var rayCastResults = physicsManager.IntersectRay(Entities.GetComponent(Owner).MapID, ray, hitscan.MaxLength, shooter, false).ToList(); if (rayCastResults.Count >= 1) { @@ -398,7 +398,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components var dmg = EntitySystem.Get().TryChangeDamage(result.HitEntity, hitscan.Damage); if (dmg != null) EntitySystem.Get().Add(LogType.HitScanHit, - $"{_entities.ToPrettyString(shooter):user} hit {_entities.ToPrettyString(result.HitEntity):target} using {_entities.ToPrettyString(hitscan.Owner):used} and dealt {dmg.Total:damage} damage"); + $"{Entities.ToPrettyString(shooter):user} hit {Entities.ToPrettyString(result.HitEntity):target} using {Entities.ToPrettyString(hitscan.Owner):used} and dealt {dmg.Total:damage} damage"); } else { diff --git a/Content.Server/Weapon/Ranged/GunSystem.Ammo.cs b/Content.Server/Weapon/Ranged/GunSystem.Ammo.cs new file mode 100644 index 0000000000..23b36b4201 --- /dev/null +++ b/Content.Server/Weapon/Ranged/GunSystem.Ammo.cs @@ -0,0 +1,95 @@ +using System; +using Content.Server.Weapon.Ranged.Ammunition.Components; +using Content.Shared.Examine; +using Content.Shared.Weapons.Ranged.Barrels.Components; +using Robust.Shared.GameObjects; +using Robust.Shared.Localization; +using Robust.Shared.Map; +using Robust.Shared.Maths; + +namespace Content.Server.Weapon.Ranged; + +public sealed partial class GunSystem +{ + private void OnAmmoExamine(EntityUid uid, AmmoComponent component, ExaminedEvent args) + { + var text = Loc.GetString("ammo-component-on-examine",("caliber", component.Caliber)); + args.PushMarkup(text); + } + + public EntityUid? TakeBullet(AmmoComponent component, EntityCoordinates spawnAt) + { + if (component.AmmoIsProjectile) + { + return component.Owner; + } + + if (component.Spent) + { + return null; + } + + component.Spent = true; + + if (TryComp(component.Owner, out AppearanceComponent? appearanceComponent)) + { + appearanceComponent.SetData(AmmoVisuals.Spent, true); + } + + var entity = EntityManager.SpawnEntity(component.ProjectileId, spawnAt); + + return entity; + } + + public void MuzzleFlash(EntityUid entity, AmmoComponent component, Angle angle) + { + if (component.MuzzleFlashSprite == null) + { + return; + } + + var time = _gameTiming.CurTime; + var deathTime = time + TimeSpan.FromMilliseconds(200); + // Offset the sprite so it actually looks like it's coming from the gun + var offset = new Vector2(0.0f, -0.5f); + + var message = new EffectSystemMessage + { + EffectSprite = component.MuzzleFlashSprite.ToString(), + Born = time, + DeathTime = deathTime, + AttachedEntityUid = entity, + AttachedOffset = offset, + //Rotated from east facing + Rotation = -MathF.PI / 2f, + Color = Vector4.Multiply(new Vector4(255, 255, 255, 255), 1.0f), + ColorDelta = new Vector4(0, 0, 0, -1500f), + Shaded = false + }; + + /* TODO: Fix rotation when shooting sideways. This was the closest I got but still had issues. + * var time = _gameTiming.CurTime; + var deathTime = time + TimeSpan.FromMilliseconds(200); + var entityRotation = EntityManager.GetComponent(entity).WorldRotation; + var localAngle = entityRotation - (angle + MathF.PI / 2f); + // Offset the sprite so it actually looks like it's coming from the gun + var offset = localAngle.RotateVec(new Vector2(0.0f, -0.5f)); + + var message = new EffectSystemMessage + { + EffectSprite = component.MuzzleFlashSprite.ToString(), + Born = time, + DeathTime = deathTime, + AttachedEntityUid = entity, + AttachedOffset = offset, + //Rotated from east facing + Rotation = (float) (localAngle - MathF.PI / 2), + Color = Vector4.Multiply(new Vector4(255, 255, 255, 255), 1.0f), + ColorDelta = new Vector4(0, 0, 0, -1500f), + Shaded = false + }; + */ + + _effects.CreateParticle(message); + } +} diff --git a/Content.Server/Weapon/Ranged/GunSystem.AmmoBox.cs b/Content.Server/Weapon/Ranged/GunSystem.AmmoBox.cs index d9c5024f41..e93cc22db2 100644 --- a/Content.Server/Weapon/Ranged/GunSystem.AmmoBox.cs +++ b/Content.Server/Weapon/Ranged/GunSystem.AmmoBox.cs @@ -19,20 +19,6 @@ public sealed partial class GunSystem { // Probably needs combining with magazines in future given the common functionality. - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(OnAmmoBoxInit); - SubscribeLocalEvent(OnAmmoBoxMapInit); - SubscribeLocalEvent(OnAmmoBoxExamine); - - SubscribeLocalEvent(OnAmmoBoxInteractUsing); - SubscribeLocalEvent(OnAmmoBoxUse); - SubscribeLocalEvent(OnAmmoBoxInteractHand); - SubscribeLocalEvent(OnAmmoBoxAltVerbs); - } - private void OnAmmoBoxAltVerbs(EntityUid uid, AmmoBoxComponent component, GetAlternativeVerbsEvent args) { if (args.Hands == null || !args.CanAccess || !args.CanInteract) diff --git a/Content.Server/Weapon/Ranged/GunSystem.cs b/Content.Server/Weapon/Ranged/GunSystem.cs index 872a37ff1d..56e0c495b0 100644 --- a/Content.Server/Weapon/Ranged/GunSystem.cs +++ b/Content.Server/Weapon/Ranged/GunSystem.cs @@ -1,10 +1,34 @@ +using Content.Server.Weapon.Ranged.Ammunition.Components; +using Content.Shared.Examine; +using Content.Shared.Interaction; using Content.Shared.Popups; +using Content.Shared.Verbs; +using Robust.Server.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.IoC; +using Robust.Shared.Timing; namespace Content.Server.Weapon.Ranged; public sealed partial class GunSystem : EntitySystem { + [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly EffectSystem _effects = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnAmmoExamine); + + SubscribeLocalEvent(OnAmmoBoxInit); + SubscribeLocalEvent(OnAmmoBoxMapInit); + SubscribeLocalEvent(OnAmmoBoxExamine); + + SubscribeLocalEvent(OnAmmoBoxInteractUsing); + SubscribeLocalEvent(OnAmmoBoxUse); + SubscribeLocalEvent(OnAmmoBoxInteractHand); + SubscribeLocalEvent(OnAmmoBoxAltVerbs); + } } diff --git a/Content.Shared/CCVar/CCVars.cs b/Content.Shared/CCVar/CCVars.cs index cafb1afde8..b58e8a5322 100644 --- a/Content.Shared/CCVar/CCVars.cs +++ b/Content.Shared/CCVar/CCVars.cs @@ -593,5 +593,15 @@ namespace Content.Shared.CCVar /// public static readonly CVarDef RestrictedNames = CVarDef.Create("ic.restricted_names", true, CVar.SERVER | CVar.REPLICATED); + + /* + * Salvage + */ + + /// + /// Forced salvage map prototype name (if empty, randomly selected) + /// + public static readonly CVarDef + SalvageForced = CVarDef.Create("salvage.forced", "", CVar.SERVERONLY); } } diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index caabe430b8..6b18282a04 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,30 +1,4 @@ Entries: -- author: Zumorica - changes: - - {message: Fix bug where constructing walls and windows would place them in the - bar., type: Fix} - id: 257 - time: '2021-07-15T07:45:11.671976+00:00' -- author: Zumorica - changes: - - {message: Fix being able to play instruments while incapacitated., type: Fix} - id: 258 - time: '2021-07-15T07:45:11.672684+00:00' -- author: Zumorica - changes: - - {message: Fix crash when MIDI stops playing., type: Fix} - id: 259 - time: '2021-07-15T07:45:11.673363+00:00' -- author: Zumorica - changes: - - {message: Fixes spray puff and fire extinguisher cloud not moving., type: Fix} - id: 260 - time: '2021-07-15T07:45:11.674114+00:00' -- author: Zumorica - changes: - - {message: Added the dual-port air vent., type: Add} - id: 261 - time: '2021-07-15T13:24:45.0000000+00:00' - author: Fogapod changes: - {message: Added missing space in Spanish accent., type: Fix} @@ -2863,3 +2837,32 @@ Entries: - {message: Added accents for overly talkative animals., type: Add} id: 758 time: '2021-12-21T20:31:20.0000000+00:00' +- author: Rane + changes: + - {message: Added EVA suits to the EVA room., type: Add} + id: 759 + time: '2021-12-22T22:47:34.0000000+00:00' +- author: wrexbe + changes: + - {message: It is now possible to tell when airlock power wires are partially cut, + type: Add} + - {message: Airlock text is a little bit clearer, type: Tweak} + - {message: 'Airlock now only loses power when both backup, and main power wires + are cut', type: Fix} + id: 760 + time: '2021-12-23T04:02:27.0000000+00:00' +- author: Fishfish458 + changes: + - {message: Hypospray to CMO lockers and also traitor goals., type: Add} + id: 761 + time: '2021-12-23T08:51:49.0000000+00:00' +- author: Pancake + changes: + - {message: Wizards now have something to ponder., type: Add} + id: 762 + time: '2021-12-23T10:33:55.0000000+00:00' +- author: 20kdc + changes: + - {message: The Salvage department now partially exists., type: Add} + id: 763 + time: '2021-12-23T12:14:01.0000000+00:00' diff --git a/Resources/Locale/en-US/salvage/salvage-system.ftl b/Resources/Locale/en-US/salvage/salvage-system.ftl new file mode 100644 index 0000000000..ba7de639ee --- /dev/null +++ b/Resources/Locale/en-US/salvage/salvage-system.ftl @@ -0,0 +1,18 @@ +salvage-system-announcement-source = Salvage Control System +salvage-system-announcement-arrived = A piece of salvagable debris has been pulled in. Estimated hold time: {$timeLeft} seconds. +salvage-system-announcement-losing = The magnet is no longer able to hold the salvagable debris. Estimated time until loss: {$timeLeft} seconds. +salvage-system-announcement-lost = The salvagable debris have been lost. + +salvage-system-announcement-spawn-magnet-lost = The salvage magnet has been lost. +salvage-system-announcement-spawn-no-debris-available = No debris could be recovered by the salvage magnet. +salvage-system-announcement-spawn-debris-disintegrated = Debris disintegrated during orbital transfer. + +salvage-system-report-already-active = The salvage magnet is already active. +salvage-system-report-cooling-down = The salvage magnet is cooling down. +salvage-system-report-activate-success = The salvage magnet is pulling in a piece of debris! + +salvage-system-magnet-examined-inactive = The salvage magnet is inactive. +salvage-system-magnet-examined-pulling-in = The salvage magnet is attempting to pull in salvage. +salvage-system-magnet-examined-active = The salvage magnet is holding salvage in place. Can hold for {$timeLeft} seconds. +salvage-system-magnet-examined-releasing = The salvage magnet is releasing the salvage. +salvage-system-magnet-examined-cooling-down = The salvage magnet is cooling down. diff --git a/Resources/Maps/Salvage/medium-1.yml b/Resources/Maps/Salvage/medium-1.yml new file mode 100644 index 0000000000..bf7082ccc7 --- /dev/null +++ b/Resources/Maps/Salvage/medium-1.yml @@ -0,0 +1,1697 @@ +meta: + format: 2 + name: DemoStation + author: Space-Wizards + postmapinit: false +tilemap: + 0: space + 1: floor_asteroid_coarse_sand0 + 2: floor_asteroid_coarse_sand1 + 3: floor_asteroid_coarse_sand2 + 4: floor_asteroid_coarse_sand_dug + 5: floor_asteroid_sand + 6: floor_asteroid_tile + 7: floor_blue + 8: floor_blue_circuit + 9: floor_dark + 10: floor_elevator_shaft + 11: floor_freezer + 12: floor_glass + 13: floor_gold + 14: floor_green_circuit + 15: floor_hydro + 16: floor_lino + 17: floor_mono + 18: floor_reinforced + 19: floor_rglass + 20: floor_rock_vault + 21: floor_showroom + 22: floor_silver + 23: floor_snow + 24: floor_steel + 25: floor_steel_dirty + 26: floor_techmaint + 27: floor_white + 28: floor_wood + 29: lattice + 30: plating + 31: underplating +grids: +- settings: + chunksize: 16 + tilesize: 1 + chunks: + - ind: "-1,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAeAAAAHgAAAB4AAAAeAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAYAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAYAAAAGAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB4AAAAeAAAAHgAAABgAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAABgAAAAYAAAAGAAAAA== + - ind: "0,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB4AAAAeAAAAHgAAAB4AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAYAAAAGAAAABgAAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAGAAAAB4AAAAYAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAABgAAAAeAAAAHgAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "-1,0" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAdAAAAHgAAABkAAAAYAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAGQAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAGQAAABkAAAAZAAAAHgAAAB4AAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHgAAAB4AAAAZAAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAeAAAAGQAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHgAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "0,0" + tiles: GAAAABgAAAAeAAAAHgAAAB4AAAAeAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAYAAAAHgAAAB4AAAAeAAAAHgAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAABkAAAAeAAAAHgAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAZAAAAGQAAAB4AAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +entities: +- uid: 0 + components: + - pos: 0.5,0.5 + parent: null + type: Transform + - index: 0 + type: MapGrid + - angularDamping: 0.3 + fixedRotation: False + bodyType: Dynamic + type: Physics + - fixtures: + - shape: !type:PolygonShape + vertices: + - -1,-8 + - -1,-7 + - -6,-7 + - -6,-8 + id: grid_chunk--6--8 + mask: + - MapGrid + layer: + - MapGrid + mass: 20 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-7 + - 0,-6 + - -6,-6 + - -6,-7 + id: grid_chunk--6--7 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-6 + - 0,-5 + - -5,-5 + - -5,-6 + id: grid_chunk--5--6 + mask: + - MapGrid + layer: + - MapGrid + mass: 20 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-5 + - 0,-3 + - -4,-3 + - -4,-5 + id: grid_chunk--4--5 + mask: + - MapGrid + layer: + - MapGrid + mass: 32 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-3 + - 0,-2 + - -5,-2 + - -5,-3 + id: grid_chunk--5--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 20 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-2 + - 0,-1 + - -6,-1 + - -6,-2 + id: grid_chunk--6--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-1 + - 0,0 + - -4,0 + - -4,-1 + id: grid_chunk--4--1 + mask: + - MapGrid + layer: + - MapGrid + mass: 16 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 5,-8 + - 5,-7 + - 0,-7 + - 0,-8 + id: grid_chunk-0--8 + mask: + - MapGrid + layer: + - MapGrid + mass: 20 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,-7 + - 1,-6 + - 0,-6 + - 0,-7 + id: grid_chunk-0--7 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 5,-7 + - 5,-6 + - 4,-6 + - 4,-7 + id: grid_chunk-4--7 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 6,-6 + - 6,-5 + - 3,-5 + - 3,-6 + id: grid_chunk-3--6 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 7,-5 + - 7,-4 + - 1,-4 + - 1,-5 + id: grid_chunk-1--5 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 6,-4 + - 6,0 + - 0,0 + - 0,-4 + id: grid_chunk-0--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 96 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,0 + - 0,1 + - -6,1 + - -6,0 + id: grid_chunk--6-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,1 + - 0,2 + - -8,2 + - -8,1 + id: grid_chunk--8-1 + mask: + - MapGrid + layer: + - MapGrid + mass: 32 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,2 + - 0,3 + - -7,3 + - -7,2 + id: grid_chunk--7-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 28 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,3 + - 0,4 + - -8,4 + - -8,3 + id: grid_chunk--8-3 + mask: + - MapGrid + layer: + - MapGrid + mass: 32 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,4 + - 0,5 + - -6,5 + - -6,4 + id: grid_chunk--6-4 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,5 + - 0,6 + - -4,6 + - -4,5 + id: grid_chunk--4-5 + mask: + - MapGrid + layer: + - MapGrid + mass: 16 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,6 + - 0,7 + - -1,7 + - -1,6 + id: grid_chunk--1-6 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 7,0 + - 7,2 + - 0,2 + - 0,0 + id: grid_chunk-0-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 56 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,2 + - 3,3 + - 0,3 + - 0,2 + id: grid_chunk-0-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 5,3 + - 5,4 + - 0,4 + - 0,3 + id: grid_chunk-0-3 + mask: + - MapGrid + layer: + - MapGrid + mass: 20 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 6,4 + - 6,5 + - 0,5 + - 0,4 + id: grid_chunk-0-4 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 7,5 + - 7,6 + - 0,6 + - 0,5 + id: grid_chunk-0-5 + mask: + - MapGrid + layer: + - MapGrid + mass: 28 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,6 + - 1,7 + - 0,7 + - 0,6 + id: grid_chunk-0-6 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 5,6 + - 5,7 + - 4,7 + - 4,6 + id: grid_chunk-4-6 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + type: Fixtures + - gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + type: Gravity + - tiles: + -8,-8: 0 + -8,-7: 0 + -8,-6: 0 + -8,-5: 0 + -8,-4: 0 + -8,-3: 0 + -8,-2: 0 + -8,-1: 0 + -7,-8: 0 + -7,-1: 0 + -6,-8: 0 + -6,-1: 0 + -5,-8: 0 + -5,-1: 0 + -4,-8: 0 + -4,-4: 0 + -4,-3: 0 + -4,-2: 0 + -4,-1: 0 + -3,-8: 0 + -3,-4: 0 + -3,-1: 0 + -2,-8: 0 + -2,-4: 0 + -2,-2: 0 + -2,-1: 0 + -1,-8: 0 + -1,-7: 0 + -1,-6: 0 + -1,-5: 0 + -1,-4: 0 + -1,-3: 0 + -1,-2: 0 + -1,-1: 0 + 0,-8: 0 + 0,-4: 0 + 0,-2: 0 + 0,-1: 0 + 1,-8: 0 + 1,-4: 0 + 1,-1: 0 + 2,-8: 0 + 2,-4: 0 + 2,-3: 0 + 2,-2: 0 + 2,-1: 0 + 3,-8: 0 + 3,-1: 0 + 4,-8: 0 + 4,-1: 0 + 5,-8: 0 + 5,-1: 0 + 6,-8: 0 + 6,-7: 0 + 6,-6: 0 + 6,-5: 0 + 6,-4: 0 + 6,-3: 0 + 6,-2: 0 + 6,-1: 0 + -8,0: 0 + -8,1: 0 + -8,2: 0 + -8,3: 0 + -8,4: 0 + -8,5: 0 + -8,6: 0 + -7,6: 0 + -6,6: 0 + -5,6: 0 + -4,0: 0 + -4,1: 0 + -4,2: 1 + -4,6: 0 + -3,2: 0 + -3,6: 0 + -2,0: 0 + -2,2: 0 + -2,6: 0 + -1,0: 0 + -1,1: 0 + -1,2: 0 + -1,3: 1 + -1,4: 1 + -1,5: 0 + -1,6: 0 + 0,0: 0 + 0,2: 0 + 0,6: 0 + 1,2: 0 + 1,6: 0 + 2,0: 0 + 2,1: 0 + 2,2: 0 + 2,6: 0 + 3,6: 0 + 4,6: 0 + 5,6: 0 + 6,0: 0 + 6,1: 0 + 6,2: 0 + 6,3: 0 + 6,4: 0 + 6,5: 0 + 6,6: 0 + -6,-7: 0 + -6,-2: 0 + -5,-7: 0 + -5,-6: 0 + -5,-3: 0 + -5,-2: 0 + -4,-7: 0 + -4,-6: 0 + -4,-5: 0 + -3,-7: 0 + -3,-6: 0 + -3,-5: 0 + -3,-3: 0 + -3,-2: 0 + -2,-7: 0 + -2,-6: 0 + -2,-5: 0 + -2,-3: 0 + 0,-7: 0 + 0,-3: 0 + 1,-5: 0 + 1,-3: 0 + 1,-2: 0 + 2,-5: 0 + 3,-6: 0 + 3,-5: 0 + 3,-4: 0 + 3,-3: 0 + 3,-2: 0 + 4,-7: 0 + 4,-6: 0 + 4,-5: 0 + 4,-4: 0 + 4,-3: 0 + 4,-2: 0 + 5,-6: 0 + 5,-5: 0 + 5,-4: 0 + 5,-3: 0 + 5,-2: 0 + -7,1: 0 + -7,2: 0 + -7,3: 0 + -6,0: 0 + -6,1: 0 + -6,2: 1 + -6,3: 0 + -6,4: 0 + -5,0: 0 + -5,1: 0 + -5,2: 1 + -5,3: 1 + -5,4: 0 + -4,3: 1 + -4,4: 0 + -4,5: 0 + -3,0: 0 + -3,1: 0 + -3,3: 1 + -3,4: 0 + -3,5: 0 + -2,1: 0 + -2,3: 1 + -2,4: 1 + -2,5: 0 + 0,1: 0 + 0,3: 1 + 0,4: 1 + 0,5: 0 + 1,0: 0 + 1,1: 0 + 1,3: 1 + 1,4: 1 + 1,5: 0 + 2,3: 0 + 2,4: 1 + 2,5: 0 + 3,0: 0 + 3,1: 0 + 3,3: 0 + 3,4: 0 + 3,5: 0 + 4,0: 0 + 4,1: 0 + 4,3: 0 + 4,4: 0 + 4,5: 0 + 5,0: 0 + 5,1: 0 + 5,4: 0 + 5,5: 0 + uniqueMixes: + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 5000 + moles: + - 6666.982 + - 0 + - 0 + - 6666.982 + - 0 + - 0 + - 0 + - 0 + type: GridAtmosphere +- uid: 1 + type: WallSolid + components: + - pos: -4.5,-5.5 + parent: 0 + type: Transform +- uid: 2 + type: WallSolid + components: + - pos: -4.5,-6.5 + parent: 0 + type: Transform +- uid: 3 + type: WallSolid + components: + - pos: -3.5,-6.5 + parent: 0 + type: Transform +- uid: 4 + type: WallSolid + components: + - pos: -2.5,-6.5 + parent: 0 + type: Transform +- uid: 5 + type: WallSolid + components: + - pos: -1.5,-6.5 + parent: 0 + type: Transform +- uid: 6 + type: WallSolid + components: + - pos: -4.5,-1.5 + parent: 0 + type: Transform +- uid: 7 + type: Girder + components: + - pos: -4.5,-2.5 + parent: 0 + type: Transform +- uid: 8 + type: WallSolid + components: + - pos: -0.5,-1.5 + parent: 0 + type: Transform +- uid: 9 + type: WallSolid + components: + - pos: -0.5,-2.5 + parent: 0 + type: Transform +- uid: 10 + type: WallSolid + components: + - pos: -0.5,-3.5 + parent: 0 + type: Transform +- uid: 11 + type: WallSolid + components: + - pos: -0.5,-4.5 + parent: 0 + type: Transform +- uid: 12 + type: WallSolid + components: + - pos: -3.5,-1.5 + parent: 0 + type: Transform +- uid: 13 + type: WallSolid + components: + - pos: -2.5,-1.5 + parent: 0 + type: Transform +- uid: 14 + type: WallSolid + components: + - pos: -3.5,-0.5 + parent: 0 + type: Transform +- uid: 15 + type: WallSolid + components: + - pos: -3.5,0.5 + parent: 0 + type: Transform +- uid: 16 + type: WallSolid + components: + - pos: -3.5,1.5 + parent: 0 + type: Transform +- uid: 17 + type: WallSolid + components: + - pos: -2.5,1.5 + parent: 0 + type: Transform +- uid: 18 + type: WallSolid + components: + - pos: -2.5,2.5 + parent: 0 + type: Transform +- uid: 19 + type: WallSolid + components: + - pos: -1.5,2.5 + parent: 0 + type: Transform +- uid: 20 + type: Girder + components: + - pos: -0.5,-5.5 + parent: 0 + type: Transform +- uid: 21 + type: WallSolid + components: + - pos: 0.5,2.5 + parent: 0 + type: Transform +- uid: 22 + type: WallSolid + components: + - pos: 1.5,2.5 + parent: 0 + type: Transform +- uid: 23 + type: WallSolid + components: + - pos: 2.5,2.5 + parent: 0 + type: Transform +- uid: 24 + type: WallSolid + components: + - pos: 2.5,1.5 + parent: 0 + type: Transform +- uid: 25 + type: WallSolid + components: + - pos: 2.5,0.5 + parent: 0 + type: Transform +- uid: 26 + type: WallSolid + components: + - pos: 2.5,-0.5 + parent: 0 + type: Transform +- uid: 27 + type: WallSolid + components: + - pos: 2.5,-1.5 + parent: 0 + type: Transform +- uid: 28 + type: WallSolid + components: + - pos: 0.5,-1.5 + parent: 0 + type: Transform +- uid: 29 + type: WallSolid + components: + - pos: 0.5,-3.5 + parent: 0 + type: Transform +- uid: 30 + type: WallSolid + components: + - pos: 1.5,-3.5 + parent: 0 + type: Transform +- uid: 31 + type: WallSolid + components: + - pos: 2.5,-3.5 + parent: 0 + type: Transform +- uid: 32 + type: WallSolid + components: + - pos: 3.5,-3.5 + parent: 0 + type: Transform +- uid: 33 + type: WallSolid + components: + - pos: 4.5,-3.5 + parent: 0 + type: Transform +- uid: 34 + type: WallSolid + components: + - pos: 4.5,-2.5 + parent: 0 + type: Transform +- uid: 35 + type: WallSolid + components: + - pos: 4.5,-1.5 + parent: 0 + type: Transform +- uid: 36 + type: WallSolid + components: + - pos: 4.5,-0.5 + parent: 0 + type: Transform +- uid: 37 + type: WallSolid + components: + - pos: 4.5,0.5 + parent: 0 + type: Transform +- uid: 38 + type: Girder + components: + - pos: 4.5,1.5 + parent: 0 + type: Transform +- uid: 39 + type: AirlockGlass + components: + - pos: 3.5,0.5 + parent: 0 + type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer +- uid: 40 + type: AirlockGlass + components: + - pos: 1.5,-1.5 + parent: 0 + type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer +- uid: 41 + type: AirlockGlass + components: + - pos: -1.5,-1.5 + parent: 0 + type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer +- uid: 42 + type: WallSolid + components: + - pos: -2.5,4.5 + parent: 0 + type: Transform +- uid: 43 + type: WallSolid + components: + - pos: -2.5,5.5 + parent: 0 + type: Transform +- uid: 44 + type: WallSolid + components: + - pos: -1.5,5.5 + parent: 0 + type: Transform +- uid: 45 + type: WallSolid + components: + - pos: -0.5,5.5 + parent: 0 + type: Transform +- uid: 46 + type: WallSolid + components: + - pos: 0.5,5.5 + parent: 0 + type: Transform +- uid: 47 + type: WallSolid + components: + - pos: 1.5,5.5 + parent: 0 + type: Transform +- uid: 48 + type: WallSolid + components: + - pos: 2.5,5.5 + parent: 0 + type: Transform +- uid: 49 + type: WallSolid + components: + - pos: 3.5,5.5 + parent: 0 + type: Transform +- uid: 50 + type: WallSolid + components: + - pos: 3.5,4.5 + parent: 0 + type: Transform +- uid: 51 + type: WallSolid + components: + - pos: 2.5,3.5 + parent: 0 + type: Transform +- uid: 52 + type: WallSolid + components: + - pos: 3.5,3.5 + parent: 0 + type: Transform +- uid: 53 + type: WallSolid + components: + - pos: -4.5,1.5 + parent: 0 + type: Transform +- uid: 54 + type: WallSolid + components: + - pos: -5.5,1.5 + parent: 0 + type: Transform +- uid: 55 + type: WallSolid + components: + - pos: -6.5,1.5 + parent: 0 + type: Transform +- uid: 56 + type: WallSolid + components: + - pos: -6.5,2.5 + parent: 0 + type: Transform +- uid: 57 + type: WallSolid + components: + - pos: -6.5,3.5 + parent: 0 + type: Transform +- uid: 58 + type: WallSolid + components: + - pos: -4.5,4.5 + parent: 0 + type: Transform +- uid: 59 + type: WallSolid + components: + - pos: -3.5,4.5 + parent: 0 + type: Transform +- uid: 60 + type: WallSolid + components: + - pos: -5.5,3.5 + parent: 0 + type: Transform +- uid: 61 + type: WallSolid + components: + - pos: -5.5,4.5 + parent: 0 + type: Transform +- uid: 62 + type: SalvageCanisterSpawner + components: + - pos: -5.5,2.5 + parent: 0 + type: Transform +- uid: 63 + type: SalvageCanisterSpawner + components: + - pos: -4.5,2.5 + parent: 0 + type: Transform +- uid: 64 + type: StorageCanister + components: + - pos: -1.5,4.5 + parent: 0 + type: Transform +- uid: 65 + type: AirlockEngineering + components: + - pos: -0.5,2.5 + parent: 0 + type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer +- uid: 66 + type: Girder + components: + - pos: 3.5,-4.5 + parent: 0 + type: Transform +- uid: 67 + type: Girder + components: + - pos: 3.5,-5.5 + parent: 0 + type: Transform +- uid: 68 + type: Girder + components: + - pos: 5.5,-1.5 + parent: 0 + type: Transform +- uid: 69 + type: SalvageMaterialCrateSpawner + components: + - pos: 2.5,4.5 + parent: 0 + type: Transform +- uid: 70 + type: SalvageMaterialCrateSpawner + components: + - pos: 1.5,4.5 + parent: 0 + type: Transform +- uid: 71 + type: SalvageMaterialCrateSpawner + components: + - pos: 0.5,3.5 + parent: 0 + type: Transform +- uid: 72 + type: SalvageMaterialCrateSpawner + components: + - pos: 1.5,3.5 + parent: 0 + type: Transform +- uid: 73 + type: SalvageMaterialCrateSpawner + components: + - pos: 0.5,4.5 + parent: 0 + type: Transform +- uid: 74 + type: SalvageMobSpawner + components: + - pos: 3.5,-2.5 + parent: 0 + type: Transform +- uid: 75 + type: SalvageMobSpawner + components: + - pos: 1.5,-2.5 + parent: 0 + type: Transform +- uid: 76 + type: SalvageMobSpawner + components: + - pos: 3.5,-0.5 + parent: 0 + type: Transform +- uid: 77 + type: SalvageMobSpawner + components: + - pos: -3.5,-2.5 + parent: 0 + type: Transform +- uid: 78 + type: SalvageMobSpawner + components: + - pos: -3.5,-5.5 + parent: 0 + type: Transform +- uid: 79 + type: SalvageMobSpawner + components: + - pos: -1.5,-5.5 + parent: 0 + type: Transform +- uid: 80 + type: SalvageMobSpawner + components: + - pos: -1.5,1.5 + parent: 0 + type: Transform +- uid: 81 + type: SalvageMobSpawner + components: + - pos: 1.5,1.5 + parent: 0 + type: Transform +- uid: 82 + type: SalvageMobSpawner + components: + - pos: -2.5,-0.5 + parent: 0 + type: Transform +- uid: 83 + type: Table + components: + - pos: -0.5,0.5 + parent: 0 + type: Transform +- uid: 84 + type: Table + components: + - pos: 0.5,0.5 + parent: 0 + type: Transform +- uid: 85 + type: PaperWrittenSalvageLoreMedium1PlasmaTrap + components: + - pos: 0.48327154,0.5698495 + parent: 0 + type: Transform +- uid: 86 + type: SalvageCanisterSpawner + components: + - pos: -3.5,3.5 + parent: 0 + type: Transform +- uid: 87 + type: SalvageCanisterSpawner + components: + - pos: -3.5,2.5 + parent: 0 + type: Transform +- uid: 88 + type: SalvageCanisterSpawner + components: + - pos: -4.5,3.5 + parent: 0 + type: Transform +- uid: 89 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -1.5,3.5 + parent: 0 + type: Transform +- uid: 90 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -1.5,4.5 + parent: 0 + type: Transform +- uid: 91 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -0.5,4.5 + parent: 0 + type: Transform +- uid: 92 + type: SalvageMaterialCrateSpawner + components: + - pos: -3.5,-2.5 + parent: 0 + type: Transform +- uid: 93 + type: SalvageMaterialCrateSpawner + components: + - pos: -3.5,-3.5 + parent: 0 + type: Transform +- uid: 94 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -0.5,3.5 + parent: 0 + type: Transform +- uid: 95 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: 0.5,4.5 + parent: 0 + type: Transform +- uid: 96 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: 0.5,3.5 + parent: 0 + type: Transform +- uid: 97 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: 1.5,4.5 + parent: 0 + type: Transform +- uid: 98 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: 1.5,3.5 + parent: 0 + type: Transform +- uid: 99 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: 2.5,4.5 + parent: 0 + type: Transform +- uid: 100 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -2.5,3.5 + parent: 0 + type: Transform +- uid: 101 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -3.5,3.5 + parent: 0 + type: Transform +- uid: 102 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -4.5,3.5 + parent: 0 + type: Transform +- uid: 103 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -3.5,2.5 + parent: 0 + type: Transform +- uid: 104 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -4.5,2.5 + parent: 0 + type: Transform +- uid: 105 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -5.5,2.5 + parent: 0 + type: Transform +- uid: 106 + type: SalternSubstation + components: + - pos: 0.5,-2.5 + parent: 0 + type: Transform + - startingCharge: 3990010 + type: Battery + - supplyRampPosition: 2.3437593 + type: PowerNetworkBattery +- uid: 107 + type: CableMV + components: + - pos: 0.5,-2.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 108 + type: CableMV + components: + - pos: 1.5,-2.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 109 + type: CableMV + components: + - pos: 1.5,-1.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 110 + type: CableMV + components: + - pos: 1.5,-0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 111 + type: CableMV + components: + - pos: 1.5,0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 112 + type: CableMV + components: + - pos: 1.5,1.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 113 + type: CableMV + components: + - pos: 1.5,2.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 114 + type: SalternApc + components: + - pos: 1.5,2.5 + parent: 0 + type: Transform + - startingCharge: 12000 + type: Battery +- uid: 115 + type: CableApcExtension + components: + - pos: 1.5,2.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 116 + type: CableApcExtension + components: + - pos: 1.5,1.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 117 + type: CableApcExtension + components: + - pos: 1.5,0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 118 + type: CableApcExtension + components: + - pos: 1.5,-0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 119 + type: CableApcExtension + components: + - pos: 0.5,-0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 120 + type: CableApcExtension + components: + - pos: -0.5,-0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 121 + type: CableApcExtension + components: + - pos: -1.5,-0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 122 + type: CableApcExtension + components: + - pos: -2.5,-0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 123 + type: CableApcExtension + components: + - pos: -1.5,-0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 124 + type: CableApcExtension + components: + - pos: -1.5,-1.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 125 + type: CableApcExtension + components: + - pos: -1.5,-2.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 126 + type: CableApcExtension + components: + - pos: -1.5,-3.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 127 + type: CableApcExtension + components: + - pos: -1.5,-4.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 128 + type: CableApcExtension + components: + - pos: -2.5,-4.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 129 + type: CableApcExtension + components: + - pos: -0.5,0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 130 + type: CableApcExtension + components: + - pos: -0.5,1.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 131 + type: CableApcExtension + components: + - pos: 1.5,3.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 132 + type: CableApcExtension + components: + - pos: 1.5,4.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 133 + type: CableApcExtension + components: + - pos: 0.5,4.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 134 + type: CableApcExtension + components: + - pos: -0.5,4.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 135 + type: CableApcExtension + components: + - pos: -1.5,4.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 136 + type: Poweredlight + components: + - pos: -0.5,4.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer +- uid: 137 + type: Poweredlight + components: + - rot: -1.5707963267948966 rad + pos: 1.5,0.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer +- uid: 138 + type: Poweredlight + components: + - rot: -1.5707963267948966 rad + pos: -1.5,-3.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer +- uid: 139 + type: Poweredlight + components: + - rot: 1.5707963267948966 rad + pos: -2.5,0.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer +- uid: 140 + type: Poweredlight + components: + - pos: 2.5,-2.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer +- uid: 141 + type: Poweredlight + components: + - rot: 1.5707963267948966 rad + pos: 3.5,-1.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer +- uid: 142 + type: CableApcExtension + components: + - pos: 1.5,-1.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 143 + type: CableApcExtension + components: + - pos: 1.5,-2.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 144 + type: CableApcExtension + components: + - pos: 2.5,-2.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 145 + type: CableApcExtension + components: + - pos: 3.5,-2.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 146 + type: CableApcExtension + components: + - pos: 3.5,-1.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +... diff --git a/Resources/Maps/Salvage/medium-template.yml b/Resources/Maps/Salvage/medium-template.yml new file mode 100644 index 0000000000..d1eca2d68f --- /dev/null +++ b/Resources/Maps/Salvage/medium-template.yml @@ -0,0 +1,407 @@ +meta: + format: 2 + name: DemoStation + author: Space-Wizards + postmapinit: false +tilemap: + 0: space + 1: floor_asteroid_coarse_sand0 + 2: floor_asteroid_coarse_sand1 + 3: floor_asteroid_coarse_sand2 + 4: floor_asteroid_coarse_sand_dug + 5: floor_asteroid_sand + 6: floor_asteroid_tile + 7: floor_blue + 8: floor_blue_circuit + 9: floor_dark + 10: floor_elevator_shaft + 11: floor_freezer + 12: floor_glass + 13: floor_gold + 14: floor_green_circuit + 15: floor_hydro + 16: floor_lino + 17: floor_mono + 18: floor_reinforced + 19: floor_rglass + 20: floor_rock_vault + 21: floor_showroom + 22: floor_silver + 23: floor_snow + 24: floor_steel + 25: floor_steel_dirty + 26: floor_techmaint + 27: floor_white + 28: floor_wood + 29: lattice + 30: plating + 31: underplating +grids: +- settings: + chunksize: 16 + tilesize: 1 + chunks: + - ind: "-1,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAdAAAAAAAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAADQAAAA== + - ind: "0,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "-1,0" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "0,0" + tiles: HQAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +entities: +- uid: 0 + components: + - pos: 0.5,0.5 + parent: null + type: Transform + - index: 0 + type: MapGrid + - angularDamping: 0.3 + fixedRotation: False + bodyType: Dynamic + type: Physics + - fixtures: + - shape: !type:PolygonShape + vertices: + - 0,-2 + - 0,-1 + - -2,-1 + - -2,-2 + id: grid_chunk--2--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - -3,-3 + - -3,-1 + - -4,-1 + - -4,-3 + id: grid_chunk--4--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - -7,-7 + - -7,-1 + - -8,-1 + - -8,-7 + id: grid_chunk--8--7 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-3 + - 0,-2 + - -1,-2 + - -1,-3 + id: grid_chunk--1--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-4 + - 0,-3 + - -4,-3 + - -4,-4 + id: grid_chunk--4--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 16 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 7,-7 + - 7,-1 + - 6,-1 + - 6,-7 + id: grid_chunk-6--7 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-3 + - 3,-1 + - 2,-1 + - 2,-3 + id: grid_chunk-2--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,-2 + - 1,-1 + - 0,-1 + - 0,-2 + id: grid_chunk-0--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-4 + - 3,-3 + - 0,-3 + - 0,-4 + id: grid_chunk-0--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,3 + - 0,6 + - -1,6 + - -1,3 + id: grid_chunk--1-3 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - -7,0 + - -7,6 + - -8,6 + - -8,0 + id: grid_chunk--8-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,2 + - 0,3 + - -4,3 + - -4,2 + id: grid_chunk--4-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 16 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,1 + - 0,2 + - -1,2 + - -1,1 + id: grid_chunk--1-1 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 7,0 + - 7,6 + - 6,6 + - 6,0 + id: grid_chunk-6-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,2 + - 3,3 + - 0,3 + - 0,2 + id: grid_chunk-0-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,0 + - 3,2 + - 2,2 + - 2,0 + id: grid_chunk-2-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,6 + - 0,7 + - -8,7 + - -8,6 + id: grid_chunk--8-6 + mask: + - MapGrid + layer: + - MapGrid + mass: 32 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-1 + - 0,0 + - -8,0 + - -8,-1 + id: grid_chunk--8--1 + mask: + - MapGrid + layer: + - MapGrid + mass: 32 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-7 + - 0,-4 + - -1,-4 + - -1,-7 + id: grid_chunk--1--7 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-8 + - 0,-7 + - -8,-7 + - -8,-8 + id: grid_chunk--8--8 + mask: + - MapGrid + layer: + - MapGrid + mass: 32 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 7,-1 + - 7,0 + - 0,0 + - 0,-1 + id: grid_chunk-0--1 + mask: + - MapGrid + layer: + - MapGrid + mass: 28 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 7,-8 + - 7,-7 + - 0,-7 + - 0,-8 + id: grid_chunk-0--8 + mask: + - MapGrid + layer: + - MapGrid + mass: 28 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 7,6 + - 7,7 + - 0,7 + - 0,6 + id: grid_chunk-0-6 + mask: + - MapGrid + layer: + - MapGrid + mass: 28 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - -3,0 + - -3,2 + - -4,2 + - -4,0 + id: grid_chunk--4-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,0 + - 0,1 + - -2,1 + - -2,0 + id: grid_chunk--2-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,0 + - 1,1 + - 0,1 + - 0,0 + id: grid_chunk-0-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + type: Fixtures + - gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + type: Gravity +... diff --git a/Resources/Maps/Salvage/small-1.yml b/Resources/Maps/Salvage/small-1.yml new file mode 100644 index 0000000000..f295fa82ec --- /dev/null +++ b/Resources/Maps/Salvage/small-1.yml @@ -0,0 +1,318 @@ +meta: + format: 2 + name: DemoStation + author: Space-Wizards + postmapinit: false +tilemap: + 0: space + 1: floor_asteroid_coarse_sand0 + 2: floor_asteroid_coarse_sand1 + 3: floor_asteroid_coarse_sand2 + 4: floor_asteroid_coarse_sand_dug + 5: floor_asteroid_sand + 6: floor_asteroid_tile + 7: floor_blue + 8: floor_blue_circuit + 9: floor_dark + 10: floor_elevator_shaft + 11: floor_freezer + 12: floor_glass + 13: floor_gold + 14: floor_green_circuit + 15: floor_hydro + 16: floor_lino + 17: floor_mono + 18: floor_reinforced + 19: floor_rglass + 20: floor_rock_vault + 21: floor_showroom + 22: floor_silver + 23: floor_snow + 24: floor_steel + 25: floor_steel_dirty + 26: floor_techmaint + 27: floor_white + 28: floor_wood + 29: lattice + 30: plating + 31: underplating +grids: +- settings: + chunksize: 16 + tilesize: 1 + chunks: + - ind: "-1,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAA== + - ind: "0,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "0,0" + tiles: HgAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "-1,0" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +entities: +- uid: 0 + components: + - pos: 0.5, 0.5 + parent: null + type: Transform + - index: 0 + type: MapGrid + - angularDamping: 0.3 + fixedRotation: False + bodyType: Dynamic + type: Physics + - fixtures: + - shape: !type:PolygonShape + vertices: + - 0,-2 + - 0,-1 + - -3,-1 + - -3,-2 + id: grid_chunk--3--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,-3 + - 1,-2 + - 0,-2 + - 0,-3 + id: grid_chunk-0--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,1 + - 1,3 + - 0,3 + - 0,1 + id: grid_chunk-0-1 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,0 + - 0,1 + - -3,1 + - -3,0 + id: grid_chunk--3-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - -1,-4 + - -1,-2 + - -2,-2 + - -2,-4 + id: grid_chunk--2--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,0 + - 3,1 + - 0,1 + - 0,0 + id: grid_chunk-0-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,1 + - 0,2 + - -2,2 + - -2,1 + id: grid_chunk--2-1 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-1 + - 0,0 + - -2,0 + - -2,-1 + id: grid_chunk--2--1 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 2,-2 + - 2,-1 + - 0,-1 + - 0,-2 + id: grid_chunk-0--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,-1 + - 1,0 + - 0,0 + - 0,-1 + id: grid_chunk-0--1 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + type: Fixtures + - gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + type: Gravity +- uid: 1 + type: WallSolid + components: + - pos: -1.5,1.5 + parent: 0 + type: Transform +- uid: 2 + type: WallSolid + components: + - pos: 0.5,1.5 + parent: 0 + type: Transform +- uid: 3 + type: Girder + components: + - pos: 1.5,-1.5 + parent: 0 + type: Transform +- uid: 4 + type: AirlockEngineeringLocked + components: + - pos: -0.5,1.5 + parent: 0 + type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer +- uid: 5 + type: Girder + components: + - pos: -2.5,0.5 + parent: 0 + type: Transform +- uid: 6 + type: Girder + components: + - pos: -1.5,-2.5 + parent: 0 + type: Transform +- uid: 7 + type: SalvageCanisterSpawner + components: + - pos: -1.5,0.5 + parent: 0 + type: Transform +- uid: 8 + type: SalvageMaterialCrateSpawner + components: + - pos: -1.5,-0.5 + parent: 0 + type: Transform +- uid: 9 + type: SalvageMobSpawner + components: + - pos: -1.5,-1.5 + parent: 0 + type: Transform +- uid: 10 + type: SalvageMaterialCrateSpawner + components: + - pos: -0.5,-0.5 + parent: 0 + type: Transform +- uid: 11 + type: SalvageMaterialCrateSpawner + components: + - pos: -0.5,-1.5 + parent: 0 + type: Transform +- uid: 12 + type: SalvageMaterialCrateSpawner + components: + - pos: -0.5,0.5 + parent: 0 + type: Transform +- uid: 13 + type: SalvageMobSpawner + components: + - pos: 0.5,-1.5 + parent: 0 + type: Transform +- uid: 14 + type: PoweredSmallLight + components: + - pos: 0.5,0.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - enabled: False + type: AmbientSound + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer +- uid: 15 + type: CableApcExtension + components: + - pos: -0.5,1.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 16 + type: CableApcExtension + components: + - pos: -0.5,0.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 17 + type: CableApcExtension + components: + - pos: 0.5,0.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +... diff --git a/Resources/Maps/Salvage/small-2.yml b/Resources/Maps/Salvage/small-2.yml new file mode 100644 index 0000000000..c10dafd712 --- /dev/null +++ b/Resources/Maps/Salvage/small-2.yml @@ -0,0 +1,621 @@ +meta: + format: 2 + name: DemoStation + author: Space-Wizards + postmapinit: false +tilemap: + 0: space + 1: floor_asteroid_coarse_sand0 + 2: floor_asteroid_coarse_sand1 + 3: floor_asteroid_coarse_sand2 + 4: floor_asteroid_coarse_sand_dug + 5: floor_asteroid_sand + 6: floor_asteroid_tile + 7: floor_blue + 8: floor_blue_circuit + 9: floor_dark + 10: floor_elevator_shaft + 11: floor_freezer + 12: floor_glass + 13: floor_gold + 14: floor_green_circuit + 15: floor_hydro + 16: floor_lino + 17: floor_mono + 18: floor_reinforced + 19: floor_rglass + 20: floor_rock_vault + 21: floor_showroom + 22: floor_silver + 23: floor_snow + 24: floor_steel + 25: floor_steel_dirty + 26: floor_techmaint + 27: floor_white + 28: floor_wood + 29: lattice + 30: plating + 31: underplating +grids: +- settings: + chunksize: 16 + tilesize: 1 + chunks: + - ind: "-1,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB4AAAAcAAAAHAAAAA== + - ind: "0,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAHAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAABwAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "-1,0" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAeAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "0,0" + tiles: HAAAAB4AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +entities: +- uid: 0 + components: + - pos: 0.5,0.5 + parent: null + type: Transform + - index: 0 + type: MapGrid + - angularDamping: 0.3 + fixedRotation: False + bodyType: Dynamic + type: Physics + - fixtures: + - shape: !type:PolygonShape + vertices: + - 0,-3 + - 0,-1 + - -3,-1 + - -3,-3 + id: grid_chunk--3--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-1 + - 0,0 + - -4,0 + - -4,-1 + id: grid_chunk--4--1 + mask: + - MapGrid + layer: + - MapGrid + mass: 16 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-4 + - 3,-3 + - 2,-3 + - 2,-4 + id: grid_chunk-2--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-3 + - 3,0 + - 0,0 + - 0,-3 + id: grid_chunk-0--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 36 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,0 + - 0,2 + - -4,2 + - -4,0 + id: grid_chunk--4-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 32 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - -1,2 + - -1,3 + - -4,3 + - -4,2 + id: grid_chunk--4-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,0 + - 3,2 + - 0,2 + - 0,0 + id: grid_chunk-0-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,2 + - 1,3 + - 0,3 + - 0,2 + id: grid_chunk-0-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - -3,-3 + - -3,-1 + - -4,-1 + - -4,-3 + id: grid_chunk--4--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,-2 + - 1,-1 + - 0,-1 + - 0,-2 + id: grid_chunk-0--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-3 + - 0,-2 + - -1,-2 + - -1,-3 + id: grid_chunk--1--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,0 + - 3,2 + - 2,2 + - 2,0 + id: grid_chunk-2-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-2 + - 0,-1 + - -2,-1 + - -2,-2 + id: grid_chunk--2--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-4 + - 0,-3 + - -4,-3 + - -4,-4 + id: grid_chunk--4--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 16 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,1 + - 0,2 + - -1,2 + - -1,1 + id: grid_chunk--1-1 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-3 + - 3,-1 + - 2,-1 + - 2,-3 + id: grid_chunk-2--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-1 + - 3,0 + - 0,0 + - 0,-1 + id: grid_chunk-0--1 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-4 + - 3,-3 + - 0,-3 + - 0,-4 + id: grid_chunk-0--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,0 + - 0,1 + - -2,1 + - -2,0 + id: grid_chunk--2-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + type: Fixtures + - gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + type: Gravity +- uid: 1 + type: WallSolid + components: + - pos: -3.5,1.5 + parent: 0 + type: Transform +- uid: 2 + type: WallSolid + components: + - pos: -2.5,1.5 + parent: 0 + type: Transform +- uid: 3 + type: WallSolid + components: + - pos: -1.5,1.5 + parent: 0 + type: Transform +- uid: 4 + type: AirlockMaintEngiLocked + components: + - name: Entleins Wohnstätte + type: MetaData + - pos: -0.5,1.5 + parent: 0 + type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer +- uid: 5 + type: WallSolid + components: + - pos: 0.5,1.5 + parent: 0 + type: Transform +- uid: 6 + type: WallSolid + components: + - pos: 1.5,1.5 + parent: 0 + type: Transform +- uid: 7 + type: WallSolid + components: + - pos: 2.5,1.5 + parent: 0 + type: Transform +- uid: 8 + type: ReinforcedWindow + components: + - pos: 1.5,-2.5 + parent: 0 + type: Transform +- uid: 9 + type: ReinforcedWindow + components: + - pos: 0.5,-2.5 + parent: 0 + type: Transform +- uid: 10 + type: ReinforcedWindow + components: + - pos: -0.5,-2.5 + parent: 0 + type: Transform +- uid: 11 + type: ReinforcedWindow + components: + - pos: -1.5,-2.5 + parent: 0 + type: Transform +- uid: 12 + type: FigureSpawner + components: + - pos: 1.5,-0.5 + parent: 0 + type: Transform +- uid: 13 + type: WallSolid + components: + - pos: 2.5,-2.5 + parent: 0 + type: Transform +- uid: 14 + type: ClosetMaintenanceFilledRandom + components: + - pos: -1.5,0.5 + parent: 0 + type: Transform + - isPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: !type:Container + ents: [] + type: ContainerContainer +- uid: 15 + type: TableCarpet + components: + - pos: 0.5,-0.5 + parent: 0 + type: Transform +- uid: 16 + type: TableCarpet + components: + - pos: 1.5,-0.5 + parent: 0 + type: Transform +- uid: 17 + type: d20Dice + components: + - pos: 0.35689956,-0.2576263 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 18 + type: SalvageLorePaperGamingSpawner + components: + - pos: 0.79439956,-0.4295013 + parent: 0 + type: Transform + - canCollide: False + type: Physics + - fixtures: [] + type: Fixtures +- uid: 19 + type: SalvageMaterialCrateSpawner + components: + - pos: 2.5,-1.5 + parent: 0 + type: Transform +- uid: 20 + type: SalvageMaterialCrateSpawner + components: + - pos: -3.5,0.5 + parent: 0 + type: Transform +- uid: 21 + type: RandomArcade + components: + - pos: -2.5,0.5 + parent: 0 + type: Transform +- uid: 22 + type: SalvageMobSpawner + components: + - pos: -0.5,-1.5 + parent: 0 + type: Transform +- uid: 23 + type: Grille + components: + - pos: -2.5,-2.5 + parent: 0 + type: Transform +- uid: 24 + type: Grille + components: + - pos: -1.5,-2.5 + parent: 0 + type: Transform +- uid: 25 + type: Grille + components: + - pos: -0.5,-2.5 + parent: 0 + type: Transform +- uid: 26 + type: Grille + components: + - pos: 0.5,-2.5 + parent: 0 + type: Transform +- uid: 27 + type: Grille + components: + - pos: 1.5,-2.5 + parent: 0 + type: Transform +- uid: 28 + type: CableApcExtension + components: + - pos: -0.5,1.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 29 + type: CableApcExtension + components: + - pos: -0.5,0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 30 + type: CableApcExtension + components: + - pos: -0.5,-0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 31 + type: CableApcExtension + components: + - pos: -0.5,-1.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 32 + type: CableApcExtension + components: + - pos: 0.5,-1.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 33 + type: CableApcExtension + components: + - pos: -1.5,-1.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 34 + type: CableApcExtension + components: + - pos: 1.5,-1.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 35 + type: CableApcExtension + components: + - pos: 2.5,-1.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 36 + type: PoweredSmallLight + components: + - rot: 3.141592653589793 rad + pos: 2.5,-1.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - enabled: False + type: AmbientSound + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer +- uid: 37 + type: PoweredSmallLight + components: + - pos: -2.5,0.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - enabled: False + type: AmbientSound + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer +- uid: 38 + type: CableApcExtension + components: + - pos: -1.5,0.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 39 + type: CableApcExtension + components: + - pos: -2.5,0.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 40 + type: CableApcExtension + components: + - pos: 0.5,0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +... diff --git a/Resources/Maps/Salvage/small-a-1.yml b/Resources/Maps/Salvage/small-a-1.yml new file mode 100644 index 0000000000..3b9b9132ac --- /dev/null +++ b/Resources/Maps/Salvage/small-a-1.yml @@ -0,0 +1,563 @@ +meta: + format: 2 + name: DemoStation + author: Space-Wizards + postmapinit: false +tilemap: + 0: space + 1: floor_asteroid_coarse_sand0 + 2: floor_asteroid_coarse_sand1 + 3: floor_asteroid_coarse_sand2 + 4: floor_asteroid_coarse_sand_dug + 5: floor_asteroid_sand + 6: floor_asteroid_tile + 7: floor_blue + 8: floor_blue_circuit + 9: floor_dark + 10: floor_elevator_shaft + 11: floor_freezer + 12: floor_glass + 13: floor_gold + 14: floor_green_circuit + 15: floor_hydro + 16: floor_lino + 17: floor_mono + 18: floor_reinforced + 19: floor_rglass + 20: floor_rock_vault + 21: floor_showroom + 22: floor_silver + 23: floor_snow + 24: floor_steel + 25: floor_steel_dirty + 26: floor_techmaint + 27: floor_white + 28: floor_wood + 29: lattice + 30: plating + 31: underplating +grids: +- settings: + chunksize: 16 + tilesize: 1 + chunks: + - ind: "-1,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABQAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAABQAAAA== + - ind: "0,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "-1,0" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "0,0" + tiles: BQAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +entities: +- uid: 0 + components: + - pos: 0.5,0.5 + parent: null + type: Transform + - index: 0 + type: MapGrid + - angularDamping: 0.3 + fixedRotation: False + bodyType: Dynamic + type: Physics + - fixtures: + - shape: !type:PolygonShape + vertices: + - 3,0 + - 3,1 + - 0,1 + - 0,0 + id: grid_chunk-0-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,-3 + - 1,-2 + - 0,-2 + - 0,-3 + id: grid_chunk-0--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-2 + - 3,0 + - 0,0 + - 0,-2 + id: grid_chunk-0--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 2,1 + - 2,2 + - 0,2 + - 0,1 + id: grid_chunk-0-1 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,2 + - 1,3 + - 0,3 + - 0,2 + id: grid_chunk-0-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,0 + - 0,2 + - -4,2 + - -4,0 + id: grid_chunk--4-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 32 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-4 + - 0,-2 + - -3,-2 + - -3,-4 + id: grid_chunk--3--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-2 + - 0,0 + - -4,0 + - -4,-2 + id: grid_chunk--4--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 32 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,2 + - 0,3 + - -3,3 + - -3,2 + id: grid_chunk--3-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + type: Fixtures + - gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + type: Gravity + - tiles: + -4,-2: 0 + -4,-1: 0 + -3,-4: 0 + -3,-3: 0 + -3,-2: 0 + -3,-1: 0 + -2,-4: 0 + -2,-3: 0 + -2,-2: 0 + -2,-1: 1 + -1,-4: 0 + -1,-3: 0 + -1,-2: 1 + -1,-1: 2 + 0,-3: 0 + 0,-2: 0 + 0,-1: 1 + 1,-2: 0 + 1,-1: 0 + 2,-2: 0 + 2,-1: 0 + -4,0: 0 + -4,1: 0 + -3,0: 0 + -3,1: 0 + -3,2: 0 + -2,0: 3 + -2,1: 0 + -2,2: 0 + -1,0: 1 + -1,1: 0 + -1,2: 0 + 0,0: 0 + 0,1: 0 + 0,2: 0 + 1,0: 0 + 1,1: 0 + 2,0: 0 + uniqueMixes: + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 0 + - 0 + - 0 + - 6666.982 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 9000 + moles: + - 0 + - 0 + - 0 + - 6666.982 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 6666.982 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + type: GridAtmosphere +- uid: 1 + type: AsteroidRock + components: + - pos: -2.5,2.5 + parent: 0 + type: Transform +- uid: 2 + type: AsteroidRock + components: + - pos: -2.5,1.5 + parent: 0 + type: Transform +- uid: 3 + type: AsteroidRock + components: + - pos: -2.5,0.5 + parent: 0 + type: Transform +- uid: 4 + type: AsteroidRock + components: + - pos: -2.5,-0.5 + parent: 0 + type: Transform +- uid: 5 + type: AsteroidRock + components: + - pos: -2.5,-1.5 + parent: 0 + type: Transform +- uid: 6 + type: AsteroidRock + components: + - pos: -2.5,-2.5 + parent: 0 + type: Transform +- uid: 7 + type: AsteroidRock + components: + - pos: -1.5,2.5 + parent: 0 + type: Transform +- uid: 8 + type: AsteroidRock + components: + - pos: -1.5,1.5 + parent: 0 + type: Transform +- uid: 9 + type: SalvageMobSpawner + components: + - pos: -1.5,0.5 + parent: 0 + type: Transform +- uid: 10 + type: CrateMaterialPlasteel + components: + - pos: -1.5,-0.5 + parent: 0 + type: Transform + - isPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: !type:Container + ents: [] + PaperLabel: !type:ContainerSlot {} + type: ContainerContainer +- uid: 11 + type: AsteroidRock + components: + - pos: -1.5,-1.5 + parent: 0 + type: Transform +- uid: 12 + type: AsteroidRock + components: + - pos: -1.5,-2.5 + parent: 0 + type: Transform +- uid: 13 + type: AsteroidRock + components: + - pos: -0.5,2.5 + parent: 0 + type: Transform +- uid: 14 + type: AsteroidRock + components: + - pos: -0.5,1.5 + parent: 0 + type: Transform +- uid: 15 + type: CrateMaterialPlastic + components: + - pos: -0.5,0.5 + parent: 0 + type: Transform + - isPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: !type:Container + ents: [] + PaperLabel: !type:ContainerSlot {} + type: ContainerContainer +- uid: 16 + type: CrateMaterialGlass + components: + - pos: 0.5,-0.5 + parent: 0 + type: Transform + - isPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: !type:Container + ents: [] + PaperLabel: !type:ContainerSlot {} + type: ContainerContainer +- uid: 17 + type: SalvageMaterialCrateSpawner + components: + - pos: -0.5,-1.5 + parent: 0 + type: Transform +- uid: 18 + type: AsteroidRock + components: + - pos: -0.5,-2.5 + parent: 0 + type: Transform +- uid: 19 + type: AsteroidRock + components: + - pos: 0.5,2.5 + parent: 0 + type: Transform +- uid: 20 + type: AsteroidRock + components: + - pos: 0.5,1.5 + parent: 0 + type: Transform +- uid: 21 + type: AsteroidRock + components: + - pos: 0.5,0.5 + parent: 0 + type: Transform +- uid: 22 + type: CrateMaterialSteel + components: + - pos: -0.5,-0.5 + parent: 0 + type: Transform + - isPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: !type:Container + ents: [] + PaperLabel: !type:ContainerSlot {} + type: ContainerContainer +- uid: 23 + type: AsteroidRock + components: + - pos: 0.5,-1.5 + parent: 0 + type: Transform +- uid: 24 + type: AsteroidRock + components: + - pos: 0.5,-2.5 + parent: 0 + type: Transform +- uid: 25 + type: AsteroidRock + components: + - pos: -3.5,1.5 + parent: 0 + type: Transform +- uid: 26 + type: AsteroidRock + components: + - pos: -3.5,0.5 + parent: 0 + type: Transform +- uid: 27 + type: AsteroidRock + components: + - pos: -3.5,-0.5 + parent: 0 + type: Transform +- uid: 28 + type: AsteroidRock + components: + - pos: -3.5,-1.5 + parent: 0 + type: Transform +- uid: 29 + type: AsteroidRock + components: + - pos: 1.5,1.5 + parent: 0 + type: Transform +- uid: 30 + type: AsteroidRock + components: + - pos: 1.5,0.5 + parent: 0 + type: Transform +- uid: 31 + type: AsteroidRock + components: + - pos: 1.5,-0.5 + parent: 0 + type: Transform +- uid: 32 + type: AsteroidRock + components: + - pos: 1.5,-1.5 + parent: 0 + type: Transform +- uid: 33 + type: AsteroidRock + components: + - pos: 2.5,0.5 + parent: 0 + type: Transform +- uid: 34 + type: AsteroidRock + components: + - pos: 2.5,-0.5 + parent: 0 + type: Transform +- uid: 35 + type: AsteroidRock + components: + - pos: 2.5,-1.5 + parent: 0 + type: Transform +- uid: 36 + type: AsteroidRock + components: + - pos: -2.5,-3.5 + parent: 0 + type: Transform +- uid: 37 + type: AsteroidRock + components: + - pos: -1.5,-3.5 + parent: 0 + type: Transform +- uid: 38 + type: AsteroidRock + components: + - pos: -0.5,-3.5 + parent: 0 + type: Transform +- uid: 39 + type: AtmosFixOxygenMarker + components: + - pos: -1.5,0.5 + parent: 0 + type: Transform +- uid: 40 + type: AtmosFixPlasmaMarker + components: + - pos: -0.5,0.5 + parent: 0 + type: Transform +- uid: 41 + type: AtmosFixPlasmaMarker + components: + - pos: -0.5,-0.5 + parent: 0 + type: Transform +- uid: 42 + type: AtmosFixPlasmaMarker + components: + - pos: -1.5,-0.5 + parent: 0 + type: Transform +- uid: 43 + type: AtmosFixPlasmaMarker + components: + - pos: 0.5,-0.5 + parent: 0 + type: Transform +- uid: 44 + type: AtmosFixPlasmaMarker + components: + - pos: -0.5,-1.5 + parent: 0 + type: Transform +... diff --git a/Resources/Maps/Salvage/small-template.yml b/Resources/Maps/Salvage/small-template.yml new file mode 100644 index 0000000000..962c2d7742 --- /dev/null +++ b/Resources/Maps/Salvage/small-template.yml @@ -0,0 +1,277 @@ +meta: + format: 2 + name: DemoStation + author: Space-Wizards + postmapinit: false +tilemap: + 0: space + 1: floor_asteroid_coarse_sand0 + 2: floor_asteroid_coarse_sand1 + 3: floor_asteroid_coarse_sand2 + 4: floor_asteroid_coarse_sand_dug + 5: floor_asteroid_sand + 6: floor_asteroid_tile + 7: floor_blue + 8: floor_blue_circuit + 9: floor_dark + 10: floor_elevator_shaft + 11: floor_freezer + 12: floor_glass + 13: floor_gold + 14: floor_green_circuit + 15: floor_hydro + 16: floor_lino + 17: floor_mono + 18: floor_reinforced + 19: floor_rglass + 20: floor_rock_vault + 21: floor_showroom + 22: floor_silver + 23: floor_snow + 24: floor_steel + 25: floor_steel_dirty + 26: floor_techmaint + 27: floor_white + 28: floor_wood + 29: lattice + 30: plating + 31: underplating +grids: +- settings: + chunksize: 16 + tilesize: 1 + chunks: + - ind: "-1,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAADQAAAA== + - ind: "0,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "-1,0" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "0,0" + tiles: HQAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +entities: +- uid: 0 + components: + - pos: 0.5, 0.5 + parent: null + type: Transform + - index: 0 + type: MapGrid + - angularDamping: 0.3 + fixedRotation: False + bodyType: Dynamic + type: Physics + - fixtures: + - shape: !type:PolygonShape + vertices: + - -3,-3 + - -3,-1 + - -4,-1 + - -4,-3 + id: grid_chunk--4--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,-2 + - 1,-1 + - 0,-1 + - 0,-2 + id: grid_chunk-0--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-3 + - 0,-2 + - -1,-2 + - -1,-3 + id: grid_chunk--1--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - -3,0 + - -3,2 + - -4,2 + - -4,0 + id: grid_chunk--4-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,0 + - 3,2 + - 2,2 + - 2,0 + id: grid_chunk-2-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-2 + - 0,-1 + - -2,-1 + - -2,-2 + id: grid_chunk--2--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-4 + - 0,-3 + - -4,-3 + - -4,-4 + id: grid_chunk--4--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 16 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-1 + - 0,0 + - -4,0 + - -4,-1 + id: grid_chunk--4--1 + mask: + - MapGrid + layer: + - MapGrid + mass: 16 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,1 + - 0,2 + - -1,2 + - -1,1 + id: grid_chunk--1-1 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,2 + - 3,3 + - 0,3 + - 0,2 + id: grid_chunk-0-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,0 + - 1,1 + - 0,1 + - 0,0 + id: grid_chunk-0-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-3 + - 3,-1 + - 2,-1 + - 2,-3 + id: grid_chunk-2--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-1 + - 3,0 + - 0,0 + - 0,-1 + id: grid_chunk-0--1 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-4 + - 3,-3 + - 0,-3 + - 0,-4 + id: grid_chunk-0--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,2 + - 0,3 + - -4,3 + - -4,2 + id: grid_chunk--4-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 16 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,0 + - 0,1 + - -2,1 + - -2,0 + id: grid_chunk--2-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + type: Fixtures + - gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + type: Gravity +... diff --git a/Resources/Maps/knightship.yml b/Resources/Maps/knightship.yml index bf23c38c11..b38eb7ef95 100644 --- a/Resources/Maps/knightship.yml +++ b/Resources/Maps/knightship.yml @@ -5625,4 +5625,17 @@ entities: - pos: 0.5,-9.5 parent: 0 type: Transform +- uid: 559 + type: SalvageLocator + components: + - pos: 0.5,5.5 + rot: 3.141592653589793 rad + parent: 0 + type: Transform +- uid: 560 + type: CrateSalvageEquipment + components: + - pos: 2.5,5.5 + parent: 0 + type: Transform ... diff --git a/Resources/Maps/packedstation.yml b/Resources/Maps/packedstation.yml index c829624eaa..5e065b8dc8 100644 --- a/Resources/Maps/packedstation.yml +++ b/Resources/Maps/packedstation.yml @@ -27006,21 +27006,14 @@ entities: parent: 0 type: Transform - uid: 2090 - type: CrateGenericSteel + type: SalvageMagnet components: - pos: 6.5,32.5 + rot: -1.5707963267948966 rad parent: 0 type: Transform - - isPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: !type:Container - ents: [] - labelSlot: !type:ContainerSlot {} - PaperLabel: !type:ContainerSlot {} - type: ContainerContainer - uid: 2091 - type: CrateGenericSteel + type: CrateSalvageEquipment components: - pos: 7.5,31.5 parent: 0 @@ -55098,6 +55091,12 @@ entities: storagebase: !type:Container ents: [] type: ContainerContainer +- uid: 5731 + type: Rack + components: + - pos: 12.5,-5.5 + parent: 0 + type: Transform - uid: 5732 type: Bed components: @@ -55456,6 +55455,12 @@ entities: type: Transform - canCollide: False type: Physics +- uid: 5773 + type: Rack + components: + - pos: 11.5,-5.5 + parent: 0 + type: Transform - uid: 5774 type: Grille components: @@ -64911,6 +64916,12 @@ entities: - pos: 43.5,-2.5 parent: 0 type: Transform +- uid: 6816 + type: Rack + components: + - pos: 11.5,-8.5 + parent: 0 + type: Transform - uid: 6817 type: WindowDirectional components: @@ -72022,6 +72033,12 @@ entities: type: Transform - canCollide: False type: Physics +- uid: 7442 + type: Rack + components: + - pos: 12.5,-8.5 + parent: 0 + type: Transform - uid: 7443 type: PoweredSmallLight components: @@ -72036,6 +72053,14 @@ entities: - containers: light_bulb: !type:ContainerSlot {} type: ContainerContainer +- uid: 7444 + type: ClothingOuterHardsuitEVA + components: + - pos: 12.427699,-5.3438883 + parent: 0 + type: Transform + - canCollide: False + type: Physics - uid: 7445 type: CableHV components: @@ -73133,6 +73158,62 @@ entities: RangedMagazine-magazine: !type:Container ents: [] type: ContainerContainer +- uid: 7567 + type: ClothingOuterHardsuitEVA + components: + - pos: 11.521449,-5.3282633 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 7568 + type: ClothingOuterHardsuitEVA + components: + - pos: 12.365199,-8.359513 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 7569 + type: ClothingOuterHardsuitEVA + components: + - pos: 11.443324,-8.422013 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 7570 + type: ClothingHeadHelmetEVA + components: + - pos: 11.537074,-5.5157633 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 7571 + type: ClothingHeadHelmetEVA + components: + - pos: 12.458949,-5.5157633 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 7572 + type: ClothingHeadHelmetEVA + components: + - pos: 11.505824,-8.625138 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 7573 + type: ClothingHeadHelmetEVA + components: + - pos: 12.458949,-8.531388 + parent: 0 + type: Transform + - canCollide: False + type: Physics - uid: 7608 type: DisposalTrunk components: diff --git a/Resources/Maps/saltern.yml b/Resources/Maps/saltern.yml index 28ee7ede2c..19e6599181 100644 --- a/Resources/Maps/saltern.yml +++ b/Resources/Maps/saltern.yml @@ -11,102 +11,108 @@ tilemap: 4: floor_asteroid_coarse_sand_dug 5: floor_asteroid_sand 6: floor_asteroid_tile - 7: floor_blue - 8: floor_blue_circuit - 9: floor_dark - 10: floor_elevator_shaft - 11: floor_freezer - 12: floor_glass - 13: floor_gold - 14: floor_green_circuit - 15: floor_hydro - 16: floor_lino - 17: floor_mono - 18: floor_reinforced - 19: floor_rglass - 20: floor_rock_vault - 21: floor_showroom - 22: floor_silver - 23: floor_snow - 24: floor_steel - 25: floor_steel_dirty - 26: floor_techmaint - 27: floor_white - 28: floor_wood - 29: lattice - 30: plating - 31: underplating + 7: floor_bar + 8: floor_blue + 9: floor_blue_circuit + 10: floor_clown + 11: floor_dark + 12: floor_elevator_shaft + 13: floor_freezer + 14: floor_glass + 15: floor_gold + 16: floor_grass + 17: floor_green_circuit + 18: floor_hydro + 19: floor_kitchen + 20: floor_laundry + 21: floor_lino + 22: floor_mime + 23: floor_mono + 24: floor_reinforced + 25: floor_rglass + 26: floor_rock_vault + 27: floor_showroom + 28: floor_silver + 29: floor_snow + 30: floor_steel + 31: floor_steel_dirty + 32: floor_techmaint + 33: floor_white + 34: floor_wood + 35: lattice + 36: plating + 37: underplating grids: - settings: chunksize: 16 tilesize: 1 chunks: - ind: "-1,-1" - tiles: GgAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAaAAAAHwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAaAAAAGgAAAB8AAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAfAAAAHwAAABoAAAAfAAAAHwAAAB8AAAAeAAAAGgAAABoAAAAfAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGgAAABoAAAAaAAAAGgAAABoAAAAfAAAAHgAAABoAAAAaAAAAHwAAABsAAAAbAAAAGwAAAB8AAAAfAAAAHwAAABoAAAAaAAAAGgAAABoAAAAaAAAAHwAAAB4AAAAaAAAAGgAAAB8AAAAfAAAAGwAAAB8AAAAfAAAAHgAAAB4AAAAaAAAAGgAAABoAAAAaAAAAGgAAAB8AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAGgAAABoAAAAaAAAAGgAAABoAAAAfAAAAHgAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAaAAAAHwAAABoAAAAfAAAAHwAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAGgAAABoAAAAaAAAAGgAAABoAAAAcAAAAHAAAABwAAAAcAAAAGgAAABAAAAAQAAAAEAAAABAAAAAQAAAAHwAAABoAAAAaAAAAHgAAABoAAAAeAAAAHAAAABwAAAAcAAAAHAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAB8AAAAaAAAAGgAAAB4AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAEAAAABAAAAAQAAAAEAAAABAAAAAfAAAAHwAAAB8AAAAeAAAAGAAAAAsAAAALAAAACwAAAAsAAAALAAAAHwAAABAAAAAQAAAAEAAAABAAAAAQAAAAHAAAABwAAAAcAAAAHwAAAB8AAAALAAAACwAAAAsAAAALAAAACwAAAB8AAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAAB8AAAAfAAAAHwAAABgAAAAfAAAAHwAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAfAAAAGwAAABsAAAAbAAAAGwAAABsAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHwAAABsAAAAbAAAAGwAAABsAAAAYAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAAA== + tiles: IAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAJQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAgAAAAIAAAACUAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAlAAAAJQAAACAAAAAlAAAAJQAAACUAAAAkAAAAIAAAACAAAAAlAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIAAAACAAAAAgAAAAIAAAACAAAAAlAAAAJAAAACAAAAAgAAAAJQAAACEAAAAhAAAAIQAAACUAAAAlAAAAJQAAACAAAAAgAAAAIAAAACAAAAAgAAAAJQAAACQAAAAgAAAAIAAAACUAAAAlAAAAIQAAACUAAAAlAAAAJAAAACQAAAAgAAAAIAAAACAAAAAgAAAAIAAAACUAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAIAAAACAAAAAgAAAAIAAAACAAAAAlAAAAJAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAJQAAACAAAAAlAAAAJQAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAIAAAACAAAAAgAAAAIAAAACAAAAAiAAAAIgAAACIAAAAiAAAAIAAAABUAAAAVAAAAFQAAABUAAAAVAAAAJQAAACAAAAAgAAAAJAAAACAAAAAkAAAAIgAAACIAAAAiAAAAIgAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAACUAAAAgAAAAIAAAACQAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAFQAAABUAAAAVAAAAFQAAABUAAAAlAAAAJQAAACUAAAAkAAAAHgAAAA0AAAANAAAADQAAAA0AAAANAAAAJQAAABUAAAAVAAAAFQAAABUAAAAVAAAAIgAAACIAAAAiAAAAJQAAACUAAAANAAAADQAAAA0AAAANAAAADQAAACUAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACUAAAAlAAAAJQAAAB4AAAAlAAAAJQAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAlAAAAIQAAACEAAAAhAAAAIQAAACEAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAJQAAACEAAAAhAAAAIQAAACEAAAAeAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAAA== - ind: "-1,0" - tiles: GAAAABsAAAAbAAAAGwAAABsAAAAYAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAAB8AAAAbAAAAGwAAABsAAAAbAAAAGAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAABgAAAAYAAAAHgAAABgAAAAYAAAAHgAAAB4AAAAeAAAAGAAAABgAAAAeAAAAGAAAAB4AAAAYAAAAGAAAAB4AAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAeAAAAHgAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAeAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHgAAAB4AAAAeAAAAGAAAAB4AAAAYAAAAHgAAABgAAAAeAAAAHgAAABgAAAAYAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAeAAAAGgAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAYAAAAGAAAABgAAAAYAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAHwAAAB8AAAAfAAAAHwAAAA== + tiles: HgAAACEAAAAhAAAAIQAAACEAAAAeAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACUAAAAhAAAAIQAAACEAAAAhAAAAHgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAAB4AAAAeAAAAJAAAAB4AAAAeAAAAJAAAACQAAAAkAAAAHgAAAB4AAAAkAAAAHgAAACQAAAAeAAAAHgAAACQAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAkAAAAJAAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAkAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJAAAACQAAAAkAAAAHgAAACQAAAAeAAAAJAAAAB4AAAAkAAAAJAAAAB4AAAAeAAAAJAAAACQAAAAkAAAAJAAAACQAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAkAAAAIAAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAeAAAAHgAAAB4AAAAeAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAJQAAACUAAAAlAAAAJQAAAA== - ind: "0,-1" - tiles: GwAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAABsAAAAbAAAAGwAAABsAAAAfAAAAGwAAABsAAAAbAAAAGwAAABsAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAbAAAAGwAAABsAAAAbAAAAHwAAABsAAAAbAAAAGwAAABsAAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAGwAAABsAAAAbAAAAGwAAAB8AAAAbAAAAGwAAABsAAAAbAAAAHwAAAB8AAAAYAAAAGAAAABgAAAAfAAAAHwAAAB8AAAAbAAAAHwAAAB8AAAAfAAAAGwAAABsAAAAbAAAAHwAAAB4AAAAfAAAAGAAAABgAAAAYAAAAHwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAeAAAAHwAAABgAAAAYAAAAGAAAAB8AAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAHgAAAB8AAAAYAAAAGAAAABgAAAAfAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAAB4AAAAfAAAAGAAAABgAAAAYAAAAHwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAeAAAAGgAAABgAAAAYAAAAGAAAAB8AAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGgAAAB8AAAAYAAAAGAAAABgAAAAfAAAAHwAAABsAAAAfAAAAHwAAABsAAAAbAAAAHwAAAB8AAAAbAAAAGwAAAB8AAAAfAAAAGAAAABgAAAAYAAAAHwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAfAAAAGwAAABsAAAAcAAAAHwAAABgAAAAYAAAAGAAAAB8AAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAHwAAABsAAAAbAAAAHAAAAB8AAAAYAAAAGAAAABgAAAAfAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAAB8AAAAbAAAAGwAAABwAAAAYAAAAGAAAABgAAAAYAAAAGAAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAcAAAAGAAAABgAAAAYAAAAGAAAABgAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAHAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAAA== + tiles: IQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAACEAAAAhAAAAIQAAACEAAAAlAAAAIQAAACEAAAAhAAAAIQAAACEAAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAhAAAAIQAAACEAAAAhAAAAJQAAACEAAAAhAAAAIQAAACEAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAIQAAACEAAAAhAAAAIQAAACUAAAAhAAAAIQAAACEAAAAhAAAAJQAAACUAAAAeAAAAHgAAAB4AAAAlAAAAJQAAACUAAAAhAAAAJQAAACUAAAAlAAAAIQAAACEAAAAhAAAAJQAAACQAAAAlAAAAHgAAAB4AAAAeAAAAJQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAkAAAAJQAAAB4AAAAeAAAAHgAAACUAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAJAAAACUAAAAeAAAAHgAAAB4AAAAlAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACQAAAAlAAAAHgAAAB4AAAAeAAAAJQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAkAAAAIAAAAB4AAAAeAAAAHgAAACUAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIAAAACUAAAAeAAAAHgAAAB4AAAAlAAAAJQAAACEAAAAlAAAAJQAAACEAAAAhAAAAJQAAACUAAAAhAAAAIQAAACUAAAAlAAAAHgAAAB4AAAAeAAAAJQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAlAAAAIQAAACEAAAAiAAAAJQAAAB4AAAAeAAAAHgAAACUAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAJQAAACEAAAAhAAAAIgAAACUAAAAeAAAAHgAAAB4AAAAlAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACUAAAAhAAAAIQAAACIAAAAeAAAAHgAAAB4AAAAeAAAAHgAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAiAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAAA== - ind: "0,0" - tiles: HAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABwAAAAfAAAAGAAAABgAAAAYAAAAHwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAfAAAAHwAAABgAAAAYAAAAGAAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHgAAAB8AAAAYAAAAGAAAABgAAAAfAAAAHwAAABgAAAAfAAAAGAAAAB8AAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAGAAAABgAAAAYAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAABgAAAAYAAAAGAAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAfAAAAGAAAAB8AAAAYAAAAGAAAAB8AAAAYAAAAGAAAABgAAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAGAAAABgAAAAYAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAABgAAAAYAAAAGAAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAYAAAAGAAAABgAAAAfAAAAHwAAAB8AAAAaAAAAHwAAAB8AAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAGAAAABgAAAAYAAAAHwAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAYAAAAHwAAABgAAAAYAAAAGAAAABoAAAAeAAAAGgAAABoAAAAaAAAAHgAAAB4AAAAeAAAAGgAAABoAAAAaAAAAHwAAAB8AAAAYAAAAGAAAABgAAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHgAAABoAAAAfAAAAGgAAAA== + tiles: IgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACIAAAAlAAAAHgAAAB4AAAAeAAAAJQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAlAAAAJQAAAB4AAAAeAAAAHgAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJAAAACUAAAAeAAAAHgAAAB4AAAAlAAAAJQAAAB4AAAAlAAAAHgAAACUAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAHgAAAB4AAAAeAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAAB4AAAAeAAAAHgAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAlAAAAHgAAACUAAAAeAAAAHgAAACUAAAAeAAAAHgAAAB4AAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAHgAAAB4AAAAeAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAAB4AAAAeAAAAHgAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAeAAAAHgAAAB4AAAAlAAAAJQAAACUAAAAgAAAAJQAAACUAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAHgAAAB4AAAAeAAAAJQAAACQAAAAkAAAAJAAAACQAAAAkAAAAJQAAACUAAAAlAAAAJQAAACUAAAAeAAAAJQAAAB4AAAAeAAAAHgAAACAAAAAkAAAAIAAAACAAAAAgAAAAJAAAACQAAAAkAAAAIAAAACAAAAAgAAAAJQAAACUAAAAeAAAAHgAAAB4AAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJAAAACAAAAAlAAAAIAAAAA== - ind: "1,0" - tiles: GwAAABsAAAAbAAAAGwAAAB4AAAAaAAAAGgAAABoAAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAGAAAABsAAAAbAAAAGwAAABsAAAAeAAAAHgAAABoAAAAaAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAABoAAAAfAAAAHwAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAGAAAABgAAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAAB8AAAAfAAAAGgAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAHgAAAB4AAAAeAAAAHwAAABgAAAAYAAAAGAAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGgAAAB4AAAAaAAAAHgAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAaAAAAGgAAABoAAAAaAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAGgAAABoAAAAaAAAAHwAAABgAAAAYAAAAGAAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAABoAAAAaAAAAGgAAAB8AAAAYAAAAGAAAAB8AAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAeAAAAHgAAAB4AAAAfAAAAGAAAABgAAAAaAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB4AAAAYAAAAGgAAABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAfAAAAHwAAAA== + tiles: IQAAACEAAAAhAAAAIQAAACQAAAAgAAAAIAAAACAAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAHgAAACEAAAAhAAAAIQAAACEAAAAkAAAAJAAAACAAAAAgAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACAAAAAlAAAAJQAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAHgAAAB4AAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAACUAAAAlAAAAIAAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAJAAAACQAAAAkAAAAJQAAAB4AAAAeAAAAHgAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAIAAAACQAAAAgAAAAJAAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAgAAAAIAAAACAAAAAgAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAIAAAACAAAAAgAAAAJQAAAB4AAAAeAAAAHgAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAACAAAAAgAAAAIAAAACUAAAAeAAAAHgAAACUAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAkAAAAJAAAACQAAAAlAAAAHgAAAB4AAAAgAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACQAAAAeAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAlAAAAJQAAAA== - ind: "0,1" - tiles: HwAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAABgAAAAYAAAAGAAAABgAAAAfAAAAHgAAABoAAAAfAAAAHwAAABoAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAAB4AAAAaAAAAHgAAAB4AAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAeAAAAGgAAAB4AAAAeAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAABgAAAAYAAAAGAAAABgAAAAfAAAAHgAAABoAAAAeAAAAHgAAABoAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGgAAAB4AAAAaAAAAGgAAABoAAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAaAAAAGgAAABoAAAAaAAAAHwAAAB8AAAAYAAAAHwAAABgAAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAGgAAAB8AAAAfAAAAHwAAABAAAAAfAAAAGAAAABgAAAAYAAAAHwAAABwAAAAcAAAAHAAAABwAAAAfAAAAGgAAABoAAAAaAAAAHwAAAAAAAAAQAAAAEAAAABgAAAAYAAAAGAAAAB8AAAAcAAAAHAAAABwAAAAcAAAAHwAAAB4AAAAeAAAAHgAAAB8AAAAAAAAAEAAAABAAAAAYAAAAGAAAABgAAAAYAAAAHAAAABwAAAAcAAAAHAAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAAAAAABAAAAAfAAAAGAAAABgAAAAYAAAAHwAAABwAAAAcAAAAHAAAABwAAAAcAAAAFQAAABUAAAAfAAAAAAAAAAAAAAAfAAAAHwAAABgAAAAYAAAAGAAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAAAAAAAAAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: JQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAJAAAACAAAAAlAAAAJQAAACAAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAACQAAAAgAAAAJAAAACQAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAkAAAAIAAAACQAAAAkAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAJAAAACAAAAAkAAAAJAAAACAAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAIAAAACQAAAAgAAAAIAAAACAAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAgAAAAIAAAACAAAAAgAAAAJQAAACUAAAAeAAAAJQAAAB4AAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAIAAAACUAAAAlAAAAJQAAABUAAAAlAAAAHgAAAB4AAAAeAAAAJQAAACIAAAAiAAAAIgAAACIAAAAlAAAAIAAAACAAAAAgAAAAJQAAAAAAAAAVAAAAFQAAAB4AAAAeAAAAHgAAACUAAAAiAAAAIgAAACIAAAAiAAAAJQAAACQAAAAkAAAAJAAAACUAAAAAAAAAFQAAABUAAAAeAAAAHgAAAB4AAAAeAAAAIgAAACIAAAAiAAAAIgAAACUAAAAlAAAAJQAAACUAAAAlAAAAAAAAABUAAAAlAAAAHgAAAB4AAAAeAAAAJQAAACIAAAAiAAAAIgAAACIAAAAiAAAAGwAAABsAAAAlAAAAAAAAAAAAAAAlAAAAJQAAAB4AAAAeAAAAHgAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAAAAAAAAAAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: "-2,0" - tiles: HwAAABwAAAAcAAAAHAAAABwAAAAcAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAPAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAcAAAAHAAAABwAAAAcAAAAHwAAAB8AAAAYAAAAGAAAAB8AAAAfAAAADwAAAA8AAAAPAAAADwAAABgAAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAYAAAAGAAAABgAAAAYAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAGgAAAB4AAAAfAAAAGAAAABgAAAAYAAAAHwAAAB8AAAAYAAAAGAAAAB8AAAAfAAAAGAAAABgAAAAfAAAAHgAAAB4AAAAaAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAGAAAABgAAAAYAAAAHwAAAB4AAAAaAAAAGgAAAB8AAAAYAAAAGAAAABgAAAAYAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAeAAAAGgAAABoAAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAYAAAAGAAAABgAAAAfAAAAHgAAABoAAAAaAAAAHwAAABgAAAAYAAAAGAAAABgAAAAfAAAAGAAAABgAAAAfAAAAHwAAABoAAAAfAAAAHwAAAB4AAAAeAAAAGgAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAABoAAAAeAAAAGgAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAaAAAAHgAAAB4AAAAeAAAAHgAAABoAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAaAAAAHwAAAB4AAAAeAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAGgAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAGgAAAB4AAAAeAAAAGgAAAA== + tiles: JQAAACIAAAAiAAAAIgAAACIAAAAiAAAAHgAAAB4AAAAeAAAAHgAAACUAAAASAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAiAAAAIgAAACIAAAAiAAAAJQAAACUAAAAeAAAAHgAAACUAAAAlAAAAEgAAABIAAAASAAAAEgAAAB4AAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAeAAAAHgAAAB4AAAAeAAAAJQAAACUAAAAlAAAAJQAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAlAAAAJQAAACUAAAAlAAAAIAAAACQAAAAlAAAAHgAAAB4AAAAeAAAAJQAAACUAAAAeAAAAHgAAACUAAAAlAAAAHgAAAB4AAAAlAAAAJAAAACQAAAAgAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAHgAAAB4AAAAeAAAAJQAAACQAAAAgAAAAIAAAACUAAAAeAAAAHgAAAB4AAAAeAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAkAAAAIAAAACAAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAeAAAAHgAAAB4AAAAlAAAAJAAAACAAAAAgAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAHgAAAB4AAAAlAAAAJQAAACAAAAAlAAAAJQAAACQAAAAkAAAAIAAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACAAAAAkAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAJAAAACQAAAAkAAAAJAAAACAAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAgAAAAJQAAACQAAAAkAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAIAAAACUAAAAlAAAAJQAAACUAAAAlAAAAIAAAACQAAAAkAAAAIAAAAA== - ind: "1,-1" - tiles: GwAAABsAAAAbAAAAGwAAAB8AAAAbAAAAGwAAABsAAAAbAAAAHwAAAB4AAAAaAAAAHwAAAAAAAAAAAAAAAAAAABsAAAAbAAAAGwAAABsAAAAfAAAAGwAAABsAAAAbAAAAGwAAAB8AAAAeAAAAGgAAAB8AAAAAAAAAAAAAAAAAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAfAAAAHgAAABoAAAAfAAAAAAAAAAAAAAAAAAAAHwAAAB8AAAAbAAAAGwAAAB8AAAAbAAAAGwAAABsAAAAbAAAAHwAAAB4AAAAaAAAAHwAAAAAAAAAAAAAAAAAAABsAAAAbAAAAGwAAABsAAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAeAAAAGgAAAB8AAAAAAAAAAAAAAAAAAAAbAAAAGwAAABsAAAAbAAAAGgAAAB4AAAAaAAAAGgAAABoAAAAaAAAAHgAAABoAAAAfAAAAAAAAAAAAAAAAAAAAGwAAABsAAAAbAAAAGwAAAB8AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAaAAAAHwAAAAAAAAAAAAAAAAAAABsAAAAbAAAAGwAAABsAAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAeAAAAGgAAAB8AAAAfAAAAHwAAAB8AAAAbAAAAGwAAABsAAAAbAAAAHwAAABsAAAAbAAAAGwAAABsAAAAfAAAAHgAAABoAAAAfAAAAHgAAAB4AAAAeAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAHwAAAB4AAAAeAAAAHgAAAB4AAAAaAAAAGgAAABsAAAAbAAAAGwAAABsAAAAfAAAAGwAAABsAAAAbAAAAGwAAAB8AAAAeAAAAGgAAAB8AAAAfAAAAHwAAAB8AAAAbAAAAGwAAABsAAAAbAAAAHwAAABsAAAAbAAAAGwAAABsAAAAfAAAAHgAAABoAAAAfAAAAGAAAABgAAAAYAAAAHwAAABsAAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB4AAAAaAAAAHwAAABgAAAAYAAAAGAAAABsAAAAbAAAAGwAAABsAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAGgAAAB8AAAAYAAAAGAAAABgAAAAbAAAAGwAAABsAAAAbAAAAHgAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAfAAAAGAAAABgAAAAYAAAAGwAAABsAAAAbAAAAGwAAAB4AAAAaAAAAGgAAAB4AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAGAAAAA== + tiles: IQAAACEAAAAhAAAAIQAAACUAAAAhAAAAIQAAACEAAAAhAAAAJQAAACQAAAAgAAAAJQAAAAAAAAAAAAAAAAAAACEAAAAhAAAAIQAAACEAAAAlAAAAIQAAACEAAAAhAAAAIQAAACUAAAAkAAAAIAAAACUAAAAAAAAAAAAAAAAAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAlAAAAJAAAACAAAAAlAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAhAAAAIQAAACUAAAAhAAAAIQAAACEAAAAhAAAAJQAAACQAAAAgAAAAJQAAAAAAAAAAAAAAAAAAACEAAAAhAAAAIQAAACEAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAkAAAAIAAAACUAAAAAAAAAAAAAAAAAAAAhAAAAIQAAACEAAAAhAAAAIAAAACQAAAAgAAAAIAAAACAAAAAgAAAAJAAAACAAAAAlAAAAAAAAAAAAAAAAAAAAIQAAACEAAAAhAAAAIQAAACUAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAgAAAAJQAAAAAAAAAAAAAAAAAAACEAAAAhAAAAIQAAACEAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAkAAAAIAAAACUAAAAlAAAAJQAAACUAAAAhAAAAIQAAACEAAAAhAAAAJQAAACEAAAAhAAAAIQAAACEAAAAlAAAAJAAAACAAAAAlAAAAJAAAACQAAAAkAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAJQAAACQAAAAkAAAAJAAAACQAAAAgAAAAIAAAACEAAAAhAAAAIQAAACEAAAAlAAAAIQAAACEAAAAhAAAAIQAAACUAAAAkAAAAIAAAACUAAAAlAAAAJQAAACUAAAAhAAAAIQAAACEAAAAhAAAAJQAAACEAAAAhAAAAIQAAACEAAAAlAAAAJAAAACAAAAAlAAAAHgAAAB4AAAAeAAAAJQAAACEAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACQAAAAgAAAAJQAAAB4AAAAeAAAAHgAAACEAAAAhAAAAIQAAACEAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAIAAAACUAAAAeAAAAHgAAAB4AAAAhAAAAIQAAACEAAAAhAAAAJAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAlAAAAHgAAAB4AAAAeAAAAIQAAACEAAAAhAAAAIQAAACQAAAAgAAAAIAAAACQAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAHgAAAA== - ind: "0,-2" - tiles: AAAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB4AAAAeAAAAHgAAAAAAAAAfAAAAGAAAABgAAAAYAAAAHwAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAfAAAAHgAAAB4AAAAAAAAAHwAAABgAAAAYAAAAGAAAAB8AAAAcAAAAHAAAABwAAAAcAAAAHwAAABwAAAAcAAAAHwAAAB4AAAAeAAAAHwAAAB8AAAAYAAAAGAAAABgAAAAfAAAAHAAAABwAAAAcAAAAHAAAAB8AAAAfAAAAHwAAAB8AAAAeAAAAHgAAABoAAAAfAAAAGAAAABgAAAAYAAAAHwAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAfAAAAHgAAAB4AAAAaAAAAHwAAABgAAAAYAAAAGAAAAB8AAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHwAAAB8AAAAfAAAAGgAAAB8AAAAYAAAAGAAAABgAAAAfAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAAB8AAAAeAAAAHgAAABoAAAAfAAAAGAAAABgAAAAYAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAfAAAAHgAAABoAAAAeAAAAGgAAABgAAAAYAAAAGAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHwAAAB4AAAAaAAAAHwAAAB8AAAAYAAAAGAAAABgAAAAfAAAAHwAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAAB8AAAAeAAAAGgAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAfAAAAGgAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHgAAABoAAAAbAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAaAAAAGwAAABgAAAAYAAAAGAAAABgAAAAYAAAAGgAAAB4AAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAeAAAAGgAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAaAAAAGgAAABoAAAAaAAAAHwAAAB8AAAAfAAAAGgAAAB8AAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAbAAAAGwAAABsAAAAbAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAABsAAAAbAAAAGwAAABsAAAAfAAAAGwAAABsAAAAbAAAAGwAAAA== + tiles: AAAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACQAAAAkAAAAJAAAAAAAAAAlAAAAHgAAAB4AAAAeAAAAJQAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAlAAAAJAAAACQAAAAAAAAAJQAAAB4AAAAeAAAAHgAAACUAAAAiAAAAIgAAACIAAAAiAAAAJQAAACIAAAAiAAAAJQAAACQAAAAkAAAAJQAAACUAAAAeAAAAHgAAAB4AAAAlAAAAIgAAACIAAAAiAAAAIgAAACUAAAAlAAAAJQAAACUAAAAkAAAAJAAAACAAAAAlAAAAHgAAAB4AAAAeAAAAJQAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAlAAAAJAAAACQAAAAgAAAAJQAAAB4AAAAeAAAAHgAAACUAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAJQAAACUAAAAlAAAAIAAAACUAAAAeAAAAHgAAAB4AAAAlAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACUAAAAkAAAAJAAAACAAAAAlAAAAHgAAAB4AAAAeAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAlAAAAJAAAACAAAAAkAAAAIAAAAB4AAAAeAAAAHgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAJQAAACQAAAAgAAAAJQAAACUAAAAeAAAAHgAAAB4AAAAlAAAAJQAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACUAAAAkAAAAIAAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAlAAAAIAAAACUAAAAlAAAAJQAAACUAAAAlAAAAJAAAACAAAAAhAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAgAAAAIQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAIAAAACQAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAkAAAAIAAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAgAAAAIAAAACAAAAAgAAAAJQAAACUAAAAlAAAAIAAAACUAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAhAAAAIQAAACEAAAAhAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAACEAAAAhAAAAIQAAACEAAAAlAAAAIQAAACEAAAAhAAAAIQAAAA== - ind: "1,-2" - tiles: HgAAAB4AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB4AAAAeAAAAAAAAAB4AAAAdAAAAHgAAAAAAAAAeAAAAHQAAAB4AAAAAAAAAHgAAAB0AAAAeAAAAAAAAAAAAAAAeAAAAHgAAAAAAAAAeAAAAHQAAAB4AAAAdAAAAHgAAAB0AAAAeAAAAHQAAAB4AAAAdAAAAHgAAAAAAAAAAAAAAHgAAAB4AAAAAAAAAHgAAAB0AAAAeAAAAHQAAAB4AAAAdAAAAHgAAAB0AAAAeAAAAHQAAAB4AAAAAAAAAAAAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAeAAAAHQAAAB4AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAABoAAAAaAAAAGgAAABoAAAAaAAAAHQAAAB0AAAAdAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB8AAAAaAAAAGgAAABoAAAAaAAAAGgAAAAAAAAAAAAAAAAAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAAB4AAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAAAAAAAAAAAAAAAAAfAAAAHwAAAB8AAAAfAAAAHwAAABoAAAAeAAAAHwAAABoAAAAaAAAAGgAAABoAAAAaAAAAAAAAAAAAAAAAAAAAHwAAABsAAAAbAAAAGwAAAB8AAAAaAAAAHgAAAB8AAAAaAAAAGgAAABoAAAAaAAAAGgAAAAAAAAAAAAAAAAAAAB8AAAAbAAAAGwAAABsAAAAfAAAAGgAAAB4AAAAfAAAAGgAAABoAAAAaAAAAGgAAABoAAAAAAAAAAAAAAAAAAAAeAAAAGwAAABsAAAAbAAAAHwAAABoAAAAeAAAAHwAAABoAAAAaAAAAGgAAABoAAAAaAAAAAAAAAAAAAAAAAAAAGgAAABsAAAAbAAAAGwAAAB8AAAAaAAAAHgAAAB8AAAAfAAAAHwAAABoAAAAfAAAAHwAAAAAAAAAAAAAAAAAAAB8AAAAfAAAAHwAAABsAAAAfAAAAGgAAAB4AAAAaAAAAGgAAABoAAAAaAAAAGgAAAB8AAAAAAAAAAAAAAAAAAAAbAAAAGwAAABsAAAAbAAAAHwAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAABoAAAAfAAAAAAAAAAAAAAAAAAAAGwAAABsAAAAbAAAAGwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB4AAAAaAAAAHwAAAAAAAAAAAAAAAAAAAA== + tiles: JAAAACQAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACQAAAAkAAAAAAAAACQAAAAjAAAAJAAAAAAAAAAkAAAAIwAAACQAAAAAAAAAJAAAACMAAAAkAAAAAAAAAAAAAAAkAAAAJAAAAAAAAAAkAAAAIwAAACQAAAAjAAAAJAAAACMAAAAkAAAAIwAAACQAAAAjAAAAJAAAAAAAAAAAAAAAJAAAACQAAAAAAAAAJAAAACMAAAAkAAAAIwAAACQAAAAjAAAAJAAAACMAAAAkAAAAIwAAACQAAAAAAAAAAAAAACQAAAAkAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAkAAAAIwAAACQAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACAAAAAgAAAAIAAAACAAAAAgAAAAIwAAACMAAAAjAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACUAAAAgAAAAIAAAACAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACQAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAlAAAAJQAAACUAAAAlAAAAJQAAACAAAAAkAAAAJQAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAJQAAACEAAAAhAAAAIQAAACUAAAAgAAAAJAAAACUAAAAgAAAAIAAAACAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAACUAAAAhAAAAIQAAACEAAAAlAAAAIAAAACQAAAAlAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAkAAAAIQAAACEAAAAhAAAAJQAAACAAAAAkAAAAJQAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAACEAAAAhAAAAIQAAACUAAAAgAAAAJAAAACUAAAAlAAAAJQAAACAAAAAlAAAAJQAAAAAAAAAAAAAAAAAAACUAAAAlAAAAJQAAACEAAAAlAAAAIAAAACQAAAAgAAAAIAAAACAAAAAgAAAAIAAAACUAAAAAAAAAAAAAAAAAAAAhAAAAIQAAACEAAAAhAAAAJQAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACAAAAAlAAAAAAAAAAAAAAAAAAAAIQAAACEAAAAhAAAAIQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACQAAAAgAAAAJQAAAAAAAAAAAAAAAAAAAA== - ind: "-1,1" - tiles: HwAAABgAAAAYAAAAGAAAABgAAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAGgAAABoAAAAaAAAAGgAAAB8AAAAfAAAAHwAAABgAAAAfAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAABoAAAAaAAAAGgAAABoAAAAfAAAAEgAAABIAAAASAAAAEgAAAB8AAAAfAAAAGAAAAB8AAAAfAAAAHwAAAB8AAAAaAAAAGgAAABoAAAAaAAAAHwAAABIAAAASAAAAEgAAABIAAAAfAAAACQAAAAkAAAAJAAAACQAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAASAAAAEgAAABIAAAASAAAAGAAAAAkAAAAcAAAAHAAAABwAAAAfAAAAGgAAABoAAAAaAAAAGgAAAB4AAAAfAAAAEgAAABIAAAASAAAAEgAAAB8AAAAJAAAAHAAAABwAAAAcAAAAHwAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAACQAAABwAAAAcAAAAHAAAAB8AAAAeAAAAHwAAAB8AAAAQAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAABoAAAAaAAAAGgAAABoAAAAaAAAAHgAAAB8AAAAQAAAAEAAAABAAAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAAB4AAAAeAAAAHgAAAB4AAAAfAAAAEAAAABAAAAAQAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHwAAAB8AAAAfAAAAHwAAABAAAAAQAAAAEAAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAAAAAAAAAAAB8AAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAHwAAAB8AAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAABgAAAAYAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAYAAAAGAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAGAAAABgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAB8AAAAYAAAAGAAAAA== + tiles: JQAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAIAAAACAAAAAgAAAAIAAAACUAAAAlAAAAJQAAAB4AAAAlAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAACAAAAAgAAAAIAAAACAAAAAlAAAAGAAAABgAAAAYAAAAGAAAACUAAAAlAAAAHgAAACUAAAAlAAAAJQAAACUAAAAgAAAAIAAAACAAAAAgAAAAJQAAABgAAAAYAAAAGAAAABgAAAAlAAAACwAAAAsAAAALAAAACwAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAYAAAAGAAAABgAAAAYAAAAHgAAAAsAAAAiAAAAIgAAACIAAAAlAAAAIAAAACAAAAAgAAAAIAAAACQAAAAlAAAAGAAAABgAAAAYAAAAGAAAACUAAAALAAAAIgAAACIAAAAiAAAAJQAAACQAAAAkAAAAJAAAACQAAAAkAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAACwAAACIAAAAiAAAAIgAAACUAAAAkAAAAJQAAACUAAAAVAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACAAAAAgAAAAIAAAACAAAAAgAAAAJAAAACUAAAAVAAAAFQAAABUAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACQAAAAkAAAAJAAAACQAAAAlAAAAFQAAABUAAAAVAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJQAAACUAAAAlAAAAJQAAABUAAAAVAAAAFQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAAAAAAAAAAACUAAAAVAAAAFQAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAJQAAACUAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAB4AAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAeAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAHgAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAeAAAAHgAAAA== - ind: "-2,1" - tiles: HgAAAB4AAAAeAAAAHgAAABoAAAAaAAAAHgAAABoAAAAaAAAAGgAAABoAAAAeAAAAGgAAAB4AAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAfAAAAGgAAAB4AAAAaAAAAGgAAABoAAAAaAAAAHgAAABoAAAAeAAAAGgAAAB8AAAAeAAAAHgAAAB4AAAAeAAAAHwAAABoAAAAeAAAAGgAAABoAAAAaAAAAGgAAAB4AAAAaAAAAHgAAABoAAAAfAAAAHQAAAB0AAAAdAAAAAAAAAB8AAAAaAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAaAAAAHgAAAB4AAAAaAAAAHwAAAB0AAAAdAAAAAAAAAAAAAAAfAAAAGgAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAAB8AAAAeAAAAGgAAAB8AAAAeAAAAHQAAAB4AAAAdAAAAGgAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAfAAAAHgAAABoAAAAfAAAAHgAAAB0AAAAeAAAAAAAAAAAAAAAdAAAAHQAAAB4AAAAeAAAAGgAAABoAAAAeAAAAHwAAAB4AAAAaAAAAHwAAAB4AAAAdAAAAHgAAAAAAAAAAAAAAHgAAAB4AAAAeAAAAHgAAABoAAAAaAAAAHgAAAB8AAAAeAAAAGgAAAB8AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB4AAAAeAAAAHgAAAB4AAAAaAAAAGgAAAB4AAAAfAAAAHgAAABoAAAAaAAAAHgAAAB0AAAAeAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHwAAAB4AAAAeAAAAHgAAAB4AAAAdAAAAHgAAAAAAAAAAAAAAAAAAAB0AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB8AAAAfAAAAHwAAAB8AAAAeAAAAHQAAAB4AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: JAAAACQAAAAkAAAAJAAAACAAAAAgAAAAJAAAACAAAAAgAAAAIAAAACAAAAAkAAAAIAAAACQAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAlAAAAIAAAACQAAAAgAAAAIAAAACAAAAAgAAAAJAAAACAAAAAkAAAAIAAAACUAAAAkAAAAJAAAACQAAAAkAAAAJQAAACAAAAAkAAAAIAAAACAAAAAgAAAAIAAAACQAAAAgAAAAJAAAACAAAAAlAAAAIwAAACMAAAAjAAAAAAAAACUAAAAgAAAAJAAAACQAAAAkAAAAJAAAACQAAAAgAAAAJAAAACQAAAAgAAAAJQAAACMAAAAjAAAAAAAAAAAAAAAlAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACUAAAAkAAAAIAAAACUAAAAkAAAAIwAAACQAAAAjAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAlAAAAJAAAACAAAAAlAAAAJAAAACMAAAAkAAAAAAAAAAAAAAAjAAAAIwAAACQAAAAkAAAAIAAAACAAAAAkAAAAJQAAACQAAAAgAAAAJQAAACQAAAAjAAAAJAAAAAAAAAAAAAAAJAAAACQAAAAkAAAAJAAAACAAAAAgAAAAJAAAACUAAAAkAAAAIAAAACUAAAAjAAAAIwAAACMAAAAjAAAAIwAAACQAAAAkAAAAJAAAACQAAAAgAAAAIAAAACQAAAAlAAAAJAAAACAAAAAgAAAAJAAAACMAAAAkAAAAAAAAAAAAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJQAAACQAAAAkAAAAJAAAACQAAAAjAAAAJAAAAAAAAAAAAAAAAAAAACMAAAAkAAAAJAAAACQAAAAkAAAAJAAAACUAAAAlAAAAJQAAACUAAAAkAAAAIwAAACQAAAAjAAAAIwAAACMAAAAjAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: "-1,2" - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAfAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAlAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: "1,1" - tiles: HwAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAABoAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAaAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAeAAAAGgAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAdAAAAHQAAAB4AAAAeAAAAHgAAABoAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAHgAAAB4AAAAaAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB4AAAAeAAAAHwAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: JQAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAkAAAAJAAAACAAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAJAAAACQAAAAgAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAACQAAAAkAAAAIAAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAjAAAAIwAAACQAAAAkAAAAJAAAACAAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAACMAAAAjAAAAJAAAACQAAAAgAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAACQAAAAkAAAAJQAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: "0,2" - tiles: GAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: HgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: "2,0" - tiles: GAAAABgAAAAYAAAAGAAAAB8AAAAYAAAAGAAAABgAAAAYAAAAHwAAAB8AAAAaAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAYAAAAHwAAAB8AAAAfAAAAHwAAABgAAAAfAAAAHwAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAAB8AAAAfAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAYAAAAGAAAAB8AAAAYAAAAHwAAAB8AAAAfAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAAB8AAAAfAAAAEgAAABIAAAAfAAAAHwAAAB8AAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAA== + tiles: HgAAAB4AAAAeAAAAHgAAACUAAAAeAAAAHgAAAB4AAAAeAAAAJQAAACUAAAAgAAAAJQAAACUAAAAlAAAAJQAAACUAAAAeAAAAJQAAACUAAAAlAAAAJQAAAB4AAAAlAAAAJQAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAACUAAAAlAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAeAAAAHgAAACUAAAAeAAAAJQAAACUAAAAlAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAACUAAAAlAAAAGAAAABgAAAAlAAAAJQAAACUAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAA== - ind: "3,0" - tiles: GAAAABgAAAAYAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAYAAAAGAAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAGAAAABgAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAABgAAAAYAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAYAAAAGAAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAHwAAAB8AAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAABgAAAAYAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAYAAAAGAAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAGAAAABgAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAABgAAAAYAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAYAAAAGAAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAGAAAABgAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAABgAAAAYAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAYAAAAGAAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAHwAAAB8AAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: HgAAAB4AAAAeAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAeAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAJQAAACUAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAeAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAeAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAeAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAJQAAACUAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAACQAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: "2,-1" - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAfAAAAHwAAAB4AAAAfAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB8AAAAfAAAAHgAAAB8AAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAfAAAAHwAAAB8AAAAaAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAAAAAAAAAAAAeAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHwAAAAAAAAAAAAAAHgAAAB4AAAAeAAAAHgAAAB8AAAAfAAAAGgAAAB4AAAAaAAAAGgAAABoAAAAaAAAAHgAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAHgAAAB8AAAAaAAAAHwAAAB8AAAAfAAAAGgAAAB4AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAAAAAAHwAAAB4AAAAYAAAAGAAAABgAAAAYAAAAHwAAABoAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAfAAAAAAAAAB8AAAAeAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAaAAAAHwAAAAAAAAAfAAAAHgAAABgAAAAYAAAAGAAAABgAAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAeAAAAGgAAAB8AAAAAAAAAHwAAAB4AAAAYAAAAGAAAABgAAAAYAAAAHwAAABgAAAAYAAAAGAAAABgAAAAfAAAAHgAAABoAAAAfAAAAAAAAAB8AAAAfAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAYAAAAGAAAABgAAAAYAAAAHwAAAB4AAAAaAAAAHwAAAAAAAAAAAAAAHwAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAJQAAACUAAAAlAAAAJQAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAACUAAAAlAAAAJQAAACUAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAlAAAAJQAAACQAAAAlAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAJQAAACUAAAAlAAAAJQAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAACUAAAAlAAAAJAAAACUAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAlAAAAJQAAACUAAAAgAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAAAAAAAAAAAAkAAAAJQAAACUAAAAlAAAAJQAAACUAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJQAAAAAAAAAAAAAAJAAAACQAAAAkAAAAJAAAACUAAAAlAAAAIAAAACQAAAAgAAAAIAAAACAAAAAgAAAAJAAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAJAAAACUAAAAgAAAAJQAAACUAAAAlAAAAIAAAACQAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAAAAAAJQAAACQAAAAeAAAAHgAAAB4AAAAeAAAAJQAAACAAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAlAAAAAAAAACUAAAAkAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAJQAAAAAAAAAlAAAAJAAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAkAAAAIAAAACUAAAAAAAAAJQAAACQAAAAeAAAAHgAAAB4AAAAeAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAJAAAACAAAAAlAAAAAAAAACUAAAAlAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAeAAAAHgAAAB4AAAAeAAAAJQAAACQAAAAgAAAAJQAAAAAAAAAAAAAAJQAAAA== - ind: "-1,-2" - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAaAAAAGgAAABoAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAB8AAAAfAAAAGgAAABoAAAAaAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAASAAAAEgAAABIAAAAfAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAEgAAABIAAAASAAAAHwAAAB4AAAAfAAAAGgAAABoAAAAaAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHgAAABIAAAASAAAAEgAAAB8AAAAeAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAbAAAAGwAAABsAAAAbAAAAHwAAAB4AAAAbAAAAGwAAAB8AAAAfAAAAHgAAAB8AAAAaAAAAGgAAABoAAAAfAAAAGwAAABsAAAAbAAAAGwAAAB8AAAAeAAAAGwAAABsAAAAbAAAAHwAAAB4AAAAfAAAAGgAAABoAAAAaAAAAHwAAABsAAAAbAAAAGwAAABsAAAAfAAAAHgAAABsAAAAbAAAAGwAAAB8AAAAaAAAAHwAAAB8AAAAbAAAAHwAAAB8AAAAfAAAAHwAAABsAAAAfAAAAHwAAAB8AAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAAB8AAAAbAAAAGwAAABsAAAAbAAAAGwAAAB8AAAAfAAAAHwAAABsAAAAfAAAAHwAAAB8AAAAbAAAAGwAAABsAAAAfAAAAGwAAABsAAAAbAAAAGwAAABsAAAAfAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAlAAAAJQAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAgAAAAIAAAACAAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAlAAAAIAAAACAAAAAgAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAYAAAAGAAAABgAAAAlAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAGAAAABgAAAAYAAAAJQAAACQAAAAlAAAAIAAAACAAAAAgAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJAAAABgAAAAYAAAAGAAAACUAAAAkAAAAJQAAACUAAAAlAAAAJQAAACUAAAAhAAAAIQAAACEAAAAhAAAAJQAAACQAAAAhAAAAIQAAACUAAAAlAAAAJAAAACUAAAAgAAAAIAAAACAAAAAlAAAAIQAAACEAAAAhAAAAIQAAACUAAAAkAAAAIQAAACEAAAAhAAAAJQAAACQAAAAlAAAAIAAAACAAAAAgAAAAJQAAACEAAAAhAAAAIQAAACEAAAAlAAAAJAAAACEAAAAhAAAAIQAAACUAAAAgAAAAJQAAACUAAAAhAAAAJQAAACUAAAAlAAAAJQAAACEAAAAlAAAAJQAAACUAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACUAAAAhAAAAIQAAACEAAAAhAAAAIQAAACUAAAAlAAAAJQAAACEAAAAlAAAAJQAAACUAAAAhAAAAIQAAACEAAAAlAAAAIQAAACEAAAAhAAAAIQAAACEAAAAlAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAAA== - ind: "-2,-2" - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAHwAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAABIAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAASAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAEgAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAB8AAAAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAbAAAAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAGwAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAABsAAAAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAbAAAAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAGwAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAABsAAAAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAGgAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAJQAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAABgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAYAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAGAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAhAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAIQAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACEAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAhAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAIQAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACEAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAIAAAAA== - ind: "-2,-1" - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAAB4AAAAaAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAeAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAHgAAABoAAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB4AAAAaAAAAHwAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAGgAAAB8AAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAAB4AAAAaAAAAGgAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAaAAAAHwAAAB8AAAAfAAAAGAAAABgAAAAYAAAAHwAAAB8AAAAYAAAAGAAAABgAAAAYAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAABgAAAAYAAAAGAAAAB8AAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAaAAAAGgAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAcAAAAHAAAABwAAAAcAAAAHAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAAB4AAAAfAAAAHAAAABwAAAAcAAAAHAAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAeAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAGAAAAB8AAAAcAAAAHAAAABwAAAAcAAAAHAAAABgAAAAYAAAAGAAAABgAAAAfAAAADwAAAA8AAAAPAAAADwAAABgAAAAfAAAAHAAAABwAAAAcAAAAHAAAAB8AAAAYAAAAGAAAABgAAAAYAAAAHwAAAA8AAAAYAAAAGAAAABgAAAAYAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAPAAAADwAAAA8AAAAYAAAAGAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAACQAAAAgAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAkAAAAJAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAJAAAACAAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACQAAAAgAAAAJQAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAIAAAACUAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACQAAAAgAAAAIAAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAgAAAAJQAAACUAAAAlAAAAHgAAAB4AAAAeAAAAJQAAACUAAAAeAAAAHgAAAB4AAAAeAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAAB4AAAAeAAAAHgAAACUAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAgAAAAIAAAACUAAAAlAAAAJQAAACUAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAiAAAAIgAAACIAAAAiAAAAIgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAACQAAAAlAAAAIgAAACIAAAAiAAAAIgAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAkAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAlAAAAJQAAACUAAAAlAAAAHgAAACUAAAAiAAAAIgAAACIAAAAiAAAAIgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAEgAAABIAAAASAAAAEgAAAB4AAAAlAAAAIgAAACIAAAAiAAAAIgAAACUAAAAeAAAAHgAAAB4AAAAeAAAAJQAAABIAAAAeAAAAHgAAAB4AAAAeAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAHgAAAB4AAAAeAAAAHgAAACUAAAASAAAAEgAAABIAAAAeAAAAHgAAAA== - ind: "-3,0" - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAABgAAAAYAAAAGAAAAB8AAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAHwAAAB8AAAAYAAAAGAAAABgAAAAfAAAAHwAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB8AAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAB8AAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAAaAAAAGgAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAHwAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAfAAAAHwAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAGgAAABoAAAAYAAAAGAAAABgAAAAYAAAAGAAAABoAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAB8AAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAfAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHwAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAHwAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAB4AAAAeAAAAHgAAACUAAAAkAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAJQAAACUAAAAeAAAAHgAAAB4AAAAlAAAAJQAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAACUAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAIAAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAJQAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAlAAAAJQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAACAAAAAeAAAAHgAAAB4AAAAeAAAAHgAAACAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAlAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAJQAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAJQAAAA== - ind: "-3,-1" - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAfAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAB4AAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAeAAAAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHgAAABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAGAAAABgAAAAYAAAAHwAAAB4AAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAABgAAAAYAAAAGAAAABoAAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAYAAAAGAAAABgAAAAfAAAAHgAAABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAfAAAAHwAAABgAAAAYAAAAHwAAAB4AAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAGgAAABoAAAAYAAAAGAAAAB8AAAAeAAAAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAB8AAAAfAAAAGAAAABgAAAAfAAAAHgAAABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAGAAAABgAAAAYAAAAHwAAAB4AAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAABgAAAAYAAAAGAAAAB8AAAAeAAAAGgAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAlAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAJAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACQAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAkAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAlAAAAJQAAACUAAAAlAAAAJAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAHgAAAB4AAAAeAAAAJQAAACQAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAB4AAAAeAAAAHgAAACAAAAAkAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAeAAAAHgAAAB4AAAAlAAAAJAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAlAAAAJQAAAB4AAAAeAAAAJQAAACQAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAACAAAAAeAAAAHgAAACUAAAAkAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAlAAAAHgAAAB4AAAAlAAAAJAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAHgAAAB4AAAAeAAAAJQAAACQAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAB4AAAAeAAAAHgAAACUAAAAkAAAAIAAAAA== - ind: "3,-1" - tiles: AAAAAB0AAAAAAAAAAAAAAB0AAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAABoAAAAaAAAAHwAAAB8AAAAeAAAAHwAAAB8AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAAaAAAAGgAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAGgAAABoAAAAfAAAAHwAAAB4AAAAfAAAAHwAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAABoAAAAaAAAAHwAAABoAAAAfAAAAHwAAAB8AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAGgAAAB8AAAAfAAAAHwAAAB4AAAAeAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAeAAAAHgAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAAaAAAAGgAAAB4AAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAGgAAABoAAAAeAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAABoAAAAaAAAAHgAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAAB4AAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAGgAAAB8AAAAfAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAABgAAAAYAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: AAAAACMAAAAAAAAAAAAAACMAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAJQAAACUAAAAkAAAAJQAAACUAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAIAAAACUAAAAlAAAAJQAAACUAAAAlAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAACAAAAAlAAAAJQAAACQAAAAlAAAAJQAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAJQAAACAAAAAlAAAAJQAAACUAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAIAAAACUAAAAlAAAAJQAAACQAAAAkAAAAJAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAACQAAAAkAAAAJAAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAIAAAACQAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAACAAAAAkAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAJAAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAkAAAAJAAAACQAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAIAAAACUAAAAlAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAeAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: "2,-2" - tiles: HQAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAdAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAHQAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAdAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAHQAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAB0AAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAHQAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAB0AAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAdAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAB0AAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAdAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAdAAAAAAAAAA== + tiles: IwAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAjAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAIwAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAAAAAAAAjAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAjAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAjAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAIwAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAACMAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAIwAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAACMAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAjAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAACMAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAjAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAjAAAAAAAAAA== - ind: "3,-2" - tiles: HQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAHQAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAB0AAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAHQAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAB0AAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAdAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAB0AAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAdAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAHQAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAdAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAHQAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAB0AAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: IwAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAIwAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAACMAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAIwAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAACMAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAjAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAACMAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAjAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAIwAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAjAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAIwAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAACMAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: "3,-3" - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: "2,-3" - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAA== - ind: "-3,1" - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAAAAAAHgAAAB0AAAAeAAAAHQAAAB4AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAB4AAAAdAAAAHgAAAB0AAAAeAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAeAAAAHQAAAB4AAAAdAAAAHgAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAB4AAAAdAAAAHgAAAB0AAAAeAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAeAAAAHQAAAB4AAAAdAAAAHgAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAAAAAAHgAAAB0AAAAeAAAAHQAAAB4AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAJAAAACMAAAAkAAAAIwAAACQAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAACQAAAAjAAAAJAAAACMAAAAkAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAkAAAAIwAAACQAAAAjAAAAJAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAACQAAAAjAAAAJAAAACMAAAAkAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAkAAAAIwAAACQAAAAjAAAAJAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAJAAAACMAAAAkAAAAIwAAACQAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: "0,-3" - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAkAAAAJAAAAA== - ind: "1,-3" - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAHQAAAB0AAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAB0AAAAdAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB4AAAAdAAAAHgAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAB4AAAAdAAAAHgAAAB0AAAAeAAAAHQAAAB4AAAAdAAAAHgAAAB0AAAAeAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAeAAAAHQAAAB4AAAAAAAAAHgAAAB0AAAAeAAAAAAAAAB4AAAAdAAAAHgAAAAAAAAAAAAAAHgAAAB4AAAAAAAAAHgAAAB0AAAAeAAAAAAAAAB4AAAAdAAAAHgAAAAAAAAAeAAAAHQAAAB4AAAAAAAAAAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAAAAAAAAAAAAAAAAAIwAAACMAAAAjAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAIwAAACMAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAACMAAAAjAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAIwAAACQAAAAjAAAAJAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAACQAAAAjAAAAJAAAACMAAAAkAAAAIwAAACQAAAAjAAAAJAAAACMAAAAkAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAkAAAAIwAAACQAAAAAAAAAJAAAACMAAAAkAAAAAAAAACQAAAAjAAAAJAAAAAAAAAAAAAAAJAAAACQAAAAAAAAAJAAAACMAAAAkAAAAAAAAACQAAAAjAAAAJAAAAAAAAAAkAAAAIwAAACQAAAAAAAAAAAAAAA== - ind: "2,1" - tiles: HgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAABIAAAASAAAAEgAAAB4AAAAeAAAAEgAAABIAAAASAAAAHgAAABIAAAASAAAAEgAAAB4AAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAAeAAAAHgAAABIAAAASAAAAEgAAAB4AAAASAAAAEgAAABIAAAAeAAAAEgAAABIAAAASAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: JAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAABgAAAAYAAAAGAAAACQAAAAkAAAAGAAAABgAAAAYAAAAJAAAABgAAAAYAAAAGAAAACQAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAkAAAAJAAAABgAAAAYAAAAGAAAACQAAAAYAAAAGAAAABgAAAAkAAAAGAAAABgAAAAYAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: "3,1" - tiles: HgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAAB4AAAASAAAAEgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAeAAAAEgAAABIAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAeAAAAHgAAABIAAAASAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: JAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAkAAAAJAAAACQAAAAYAAAAGAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAJAAAACQAAAAkAAAAGAAAABgAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAACQAAAAkAAAAJAAAABgAAAAYAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAJAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== entities: - uid: 0 type: SuspicionHitscanSpawner @@ -36061,6 +36067,12 @@ entities: type: Sprite - canCollide: False type: Physics +- uid: 3246 + type: Rack + components: + - pos: 6.5,9.5 + parent: 853 + type: Transform - uid: 3247 type: CableApcExtension components: @@ -36138,6 +36150,12 @@ entities: type: Sprite - canCollide: False type: Physics +- uid: 3254 + type: Rack + components: + - pos: 10.5,9.5 + parent: 853 + type: Transform - uid: 3255 type: CableApcExtension components: @@ -36698,6 +36716,14 @@ entities: type: Sprite - canCollide: False type: Physics +- uid: 3308 + type: ClothingOuterHardsuitEVA + components: + - pos: 10.495889,9.590041 + parent: 853 + type: Transform + - canCollide: False + type: Physics - uid: 3309 type: CableHV components: @@ -37470,6 +37496,14 @@ entities: type: Sprite - canCollide: False type: Physics +- uid: 3394 + type: ClothingHeadHelmetEVA + components: + - pos: 10.558389,9.418166 + parent: 853 + type: Transform + - canCollide: False + type: Physics - uid: 3395 type: CableApcExtension components: @@ -37516,6 +37550,14 @@ entities: type: Transform - canCollide: False type: Physics +- uid: 3400 + type: ClothingOuterHardsuitEVA + components: + - pos: 6.4958887,9.590041 + parent: 853 + type: Transform + - canCollide: False + type: Physics - uid: 3401 type: CableHV components: @@ -37908,6 +37950,14 @@ entities: type: Transform - canCollide: False type: Physics +- uid: 3443 + type: ClothingHeadHelmetEVA + components: + - pos: 6.5740137,9.449416 + parent: 853 + type: Transform + - canCollide: False + type: Physics - uid: 3444 type: CableHV components: @@ -72507,4 +72557,17 @@ entities: - pos: 14.5,-0.5 parent: 853 type: Transform +- uid: 7116 + type: SalvageMagnet + components: + - rot: 3.141592697301183 rad + pos: 23.5,11.5 + parent: 853 + type: Transform +- uid: 7117 + type: CrateSalvageEquipment + components: + - pos: 23.5,13.5 + parent: 853 + type: Transform ... diff --git a/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml b/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml new file mode 100644 index 0000000000..67f67e6273 --- /dev/null +++ b/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml @@ -0,0 +1,82 @@ +- type: entity + id: CrateSalvageEquipment + name: "salvage equipment crate" + description: For the daring. + suffix: Filled + parent: CrateGenericSteel + components: + - type: StorageFill + contents: + - id: ClothingHeadHelmetHardsuitSalvage + - id: ClothingOuterHardsuitSalvage + - id: ClothingMaskBreath + - id: OxygenTankFilled + - id: FireExtinguisher + - id: ClothingShoesBootsMag + - id: Pickaxe + # bare-minimum for cutting apart walls + # not giving them wirecutters/etc. for balance reasons + - id: Welder + - id: Wrench + - id: Screwdriver + - id: Crowbar + +- type: entity + id: CrateSalvageAssortedGoodies + suffix: Filled, Salvage Random + abstract: true # You should use SalvageMaterialCrateSpawner instead + parent: CrateGenericSteel + components: + - type: StorageFill + contents: + # Normal (10%) + - id: ToolboxEmergencyFilled + prob: 0.1 + - id: ClothingMaskBreath + prob: 0.1 + - id: OxygenTankFilled + prob: 0.1 + - id: SheetPlasma + prob: 0.1 + # - Service + - id: CrayonBox + prob: 0.1 + # - Medical + - id: MedkitFilled + prob: 0.1 + - id: BoxSyringe + prob: 0.1 + - id: BoxBeaker + prob: 0.1 + # - Scaf + - id: ClothingHeadHelmetScaf + prob: 0.1 + - id: ClothingOuterArmorScaf + prob: 0.1 + # - Heh + - id: SalvageHumanCorpse + prob: 0.1 + # Interesting (1%) + # - Ammo + - id: BoxMagnum + prob: 0.01 + # - #shinies + - id: PowerCellLargeHyper + prob: 0.01 + # Just no (0.1%) + # - Working guns + - id: RevolverDeckard + prob: 0.001 + - id: RevolverInspector + prob: 0.001 + # - Skub + - id: Skub + prob: 0.001 + # TRAITOR EQUIPMENT (0.01%) + - id: Telecrystal10 + prob: 0.0001 + - id: RevolverPredator + prob: 0.0001 + - id: RevolverMateba + prob: 0.0001 + diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml index 3e5bb0caf7..4310ce43f1 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml @@ -138,6 +138,8 @@ prob: 1 - id: ClothingOuterHardsuitMedical prob: 1 + - id: Hypospray + prob: 1 - type: entity id: LockerResearchDirectorFilled diff --git a/Resources/Prototypes/Catalog/Fills/Paper/salvage_lore.yml b/Resources/Prototypes/Catalog/Fills/Paper/salvage_lore.yml new file mode 100644 index 0000000000..ec09546423 --- /dev/null +++ b/Resources/Prototypes/Catalog/Fills/Paper/salvage_lore.yml @@ -0,0 +1,101 @@ +# ---- SPECIFICS ---- + +- type: entity + id: PaperWrittenSalvageLoreMedium1PlasmaTrap + abstract: true # keep this from spamming spawn sheet + suffix: "Salvage: Lore: Medium 1: Plasma Trap" + parent: PaperWritten + components: + - type: Paper + content: | + Heheheheh, no way in hell they're going to get at our stash NOW, is there? + I rigged the area where our stuff's at to be a toasty thousand K. + You know how to drain it when we need it out. + - J. + +# ---- GAMING ---- + +- type: entity + name: Salvage Lore Paper Gaming Spawner + id: SalvageLorePaperGamingSpawner + parent: MarkerBase + components: + - type: Sprite + layers: + - state: red + - texture: Objects/Misc/bureaucracy.rsi/paper_words.png + - type: RandomSpawner + prototypes: + - PaperWrittenSalvageLoreGaming1 + - PaperWrittenSalvageLoreGaming2 + - PaperWrittenSalvageLoreGaming3 + - PaperWrittenSalvageLoreGaming4 + offset: 0.1 + +- type: entity + id: PaperWrittenSalvageLoreGaming1 + abstract: true # keep this from spamming spawn sheet + suffix: "Salvage: Lore: Gaming 1" + parent: PaperWritten + components: + - type: Paper + content: | + Can't stay for the game. + Engineering want me to keep a close eye on the singularity SMESes. + Leaving this so you know what's up. + Sorry. + - Alexander + +- type: entity + id: PaperWrittenSalvageLoreGaming2 + abstract: true # keep this from spamming spawn sheet + suffix: "Salvage: Lore: Gaming 2" + parent: PaperWritten + components: + - type: Paper + content: | + Johny Clowe + Class: Druid + Alignment: Neutral Good + Str: 1,294,139 + Dex: 4,102,103 + Con: 9,522,913 + Int: 528,491 + Wis: 1 + Cha: 1 + + Where's the age? + Why are those ability scores so ridiculous? + What even are you trying to do here, Leah? - Your Friendly DM + +- type: entity + id: PaperWrittenSalvageLoreGaming3 + abstract: true # keep this from spamming spawn sheet + suffix: "Salvage: Lore: Gaming 3" + parent: PaperWritten + components: + - type: Paper + content: | + THE GIANT SPACE FLY FROM SPACE + Session 1: They should have just learned what's going on with the world and the Giant Space Fly. + Session 2: They should know to ask the Wizard's Court about seismic distortions. + Session 3: On their way to underground lair. + Session 4: Just ran into the Architect Of Flies. + Oh dear goodness they just started randomly killing everybody + +- type: entity + id: PaperWrittenSalvageLoreGaming4 + abstract: true # keep this from spamming spawn sheet + suffix: "Salvage: Lore: Gaming 4" + parent: PaperWritten + components: + - type: Paper + content: | + Won't be able to come to the meet, chemist blew up the hospital again. + Fifth time this shift. + It's amazing. + But not in a good way. + Cheers, - Arielle + +# ---- + diff --git a/Resources/Prototypes/Entities/Clothing/Belt/base.yml b/Resources/Prototypes/Entities/Clothing/Belt/base_clothingbelt.yml similarity index 100% rename from Resources/Prototypes/Entities/Clothing/Belt/base.yml rename to Resources/Prototypes/Entities/Clothing/Belt/base_clothingbelt.yml diff --git a/Resources/Prototypes/Entities/Clothing/Eyes/base.yml b/Resources/Prototypes/Entities/Clothing/Eyes/base_clothingeyes.yml similarity index 100% rename from Resources/Prototypes/Entities/Clothing/Eyes/base.yml rename to Resources/Prototypes/Entities/Clothing/Eyes/base_clothingeyes.yml diff --git a/Resources/Prototypes/Entities/Clothing/Hands/base.yml b/Resources/Prototypes/Entities/Clothing/Hands/base_clothinghands.yml similarity index 100% rename from Resources/Prototypes/Entities/Clothing/Hands/base.yml rename to Resources/Prototypes/Entities/Clothing/Hands/base_clothinghands.yml diff --git a/Resources/Prototypes/Entities/Clothing/Head/base.yml b/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml similarity index 100% rename from Resources/Prototypes/Entities/Clothing/Head/base.yml rename to Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml diff --git a/Resources/Prototypes/Entities/Clothing/Head/helmets.yml b/Resources/Prototypes/Entities/Clothing/Head/helmets.yml index bc277370b4..989d46372e 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/helmets.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/helmets.yml @@ -21,7 +21,7 @@ - type: Clothing sprite: Clothing/Head/Helmets/cosmonaut.rsi - type: IngestionBlocker - + - type: entity parent: ClothingHeadBase id: ClothingHeadHelmetCult @@ -34,6 +34,18 @@ sprite: Clothing/Head/Helmets/cult.rsi - type: IngestionBlocker +- type: entity + parent: ClothingHeadBase + id: ClothingHeadHelmetEVA + name: EVA helmet + description: A basic helmet designed for extravehicular activies. + components: + - type: Sprite + sprite: Clothing/Head/Helmets/eva.rsi + - type: Clothing + sprite: Clothing/Head/Helmets/eva.rsi + - type: IngestionBlocker + - type: entity parent: ClothingHeadBase id: ClothingHeadHelmetHelmet diff --git a/Resources/Prototypes/Entities/Clothing/Masks/base.yml b/Resources/Prototypes/Entities/Clothing/Masks/base_clothingmask.yml similarity index 100% rename from Resources/Prototypes/Entities/Clothing/Masks/base.yml rename to Resources/Prototypes/Entities/Clothing/Masks/base_clothingmask.yml diff --git a/Resources/Prototypes/Entities/Clothing/Neck/base.yml b/Resources/Prototypes/Entities/Clothing/Neck/base_clothingneck.yml similarity index 100% rename from Resources/Prototypes/Entities/Clothing/Neck/base.yml rename to Resources/Prototypes/Entities/Clothing/Neck/base_clothingneck.yml diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/base.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml similarity index 100% rename from Resources/Prototypes/Entities/Clothing/OuterClothing/base.yml rename to Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml index 89b26eaeeb..765cb913c1 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml @@ -107,7 +107,7 @@ Piercing: 0.95 Heat: 0.8 Radiation: 0.05 #combines the engi and atmos bonuses - +#The voidsuit and eva suit are not techically 'hardsuits' but this seems to be the place for all EVA-capable outer clothing. This may be worth reevaluating when we have a lot more items. - type: entity parent: ClothingOuterHardsuitBase id: IHSVoidsuit @@ -122,6 +122,20 @@ highPressureMultiplier: 1 lowPressureMultiplier: 100 +- type: entity + parent: ClothingOuterHardsuitBase + id: ClothingOuterHardsuitEVA + name: EVA suit + description: A lightweight space suit with the basic ability to protect the wearer from the vacuum of space during emergencies. + components: + - type: Sprite + sprite: Clothing/OuterClothing/Hardsuits/eva.rsi + - type: Clothing + sprite: Clothing/OuterClothing/Hardsuits/eva.rsi + - type: PressureProtection + highPressureMultiplier: 1 + lowPressureMultiplier: 100 + - type: entity parent: ClothingOuterHardsuitBase id: ClothingOuterHardsuitMedical diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/base.yml b/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml similarity index 100% rename from Resources/Prototypes/Entities/Clothing/Shoes/base.yml rename to Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/base.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml similarity index 100% rename from Resources/Prototypes/Entities/Clothing/Uniforms/base.yml rename to Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml diff --git a/Resources/Prototypes/Entities/Clothing/clothing_base.yml b/Resources/Prototypes/Entities/Clothing/base_clothing.yml similarity index 100% rename from Resources/Prototypes/Entities/Clothing/clothing_base.yml rename to Resources/Prototypes/Entities/Clothing/base_clothing.yml diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/salvage.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/salvage.yml new file mode 100644 index 0000000000..45a1a96d1c --- /dev/null +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/salvage.yml @@ -0,0 +1,67 @@ +- type: entity + name: Salvage Material Crate Spawner + id: SalvageMaterialCrateSpawner + parent: MarkerBase + components: + - type: Sprite + layers: + - state: red + - texture: Structures/Storage/Crates/generic.rsi/crate_icon.png + - type: RandomSpawner + rarePrototypes: + - SalvageHumanCorpse + - CrateMaterialPlasteel + - CrateMaterialWood + - CrateMaterialPlastic + - CrateSalvageEquipment + - CrateMaterialSteel + - CrateMaterialGlass + rareChance: 0.4 + prototypes: + - CrateSalvageAssortedGoodies + chance: 0.9 + offset: 0.0 + +- type: entity + name: Salvage Canister Spawner + id: SalvageCanisterSpawner + parent: MarkerBase + components: + - type: Sprite + layers: + - state: red + - texture: Structures/Storage/canister.rsi/blue.png + - type: RandomSpawner + rarePrototypes: + - PlasmaCanister + rareChance: 0.03 + prototypes: + - AirCanister + - NitrogenCanister + - OxygenCanister + - CarbonDioxideCanister + - WaterVaporCanister + chance: 0.9 + offset: 0.0 + +- type: entity + name: Salvage Mob Spawner + id: SalvageMobSpawner + parent: MarkerBase + components: + - type: Sprite + layers: + - state: red + - texture: Mobs/Aliens/Carps/space.rsi/icon.png + - type: RandomSpawner + prototypes: + - MobCarp + - MobCarp + - MobCarp + - MobCarp + - MobCarp + - PlushieCarp + - DehydratedSpaceCarp + chance: 0.25 + offset: 0.2 + diff --git a/Resources/Prototypes/Entities/Markers/atmos_blocker.yml b/Resources/Prototypes/Entities/Markers/atmos_blocker.yml index 18973d03c8..51f9f56a49 100644 --- a/Resources/Prototypes/Entities/Markers/atmos_blocker.yml +++ b/Resources/Prototypes/Entities/Markers/atmos_blocker.yml @@ -66,3 +66,20 @@ - type: AtmosFixMarker mode: 4 +- type: entity + name: Atmos Fix Instant Plasmafire Marker + id: AtmosFixInstantPlasmaFireMarker + description: "INSTANT PLASMAFIRE" + parent: MarkerBase + components: + - type: Sprite + layers: + - sprite: Markers/atmos.rsi # { + state: base-hot + shader: unshaded + - sprite: Markers/atmos.rsi + shader: unshaded # } + state: fire + - type: AtmosFixMarker + mode: 5 + diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 606a04942c..419c307974 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -432,7 +432,9 @@ reagents: - ReagentId: Nutriment Quantity: 5 - - type: MouseAccent + - type: ReplacementAccent + accent: mouse + - type: entity parent: MobMouse diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/human.yml b/Resources/Prototypes/Entities/Mobs/NPCs/human.yml index e2840a1c5d..d5a4c85027 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/human.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/human.yml @@ -28,3 +28,16 @@ - Thirst - Idle - Spirate + +- type: entity + parent: MobHumanBase + suffix: Dead + id: SalvageHumanCorpse + name: unidentified human + description: We barely knew ye. + components: + - type: Damageable + damage: + types: + Blunt: 200 + diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/base.yml b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/base_smokeables.yml similarity index 100% rename from Resources/Prototypes/Entities/Objects/Consumable/Smokeables/base.yml rename to Resources/Prototypes/Entities/Objects/Consumable/Smokeables/base_smokeables.yml diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/base.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/base_machineboard.yml similarity index 100% rename from Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/base.yml rename to Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/base_machineboard.yml diff --git a/Resources/Prototypes/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/Entities/Objects/Fun/toys.yml index 0c464a0bb2..030d14690e 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/toys.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/toys.yml @@ -550,3 +550,21 @@ size: 12 sprite: Objects/Fun/toys.rsi HeldPrefix: singularitytoy + +- type: entity + parent: BaseItem + id: PonderingOrb + name: pondering orb + description: Ponderous, man... Really ponderous. + components: + - type: Sprite + sprite: Objects/Fun/toys.rsi + state: orb + shader: unshaded + - type: PointLight + radius: 2 + color: "#00CCFF" + - type: Item + size: 24 + sprite: Objects/Fun/toys.rsi + HeldPrefix: orb diff --git a/Resources/Prototypes/Entities/Objects/base.yml b/Resources/Prototypes/Entities/Objects/base_item.yml similarity index 100% rename from Resources/Prototypes/Entities/Objects/base.yml rename to Resources/Prototypes/Entities/Objects/base_item.yml diff --git a/Resources/Prototypes/Entities/Structures/Dispensers/base.yml b/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml similarity index 100% rename from Resources/Prototypes/Entities/Structures/Dispensers/base.yml rename to Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml similarity index 100% rename from Resources/Prototypes/Entities/Structures/Doors/Airlocks/base.yml rename to Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml diff --git a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base.yml b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml similarity index 100% rename from Resources/Prototypes/Entities/Structures/Doors/Windoors/base.yml rename to Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml diff --git a/Resources/Prototypes/Entities/Structures/Furniture/Tables/base.yml b/Resources/Prototypes/Entities/Structures/Furniture/Tables/base_structuretables.yml similarity index 100% rename from Resources/Prototypes/Entities/Structures/Furniture/Tables/base.yml rename to Resources/Prototypes/Entities/Structures/Furniture/Tables/base_structuretables.yml diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/base.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml similarity index 100% rename from Resources/Prototypes/Entities/Structures/Machines/Computers/base.yml rename to Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml diff --git a/Resources/Prototypes/Entities/Structures/Machines/base.yml b/Resources/Prototypes/Entities/Structures/Machines/base_structuremachines.yml similarity index 100% rename from Resources/Prototypes/Entities/Structures/Machines/base.yml rename to Resources/Prototypes/Entities/Structures/Machines/base_structuremachines.yml diff --git a/Resources/Prototypes/Entities/Structures/Machines/salvage.yml b/Resources/Prototypes/Entities/Structures/Machines/salvage.yml new file mode 100644 index 0000000000..5440bb243b --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Machines/salvage.yml @@ -0,0 +1,25 @@ +- type: entity + id: SalvageMagnet + parent: BaseMachine + name: salvage magnet + description: "Pulls in salvage." + components: + - type: Sprite + layers: + - sprite: Structures/Machines/salvage.rsi + state: salvage-magnet + # Ideally, there'd be lights indicating power usage and a big red lamp indicating loss + - type: Rotatable + - type: SalvageMagnet + offset: 0, -32 + +# For Knightship +- type: entity + id: SalvageLocator + parent: SalvageMagnet + name: salvage locator + description: "Locates salvage." + components: + - type: SalvageMagnet + offset: 0, -12 + diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/PA/base.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/PA/base_particleaccelerator.yml similarity index 100% rename from Resources/Prototypes/Entities/Structures/Power/Generation/PA/base.yml rename to Resources/Prototypes/Entities/Structures/Power/Generation/PA/base_particleaccelerator.yml diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml similarity index 100% rename from Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base.yml rename to Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/base.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml similarity index 100% rename from Resources/Prototypes/Entities/Structures/Storage/Closets/base.yml rename to Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml diff --git a/Resources/Prototypes/Entities/Structures/Storage/Crates/base.yml b/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml similarity index 100% rename from Resources/Prototypes/Entities/Structures/Storage/Crates/base.yml rename to Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml diff --git a/Resources/Prototypes/Entities/Structures/Storage/Tanks/base.yml b/Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml similarity index 100% rename from Resources/Prototypes/Entities/Structures/Storage/Tanks/base.yml rename to Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/base.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/base_structuresigns.yml similarity index 100% rename from Resources/Prototypes/Entities/Structures/Wallmounts/Signs/base.yml rename to Resources/Prototypes/Entities/Structures/Wallmounts/Signs/base_structuresigns.yml diff --git a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml index c1f4c221f4..235a302e1a 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml @@ -23,6 +23,7 @@ - type: Occluder sizeX: 32 sizeY: 32 + - type: Airtight - type: Appearance visuals: - type: AsteroidRockVisualizer diff --git a/Resources/Prototypes/Entities/Structures/Walls/base.yml b/Resources/Prototypes/Entities/Structures/Walls/base_structurewalls.yml similarity index 100% rename from Resources/Prototypes/Entities/Structures/Walls/base.yml rename to Resources/Prototypes/Entities/Structures/Walls/base_structurewalls.yml diff --git a/Resources/Prototypes/Entities/Structures/base.yml b/Resources/Prototypes/Entities/Structures/base_structure.yml similarity index 100% rename from Resources/Prototypes/Entities/Structures/base.yml rename to Resources/Prototypes/Entities/Structures/base_structure.yml diff --git a/Resources/Prototypes/Maps/salvage.yml b/Resources/Prototypes/Maps/salvage.yml new file mode 100644 index 0000000000..6035777731 --- /dev/null +++ b/Resources/Prototypes/Maps/salvage.yml @@ -0,0 +1,33 @@ +# ALL SALVAGE MAPS SHOULD BE SETUP SUCH THAT TILE REF -1,-1 IS THEIR OFFICIAL CENTRE, +# AND FOR EASE OF UNDERSTANDING, USE - pos: 0.5, 0.5 FOR SAVED POSITION. + +# "Small"-class maps - Max size square: 7x7, indicated size: 3.5 + +- type: salvageMap + id: small1 + name: "Small / Engineering Storage 1" + mapPath: Maps/Salvage/small-1.yml + size: 3.5 + +- type: salvageMap + id: small2 + name: "Small / Gaming Nook 1" + mapPath: Maps/Salvage/small-2.yml + size: 3.5 + +# Small - Asteroids + +- type: salvageMap + id: smallA1 + name: "Small / Asteroid 1 Plasmafire" + mapPath: Maps/Salvage/small-a-1.yml + size: 3.5 + +# "Medium"-class maps - Max size square: 15x15, indicated size: 7.5 + +- type: salvageMap + id: medium1 + name: "Medium / Plasma-Trapped Cache 1" + mapPath: Maps/Salvage/medium-1.yml + size: 7.5 + diff --git a/Resources/Prototypes/Objectives/traitorObjectives.yml b/Resources/Prototypes/Objectives/traitorObjectives.yml index 5945c0e91c..31179a010a 100644 --- a/Resources/Prototypes/Objectives/traitorObjectives.yml +++ b/Resources/Prototypes/Objectives/traitorObjectives.yml @@ -40,3 +40,15 @@ - StayAliveCondition conditions: - !type:DieCondition {} + +- type: objective + id: CMOHyposprayStealObjective + issuer: syndicate + requirements: + - !type:TraitorRequirement {} + - !type:IncompatibleConditionsRequirement + conditions: + - DieCondition + conditions: + - !type:StealCondition + prototype: Hypospray diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml index ac15a7960c..67073f0f9a 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml @@ -9,6 +9,7 @@ access: - Cargo - Maintenance + - External - type: startingGear id: CargoTechGear diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml index 06390dce09..b77e4d90dd 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml @@ -10,6 +10,7 @@ - Cargo # - Quartermaster - Maintenance + - External - type: startingGear id: QuartermasterGear diff --git a/Resources/Prototypes/accents.yml b/Resources/Prototypes/accents.yml index 517225897a..9a95284724 100644 --- a/Resources/Prototypes/accents.yml +++ b/Resources/Prototypes/accents.yml @@ -15,3 +15,11 @@ - Woof! - Arf. - Grrr. + +- type: accent + id: mouse + words: + - Squeak! + - Piep! + - Chuu! + - Eeee! diff --git a/Resources/Textures/Clothing/Head/Helmets/eva.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Helmets/eva.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..53982cb335 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/eva.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/eva.rsi/icon.png b/Resources/Textures/Clothing/Head/Helmets/eva.rsi/icon.png new file mode 100644 index 0000000000..5751b4bea2 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/eva.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/eva.rsi/inhand-left.png b/Resources/Textures/Clothing/Head/Helmets/eva.rsi/inhand-left.png new file mode 100644 index 0000000000..a3df7c6255 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/eva.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/eva.rsi/inhand-right.png b/Resources/Textures/Clothing/Head/Helmets/eva.rsi/inhand-right.png new file mode 100644 index 0000000000..e47bdd8fdd Binary files /dev/null and b/Resources/Textures/Clothing/Head/Helmets/eva.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Head/Helmets/eva.rsi/meta.json b/Resources/Textures/Clothing/Head/Helmets/eva.rsi/meta.json new file mode 100644 index 0000000000..120d4d7723 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Helmets/eva.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/eva.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/eva.rsi/equipped-OUTERCLOTHING.png new file mode 100644 index 0000000000..4bee6de2be Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/eva.rsi/equipped-OUTERCLOTHING.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/eva.rsi/icon.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/eva.rsi/icon.png new file mode 100644 index 0000000000..0e73a64eec Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/eva.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/eva.rsi/inhand-left.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/eva.rsi/inhand-left.png new file mode 100644 index 0000000000..b9cf69845c Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/eva.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/eva.rsi/inhand-right.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/eva.rsi/inhand-right.png new file mode 100644 index 0000000000..271fd3b31c Binary files /dev/null and b/Resources/Textures/Clothing/OuterClothing/Hardsuits/eva.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/eva.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/eva.rsi/meta.json new file mode 100644 index 0000000000..f2bcccc0c6 --- /dev/null +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/eva.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a. Further modifications and derivate works (inhand-left and inhand-right) under same license.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Markers/arrow.rsi/meta.json b/Resources/Textures/Markers/arrow.rsi/meta.json new file mode 100644 index 0000000000..158be37a96 --- /dev/null +++ b/Resources/Textures/Markers/arrow.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Space Wizards Federation", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "mono" + } + ] +} diff --git a/Resources/Textures/Markers/arrow.rsi/mono.png b/Resources/Textures/Markers/arrow.rsi/mono.png new file mode 100644 index 0000000000..59de0257f6 Binary files /dev/null and b/Resources/Textures/Markers/arrow.rsi/mono.png differ diff --git a/Resources/Textures/Markers/atmos.rsi/base-hot.png b/Resources/Textures/Markers/atmos.rsi/base-hot.png new file mode 100644 index 0000000000..e0d68f8b9e Binary files /dev/null and b/Resources/Textures/Markers/atmos.rsi/base-hot.png differ diff --git a/Resources/Textures/Markers/atmos.rsi/fire.png b/Resources/Textures/Markers/atmos.rsi/fire.png new file mode 100644 index 0000000000..71abc46e81 Binary files /dev/null and b/Resources/Textures/Markers/atmos.rsi/fire.png differ diff --git a/Resources/Textures/Markers/atmos.rsi/meta.json b/Resources/Textures/Markers/atmos.rsi/meta.json index 769fac3d2b..019a9f02d2 100644 --- a/Resources/Textures/Markers/atmos.rsi/meta.json +++ b/Resources/Textures/Markers/atmos.rsi/meta.json @@ -10,6 +10,9 @@ { "name": "base" }, + { + "name": "base-hot" + }, { "name": "vacuum" }, @@ -24,6 +27,9 @@ }, { "name": "watervapour" + }, + { + "name": "fire" } ] } diff --git a/Resources/Textures/Objects/Fun/toys.rsi/meta.json b/Resources/Textures/Objects/Fun/toys.rsi/meta.json index 87fb40c4e1..65fa0b967f 100644 --- a/Resources/Textures/Objects/Fun/toys.rsi/meta.json +++ b/Resources/Textures/Objects/Fun/toys.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432, orb, orb-inhand-left and orb-inhand-right created by Pancake", "size": { "x": 32, "y": 32 @@ -268,17 +268,36 @@ { "name": "singularitytoy", "delays": [ - [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1 - ] - ] + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "orb", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "orb-inhand-left", + "directions": 4 + }, + { + "name": "orb-inhand-right", + "directions": 4 } ] } diff --git a/Resources/Textures/Objects/Fun/toys.rsi/orb-inhand-left.png b/Resources/Textures/Objects/Fun/toys.rsi/orb-inhand-left.png new file mode 100644 index 0000000000..7607326bbb Binary files /dev/null and b/Resources/Textures/Objects/Fun/toys.rsi/orb-inhand-left.png differ diff --git a/Resources/Textures/Objects/Fun/toys.rsi/orb-inhand-right.png b/Resources/Textures/Objects/Fun/toys.rsi/orb-inhand-right.png new file mode 100644 index 0000000000..aa65dbea80 Binary files /dev/null and b/Resources/Textures/Objects/Fun/toys.rsi/orb-inhand-right.png differ diff --git a/Resources/Textures/Objects/Fun/toys.rsi/orb.png b/Resources/Textures/Objects/Fun/toys.rsi/orb.png new file mode 100644 index 0000000000..39dc5079e9 Binary files /dev/null and b/Resources/Textures/Objects/Fun/toys.rsi/orb.png differ diff --git a/Resources/Textures/Structures/Machines/salvage.rsi/meta.json b/Resources/Textures/Structures/Machines/salvage.rsi/meta.json new file mode 100644 index 0000000000..852e539aef --- /dev/null +++ b/Resources/Textures/Structures/Machines/salvage.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Edit by 20kdc using small parts of autolathe from https://github.com/tgstation/tgstation/blob/acb091f9744e9ab7d5a27fb32dd0c03bd019f58c/icons/obj/stationobjs.dmi (may be an earlier version) and tcboss from https://github.com/tgstation/tgstation/blob/e32357e6b0ec0f0a1821d2773f0d1e1d6ce7d494/icons/obj/computer.dmi (may be an earlier version)", + "size": { + "x": 32, + "y": 64 + }, + "states": [ + { + "name": "salvage-magnet", + "directions": 4, + "commentary": "So presumably the lights would represent the power usage of the magnet, when that's in, and the big red lamp would mean something's being lost." + } + ] +} + diff --git a/Resources/Textures/Structures/Machines/salvage.rsi/salvage-magnet.png b/Resources/Textures/Structures/Machines/salvage.rsi/salvage-magnet.png new file mode 100644 index 0000000000..19171634fe Binary files /dev/null and b/Resources/Textures/Structures/Machines/salvage.rsi/salvage-magnet.png differ diff --git a/RobustToolbox b/RobustToolbox index 3d959c98ed..b5a21ccc4d 160000 --- a/RobustToolbox +++ b/RobustToolbox @@ -1 +1 @@ -Subproject commit 3d959c98edef6673f1c03d08f85d906e237c9d7b +Subproject commit b5a21ccc4d217df5b458873ff23d3910c562c56f diff --git a/SpaceStation14.sln b/SpaceStation14.sln index 858eb85bbe..c5bcaf3a7b 100644 --- a/SpaceStation14.sln +++ b/SpaceStation14.sln @@ -97,16 +97,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Base", "RobustTool EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robust.Benchmarks", "RobustToolbox\Robust.Benchmarks\Robust.Benchmarks.csproj", "{8A21C7CA-2EB8-40E5-8043-33582C06D139}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Linguini", "Linguini", "{ECA11A64-8C77-4BEE-8E48-15FE585B84B6}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Linguini.Bundle", "RobustToolbox\Linguini\Linguini.Bundle\Linguini.Bundle.csproj", "{CEF5CBAC-B5C2-453D-AC0B-EE755CE577C0}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Linguini.Shared", "RobustToolbox\Linguini\Linguini.Shared\Linguini.Shared.csproj", "{454AF09E-9A75-4A18-9C37-70CA8E381F57}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Linguini.Syntax", "RobustToolbox\Linguini\Linguini.Syntax\Linguini.Syntax.csproj", "{18BA44A5-5EB0-4356-BE19-179992A14D40}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PluralRules.Generator", "RobustToolbox\Linguini\PluralRules.Generator\PluralRules.Generator.csproj", "{9210CCA8-94AA-407F-8F9A-64101D0E552D}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pow3r", "Pow3r\Pow3r.csproj", "{1C048C9F-00A9-4796-BE4D-BB36B7769720}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Content.Shared.Database", "Content.Shared.Database\Content.Shared.Database.csproj", "{8842381D-3426-4BA8-93DA-599AB14D88E9}" @@ -236,22 +226,6 @@ Global {8A21C7CA-2EB8-40E5-8043-33582C06D139}.Debug|Any CPU.Build.0 = Debug|Any CPU {8A21C7CA-2EB8-40E5-8043-33582C06D139}.Release|Any CPU.ActiveCfg = Release|Any CPU {8A21C7CA-2EB8-40E5-8043-33582C06D139}.Release|Any CPU.Build.0 = Release|Any CPU - {CEF5CBAC-B5C2-453D-AC0B-EE755CE577C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CEF5CBAC-B5C2-453D-AC0B-EE755CE577C0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CEF5CBAC-B5C2-453D-AC0B-EE755CE577C0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CEF5CBAC-B5C2-453D-AC0B-EE755CE577C0}.Release|Any CPU.Build.0 = Release|Any CPU - {454AF09E-9A75-4A18-9C37-70CA8E381F57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {454AF09E-9A75-4A18-9C37-70CA8E381F57}.Debug|Any CPU.Build.0 = Debug|Any CPU - {454AF09E-9A75-4A18-9C37-70CA8E381F57}.Release|Any CPU.ActiveCfg = Release|Any CPU - {454AF09E-9A75-4A18-9C37-70CA8E381F57}.Release|Any CPU.Build.0 = Release|Any CPU - {18BA44A5-5EB0-4356-BE19-179992A14D40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {18BA44A5-5EB0-4356-BE19-179992A14D40}.Debug|Any CPU.Build.0 = Debug|Any CPU - {18BA44A5-5EB0-4356-BE19-179992A14D40}.Release|Any CPU.ActiveCfg = Release|Any CPU - {18BA44A5-5EB0-4356-BE19-179992A14D40}.Release|Any CPU.Build.0 = Release|Any CPU - {9210CCA8-94AA-407F-8F9A-64101D0E552D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9210CCA8-94AA-407F-8F9A-64101D0E552D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9210CCA8-94AA-407F-8F9A-64101D0E552D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9210CCA8-94AA-407F-8F9A-64101D0E552D}.Release|Any CPU.Build.0 = Release|Any CPU {1C048C9F-00A9-4796-BE4D-BB36B7769720}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1C048C9F-00A9-4796-BE4D-BB36B7769720}.Debug|Any CPU.Build.0 = Debug|Any CPU {1C048C9F-00A9-4796-BE4D-BB36B7769720}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -288,11 +262,6 @@ Global {88B0FC0F-7209-40E2-AF16-EB90AF727C5B} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE} {A3C5B00A-D232-4A01-B82E-B0E58BFD5C12} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE} {8A21C7CA-2EB8-40E5-8043-33582C06D139} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE} - {ECA11A64-8C77-4BEE-8E48-15FE585B84B6} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE} - {CEF5CBAC-B5C2-453D-AC0B-EE755CE577C0} = {ECA11A64-8C77-4BEE-8E48-15FE585B84B6} - {454AF09E-9A75-4A18-9C37-70CA8E381F57} = {ECA11A64-8C77-4BEE-8E48-15FE585B84B6} - {18BA44A5-5EB0-4356-BE19-179992A14D40} = {ECA11A64-8C77-4BEE-8E48-15FE585B84B6} - {9210CCA8-94AA-407F-8F9A-64101D0E552D} = {ECA11A64-8C77-4BEE-8E48-15FE585B84B6} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {AA37ED9F-F8D6-468E-A101-658AD605B09A}