diff --git a/Content.Client/IconSmoothing/IconSmoothSystem.cs b/Content.Client/IconSmoothing/IconSmoothSystem.cs
index 2715805e758..d6afbc42cb4 100644
--- a/Content.Client/IconSmoothing/IconSmoothSystem.cs
+++ b/Content.Client/IconSmoothing/IconSmoothSystem.cs
@@ -81,21 +81,25 @@ public void SetStateBase(EntityUid uid, IconSmoothComponent component, string ne
private void SetCornerLayers(SpriteComponent sprite, IconSmoothComponent component)
{
- sprite.LayerMapRemove(CornerLayers.SE);
- sprite.LayerMapRemove(CornerLayers.NE);
- sprite.LayerMapRemove(CornerLayers.NW);
- sprite.LayerMapRemove(CornerLayers.SW);
-
+ // Frontier: Allow overlays on entities using CornerLayers smoothing - don't remove layers, adjust existing ones or create new ones.
var state0 = $"{component.StateBase}0";
- sprite.LayerMapSet(CornerLayers.SE, sprite.AddLayerState(state0));
- sprite.LayerSetDirOffset(CornerLayers.SE, DirectionOffset.None);
- sprite.LayerMapSet(CornerLayers.NE, sprite.AddLayerState(state0));
- sprite.LayerSetDirOffset(CornerLayers.NE, DirectionOffset.CounterClockwise);
- sprite.LayerMapSet(CornerLayers.NW, sprite.AddLayerState(state0));
- sprite.LayerSetDirOffset(CornerLayers.NW, DirectionOffset.Flip);
- sprite.LayerMapSet(CornerLayers.SW, sprite.AddLayerState(state0));
- sprite.LayerSetDirOffset(CornerLayers.SW, DirectionOffset.Clockwise);
+ SetCornerLayerState(sprite, CornerLayers.SE, DirectionOffset.None, state0);
+ SetCornerLayerState(sprite, CornerLayers.NE, DirectionOffset.CounterClockwise, state0);
+ SetCornerLayerState(sprite, CornerLayers.NW, DirectionOffset.Flip, state0);
+ SetCornerLayerState(sprite, CornerLayers.SW, DirectionOffset.Clockwise, state0);
+ // End Frontier: Allow overlays on entities using CornerLayers smoothing - don't remove layers, adjust existing ones or create new ones.
+ }
+
+ // Frontier: set layer function to remove redundancy
+ private void SetCornerLayerState(SpriteComponent sprite, CornerLayers corner, DirectionOffset offset, string state)
+ {
+ if (sprite.LayerMapTryGet(corner, out var layer))
+ sprite.LayerSetState(layer, state);
+ else
+ sprite.LayerMapSet(corner, sprite.AddLayerState(state));
+ sprite.LayerSetDirOffset(corner, offset);
}
+ // End Frontier: set layer function to remove redundancy
private void OnShutdown(EntityUid uid, IconSmoothComponent component, ComponentShutdown args)
{
diff --git a/Content.IntegrationTests/PoolSettings.cs b/Content.IntegrationTests/PoolSettings.cs
index 187af4569f9..5cebda0bfa1 100644
--- a/Content.IntegrationTests/PoolSettings.cs
+++ b/Content.IntegrationTests/PoolSettings.cs
@@ -1,4 +1,4 @@
-#nullable enable
+#nullable enable
using Robust.Shared.Random;
@@ -93,7 +93,7 @@ public sealed class PoolSettings
///
/// Frontier: the preset to run the game in.
/// Set to secret for upstream tests to mimic upstream behaviour.
- /// If you need to check adventure game rule things, set this to Adventure.
+ /// If you need to check adventure game rule things, set this to nfadventure or nfpirate.
///
public string GameLobbyDefaultPreset { get; set; } = "secret";
diff --git a/Content.Server/AlertLevel/AlertLevelSystem.cs b/Content.Server/AlertLevel/AlertLevelSystem.cs
index 8e43bf6a715..71ad018603a 100644
--- a/Content.Server/AlertLevel/AlertLevelSystem.cs
+++ b/Content.Server/AlertLevel/AlertLevelSystem.cs
@@ -172,8 +172,7 @@ public void SetLevel(EntityUid station, string level, bool playSound, bool annou
return;
// End Frontier
- if (!Resolve(station, ref dataComponent) // Frontier: remove component
- || component.AlertLevels == null
+ if (component.AlertLevels == null // Frontier: remove component, resolve station to data component later
|| !component.AlertLevels.Levels.TryGetValue(level, out var detail)
|| component.CurrentLevel == level)
{
@@ -196,7 +195,7 @@ public void SetLevel(EntityUid station, string level, bool playSound, bool annou
component.CurrentLevel = level;
component.IsLevelLocked = locked;
- var stationName = dataComponent.EntityName;
+ //var stationName = dataComponent.EntityName; // Frontier: remove station name
var name = level.ToLower();
@@ -232,8 +231,9 @@ public void SetLevel(EntityUid station, string level, bool playSound, bool annou
}
}
- if (announce)
+ if (announce && Resolve(station, ref dataComponent)) // Frontier: add Resolve for dataComponent
{
+ var stationName = dataComponent.EntityName; // Frontier: moved down
_chatSystem.DispatchStationAnnouncement(station, announcementFull, playDefaultSound: playDefault,
colorOverride: detail.Color, sender: stationName);
}
diff --git a/Content.Server/Gatherable/GatherableSystem.Projectile.cs b/Content.Server/Gatherable/GatherableSystem.Projectile.cs
index 3ab8872fd7d..df4c6122f4d 100644
--- a/Content.Server/Gatherable/GatherableSystem.Projectile.cs
+++ b/Content.Server/Gatherable/GatherableSystem.Projectile.cs
@@ -1,4 +1,5 @@
using Content.Server.Gatherable.Components;
+using Content.Shared.Mining.Components;
using Content.Shared.Projectiles;
using Robust.Shared.Physics.Events;
@@ -21,6 +22,21 @@ private void OnProjectileCollide(Entity gathering,
return;
}
+ // Frontier: gathering changes
+ // bad gatherer - not strong enough
+ if (_whitelistSystem.IsWhitelistFail(gatherable.ToolWhitelist, gathering.Owner))
+ {
+ QueueDel(gathering);
+ return;
+ }
+ // Too strong (e.g. overpen) - gathers ore but destroys it
+ if (TryComp(args.OtherEntity, out var oreVein)
+ && _whitelistSystem.IsWhitelistPass(oreVein.GatherDestructionWhitelist, gathering.Owner))
+ {
+ oreVein.PreventSpawning = true;
+ }
+ // End Frontier: gathering changes
+
Gather(args.OtherEntity, gathering, gatherable);
gathering.Comp.Amount--;
diff --git a/Content.Server/Light/EntitySystems/EmergencyLightSystem.cs b/Content.Server/Light/EntitySystems/EmergencyLightSystem.cs
index 9f820bdf701..633a027ef8f 100644
--- a/Content.Server/Light/EntitySystems/EmergencyLightSystem.cs
+++ b/Content.Server/Light/EntitySystems/EmergencyLightSystem.cs
@@ -32,6 +32,8 @@ public override void Initialize()
SubscribeLocalEvent(OnAlertLevelChanged);
SubscribeLocalEvent(OnEmergencyExamine);
SubscribeLocalEvent(OnEmergencyPower);
+
+ SubscribeLocalEvent(OnMapInit); // Frontier
}
private void OnEmergencyPower(Entity entity, ref PowerChangedEvent args)
@@ -245,4 +247,21 @@ private void TurnOn(Entity entity, Color color)
_appearance.SetData(entity.Owner, EmergencyLightVisuals.On, true);
_ambient.SetAmbience(entity.Owner, true);
}
+
+ // Frontier: ensure the lights are accurate to the station
+ private void OnMapInit(Entity entity, ref MapInitEvent ev)
+ {
+ if (!TryComp(_sectorService.GetServiceEntity(), out var alert))
+ return;
+
+ if (alert.AlertLevels == null || !alert.AlertLevels.Levels.TryGetValue(alert.CurrentLevel, out var details))
+ return;
+
+ entity.Comp.ForciblyEnabled = details.ForceEnableEmergencyLights;
+ if (details.ForceEnableEmergencyLights)
+ TurnOn(entity, details.EmergencyLightColor);
+ else
+ TurnOff(entity, details.EmergencyLightColor);
+ }
+ // End Frontier
}
diff --git a/Content.Server/Mining/MiningSystem.cs b/Content.Server/Mining/MiningSystem.cs
index 18e96e57696..8f6bb6ca191 100644
--- a/Content.Server/Mining/MiningSystem.cs
+++ b/Content.Server/Mining/MiningSystem.cs
@@ -29,6 +29,11 @@ private void OnDestruction(EntityUid uid, OreVeinComponent component, Destructio
if (component.CurrentOre == null)
return;
+ // Frontier
+ if (component.PreventSpawning)
+ return;
+ // End Frontier
+
var proto = _proto.Index(component.CurrentOre);
if (proto.OreEntity == null)
diff --git a/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs b/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs
index 77a31074a62..42eec583f81 100644
--- a/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs
+++ b/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs
@@ -18,6 +18,8 @@
using Robust.Server.GameObjects; // Nuclear-14
using Robust.Shared.Prototypes;
using Content.Shared.Access.Systems; // Frontier
+using Content.Shared.Verbs; //Frontier
+using Robust.Shared.Utility; //Frontier
namespace Content.Server.Radio.EntitySystems;
@@ -51,6 +53,7 @@ public override void Initialize()
SubscribeLocalEvent(OnListen);
SubscribeLocalEvent(OnAttemptListen);
SubscribeLocalEvent(OnPowerChanged);
+ SubscribeLocalEvent>(OnGetAltVerbs); // Frontier
SubscribeLocalEvent(OnSpeakerInit);
SubscribeLocalEvent(OnActivateSpeaker);
@@ -366,6 +369,44 @@ private void UpdateHandheldRadioUi(Entity radio)
#endregion
// Nuclear-14-End
+ // Frontier Start
+ ///
+ /// Adds an alt verb allowing for the mic to be toggled easily.
+ ///
+ private void OnGetAltVerbs(EntityUid uid, RadioMicrophoneComponent microphone, GetVerbsEvent args)
+ {
+ if (!args.CanInteract || !args.CanAccess)
+ return;
+
+ AlternativeVerb verb = new()
+ {
+ Text = Loc.GetString("handheld-radio-component-toggle"),
+ Icon = new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/VerbIcons/settings.svg.192dpi.png")),
+ Act = () => ToggleRadioOrIntercomMic(uid, microphone, args.User)
+ };
+ args.Verbs.Add(verb);
+ }
+
+ ///
+ /// A mic toggle for both radios and intercoms.
+ ///
+ private void ToggleRadioOrIntercomMic(EntityUid uid, RadioMicrophoneComponent microphone, EntityUid user)
+ {
+ if (!_access.IsAllowed(user, uid))
+ return;
+ if (microphone.PowerRequired && !this.IsPowered(uid, EntityManager))
+ return;
+
+ ToggleRadioMicrophone(uid, user, false, microphone);
+ if (TryComp(uid, out var intercom))
+ {
+ intercom.MicrophoneEnabled = microphone.Enabled;
+ Dirty((uid, intercom));
+ }
+ }
+ // Frontier End
+
+
// Frontier: init intercom with map
private void OnMapInit(EntityUid uid, IntercomComponent ent, MapInitEvent args)
{
diff --git a/Content.Server/Shipyard/Systems/ShipyardSystem.Consoles.cs b/Content.Server/Shipyard/Systems/ShipyardSystem.Consoles.cs
index 62d225badd7..923371f3b1e 100644
--- a/Content.Server/Shipyard/Systems/ShipyardSystem.Consoles.cs
+++ b/Content.Server/Shipyard/Systems/ShipyardSystem.Consoles.cs
@@ -3,7 +3,6 @@
using Content.Server.Radio.EntitySystems;
using Content.Server._NF.Bank;
using Content.Server.Shipyard.Components;
-using Content.Shared._NF.GameRule;
using Content.Shared.Bank.Components;
using Content.Shared.Shipyard.Events;
using Content.Shared.Shipyard.BUI;
diff --git a/Content.Server/_NF/GameRule/Components/AdventureRuleComponent.cs b/Content.Server/_NF/GameRule/Components/NFAdventureRuleComponent.cs
similarity index 58%
rename from Content.Server/_NF/GameRule/Components/AdventureRuleComponent.cs
rename to Content.Server/_NF/GameRule/Components/NFAdventureRuleComponent.cs
index fc85a5209c6..2ea4339bb70 100644
--- a/Content.Server/_NF/GameRule/Components/AdventureRuleComponent.cs
+++ b/Content.Server/_NF/GameRule/Components/NFAdventureRuleComponent.cs
@@ -1,10 +1,7 @@
-using Content.Shared.Procedural;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List;
-
namespace Content.Server._NF.GameRule.Components;
-[RegisterComponent, Access(typeof(NfAdventureRuleSystem))]
-public sealed partial class AdventureRuleComponent : Component
+[RegisterComponent, Access(typeof(NFAdventureRuleSystem))]
+public sealed partial class NFAdventureRuleComponent : Component
{
public List NFPlayerMinds = new();
public List CargoDepots = new();
diff --git a/Content.Server/_NF/GameRule/NfAdventureRuleSystem.cs b/Content.Server/_NF/GameRule/NfAdventureRuleSystem.cs
index 5ee7e6e8b7a..68062cdb598 100644
--- a/Content.Server/_NF/GameRule/NfAdventureRuleSystem.cs
+++ b/Content.Server/_NF/GameRule/NfAdventureRuleSystem.cs
@@ -1,24 +1,15 @@
using System.Linq;
using System.Net.Http;
-using System.Numerics;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
-using Content.Shared._NF.GameRule;
using Content.Server._NF.GameTicking.Events;
-using Robust.Server.GameObjects;
-using Robust.Server.Maps;
using Content.Shared.GameTicking.Components;
-using Robust.Shared.Map;
using Robust.Shared.Prototypes;
-using Robust.Shared.Random;
-using Content.Server.Shuttles.Systems;
using Content.Server.Cargo.Components;
using Content.Server.GameTicking;
using Content.Server.GameTicking.Rules;
-using Content.Server.Maps;
-using Content.Server.Station.Systems;
using Content.Shared._NF.CCVar; // Frontier
using Robust.Shared.Configuration;
using Content.Shared._NF.Bank;
@@ -29,26 +20,19 @@
using Content.Shared.GameTicking;
using Robust.Shared.Enums;
using Robust.Server.Player;
-using Content.Server.Warps;
namespace Content.Server._NF.GameRule;
///
/// This handles the dungeon and trading post spawning, as well as round end capitalism summary
///
-public sealed class NfAdventureRuleSystem : GameRuleSystem
+public sealed class NFAdventureRuleSystem : GameRuleSystem
{
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
- [Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly IConfigurationManager _configurationManager = default!;
[Dependency] private readonly IPlayerManager _playerManager = default!;
- [Dependency] private readonly MapLoaderSystem _map = default!;
- [Dependency] private readonly MetaDataSystem _meta = default!;
- [Dependency] private readonly StationSystem _station = default!;
- [Dependency] private readonly ShuttleSystem _shuttle = default!;
- [Dependency] private readonly PhysicsSystem _physics = default!;
[Dependency] private readonly BankSystem _bank = default!;
- [Dependency] private readonly StationRenameWarpsSystems _renameWarps = default!;
+ [Dependency] private readonly PointOfInterestSystem _poi = default!;
private readonly HttpClient _httpClient = new();
@@ -77,11 +61,6 @@ public PlayerRoundBankInformation(int startBalance, string name, NetUserId userI
[ViewVariables]
private Dictionary _players = new();
- private float _distanceOffset = 1f;
- private List _stationCoords = new();
-
- private MapId _mapId;
-
///
public override void Initialize()
{
@@ -92,7 +71,7 @@ public override void Initialize()
_playerManager.PlayerStatusChanged += PlayerManagerOnPlayerStatusChanged;
}
- protected override void AppendRoundEndText(EntityUid uid, AdventureRuleComponent component, GameRuleComponent gameRule, ref RoundEndTextAppendEvent ev)
+ protected override void AppendRoundEndText(EntityUid uid, NFAdventureRuleComponent component, GameRuleComponent gameRule, ref RoundEndTextAppendEvent ev)
{
ev.AddLine(Loc.GetString("adventure-list-start"));
var allScore = new List>();
@@ -206,12 +185,9 @@ private void OnRoundRestart(RoundRestartCleanupEvent ev)
_players.Clear();
}
- protected override void Started(EntityUid uid, AdventureRuleComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args)
+ protected override void Started(EntityUid uid, NFAdventureRuleComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args)
{
- _mapId = GameTicker.DefaultMap;
-
- _distanceOffset = _configurationManager.GetCVar(NFCCVars.POIDistanceModifier);
- _stationCoords = new List();
+ var mapUid = GameTicker.DefaultMap;
//First, we need to grab the list and sort it into its respective spawning logics
List depotProtos = new();
@@ -237,11 +213,11 @@ protected override void Started(EntityUid uid, AdventureRuleComponent component,
remainingUniqueProtosBySpawnGroup[location.SpawnGroup].Add(location);
}
}
- GenerateDepots(depotProtos, out component.CargoDepots);
- GenerateMarkets(marketProtos, out component.MarketStations);
- GenerateRequireds(requiredProtos, out component.RequiredPois);
- GenerateOptionals(optionalProtos, out component.OptionalPois);
- GenerateUniques(remainingUniqueProtosBySpawnGroup, out component.UniquePois);
+ _poi.GenerateDepots(mapUid, depotProtos, out component.CargoDepots);
+ _poi.GenerateMarkets(mapUid, marketProtos, out component.MarketStations);
+ _poi.GenerateRequireds(mapUid, requiredProtos, out component.RequiredPois);
+ _poi.GenerateOptionals(mapUid, optionalProtos, out component.OptionalPois);
+ _poi.GenerateUniques(mapUid, remainingUniqueProtosBySpawnGroup, out component.UniquePois);
base.Started(uid, component, gameRule, args);
@@ -249,223 +225,6 @@ protected override void Started(EntityUid uid, AdventureRuleComponent component,
RaiseLocalEvent(EntityUid.Invalid, new StationsGeneratedEvent(), broadcast: true); // TODO: attach this to a meaningful entity.
}
- private void GenerateDepots(List depotPrototypes, out List depotStations)
- {
- //For depots, we want them to fill a circular type dystance formula to try to keep them as far apart as possible
- //Therefore, we will be taking our range properties and treating them as magnitudes of a direction vector divided
- //by the number of depots set in our corresponding cvar
-
- depotStations = new List();
- var depotCount = _configurationManager.GetCVar(NFCCVars.CargoDepots);
- var rotation = 2 * Math.PI / depotCount;
- var rotationOffset = _random.NextAngle() / depotCount;
-
- for (int i = 0; i < depotCount && depotPrototypes.Count > 0; i++)
- {
- var proto = _random.Pick(depotPrototypes);
- Vector2i offset = new Vector2i((int) (_random.Next(proto.MinimumDistance, proto.MaximumDistance) * _distanceOffset), 0);
- offset = offset.Rotate(rotationOffset);
- rotationOffset += rotation;
- // Append letter to depot name.
-
- string overrideName = proto.Name;
- if (i < 26)
- overrideName += $" {(char) ('A' + i)}"; // " A" ... " Z"
- else
- overrideName += $" {i + 1}"; // " 27", " 28"...
- if (TrySpawnPoiGrid(proto, offset, out var depotUid, overrideName: overrideName) && depotUid is { Valid: true } depot)
- {
- depotStations.Add(depot);
- AddStationCoordsToSet(offset); // adjust list of actual station coords
- }
- }
- }
-
- private void GenerateMarkets(List marketPrototypes, out List marketStations)
- {
- //For market stations, we are going to allow for a bit of randomness and a different offset configuration. We dont
- //want copies of this one, since these can be more themed and duplicate names, for instance, can make for a less
- //ideal world
-
- marketStations = new List();
- var marketCount = _configurationManager.GetCVar(NFCCVars.MarketStations);
- _random.Shuffle(marketPrototypes);
- int marketsAdded = 0;
- foreach (var proto in marketPrototypes)
- {
- if (marketsAdded >= marketCount)
- break;
-
- var offset = GetRandomPOICoord(proto.MinimumDistance, proto.MaximumDistance, true);
-
- if (TrySpawnPoiGrid(proto, offset, out var marketUid) && marketUid is { Valid: true } market)
- {
- marketStations.Add(market);
- marketsAdded++;
- AddStationCoordsToSet(offset);
- }
- }
- }
-
- private void GenerateOptionals(List optionalPrototypes, out List optionalStations)
- {
- //Stations that do not have a defined grouping in their prototype get a default of "Optional" and get put into the
- //generic random rotation of POIs. This should include traditional places like Tinnia's rest, the Science Lab, The Pit,
- //and most RP places. This will essentially put them all into a pool to pull from, and still does not use the RNG function.
-
- optionalStations = new List();
- var optionalCount = _configurationManager.GetCVar(NFCCVars.OptionalStations);
- _random.Shuffle(optionalPrototypes);
- int optionalsAdded = 0;
- foreach (var proto in optionalPrototypes)
- {
- if (optionalsAdded >= optionalCount)
- break;
-
- var offset = GetRandomPOICoord(proto.MinimumDistance, proto.MaximumDistance, true);
-
- if (TrySpawnPoiGrid(proto, offset, out var optionalUid) && optionalUid is { Valid: true } uid)
- {
- optionalStations.Add(uid);
- AddStationCoordsToSet(offset);
- }
- }
- }
-
- private void GenerateRequireds(List requiredPrototypes, out List requiredStations)
- {
- //Stations are required are ones that are vital to function but otherwise still follow a generic random spawn logic
- //Traditionally these would be stations like Expedition Lodge, NFSD station, Prison/Courthouse POI, etc.
- //There are no limit to these, and any prototype marked alwaysSpawn = true will get pulled out of any list that isnt Markets/Depots
- //And will always appear every time, and also will not be included in other optional/dynamic lists
-
- requiredStations = new List();
- foreach (var proto in requiredPrototypes)
- {
- var offset = GetRandomPOICoord(proto.MinimumDistance, proto.MaximumDistance, true);
-
- if (TrySpawnPoiGrid(proto, offset, out var requiredUid) && requiredUid is { Valid: true } uid)
- {
- requiredStations.Add(uid);
- AddStationCoordsToSet(offset);
- }
- }
- }
-
- private void GenerateUniques(Dictionary> uniquePrototypes, out List uniqueStations)
- {
- //Unique locations are semi-dynamic groupings of POIs that rely each independantly on the SpawnChance per POI prototype
- //Since these are the remainder, and logically must have custom-designated groupings, we can then know to subdivide
- //our random pool into these found groups.
- //To do this with an equal distribution on a per-POI, per-round percentage basis, we are going to ensure a random
- //pick order of which we analyze our weighted chances to spawn, and if successful, remove every entry of that group
- //entirely.
-
- uniqueStations = new List();
- foreach (var prototypeList in uniquePrototypes.Values)
- {
- // Try to spawn
- _random.Shuffle(prototypeList);
- foreach (var proto in prototypeList)
- {
- var chance = _random.NextFloat(0, 1);
- if (chance <= proto.SpawnChance)
- {
- var offset = GetRandomPOICoord(proto.MinimumDistance, proto.MaximumDistance, true);
-
- if (TrySpawnPoiGrid(proto, offset, out var optionalUid) && optionalUid is { Valid: true } uid)
- {
- uniqueStations.Add(uid);
- AddStationCoordsToSet(offset);
- break;
- }
- }
- }
- }
- }
-
- private bool TrySpawnPoiGrid(PointOfInterestPrototype proto, Vector2 offset, out EntityUid? gridUid, string? overrideName = null)
- {
- gridUid = null;
- if (_map.TryLoad(_mapId, proto.GridPath.ToString(), out var mapUids,
- new MapLoadOptions
- {
- Offset = offset,
- Rotation = _random.NextAngle()
- }))
- {
-
- string stationName = string.IsNullOrEmpty(overrideName) ? proto.Name : overrideName;
-
- EntityUid? stationUid = null;
- if (_prototypeManager.TryIndex(proto.ID, out var stationProto))
- {
- stationUid = _station.InitializeNewStation(stationProto.Stations[proto.ID], mapUids, stationName);
- }
-
- foreach (var grid in mapUids)
- {
- var meta = EnsureComp(grid);
- _meta.SetEntityName(grid, stationName, meta);
-
- EntityManager.AddComponents(grid, proto.AddComponents);
- }
-
- // Rename warp points after set up if needed
- if (proto.NameWarp)
- {
- bool? hideWarp = proto.HideWarp ? true : null;
- if (stationUid != null)
- _renameWarps.SyncWarpPointsToStation(stationUid.Value, forceAdminOnly: hideWarp);
- else
- _renameWarps.SyncWarpPointsToGrids(mapUids, forceAdminOnly: hideWarp);
- }
-
- gridUid = mapUids[0];
- return true;
- }
-
- return false;
- }
-
- private Vector2 GetRandomPOICoord(float unscaledMinRange, float unscaledMaxRange, bool scaleRange)
- {
- int numRetries = int.Max(_configurationManager.GetCVar(NFCCVars.POIPlacementRetries), 0);
- float minDistance = float.Max(_configurationManager.GetCVar(NFCCVars.MinPOIDistance), 0); // Constant at the end to avoid NaN weirdness
-
- Vector2 coords = _random.NextVector2(unscaledMinRange, unscaledMaxRange);
- if (scaleRange)
- coords *= _distanceOffset;
- for (int i = 0; i < numRetries; i++)
- {
- bool positionIsValid = true;
- foreach (var station in _stationCoords)
- {
- if (Vector2.Distance(station, coords) < minDistance)
- {
- positionIsValid = false;
- break;
- }
- }
-
- // We have a valid position
- if (positionIsValid)
- break;
-
- // No vector yet, get next value.
- coords = _random.NextVector2(unscaledMinRange, unscaledMaxRange);
- if (scaleRange)
- coords *= _distanceOffset;
- }
-
- return coords;
- }
-
- private void AddStationCoordsToSet(Vector2 coords)
- {
- _stationCoords.Add(coords);
- }
-
private async Task ReportRound(string message, int color = 0x77DDE7)
{
Logger.InfoS("discord", message);
diff --git a/Content.Shared/_NF/GameRule/PointOfInterestPrototype.cs b/Content.Server/_NF/GameRule/PointOfInterestPrototype.cs
similarity index 83%
rename from Content.Shared/_NF/GameRule/PointOfInterestPrototype.cs
rename to Content.Server/_NF/GameRule/PointOfInterestPrototype.cs
index b1b11cd5963..f29cf76474e 100644
--- a/Content.Shared/_NF/GameRule/PointOfInterestPrototype.cs
+++ b/Content.Server/_NF/GameRule/PointOfInterestPrototype.cs
@@ -1,8 +1,8 @@
+using Content.Server.GameTicking.Presets;
using Robust.Shared.Prototypes;
-using Robust.Shared.Serialization;
using Robust.Shared.Utility;
-namespace Content.Shared._NF.GameRule;
+namespace Content.Server._NF.GameRule;
///
/// Describes information for a single point of interest to be spawned in the world
@@ -11,7 +11,6 @@ namespace Content.Shared._NF.GameRule;
[Serializable]
public sealed partial class PointOfInterestPrototype : IPrototype
{
- ///
[IdDataField]
public string ID { get; private set; } = default!;
@@ -22,13 +21,13 @@ public sealed partial class PointOfInterestPrototype : IPrototype
public string Name { get; private set; } = "";
///
- /// Should we set the warppoint name based on the grid name.
+ /// Should we set the warppoint name based on the grid name.
///
[DataField]
public bool NameWarp { get; set; } = true;
///
- /// If true, makes the warp point admin-only (hiding it for players).
+ /// If true, makes the warp point admin-only (hiding it for players).
///
[DataField]
public bool HideWarp { get; set; } = false;
@@ -46,11 +45,17 @@ public sealed partial class PointOfInterestPrototype : IPrototype
public int MaximumDistance { get; private set; } = 10000;
///
- /// Components to be added to any spawned grids.
+ /// Components to be added to any spawned grids.
///
[DataField]
public ComponentRegistry AddComponents { get; set; } = new();
+ ///
+ /// What gamepresets ID this POI is allowed to spawn on.
+ ///
+ [DataField]
+ public ProtoId[] SpawnGamePreset { get; private set; } = [];
+
///
/// If the POI does not belong to a pre-defined group, it will default to the "unique" internal category and will
/// use this float from 0-1 as a raw chance to spawn each round.
diff --git a/Content.Server/_NF/GameRule/PointOfInterestSystem.cs b/Content.Server/_NF/GameRule/PointOfInterestSystem.cs
new file mode 100644
index 00000000000..d58a70b924a
--- /dev/null
+++ b/Content.Server/_NF/GameRule/PointOfInterestSystem.cs
@@ -0,0 +1,299 @@
+using System.Linq;
+using System.Numerics;
+using Robust.Server.GameObjects;
+using Robust.Server.Maps;
+using Robust.Shared.Configuration;
+using Robust.Shared.Map;
+using Robust.Shared.Prototypes;
+using Robust.Shared.Random;
+using Content.Server.Maps;
+using Content.Server.Station.Systems;
+using Content.Server.GameTicking;
+using Content.Shared._NF.CCVar;
+using Content.Shared.GameTicking;
+
+namespace Content.Server._NF.GameRule;
+
+///
+/// This handles the dungeon and trading post spawning, as well as round end capitalism summary
+///
+//[Access(typeof(NfAdventureRuleSystem))]
+public sealed class PointOfInterestSystem : EntitySystem
+{
+ [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
+ [Dependency] private readonly IRobustRandom _random = default!;
+ [Dependency] private readonly IConfigurationManager _configurationManager = default!;
+ [Dependency] private readonly MapLoaderSystem _map = default!;
+ [Dependency] private readonly MetaDataSystem _meta = default!;
+ [Dependency] private readonly StationSystem _station = default!;
+ [Dependency] private readonly StationRenameWarpsSystems _renameWarps = default!;
+ [Dependency] private readonly GameTicker _ticker = default!;
+
+ private List _stationCoords = new();
+
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ SubscribeLocalEvent(OnRoundRestart);
+ }
+
+ private void OnRoundRestart(RoundRestartCleanupEvent ev)
+ {
+ _stationCoords.Clear();
+ }
+
+ private void AddStationCoordsToSet(Vector2 coords)
+ {
+ _stationCoords.Add(coords);
+ }
+
+ public void GenerateDepots(MapId mapUid, List depotPrototypes, out List depotStations)
+ {
+ //For depots, we want them to fill a circular type dystance formula to try to keep them as far apart as possible
+ //Therefore, we will be taking our range properties and treating them as magnitudes of a direction vector divided
+ //by the number of depots set in our corresponding cvar
+
+ depotStations = new List();
+ var depotCount = _configurationManager.GetCVar(NFCCVars.CargoDepots);
+ var rotation = 2 * Math.PI / depotCount;
+ var rotationOffset = _random.NextAngle() / depotCount;
+
+ if (_ticker.CurrentPreset is null)
+ return;
+
+ var currentPreset = _ticker.CurrentPreset.ID;
+
+ for (int i = 0; i < depotCount && depotPrototypes.Count > 0; i++)
+ {
+ var proto = _random.Pick(depotPrototypes);
+
+ if (!proto.SpawnGamePreset.Contains(currentPreset))
+ continue;
+
+ Vector2i offset = new Vector2i((int) _random.Next(proto.MinimumDistance, proto.MaximumDistance), 0);
+ offset = offset.Rotate(rotationOffset);
+ rotationOffset += rotation;
+ // Append letter to depot name.
+
+ string overrideName = proto.Name;
+ if (i < 26)
+ overrideName += $" {(char)('A' + i)}"; // " A" ... " Z"
+ else
+ overrideName += $" {i + 1}"; // " 27", " 28"...
+ if (TrySpawnPoiGrid(mapUid, proto, offset, out var depotUid, overrideName: overrideName) && depotUid is { Valid: true } depot)
+ {
+ depotStations.Add(depot);
+ AddStationCoordsToSet(offset); // adjust list of actual station coords
+ }
+ }
+ }
+
+ public void GenerateMarkets(MapId mapUid, List marketPrototypes, out List marketStations)
+ {
+ //For market stations, we are going to allow for a bit of randomness and a different offset configuration. We dont
+ //want copies of this one, since these can be more themed and duplicate names, for instance, can make for a less
+ //ideal world
+
+ marketStations = new List();
+ var marketCount = _configurationManager.GetCVar(NFCCVars.MarketStations);
+ _random.Shuffle(marketPrototypes);
+ int marketsAdded = 0;
+
+ if (_ticker.CurrentPreset is null)
+ return;
+ var currentPreset = _ticker.CurrentPreset.ID;
+
+ foreach (var proto in marketPrototypes)
+ {
+ if (!proto.SpawnGamePreset.Contains(currentPreset))
+ continue;
+
+ if (marketsAdded >= marketCount)
+ break;
+
+ var offset = GetRandomPOICoord(proto.MinimumDistance, proto.MaximumDistance);
+
+ if (TrySpawnPoiGrid(mapUid, proto, offset, out var marketUid) && marketUid is { Valid: true } market)
+ {
+ marketStations.Add(market);
+ marketsAdded++;
+ AddStationCoordsToSet(offset);
+ }
+ }
+ }
+
+ public void GenerateOptionals(MapId mapUid, List optionalPrototypes, out List optionalStations)
+ {
+ //Stations that do not have a defined grouping in their prototype get a default of "Optional" and get put into the
+ //generic random rotation of POIs. This should include traditional places like Tinnia's rest, the Science Lab, The Pit,
+ //and most RP places. This will essentially put them all into a pool to pull from, and still does not use the RNG function.
+
+ optionalStations = new List();
+ var optionalCount = _configurationManager.GetCVar(NFCCVars.OptionalStations);
+ _random.Shuffle(optionalPrototypes);
+ int optionalsAdded = 0;
+
+ if (_ticker.CurrentPreset is null)
+ return;
+ var currentPreset = _ticker.CurrentPreset.ID;
+
+ foreach (var proto in optionalPrototypes)
+ {
+ if (!proto.SpawnGamePreset.Contains(currentPreset))
+ continue;
+
+ if (optionalsAdded >= optionalCount)
+ break;
+
+ var offset = GetRandomPOICoord(proto.MinimumDistance, proto.MaximumDistance);
+
+ if (TrySpawnPoiGrid(mapUid, proto, offset, out var optionalUid) && optionalUid is { Valid: true } uid)
+ {
+ optionalStations.Add(uid);
+ AddStationCoordsToSet(offset);
+ }
+ }
+ }
+
+ public void GenerateRequireds(MapId mapUid, List requiredPrototypes, out List requiredStations)
+ {
+ //Stations are required are ones that are vital to function but otherwise still follow a generic random spawn logic
+ //Traditionally these would be stations like Expedition Lodge, NFSD station, Prison/Courthouse POI, etc.
+ //There are no limit to these, and any prototype marked alwaysSpawn = true will get pulled out of any list that isnt Markets/Depots
+ //And will always appear every time, and also will not be included in other optional/dynamic lists
+
+ requiredStations = new List();
+
+ if (_ticker.CurrentPreset is null)
+ return;
+ var currentPreset = _ticker.CurrentPreset!.ID;
+
+ foreach (var proto in requiredPrototypes)
+ {
+ if (!proto.SpawnGamePreset.Contains(currentPreset))
+ continue;
+
+ var offset = GetRandomPOICoord(proto.MinimumDistance, proto.MaximumDistance);
+
+ if (TrySpawnPoiGrid(mapUid, proto, offset, out var requiredUid) && requiredUid is { Valid: true } uid)
+ {
+ requiredStations.Add(uid);
+ AddStationCoordsToSet(offset);
+ }
+ }
+ }
+
+ public void GenerateUniques(MapId mapUid, Dictionary> uniquePrototypes, out List uniqueStations)
+ {
+ //Unique locations are semi-dynamic groupings of POIs that rely each independantly on the SpawnChance per POI prototype
+ //Since these are the remainder, and logically must have custom-designated groupings, we can then know to subdivide
+ //our random pool into these found groups.
+ //To do this with an equal distribution on a per-POI, per-round percentage basis, we are going to ensure a random
+ //pick order of which we analyze our weighted chances to spawn, and if successful, remove every entry of that group
+ //entirely.
+
+ uniqueStations = new List();
+
+ if (_ticker.CurrentPreset is null)
+ return;
+ var currentPreset = _ticker.CurrentPreset!.ID;
+
+ foreach (var prototypeList in uniquePrototypes.Values)
+ {
+ // Try to spawn
+ _random.Shuffle(prototypeList);
+ foreach (var proto in prototypeList)
+ {
+ if (!proto.SpawnGamePreset.Contains(currentPreset))
+ continue;
+
+ var chance = _random.NextFloat(0, 1);
+ if (chance <= proto.SpawnChance)
+ {
+ var offset = GetRandomPOICoord(proto.MinimumDistance, proto.MaximumDistance);
+
+ if (TrySpawnPoiGrid(mapUid, proto, offset, out var optionalUid) && optionalUid is { Valid: true } uid)
+ {
+ uniqueStations.Add(uid);
+ AddStationCoordsToSet(offset);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ private bool TrySpawnPoiGrid(MapId mapUid, PointOfInterestPrototype proto, Vector2 offset, out EntityUid? gridUid, string? overrideName = null)
+ {
+ gridUid = null;
+ if (_map.TryLoad(mapUid, proto.GridPath.ToString(), out var mapUids,
+ new MapLoadOptions
+ {
+ Offset = offset,
+ Rotation = _random.NextAngle()
+ }))
+ {
+
+ string stationName = string.IsNullOrEmpty(overrideName) ? proto.Name : overrideName;
+
+ EntityUid? stationUid = null;
+ if (_prototypeManager.TryIndex(proto.ID, out var stationProto))
+ {
+ stationUid = _station.InitializeNewStation(stationProto.Stations[proto.ID], mapUids, stationName);
+ }
+
+ foreach (var grid in mapUids)
+ {
+ var meta = EnsureComp(grid);
+ _meta.SetEntityName(grid, stationName, meta);
+
+ EntityManager.AddComponents(grid, proto.AddComponents);
+ }
+
+ // Rename warp points after set up if needed
+ if (proto.NameWarp)
+ {
+ bool? hideWarp = proto.HideWarp ? true : null;
+ if (stationUid != null)
+ _renameWarps.SyncWarpPointsToStation(stationUid.Value, forceAdminOnly: hideWarp);
+ else
+ _renameWarps.SyncWarpPointsToGrids(mapUids, forceAdminOnly: hideWarp);
+ }
+
+ gridUid = mapUids[0];
+ return true;
+ }
+
+ return false;
+ }
+
+ private Vector2 GetRandomPOICoord(float unscaledMinRange, float unscaledMaxRange)
+ {
+ int numRetries = int.Max(_configurationManager.GetCVar(NFCCVars.POIPlacementRetries), 0);
+ float minDistance = float.Max(_configurationManager.GetCVar(NFCCVars.MinPOIDistance), 0); // Constant at the end to avoid NaN weirdness
+
+ Vector2 coords = _random.NextVector2(unscaledMinRange, unscaledMaxRange);
+ for (int i = 0; i < numRetries; i++)
+ {
+ bool positionIsValid = true;
+ foreach (var station in _stationCoords)
+ {
+ if (Vector2.Distance(station, coords) < minDistance)
+ {
+ positionIsValid = false;
+ break;
+ }
+ }
+
+ // We have a valid position
+ if (positionIsValid)
+ break;
+
+ // No vector yet, get next value.
+ coords = _random.NextVector2(unscaledMinRange, unscaledMaxRange);
+ }
+
+ return coords;
+ }
+}
diff --git a/Content.Server/_NF/Gatherable/Components/MiningGatheringHardComponent.cs b/Content.Server/_NF/Gatherable/Components/MiningGatheringHardComponent.cs
new file mode 100644
index 00000000000..56dc31e5d87
--- /dev/null
+++ b/Content.Server/_NF/Gatherable/Components/MiningGatheringHardComponent.cs
@@ -0,0 +1,7 @@
+namespace Content.Server._NF.Gatherable.Components;
+
+///
+/// Component denotes an item can be used to gather from hard rocks.
+///
+[RegisterComponent]
+public sealed partial class MiningGatheringHardComponent : Component;
diff --git a/Content.Server/_NF/Gatherable/Components/MiningGatheringSoftComponent.cs b/Content.Server/_NF/Gatherable/Components/MiningGatheringSoftComponent.cs
new file mode 100644
index 00000000000..ff66dedb73c
--- /dev/null
+++ b/Content.Server/_NF/Gatherable/Components/MiningGatheringSoftComponent.cs
@@ -0,0 +1,7 @@
+namespace Content.Server._NF.Gatherable.Components;
+
+///
+/// Component denotes an item can be used to gather from softer rocks.
+///
+[RegisterComponent]
+public sealed partial class MiningGatheringSoftComponent : Component;
diff --git a/Content.Shared/CCVar/CCVars.cs b/Content.Shared/CCVar/CCVars.cs
index 6427dbbf734..790b77e1d11 100644
--- a/Content.Shared/CCVar/CCVars.cs
+++ b/Content.Shared/CCVar/CCVars.cs
@@ -163,7 +163,7 @@ public static readonly CVarDef
/// Controls the default game preset.
///
public static readonly CVarDef
- GameLobbyDefaultPreset = CVarDef.Create("game.defaultpreset", "adventure", CVar.ARCHIVE); // Frontier: secret
/// Controls if the game can force a different preset if the current preset's criteria are not met.
diff --git a/Content.Shared/Construction/SharedFlatpackSystem.cs b/Content.Shared/Construction/SharedFlatpackSystem.cs
index a83948b1674..9644800d773 100644
--- a/Content.Shared/Construction/SharedFlatpackSystem.cs
+++ b/Content.Shared/Construction/SharedFlatpackSystem.cs
@@ -93,6 +93,8 @@ private void OnFlatpackInteractUsing(Entity ent, ref Interact
if (_net.IsServer)
{
var spawn = Spawn(comp.Entity, _map.GridTileToLocal(grid, gridComp, buildPos));
+ if (TryComp(spawn, out TransformComponent? spawnXform)) // Frontier: rotatable flatpacks
+ spawnXform.LocalRotation = xform.LocalRotation.GetCardinalDir().ToAngle(); // Frontier: rotatable flatpacks
_adminLogger.Add(LogType.Construction,
LogImpact.Low,
$"{ToPrettyString(args.User):player} unpacked {ToPrettyString(spawn):entity} at {xform.Coordinates} from {ToPrettyString(uid):entity}");
diff --git a/Content.Shared/Mining/Components/OreVeinComponent.cs b/Content.Shared/Mining/Components/OreVeinComponent.cs
index 6ee40a624ec..a26ceaf8915 100644
--- a/Content.Shared/Mining/Components/OreVeinComponent.cs
+++ b/Content.Shared/Mining/Components/OreVeinComponent.cs
@@ -1,5 +1,6 @@
using Content.Shared.Random;
using Robust.Shared.Prototypes;
+using Content.Shared.Whitelist; // Frontier
namespace Content.Shared.Mining.Components;
@@ -28,4 +29,16 @@ public sealed partial class OreVeinComponent : Component
///
[DataField]
public ProtoId? CurrentOre;
+
+ ///
+ /// Frontier: if this ore is somehow "ruined", set this to true before destroying the entity.
+ ///
+ [DataField]
+ public bool PreventSpawning;
+
+ ///
+ /// Frontier: whitelist to check when gathering materials - these entities are too strong and ruin the ore.
+ ///
+ [DataField]
+ public EntityWhitelist? GatherDestructionWhitelist;
}
diff --git a/Content.Shared/Weapons/Reflect/ReflectComponent.cs b/Content.Shared/Weapons/Reflect/ReflectComponent.cs
index ee35f4dbb1f..8418c1f3efb 100644
--- a/Content.Shared/Weapons/Reflect/ReflectComponent.cs
+++ b/Content.Shared/Weapons/Reflect/ReflectComponent.cs
@@ -14,7 +14,7 @@ public sealed partial class ReflectComponent : Component
/// What we reflect.
///
[ViewVariables(VVAccess.ReadWrite), DataField("reflects")]
- public ReflectType Reflects = ReflectType.Energy | ReflectType.NonEnergy | ReflectType.ShuttleKinetic; // Frontier: added ShuttleKinetic
+ public ReflectType Reflects = ReflectType.Energy | ReflectType.NonEnergy;
///
/// Probability for a projectile to be reflected.
@@ -35,5 +35,4 @@ public enum ReflectType : byte
None = 0,
NonEnergy = 1 << 0,
Energy = 1 << 1,
- ShuttleKinetic = 1 << 7, //Frontier: PTK-800
}
diff --git a/Content.Shared/_EE/CCVar/EECCVars.cs b/Content.Shared/_EE/CCVar/EECCVars.cs
index b16d1fa01f0..378559a5037 100644
--- a/Content.Shared/_EE/CCVar/EECCVars.cs
+++ b/Content.Shared/_EE/CCVar/EECCVars.cs
@@ -1,81 +1,78 @@
-using Robust.Shared;
using Robust.Shared.Configuration;
-namespace Content.Shared._EE.CCVar
+namespace Content.Shared._EE.CCVar;
+
+[CVarDefs] // ReSharper disable once InconsistentNaming
+public sealed class EECCVars
{
- // ReSharper disable once InconsistentNaming
- [CVarDefs]
- public sealed class EECCVars : CVars
- {
- #region Jetpack System
+ #region Jetpack System
- ///
- /// When true, Jetpacks can be enabled anywhere, even in gravity.
- ///
- public static readonly CVarDef JetpackEnableAnywhere =
- CVarDef.Create("ee.jetpack.enable_anywhere", false, CVar.REPLICATED);
+ ///
+ /// When true, Jetpacks can be enabled anywhere, even in gravity.
+ ///
+ public static readonly CVarDef JetpackEnableAnywhere =
+ CVarDef.Create("ee.jetpack.enable_anywhere", false, CVar.REPLICATED);
- ///
- /// When true, jetpacks can be enabled on grids that have zero gravity.
- ///
- public static readonly CVarDef JetpackEnableInNoGravity =
- CVarDef.Create("ee.jetpack.enable_in_no_gravity", true, CVar.REPLICATED);
+ ///
+ /// When true, jetpacks can be enabled on grids that have zero gravity.
+ ///
+ public static readonly CVarDef JetpackEnableInNoGravity =
+ CVarDef.Create("ee.jetpack.enable_in_no_gravity", true, CVar.REPLICATED);
- #endregion
+ #endregion
- #region Contests System
+ #region Contests System
- ///
- /// The MASTER TOGGLE for the entire Contests System.
- /// ALL CONTESTS BELOW, regardless of type or setting will output 1f when false.
- ///
- public static readonly CVarDef DoContestsSystem =
- CVarDef.Create("contests.do_contests_system", true, CVar.REPLICATED | CVar.SERVER);
+ ///
+ /// The MASTER TOGGLE for the entire Contests System.
+ /// ALL CONTESTS BELOW, regardless of type or setting will output 1f when false.
+ ///
+ public static readonly CVarDef DoContestsSystem =
+ CVarDef.Create("ee.contests.do_contests_system", true, CVar.REPLICATED | CVar.SERVER);
- ///
- /// Contest functions normally include an optional override to bypass the clamp set by max_percentage.
- /// This CVar disables the bypass when false, forcing all implementations to comply with max_percentage.
- ///
- public static readonly CVarDef AllowClampOverride =
- CVarDef.Create("contests.allow_clamp_override", true, CVar.REPLICATED | CVar.SERVER);
- ///
- /// Toggles all MassContest functions. All mass contests output 1f when false
- ///
- public static readonly CVarDef DoMassContests =
- CVarDef.Create("contests.do_mass_contests", true, CVar.REPLICATED | CVar.SERVER);
+ ///
+ /// Contest functions normally include an optional override to bypass the clamp set by max_percentage.
+ /// This CVar disables the bypass when false, forcing all implementations to comply with max_percentage.
+ ///
+ public static readonly CVarDef AllowClampOverride =
+ CVarDef.Create("ee.contests.allow_clamp_override", true, CVar.REPLICATED | CVar.SERVER);
+ ///
+ /// Toggles all MassContest functions. All mass contests output 1f when false
+ ///
+ public static readonly CVarDef DoMassContests =
+ CVarDef.Create("ee.contests.do_mass_contests", true, CVar.REPLICATED | CVar.SERVER);
- ///
- /// Toggles all StaminaContest functions. All stamina contests output 1f when false
- ///
- public static readonly CVarDef DoStaminaContests =
- CVarDef.Create("contests.do_stamina_contests", true, CVar.REPLICATED | CVar.SERVER);
+ ///
+ /// Toggles all StaminaContest functions. All stamina contests output 1f when false
+ ///
+ public static readonly CVarDef DoStaminaContests =
+ CVarDef.Create("ee.contests.do_stamina_contests", true, CVar.REPLICATED | CVar.SERVER);
- ///
- /// Toggles all HealthContest functions. All health contests output 1f when false
- ///
- public static readonly CVarDef DoHealthContests =
- CVarDef.Create("contests.do_health_contests", true, CVar.REPLICATED | CVar.SERVER);
+ ///
+ /// Toggles all HealthContest functions. All health contests output 1f when false
+ ///
+ public static readonly CVarDef DoHealthContests =
+ CVarDef.Create("ee.contests.do_health_contests", true, CVar.REPLICATED | CVar.SERVER);
- ///
- /// Toggles all MindContest functions. All mind contests output 1f when false.
- /// MindContests are not currently implemented, and are awaiting completion of the Psionic Refactor
- ///
- public static readonly CVarDef DoMindContests =
- CVarDef.Create("contests.do_mind_contests", true, CVar.REPLICATED | CVar.SERVER);
+ ///
+ /// Toggles all MindContest functions. All mind contests output 1f when false.
+ /// MindContests are not currently implemented, and are awaiting completion of the Psionic Refactor
+ ///
+ public static readonly CVarDef DoMindContests =
+ CVarDef.Create("ee.contests.do_mind_contests", true, CVar.REPLICATED | CVar.SERVER);
- ///
- /// Toggles all MoodContest functions. All mood contests output 1f when false.
- ///
- public static readonly CVarDef DoMoodContests =
- CVarDef.Create("contests.do_mood_contests", true, CVar.REPLICATED | CVar.SERVER);
+ ///
+ /// Toggles all MoodContest functions. All mood contests output 1f when false.
+ ///
+ public static readonly CVarDef DoMoodContests =
+ CVarDef.Create("ee.contests.do_mood_contests", true, CVar.REPLICATED | CVar.SERVER);
- ///
- /// The maximum amount that Mass Contests can modify a physics multiplier, given as a +/- percentage
- /// Default of 0.25f outputs between * 0.75f and 1.25f
- ///
- public static readonly CVarDef MassContestsMaxPercentage =
- CVarDef.Create("contests.max_percentage", 0.25f, CVar.REPLICATED | CVar.SERVER);
+ ///
+ /// The maximum amount that Mass Contests can modify a physics multiplier, given as a +/- percentage
+ /// Default of 0.25f outputs between * 0.75f and 1.25f
+ ///
+ public static readonly CVarDef MassContestsMaxPercentage =
+ CVarDef.Create("ee.contests.max_percentage", 0.25f, CVar.REPLICATED | CVar.SERVER);
- #endregion
- }
+ #endregion
}
diff --git a/Resources/Changelog/Frontier.yml b/Resources/Changelog/Frontier.yml
index fa4e36c83cc..99b83bb1457 100644
--- a/Resources/Changelog/Frontier.yml
+++ b/Resources/Changelog/Frontier.yml
@@ -6041,3 +6041,72 @@ Entries:
message: Alert levels are now sector-wide, with appropriate announcements.
id: 5604
time: '2024-12-21T01:12:26.0000000+00:00'
+- author: whatston3
+ changes:
+ - type: Fix
+ message: Emergency lights start in their appropriate state when built.
+ id: 5605
+ time: '2024-12-21T20:28:31.0000000+00:00'
+- author: dustylens
+ changes:
+ - type: Remove
+ message: >-
+ majority of chemistry jugs removed from sale, to be replaced with new
+ barrels.
+ id: 5606
+ time: '2024-12-21T23:05:32.0000000+00:00'
+- author: dvir001
+ changes:
+ - type: Add
+ message: >-
+ Added barrels of chems, oil, water, fuel, booze, etc. to wrecks, rare
+ chems to cargo.
+ - type: Tweak
+ message: The ChefVend now contains one jar of each oil.
+ id: 5607
+ time: '2024-12-21T23:06:11.0000000+00:00'
+- author: chrome-cirrus
+ changes:
+ - type: Tweak
+ message: >-
+ Add slots to the Janicart vehicle to give it feature parity with the
+ janitor trolley and make things more convenient for practicioners of the
+ janitorial arts
+ - type: Add
+ message: Research target that unlocks crafting of Janicart flatpacks
+ - type: Remove
+ message: Janicart crates no longer purchaseable at cargo
+ id: 5608
+ time: '2024-12-24T22:38:28.0000000+00:00'
+- author: Alkheemist
+ changes:
+ - type: Tweak
+ message: Handicomm mics can now be toggled with an alt-click
+ id: 5609
+ time: '2024-12-24T22:48:18.0000000+00:00'
+- author: whatston3
+ changes:
+ - type: Tweak
+ message: >-
+ Walls on asteroids can now contain ore denser than regular rocks and
+ require diamond drills, a holopickaxe, or a PTK to mine.
+ - type: Tweak
+ message: >-
+ PTK bolts destroy ore in softer rock, but "walls" no longer reflect
+ shots.
+ id: 5610
+ time: '2024-12-24T23:05:02.0000000+00:00'
+- author: whatston3
+ changes:
+ - type: Add
+ message: Flatpacks can be rotated, and respect their rotation when unpacked.
+ - type: Tweak
+ message: Soil crates now must be "assembled" with a shovel.
+ id: 5611
+ time: '2024-12-26T00:49:53.0000000+00:00'
+- author: whatston3
+ changes:
+ - type: Fix
+ message: Cargo Depots should be spawning normally now.
+ id: 5612
+ time: '2024-12-26T15:21:56.0000000+00:00'
diff --git a/Resources/Locale/en-US/_NF/adventure/adventure.ftl b/Resources/Locale/en-US/_NF/adventure/adventure.ftl
index 3e1a1268163..9ee3991db5d 100644
--- a/Resources/Locale/en-US/_NF/adventure/adventure.ftl
+++ b/Resources/Locale/en-US/_NF/adventure/adventure.ftl
@@ -11,8 +11,12 @@ adventure-webhook-top-loss = lost a total of {$amount}.
adventure-webhook-ledger-start = Ledger Summary
-adventure-title = New Frontier Adventure Mode
-adventure-description = Join a ship crew or buy your own and explore, research, salvage, or haul your way to riches!
+nf-adventure-title = Adventure
+nf-adventure-description = Join a ship crew or buy your own and explore, research, salvage, or haul your way to riches!
+
+nf-pirate-title = Pirates
+nf-pirate-description = A gang of pirates is on the loose! Take care out in space and try not to get plundered!
+
currency = Spesos
shipyard-rules-default1 =
diff --git a/Resources/Locale/en-US/_NF/reagents/labels.ftl b/Resources/Locale/en-US/_NF/reagents/labels.ftl
new file mode 100644
index 00000000000..981cbabf836
--- /dev/null
+++ b/Resources/Locale/en-US/_NF/reagents/labels.ftl
@@ -0,0 +1,49 @@
+# Labels for reagent barrels
+# Elements & basic reagents
+reagent-label-aluminium = [bold]Aluminium[/bold]
+reagent-label-carbon = [bold]Carbon[/bold]
+reagent-label-chlorine = [bold]Chlorine[/bold]
+reagent-label-copper = [bold]Copper[/bold]
+reagent-label-ethanol = [bold]Ethanol[/bold]
+reagent-label-fluorine = [bold]Fluorine[/bold]
+reagent-label-gold = [bold]Gold[/bold]
+reagent-label-hydrogen = [bold]Hydrogen[/bold]
+reagent-label-iodine = [bold]Iodine[/bold]
+reagent-label-iron = [bold]Iron[/bold]
+reagent-label-lithium = [bold]Lithium[/bold]
+reagent-label-mercury = [bold]Mercury[/bold]
+reagent-label-nitrogen = [bold]Nitrogen[/bold]
+reagent-label-oxygen = [bold]Oxygen[/bold]
+reagent-label-phosphorus = [bold]Phosphorus[/bold]
+reagent-label-potassium = [bold]Potassium[/bold]
+reagent-label-radium = [bold]Radium[/bold]
+reagent-label-silicon = [bold]Silicon[/bold]
+reagent-label-silver = [bold]Silver[/bold]
+reagent-label-sodium = [bold]Sodium[/bold]
+reagent-label-sugar = [bold]Sugar[/bold]
+reagent-label-sulfur = [bold]Sulfur[/bold]
+# Service & other reagents
+reagent-label-cornoil = [bold]Corn Oil[/bold]
+reagent-label-diethylamine = [bold]Diethylamine[/bold]
+reagent-label-ketchup = [bold]Ketchup[/bold]
+reagent-label-mayo = [bold]Mayonnaise[/bold]
+reagent-label-mustard = [bold]Mustard[/bold]
+reagent-label-oil = [bold]Oil[/bold]
+reagent-label-oil-olive = [bold]Olive Oil[/bold]
+reagent-label-space-cleaner = [bold]Space Cleaner[/bold]
+reagent-label-space-lube = [bold]Space Lube[/bold]
+reagent-label-welding-fuel = [bold]Welding Fuel[/bold]
+# Drinks
+reagent-label-absinthe = [bold]Absinthe[/bold]
+reagent-label-ale = [bold]Ale[/bold]
+reagent-label-beer = [bold]Beer[/bold]
+reagent-label-coffeeliqueur = [bold]Coffee Liqueur[/bold]
+reagent-label-cognac = [bold]Cognac[/bold]
+reagent-label-gin = [bold]Gin[/bold]
+reagent-label-rum = [bold]Rum[/bold]
+reagent-label-tequila = [bold]Tequila[/bold]
+reagent-label-vermouth = [bold]Vermouth[/bold]
+reagent-label-vodka = [bold]Vodka[/bold]
+reagent-label-water = [bold]Water[/bold]
+reagent-label-whiskey = [bold]Whiskey[/bold]
+reagent-label-wine = [bold]Wine[/bold]
diff --git a/Resources/Locale/en-US/_NF/research/technologies.ftl b/Resources/Locale/en-US/_NF/research/technologies.ftl
index 5822f98b35a..21d62eeeb52 100644
--- a/Resources/Locale/en-US/_NF/research/technologies.ftl
+++ b/Resources/Locale/en-US/_NF/research/technologies.ftl
@@ -13,4 +13,5 @@ research-technology-bounty-hunting = Bounty Hunting
research-technology-arsenal-style = Punk Gear
research-technology-industrial-medicine = Industrial Medicine
research-technology-magnets-tech-advanced = Advanced Localized Magnetism
-research-technology-magnets-tech-combat = Localized Magnetism Combat Application
\ No newline at end of file
+research-technology-magnets-tech-combat = Localized Magnetism Combat Application
+research-technology-mobile-sanitation = Mobile Sanitation
diff --git a/Resources/Locale/en-US/radio/components/handheld-radio-component.ftl b/Resources/Locale/en-US/radio/components/handheld-radio-component.ftl
index ad637b0c56d..1933c19a935 100644
--- a/Resources/Locale/en-US/radio/components/handheld-radio-component.ftl
+++ b/Resources/Locale/en-US/radio/components/handheld-radio-component.ftl
@@ -5,10 +5,13 @@ handheld-radio-component-off-state = off
handheld-radio-component-channel-set = Channel set to {$channel}
handheld-radio-component-chennel-examine = The current channel is {$channel}.
+# Frontier
+handheld-radio-component-toggle = Toggle Mic
+
# Nuclear-14-Start
handheld-radio-menu-title = Handheld radio
handheld-radio-current-text-frequency = Broadcast frequency
handheld-radio-button-text-mic = Mic.
handheld-radio-button-text-speaker = Spkr.
handheld-radio-flavor-text-left = HandiComms, 1000-3000 kHz
-# Nuclear-14-End
\ No newline at end of file
+# Nuclear-14-End
diff --git a/Resources/Maps/_NF/Bluespace/cave.yml b/Resources/Maps/_NF/Bluespace/cave.yml
index 04ff8108855..cb81f9a200b 100644
--- a/Resources/Maps/_NF/Bluespace/cave.yml
+++ b/Resources/Maps/_NF/Bluespace/cave.yml
@@ -1422,6 +1422,163 @@ entities:
- type: Transform
pos: 3.8538454,4.824911
parent: 1
+- proto: NFRockMineralHardRich
+ entities:
+ - uid: 21
+ components:
+ - type: Transform
+ pos: 9.5,4.5
+ parent: 1
+ - uid: 22
+ components:
+ - type: Transform
+ pos: 10.5,6.5
+ parent: 1
+ - uid: 81
+ components:
+ - type: Transform
+ pos: 10.5,4.5
+ parent: 1
+ - uid: 85
+ components:
+ - type: Transform
+ pos: 10.5,5.5
+ parent: 1
+ - uid: 86
+ components:
+ - type: Transform
+ pos: 9.5,5.5
+ parent: 1
+ - uid: 87
+ components:
+ - type: Transform
+ pos: 9.5,6.5
+ parent: 1
+ - uid: 89
+ components:
+ - type: Transform
+ pos: -9.5,-2.5
+ parent: 1
+ - uid: 90
+ components:
+ - type: Transform
+ pos: -10.5,-1.5
+ parent: 1
+ - uid: 91
+ components:
+ - type: Transform
+ pos: 8.5,5.5
+ parent: 1
+ - uid: 92
+ components:
+ - type: Transform
+ pos: -11.5,-2.5
+ parent: 1
+ - uid: 95
+ components:
+ - type: Transform
+ pos: -9.5,-3.5
+ parent: 1
+ - uid: 96
+ components:
+ - type: Transform
+ pos: -10.5,-3.5
+ parent: 1
+ - uid: 97
+ components:
+ - type: Transform
+ pos: -10.5,-2.5
+ parent: 1
+ - uid: 98
+ components:
+ - type: Transform
+ pos: 5.5,-2.5
+ parent: 1
+ - uid: 105
+ components:
+ - type: Transform
+ pos: 4.5,-2.5
+ parent: 1
+ - uid: 106
+ components:
+ - type: Transform
+ pos: 4.5,-1.5
+ parent: 1
+ - uid: 174
+ components:
+ - type: Transform
+ pos: -6.5,8.5
+ parent: 1
+ - uid: 175
+ components:
+ - type: Transform
+ pos: 11.5,6.5
+ parent: 1
+ - uid: 176
+ components:
+ - type: Transform
+ pos: 11.5,4.5
+ parent: 1
+ - uid: 177
+ components:
+ - type: Transform
+ pos: 12.5,4.5
+ parent: 1
+ - uid: 178
+ components:
+ - type: Transform
+ pos: 11.5,5.5
+ parent: 1
+ - uid: 184
+ components:
+ - type: Transform
+ pos: 10.5,7.5
+ parent: 1
+ - uid: 185
+ components:
+ - type: Transform
+ pos: 11.5,7.5
+ parent: 1
+ - uid: 212
+ components:
+ - type: Transform
+ pos: 5.5,-3.5
+ parent: 1
+ - uid: 213
+ components:
+ - type: Transform
+ pos: 4.5,-3.5
+ parent: 1
+ - uid: 215
+ components:
+ - type: Transform
+ pos: 3.5,-2.5
+ parent: 1
+ - uid: 225
+ components:
+ - type: Transform
+ pos: -6.5,9.5
+ parent: 1
+ - uid: 226
+ components:
+ - type: Transform
+ pos: -7.5,9.5
+ parent: 1
+ - uid: 258
+ components:
+ - type: Transform
+ pos: -13.5,3.5
+ parent: 1
+ - uid: 259
+ components:
+ - type: Transform
+ pos: -13.5,2.5
+ parent: 1
+ - uid: 261
+ components:
+ - type: Transform
+ pos: -7.5,8.5
+ parent: 1
- proto: Pickaxe
entities:
- uid: 407
@@ -2964,163 +3121,6 @@ entities:
- type: Transform
pos: -7.5,-12.5
parent: 1
-- proto: WallRockDiamond
- entities:
- - uid: 21
- components:
- - type: Transform
- pos: 9.5,4.5
- parent: 1
- - uid: 22
- components:
- - type: Transform
- pos: 10.5,6.5
- parent: 1
- - uid: 81
- components:
- - type: Transform
- pos: 10.5,4.5
- parent: 1
- - uid: 85
- components:
- - type: Transform
- pos: 10.5,5.5
- parent: 1
- - uid: 86
- components:
- - type: Transform
- pos: 9.5,5.5
- parent: 1
- - uid: 87
- components:
- - type: Transform
- pos: 9.5,6.5
- parent: 1
- - uid: 89
- components:
- - type: Transform
- pos: -9.5,-2.5
- parent: 1
- - uid: 90
- components:
- - type: Transform
- pos: -10.5,-1.5
- parent: 1
- - uid: 91
- components:
- - type: Transform
- pos: 8.5,5.5
- parent: 1
- - uid: 92
- components:
- - type: Transform
- pos: -11.5,-2.5
- parent: 1
- - uid: 95
- components:
- - type: Transform
- pos: -9.5,-3.5
- parent: 1
- - uid: 96
- components:
- - type: Transform
- pos: -10.5,-3.5
- parent: 1
- - uid: 97
- components:
- - type: Transform
- pos: -10.5,-2.5
- parent: 1
- - uid: 98
- components:
- - type: Transform
- pos: 5.5,-2.5
- parent: 1
- - uid: 105
- components:
- - type: Transform
- pos: 4.5,-2.5
- parent: 1
- - uid: 106
- components:
- - type: Transform
- pos: 4.5,-1.5
- parent: 1
- - uid: 174
- components:
- - type: Transform
- pos: -6.5,8.5
- parent: 1
- - uid: 175
- components:
- - type: Transform
- pos: 11.5,6.5
- parent: 1
- - uid: 176
- components:
- - type: Transform
- pos: 11.5,4.5
- parent: 1
- - uid: 177
- components:
- - type: Transform
- pos: 12.5,4.5
- parent: 1
- - uid: 178
- components:
- - type: Transform
- pos: 11.5,5.5
- parent: 1
- - uid: 184
- components:
- - type: Transform
- pos: 10.5,7.5
- parent: 1
- - uid: 185
- components:
- - type: Transform
- pos: 11.5,7.5
- parent: 1
- - uid: 212
- components:
- - type: Transform
- pos: 5.5,-3.5
- parent: 1
- - uid: 213
- components:
- - type: Transform
- pos: 4.5,-3.5
- parent: 1
- - uid: 215
- components:
- - type: Transform
- pos: 3.5,-2.5
- parent: 1
- - uid: 225
- components:
- - type: Transform
- pos: -6.5,9.5
- parent: 1
- - uid: 226
- components:
- - type: Transform
- pos: -7.5,9.5
- parent: 1
- - uid: 258
- components:
- - type: Transform
- pos: -13.5,3.5
- parent: 1
- - uid: 259
- components:
- - type: Transform
- pos: -13.5,2.5
- parent: 1
- - uid: 261
- components:
- - type: Transform
- pos: -7.5,8.5
- parent: 1
- proto: WarpPoint
entities:
- uid: 136
diff --git a/Resources/Maps/_NF/Dungeon/supercompacted.yml b/Resources/Maps/_NF/Dungeon/supercompacted.yml
new file mode 100644
index 00000000000..649952f6da6
--- /dev/null
+++ b/Resources/Maps/_NF/Dungeon/supercompacted.yml
@@ -0,0 +1,3348 @@
+meta:
+ format: 6
+ postmapinit: false
+tilemap:
+ 0: Space
+ 2: FloorAsteroidSand
+ 6: FloorAsteroidSandUnvariantized
+ 5: FloorAsteroidTile
+ 10: FloorAstroGrass
+ 15: FloorBasalt
+ 8: FloorBrokenWood
+ 14: FloorCaveDrought
+ 12: FloorChromite
+ 13: FloorIce
+ 16: FloorLowDesert
+ 11: FloorRGlass
+ 82: FloorShuttleOrange
+ 1: FloorShuttlePurple
+ 89: FloorSteel
+ 9: FloorSteelDamaged
+ 7: FloorWood
+ 3: Plating
+ 4: PlatingAsteroid
+entities:
+- proto: ""
+ entities:
+ - uid: 1
+ components:
+ - type: MetaData
+ - type: Transform
+ - type: Map
+ mapPaused: True
+ - type: PhysicsMap
+ - type: GridTree
+ - type: MovedGrids
+ - type: Broadphase
+ - type: OccluderTree
+ - type: MapGrid
+ chunks:
+ -1,-1:
+ ind: -1,-1
+ tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAA
+ version: 6
+ 0,0:
+ ind: 0,0
+ tiles: UgAAAAAAUgAAAAAADAAAAAAADAAAAAAAUgAAAAAAAQAAAAADUgAAAAAAUgAAAAAADAAAAAAADAAAAAAAUgAAAAAAAQAAAAADUgAAAAAAUgAAAAAADAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAADAAAAAAADAAAAAAAUgAAAAAAAQAAAAADUgAAAAAADAAAAAAADAAAAAAADAAAAAAAUgAAAAAAAQAAAAACUgAAAAAADAAAAAAADAAAAAAAUgAAAAAAUgAAAAAADAAAAAAADAAAAAAADAAAAAAADAAAAAAAAQAAAAADDAAAAAAADAAAAAAADAAAAAAADAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAADAAAAAAADAAAAAAADAAAAAAAUgAAAAAADAAAAAAADAAAAAAADAAAAAAADAAAAAAAAQAAAAADUgAAAAAAUgAAAAAADAAAAAAADAAAAAAADAAAAAAAAQAAAAAADAAAAAAADAAAAAAADAAAAAAADAAAAAAAUgAAAAAADAAAAAAADAAAAAAAUgAAAAAAUgAAAAAAAQAAAAADUgAAAAAAUgAAAAAAUgAAAAAADAAAAAAADAAAAAAAAQAAAAADUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAQAAAAADAQAAAAACAQAAAAADAQAAAAACAQAAAAACAQAAAAACAQAAAAADAQAAAAADAQAAAAACAQAAAAABAQAAAAAAAQAAAAABAQAAAAABAQAAAAABAQAAAAADAQAAAAABUgAAAAAAUgAAAAAADQAAAAAADQAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAADQAAAAAADQAAAAAAUgAAAAAAAQAAAAABUgAAAAAAUgAAAAAADQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAADQAAAAAADQAAAAAAUgAAAAAAAQAAAAADUgAAAAAADQAAAAAADQAAAAAADQAAAAAAUgAAAAAAAQAAAAACUgAAAAAADQAAAAAADQAAAAAAUgAAAAAAUgAAAAAADQAAAAAADQAAAAAADQAAAAAADQAAAAAAAQAAAAAADQAAAAAADQAAAAAADQAAAAAADQAAAAAAUgAAAAAAAQAAAAACUgAAAAAADQAAAAAADQAAAAAADQAAAAAAUgAAAAAADQAAAAAADQAAAAAADQAAAAAADQAAAAAAAQAAAAADUgAAAAAAUgAAAAAADQAAAAAADQAAAAAADQAAAAAAAQAAAAABDQAAAAAADQAAAAAADQAAAAAADQAAAAAAUgAAAAAADQAAAAAADQAAAAAAUgAAAAAAUgAAAAAAAQAAAAABUgAAAAAAUgAAAAAAUgAAAAAADQAAAAAADQAAAAAAAQAAAAABUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAQAAAAADAQAAAAACAQAAAAAAAQAAAAABAQAAAAADAQAAAAACAQAAAAADAQAAAAABAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAADAQAAAAABAQAAAAAAAQAAAAABUgAAAAAAUgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAACUgAAAAAAUgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAABUgAAAAAAUgAAAAAABgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAADUgAAAAAABgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAACUgAAAAAABgAAAAAABgAAAAAAUgAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAAQAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAACUgAAAAAABgAAAAAABgAAAAAABgAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAAQAAAAADUgAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAAAQAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAA
+ version: 6
+ 0,1:
+ ind: 0,1
+ tiles: UgAAAAAABgAAAAAABgAAAAAAUgAAAAAAUgAAAAAAAQAAAAABUgAAAAAAUgAAAAAAUgAAAAAABgAAAAAABgAAAAAAAQAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAQAAAAADAQAAAAABAQAAAAACAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAACAQAAAAABAQAAAAAAAQAAAAADAQAAAAADAQAAAAADAQAAAAABAQAAAAAAAQAAAAABUgAAAAAAUgAAAAAADgAAAAAADgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAADgAAAAAADgAAAAAAUgAAAAAAAQAAAAACUgAAAAAAUgAAAAAADgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAADgAAAAAADgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAADgAAAAAADgAAAAAADgAAAAAAUgAAAAAAAQAAAAADUgAAAAAADgAAAAAADgAAAAAAUgAAAAAAUgAAAAAADgAAAAAADgAAAAAADgAAAAAADgAAAAAAAQAAAAACDgAAAAAADgAAAAAADgAAAAAADgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAADgAAAAAADgAAAAAADgAAAAAAUgAAAAAADgAAAAAADgAAAAAADgAAAAAADgAAAAAAAQAAAAADUgAAAAAAUgAAAAAADgAAAAAADgAAAAAADgAAAAAAAQAAAAADDgAAAAAADgAAAAAADgAAAAAADgAAAAAAUgAAAAAADgAAAAAADgAAAAAAUgAAAAAAUgAAAAAAAQAAAAACUgAAAAAAUgAAAAAAUgAAAAAADgAAAAAADgAAAAAAAQAAAAABUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAQAAAAADAQAAAAAAAQAAAAABAQAAAAAAAQAAAAACAQAAAAAAAQAAAAAAAQAAAAACAQAAAAADAQAAAAACAQAAAAAAAQAAAAABAQAAAAAAAQAAAAABAQAAAAACAQAAAAADUgAAAAAAUgAAAAAADwAAAAAADwAAAAAAUgAAAAAAAQAAAAACUgAAAAAAUgAAAAAADwAAAAAADwAAAAAAUgAAAAAAAQAAAAADUgAAAAAAUgAAAAAADwAAAAAAUgAAAAAAUgAAAAAAUgAAAAAADwAAAAAADwAAAAAAUgAAAAAAAQAAAAABUgAAAAAADwAAAAAADwAAAAAADwAAAAAAUgAAAAAAAQAAAAAAUgAAAAAADwAAAAAADwAAAAAAUgAAAAAAUgAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAAQAAAAADDwAAAAAADwAAAAAADwAAAAAADwAAAAAAUgAAAAAAAQAAAAABUgAAAAAADwAAAAAADwAAAAAADwAAAAAAUgAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAAQAAAAAAUgAAAAAAUgAAAAAADwAAAAAADwAAAAAADwAAAAAAAQAAAAADDwAAAAAADwAAAAAADwAAAAAADwAAAAAAUgAAAAAADwAAAAAADwAAAAAAUgAAAAAAUgAAAAAAAQAAAAADUgAAAAAAUgAAAAAAUgAAAAAADwAAAAAADwAAAAAAAQAAAAABUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAQAAAAADAQAAAAACAQAAAAABAQAAAAAAAQAAAAACAQAAAAADAQAAAAAAAQAAAAABAQAAAAABAQAAAAAAAQAAAAAAAQAAAAACAQAAAAADAQAAAAACAQAAAAAAAQAAAAACUgAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAEAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAUgAAAAAA
+ version: 6
+ 0,-1:
+ ind: 0,-1
+ tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAADAQAAAAABAQAAAAAAAQAAAAACAQAAAAAAAQAAAAADAQAAAAABAQAAAAACAQAAAAACAQAAAAACAQAAAAABAQAAAAABAQAAAAADAQAAAAACAQAAAAACAQAAAAAD
+ version: 6
+ -1,0:
+ ind: -1,0
+ tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAA
+ version: 6
+ -1,1:
+ ind: -1,1
+ tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAD
+ version: 6
+ 1,-1:
+ ind: 1,-1
+ tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAADAQAAAAACAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAABAQAAAAABAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAA
+ version: 6
+ 1,0:
+ ind: 1,0
+ tiles: UgAAAAAAAQAAAAABUgAAAAAAUgAAAAAADAAAAAAAUgAAAAAAUgAAAAAAAQAAAAACUgAAAAAAUgAAAAAAUgAAAAAADAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAQAAAAABUgAAAAAADAAAAAAADAAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAADAAAAAAADAAAAAAADAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAADAAAAAAAAQAAAAACUgAAAAAADAAAAAAADAAAAAAADAAAAAAAUgAAAAAAAQAAAAABDAAAAAAADAAAAAAADAAAAAAADAAAAAAADAAAAAAAAQAAAAAADAAAAAAADAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAADAAAAAAADAAAAAAADAAAAAAAUgAAAAAAAQAAAAADUgAAAAAADAAAAAAADAAAAAAADAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAADAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAADAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAADAAAAAAADAAAAAAADAAAAAAADAAAAAAAAQAAAAAAUgAAAAAADAAAAAAAAQAAAAACAQAAAAADAQAAAAAAAQAAAAAAAQAAAAABAQAAAAADAQAAAAADAQAAAAACAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAUgAAAAAAAQAAAAADUgAAAAAAUgAAAAAADQAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAADQAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAQAAAAACUgAAAAAADQAAAAAADQAAAAAAUgAAAAAAUgAAAAAAAQAAAAADUgAAAAAADQAAAAAADQAAAAAADQAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAADQAAAAAAAQAAAAADUgAAAAAADQAAAAAADQAAAAAADQAAAAAAUgAAAAAAAQAAAAACDQAAAAAADQAAAAAADQAAAAAADQAAAAAADQAAAAAAAQAAAAAADQAAAAAADQAAAAAAUgAAAAAAAQAAAAACUgAAAAAADQAAAAAADQAAAAAADQAAAAAAUgAAAAAAAQAAAAADUgAAAAAADQAAAAAADQAAAAAADQAAAAAAUgAAAAAAAQAAAAAAUgAAAAAADQAAAAAAUgAAAAAAAQAAAAACUgAAAAAAUgAAAAAAUgAAAAAADQAAAAAAUgAAAAAAAQAAAAAAUgAAAAAADQAAAAAADQAAAAAADQAAAAAADQAAAAAAAQAAAAAAUgAAAAAADQAAAAAAAQAAAAAAAQAAAAADAQAAAAACAQAAAAABAQAAAAAAAQAAAAABAQAAAAADAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAUgAAAAAAAQAAAAABUgAAAAAAUgAAAAAABgAAAAAAUgAAAAAAUgAAAAAAAQAAAAADUgAAAAAAUgAAAAAAUgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAQAAAAADUgAAAAAABgAAAAAABgAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAABgAAAAAAAQAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAAQAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAABUgAAAAAABgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAACUgAAAAAABgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAABgAAAAAA
+ version: 6
+ 1,1:
+ ind: 1,1
+ tiles: UgAAAAAAAQAAAAABUgAAAAAAUgAAAAAAUgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAAQAAAAAAUgAAAAAABgAAAAAAAQAAAAABAQAAAAAAAQAAAAADAQAAAAACAQAAAAACAQAAAAABAQAAAAABAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAUgAAAAAAAQAAAAACUgAAAAAAUgAAAAAADgAAAAAAUgAAAAAAUgAAAAAAAQAAAAADUgAAAAAAUgAAAAAAUgAAAAAADgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAQAAAAABUgAAAAAADgAAAAAADgAAAAAAUgAAAAAAUgAAAAAAAQAAAAADUgAAAAAADgAAAAAADgAAAAAADgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAADgAAAAAAAQAAAAACUgAAAAAADgAAAAAADgAAAAAADgAAAAAAUgAAAAAAAQAAAAADDgAAAAAADgAAAAAADgAAAAAADgAAAAAADgAAAAAAAQAAAAAADgAAAAAADgAAAAAAUgAAAAAAAQAAAAACUgAAAAAADgAAAAAADgAAAAAADgAAAAAAUgAAAAAAAQAAAAACUgAAAAAADgAAAAAADgAAAAAADgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAADgAAAAAAUgAAAAAAAQAAAAABUgAAAAAAUgAAAAAAUgAAAAAADgAAAAAAUgAAAAAAAQAAAAADUgAAAAAADgAAAAAADgAAAAAADgAAAAAADgAAAAAAAQAAAAAAUgAAAAAADgAAAAAAAQAAAAAAAQAAAAADAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAACAQAAAAADAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAUgAAAAAAAQAAAAABUgAAAAAAUgAAAAAADwAAAAAAUgAAAAAAUgAAAAAAAQAAAAADUgAAAAAAUgAAAAAAUgAAAAAADwAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAQAAAAABUgAAAAAADwAAAAAADwAAAAAAUgAAAAAAUgAAAAAAAQAAAAACUgAAAAAADwAAAAAADwAAAAAADwAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAADwAAAAAAAQAAAAAAUgAAAAAADwAAAAAADwAAAAAADwAAAAAAUgAAAAAAAQAAAAABDwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAAQAAAAAADwAAAAAADwAAAAAAUgAAAAAAAQAAAAABUgAAAAAADwAAAAAADwAAAAAADwAAAAAAUgAAAAAAAQAAAAACUgAAAAAADwAAAAAADwAAAAAADwAAAAAAUgAAAAAAAQAAAAAAUgAAAAAADwAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAADwAAAAAAUgAAAAAAAQAAAAAAUgAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAAQAAAAAAUgAAAAAADwAAAAAAAQAAAAAAAQAAAAADAQAAAAAAAQAAAAABAQAAAAACAQAAAAAAAQAAAAADAQAAAAADAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAEAAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAA
+ version: 6
+ -1,2:
+ ind: -1,2
+ tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ version: 6
+ 0,2:
+ ind: 0,2
+ tiles: UgAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAAQAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAAQAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAAQAAAAACAQAAAAADAQAAAAADAQAAAAADAQAAAAABAQAAAAACAQAAAAACAQAAAAACAQAAAAADAQAAAAAAAQAAAAADAQAAAAABAQAAAAACAQAAAAACAQAAAAAAUgAAAAAAUgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAABgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAABgAAAAAABgAAAAAAUgAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAAQAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAAAQAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAUgAAAAAABgAAAAAABgAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAABgAAAAAABgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAQAAAAADAQAAAAACAQAAAAABAQAAAAADAQAAAAABAQAAAAADAQAAAAABAQAAAAACAQAAAAAAAQAAAAABAQAAAAADAQAAAAAAAQAAAAABAQAAAAAAAQAAAAACAQAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ version: 6
+ 1,2:
+ ind: 1,2
+ tiles: EAAAAAAAAQAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAAQAAAAAAEAAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAAQAAAAAAUgAAAAAAEAAAAAAAAQAAAAABAQAAAAABAQAAAAABAQAAAAACAQAAAAAAAQAAAAAAAQAAAAACAQAAAAADAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAABgAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAABgAAAAAABgAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAABgAAAAAAAQAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAAQAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAAQAAAAAAUgAAAAAABgAAAAAAAQAAAAAAAQAAAAADAQAAAAAAAQAAAAADAQAAAAADAQAAAAAAAQAAAAABAQAAAAADAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ version: 6
+ 2,-1:
+ ind: 2,-1
+ tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ version: 6
+ 2,0:
+ ind: 2,0
+ tiles: UgAAAAAADAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAADAAAAAAADAAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAADAAAAAAAUgAAAAAAAQAAAAAADAAAAAAADAAAAAAADAAAAAAADAAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAADAAAAAAADAAAAAAAAQAAAAAAUgAAAAAADAAAAAAADAAAAAAADAAAAAAADAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAADAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAADAAAAAAADAAAAAAADAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAADAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAADAAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAADQAAAAAAUgAAAAAAAQAAAAAAUgAAAAAADQAAAAAADQAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAADQAAAAAAUgAAAAAAAQAAAAAADQAAAAAADQAAAAAADQAAAAAADQAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAADQAAAAAADQAAAAAAAQAAAAAAUgAAAAAADQAAAAAADQAAAAAADQAAAAAADQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAADQAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAADQAAAAAADQAAAAAADQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAADQAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAADQAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAABgAAAAAABgAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAABgAAAAAABgAAAAAAAQAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ version: 6
+ 2,1:
+ ind: 2,1
+ tiles: UgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAADgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAADgAAAAAADgAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAUgAAAAAAAQAAAAAADgAAAAAADgAAAAAADgAAAAAADgAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAADgAAAAAAAQAAAAAAUgAAAAAADgAAAAAADgAAAAAADgAAAAAADgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAADgAAAAAADgAAAAAADgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAADgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAADgAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAADwAAAAAAUgAAAAAAAQAAAAAAUgAAAAAADwAAAAAADwAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAADwAAAAAAUgAAAAAAAQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAADwAAAAAADwAAAAAAAQAAAAAAUgAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAADwAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAADwAAAAAADwAAAAAADwAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAADwAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAADwAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ version: 6
+ 2,2:
+ ind: 2,2
+ tiles: EAAAAAAAEAAAAAAAEAAAAAAAAQAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAEAAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAABgAAAAAABgAAAAAAUgAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAABgAAAAAABgAAAAAAAQAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAABgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAABgAAAAAABgAAAAAABgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAUgAAAAAAUgAAAAAAUgAAAAAABgAAAAAAUgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ version: 6
+ - type: Gravity
+ gravityShakeSound: !type:SoundPathSpecifier
+ path: /Audio/Effects/alert.ogg
+ - type: DecalGrid
+ chunkCollection:
+ version: 2
+ nodes: []
+ - type: LoadedMap
+ - type: SpreaderGrid
+ - type: GridPathfinding
+- proto: NFAndesiteMineralHardRich
+ entities:
+ - uid: 370
+ components:
+ - type: Transform
+ pos: 37.5,18.5
+ parent: 1
+ - uid: 371
+ components:
+ - type: Transform
+ pos: 37.5,19.5
+ parent: 1
+ - uid: 372
+ components:
+ - type: Transform
+ pos: 36.5,19.5
+ parent: 1
+ - uid: 373
+ components:
+ - type: Transform
+ pos: 37.5,20.5
+ parent: 1
+ - uid: 374
+ components:
+ - type: Transform
+ pos: 38.5,20.5
+ parent: 1
+ - uid: 375
+ components:
+ - type: Transform
+ pos: 38.5,19.5
+ parent: 1
+ - uid: 376
+ components:
+ - type: Transform
+ pos: 38.5,18.5
+ parent: 1
+ - uid: 377
+ components:
+ - type: Transform
+ pos: 39.5,19.5
+ parent: 1
+ - uid: 378
+ components:
+ - type: Transform
+ pos: 39.5,20.5
+ parent: 1
+ - uid: 379
+ components:
+ - type: Transform
+ pos: 40.5,20.5
+ parent: 1
+ - uid: 380
+ components:
+ - type: Transform
+ pos: 40.5,21.5
+ parent: 1
+ - uid: 381
+ components:
+ - type: Transform
+ pos: 39.5,21.5
+ parent: 1
+ - uid: 382
+ components:
+ - type: Transform
+ pos: 39.5,22.5
+ parent: 1
+ - uid: 383
+ components:
+ - type: Transform
+ pos: 38.5,21.5
+ parent: 1
+ - uid: 384
+ components:
+ - type: Transform
+ pos: 33.5,18.5
+ parent: 1
+ - uid: 385
+ components:
+ - type: Transform
+ pos: 33.5,19.5
+ parent: 1
+ - uid: 386
+ components:
+ - type: Transform
+ pos: 32.5,19.5
+ parent: 1
+ - uid: 387
+ components:
+ - type: Transform
+ pos: 32.5,20.5
+ parent: 1
+ - uid: 388
+ components:
+ - type: Transform
+ pos: 33.5,20.5
+ parent: 1
+ - uid: 389
+ components:
+ - type: Transform
+ pos: 34.5,20.5
+ parent: 1
+ - uid: 390
+ components:
+ - type: Transform
+ pos: 33.5,21.5
+ parent: 1
+ - uid: 391
+ components:
+ - type: Transform
+ pos: 33.5,22.5
+ parent: 1
+ - uid: 392
+ components:
+ - type: Transform
+ pos: 32.5,21.5
+ parent: 1
+ - uid: 393
+ components:
+ - type: Transform
+ pos: 31.5,21.5
+ parent: 1
+ - uid: 394
+ components:
+ - type: Transform
+ pos: 31.5,22.5
+ parent: 1
+ - uid: 395
+ components:
+ - type: Transform
+ pos: 31.5,20.5
+ parent: 1
+ - uid: 396
+ components:
+ - type: Transform
+ pos: 30.5,20.5
+ parent: 1
+ - uid: 397
+ components:
+ - type: Transform
+ pos: 28.5,20.5
+ parent: 1
+ - uid: 398
+ components:
+ - type: Transform
+ pos: 27.5,20.5
+ parent: 1
+ - uid: 399
+ components:
+ - type: Transform
+ pos: 27.5,19.5
+ parent: 1
+ - uid: 400
+ components:
+ - type: Transform
+ pos: 27.5,18.5
+ parent: 1
+ - uid: 401
+ components:
+ - type: Transform
+ pos: 26.5,19.5
+ parent: 1
+ - uid: 402
+ components:
+ - type: Transform
+ pos: 25.5,19.5
+ parent: 1
+ - uid: 403
+ components:
+ - type: Transform
+ pos: 25.5,20.5
+ parent: 1
+ - uid: 404
+ components:
+ - type: Transform
+ pos: 24.5,20.5
+ parent: 1
+ - uid: 405
+ components:
+ - type: Transform
+ pos: 26.5,20.5
+ parent: 1
+ - uid: 406
+ components:
+ - type: Transform
+ pos: 25.5,21.5
+ parent: 1
+ - uid: 407
+ components:
+ - type: Transform
+ pos: 26.5,21.5
+ parent: 1
+ - uid: 408
+ components:
+ - type: Transform
+ pos: 27.5,21.5
+ parent: 1
+ - uid: 409
+ components:
+ - type: Transform
+ pos: 25.5,22.5
+ parent: 1
+ - uid: 410
+ components:
+ - type: Transform
+ pos: 26.5,22.5
+ parent: 1
+ - uid: 411
+ components:
+ - type: Transform
+ pos: 27.5,22.5
+ parent: 1
+ - uid: 412
+ components:
+ - type: Transform
+ pos: 28.5,22.5
+ parent: 1
+ - uid: 413
+ components:
+ - type: Transform
+ pos: 20.5,18.5
+ parent: 1
+ - uid: 414
+ components:
+ - type: Transform
+ pos: 20.5,19.5
+ parent: 1
+ - uid: 415
+ components:
+ - type: Transform
+ pos: 19.5,19.5
+ parent: 1
+ - uid: 416
+ components:
+ - type: Transform
+ pos: 19.5,20.5
+ parent: 1
+ - uid: 417
+ components:
+ - type: Transform
+ pos: 20.5,20.5
+ parent: 1
+ - uid: 418
+ components:
+ - type: Transform
+ pos: 21.5,20.5
+ parent: 1
+ - uid: 419
+ components:
+ - type: Transform
+ pos: 21.5,21.5
+ parent: 1
+ - uid: 420
+ components:
+ - type: Transform
+ pos: 20.5,21.5
+ parent: 1
+ - uid: 421
+ components:
+ - type: Transform
+ pos: 19.5,21.5
+ parent: 1
+ - uid: 422
+ components:
+ - type: Transform
+ pos: 21.5,22.5
+ parent: 1
+ - uid: 423
+ components:
+ - type: Transform
+ pos: 14.5,18.5
+ parent: 1
+ - uid: 424
+ components:
+ - type: Transform
+ pos: 14.5,19.5
+ parent: 1
+ - uid: 425
+ components:
+ - type: Transform
+ pos: 13.5,19.5
+ parent: 1
+ - uid: 426
+ components:
+ - type: Transform
+ pos: 13.5,20.5
+ parent: 1
+ - uid: 427
+ components:
+ - type: Transform
+ pos: 12.5,21.5
+ parent: 1
+ - uid: 428
+ components:
+ - type: Transform
+ pos: 13.5,21.5
+ parent: 1
+ - uid: 429
+ components:
+ - type: Transform
+ pos: 14.5,21.5
+ parent: 1
+ - uid: 430
+ components:
+ - type: Transform
+ pos: 14.5,20.5
+ parent: 1
+ - uid: 431
+ components:
+ - type: Transform
+ pos: 15.5,21.5
+ parent: 1
+ - uid: 432
+ components:
+ - type: Transform
+ pos: 15.5,20.5
+ parent: 1
+ - uid: 433
+ components:
+ - type: Transform
+ pos: 16.5,20.5
+ parent: 1
+ - uid: 434
+ components:
+ - type: Transform
+ pos: 9.5,18.5
+ parent: 1
+ - uid: 435
+ components:
+ - type: Transform
+ pos: 8.5,18.5
+ parent: 1
+ - uid: 436
+ components:
+ - type: Transform
+ pos: 8.5,19.5
+ parent: 1
+ - uid: 437
+ components:
+ - type: Transform
+ pos: 9.5,19.5
+ parent: 1
+ - uid: 438
+ components:
+ - type: Transform
+ pos: 9.5,20.5
+ parent: 1
+ - uid: 439
+ components:
+ - type: Transform
+ pos: 8.5,20.5
+ parent: 1
+ - uid: 440
+ components:
+ - type: Transform
+ pos: 7.5,20.5
+ parent: 1
+ - uid: 441
+ components:
+ - type: Transform
+ pos: 7.5,19.5
+ parent: 1
+ - uid: 442
+ components:
+ - type: Transform
+ pos: 6.5,20.5
+ parent: 1
+ - uid: 443
+ components:
+ - type: Transform
+ pos: 8.5,21.5
+ parent: 1
+ - uid: 444
+ components:
+ - type: Transform
+ pos: 9.5,21.5
+ parent: 1
+ - uid: 445
+ components:
+ - type: Transform
+ pos: 9.5,22.5
+ parent: 1
+ - uid: 446
+ components:
+ - type: Transform
+ pos: 10.5,22.5
+ parent: 1
+ - uid: 447
+ components:
+ - type: Transform
+ pos: 10.5,21.5
+ parent: 1
+ - uid: 448
+ components:
+ - type: Transform
+ pos: 3.5,18.5
+ parent: 1
+ - uid: 449
+ components:
+ - type: Transform
+ pos: 2.5,18.5
+ parent: 1
+ - uid: 450
+ components:
+ - type: Transform
+ pos: 2.5,19.5
+ parent: 1
+ - uid: 451
+ components:
+ - type: Transform
+ pos: 3.5,19.5
+ parent: 1
+ - uid: 452
+ components:
+ - type: Transform
+ pos: 3.5,20.5
+ parent: 1
+ - uid: 453
+ components:
+ - type: Transform
+ pos: 4.5,20.5
+ parent: 1
+ - uid: 454
+ components:
+ - type: Transform
+ pos: 4.5,21.5
+ parent: 1
+ - uid: 455
+ components:
+ - type: Transform
+ pos: 3.5,21.5
+ parent: 1
+ - uid: 456
+ components:
+ - type: Transform
+ pos: 2.5,21.5
+ parent: 1
+ - uid: 457
+ components:
+ - type: Transform
+ pos: 2.5,22.5
+ parent: 1
+ - uid: 458
+ components:
+ - type: Transform
+ pos: 1.5,22.5
+ parent: 1
+ - uid: 459
+ components:
+ - type: Transform
+ pos: 1.5,21.5
+ parent: 1
+ - uid: 460
+ components:
+ - type: Transform
+ pos: 1.5,20.5
+ parent: 1
+ - uid: 461
+ components:
+ - type: Transform
+ pos: 2.5,20.5
+ parent: 1
+- proto: NFAsteroidMineralHardRich
+ entities:
+ - uid: 186
+ components:
+ - type: Transform
+ pos: 38.5,14.5
+ parent: 1
+ - uid: 187
+ components:
+ - type: Transform
+ pos: 38.5,13.5
+ parent: 1
+ - uid: 188
+ components:
+ - type: Transform
+ pos: 38.5,12.5
+ parent: 1
+ - uid: 189
+ components:
+ - type: Transform
+ pos: 38.5,15.5
+ parent: 1
+ - uid: 190
+ components:
+ - type: Transform
+ pos: 39.5,13.5
+ parent: 1
+ - uid: 191
+ components:
+ - type: Transform
+ pos: 39.5,15.5
+ parent: 1
+ - uid: 192
+ components:
+ - type: Transform
+ pos: 39.5,16.5
+ parent: 1
+ - uid: 193
+ components:
+ - type: Transform
+ pos: 40.5,14.5
+ parent: 1
+ - uid: 194
+ components:
+ - type: Transform
+ pos: 40.5,15.5
+ parent: 1
+ - uid: 195
+ components:
+ - type: Transform
+ pos: 39.5,14.5
+ parent: 1
+ - uid: 196
+ components:
+ - type: Transform
+ pos: 37.5,13.5
+ parent: 1
+ - uid: 197
+ components:
+ - type: Transform
+ pos: 37.5,14.5
+ parent: 1
+ - uid: 198
+ components:
+ - type: Transform
+ pos: 37.5,12.5
+ parent: 1
+ - uid: 199
+ components:
+ - type: Transform
+ pos: 36.5,13.5
+ parent: 1
+ - uid: 200
+ components:
+ - type: Transform
+ pos: 31.5,16.5
+ parent: 1
+ - uid: 201
+ components:
+ - type: Transform
+ pos: 31.5,15.5
+ parent: 1
+ - uid: 202
+ components:
+ - type: Transform
+ pos: 32.5,15.5
+ parent: 1
+ - uid: 203
+ components:
+ - type: Transform
+ pos: 33.5,16.5
+ parent: 1
+ - uid: 204
+ components:
+ - type: Transform
+ pos: 33.5,15.5
+ parent: 1
+ - uid: 205
+ components:
+ - type: Transform
+ pos: 32.5,14.5
+ parent: 1
+ - uid: 206
+ components:
+ - type: Transform
+ pos: 32.5,13.5
+ parent: 1
+ - uid: 207
+ components:
+ - type: Transform
+ pos: 33.5,13.5
+ parent: 1
+ - uid: 208
+ components:
+ - type: Transform
+ pos: 34.5,14.5
+ parent: 1
+ - uid: 209
+ components:
+ - type: Transform
+ pos: 33.5,14.5
+ parent: 1
+ - uid: 210
+ components:
+ - type: Transform
+ pos: 33.5,12.5
+ parent: 1
+ - uid: 211
+ components:
+ - type: Transform
+ pos: 27.5,12.5
+ parent: 1
+ - uid: 212
+ components:
+ - type: Transform
+ pos: 30.5,14.5
+ parent: 1
+ - uid: 213
+ components:
+ - type: Transform
+ pos: 31.5,14.5
+ parent: 1
+ - uid: 214
+ components:
+ - type: Transform
+ pos: 27.5,13.5
+ parent: 1
+ - uid: 215
+ components:
+ - type: Transform
+ pos: 28.5,14.5
+ parent: 1
+ - uid: 216
+ components:
+ - type: Transform
+ pos: 27.5,14.5
+ parent: 1
+ - uid: 217
+ components:
+ - type: Transform
+ pos: 27.5,15.5
+ parent: 1
+ - uid: 218
+ components:
+ - type: Transform
+ pos: 28.5,16.5
+ parent: 1
+ - uid: 219
+ components:
+ - type: Transform
+ pos: 26.5,16.5
+ parent: 1
+ - uid: 220
+ components:
+ - type: Transform
+ pos: 27.5,16.5
+ parent: 1
+ - uid: 221
+ components:
+ - type: Transform
+ pos: 25.5,16.5
+ parent: 1
+ - uid: 222
+ components:
+ - type: Transform
+ pos: 26.5,15.5
+ parent: 1
+ - uid: 223
+ components:
+ - type: Transform
+ pos: 25.5,15.5
+ parent: 1
+ - uid: 224
+ components:
+ - type: Transform
+ pos: 26.5,14.5
+ parent: 1
+ - uid: 225
+ components:
+ - type: Transform
+ pos: 25.5,13.5
+ parent: 1
+ - uid: 226
+ components:
+ - type: Transform
+ pos: 21.5,16.5
+ parent: 1
+ - uid: 227
+ components:
+ - type: Transform
+ pos: 24.5,14.5
+ parent: 1
+ - uid: 228
+ components:
+ - type: Transform
+ pos: 26.5,13.5
+ parent: 1
+ - uid: 229
+ components:
+ - type: Transform
+ pos: 25.5,14.5
+ parent: 1
+ - uid: 230
+ components:
+ - type: Transform
+ pos: 20.5,14.5
+ parent: 1
+ - uid: 231
+ components:
+ - type: Transform
+ pos: 19.5,15.5
+ parent: 1
+ - uid: 232
+ components:
+ - type: Transform
+ pos: 20.5,15.5
+ parent: 1
+ - uid: 233
+ components:
+ - type: Transform
+ pos: 21.5,14.5
+ parent: 1
+ - uid: 234
+ components:
+ - type: Transform
+ pos: 21.5,15.5
+ parent: 1
+ - uid: 235
+ components:
+ - type: Transform
+ pos: 19.5,14.5
+ parent: 1
+ - uid: 236
+ components:
+ - type: Transform
+ pos: 20.5,12.5
+ parent: 1
+ - uid: 237
+ components:
+ - type: Transform
+ pos: 12.5,15.5
+ parent: 1
+ - uid: 238
+ components:
+ - type: Transform
+ pos: 13.5,15.5
+ parent: 1
+ - uid: 239
+ components:
+ - type: Transform
+ pos: 10.5,15.5
+ parent: 1
+ - uid: 240
+ components:
+ - type: Transform
+ pos: 13.5,14.5
+ parent: 1
+ - uid: 241
+ components:
+ - type: Transform
+ pos: 14.5,13.5
+ parent: 1
+ - uid: 242
+ components:
+ - type: Transform
+ pos: 13.5,13.5
+ parent: 1
+ - uid: 243
+ components:
+ - type: Transform
+ pos: 14.5,12.5
+ parent: 1
+ - uid: 244
+ components:
+ - type: Transform
+ pos: 14.5,15.5
+ parent: 1
+ - uid: 245
+ components:
+ - type: Transform
+ pos: 14.5,14.5
+ parent: 1
+ - uid: 246
+ components:
+ - type: Transform
+ pos: 16.5,14.5
+ parent: 1
+ - uid: 247
+ components:
+ - type: Transform
+ pos: 15.5,14.5
+ parent: 1
+ - uid: 248
+ components:
+ - type: Transform
+ pos: 19.5,13.5
+ parent: 1
+ - uid: 249
+ components:
+ - type: Transform
+ pos: 15.5,15.5
+ parent: 1
+ - uid: 250
+ components:
+ - type: Transform
+ pos: 20.5,13.5
+ parent: 1
+ - uid: 251
+ components:
+ - type: Transform
+ pos: 10.5,16.5
+ parent: 1
+ - uid: 252
+ components:
+ - type: Transform
+ pos: 9.5,16.5
+ parent: 1
+ - uid: 253
+ components:
+ - type: Transform
+ pos: 9.5,15.5
+ parent: 1
+ - uid: 254
+ components:
+ - type: Transform
+ pos: 8.5,15.5
+ parent: 1
+ - uid: 255
+ components:
+ - type: Transform
+ pos: 9.5,14.5
+ parent: 1
+ - uid: 256
+ components:
+ - type: Transform
+ pos: 8.5,14.5
+ parent: 1
+ - uid: 257
+ components:
+ - type: Transform
+ pos: 9.5,13.5
+ parent: 1
+ - uid: 258
+ components:
+ - type: Transform
+ pos: 9.5,12.5
+ parent: 1
+ - uid: 259
+ components:
+ - type: Transform
+ pos: 8.5,12.5
+ parent: 1
+ - uid: 260
+ components:
+ - type: Transform
+ pos: 8.5,13.5
+ parent: 1
+ - uid: 261
+ components:
+ - type: Transform
+ pos: 7.5,14.5
+ parent: 1
+ - uid: 262
+ components:
+ - type: Transform
+ pos: 7.5,13.5
+ parent: 1
+ - uid: 263
+ components:
+ - type: Transform
+ pos: 6.5,14.5
+ parent: 1
+ - uid: 264
+ components:
+ - type: Transform
+ pos: 1.5,16.5
+ parent: 1
+ - uid: 265
+ components:
+ - type: Transform
+ pos: 2.5,16.5
+ parent: 1
+ - uid: 266
+ components:
+ - type: Transform
+ pos: 4.5,15.5
+ parent: 1
+ - uid: 267
+ components:
+ - type: Transform
+ pos: 3.5,15.5
+ parent: 1
+ - uid: 268
+ components:
+ - type: Transform
+ pos: 3.5,14.5
+ parent: 1
+ - uid: 269
+ components:
+ - type: Transform
+ pos: 2.5,13.5
+ parent: 1
+ - uid: 270
+ components:
+ - type: Transform
+ pos: 1.5,14.5
+ parent: 1
+ - uid: 271
+ components:
+ - type: Transform
+ pos: 2.5,14.5
+ parent: 1
+ - uid: 272
+ components:
+ - type: Transform
+ pos: 4.5,14.5
+ parent: 1
+ - uid: 273
+ components:
+ - type: Transform
+ pos: 2.5,15.5
+ parent: 1
+ - uid: 274
+ components:
+ - type: Transform
+ pos: 1.5,15.5
+ parent: 1
+ - uid: 275
+ components:
+ - type: Transform
+ pos: 2.5,12.5
+ parent: 1
+ - uid: 276
+ components:
+ - type: Transform
+ pos: 3.5,12.5
+ parent: 1
+ - uid: 277
+ components:
+ - type: Transform
+ pos: 3.5,13.5
+ parent: 1
+- proto: NFBasaltMineralHardRich
+ entities:
+ - uid: 278
+ components:
+ - type: Transform
+ pos: 2.5,24.5
+ parent: 1
+ - uid: 279
+ components:
+ - type: Transform
+ pos: 2.5,25.5
+ parent: 1
+ - uid: 280
+ components:
+ - type: Transform
+ pos: 3.5,25.5
+ parent: 1
+ - uid: 281
+ components:
+ - type: Transform
+ pos: 3.5,24.5
+ parent: 1
+ - uid: 282
+ components:
+ - type: Transform
+ pos: 3.5,26.5
+ parent: 1
+ - uid: 283
+ components:
+ - type: Transform
+ pos: 4.5,26.5
+ parent: 1
+ - uid: 284
+ components:
+ - type: Transform
+ pos: 4.5,27.5
+ parent: 1
+ - uid: 285
+ components:
+ - type: Transform
+ pos: 3.5,27.5
+ parent: 1
+ - uid: 286
+ components:
+ - type: Transform
+ pos: 2.5,26.5
+ parent: 1
+ - uid: 287
+ components:
+ - type: Transform
+ pos: 1.5,26.5
+ parent: 1
+ - uid: 288
+ components:
+ - type: Transform
+ pos: 1.5,27.5
+ parent: 1
+ - uid: 289
+ components:
+ - type: Transform
+ pos: 2.5,27.5
+ parent: 1
+ - uid: 290
+ components:
+ - type: Transform
+ pos: 2.5,28.5
+ parent: 1
+ - uid: 291
+ components:
+ - type: Transform
+ pos: 1.5,28.5
+ parent: 1
+ - uid: 292
+ components:
+ - type: Transform
+ pos: 6.5,26.5
+ parent: 1
+ - uid: 293
+ components:
+ - type: Transform
+ pos: 7.5,26.5
+ parent: 1
+ - uid: 294
+ components:
+ - type: Transform
+ pos: 7.5,25.5
+ parent: 1
+ - uid: 295
+ components:
+ - type: Transform
+ pos: 8.5,24.5
+ parent: 1
+ - uid: 296
+ components:
+ - type: Transform
+ pos: 8.5,25.5
+ parent: 1
+ - uid: 297
+ components:
+ - type: Transform
+ pos: 9.5,25.5
+ parent: 1
+ - uid: 298
+ components:
+ - type: Transform
+ pos: 9.5,24.5
+ parent: 1
+ - uid: 299
+ components:
+ - type: Transform
+ pos: 9.5,26.5
+ parent: 1
+ - uid: 300
+ components:
+ - type: Transform
+ pos: 8.5,26.5
+ parent: 1
+ - uid: 301
+ components:
+ - type: Transform
+ pos: 8.5,27.5
+ parent: 1
+ - uid: 302
+ components:
+ - type: Transform
+ pos: 9.5,27.5
+ parent: 1
+ - uid: 303
+ components:
+ - type: Transform
+ pos: 9.5,28.5
+ parent: 1
+ - uid: 304
+ components:
+ - type: Transform
+ pos: 10.5,28.5
+ parent: 1
+ - uid: 305
+ components:
+ - type: Transform
+ pos: 10.5,27.5
+ parent: 1
+ - uid: 306
+ components:
+ - type: Transform
+ pos: 12.5,27.5
+ parent: 1
+ - uid: 307
+ components:
+ - type: Transform
+ pos: 13.5,27.5
+ parent: 1
+ - uid: 308
+ components:
+ - type: Transform
+ pos: 13.5,26.5
+ parent: 1
+ - uid: 309
+ components:
+ - type: Transform
+ pos: 14.5,26.5
+ parent: 1
+ - uid: 310
+ components:
+ - type: Transform
+ pos: 14.5,27.5
+ parent: 1
+ - uid: 311
+ components:
+ - type: Transform
+ pos: 15.5,27.5
+ parent: 1
+ - uid: 312
+ components:
+ - type: Transform
+ pos: 15.5,26.5
+ parent: 1
+ - uid: 313
+ components:
+ - type: Transform
+ pos: 16.5,26.5
+ parent: 1
+ - uid: 314
+ components:
+ - type: Transform
+ pos: 13.5,25.5
+ parent: 1
+ - uid: 315
+ components:
+ - type: Transform
+ pos: 14.5,25.5
+ parent: 1
+ - uid: 316
+ components:
+ - type: Transform
+ pos: 14.5,24.5
+ parent: 1
+ - uid: 317
+ components:
+ - type: Transform
+ pos: 20.5,24.5
+ parent: 1
+ - uid: 318
+ components:
+ - type: Transform
+ pos: 20.5,25.5
+ parent: 1
+ - uid: 319
+ components:
+ - type: Transform
+ pos: 19.5,25.5
+ parent: 1
+ - uid: 320
+ components:
+ - type: Transform
+ pos: 19.5,26.5
+ parent: 1
+ - uid: 321
+ components:
+ - type: Transform
+ pos: 19.5,27.5
+ parent: 1
+ - uid: 322
+ components:
+ - type: Transform
+ pos: 20.5,27.5
+ parent: 1
+ - uid: 323
+ components:
+ - type: Transform
+ pos: 20.5,26.5
+ parent: 1
+ - uid: 324
+ components:
+ - type: Transform
+ pos: 21.5,26.5
+ parent: 1
+ - uid: 325
+ components:
+ - type: Transform
+ pos: 21.5,27.5
+ parent: 1
+ - uid: 326
+ components:
+ - type: Transform
+ pos: 21.5,28.5
+ parent: 1
+ - uid: 327
+ components:
+ - type: Transform
+ pos: 24.5,26.5
+ parent: 1
+ - uid: 328
+ components:
+ - type: Transform
+ pos: 25.5,26.5
+ parent: 1
+ - uid: 329
+ components:
+ - type: Transform
+ pos: 25.5,25.5
+ parent: 1
+ - uid: 330
+ components:
+ - type: Transform
+ pos: 26.5,25.5
+ parent: 1
+ - uid: 331
+ components:
+ - type: Transform
+ pos: 27.5,25.5
+ parent: 1
+ - uid: 332
+ components:
+ - type: Transform
+ pos: 27.5,24.5
+ parent: 1
+ - uid: 333
+ components:
+ - type: Transform
+ pos: 28.5,26.5
+ parent: 1
+ - uid: 334
+ components:
+ - type: Transform
+ pos: 27.5,26.5
+ parent: 1
+ - uid: 335
+ components:
+ - type: Transform
+ pos: 26.5,26.5
+ parent: 1
+ - uid: 336
+ components:
+ - type: Transform
+ pos: 26.5,27.5
+ parent: 1
+ - uid: 337
+ components:
+ - type: Transform
+ pos: 27.5,27.5
+ parent: 1
+ - uid: 338
+ components:
+ - type: Transform
+ pos: 27.5,28.5
+ parent: 1
+ - uid: 339
+ components:
+ - type: Transform
+ pos: 28.5,28.5
+ parent: 1
+ - uid: 340
+ components:
+ - type: Transform
+ pos: 26.5,28.5
+ parent: 1
+ - uid: 341
+ components:
+ - type: Transform
+ pos: 25.5,28.5
+ parent: 1
+ - uid: 342
+ components:
+ - type: Transform
+ pos: 25.5,27.5
+ parent: 1
+ - uid: 343
+ components:
+ - type: Transform
+ pos: 30.5,26.5
+ parent: 1
+ - uid: 344
+ components:
+ - type: Transform
+ pos: 31.5,26.5
+ parent: 1
+ - uid: 345
+ components:
+ - type: Transform
+ pos: 31.5,27.5
+ parent: 1
+ - uid: 346
+ components:
+ - type: Transform
+ pos: 31.5,28.5
+ parent: 1
+ - uid: 347
+ components:
+ - type: Transform
+ pos: 32.5,27.5
+ parent: 1
+ - uid: 348
+ components:
+ - type: Transform
+ pos: 32.5,26.5
+ parent: 1
+ - uid: 349
+ components:
+ - type: Transform
+ pos: 32.5,25.5
+ parent: 1
+ - uid: 350
+ components:
+ - type: Transform
+ pos: 33.5,25.5
+ parent: 1
+ - uid: 351
+ components:
+ - type: Transform
+ pos: 33.5,24.5
+ parent: 1
+ - uid: 352
+ components:
+ - type: Transform
+ pos: 33.5,26.5
+ parent: 1
+ - uid: 353
+ components:
+ - type: Transform
+ pos: 34.5,26.5
+ parent: 1
+ - uid: 354
+ components:
+ - type: Transform
+ pos: 33.5,27.5
+ parent: 1
+ - uid: 355
+ components:
+ - type: Transform
+ pos: 33.5,28.5
+ parent: 1
+ - uid: 356
+ components:
+ - type: Transform
+ pos: 36.5,25.5
+ parent: 1
+ - uid: 357
+ components:
+ - type: Transform
+ pos: 37.5,25.5
+ parent: 1
+ - uid: 358
+ components:
+ - type: Transform
+ pos: 37.5,24.5
+ parent: 1
+ - uid: 359
+ components:
+ - type: Transform
+ pos: 38.5,24.5
+ parent: 1
+ - uid: 360
+ components:
+ - type: Transform
+ pos: 38.5,25.5
+ parent: 1
+ - uid: 361
+ components:
+ - type: Transform
+ pos: 39.5,25.5
+ parent: 1
+ - uid: 362
+ components:
+ - type: Transform
+ pos: 37.5,26.5
+ parent: 1
+ - uid: 363
+ components:
+ - type: Transform
+ pos: 38.5,26.5
+ parent: 1
+ - uid: 364
+ components:
+ - type: Transform
+ pos: 38.5,27.5
+ parent: 1
+ - uid: 365
+ components:
+ - type: Transform
+ pos: 39.5,28.5
+ parent: 1
+ - uid: 366
+ components:
+ - type: Transform
+ pos: 39.5,27.5
+ parent: 1
+ - uid: 367
+ components:
+ - type: Transform
+ pos: 39.5,26.5
+ parent: 1
+ - uid: 368
+ components:
+ - type: Transform
+ pos: 40.5,26.5
+ parent: 1
+ - uid: 369
+ components:
+ - type: Transform
+ pos: 40.5,27.5
+ parent: 1
+- proto: NFChromiteMineralHardRich
+ entities:
+ - uid: 2
+ components:
+ - type: Transform
+ pos: 2.5,0.5
+ parent: 1
+ - uid: 3
+ components:
+ - type: Transform
+ pos: 3.5,0.5
+ parent: 1
+ - uid: 4
+ components:
+ - type: Transform
+ pos: 2.5,1.5
+ parent: 1
+ - uid: 5
+ components:
+ - type: Transform
+ pos: 3.5,1.5
+ parent: 1
+ - uid: 6
+ components:
+ - type: Transform
+ pos: 3.5,2.5
+ parent: 1
+ - uid: 7
+ components:
+ - type: Transform
+ pos: 4.5,2.5
+ parent: 1
+ - uid: 8
+ components:
+ - type: Transform
+ pos: 4.5,3.5
+ parent: 1
+ - uid: 9
+ components:
+ - type: Transform
+ pos: 3.5,3.5
+ parent: 1
+ - uid: 10
+ components:
+ - type: Transform
+ pos: 2.5,3.5
+ parent: 1
+ - uid: 11
+ components:
+ - type: Transform
+ pos: 2.5,2.5
+ parent: 1
+ - uid: 12
+ components:
+ - type: Transform
+ pos: 1.5,2.5
+ parent: 1
+ - uid: 13
+ components:
+ - type: Transform
+ pos: 1.5,3.5
+ parent: 1
+ - uid: 14
+ components:
+ - type: Transform
+ pos: 1.5,4.5
+ parent: 1
+ - uid: 15
+ components:
+ - type: Transform
+ pos: 2.5,4.5
+ parent: 1
+ - uid: 16
+ components:
+ - type: Transform
+ pos: 6.5,2.5
+ parent: 1
+ - uid: 17
+ components:
+ - type: Transform
+ pos: 7.5,2.5
+ parent: 1
+ - uid: 18
+ components:
+ - type: Transform
+ pos: 7.5,1.5
+ parent: 1
+ - uid: 19
+ components:
+ - type: Transform
+ pos: 8.5,1.5
+ parent: 1
+ - uid: 20
+ components:
+ - type: Transform
+ pos: 8.5,0.5
+ parent: 1
+ - uid: 21
+ components:
+ - type: Transform
+ pos: 9.5,0.5
+ parent: 1
+ - uid: 22
+ components:
+ - type: Transform
+ pos: 9.5,1.5
+ parent: 1
+ - uid: 23
+ components:
+ - type: Transform
+ pos: 9.5,2.5
+ parent: 1
+ - uid: 24
+ components:
+ - type: Transform
+ pos: 8.5,2.5
+ parent: 1
+ - uid: 25
+ components:
+ - type: Transform
+ pos: 8.5,3.5
+ parent: 1
+ - uid: 26
+ components:
+ - type: Transform
+ pos: 9.5,3.5
+ parent: 1
+ - uid: 27
+ components:
+ - type: Transform
+ pos: 9.5,4.5
+ parent: 1
+ - uid: 28
+ components:
+ - type: Transform
+ pos: 10.5,4.5
+ parent: 1
+ - uid: 29
+ components:
+ - type: Transform
+ pos: 10.5,3.5
+ parent: 1
+ - uid: 30
+ components:
+ - type: Transform
+ pos: 12.5,3.5
+ parent: 1
+ - uid: 31
+ components:
+ - type: Transform
+ pos: 13.5,3.5
+ parent: 1
+ - uid: 32
+ components:
+ - type: Transform
+ pos: 13.5,2.5
+ parent: 1
+ - uid: 33
+ components:
+ - type: Transform
+ pos: 13.5,1.5
+ parent: 1
+ - uid: 34
+ components:
+ - type: Transform
+ pos: 14.5,0.5
+ parent: 1
+ - uid: 35
+ components:
+ - type: Transform
+ pos: 14.5,1.5
+ parent: 1
+ - uid: 36
+ components:
+ - type: Transform
+ pos: 14.5,2.5
+ parent: 1
+ - uid: 37
+ components:
+ - type: Transform
+ pos: 14.5,3.5
+ parent: 1
+ - uid: 38
+ components:
+ - type: Transform
+ pos: 15.5,3.5
+ parent: 1
+ - uid: 39
+ components:
+ - type: Transform
+ pos: 15.5,2.5
+ parent: 1
+ - uid: 40
+ components:
+ - type: Transform
+ pos: 16.5,2.5
+ parent: 1
+ - uid: 41
+ components:
+ - type: Transform
+ pos: 20.5,0.5
+ parent: 1
+ - uid: 42
+ components:
+ - type: Transform
+ pos: 20.5,1.5
+ parent: 1
+ - uid: 43
+ components:
+ - type: Transform
+ pos: 19.5,1.5
+ parent: 1
+ - uid: 44
+ components:
+ - type: Transform
+ pos: 19.5,2.5
+ parent: 1
+ - uid: 45
+ components:
+ - type: Transform
+ pos: 19.5,3.5
+ parent: 1
+ - uid: 46
+ components:
+ - type: Transform
+ pos: 20.5,3.5
+ parent: 1
+ - uid: 47
+ components:
+ - type: Transform
+ pos: 20.5,2.5
+ parent: 1
+ - uid: 48
+ components:
+ - type: Transform
+ pos: 21.5,2.5
+ parent: 1
+ - uid: 49
+ components:
+ - type: Transform
+ pos: 21.5,3.5
+ parent: 1
+ - uid: 50
+ components:
+ - type: Transform
+ pos: 21.5,4.5
+ parent: 1
+ - uid: 51
+ components:
+ - type: Transform
+ pos: 24.5,2.5
+ parent: 1
+ - uid: 52
+ components:
+ - type: Transform
+ pos: 25.5,2.5
+ parent: 1
+ - uid: 53
+ components:
+ - type: Transform
+ pos: 25.5,1.5
+ parent: 1
+ - uid: 54
+ components:
+ - type: Transform
+ pos: 26.5,1.5
+ parent: 1
+ - uid: 55
+ components:
+ - type: Transform
+ pos: 27.5,0.5
+ parent: 1
+ - uid: 56
+ components:
+ - type: Transform
+ pos: 27.5,1.5
+ parent: 1
+ - uid: 57
+ components:
+ - type: Transform
+ pos: 27.5,2.5
+ parent: 1
+ - uid: 58
+ components:
+ - type: Transform
+ pos: 28.5,2.5
+ parent: 1
+ - uid: 59
+ components:
+ - type: Transform
+ pos: 26.5,2.5
+ parent: 1
+ - uid: 60
+ components:
+ - type: Transform
+ pos: 27.5,3.5
+ parent: 1
+ - uid: 61
+ components:
+ - type: Transform
+ pos: 26.5,3.5
+ parent: 1
+ - uid: 62
+ components:
+ - type: Transform
+ pos: 25.5,3.5
+ parent: 1
+ - uid: 63
+ components:
+ - type: Transform
+ pos: 25.5,4.5
+ parent: 1
+ - uid: 64
+ components:
+ - type: Transform
+ pos: 26.5,4.5
+ parent: 1
+ - uid: 65
+ components:
+ - type: Transform
+ pos: 27.5,4.5
+ parent: 1
+ - uid: 66
+ components:
+ - type: Transform
+ pos: 28.5,4.5
+ parent: 1
+ - uid: 67
+ components:
+ - type: Transform
+ pos: 30.5,2.5
+ parent: 1
+ - uid: 68
+ components:
+ - type: Transform
+ pos: 31.5,4.5
+ parent: 1
+ - uid: 69
+ components:
+ - type: Transform
+ pos: 31.5,3.5
+ parent: 1
+ - uid: 70
+ components:
+ - type: Transform
+ pos: 31.5,2.5
+ parent: 1
+ - uid: 71
+ components:
+ - type: Transform
+ pos: 32.5,3.5
+ parent: 1
+ - uid: 72
+ components:
+ - type: Transform
+ pos: 32.5,2.5
+ parent: 1
+ - uid: 73
+ components:
+ - type: Transform
+ pos: 32.5,1.5
+ parent: 1
+ - uid: 74
+ components:
+ - type: Transform
+ pos: 33.5,0.5
+ parent: 1
+ - uid: 75
+ components:
+ - type: Transform
+ pos: 33.5,1.5
+ parent: 1
+ - uid: 76
+ components:
+ - type: Transform
+ pos: 33.5,2.5
+ parent: 1
+ - uid: 77
+ components:
+ - type: Transform
+ pos: 34.5,2.5
+ parent: 1
+ - uid: 78
+ components:
+ - type: Transform
+ pos: 33.5,3.5
+ parent: 1
+ - uid: 79
+ components:
+ - type: Transform
+ pos: 33.5,4.5
+ parent: 1
+ - uid: 80
+ components:
+ - type: Transform
+ pos: 37.5,0.5
+ parent: 1
+ - uid: 81
+ components:
+ - type: Transform
+ pos: 36.5,1.5
+ parent: 1
+ - uid: 82
+ components:
+ - type: Transform
+ pos: 37.5,1.5
+ parent: 1
+ - uid: 83
+ components:
+ - type: Transform
+ pos: 37.5,2.5
+ parent: 1
+ - uid: 84
+ components:
+ - type: Transform
+ pos: 38.5,2.5
+ parent: 1
+ - uid: 85
+ components:
+ - type: Transform
+ pos: 38.5,1.5
+ parent: 1
+ - uid: 86
+ components:
+ - type: Transform
+ pos: 38.5,0.5
+ parent: 1
+ - uid: 87
+ components:
+ - type: Transform
+ pos: 39.5,1.5
+ parent: 1
+ - uid: 88
+ components:
+ - type: Transform
+ pos: 39.5,2.5
+ parent: 1
+ - uid: 89
+ components:
+ - type: Transform
+ pos: 40.5,2.5
+ parent: 1
+ - uid: 90
+ components:
+ - type: Transform
+ pos: 40.5,3.5
+ parent: 1
+ - uid: 91
+ components:
+ - type: Transform
+ pos: 39.5,3.5
+ parent: 1
+ - uid: 92
+ components:
+ - type: Transform
+ pos: 39.5,4.5
+ parent: 1
+ - uid: 93
+ components:
+ - type: Transform
+ pos: 38.5,3.5
+ parent: 1
+- proto: NFIceMineralHardRich
+ entities:
+ - uid: 94
+ components:
+ - type: Transform
+ pos: 36.5,7.5
+ parent: 1
+ - uid: 95
+ components:
+ - type: Transform
+ pos: 37.5,7.5
+ parent: 1
+ - uid: 96
+ components:
+ - type: Transform
+ pos: 37.5,6.5
+ parent: 1
+ - uid: 97
+ components:
+ - type: Transform
+ pos: 38.5,6.5
+ parent: 1
+ - uid: 98
+ components:
+ - type: Transform
+ pos: 38.5,7.5
+ parent: 1
+ - uid: 99
+ components:
+ - type: Transform
+ pos: 39.5,7.5
+ parent: 1
+ - uid: 100
+ components:
+ - type: Transform
+ pos: 39.5,8.5
+ parent: 1
+ - uid: 101
+ components:
+ - type: Transform
+ pos: 38.5,8.5
+ parent: 1
+ - uid: 102
+ components:
+ - type: Transform
+ pos: 37.5,8.5
+ parent: 1
+ - uid: 103
+ components:
+ - type: Transform
+ pos: 38.5,9.5
+ parent: 1
+ - uid: 104
+ components:
+ - type: Transform
+ pos: 39.5,9.5
+ parent: 1
+ - uid: 105
+ components:
+ - type: Transform
+ pos: 40.5,9.5
+ parent: 1
+ - uid: 106
+ components:
+ - type: Transform
+ pos: 40.5,8.5
+ parent: 1
+ - uid: 107
+ components:
+ - type: Transform
+ pos: 39.5,10.5
+ parent: 1
+ - uid: 108
+ components:
+ - type: Transform
+ pos: 33.5,6.5
+ parent: 1
+ - uid: 109
+ components:
+ - type: Transform
+ pos: 33.5,7.5
+ parent: 1
+ - uid: 110
+ components:
+ - type: Transform
+ pos: 32.5,7.5
+ parent: 1
+ - uid: 111
+ components:
+ - type: Transform
+ pos: 34.5,8.5
+ parent: 1
+ - uid: 112
+ components:
+ - type: Transform
+ pos: 33.5,8.5
+ parent: 1
+ - uid: 113
+ components:
+ - type: Transform
+ pos: 33.5,9.5
+ parent: 1
+ - uid: 114
+ components:
+ - type: Transform
+ pos: 33.5,10.5
+ parent: 1
+ - uid: 115
+ components:
+ - type: Transform
+ pos: 32.5,9.5
+ parent: 1
+ - uid: 116
+ components:
+ - type: Transform
+ pos: 32.5,8.5
+ parent: 1
+ - uid: 117
+ components:
+ - type: Transform
+ pos: 31.5,8.5
+ parent: 1
+ - uid: 118
+ components:
+ - type: Transform
+ pos: 31.5,9.5
+ parent: 1
+ - uid: 119
+ components:
+ - type: Transform
+ pos: 30.5,8.5
+ parent: 1
+ - uid: 120
+ components:
+ - type: Transform
+ pos: 31.5,10.5
+ parent: 1
+ - uid: 121
+ components:
+ - type: Transform
+ pos: 27.5,6.5
+ parent: 1
+ - uid: 122
+ components:
+ - type: Transform
+ pos: 27.5,7.5
+ parent: 1
+ - uid: 123
+ components:
+ - type: Transform
+ pos: 25.5,7.5
+ parent: 1
+ - uid: 124
+ components:
+ - type: Transform
+ pos: 26.5,7.5
+ parent: 1
+ - uid: 125
+ components:
+ - type: Transform
+ pos: 26.5,8.5
+ parent: 1
+ - uid: 126
+ components:
+ - type: Transform
+ pos: 25.5,8.5
+ parent: 1
+ - uid: 127
+ components:
+ - type: Transform
+ pos: 24.5,8.5
+ parent: 1
+ - uid: 128
+ components:
+ - type: Transform
+ pos: 25.5,9.5
+ parent: 1
+ - uid: 129
+ components:
+ - type: Transform
+ pos: 25.5,10.5
+ parent: 1
+ - uid: 130
+ components:
+ - type: Transform
+ pos: 26.5,10.5
+ parent: 1
+ - uid: 131
+ components:
+ - type: Transform
+ pos: 26.5,9.5
+ parent: 1
+ - uid: 132
+ components:
+ - type: Transform
+ pos: 27.5,9.5
+ parent: 1
+ - uid: 133
+ components:
+ - type: Transform
+ pos: 27.5,8.5
+ parent: 1
+ - uid: 134
+ components:
+ - type: Transform
+ pos: 28.5,8.5
+ parent: 1
+ - uid: 135
+ components:
+ - type: Transform
+ pos: 27.5,10.5
+ parent: 1
+ - uid: 136
+ components:
+ - type: Transform
+ pos: 28.5,10.5
+ parent: 1
+ - uid: 137
+ components:
+ - type: Transform
+ pos: 20.5,6.5
+ parent: 1
+ - uid: 138
+ components:
+ - type: Transform
+ pos: 20.5,7.5
+ parent: 1
+ - uid: 139
+ components:
+ - type: Transform
+ pos: 19.5,7.5
+ parent: 1
+ - uid: 140
+ components:
+ - type: Transform
+ pos: 19.5,8.5
+ parent: 1
+ - uid: 141
+ components:
+ - type: Transform
+ pos: 20.5,8.5
+ parent: 1
+ - uid: 142
+ components:
+ - type: Transform
+ pos: 21.5,8.5
+ parent: 1
+ - uid: 143
+ components:
+ - type: Transform
+ pos: 21.5,9.5
+ parent: 1
+ - uid: 144
+ components:
+ - type: Transform
+ pos: 20.5,9.5
+ parent: 1
+ - uid: 145
+ components:
+ - type: Transform
+ pos: 19.5,9.5
+ parent: 1
+ - uid: 146
+ components:
+ - type: Transform
+ pos: 21.5,10.5
+ parent: 1
+ - uid: 147
+ components:
+ - type: Transform
+ pos: 14.5,6.5
+ parent: 1
+ - uid: 148
+ components:
+ - type: Transform
+ pos: 14.5,7.5
+ parent: 1
+ - uid: 149
+ components:
+ - type: Transform
+ pos: 13.5,7.5
+ parent: 1
+ - uid: 150
+ components:
+ - type: Transform
+ pos: 13.5,8.5
+ parent: 1
+ - uid: 151
+ components:
+ - type: Transform
+ pos: 14.5,8.5
+ parent: 1
+ - uid: 152
+ components:
+ - type: Transform
+ pos: 16.5,8.5
+ parent: 1
+ - uid: 153
+ components:
+ - type: Transform
+ pos: 15.5,8.5
+ parent: 1
+ - uid: 154
+ components:
+ - type: Transform
+ pos: 15.5,9.5
+ parent: 1
+ - uid: 155
+ components:
+ - type: Transform
+ pos: 14.5,9.5
+ parent: 1
+ - uid: 156
+ components:
+ - type: Transform
+ pos: 13.5,9.5
+ parent: 1
+ - uid: 157
+ components:
+ - type: Transform
+ pos: 12.5,9.5
+ parent: 1
+ - uid: 158
+ components:
+ - type: Transform
+ pos: 8.5,6.5
+ parent: 1
+ - uid: 159
+ components:
+ - type: Transform
+ pos: 9.5,6.5
+ parent: 1
+ - uid: 160
+ components:
+ - type: Transform
+ pos: 9.5,7.5
+ parent: 1
+ - uid: 161
+ components:
+ - type: Transform
+ pos: 8.5,7.5
+ parent: 1
+ - uid: 162
+ components:
+ - type: Transform
+ pos: 7.5,7.5
+ parent: 1
+ - uid: 163
+ components:
+ - type: Transform
+ pos: 6.5,8.5
+ parent: 1
+ - uid: 164
+ components:
+ - type: Transform
+ pos: 7.5,8.5
+ parent: 1
+ - uid: 165
+ components:
+ - type: Transform
+ pos: 8.5,8.5
+ parent: 1
+ - uid: 166
+ components:
+ - type: Transform
+ pos: 9.5,8.5
+ parent: 1
+ - uid: 167
+ components:
+ - type: Transform
+ pos: 8.5,9.5
+ parent: 1
+ - uid: 168
+ components:
+ - type: Transform
+ pos: 9.5,9.5
+ parent: 1
+ - uid: 169
+ components:
+ - type: Transform
+ pos: 9.5,10.5
+ parent: 1
+ - uid: 170
+ components:
+ - type: Transform
+ pos: 10.5,10.5
+ parent: 1
+ - uid: 171
+ components:
+ - type: Transform
+ pos: 10.5,9.5
+ parent: 1
+ - uid: 172
+ components:
+ - type: Transform
+ pos: 2.5,6.5
+ parent: 1
+ - uid: 173
+ components:
+ - type: Transform
+ pos: 3.5,6.5
+ parent: 1
+ - uid: 174
+ components:
+ - type: Transform
+ pos: 3.5,7.5
+ parent: 1
+ - uid: 175
+ components:
+ - type: Transform
+ pos: 2.5,7.5
+ parent: 1
+ - uid: 176
+ components:
+ - type: Transform
+ pos: 1.5,8.5
+ parent: 1
+ - uid: 177
+ components:
+ - type: Transform
+ pos: 2.5,8.5
+ parent: 1
+ - uid: 178
+ components:
+ - type: Transform
+ pos: 2.5,9.5
+ parent: 1
+ - uid: 179
+ components:
+ - type: Transform
+ pos: 1.5,9.5
+ parent: 1
+ - uid: 180
+ components:
+ - type: Transform
+ pos: 1.5,10.5
+ parent: 1
+ - uid: 181
+ components:
+ - type: Transform
+ pos: 2.5,10.5
+ parent: 1
+ - uid: 182
+ components:
+ - type: Transform
+ pos: 3.5,9.5
+ parent: 1
+ - uid: 183
+ components:
+ - type: Transform
+ pos: 3.5,8.5
+ parent: 1
+ - uid: 184
+ components:
+ - type: Transform
+ pos: 4.5,8.5
+ parent: 1
+ - uid: 185
+ components:
+ - type: Transform
+ pos: 4.5,9.5
+ parent: 1
+- proto: NFRockMineralHardRich
+ entities:
+ - uid: 546
+ components:
+ - type: Transform
+ pos: 40.5,38.5
+ parent: 1
+ - uid: 553
+ components:
+ - type: Transform
+ pos: 37.5,36.5
+ parent: 1
+ - uid: 554
+ components:
+ - type: Transform
+ pos: 38.5,36.5
+ parent: 1
+ - uid: 555
+ components:
+ - type: Transform
+ pos: 38.5,37.5
+ parent: 1
+ - uid: 556
+ components:
+ - type: Transform
+ pos: 37.5,37.5
+ parent: 1
+ - uid: 557
+ components:
+ - type: Transform
+ pos: 36.5,37.5
+ parent: 1
+ - uid: 558
+ components:
+ - type: Transform
+ pos: 37.5,38.5
+ parent: 1
+ - uid: 559
+ components:
+ - type: Transform
+ pos: 38.5,38.5
+ parent: 1
+ - uid: 560
+ components:
+ - type: Transform
+ pos: 39.5,38.5
+ parent: 1
+ - uid: 561
+ components:
+ - type: Transform
+ pos: 39.5,37.5
+ parent: 1
+ - uid: 562
+ components:
+ - type: Transform
+ pos: 38.5,39.5
+ parent: 1
+ - uid: 563
+ components:
+ - type: Transform
+ pos: 39.5,39.5
+ parent: 1
+ - uid: 564
+ components:
+ - type: Transform
+ pos: 39.5,40.5
+ parent: 1
+ - uid: 565
+ components:
+ - type: Transform
+ pos: 40.5,39.5
+ parent: 1
+ - uid: 566
+ components:
+ - type: Transform
+ pos: 33.5,36.5
+ parent: 1
+ - uid: 567
+ components:
+ - type: Transform
+ pos: 33.5,37.5
+ parent: 1
+ - uid: 568
+ components:
+ - type: Transform
+ pos: 33.5,38.5
+ parent: 1
+ - uid: 569
+ components:
+ - type: Transform
+ pos: 34.5,38.5
+ parent: 1
+ - uid: 570
+ components:
+ - type: Transform
+ pos: 33.5,39.5
+ parent: 1
+ - uid: 571
+ components:
+ - type: Transform
+ pos: 33.5,40.5
+ parent: 1
+ - uid: 572
+ components:
+ - type: Transform
+ pos: 32.5,39.5
+ parent: 1
+ - uid: 573
+ components:
+ - type: Transform
+ pos: 32.5,38.5
+ parent: 1
+ - uid: 574
+ components:
+ - type: Transform
+ pos: 32.5,37.5
+ parent: 1
+ - uid: 575
+ components:
+ - type: Transform
+ pos: 31.5,38.5
+ parent: 1
+ - uid: 576
+ components:
+ - type: Transform
+ pos: 31.5,39.5
+ parent: 1
+ - uid: 577
+ components:
+ - type: Transform
+ pos: 31.5,40.5
+ parent: 1
+ - uid: 578
+ components:
+ - type: Transform
+ pos: 30.5,38.5
+ parent: 1
+ - uid: 579
+ components:
+ - type: Transform
+ pos: 28.5,38.5
+ parent: 1
+ - uid: 580
+ components:
+ - type: Transform
+ pos: 28.5,40.5
+ parent: 1
+ - uid: 581
+ components:
+ - type: Transform
+ pos: 27.5,40.5
+ parent: 1
+ - uid: 582
+ components:
+ - type: Transform
+ pos: 27.5,39.5
+ parent: 1
+ - uid: 583
+ components:
+ - type: Transform
+ pos: 27.5,38.5
+ parent: 1
+ - uid: 584
+ components:
+ - type: Transform
+ pos: 27.5,37.5
+ parent: 1
+ - uid: 585
+ components:
+ - type: Transform
+ pos: 27.5,36.5
+ parent: 1
+ - uid: 586
+ components:
+ - type: Transform
+ pos: 26.5,37.5
+ parent: 1
+ - uid: 587
+ components:
+ - type: Transform
+ pos: 25.5,37.5
+ parent: 1
+ - uid: 588
+ components:
+ - type: Transform
+ pos: 25.5,38.5
+ parent: 1
+ - uid: 589
+ components:
+ - type: Transform
+ pos: 24.5,38.5
+ parent: 1
+ - uid: 590
+ components:
+ - type: Transform
+ pos: 26.5,38.5
+ parent: 1
+ - uid: 591
+ components:
+ - type: Transform
+ pos: 26.5,39.5
+ parent: 1
+ - uid: 592
+ components:
+ - type: Transform
+ pos: 25.5,39.5
+ parent: 1
+ - uid: 593
+ components:
+ - type: Transform
+ pos: 25.5,40.5
+ parent: 1
+ - uid: 594
+ components:
+ - type: Transform
+ pos: 26.5,40.5
+ parent: 1
+ - uid: 595
+ components:
+ - type: Transform
+ pos: 20.5,36.5
+ parent: 1
+ - uid: 596
+ components:
+ - type: Transform
+ pos: 20.5,37.5
+ parent: 1
+ - uid: 597
+ components:
+ - type: Transform
+ pos: 19.5,37.5
+ parent: 1
+ - uid: 598
+ components:
+ - type: Transform
+ pos: 19.5,38.5
+ parent: 1
+ - uid: 599
+ components:
+ - type: Transform
+ pos: 20.5,38.5
+ parent: 1
+ - uid: 600
+ components:
+ - type: Transform
+ pos: 21.5,38.5
+ parent: 1
+ - uid: 601
+ components:
+ - type: Transform
+ pos: 21.5,39.5
+ parent: 1
+ - uid: 602
+ components:
+ - type: Transform
+ pos: 21.5,40.5
+ parent: 1
+ - uid: 603
+ components:
+ - type: Transform
+ pos: 20.5,39.5
+ parent: 1
+ - uid: 604
+ components:
+ - type: Transform
+ pos: 19.5,39.5
+ parent: 1
+ - uid: 605
+ components:
+ - type: Transform
+ pos: 14.5,36.5
+ parent: 1
+ - uid: 606
+ components:
+ - type: Transform
+ pos: 14.5,37.5
+ parent: 1
+ - uid: 607
+ components:
+ - type: Transform
+ pos: 14.5,38.5
+ parent: 1
+ - uid: 608
+ components:
+ - type: Transform
+ pos: 15.5,38.5
+ parent: 1
+ - uid: 609
+ components:
+ - type: Transform
+ pos: 16.5,38.5
+ parent: 1
+ - uid: 610
+ components:
+ - type: Transform
+ pos: 15.5,39.5
+ parent: 1
+ - uid: 611
+ components:
+ - type: Transform
+ pos: 14.5,39.5
+ parent: 1
+ - uid: 612
+ components:
+ - type: Transform
+ pos: 13.5,39.5
+ parent: 1
+ - uid: 613
+ components:
+ - type: Transform
+ pos: 13.5,38.5
+ parent: 1
+ - uid: 614
+ components:
+ - type: Transform
+ pos: 13.5,37.5
+ parent: 1
+ - uid: 615
+ components:
+ - type: Transform
+ pos: 12.5,39.5
+ parent: 1
+ - uid: 616
+ components:
+ - type: Transform
+ pos: 9.5,36.5
+ parent: 1
+ - uid: 617
+ components:
+ - type: Transform
+ pos: 8.5,36.5
+ parent: 1
+ - uid: 618
+ components:
+ - type: Transform
+ pos: 8.5,37.5
+ parent: 1
+ - uid: 619
+ components:
+ - type: Transform
+ pos: 9.5,37.5
+ parent: 1
+ - uid: 620
+ components:
+ - type: Transform
+ pos: 9.5,38.5
+ parent: 1
+ - uid: 621
+ components:
+ - type: Transform
+ pos: 8.5,38.5
+ parent: 1
+ - uid: 622
+ components:
+ - type: Transform
+ pos: 7.5,38.5
+ parent: 1
+ - uid: 623
+ components:
+ - type: Transform
+ pos: 7.5,37.5
+ parent: 1
+ - uid: 624
+ components:
+ - type: Transform
+ pos: 6.5,38.5
+ parent: 1
+ - uid: 625
+ components:
+ - type: Transform
+ pos: 8.5,39.5
+ parent: 1
+ - uid: 626
+ components:
+ - type: Transform
+ pos: 10.5,39.5
+ parent: 1
+ - uid: 627
+ components:
+ - type: Transform
+ pos: 9.5,39.5
+ parent: 1
+ - uid: 628
+ components:
+ - type: Transform
+ pos: 9.5,40.5
+ parent: 1
+ - uid: 629
+ components:
+ - type: Transform
+ pos: 10.5,40.5
+ parent: 1
+ - uid: 630
+ components:
+ - type: Transform
+ pos: 3.5,36.5
+ parent: 1
+ - uid: 631
+ components:
+ - type: Transform
+ pos: 2.5,36.5
+ parent: 1
+ - uid: 632
+ components:
+ - type: Transform
+ pos: 3.5,37.5
+ parent: 1
+ - uid: 633
+ components:
+ - type: Transform
+ pos: 2.5,37.5
+ parent: 1
+ - uid: 634
+ components:
+ - type: Transform
+ pos: 2.5,38.5
+ parent: 1
+ - uid: 635
+ components:
+ - type: Transform
+ pos: 3.5,38.5
+ parent: 1
+ - uid: 636
+ components:
+ - type: Transform
+ pos: 4.5,38.5
+ parent: 1
+ - uid: 637
+ components:
+ - type: Transform
+ pos: 4.5,39.5
+ parent: 1
+ - uid: 638
+ components:
+ - type: Transform
+ pos: 3.5,39.5
+ parent: 1
+ - uid: 639
+ components:
+ - type: Transform
+ pos: 2.5,39.5
+ parent: 1
+ - uid: 640
+ components:
+ - type: Transform
+ pos: 2.5,40.5
+ parent: 1
+ - uid: 641
+ components:
+ - type: Transform
+ pos: 1.5,40.5
+ parent: 1
+ - uid: 642
+ components:
+ - type: Transform
+ pos: 1.5,38.5
+ parent: 1
+ - uid: 643
+ components:
+ - type: Transform
+ pos: 1.5,39.5
+ parent: 1
+- proto: NFSandMineralHardRich
+ entities:
+ - uid: 462
+ components:
+ - type: Transform
+ pos: 2.5,30.5
+ parent: 1
+ - uid: 463
+ components:
+ - type: Transform
+ pos: 3.5,30.5
+ parent: 1
+ - uid: 464
+ components:
+ - type: Transform
+ pos: 3.5,31.5
+ parent: 1
+ - uid: 465
+ components:
+ - type: Transform
+ pos: 2.5,31.5
+ parent: 1
+ - uid: 466
+ components:
+ - type: Transform
+ pos: 2.5,32.5
+ parent: 1
+ - uid: 467
+ components:
+ - type: Transform
+ pos: 1.5,32.5
+ parent: 1
+ - uid: 468
+ components:
+ - type: Transform
+ pos: 1.5,33.5
+ parent: 1
+ - uid: 469
+ components:
+ - type: Transform
+ pos: 1.5,34.5
+ parent: 1
+ - uid: 470
+ components:
+ - type: Transform
+ pos: 2.5,34.5
+ parent: 1
+ - uid: 471
+ components:
+ - type: Transform
+ pos: 2.5,33.5
+ parent: 1
+ - uid: 472
+ components:
+ - type: Transform
+ pos: 3.5,33.5
+ parent: 1
+ - uid: 473
+ components:
+ - type: Transform
+ pos: 3.5,32.5
+ parent: 1
+ - uid: 474
+ components:
+ - type: Transform
+ pos: 4.5,32.5
+ parent: 1
+ - uid: 475
+ components:
+ - type: Transform
+ pos: 4.5,33.5
+ parent: 1
+ - uid: 476
+ components:
+ - type: Transform
+ pos: 6.5,32.5
+ parent: 1
+ - uid: 477
+ components:
+ - type: Transform
+ pos: 7.5,32.5
+ parent: 1
+ - uid: 478
+ components:
+ - type: Transform
+ pos: 7.5,31.5
+ parent: 1
+ - uid: 479
+ components:
+ - type: Transform
+ pos: 8.5,31.5
+ parent: 1
+ - uid: 480
+ components:
+ - type: Transform
+ pos: 8.5,30.5
+ parent: 1
+ - uid: 481
+ components:
+ - type: Transform
+ pos: 9.5,30.5
+ parent: 1
+ - uid: 482
+ components:
+ - type: Transform
+ pos: 9.5,31.5
+ parent: 1
+ - uid: 483
+ components:
+ - type: Transform
+ pos: 9.5,32.5
+ parent: 1
+ - uid: 484
+ components:
+ - type: Transform
+ pos: 8.5,32.5
+ parent: 1
+ - uid: 485
+ components:
+ - type: Transform
+ pos: 8.5,33.5
+ parent: 1
+ - uid: 486
+ components:
+ - type: Transform
+ pos: 9.5,33.5
+ parent: 1
+ - uid: 487
+ components:
+ - type: Transform
+ pos: 9.5,34.5
+ parent: 1
+ - uid: 488
+ components:
+ - type: Transform
+ pos: 10.5,34.5
+ parent: 1
+ - uid: 489
+ components:
+ - type: Transform
+ pos: 10.5,33.5
+ parent: 1
+ - uid: 490
+ components:
+ - type: Transform
+ pos: 12.5,33.5
+ parent: 1
+ - uid: 491
+ components:
+ - type: Transform
+ pos: 13.5,33.5
+ parent: 1
+ - uid: 492
+ components:
+ - type: Transform
+ pos: 14.5,33.5
+ parent: 1
+ - uid: 493
+ components:
+ - type: Transform
+ pos: 15.5,33.5
+ parent: 1
+ - uid: 494
+ components:
+ - type: Transform
+ pos: 15.5,32.5
+ parent: 1
+ - uid: 495
+ components:
+ - type: Transform
+ pos: 16.5,32.5
+ parent: 1
+ - uid: 496
+ components:
+ - type: Transform
+ pos: 14.5,32.5
+ parent: 1
+ - uid: 497
+ components:
+ - type: Transform
+ pos: 13.5,32.5
+ parent: 1
+ - uid: 498
+ components:
+ - type: Transform
+ pos: 13.5,31.5
+ parent: 1
+ - uid: 499
+ components:
+ - type: Transform
+ pos: 14.5,31.5
+ parent: 1
+ - uid: 500
+ components:
+ - type: Transform
+ pos: 14.5,30.5
+ parent: 1
+ - uid: 501
+ components:
+ - type: Transform
+ pos: 20.5,30.5
+ parent: 1
+ - uid: 502
+ components:
+ - type: Transform
+ pos: 20.5,31.5
+ parent: 1
+ - uid: 503
+ components:
+ - type: Transform
+ pos: 19.5,31.5
+ parent: 1
+ - uid: 504
+ components:
+ - type: Transform
+ pos: 19.5,32.5
+ parent: 1
+ - uid: 505
+ components:
+ - type: Transform
+ pos: 19.5,33.5
+ parent: 1
+ - uid: 506
+ components:
+ - type: Transform
+ pos: 20.5,33.5
+ parent: 1
+ - uid: 507
+ components:
+ - type: Transform
+ pos: 20.5,32.5
+ parent: 1
+ - uid: 508
+ components:
+ - type: Transform
+ pos: 21.5,32.5
+ parent: 1
+ - uid: 509
+ components:
+ - type: Transform
+ pos: 21.5,33.5
+ parent: 1
+ - uid: 510
+ components:
+ - type: Transform
+ pos: 21.5,34.5
+ parent: 1
+ - uid: 511
+ components:
+ - type: Transform
+ pos: 24.5,32.5
+ parent: 1
+ - uid: 512
+ components:
+ - type: Transform
+ pos: 25.5,32.5
+ parent: 1
+ - uid: 513
+ components:
+ - type: Transform
+ pos: 25.5,31.5
+ parent: 1
+ - uid: 514
+ components:
+ - type: Transform
+ pos: 26.5,31.5
+ parent: 1
+ - uid: 515
+ components:
+ - type: Transform
+ pos: 27.5,31.5
+ parent: 1
+ - uid: 516
+ components:
+ - type: Transform
+ pos: 27.5,30.5
+ parent: 1
+ - uid: 517
+ components:
+ - type: Transform
+ pos: 28.5,32.5
+ parent: 1
+ - uid: 518
+ components:
+ - type: Transform
+ pos: 27.5,32.5
+ parent: 1
+ - uid: 519
+ components:
+ - type: Transform
+ pos: 26.5,32.5
+ parent: 1
+ - uid: 520
+ components:
+ - type: Transform
+ pos: 26.5,33.5
+ parent: 1
+ - uid: 521
+ components:
+ - type: Transform
+ pos: 25.5,33.5
+ parent: 1
+ - uid: 522
+ components:
+ - type: Transform
+ pos: 25.5,34.5
+ parent: 1
+ - uid: 523
+ components:
+ - type: Transform
+ pos: 26.5,34.5
+ parent: 1
+ - uid: 524
+ components:
+ - type: Transform
+ pos: 27.5,34.5
+ parent: 1
+ - uid: 525
+ components:
+ - type: Transform
+ pos: 28.5,34.5
+ parent: 1
+ - uid: 526
+ components:
+ - type: Transform
+ pos: 27.5,33.5
+ parent: 1
+ - uid: 527
+ components:
+ - type: Transform
+ pos: 30.5,32.5
+ parent: 1
+ - uid: 528
+ components:
+ - type: Transform
+ pos: 31.5,32.5
+ parent: 1
+ - uid: 529
+ components:
+ - type: Transform
+ pos: 31.5,33.5
+ parent: 1
+ - uid: 530
+ components:
+ - type: Transform
+ pos: 31.5,34.5
+ parent: 1
+ - uid: 531
+ components:
+ - type: Transform
+ pos: 32.5,33.5
+ parent: 1
+ - uid: 532
+ components:
+ - type: Transform
+ pos: 33.5,33.5
+ parent: 1
+ - uid: 533
+ components:
+ - type: Transform
+ pos: 33.5,34.5
+ parent: 1
+ - uid: 534
+ components:
+ - type: Transform
+ pos: 32.5,32.5
+ parent: 1
+ - uid: 535
+ components:
+ - type: Transform
+ pos: 33.5,32.5
+ parent: 1
+ - uid: 536
+ components:
+ - type: Transform
+ pos: 34.5,32.5
+ parent: 1
+ - uid: 537
+ components:
+ - type: Transform
+ pos: 32.5,31.5
+ parent: 1
+ - uid: 538
+ components:
+ - type: Transform
+ pos: 33.5,31.5
+ parent: 1
+ - uid: 539
+ components:
+ - type: Transform
+ pos: 33.5,30.5
+ parent: 1
+ - uid: 540
+ components:
+ - type: Transform
+ pos: 36.5,31.5
+ parent: 1
+ - uid: 541
+ components:
+ - type: Transform
+ pos: 37.5,31.5
+ parent: 1
+ - uid: 542
+ components:
+ - type: Transform
+ pos: 37.5,30.5
+ parent: 1
+ - uid: 543
+ components:
+ - type: Transform
+ pos: 38.5,30.5
+ parent: 1
+ - uid: 544
+ components:
+ - type: Transform
+ pos: 38.5,31.5
+ parent: 1
+ - uid: 545
+ components:
+ - type: Transform
+ pos: 39.5,31.5
+ parent: 1
+ - uid: 547
+ components:
+ - type: Transform
+ pos: 38.5,32.5
+ parent: 1
+ - uid: 548
+ components:
+ - type: Transform
+ pos: 37.5,32.5
+ parent: 1
+ - uid: 549
+ components:
+ - type: Transform
+ pos: 38.5,33.5
+ parent: 1
+ - uid: 550
+ components:
+ - type: Transform
+ pos: 39.5,33.5
+ parent: 1
+ - uid: 551
+ components:
+ - type: Transform
+ pos: 39.5,34.5
+ parent: 1
+ - uid: 552
+ components:
+ - type: Transform
+ pos: 40.5,33.5
+ parent: 1
+ - uid: 644
+ components:
+ - type: Transform
+ pos: 39.5,32.5
+ parent: 1
+ - uid: 645
+ components:
+ - type: Transform
+ pos: 40.5,32.5
+ parent: 1
+...
diff --git a/Resources/Maps/_NF/POI/trade.yml b/Resources/Maps/_NF/POI/trade.yml
index 1fab43e1778..27b2a1d9789 100644
--- a/Resources/Maps/_NF/POI/trade.yml
+++ b/Resources/Maps/_NF/POI/trade.yml
@@ -9219,18 +9219,6 @@ entities:
parent: 1
- proto: CargoPalletSell
entities:
- - uid: 225
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 61.5,22.5
- parent: 1
- - uid: 226
- components:
- - type: Transform
- rot: 3.141592653589793 rad
- pos: 63.5,22.5
- parent: 1
- uid: 228
components:
- type: Transform
@@ -9461,6 +9449,16 @@ entities:
- type: Transform
pos: 81.5,-7.5
parent: 1
+ - uid: 225
+ components:
+ - type: Transform
+ pos: 61.5,22.5
+ parent: 1
+ - uid: 226
+ components:
+ - type: Transform
+ pos: 63.5,22.5
+ parent: 1
- uid: 341
components:
- type: Transform
diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_food.yml b/Resources/Prototypes/Catalog/Cargo/cargo_food.yml
index e1c67ee941c..280d386c87a 100644
--- a/Resources/Prototypes/Catalog/Cargo/cargo_food.yml
+++ b/Resources/Prototypes/Catalog/Cargo/cargo_food.yml
@@ -75,12 +75,13 @@
category: cargoproduct-category-name-food
group: market
-# - type: cargoProduct
- # id: FoodSoftdrinksLarge
- # icon:
- # sprite: Objects/Consumable/Drinks/colabottle.rsi
- # state: icon
- # product: CrateFoodSoftdrinksLarge
- # cost: 2400
- # category: cargoproduct-category-name-food
- # group: market
+- type: cargoProduct
+ id: FoodSoftdrinksLarge
+ abstract: true # Frontier
+ icon:
+ sprite: Objects/Consumable/Drinks/colabottle.rsi
+ state: icon
+ product: CrateFoodSoftdrinksLarge
+ cost: 2400
+ category: cargoproduct-category-name-food
+ group: market
diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml b/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml
index 9475f346ba4..bcdb0e417dc 100644
--- a/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml
+++ b/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml
@@ -130,6 +130,7 @@
- type: cargoProduct
id: ChemistryP
+ abstract: true # Frontier
icon:
sprite: Structures/Storage/Crates/chemcrate_secure.rsi
state: icon
@@ -140,6 +141,7 @@
- type: cargoProduct
id: ChemistryS
+ abstract: true # Frontier
icon:
sprite: Structures/Storage/Crates/chemcrate_secure.rsi
state: icon
@@ -150,6 +152,7 @@
- type: cargoProduct
id: CrateChemistryD
+ abstract: true # Frontier
icon:
sprite: Structures/Storage/Crates/chemcrate_secure.rsi
state: icon
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml
index f09cada8f7e..74692516bbe 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml
@@ -10,8 +10,6 @@
# FoodCondimentPacketSalt: 4 # Frontier - Replaced with big salt
ReagentContainerSalt: 5 # Frontier
ReagentContainerPepper: 5 # Frontier
- DrinkKegPlasticKetchup: 1 # Frontier - Refills
- DrinkKegPlasticMustard: 1 # Frontier - Refills
FoodCondimentBottleEnzyme: 5 # Frontier 2<5
FoodCondimentBottleHotsauce: 2
FoodCondimentBottleKetchup: 2
@@ -19,10 +17,10 @@
FoodCondimentBottleVinegar: 5 # Frontier 2<5
FoodCondimentBottleSoysauce: 5 # Frontier
# ReagentContainerOliveoil: 2 # Frontier - Replaced with OilJarOlive
- OilJarOlive: 3
- OilJarCorn: 3
- OilJarGhee: 3
ReagentContainerMayo: 2
+ OilJarOlive: 1 # Frontier
+ OilJarCorn: 1 # Frontier
+ OilJarGhee: 1 # Frontier
#VariantCubeBox: 3 # Frontier
MonkeyCubeBox: 2 # Frontier
KoboldCubeBox: 2 # Frontier
diff --git a/Resources/Prototypes/Entities/Markers/Spawners/vehicles.yml b/Resources/Prototypes/Entities/Markers/Spawners/vehicles.yml
index d9309d51e7d..8ffba5a01a5 100644
--- a/Resources/Prototypes/Entities/Markers/Spawners/vehicles.yml
+++ b/Resources/Prototypes/Entities/Markers/Spawners/vehicles.yml
@@ -24,7 +24,7 @@
state: keys
- type: ConditionalSpawner
prototypes:
- - VehicleJanicart
+ - NFVehicleJanicart # Frontier: add NF prefix
- type: entity
name: ATV Spawner
@@ -38,7 +38,7 @@
state: keys
- type: ConditionalSpawner
prototypes:
- - VehicleATVNF # Frontier
+ - VehicleATVNF # Frontier: add NF suffix
- type: entity
name: Motobike Spawner
@@ -52,7 +52,7 @@
state: keys
- type: ConditionalSpawner
prototypes:
- - VehicleSkeletonMotorcycleNF # Frontier
+ - VehicleSkeletonMotorcycleNF # Frontier: add NF suffix
- type: entity
name: Wheelchair Spawner
@@ -80,4 +80,4 @@
state: vehicle_folded
- type: ConditionalSpawner
prototypes:
- - VehicleWheelchairFolded
\ No newline at end of file
+ - VehicleWheelchairFolded
diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/cannons.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/cannons.yml
index 4abd8eb53ce..b47277d5407 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/cannons.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/cannons.yml
@@ -76,8 +76,8 @@
- type: entity
id: ShuttleGunKineticCircuitboard
parent: BaseMachineCircuitboard
- name: PTK-800 "Matter Dematerializer" machine board
- description: A machine printed circuit board for an PTK-800 "Matter Dematerializer".
+ name: PTK-1500e "Matter Dematerializer" machine board # Frontier: 800<1500e
+ description: A machine printed circuit board for an PTK-1500e "Matter Dematerializer". # Frontier: 800<1500e
suffix: DO NOT MAP, Machine Board
components:
- type: Sprite
diff --git a/Resources/Prototypes/Entities/Objects/Devices/flatpack.yml b/Resources/Prototypes/Entities/Objects/Devices/flatpack.yml
index 8a6424ffcc7..c6f9c7449f9 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/flatpack.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/flatpack.yml
@@ -35,6 +35,7 @@
cpu_supply: "#A46106"
- type: StaticPrice
price: 250
+ - type: Rotatable # Frontier
- type: entity
parent: BaseFlatpack
diff --git a/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml b/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml
index c0dc2b5ba46..9ab61acc4d2 100644
--- a/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml
+++ b/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml
@@ -89,6 +89,7 @@
parent: BaseVehicleRideable
name: janicart
description: The janitor's trusty steed.
+ abstract: true # Frontier
components:
- type: Vehicle
southOver: true
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml
index 654422a3149..526259ef63a 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml
@@ -309,14 +309,12 @@
types:
Heat: 14
# mining laser real
-# - type: GatheringProjectile # Frontier
+# - type: GatheringProjectile # Frontier - if restoring, add MiningGatheringSoft
- type: Tag
tags:
- EmitterBolt
- type: TimedDespawn
lifetime: 3
- - type: Reflective # Frontier
- reflective: ShuttleKinetic # Frontier
- type: entity
name: watcher bolt
@@ -405,6 +403,7 @@
- type: TimedDespawn
lifetime: 0.4
- type: GatheringProjectile
+ - type: MiningGatheringSoft # Frontier
- type: entity
id: BulletKineticShuttle
@@ -414,11 +413,10 @@
- type: Sprite
noRot: false
sprite: Objects/Weapons/Guns/Projectiles/magic.rsi
+ color: "#FF8888" # Frontier: color it red vs. handheld bolts
layers:
- state: chronobolt
shader: unshaded
- - type: Reflective # Frontier
- reflective: ShuttleKinetic # Frontier
- type: Projectile
impactEffect: BulletImpactEffectKinetic
damage:
@@ -431,9 +429,10 @@
lifetime: 1 # Frontier 1.5<1
- type: PointLight
radius: 2.5
- color: white
+ color: "#FF8888" # Frontier: white
-
+
diff --git a/Resources/Textures/_NF/Objects/Devices/flatpack.rsi/command_airlock_directional.png b/Resources/Textures/_NF/Objects/Devices/flatpack.rsi/command_airlock_directional.png
new file mode 100644
index 00000000000..49f01a01d36
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Devices/flatpack.rsi/command_airlock_directional.png differ
diff --git a/Resources/Textures/_NF/Objects/Devices/flatpack.rsi/meta.json b/Resources/Textures/_NF/Objects/Devices/flatpack.rsi/meta.json
index f19ad0797f0..435f2645b5b 100644
--- a/Resources/Textures/_NF/Objects/Devices/flatpack.rsi/meta.json
+++ b/Resources/Textures/_NF/Objects/Devices/flatpack.rsi/meta.json
@@ -19,6 +19,9 @@
{
"name": "command_airlock"
},
+ {
+ "name": "command_airlock_directional"
+ },
{
"name": "command_server"
},
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/black.rsi/icon.png b/Resources/Textures/_NF/Objects/Storage/Barrels/black.rsi/icon.png
new file mode 100644
index 00000000000..ee1382a4809
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/black.rsi/icon.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/black.rsi/icon_open.png b/Resources/Textures/_NF/Objects/Storage/Barrels/black.rsi/icon_open.png
new file mode 100644
index 00000000000..9cc195f27d0
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/black.rsi/icon_open.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/black.rsi/meta.json b/Resources/Textures/_NF/Objects/Storage/Barrels/black.rsi/meta.json
new file mode 100644
index 00000000000..a6e9f155347
--- /dev/null
+++ b/Resources/Textures/_NF/Objects/Storage/Barrels/black.rsi/meta.json
@@ -0,0 +1,23 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from tgstation PR https://github.com/tgstation/tgstation/pull/38977, modified by rosieposieeee & whatston3",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "icon_open"
+ },
+ {
+ "name": "paper"
+ },
+ {
+ "name": "metal_explosive_label"
+ }
+ ]
+}
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/black.rsi/metal_explosive_label.png b/Resources/Textures/_NF/Objects/Storage/Barrels/black.rsi/metal_explosive_label.png
new file mode 100644
index 00000000000..b1b977b07e8
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/black.rsi/metal_explosive_label.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/black.rsi/paper.png b/Resources/Textures/_NF/Objects/Storage/Barrels/black.rsi/paper.png
new file mode 100644
index 00000000000..08d7f696fec
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/black.rsi/paper.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/blue.rsi/icon.png b/Resources/Textures/_NF/Objects/Storage/Barrels/blue.rsi/icon.png
new file mode 100644
index 00000000000..1bf90ce9918
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/blue.rsi/icon.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/blue.rsi/icon_open.png b/Resources/Textures/_NF/Objects/Storage/Barrels/blue.rsi/icon_open.png
new file mode 100644
index 00000000000..9cc195f27d0
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/blue.rsi/icon_open.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/blue.rsi/meta.json b/Resources/Textures/_NF/Objects/Storage/Barrels/blue.rsi/meta.json
new file mode 100644
index 00000000000..a6e9f155347
--- /dev/null
+++ b/Resources/Textures/_NF/Objects/Storage/Barrels/blue.rsi/meta.json
@@ -0,0 +1,23 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from tgstation PR https://github.com/tgstation/tgstation/pull/38977, modified by rosieposieeee & whatston3",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "icon_open"
+ },
+ {
+ "name": "paper"
+ },
+ {
+ "name": "metal_explosive_label"
+ }
+ ]
+}
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/blue.rsi/metal_explosive_label.png b/Resources/Textures/_NF/Objects/Storage/Barrels/blue.rsi/metal_explosive_label.png
new file mode 100644
index 00000000000..b1b977b07e8
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/blue.rsi/metal_explosive_label.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/blue.rsi/paper.png b/Resources/Textures/_NF/Objects/Storage/Barrels/blue.rsi/paper.png
new file mode 100644
index 00000000000..08d7f696fec
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/blue.rsi/paper.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/green.rsi/icon.png b/Resources/Textures/_NF/Objects/Storage/Barrels/green.rsi/icon.png
new file mode 100644
index 00000000000..101ec3f6d1b
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/green.rsi/icon.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/green.rsi/icon_open.png b/Resources/Textures/_NF/Objects/Storage/Barrels/green.rsi/icon_open.png
new file mode 100644
index 00000000000..9cc195f27d0
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/green.rsi/icon_open.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/green.rsi/meta.json b/Resources/Textures/_NF/Objects/Storage/Barrels/green.rsi/meta.json
new file mode 100644
index 00000000000..a6e9f155347
--- /dev/null
+++ b/Resources/Textures/_NF/Objects/Storage/Barrels/green.rsi/meta.json
@@ -0,0 +1,23 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from tgstation PR https://github.com/tgstation/tgstation/pull/38977, modified by rosieposieeee & whatston3",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "icon_open"
+ },
+ {
+ "name": "paper"
+ },
+ {
+ "name": "metal_explosive_label"
+ }
+ ]
+}
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/green.rsi/metal_explosive_label.png b/Resources/Textures/_NF/Objects/Storage/Barrels/green.rsi/metal_explosive_label.png
new file mode 100644
index 00000000000..b1b977b07e8
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/green.rsi/metal_explosive_label.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/green.rsi/paper.png b/Resources/Textures/_NF/Objects/Storage/Barrels/green.rsi/paper.png
new file mode 100644
index 00000000000..08d7f696fec
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/green.rsi/paper.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/grey.rsi/icon.png b/Resources/Textures/_NF/Objects/Storage/Barrels/grey.rsi/icon.png
new file mode 100644
index 00000000000..a417ce2e29c
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/grey.rsi/icon.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/grey.rsi/icon_open.png b/Resources/Textures/_NF/Objects/Storage/Barrels/grey.rsi/icon_open.png
new file mode 100644
index 00000000000..9cc195f27d0
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/grey.rsi/icon_open.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/grey.rsi/meta.json b/Resources/Textures/_NF/Objects/Storage/Barrels/grey.rsi/meta.json
new file mode 100644
index 00000000000..a6e9f155347
--- /dev/null
+++ b/Resources/Textures/_NF/Objects/Storage/Barrels/grey.rsi/meta.json
@@ -0,0 +1,23 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from tgstation PR https://github.com/tgstation/tgstation/pull/38977, modified by rosieposieeee & whatston3",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "icon_open"
+ },
+ {
+ "name": "paper"
+ },
+ {
+ "name": "metal_explosive_label"
+ }
+ ]
+}
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/grey.rsi/metal_explosive_label.png b/Resources/Textures/_NF/Objects/Storage/Barrels/grey.rsi/metal_explosive_label.png
new file mode 100644
index 00000000000..b1b977b07e8
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/grey.rsi/metal_explosive_label.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/grey.rsi/paper.png b/Resources/Textures/_NF/Objects/Storage/Barrels/grey.rsi/paper.png
new file mode 100644
index 00000000000..08d7f696fec
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/grey.rsi/paper.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/red.rsi/icon.png b/Resources/Textures/_NF/Objects/Storage/Barrels/red.rsi/icon.png
new file mode 100644
index 00000000000..6c37208bcfa
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/red.rsi/icon.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/red.rsi/icon_open.png b/Resources/Textures/_NF/Objects/Storage/Barrels/red.rsi/icon_open.png
new file mode 100644
index 00000000000..9cc195f27d0
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/red.rsi/icon_open.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/red.rsi/meta.json b/Resources/Textures/_NF/Objects/Storage/Barrels/red.rsi/meta.json
new file mode 100644
index 00000000000..a6e9f155347
--- /dev/null
+++ b/Resources/Textures/_NF/Objects/Storage/Barrels/red.rsi/meta.json
@@ -0,0 +1,23 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from tgstation PR https://github.com/tgstation/tgstation/pull/38977, modified by rosieposieeee & whatston3",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "icon_open"
+ },
+ {
+ "name": "paper"
+ },
+ {
+ "name": "metal_explosive_label"
+ }
+ ]
+}
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/red.rsi/metal_explosive_label.png b/Resources/Textures/_NF/Objects/Storage/Barrels/red.rsi/metal_explosive_label.png
new file mode 100644
index 00000000000..b1b977b07e8
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/red.rsi/metal_explosive_label.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/red.rsi/paper.png b/Resources/Textures/_NF/Objects/Storage/Barrels/red.rsi/paper.png
new file mode 100644
index 00000000000..08d7f696fec
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/red.rsi/paper.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/white.rsi/icon.png b/Resources/Textures/_NF/Objects/Storage/Barrels/white.rsi/icon.png
new file mode 100644
index 00000000000..c935fef87d4
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/white.rsi/icon.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/white.rsi/icon_open.png b/Resources/Textures/_NF/Objects/Storage/Barrels/white.rsi/icon_open.png
new file mode 100644
index 00000000000..9cc195f27d0
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/white.rsi/icon_open.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/white.rsi/meta.json b/Resources/Textures/_NF/Objects/Storage/Barrels/white.rsi/meta.json
new file mode 100644
index 00000000000..a6e9f155347
--- /dev/null
+++ b/Resources/Textures/_NF/Objects/Storage/Barrels/white.rsi/meta.json
@@ -0,0 +1,23 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from tgstation PR https://github.com/tgstation/tgstation/pull/38977, modified by rosieposieeee & whatston3",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "icon_open"
+ },
+ {
+ "name": "paper"
+ },
+ {
+ "name": "metal_explosive_label"
+ }
+ ]
+}
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/white.rsi/metal_explosive_label.png b/Resources/Textures/_NF/Objects/Storage/Barrels/white.rsi/metal_explosive_label.png
new file mode 100644
index 00000000000..b1b977b07e8
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/white.rsi/metal_explosive_label.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/white.rsi/paper.png b/Resources/Textures/_NF/Objects/Storage/Barrels/white.rsi/paper.png
new file mode 100644
index 00000000000..08d7f696fec
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/white.rsi/paper.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/wood.rsi/closed.png b/Resources/Textures/_NF/Objects/Storage/Barrels/wood.rsi/closed.png
new file mode 100644
index 00000000000..b111827b8e5
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/wood.rsi/closed.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/wood.rsi/icon.png b/Resources/Textures/_NF/Objects/Storage/Barrels/wood.rsi/icon.png
new file mode 100644
index 00000000000..bfc92c166d4
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/wood.rsi/icon.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/wood.rsi/meta.json b/Resources/Textures/_NF/Objects/Storage/Barrels/wood.rsi/meta.json
new file mode 100644
index 00000000000..8e941fd7d61
--- /dev/null
+++ b/Resources/Textures/_NF/Objects/Storage/Barrels/wood.rsi/meta.json
@@ -0,0 +1,20 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from tgstation PR https://github.com/tgstation/tgstation/pull/38977, modified by rosieposieeee",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "closed"
+ },
+ {
+ "name": "open"
+ },
+ {
+ "name": "icon"
+ }
+ ]
+}
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/wood.rsi/open.png b/Resources/Textures/_NF/Objects/Storage/Barrels/wood.rsi/open.png
new file mode 100644
index 00000000000..bfc92c166d4
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/wood.rsi/open.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/yellow.rsi/icon.png b/Resources/Textures/_NF/Objects/Storage/Barrels/yellow.rsi/icon.png
new file mode 100644
index 00000000000..a22bef0ff3f
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/yellow.rsi/icon.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/yellow.rsi/icon_open.png b/Resources/Textures/_NF/Objects/Storage/Barrels/yellow.rsi/icon_open.png
new file mode 100644
index 00000000000..9cc195f27d0
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/yellow.rsi/icon_open.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/yellow.rsi/meta.json b/Resources/Textures/_NF/Objects/Storage/Barrels/yellow.rsi/meta.json
new file mode 100644
index 00000000000..a6e9f155347
--- /dev/null
+++ b/Resources/Textures/_NF/Objects/Storage/Barrels/yellow.rsi/meta.json
@@ -0,0 +1,23 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from tgstation PR https://github.com/tgstation/tgstation/pull/38977, modified by rosieposieeee & whatston3",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "icon_open"
+ },
+ {
+ "name": "paper"
+ },
+ {
+ "name": "metal_explosive_label"
+ }
+ ]
+}
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/yellow.rsi/metal_explosive_label.png b/Resources/Textures/_NF/Objects/Storage/Barrels/yellow.rsi/metal_explosive_label.png
new file mode 100644
index 00000000000..b1b977b07e8
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/yellow.rsi/metal_explosive_label.png differ
diff --git a/Resources/Textures/_NF/Objects/Storage/Barrels/yellow.rsi/paper.png b/Resources/Textures/_NF/Objects/Storage/Barrels/yellow.rsi/paper.png
new file mode 100644
index 00000000000..08d7f696fec
Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Barrels/yellow.rsi/paper.png differ
diff --git a/Resources/_NF/migration.yml b/Resources/_NF/migration.yml
index 5097766ff00..08df7cb5dee 100644
--- a/Resources/_NF/migration.yml
+++ b/Resources/_NF/migration.yml
@@ -169,4 +169,10 @@ NFPosterContrabandFsbSpiritDD: NFPosterContrabandFsbSpirit
NFPosterContrabandEmsCoordsDD: NFPosterContrabandEmsCoords
# 2024-12-09 Wreck
-RandomItem: null
\ No newline at end of file
+RandomItem: null
+
+# 2024-12-14
+VehicleJanicart: NFVehicleJanicart
+
+# 2024-12-22 Barrels
+CrateSpaceCleaner: ChemicalBarrelSpaceCleaner
diff --git a/Resources/migration.yml b/Resources/migration.yml
index 39e8d54bf1d..e394d3aa118 100644
--- a/Resources/migration.yml
+++ b/Resources/migration.yml
@@ -440,3 +440,5 @@ BlueprintFlare: null
# 2024-10-04
BaseAdvancedPen: Pen
+
+# Frontier: put Frontier-related migrations in _NF/migration.yml. Thank you.