diff --git a/Content.Client/Entry/EntryPoint.cs b/Content.Client/Entry/EntryPoint.cs index 7043970921..6067b2425a 100644 --- a/Content.Client/Entry/EntryPoint.cs +++ b/Content.Client/Entry/EntryPoint.cs @@ -94,6 +94,7 @@ namespace Content.Client.Entry prototypes.RegisterIgnore("advertisementsPack"); prototypes.RegisterIgnore("metabolizerType"); prototypes.RegisterIgnore("metabolismGroup"); + prototypes.RegisterIgnore("salvageMap"); ClientContentIoC.Register(); diff --git a/Content.Client/Entry/IgnoredComponents.cs b/Content.Client/Entry/IgnoredComponents.cs index 48d30e0eea..3322a880d1 100644 --- a/Content.Client/Entry/IgnoredComponents.cs +++ b/Content.Client/Entry/IgnoredComponents.cs @@ -126,6 +126,8 @@ namespace Content.Client.Entry "Toys", "SurgeryTool", "EmitSoundOnThrow", + "Salvage", + "SalvageMagnet", "Flash", "Docking", "Telecrystal", diff --git a/Content.Server/Atmos/Commands/FixGridAtmos.cs b/Content.Server/Atmos/Commands/FixGridAtmos.cs index 4dd76ba00c..b0a6fee2ac 100644 --- a/Content.Server/Atmos/Commands/FixGridAtmos.cs +++ b/Content.Server/Atmos/Commands/FixGridAtmos.cs @@ -29,7 +29,7 @@ namespace Content.Server.Atmos.Commands var entityManager = IoCManager.Resolve(); var atmosphereSystem = EntitySystem.Get(); - var mixtures = new GasMixture[5]; + var mixtures = new GasMixture[6]; for (var i = 0; i < mixtures.Length; i++) mixtures[i] = new GasMixture(Atmospherics.CellVolume) { Temperature = Atmospherics.T20C }; @@ -48,6 +48,11 @@ namespace Content.Server.Atmos.Commands // 4: Plasma (GM) mixtures[4].AdjustMoles(Gas.Plasma, Atmospherics.MolesCellGasMiner); + // 5: Instant Plasmafire (r) + mixtures[5].AdjustMoles(Gas.Oxygen, Atmospherics.MolesCellGasMiner); + mixtures[5].AdjustMoles(Gas.Plasma, Atmospherics.MolesCellGasMiner); + mixtures[5].Temperature = 5000f; + foreach (var gid in args) { // I like offering detailed error messages, that's why I don't use one of the extension methods. diff --git a/Content.Server/Salvage/CallSalvageCommand.cs b/Content.Server/Salvage/CallSalvageCommand.cs new file mode 100644 index 0000000000..3a8faf9b56 --- /dev/null +++ b/Content.Server/Salvage/CallSalvageCommand.cs @@ -0,0 +1,70 @@ +using Content.Shared.Administration; +using Content.Server.Administration; +using Robust.Shared.Console; +using Robust.Shared.GameObjects; +using Robust.Shared.IoC; +using Robust.Shared.Localization; + +namespace Content.Server.Salvage +{ + [AdminCommand(AdminFlags.Admin)] + public class CallSalvageCommand : IConsoleCommand + { + public string Command => "callsalvage"; + public string Description => "Starts salvage."; + public string Help => "Usage: callsalvage"; + + public void Execute(IConsoleShell shell, string argStr, string[] args) + { + if (args.Length != 0) + { + shell.WriteError(Loc.GetString("shell-wrong-arguments-number")); + return; + } + shell.WriteLine(EntitySystem.Get().CallSalvage()); + } + } + + [AdminCommand(AdminFlags.Admin)] + public class RecallSalvageCommand : IConsoleCommand + { + public string Command => "recallsalvage"; + public string Description => "Forcibly recalls salvage."; + public string Help => "Usage: recallsalvage"; + + public void Execute(IConsoleShell shell, string argStr, string[] args) + { + if (args.Length != 0) + { + shell.WriteError(Loc.GetString("shell-wrong-arguments-number")); + return; + } + shell.WriteLine(EntitySystem.Get().ReturnSalvage()); + } + } + + [AdminCommand(AdminFlags.Admin)] + public class RecallSalvageNowCommand : IConsoleCommand + { + public string Command => "recallsalvagefinishnow"; + public string Description => "Forcibly stops salvage immediately (will delete - good for testing)."; + public string Help => "Usage: recallsalvagefinishnow"; + + public void Execute(IConsoleShell shell, string argStr, string[] args) + { + if (args.Length != 0) + { + shell.WriteError(Loc.GetString("shell-wrong-arguments-number")); + return; + } + var salvageSystem = EntitySystem.Get(); + if ((salvageSystem.State != SalvageSystemState.Active) && (salvageSystem.State != SalvageSystemState.LettingGo)) + { + shell.WriteError("Incorrect state (must be in active or letting-go state)"); + return; + } + salvageSystem.DeleteSalvage(); + } + } +} + diff --git a/Content.Server/Salvage/SalvageComponent.cs b/Content.Server/Salvage/SalvageComponent.cs new file mode 100644 index 0000000000..9d4a58887f --- /dev/null +++ b/Content.Server/Salvage/SalvageComponent.cs @@ -0,0 +1,33 @@ +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Content.Server.NodeContainer.NodeGroups; +using Content.Server.NodeContainer.Nodes; +using Content.Shared.Examine; +using Robust.Shared.GameObjects; +using Robust.Shared.Localization; +using Robust.Shared.Serialization.Manager.Attributes; +using Robust.Shared.Utility; +using Robust.Shared.ViewVariables; + +namespace Content.Server.Salvage +{ + /// + /// Mmmm, salvage + /// To be clear, this component is SUPPOSED to later handle magnet attraction. + /// + [RegisterComponent] + [ComponentProtoName("Salvage")] + public class SalvageComponent : Component + { + /// + /// Set this when salvage is no longer held by the magnet. + /// This starts the countdown to complete destruction. + /// + [ViewVariables] public bool Killswitch = false; + + /// + /// Time killswitch has been active for. + /// + [ViewVariables] public float KillswitchTime = 0.0f; + } +} diff --git a/Content.Server/Salvage/SalvageMagnetComponent.cs b/Content.Server/Salvage/SalvageMagnetComponent.cs new file mode 100644 index 0000000000..cded746d5c --- /dev/null +++ b/Content.Server/Salvage/SalvageMagnetComponent.cs @@ -0,0 +1,30 @@ +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Content.Server.NodeContainer.NodeGroups; +using Content.Server.NodeContainer.Nodes; +using Content.Shared.Examine; +using Robust.Shared.GameObjects; +using Robust.Shared.Localization; +using Robust.Shared.Serialization.Manager.Attributes; +using Robust.Shared.Utility; +using Robust.Shared.ViewVariables; +using Robust.Shared.Maths; + +namespace Content.Server.Salvage +{ + /// + /// A salvage magnet. + /// + [RegisterComponent] + [ComponentProtoName("SalvageMagnet")] + public class SalvageMagnetComponent : Component + { + /// + /// Offset relative to magnet that salvage should spawn. + /// Keep in sync with marker sprite (if any???) + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField("offset")] + public Vector2 Offset = Vector2.Zero; + } +} diff --git a/Content.Server/Salvage/SalvageMapPrototype.cs b/Content.Server/Salvage/SalvageMapPrototype.cs new file mode 100644 index 0000000000..98122fd903 --- /dev/null +++ b/Content.Server/Salvage/SalvageMapPrototype.cs @@ -0,0 +1,38 @@ +using System.Collections.Generic; +using System.Linq; +using Content.Server.Objectives.Interfaces; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.Manager.Attributes; +using Robust.Shared.ViewVariables; + +namespace Content.Server.Salvage +{ + [Prototype("salvageMap")] + public class SalvageMapPrototype : IPrototype + { + [ViewVariables] + [DataField("id", required: true)] + public string ID { get; } = default!; + + /// + /// Relative directory path to the given map, i.e. `Maps/Salvage/test.yml` + /// + [ViewVariables] + [DataField("mapPath", required: true)] + public string MapPath { get; } = default!; + + /// + /// Size *from 0,0* in units of the map (used to determine if it fits) + /// + [ViewVariables] + [DataField("size", required: true)] + public float Size { get; } = 1.0f; + + /// + /// Name for admin use + /// + [ViewVariables] + [DataField("name")] + public string Name { get; } = ""; + } +} diff --git a/Content.Server/Salvage/SalvageSystem.cs b/Content.Server/Salvage/SalvageSystem.cs new file mode 100644 index 0000000000..e051b45b5d --- /dev/null +++ b/Content.Server/Salvage/SalvageSystem.cs @@ -0,0 +1,310 @@ +using System; +using System.Linq; +using System.Collections.Generic; +using System.Threading; +using Content.Server.Administration.Logs; +using Content.Server.Chat.Managers; +using Content.Server.GameTicking; +using Content.Shared.Administration.Logs; +using Content.Shared.CCVar; +using Content.Shared.Database; +using Content.Shared.Examine; +using Content.Shared.GameTicking; +using Content.Shared.Interaction; +using Content.Shared.Hands.Components; +using Content.Shared.Popups; +using Robust.Server.Player; +using Robust.Server.Maps; +using Robust.Shared.Audio; +using Robust.Shared.Configuration; +using Robust.Shared.Map; +using Robust.Shared.Log; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; +using Robust.Shared.GameObjects; +using Robust.Shared.ViewVariables; +using Robust.Shared.IoC; +using Robust.Shared.Maths; +using Robust.Shared.Localization; +using Robust.Shared.Player; +using Robust.Shared.Physics; +using Robust.Shared.Timing; + +namespace Content.Server.Salvage +{ + public class SalvageSystem : EntitySystem + { + [Dependency] private readonly IChatManager _chatManager = default!; + [Dependency] private readonly IMapLoader _mapLoader = default!; + [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly IConfigurationManager _configurationManager = default!; + [Dependency] private readonly SharedPhysicsSystem _physicsSystem = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly SharedPopupSystem _popupSystem = default!; + + [ViewVariables] + public EntityUid PulledObject = EntityUid.Invalid; + + [ViewVariables] + public SalvageSystemState State = SalvageSystemState.Inactive; + + [ViewVariables] + public float StateTimer = 0.0f; + + public const float PullInTimer = 2.0f; + public const float HoldTimer = 240.0f; + public const float LeaveTimer = 60.0f; + public const float AngularVelocityRangeRadians = 0.25f; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(Reset); + SubscribeLocalEvent(OnInteractHand); + SubscribeLocalEvent(OnExamined); + } + + private void OnExamined(EntityUid uid, SalvageMagnetComponent comp, ExaminedEvent args) + { + if (!args.IsInDetailsRange) + return; + + switch (State) + { + case SalvageSystemState.Inactive: + args.PushMarkup(Loc.GetString("salvage-system-magnet-examined-inactive")); + break; + case SalvageSystemState.PullingIn: + args.PushMarkup(Loc.GetString("salvage-system-magnet-examined-pulling-in")); + break; + case SalvageSystemState.Active: + args.PushMarkup(Loc.GetString("salvage-system-magnet-examined-active", ("timeLeft", Math.Floor(StateTimer)))); + break; + case SalvageSystemState.LettingGo: + args.PushMarkup(Loc.GetString("salvage-system-magnet-examined-letting-go")); + break; + } + } + + private void Reset(RoundRestartCleanupEvent ev) + { + PulledObject = EntityUid.Invalid; + State = SalvageSystemState.Inactive; + StateTimer = 0.0f; + } + + private void OnInteractHand(EntityUid uid, SalvageMagnetComponent sm, InteractHandEvent args) + { + if (args.Handled) + return; + args.Handled = true; + _popupSystem.PopupEntity(CallSalvage(), uid, Filter.Entities(args.User.Uid)); + } + + private bool TryGetSalvagePlacementLocation(out MapCoordinates coords, out Angle angle) + { + coords = MapCoordinates.Nullspace; + angle = Angle.Zero; + foreach (var (smc, tsc) in EntityManager.EntityQuery(true)) + { + coords = new EntityCoordinates(smc.OwnerUid, smc.Offset).ToMap(EntityManager); + var grid = tsc.GridID; + if (grid != GridId.Invalid) + { + // Has a valid grid - synchronize angle so that salvage doesn't have to deal with cross-grid manipulation issues + angle = _mapManager.GetGrid(grid).WorldRotation; + } + return true; + } + return false; + } + + private IEnumerable GetAllSalvageMaps() + { + return _prototypeManager.EnumeratePrototypes(); + } + + // String is announced + private string SpawnSalvage() + { + // In case of failure + State = SalvageSystemState.Inactive; + + if (!TryGetSalvagePlacementLocation(out var spl, out var spAngle)) + { + return Loc.GetString("salvage-system-announcement-spawn-magnet-lost"); + } + + SalvageMapPrototype? map = null; + + var forcedSalvage = _configurationManager.GetCVar(CCVars.SalvageForced); + List allSalvageMaps; + if (string.IsNullOrWhiteSpace(forcedSalvage)) + { + allSalvageMaps = GetAllSalvageMaps().ToList(); + } + else + { + allSalvageMaps = new(); + if (_prototypeManager.TryIndex(forcedSalvage, out map)) + { + allSalvageMaps.Add(map); + } + else + { + Logger.ErrorS("c.s.salvage", $"Unable to get forced salvage map prototype {forcedSalvage}"); + } + } + for (var i = 0; i < allSalvageMaps.Count; i++) + { + map = _random.PickAndTake(allSalvageMaps); + + var box2 = Box2.CenteredAround(spl.Position, new Vector2(map.Size * 2.0f, map.Size * 2.0f)); + var box2rot = new Box2Rotated(box2, spAngle, spl.Position); + if (_physicsSystem.GetCollidingEntities(spl.MapId, in box2rot).Select(x => EntityManager.HasComponent(x.OwnerUid)).Count() > 0) + { + // collided: set map to null so we don't spawn it + map = null; + } + else + { + break; + } + } + + if (map == null) + { + return Loc.GetString("salvage-system-announcement-spawn-no-debris-available"); + } + + var bp = _mapLoader.LoadBlueprint(spl.MapId, map.MapPath); + if (bp == null) + { + return Loc.GetString("salvage-system-announcement-spawn-debris-disintegrated"); + } + + PulledObject = bp.GridEntityId; + EntityManager.AddComponent(PulledObject); + + var pulledTransform = EntityManager.GetComponent(PulledObject); + pulledTransform.Coordinates = EntityCoordinates.FromMap(_mapManager, spl); + pulledTransform.WorldRotation = spAngle; + + // Alright, salvage magnet is active. + State = SalvageSystemState.Active; + StateTimer = HoldTimer; + return Loc.GetString("salvage-system-announcement-arrived", ("timeLeft", StateTimer)); + } + + private void PulledObjectDeathOrCaptureMonitor() + { + // This code runs in Active and LettingGo states. + // It catches the situation when the pulled object is deleted by the killswitch, + // and the situation when the salvage component is removed by admin intervention (officially a "capture") + if (!EntityManager.EntityExists(PulledObject)) + { + State = SalvageSystemState.Inactive; + PulledObject = EntityUid.Invalid; + _chatManager.DispatchStationAnnouncement(Loc.GetString("salvage-system-announcement-lost"), Loc.GetString("salvage-system-announcement-source")); + } + else if (!EntityManager.HasComponent(PulledObject)) + { + State = SalvageSystemState.Inactive; + PulledObject = EntityUid.Invalid; + _chatManager.DispatchStationAnnouncement(Loc.GetString("salvage-system-announcement-captured"), Loc.GetString("salvage-system-announcement-source")); + } + } + + public override void Update(float frameTime) + { + switch (State) + { + case SalvageSystemState.Inactive: + break; + case SalvageSystemState.PullingIn: + StateTimer -= frameTime; + if (StateTimer <= 0.0f) + { + string report = SpawnSalvage(); + _chatManager.DispatchStationAnnouncement(report, Loc.GetString("salvage-system-announcement-source")); + } + break; + case SalvageSystemState.Active: + // magnet power usage = base + (time² * factor) + // write base and factor into prototype!!! + // also determine if magnet is unpowered and if so auto-lose??? + // CURRENTLY: + StateTimer -= frameTime; + if (StateTimer <= 0.0f) + { + ReturnSalvage(); + } + PulledObjectDeathOrCaptureMonitor(); + break; + case SalvageSystemState.LettingGo: + PulledObjectDeathOrCaptureMonitor(); + break; + } + foreach (var smc in EntityManager.EntityQuery(true)) + { + if (smc.Killswitch) + { + smc.KillswitchTime += frameTime; + if (smc.KillswitchTime >= LeaveTimer) + { + EntityManager.QueueDeleteEntity(smc.OwnerUid); + } + } + } + } + + public string CallSalvage() + { + // State error reports + if (State == SalvageSystemState.LettingGo) + return Loc.GetString("salvage-system-report-cooling-down"); + if (State != SalvageSystemState.Inactive) + return Loc.GetString("salvage-system-report-already-active"); + // Confirm + State = SalvageSystemState.PullingIn; + StateTimer = PullInTimer; + return Loc.GetString("salvage-system-report-activate-success"); + } + + public string ReturnSalvage() + { + if (State != SalvageSystemState.Active) + return Loc.GetString("salvage-system-report-not-active"); + // Confirm + State = SalvageSystemState.LettingGo; + // Enable killswitch, announce, report success + if (EntityManager.TryGetComponent(PulledObject, out var salvage)) + { + // Schedule this to auto-delete (and ideally fly away from the station???) + salvage.Killswitch = true; + // Note "losing" is only given on killswitch activation. + // The capture message will be given instead if the salvage component is missing. + _chatManager.DispatchStationAnnouncement(Loc.GetString("salvage-system-announcement-losing", ("timeLeft", LeaveTimer)), Loc.GetString("salvage-system-announcement-source")); + } + return Loc.GetString("salvage-system-report-deactivate-success"); + } + + public void DeleteSalvage() + { + if ((State != SalvageSystemState.Active) && (State != SalvageSystemState.LettingGo)) + return; + EntityManager.QueueDeleteEntity(PulledObject); + } + } + + public enum SalvageSystemState + { + Inactive, + PullingIn, // Timer: Time left to completion + Active, // Timer: Time left to letting go + LettingGo + } +} + diff --git a/Content.Shared/CCVar/CCVars.cs b/Content.Shared/CCVar/CCVars.cs index 3986dfbfd4..dd22151212 100644 --- a/Content.Shared/CCVar/CCVars.cs +++ b/Content.Shared/CCVar/CCVars.cs @@ -575,5 +575,15 @@ namespace Content.Shared.CCVar /// public static readonly CVarDef RestrictedNames = CVarDef.Create("ic.restricted_names", true, CVar.SERVER | CVar.REPLICATED); + + /* + * Salvage + */ + + /// + /// Forced salvage map prototype name (if empty, randomly selected) + /// + public static readonly CVarDef + SalvageForced = CVarDef.Create("salvage.forced", "", CVar.SERVERONLY); } } diff --git a/Resources/Locale/en-US/salvage/salvage-system.ftl b/Resources/Locale/en-US/salvage/salvage-system.ftl new file mode 100644 index 0000000000..137fd492d4 --- /dev/null +++ b/Resources/Locale/en-US/salvage/salvage-system.ftl @@ -0,0 +1,22 @@ +salvage-system-announcement-source = Salvage Control System +salvage-system-announcement-arrived = A piece of salvagable debris has been pulled in. Estimate: Can hold for {$timeLeft} seconds. +salvage-system-announcement-losing = The magnet is no longer able to hold the salvagable debris. Estimate: {$timeLeft} seconds to complete loss. +salvage-system-announcement-lost = The salvagable debris has been lost. +salvage-system-announcement-captured = The salvagable debris has been successfully captured. + +salvage-system-announcement-spawn-magnet-lost = The salvage magnet has been lost. +salvage-system-announcement-spawn-no-debris-available = No debris could be recovered by the salvage magnet. +salvage-system-announcement-spawn-debris-disintegrated = Debris disintegrated during orbital transfer. + +salvage-system-report-already-active = The salvage magnet is already active. +salvage-system-report-cooling-down = The salvage magnet is cooling down. +salvage-system-report-activate-success = The salvage magnet is pulling in a piece of debris! + +salvage-system-report-not-active = No object / not stably pulled in +salvage-system-report-deactivate-success = The salvage magnet has been deactivated. + +salvage-system-magnet-examined-inactive = The salvage magnet is inactive. +salvage-system-magnet-examined-pulling-in = The salvage magnet is attempting to pull in salvage. +salvage-system-magnet-examined-active = The salvage magnet is holding salvage in place. Can hold for {$timeLeft} seconds. +salvage-system-magnet-examined-letting-go = The salvage magnet is cooling down. + diff --git a/Resources/Maps/Salvage/medium-1.yml b/Resources/Maps/Salvage/medium-1.yml new file mode 100644 index 0000000000..bf7082ccc7 --- /dev/null +++ b/Resources/Maps/Salvage/medium-1.yml @@ -0,0 +1,1697 @@ +meta: + format: 2 + name: DemoStation + author: Space-Wizards + postmapinit: false +tilemap: + 0: space + 1: floor_asteroid_coarse_sand0 + 2: floor_asteroid_coarse_sand1 + 3: floor_asteroid_coarse_sand2 + 4: floor_asteroid_coarse_sand_dug + 5: floor_asteroid_sand + 6: floor_asteroid_tile + 7: floor_blue + 8: floor_blue_circuit + 9: floor_dark + 10: floor_elevator_shaft + 11: floor_freezer + 12: floor_glass + 13: floor_gold + 14: floor_green_circuit + 15: floor_hydro + 16: floor_lino + 17: floor_mono + 18: floor_reinforced + 19: floor_rglass + 20: floor_rock_vault + 21: floor_showroom + 22: floor_silver + 23: floor_snow + 24: floor_steel + 25: floor_steel_dirty + 26: floor_techmaint + 27: floor_white + 28: floor_wood + 29: lattice + 30: plating + 31: underplating +grids: +- settings: + chunksize: 16 + tilesize: 1 + chunks: + - ind: "-1,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAeAAAAHgAAAB4AAAAeAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAYAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAYAAAAGAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB4AAAAeAAAAHgAAABgAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAABgAAAAYAAAAGAAAAA== + - ind: "0,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB4AAAAeAAAAHgAAAB4AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAYAAAAGAAAABgAAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAGAAAAB4AAAAYAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAABgAAAAeAAAAHgAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "-1,0" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAdAAAAHgAAABkAAAAYAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAGQAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAGQAAABkAAAAZAAAAHgAAAB4AAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHgAAAB4AAAAZAAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAeAAAAGQAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHgAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "0,0" + tiles: GAAAABgAAAAeAAAAHgAAAB4AAAAeAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAYAAAAHgAAAB4AAAAeAAAAHgAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAABkAAAAeAAAAHgAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAZAAAAGQAAAB4AAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +entities: +- uid: 0 + components: + - pos: 0.5,0.5 + parent: null + type: Transform + - index: 0 + type: MapGrid + - angularDamping: 0.3 + fixedRotation: False + bodyType: Dynamic + type: Physics + - fixtures: + - shape: !type:PolygonShape + vertices: + - -1,-8 + - -1,-7 + - -6,-7 + - -6,-8 + id: grid_chunk--6--8 + mask: + - MapGrid + layer: + - MapGrid + mass: 20 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-7 + - 0,-6 + - -6,-6 + - -6,-7 + id: grid_chunk--6--7 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-6 + - 0,-5 + - -5,-5 + - -5,-6 + id: grid_chunk--5--6 + mask: + - MapGrid + layer: + - MapGrid + mass: 20 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-5 + - 0,-3 + - -4,-3 + - -4,-5 + id: grid_chunk--4--5 + mask: + - MapGrid + layer: + - MapGrid + mass: 32 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-3 + - 0,-2 + - -5,-2 + - -5,-3 + id: grid_chunk--5--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 20 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-2 + - 0,-1 + - -6,-1 + - -6,-2 + id: grid_chunk--6--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-1 + - 0,0 + - -4,0 + - -4,-1 + id: grid_chunk--4--1 + mask: + - MapGrid + layer: + - MapGrid + mass: 16 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 5,-8 + - 5,-7 + - 0,-7 + - 0,-8 + id: grid_chunk-0--8 + mask: + - MapGrid + layer: + - MapGrid + mass: 20 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,-7 + - 1,-6 + - 0,-6 + - 0,-7 + id: grid_chunk-0--7 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 5,-7 + - 5,-6 + - 4,-6 + - 4,-7 + id: grid_chunk-4--7 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 6,-6 + - 6,-5 + - 3,-5 + - 3,-6 + id: grid_chunk-3--6 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 7,-5 + - 7,-4 + - 1,-4 + - 1,-5 + id: grid_chunk-1--5 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 6,-4 + - 6,0 + - 0,0 + - 0,-4 + id: grid_chunk-0--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 96 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,0 + - 0,1 + - -6,1 + - -6,0 + id: grid_chunk--6-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,1 + - 0,2 + - -8,2 + - -8,1 + id: grid_chunk--8-1 + mask: + - MapGrid + layer: + - MapGrid + mass: 32 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,2 + - 0,3 + - -7,3 + - -7,2 + id: grid_chunk--7-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 28 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,3 + - 0,4 + - -8,4 + - -8,3 + id: grid_chunk--8-3 + mask: + - MapGrid + layer: + - MapGrid + mass: 32 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,4 + - 0,5 + - -6,5 + - -6,4 + id: grid_chunk--6-4 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,5 + - 0,6 + - -4,6 + - -4,5 + id: grid_chunk--4-5 + mask: + - MapGrid + layer: + - MapGrid + mass: 16 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,6 + - 0,7 + - -1,7 + - -1,6 + id: grid_chunk--1-6 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 7,0 + - 7,2 + - 0,2 + - 0,0 + id: grid_chunk-0-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 56 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,2 + - 3,3 + - 0,3 + - 0,2 + id: grid_chunk-0-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 5,3 + - 5,4 + - 0,4 + - 0,3 + id: grid_chunk-0-3 + mask: + - MapGrid + layer: + - MapGrid + mass: 20 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 6,4 + - 6,5 + - 0,5 + - 0,4 + id: grid_chunk-0-4 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 7,5 + - 7,6 + - 0,6 + - 0,5 + id: grid_chunk-0-5 + mask: + - MapGrid + layer: + - MapGrid + mass: 28 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,6 + - 1,7 + - 0,7 + - 0,6 + id: grid_chunk-0-6 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 5,6 + - 5,7 + - 4,7 + - 4,6 + id: grid_chunk-4-6 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + type: Fixtures + - gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + type: Gravity + - tiles: + -8,-8: 0 + -8,-7: 0 + -8,-6: 0 + -8,-5: 0 + -8,-4: 0 + -8,-3: 0 + -8,-2: 0 + -8,-1: 0 + -7,-8: 0 + -7,-1: 0 + -6,-8: 0 + -6,-1: 0 + -5,-8: 0 + -5,-1: 0 + -4,-8: 0 + -4,-4: 0 + -4,-3: 0 + -4,-2: 0 + -4,-1: 0 + -3,-8: 0 + -3,-4: 0 + -3,-1: 0 + -2,-8: 0 + -2,-4: 0 + -2,-2: 0 + -2,-1: 0 + -1,-8: 0 + -1,-7: 0 + -1,-6: 0 + -1,-5: 0 + -1,-4: 0 + -1,-3: 0 + -1,-2: 0 + -1,-1: 0 + 0,-8: 0 + 0,-4: 0 + 0,-2: 0 + 0,-1: 0 + 1,-8: 0 + 1,-4: 0 + 1,-1: 0 + 2,-8: 0 + 2,-4: 0 + 2,-3: 0 + 2,-2: 0 + 2,-1: 0 + 3,-8: 0 + 3,-1: 0 + 4,-8: 0 + 4,-1: 0 + 5,-8: 0 + 5,-1: 0 + 6,-8: 0 + 6,-7: 0 + 6,-6: 0 + 6,-5: 0 + 6,-4: 0 + 6,-3: 0 + 6,-2: 0 + 6,-1: 0 + -8,0: 0 + -8,1: 0 + -8,2: 0 + -8,3: 0 + -8,4: 0 + -8,5: 0 + -8,6: 0 + -7,6: 0 + -6,6: 0 + -5,6: 0 + -4,0: 0 + -4,1: 0 + -4,2: 1 + -4,6: 0 + -3,2: 0 + -3,6: 0 + -2,0: 0 + -2,2: 0 + -2,6: 0 + -1,0: 0 + -1,1: 0 + -1,2: 0 + -1,3: 1 + -1,4: 1 + -1,5: 0 + -1,6: 0 + 0,0: 0 + 0,2: 0 + 0,6: 0 + 1,2: 0 + 1,6: 0 + 2,0: 0 + 2,1: 0 + 2,2: 0 + 2,6: 0 + 3,6: 0 + 4,6: 0 + 5,6: 0 + 6,0: 0 + 6,1: 0 + 6,2: 0 + 6,3: 0 + 6,4: 0 + 6,5: 0 + 6,6: 0 + -6,-7: 0 + -6,-2: 0 + -5,-7: 0 + -5,-6: 0 + -5,-3: 0 + -5,-2: 0 + -4,-7: 0 + -4,-6: 0 + -4,-5: 0 + -3,-7: 0 + -3,-6: 0 + -3,-5: 0 + -3,-3: 0 + -3,-2: 0 + -2,-7: 0 + -2,-6: 0 + -2,-5: 0 + -2,-3: 0 + 0,-7: 0 + 0,-3: 0 + 1,-5: 0 + 1,-3: 0 + 1,-2: 0 + 2,-5: 0 + 3,-6: 0 + 3,-5: 0 + 3,-4: 0 + 3,-3: 0 + 3,-2: 0 + 4,-7: 0 + 4,-6: 0 + 4,-5: 0 + 4,-4: 0 + 4,-3: 0 + 4,-2: 0 + 5,-6: 0 + 5,-5: 0 + 5,-4: 0 + 5,-3: 0 + 5,-2: 0 + -7,1: 0 + -7,2: 0 + -7,3: 0 + -6,0: 0 + -6,1: 0 + -6,2: 1 + -6,3: 0 + -6,4: 0 + -5,0: 0 + -5,1: 0 + -5,2: 1 + -5,3: 1 + -5,4: 0 + -4,3: 1 + -4,4: 0 + -4,5: 0 + -3,0: 0 + -3,1: 0 + -3,3: 1 + -3,4: 0 + -3,5: 0 + -2,1: 0 + -2,3: 1 + -2,4: 1 + -2,5: 0 + 0,1: 0 + 0,3: 1 + 0,4: 1 + 0,5: 0 + 1,0: 0 + 1,1: 0 + 1,3: 1 + 1,4: 1 + 1,5: 0 + 2,3: 0 + 2,4: 1 + 2,5: 0 + 3,0: 0 + 3,1: 0 + 3,3: 0 + 3,4: 0 + 3,5: 0 + 4,0: 0 + 4,1: 0 + 4,3: 0 + 4,4: 0 + 4,5: 0 + 5,0: 0 + 5,1: 0 + 5,4: 0 + 5,5: 0 + uniqueMixes: + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 5000 + moles: + - 6666.982 + - 0 + - 0 + - 6666.982 + - 0 + - 0 + - 0 + - 0 + type: GridAtmosphere +- uid: 1 + type: WallSolid + components: + - pos: -4.5,-5.5 + parent: 0 + type: Transform +- uid: 2 + type: WallSolid + components: + - pos: -4.5,-6.5 + parent: 0 + type: Transform +- uid: 3 + type: WallSolid + components: + - pos: -3.5,-6.5 + parent: 0 + type: Transform +- uid: 4 + type: WallSolid + components: + - pos: -2.5,-6.5 + parent: 0 + type: Transform +- uid: 5 + type: WallSolid + components: + - pos: -1.5,-6.5 + parent: 0 + type: Transform +- uid: 6 + type: WallSolid + components: + - pos: -4.5,-1.5 + parent: 0 + type: Transform +- uid: 7 + type: Girder + components: + - pos: -4.5,-2.5 + parent: 0 + type: Transform +- uid: 8 + type: WallSolid + components: + - pos: -0.5,-1.5 + parent: 0 + type: Transform +- uid: 9 + type: WallSolid + components: + - pos: -0.5,-2.5 + parent: 0 + type: Transform +- uid: 10 + type: WallSolid + components: + - pos: -0.5,-3.5 + parent: 0 + type: Transform +- uid: 11 + type: WallSolid + components: + - pos: -0.5,-4.5 + parent: 0 + type: Transform +- uid: 12 + type: WallSolid + components: + - pos: -3.5,-1.5 + parent: 0 + type: Transform +- uid: 13 + type: WallSolid + components: + - pos: -2.5,-1.5 + parent: 0 + type: Transform +- uid: 14 + type: WallSolid + components: + - pos: -3.5,-0.5 + parent: 0 + type: Transform +- uid: 15 + type: WallSolid + components: + - pos: -3.5,0.5 + parent: 0 + type: Transform +- uid: 16 + type: WallSolid + components: + - pos: -3.5,1.5 + parent: 0 + type: Transform +- uid: 17 + type: WallSolid + components: + - pos: -2.5,1.5 + parent: 0 + type: Transform +- uid: 18 + type: WallSolid + components: + - pos: -2.5,2.5 + parent: 0 + type: Transform +- uid: 19 + type: WallSolid + components: + - pos: -1.5,2.5 + parent: 0 + type: Transform +- uid: 20 + type: Girder + components: + - pos: -0.5,-5.5 + parent: 0 + type: Transform +- uid: 21 + type: WallSolid + components: + - pos: 0.5,2.5 + parent: 0 + type: Transform +- uid: 22 + type: WallSolid + components: + - pos: 1.5,2.5 + parent: 0 + type: Transform +- uid: 23 + type: WallSolid + components: + - pos: 2.5,2.5 + parent: 0 + type: Transform +- uid: 24 + type: WallSolid + components: + - pos: 2.5,1.5 + parent: 0 + type: Transform +- uid: 25 + type: WallSolid + components: + - pos: 2.5,0.5 + parent: 0 + type: Transform +- uid: 26 + type: WallSolid + components: + - pos: 2.5,-0.5 + parent: 0 + type: Transform +- uid: 27 + type: WallSolid + components: + - pos: 2.5,-1.5 + parent: 0 + type: Transform +- uid: 28 + type: WallSolid + components: + - pos: 0.5,-1.5 + parent: 0 + type: Transform +- uid: 29 + type: WallSolid + components: + - pos: 0.5,-3.5 + parent: 0 + type: Transform +- uid: 30 + type: WallSolid + components: + - pos: 1.5,-3.5 + parent: 0 + type: Transform +- uid: 31 + type: WallSolid + components: + - pos: 2.5,-3.5 + parent: 0 + type: Transform +- uid: 32 + type: WallSolid + components: + - pos: 3.5,-3.5 + parent: 0 + type: Transform +- uid: 33 + type: WallSolid + components: + - pos: 4.5,-3.5 + parent: 0 + type: Transform +- uid: 34 + type: WallSolid + components: + - pos: 4.5,-2.5 + parent: 0 + type: Transform +- uid: 35 + type: WallSolid + components: + - pos: 4.5,-1.5 + parent: 0 + type: Transform +- uid: 36 + type: WallSolid + components: + - pos: 4.5,-0.5 + parent: 0 + type: Transform +- uid: 37 + type: WallSolid + components: + - pos: 4.5,0.5 + parent: 0 + type: Transform +- uid: 38 + type: Girder + components: + - pos: 4.5,1.5 + parent: 0 + type: Transform +- uid: 39 + type: AirlockGlass + components: + - pos: 3.5,0.5 + parent: 0 + type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer +- uid: 40 + type: AirlockGlass + components: + - pos: 1.5,-1.5 + parent: 0 + type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer +- uid: 41 + type: AirlockGlass + components: + - pos: -1.5,-1.5 + parent: 0 + type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer +- uid: 42 + type: WallSolid + components: + - pos: -2.5,4.5 + parent: 0 + type: Transform +- uid: 43 + type: WallSolid + components: + - pos: -2.5,5.5 + parent: 0 + type: Transform +- uid: 44 + type: WallSolid + components: + - pos: -1.5,5.5 + parent: 0 + type: Transform +- uid: 45 + type: WallSolid + components: + - pos: -0.5,5.5 + parent: 0 + type: Transform +- uid: 46 + type: WallSolid + components: + - pos: 0.5,5.5 + parent: 0 + type: Transform +- uid: 47 + type: WallSolid + components: + - pos: 1.5,5.5 + parent: 0 + type: Transform +- uid: 48 + type: WallSolid + components: + - pos: 2.5,5.5 + parent: 0 + type: Transform +- uid: 49 + type: WallSolid + components: + - pos: 3.5,5.5 + parent: 0 + type: Transform +- uid: 50 + type: WallSolid + components: + - pos: 3.5,4.5 + parent: 0 + type: Transform +- uid: 51 + type: WallSolid + components: + - pos: 2.5,3.5 + parent: 0 + type: Transform +- uid: 52 + type: WallSolid + components: + - pos: 3.5,3.5 + parent: 0 + type: Transform +- uid: 53 + type: WallSolid + components: + - pos: -4.5,1.5 + parent: 0 + type: Transform +- uid: 54 + type: WallSolid + components: + - pos: -5.5,1.5 + parent: 0 + type: Transform +- uid: 55 + type: WallSolid + components: + - pos: -6.5,1.5 + parent: 0 + type: Transform +- uid: 56 + type: WallSolid + components: + - pos: -6.5,2.5 + parent: 0 + type: Transform +- uid: 57 + type: WallSolid + components: + - pos: -6.5,3.5 + parent: 0 + type: Transform +- uid: 58 + type: WallSolid + components: + - pos: -4.5,4.5 + parent: 0 + type: Transform +- uid: 59 + type: WallSolid + components: + - pos: -3.5,4.5 + parent: 0 + type: Transform +- uid: 60 + type: WallSolid + components: + - pos: -5.5,3.5 + parent: 0 + type: Transform +- uid: 61 + type: WallSolid + components: + - pos: -5.5,4.5 + parent: 0 + type: Transform +- uid: 62 + type: SalvageCanisterSpawner + components: + - pos: -5.5,2.5 + parent: 0 + type: Transform +- uid: 63 + type: SalvageCanisterSpawner + components: + - pos: -4.5,2.5 + parent: 0 + type: Transform +- uid: 64 + type: StorageCanister + components: + - pos: -1.5,4.5 + parent: 0 + type: Transform +- uid: 65 + type: AirlockEngineering + components: + - pos: -0.5,2.5 + parent: 0 + type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer +- uid: 66 + type: Girder + components: + - pos: 3.5,-4.5 + parent: 0 + type: Transform +- uid: 67 + type: Girder + components: + - pos: 3.5,-5.5 + parent: 0 + type: Transform +- uid: 68 + type: Girder + components: + - pos: 5.5,-1.5 + parent: 0 + type: Transform +- uid: 69 + type: SalvageMaterialCrateSpawner + components: + - pos: 2.5,4.5 + parent: 0 + type: Transform +- uid: 70 + type: SalvageMaterialCrateSpawner + components: + - pos: 1.5,4.5 + parent: 0 + type: Transform +- uid: 71 + type: SalvageMaterialCrateSpawner + components: + - pos: 0.5,3.5 + parent: 0 + type: Transform +- uid: 72 + type: SalvageMaterialCrateSpawner + components: + - pos: 1.5,3.5 + parent: 0 + type: Transform +- uid: 73 + type: SalvageMaterialCrateSpawner + components: + - pos: 0.5,4.5 + parent: 0 + type: Transform +- uid: 74 + type: SalvageMobSpawner + components: + - pos: 3.5,-2.5 + parent: 0 + type: Transform +- uid: 75 + type: SalvageMobSpawner + components: + - pos: 1.5,-2.5 + parent: 0 + type: Transform +- uid: 76 + type: SalvageMobSpawner + components: + - pos: 3.5,-0.5 + parent: 0 + type: Transform +- uid: 77 + type: SalvageMobSpawner + components: + - pos: -3.5,-2.5 + parent: 0 + type: Transform +- uid: 78 + type: SalvageMobSpawner + components: + - pos: -3.5,-5.5 + parent: 0 + type: Transform +- uid: 79 + type: SalvageMobSpawner + components: + - pos: -1.5,-5.5 + parent: 0 + type: Transform +- uid: 80 + type: SalvageMobSpawner + components: + - pos: -1.5,1.5 + parent: 0 + type: Transform +- uid: 81 + type: SalvageMobSpawner + components: + - pos: 1.5,1.5 + parent: 0 + type: Transform +- uid: 82 + type: SalvageMobSpawner + components: + - pos: -2.5,-0.5 + parent: 0 + type: Transform +- uid: 83 + type: Table + components: + - pos: -0.5,0.5 + parent: 0 + type: Transform +- uid: 84 + type: Table + components: + - pos: 0.5,0.5 + parent: 0 + type: Transform +- uid: 85 + type: PaperWrittenSalvageLoreMedium1PlasmaTrap + components: + - pos: 0.48327154,0.5698495 + parent: 0 + type: Transform +- uid: 86 + type: SalvageCanisterSpawner + components: + - pos: -3.5,3.5 + parent: 0 + type: Transform +- uid: 87 + type: SalvageCanisterSpawner + components: + - pos: -3.5,2.5 + parent: 0 + type: Transform +- uid: 88 + type: SalvageCanisterSpawner + components: + - pos: -4.5,3.5 + parent: 0 + type: Transform +- uid: 89 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -1.5,3.5 + parent: 0 + type: Transform +- uid: 90 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -1.5,4.5 + parent: 0 + type: Transform +- uid: 91 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -0.5,4.5 + parent: 0 + type: Transform +- uid: 92 + type: SalvageMaterialCrateSpawner + components: + - pos: -3.5,-2.5 + parent: 0 + type: Transform +- uid: 93 + type: SalvageMaterialCrateSpawner + components: + - pos: -3.5,-3.5 + parent: 0 + type: Transform +- uid: 94 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -0.5,3.5 + parent: 0 + type: Transform +- uid: 95 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: 0.5,4.5 + parent: 0 + type: Transform +- uid: 96 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: 0.5,3.5 + parent: 0 + type: Transform +- uid: 97 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: 1.5,4.5 + parent: 0 + type: Transform +- uid: 98 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: 1.5,3.5 + parent: 0 + type: Transform +- uid: 99 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: 2.5,4.5 + parent: 0 + type: Transform +- uid: 100 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -2.5,3.5 + parent: 0 + type: Transform +- uid: 101 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -3.5,3.5 + parent: 0 + type: Transform +- uid: 102 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -4.5,3.5 + parent: 0 + type: Transform +- uid: 103 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -3.5,2.5 + parent: 0 + type: Transform +- uid: 104 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -4.5,2.5 + parent: 0 + type: Transform +- uid: 105 + type: AtmosFixInstantPlasmaFireMarker + components: + - pos: -5.5,2.5 + parent: 0 + type: Transform +- uid: 106 + type: SalternSubstation + components: + - pos: 0.5,-2.5 + parent: 0 + type: Transform + - startingCharge: 3990010 + type: Battery + - supplyRampPosition: 2.3437593 + type: PowerNetworkBattery +- uid: 107 + type: CableMV + components: + - pos: 0.5,-2.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 108 + type: CableMV + components: + - pos: 1.5,-2.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 109 + type: CableMV + components: + - pos: 1.5,-1.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 110 + type: CableMV + components: + - pos: 1.5,-0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 111 + type: CableMV + components: + - pos: 1.5,0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 112 + type: CableMV + components: + - pos: 1.5,1.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 113 + type: CableMV + components: + - pos: 1.5,2.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 114 + type: SalternApc + components: + - pos: 1.5,2.5 + parent: 0 + type: Transform + - startingCharge: 12000 + type: Battery +- uid: 115 + type: CableApcExtension + components: + - pos: 1.5,2.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 116 + type: CableApcExtension + components: + - pos: 1.5,1.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 117 + type: CableApcExtension + components: + - pos: 1.5,0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 118 + type: CableApcExtension + components: + - pos: 1.5,-0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 119 + type: CableApcExtension + components: + - pos: 0.5,-0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 120 + type: CableApcExtension + components: + - pos: -0.5,-0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 121 + type: CableApcExtension + components: + - pos: -1.5,-0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 122 + type: CableApcExtension + components: + - pos: -2.5,-0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 123 + type: CableApcExtension + components: + - pos: -1.5,-0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 124 + type: CableApcExtension + components: + - pos: -1.5,-1.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 125 + type: CableApcExtension + components: + - pos: -1.5,-2.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 126 + type: CableApcExtension + components: + - pos: -1.5,-3.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 127 + type: CableApcExtension + components: + - pos: -1.5,-4.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 128 + type: CableApcExtension + components: + - pos: -2.5,-4.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 129 + type: CableApcExtension + components: + - pos: -0.5,0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 130 + type: CableApcExtension + components: + - pos: -0.5,1.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 131 + type: CableApcExtension + components: + - pos: 1.5,3.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 132 + type: CableApcExtension + components: + - pos: 1.5,4.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 133 + type: CableApcExtension + components: + - pos: 0.5,4.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 134 + type: CableApcExtension + components: + - pos: -0.5,4.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 135 + type: CableApcExtension + components: + - pos: -1.5,4.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 136 + type: Poweredlight + components: + - pos: -0.5,4.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer +- uid: 137 + type: Poweredlight + components: + - rot: -1.5707963267948966 rad + pos: 1.5,0.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer +- uid: 138 + type: Poweredlight + components: + - rot: -1.5707963267948966 rad + pos: -1.5,-3.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer +- uid: 139 + type: Poweredlight + components: + - rot: 1.5707963267948966 rad + pos: -2.5,0.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer +- uid: 140 + type: Poweredlight + components: + - pos: 2.5,-2.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer +- uid: 141 + type: Poweredlight + components: + - rot: 1.5707963267948966 rad + pos: 3.5,-1.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer +- uid: 142 + type: CableApcExtension + components: + - pos: 1.5,-1.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 143 + type: CableApcExtension + components: + - pos: 1.5,-2.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 144 + type: CableApcExtension + components: + - pos: 2.5,-2.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 145 + type: CableApcExtension + components: + - pos: 3.5,-2.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 146 + type: CableApcExtension + components: + - pos: 3.5,-1.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +... diff --git a/Resources/Maps/Salvage/medium-template.yml b/Resources/Maps/Salvage/medium-template.yml new file mode 100644 index 0000000000..d1eca2d68f --- /dev/null +++ b/Resources/Maps/Salvage/medium-template.yml @@ -0,0 +1,407 @@ +meta: + format: 2 + name: DemoStation + author: Space-Wizards + postmapinit: false +tilemap: + 0: space + 1: floor_asteroid_coarse_sand0 + 2: floor_asteroid_coarse_sand1 + 3: floor_asteroid_coarse_sand2 + 4: floor_asteroid_coarse_sand_dug + 5: floor_asteroid_sand + 6: floor_asteroid_tile + 7: floor_blue + 8: floor_blue_circuit + 9: floor_dark + 10: floor_elevator_shaft + 11: floor_freezer + 12: floor_glass + 13: floor_gold + 14: floor_green_circuit + 15: floor_hydro + 16: floor_lino + 17: floor_mono + 18: floor_reinforced + 19: floor_rglass + 20: floor_rock_vault + 21: floor_showroom + 22: floor_silver + 23: floor_snow + 24: floor_steel + 25: floor_steel_dirty + 26: floor_techmaint + 27: floor_white + 28: floor_wood + 29: lattice + 30: plating + 31: underplating +grids: +- settings: + chunksize: 16 + tilesize: 1 + chunks: + - ind: "-1,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAdAAAAAAAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAADQAAAA== + - ind: "0,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "-1,0" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "0,0" + tiles: HQAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +entities: +- uid: 0 + components: + - pos: 0.5,0.5 + parent: null + type: Transform + - index: 0 + type: MapGrid + - angularDamping: 0.3 + fixedRotation: False + bodyType: Dynamic + type: Physics + - fixtures: + - shape: !type:PolygonShape + vertices: + - 0,-2 + - 0,-1 + - -2,-1 + - -2,-2 + id: grid_chunk--2--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - -3,-3 + - -3,-1 + - -4,-1 + - -4,-3 + id: grid_chunk--4--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - -7,-7 + - -7,-1 + - -8,-1 + - -8,-7 + id: grid_chunk--8--7 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-3 + - 0,-2 + - -1,-2 + - -1,-3 + id: grid_chunk--1--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-4 + - 0,-3 + - -4,-3 + - -4,-4 + id: grid_chunk--4--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 16 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 7,-7 + - 7,-1 + - 6,-1 + - 6,-7 + id: grid_chunk-6--7 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-3 + - 3,-1 + - 2,-1 + - 2,-3 + id: grid_chunk-2--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,-2 + - 1,-1 + - 0,-1 + - 0,-2 + id: grid_chunk-0--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-4 + - 3,-3 + - 0,-3 + - 0,-4 + id: grid_chunk-0--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,3 + - 0,6 + - -1,6 + - -1,3 + id: grid_chunk--1-3 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - -7,0 + - -7,6 + - -8,6 + - -8,0 + id: grid_chunk--8-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,2 + - 0,3 + - -4,3 + - -4,2 + id: grid_chunk--4-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 16 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,1 + - 0,2 + - -1,2 + - -1,1 + id: grid_chunk--1-1 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 7,0 + - 7,6 + - 6,6 + - 6,0 + id: grid_chunk-6-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,2 + - 3,3 + - 0,3 + - 0,2 + id: grid_chunk-0-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,0 + - 3,2 + - 2,2 + - 2,0 + id: grid_chunk-2-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,6 + - 0,7 + - -8,7 + - -8,6 + id: grid_chunk--8-6 + mask: + - MapGrid + layer: + - MapGrid + mass: 32 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-1 + - 0,0 + - -8,0 + - -8,-1 + id: grid_chunk--8--1 + mask: + - MapGrid + layer: + - MapGrid + mass: 32 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-7 + - 0,-4 + - -1,-4 + - -1,-7 + id: grid_chunk--1--7 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-8 + - 0,-7 + - -8,-7 + - -8,-8 + id: grid_chunk--8--8 + mask: + - MapGrid + layer: + - MapGrid + mass: 32 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 7,-1 + - 7,0 + - 0,0 + - 0,-1 + id: grid_chunk-0--1 + mask: + - MapGrid + layer: + - MapGrid + mass: 28 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 7,-8 + - 7,-7 + - 0,-7 + - 0,-8 + id: grid_chunk-0--8 + mask: + - MapGrid + layer: + - MapGrid + mass: 28 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 7,6 + - 7,7 + - 0,7 + - 0,6 + id: grid_chunk-0-6 + mask: + - MapGrid + layer: + - MapGrid + mass: 28 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - -3,0 + - -3,2 + - -4,2 + - -4,0 + id: grid_chunk--4-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,0 + - 0,1 + - -2,1 + - -2,0 + id: grid_chunk--2-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,0 + - 1,1 + - 0,1 + - 0,0 + id: grid_chunk-0-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + type: Fixtures + - gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + type: Gravity +... diff --git a/Resources/Maps/Salvage/small-1.yml b/Resources/Maps/Salvage/small-1.yml new file mode 100644 index 0000000000..f295fa82ec --- /dev/null +++ b/Resources/Maps/Salvage/small-1.yml @@ -0,0 +1,318 @@ +meta: + format: 2 + name: DemoStation + author: Space-Wizards + postmapinit: false +tilemap: + 0: space + 1: floor_asteroid_coarse_sand0 + 2: floor_asteroid_coarse_sand1 + 3: floor_asteroid_coarse_sand2 + 4: floor_asteroid_coarse_sand_dug + 5: floor_asteroid_sand + 6: floor_asteroid_tile + 7: floor_blue + 8: floor_blue_circuit + 9: floor_dark + 10: floor_elevator_shaft + 11: floor_freezer + 12: floor_glass + 13: floor_gold + 14: floor_green_circuit + 15: floor_hydro + 16: floor_lino + 17: floor_mono + 18: floor_reinforced + 19: floor_rglass + 20: floor_rock_vault + 21: floor_showroom + 22: floor_silver + 23: floor_snow + 24: floor_steel + 25: floor_steel_dirty + 26: floor_techmaint + 27: floor_white + 28: floor_wood + 29: lattice + 30: plating + 31: underplating +grids: +- settings: + chunksize: 16 + tilesize: 1 + chunks: + - ind: "-1,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAA== + - ind: "0,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "0,0" + tiles: HgAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "-1,0" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +entities: +- uid: 0 + components: + - pos: 0.5, 0.5 + parent: null + type: Transform + - index: 0 + type: MapGrid + - angularDamping: 0.3 + fixedRotation: False + bodyType: Dynamic + type: Physics + - fixtures: + - shape: !type:PolygonShape + vertices: + - 0,-2 + - 0,-1 + - -3,-1 + - -3,-2 + id: grid_chunk--3--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,-3 + - 1,-2 + - 0,-2 + - 0,-3 + id: grid_chunk-0--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,1 + - 1,3 + - 0,3 + - 0,1 + id: grid_chunk-0-1 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,0 + - 0,1 + - -3,1 + - -3,0 + id: grid_chunk--3-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - -1,-4 + - -1,-2 + - -2,-2 + - -2,-4 + id: grid_chunk--2--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,0 + - 3,1 + - 0,1 + - 0,0 + id: grid_chunk-0-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,1 + - 0,2 + - -2,2 + - -2,1 + id: grid_chunk--2-1 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-1 + - 0,0 + - -2,0 + - -2,-1 + id: grid_chunk--2--1 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 2,-2 + - 2,-1 + - 0,-1 + - 0,-2 + id: grid_chunk-0--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,-1 + - 1,0 + - 0,0 + - 0,-1 + id: grid_chunk-0--1 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + type: Fixtures + - gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + type: Gravity +- uid: 1 + type: WallSolid + components: + - pos: -1.5,1.5 + parent: 0 + type: Transform +- uid: 2 + type: WallSolid + components: + - pos: 0.5,1.5 + parent: 0 + type: Transform +- uid: 3 + type: Girder + components: + - pos: 1.5,-1.5 + parent: 0 + type: Transform +- uid: 4 + type: AirlockEngineeringLocked + components: + - pos: -0.5,1.5 + parent: 0 + type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer +- uid: 5 + type: Girder + components: + - pos: -2.5,0.5 + parent: 0 + type: Transform +- uid: 6 + type: Girder + components: + - pos: -1.5,-2.5 + parent: 0 + type: Transform +- uid: 7 + type: SalvageCanisterSpawner + components: + - pos: -1.5,0.5 + parent: 0 + type: Transform +- uid: 8 + type: SalvageMaterialCrateSpawner + components: + - pos: -1.5,-0.5 + parent: 0 + type: Transform +- uid: 9 + type: SalvageMobSpawner + components: + - pos: -1.5,-1.5 + parent: 0 + type: Transform +- uid: 10 + type: SalvageMaterialCrateSpawner + components: + - pos: -0.5,-0.5 + parent: 0 + type: Transform +- uid: 11 + type: SalvageMaterialCrateSpawner + components: + - pos: -0.5,-1.5 + parent: 0 + type: Transform +- uid: 12 + type: SalvageMaterialCrateSpawner + components: + - pos: -0.5,0.5 + parent: 0 + type: Transform +- uid: 13 + type: SalvageMobSpawner + components: + - pos: 0.5,-1.5 + parent: 0 + type: Transform +- uid: 14 + type: PoweredSmallLight + components: + - pos: 0.5,0.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - enabled: False + type: AmbientSound + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer +- uid: 15 + type: CableApcExtension + components: + - pos: -0.5,1.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 16 + type: CableApcExtension + components: + - pos: -0.5,0.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 17 + type: CableApcExtension + components: + - pos: 0.5,0.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +... diff --git a/Resources/Maps/Salvage/small-2.yml b/Resources/Maps/Salvage/small-2.yml new file mode 100644 index 0000000000..c10dafd712 --- /dev/null +++ b/Resources/Maps/Salvage/small-2.yml @@ -0,0 +1,621 @@ +meta: + format: 2 + name: DemoStation + author: Space-Wizards + postmapinit: false +tilemap: + 0: space + 1: floor_asteroid_coarse_sand0 + 2: floor_asteroid_coarse_sand1 + 3: floor_asteroid_coarse_sand2 + 4: floor_asteroid_coarse_sand_dug + 5: floor_asteroid_sand + 6: floor_asteroid_tile + 7: floor_blue + 8: floor_blue_circuit + 9: floor_dark + 10: floor_elevator_shaft + 11: floor_freezer + 12: floor_glass + 13: floor_gold + 14: floor_green_circuit + 15: floor_hydro + 16: floor_lino + 17: floor_mono + 18: floor_reinforced + 19: floor_rglass + 20: floor_rock_vault + 21: floor_showroom + 22: floor_silver + 23: floor_snow + 24: floor_steel + 25: floor_steel_dirty + 26: floor_techmaint + 27: floor_white + 28: floor_wood + 29: lattice + 30: plating + 31: underplating +grids: +- settings: + chunksize: 16 + tilesize: 1 + chunks: + - ind: "-1,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB4AAAAcAAAAHAAAAA== + - ind: "0,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAHAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAABwAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "-1,0" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAeAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "0,0" + tiles: HAAAAB4AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +entities: +- uid: 0 + components: + - pos: 0.5,0.5 + parent: null + type: Transform + - index: 0 + type: MapGrid + - angularDamping: 0.3 + fixedRotation: False + bodyType: Dynamic + type: Physics + - fixtures: + - shape: !type:PolygonShape + vertices: + - 0,-3 + - 0,-1 + - -3,-1 + - -3,-3 + id: grid_chunk--3--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-1 + - 0,0 + - -4,0 + - -4,-1 + id: grid_chunk--4--1 + mask: + - MapGrid + layer: + - MapGrid + mass: 16 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-4 + - 3,-3 + - 2,-3 + - 2,-4 + id: grid_chunk-2--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-3 + - 3,0 + - 0,0 + - 0,-3 + id: grid_chunk-0--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 36 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,0 + - 0,2 + - -4,2 + - -4,0 + id: grid_chunk--4-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 32 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - -1,2 + - -1,3 + - -4,3 + - -4,2 + id: grid_chunk--4-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,0 + - 3,2 + - 0,2 + - 0,0 + id: grid_chunk-0-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,2 + - 1,3 + - 0,3 + - 0,2 + id: grid_chunk-0-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - -3,-3 + - -3,-1 + - -4,-1 + - -4,-3 + id: grid_chunk--4--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,-2 + - 1,-1 + - 0,-1 + - 0,-2 + id: grid_chunk-0--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-3 + - 0,-2 + - -1,-2 + - -1,-3 + id: grid_chunk--1--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,0 + - 3,2 + - 2,2 + - 2,0 + id: grid_chunk-2-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-2 + - 0,-1 + - -2,-1 + - -2,-2 + id: grid_chunk--2--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-4 + - 0,-3 + - -4,-3 + - -4,-4 + id: grid_chunk--4--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 16 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,1 + - 0,2 + - -1,2 + - -1,1 + id: grid_chunk--1-1 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-3 + - 3,-1 + - 2,-1 + - 2,-3 + id: grid_chunk-2--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-1 + - 3,0 + - 0,0 + - 0,-1 + id: grid_chunk-0--1 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-4 + - 3,-3 + - 0,-3 + - 0,-4 + id: grid_chunk-0--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,0 + - 0,1 + - -2,1 + - -2,0 + id: grid_chunk--2-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + type: Fixtures + - gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + type: Gravity +- uid: 1 + type: WallSolid + components: + - pos: -3.5,1.5 + parent: 0 + type: Transform +- uid: 2 + type: WallSolid + components: + - pos: -2.5,1.5 + parent: 0 + type: Transform +- uid: 3 + type: WallSolid + components: + - pos: -1.5,1.5 + parent: 0 + type: Transform +- uid: 4 + type: AirlockMaintEngiLocked + components: + - name: Entleins Wohnstätte + type: MetaData + - pos: -0.5,1.5 + parent: 0 + type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer +- uid: 5 + type: WallSolid + components: + - pos: 0.5,1.5 + parent: 0 + type: Transform +- uid: 6 + type: WallSolid + components: + - pos: 1.5,1.5 + parent: 0 + type: Transform +- uid: 7 + type: WallSolid + components: + - pos: 2.5,1.5 + parent: 0 + type: Transform +- uid: 8 + type: ReinforcedWindow + components: + - pos: 1.5,-2.5 + parent: 0 + type: Transform +- uid: 9 + type: ReinforcedWindow + components: + - pos: 0.5,-2.5 + parent: 0 + type: Transform +- uid: 10 + type: ReinforcedWindow + components: + - pos: -0.5,-2.5 + parent: 0 + type: Transform +- uid: 11 + type: ReinforcedWindow + components: + - pos: -1.5,-2.5 + parent: 0 + type: Transform +- uid: 12 + type: FigureSpawner + components: + - pos: 1.5,-0.5 + parent: 0 + type: Transform +- uid: 13 + type: WallSolid + components: + - pos: 2.5,-2.5 + parent: 0 + type: Transform +- uid: 14 + type: ClosetMaintenanceFilledRandom + components: + - pos: -1.5,0.5 + parent: 0 + type: Transform + - isPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: !type:Container + ents: [] + type: ContainerContainer +- uid: 15 + type: TableCarpet + components: + - pos: 0.5,-0.5 + parent: 0 + type: Transform +- uid: 16 + type: TableCarpet + components: + - pos: 1.5,-0.5 + parent: 0 + type: Transform +- uid: 17 + type: d20Dice + components: + - pos: 0.35689956,-0.2576263 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 18 + type: SalvageLorePaperGamingSpawner + components: + - pos: 0.79439956,-0.4295013 + parent: 0 + type: Transform + - canCollide: False + type: Physics + - fixtures: [] + type: Fixtures +- uid: 19 + type: SalvageMaterialCrateSpawner + components: + - pos: 2.5,-1.5 + parent: 0 + type: Transform +- uid: 20 + type: SalvageMaterialCrateSpawner + components: + - pos: -3.5,0.5 + parent: 0 + type: Transform +- uid: 21 + type: RandomArcade + components: + - pos: -2.5,0.5 + parent: 0 + type: Transform +- uid: 22 + type: SalvageMobSpawner + components: + - pos: -0.5,-1.5 + parent: 0 + type: Transform +- uid: 23 + type: Grille + components: + - pos: -2.5,-2.5 + parent: 0 + type: Transform +- uid: 24 + type: Grille + components: + - pos: -1.5,-2.5 + parent: 0 + type: Transform +- uid: 25 + type: Grille + components: + - pos: -0.5,-2.5 + parent: 0 + type: Transform +- uid: 26 + type: Grille + components: + - pos: 0.5,-2.5 + parent: 0 + type: Transform +- uid: 27 + type: Grille + components: + - pos: 1.5,-2.5 + parent: 0 + type: Transform +- uid: 28 + type: CableApcExtension + components: + - pos: -0.5,1.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 29 + type: CableApcExtension + components: + - pos: -0.5,0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 30 + type: CableApcExtension + components: + - pos: -0.5,-0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 31 + type: CableApcExtension + components: + - pos: -0.5,-1.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 32 + type: CableApcExtension + components: + - pos: 0.5,-1.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 33 + type: CableApcExtension + components: + - pos: -1.5,-1.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 34 + type: CableApcExtension + components: + - pos: 1.5,-1.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +- uid: 35 + type: CableApcExtension + components: + - pos: 2.5,-1.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 36 + type: PoweredSmallLight + components: + - rot: 3.141592653589793 rad + pos: 2.5,-1.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - enabled: False + type: AmbientSound + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer +- uid: 37 + type: PoweredSmallLight + components: + - pos: -2.5,0.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - enabled: False + type: AmbientSound + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer +- uid: 38 + type: CableApcExtension + components: + - pos: -1.5,0.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 39 + type: CableApcExtension + components: + - pos: -2.5,0.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 40 + type: CableApcExtension + components: + - pos: 0.5,0.5 + parent: 0 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics +... diff --git a/Resources/Maps/Salvage/small-a-1.yml b/Resources/Maps/Salvage/small-a-1.yml new file mode 100644 index 0000000000..3b9b9132ac --- /dev/null +++ b/Resources/Maps/Salvage/small-a-1.yml @@ -0,0 +1,563 @@ +meta: + format: 2 + name: DemoStation + author: Space-Wizards + postmapinit: false +tilemap: + 0: space + 1: floor_asteroid_coarse_sand0 + 2: floor_asteroid_coarse_sand1 + 3: floor_asteroid_coarse_sand2 + 4: floor_asteroid_coarse_sand_dug + 5: floor_asteroid_sand + 6: floor_asteroid_tile + 7: floor_blue + 8: floor_blue_circuit + 9: floor_dark + 10: floor_elevator_shaft + 11: floor_freezer + 12: floor_glass + 13: floor_gold + 14: floor_green_circuit + 15: floor_hydro + 16: floor_lino + 17: floor_mono + 18: floor_reinforced + 19: floor_rglass + 20: floor_rock_vault + 21: floor_showroom + 22: floor_silver + 23: floor_snow + 24: floor_steel + 25: floor_steel_dirty + 26: floor_techmaint + 27: floor_white + 28: floor_wood + 29: lattice + 30: plating + 31: underplating +grids: +- settings: + chunksize: 16 + tilesize: 1 + chunks: + - ind: "-1,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABQAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAABQAAAA== + - ind: "0,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "-1,0" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "0,0" + tiles: BQAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +entities: +- uid: 0 + components: + - pos: 0.5,0.5 + parent: null + type: Transform + - index: 0 + type: MapGrid + - angularDamping: 0.3 + fixedRotation: False + bodyType: Dynamic + type: Physics + - fixtures: + - shape: !type:PolygonShape + vertices: + - 3,0 + - 3,1 + - 0,1 + - 0,0 + id: grid_chunk-0-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,-3 + - 1,-2 + - 0,-2 + - 0,-3 + id: grid_chunk-0--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-2 + - 3,0 + - 0,0 + - 0,-2 + id: grid_chunk-0--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 2,1 + - 2,2 + - 0,2 + - 0,1 + id: grid_chunk-0-1 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,2 + - 1,3 + - 0,3 + - 0,2 + id: grid_chunk-0-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,0 + - 0,2 + - -4,2 + - -4,0 + id: grid_chunk--4-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 32 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-4 + - 0,-2 + - -3,-2 + - -3,-4 + id: grid_chunk--3--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 24 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-2 + - 0,0 + - -4,0 + - -4,-2 + id: grid_chunk--4--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 32 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,2 + - 0,3 + - -3,3 + - -3,2 + id: grid_chunk--3-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + type: Fixtures + - gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + type: Gravity + - tiles: + -4,-2: 0 + -4,-1: 0 + -3,-4: 0 + -3,-3: 0 + -3,-2: 0 + -3,-1: 0 + -2,-4: 0 + -2,-3: 0 + -2,-2: 0 + -2,-1: 1 + -1,-4: 0 + -1,-3: 0 + -1,-2: 1 + -1,-1: 2 + 0,-3: 0 + 0,-2: 0 + 0,-1: 1 + 1,-2: 0 + 1,-1: 0 + 2,-2: 0 + 2,-1: 0 + -4,0: 0 + -4,1: 0 + -3,0: 0 + -3,1: 0 + -3,2: 0 + -2,0: 3 + -2,1: 0 + -2,2: 0 + -1,0: 1 + -1,1: 0 + -1,2: 0 + 0,0: 0 + 0,1: 0 + 0,2: 0 + 1,0: 0 + 1,1: 0 + 2,0: 0 + uniqueMixes: + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 0 + - 0 + - 0 + - 6666.982 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 9000 + moles: + - 0 + - 0 + - 0 + - 6666.982 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 6666.982 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + type: GridAtmosphere +- uid: 1 + type: AsteroidRock + components: + - pos: -2.5,2.5 + parent: 0 + type: Transform +- uid: 2 + type: AsteroidRock + components: + - pos: -2.5,1.5 + parent: 0 + type: Transform +- uid: 3 + type: AsteroidRock + components: + - pos: -2.5,0.5 + parent: 0 + type: Transform +- uid: 4 + type: AsteroidRock + components: + - pos: -2.5,-0.5 + parent: 0 + type: Transform +- uid: 5 + type: AsteroidRock + components: + - pos: -2.5,-1.5 + parent: 0 + type: Transform +- uid: 6 + type: AsteroidRock + components: + - pos: -2.5,-2.5 + parent: 0 + type: Transform +- uid: 7 + type: AsteroidRock + components: + - pos: -1.5,2.5 + parent: 0 + type: Transform +- uid: 8 + type: AsteroidRock + components: + - pos: -1.5,1.5 + parent: 0 + type: Transform +- uid: 9 + type: SalvageMobSpawner + components: + - pos: -1.5,0.5 + parent: 0 + type: Transform +- uid: 10 + type: CrateMaterialPlasteel + components: + - pos: -1.5,-0.5 + parent: 0 + type: Transform + - isPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: !type:Container + ents: [] + PaperLabel: !type:ContainerSlot {} + type: ContainerContainer +- uid: 11 + type: AsteroidRock + components: + - pos: -1.5,-1.5 + parent: 0 + type: Transform +- uid: 12 + type: AsteroidRock + components: + - pos: -1.5,-2.5 + parent: 0 + type: Transform +- uid: 13 + type: AsteroidRock + components: + - pos: -0.5,2.5 + parent: 0 + type: Transform +- uid: 14 + type: AsteroidRock + components: + - pos: -0.5,1.5 + parent: 0 + type: Transform +- uid: 15 + type: CrateMaterialPlastic + components: + - pos: -0.5,0.5 + parent: 0 + type: Transform + - isPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: !type:Container + ents: [] + PaperLabel: !type:ContainerSlot {} + type: ContainerContainer +- uid: 16 + type: CrateMaterialGlass + components: + - pos: 0.5,-0.5 + parent: 0 + type: Transform + - isPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: !type:Container + ents: [] + PaperLabel: !type:ContainerSlot {} + type: ContainerContainer +- uid: 17 + type: SalvageMaterialCrateSpawner + components: + - pos: -0.5,-1.5 + parent: 0 + type: Transform +- uid: 18 + type: AsteroidRock + components: + - pos: -0.5,-2.5 + parent: 0 + type: Transform +- uid: 19 + type: AsteroidRock + components: + - pos: 0.5,2.5 + parent: 0 + type: Transform +- uid: 20 + type: AsteroidRock + components: + - pos: 0.5,1.5 + parent: 0 + type: Transform +- uid: 21 + type: AsteroidRock + components: + - pos: 0.5,0.5 + parent: 0 + type: Transform +- uid: 22 + type: CrateMaterialSteel + components: + - pos: -0.5,-0.5 + parent: 0 + type: Transform + - isPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: !type:Container + ents: [] + PaperLabel: !type:ContainerSlot {} + type: ContainerContainer +- uid: 23 + type: AsteroidRock + components: + - pos: 0.5,-1.5 + parent: 0 + type: Transform +- uid: 24 + type: AsteroidRock + components: + - pos: 0.5,-2.5 + parent: 0 + type: Transform +- uid: 25 + type: AsteroidRock + components: + - pos: -3.5,1.5 + parent: 0 + type: Transform +- uid: 26 + type: AsteroidRock + components: + - pos: -3.5,0.5 + parent: 0 + type: Transform +- uid: 27 + type: AsteroidRock + components: + - pos: -3.5,-0.5 + parent: 0 + type: Transform +- uid: 28 + type: AsteroidRock + components: + - pos: -3.5,-1.5 + parent: 0 + type: Transform +- uid: 29 + type: AsteroidRock + components: + - pos: 1.5,1.5 + parent: 0 + type: Transform +- uid: 30 + type: AsteroidRock + components: + - pos: 1.5,0.5 + parent: 0 + type: Transform +- uid: 31 + type: AsteroidRock + components: + - pos: 1.5,-0.5 + parent: 0 + type: Transform +- uid: 32 + type: AsteroidRock + components: + - pos: 1.5,-1.5 + parent: 0 + type: Transform +- uid: 33 + type: AsteroidRock + components: + - pos: 2.5,0.5 + parent: 0 + type: Transform +- uid: 34 + type: AsteroidRock + components: + - pos: 2.5,-0.5 + parent: 0 + type: Transform +- uid: 35 + type: AsteroidRock + components: + - pos: 2.5,-1.5 + parent: 0 + type: Transform +- uid: 36 + type: AsteroidRock + components: + - pos: -2.5,-3.5 + parent: 0 + type: Transform +- uid: 37 + type: AsteroidRock + components: + - pos: -1.5,-3.5 + parent: 0 + type: Transform +- uid: 38 + type: AsteroidRock + components: + - pos: -0.5,-3.5 + parent: 0 + type: Transform +- uid: 39 + type: AtmosFixOxygenMarker + components: + - pos: -1.5,0.5 + parent: 0 + type: Transform +- uid: 40 + type: AtmosFixPlasmaMarker + components: + - pos: -0.5,0.5 + parent: 0 + type: Transform +- uid: 41 + type: AtmosFixPlasmaMarker + components: + - pos: -0.5,-0.5 + parent: 0 + type: Transform +- uid: 42 + type: AtmosFixPlasmaMarker + components: + - pos: -1.5,-0.5 + parent: 0 + type: Transform +- uid: 43 + type: AtmosFixPlasmaMarker + components: + - pos: 0.5,-0.5 + parent: 0 + type: Transform +- uid: 44 + type: AtmosFixPlasmaMarker + components: + - pos: -0.5,-1.5 + parent: 0 + type: Transform +... diff --git a/Resources/Maps/Salvage/small-template.yml b/Resources/Maps/Salvage/small-template.yml new file mode 100644 index 0000000000..962c2d7742 --- /dev/null +++ b/Resources/Maps/Salvage/small-template.yml @@ -0,0 +1,277 @@ +meta: + format: 2 + name: DemoStation + author: Space-Wizards + postmapinit: false +tilemap: + 0: space + 1: floor_asteroid_coarse_sand0 + 2: floor_asteroid_coarse_sand1 + 3: floor_asteroid_coarse_sand2 + 4: floor_asteroid_coarse_sand_dug + 5: floor_asteroid_sand + 6: floor_asteroid_tile + 7: floor_blue + 8: floor_blue_circuit + 9: floor_dark + 10: floor_elevator_shaft + 11: floor_freezer + 12: floor_glass + 13: floor_gold + 14: floor_green_circuit + 15: floor_hydro + 16: floor_lino + 17: floor_mono + 18: floor_reinforced + 19: floor_rglass + 20: floor_rock_vault + 21: floor_showroom + 22: floor_silver + 23: floor_snow + 24: floor_steel + 25: floor_steel_dirty + 26: floor_techmaint + 27: floor_white + 28: floor_wood + 29: lattice + 30: plating + 31: underplating +grids: +- settings: + chunksize: 16 + tilesize: 1 + chunks: + - ind: "-1,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAADQAAAA== + - ind: "0,-1" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "-1,0" + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: "0,0" + tiles: HQAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +entities: +- uid: 0 + components: + - pos: 0.5, 0.5 + parent: null + type: Transform + - index: 0 + type: MapGrid + - angularDamping: 0.3 + fixedRotation: False + bodyType: Dynamic + type: Physics + - fixtures: + - shape: !type:PolygonShape + vertices: + - -3,-3 + - -3,-1 + - -4,-1 + - -4,-3 + id: grid_chunk--4--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,-2 + - 1,-1 + - 0,-1 + - 0,-2 + id: grid_chunk-0--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-3 + - 0,-2 + - -1,-2 + - -1,-3 + id: grid_chunk--1--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - -3,0 + - -3,2 + - -4,2 + - -4,0 + id: grid_chunk--4-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,0 + - 3,2 + - 2,2 + - 2,0 + id: grid_chunk-2-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-2 + - 0,-1 + - -2,-1 + - -2,-2 + id: grid_chunk--2--2 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-4 + - 0,-3 + - -4,-3 + - -4,-4 + id: grid_chunk--4--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 16 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,-1 + - 0,0 + - -4,0 + - -4,-1 + id: grid_chunk--4--1 + mask: + - MapGrid + layer: + - MapGrid + mass: 16 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,1 + - 0,2 + - -1,2 + - -1,1 + id: grid_chunk--1-1 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,2 + - 3,3 + - 0,3 + - 0,2 + id: grid_chunk-0-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 1,0 + - 1,1 + - 0,1 + - 0,0 + id: grid_chunk-0-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 4 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-3 + - 3,-1 + - 2,-1 + - 2,-3 + id: grid_chunk-2--3 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-1 + - 3,0 + - 0,0 + - 0,-1 + id: grid_chunk-0--1 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 3,-4 + - 3,-3 + - 0,-3 + - 0,-4 + id: grid_chunk-0--4 + mask: + - MapGrid + layer: + - MapGrid + mass: 12 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,2 + - 0,3 + - -4,3 + - -4,2 + id: grid_chunk--4-2 + mask: + - MapGrid + layer: + - MapGrid + mass: 16 + restitution: 0.1 + - shape: !type:PolygonShape + vertices: + - 0,0 + - 0,1 + - -2,1 + - -2,0 + id: grid_chunk--2-0 + mask: + - MapGrid + layer: + - MapGrid + mass: 8 + restitution: 0.1 + type: Fixtures + - gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + type: Gravity +... diff --git a/Resources/Maps/knightship.yml b/Resources/Maps/knightship.yml index 3da4a0e982..687bac4db4 100644 --- a/Resources/Maps/knightship.yml +++ b/Resources/Maps/knightship.yml @@ -5625,4 +5625,17 @@ entities: - pos: 0.5,-9.5 parent: 0 type: Transform +- uid: 559 + type: SalvageLocator + components: + - pos: 0.5,5.5 + rot: 3.141592653589793 rad + parent: 0 + type: Transform +- uid: 560 + type: CrateSalvageEquipment + components: + - pos: 2.5,5.5 + parent: 0 + type: Transform ... diff --git a/Resources/Maps/packedstation.yml b/Resources/Maps/packedstation.yml index eebdac31b5..55584d17e9 100644 --- a/Resources/Maps/packedstation.yml +++ b/Resources/Maps/packedstation.yml @@ -26998,21 +26998,14 @@ entities: parent: 0 type: Transform - uid: 2090 - type: CrateGenericonimo + type: SalvageMagnet components: - pos: 6.5,32.5 + rot: -1.5707963267948966 rad parent: 0 type: Transform - - isPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: !type:Container - ents: [] - labelSlot: !type:ContainerSlot {} - PaperLabel: !type:ContainerSlot {} - type: ContainerContainer - uid: 2091 - type: CrateGenericonimo + type: CrateSalvageEquipment components: - pos: 7.5,31.5 parent: 0 diff --git a/Resources/Maps/saltern.yml b/Resources/Maps/saltern.yml index 5267c40d53..dfffcbd797 100644 --- a/Resources/Maps/saltern.yml +++ b/Resources/Maps/saltern.yml @@ -72553,4 +72553,17 @@ entities: - pos: 14.5,-0.5 parent: 853 type: Transform +- uid: 7116 + type: SalvageMagnet + components: + - rot: 3.141592697301183 rad + pos: 23.5,11.5 + parent: 853 + type: Transform +- uid: 7117 + type: CrateSalvageEquipment + components: + - pos: 23.5,13.5 + parent: 853 + type: Transform ... diff --git a/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml b/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml new file mode 100644 index 0000000000..2c93d934e8 --- /dev/null +++ b/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml @@ -0,0 +1,82 @@ +- type: entity + id: CrateSalvageEquipment + name: "salvage equipment crate" + description: For the daring. + suffix: Filled + parent: CrateGenericonimo + components: + - type: StorageFill + contents: + - id: ClothingHeadHelmetHardsuitSalvage + - id: ClothingOuterHardsuitSalvage + - id: ClothingMaskBreath + - id: OxygenTankFilled + - id: FireExtinguisher + - id: ClothingShoesBootsMag + - id: Pickaxe + # bare-minimum for cutting apart walls + # not giving them wirecutters/etc. for balance reasons + - id: Welder + - id: Wrench + - id: Screwdriver + - id: Crowbar + +- type: entity + id: CrateSalvageAssortedGoodies + suffix: Filled, Salvage Random + abstract: true # You should use SalvageMaterialCrateSpawner instead + parent: CrateGenericonimo + components: + - type: StorageFill + contents: + # Normal (10%) + - id: ToolboxEmergencyFilled + prob: 0.1 + - id: ClothingMaskBreath + prob: 0.1 + - id: OxygenTankFilled + prob: 0.1 + - id: SheetPlasma + prob: 0.1 + # - Service + - id: CrayonBox + prob: 0.1 + # - Medical + - id: MedkitFilled + prob: 0.1 + - id: BoxSyringe + prob: 0.1 + - id: BoxBeaker + prob: 0.1 + # - Scaf + - id: ClothingHeadHelmetScaf + prob: 0.1 + - id: ClothingOuterArmorScaf + prob: 0.1 + # - Heh + - id: SalvageHumanCorpse + prob: 0.1 + # Interesting (1%) + # - Ammo + - id: BoxMagnum + prob: 0.01 + # - #shinies + - id: PowerCellLargeHyper + prob: 0.01 + # Just no (0.1%) + # - Working guns + - id: RevolverDeckard + prob: 0.001 + - id: RevolverInspector + prob: 0.001 + # - Skub + - id: Skub + prob: 0.001 + # TRAITOR EQUIPMENT (0.01%) + - id: Telecrystal10 + prob: 0.0001 + - id: RevolverPredator + prob: 0.0001 + - id: RevolverMateba + prob: 0.0001 + diff --git a/Resources/Prototypes/Catalog/Fills/Paper/salvage_lore.yml b/Resources/Prototypes/Catalog/Fills/Paper/salvage_lore.yml new file mode 100644 index 0000000000..ec09546423 --- /dev/null +++ b/Resources/Prototypes/Catalog/Fills/Paper/salvage_lore.yml @@ -0,0 +1,101 @@ +# ---- SPECIFICS ---- + +- type: entity + id: PaperWrittenSalvageLoreMedium1PlasmaTrap + abstract: true # keep this from spamming spawn sheet + suffix: "Salvage: Lore: Medium 1: Plasma Trap" + parent: PaperWritten + components: + - type: Paper + content: | + Heheheheh, no way in hell they're going to get at our stash NOW, is there? + I rigged the area where our stuff's at to be a toasty thousand K. + You know how to drain it when we need it out. + - J. + +# ---- GAMING ---- + +- type: entity + name: Salvage Lore Paper Gaming Spawner + id: SalvageLorePaperGamingSpawner + parent: MarkerBase + components: + - type: Sprite + layers: + - state: red + - texture: Objects/Misc/bureaucracy.rsi/paper_words.png + - type: RandomSpawner + prototypes: + - PaperWrittenSalvageLoreGaming1 + - PaperWrittenSalvageLoreGaming2 + - PaperWrittenSalvageLoreGaming3 + - PaperWrittenSalvageLoreGaming4 + offset: 0.1 + +- type: entity + id: PaperWrittenSalvageLoreGaming1 + abstract: true # keep this from spamming spawn sheet + suffix: "Salvage: Lore: Gaming 1" + parent: PaperWritten + components: + - type: Paper + content: | + Can't stay for the game. + Engineering want me to keep a close eye on the singularity SMESes. + Leaving this so you know what's up. + Sorry. + - Alexander + +- type: entity + id: PaperWrittenSalvageLoreGaming2 + abstract: true # keep this from spamming spawn sheet + suffix: "Salvage: Lore: Gaming 2" + parent: PaperWritten + components: + - type: Paper + content: | + Johny Clowe + Class: Druid + Alignment: Neutral Good + Str: 1,294,139 + Dex: 4,102,103 + Con: 9,522,913 + Int: 528,491 + Wis: 1 + Cha: 1 + + Where's the age? + Why are those ability scores so ridiculous? + What even are you trying to do here, Leah? - Your Friendly DM + +- type: entity + id: PaperWrittenSalvageLoreGaming3 + abstract: true # keep this from spamming spawn sheet + suffix: "Salvage: Lore: Gaming 3" + parent: PaperWritten + components: + - type: Paper + content: | + THE GIANT SPACE FLY FROM SPACE + Session 1: They should have just learned what's going on with the world and the Giant Space Fly. + Session 2: They should know to ask the Wizard's Court about seismic distortions. + Session 3: On their way to underground lair. + Session 4: Just ran into the Architect Of Flies. + Oh dear goodness they just started randomly killing everybody + +- type: entity + id: PaperWrittenSalvageLoreGaming4 + abstract: true # keep this from spamming spawn sheet + suffix: "Salvage: Lore: Gaming 4" + parent: PaperWritten + components: + - type: Paper + content: | + Won't be able to come to the meet, chemist blew up the hospital again. + Fifth time this shift. + It's amazing. + But not in a good way. + Cheers, - Arielle + +# ---- + diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/salvage.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/salvage.yml new file mode 100644 index 0000000000..45a1a96d1c --- /dev/null +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/salvage.yml @@ -0,0 +1,67 @@ +- type: entity + name: Salvage Material Crate Spawner + id: SalvageMaterialCrateSpawner + parent: MarkerBase + components: + - type: Sprite + layers: + - state: red + - texture: Structures/Storage/Crates/generic.rsi/crate_icon.png + - type: RandomSpawner + rarePrototypes: + - SalvageHumanCorpse + - CrateMaterialPlasteel + - CrateMaterialWood + - CrateMaterialPlastic + - CrateSalvageEquipment + - CrateMaterialSteel + - CrateMaterialGlass + rareChance: 0.4 + prototypes: + - CrateSalvageAssortedGoodies + chance: 0.9 + offset: 0.0 + +- type: entity + name: Salvage Canister Spawner + id: SalvageCanisterSpawner + parent: MarkerBase + components: + - type: Sprite + layers: + - state: red + - texture: Structures/Storage/canister.rsi/blue.png + - type: RandomSpawner + rarePrototypes: + - PlasmaCanister + rareChance: 0.03 + prototypes: + - AirCanister + - NitrogenCanister + - OxygenCanister + - CarbonDioxideCanister + - WaterVaporCanister + chance: 0.9 + offset: 0.0 + +- type: entity + name: Salvage Mob Spawner + id: SalvageMobSpawner + parent: MarkerBase + components: + - type: Sprite + layers: + - state: red + - texture: Mobs/Aliens/Carps/space.rsi/icon.png + - type: RandomSpawner + prototypes: + - MobCarp + - MobCarp + - MobCarp + - MobCarp + - MobCarp + - PlushieCarp + - DehydratedSpaceCarp + chance: 0.25 + offset: 0.2 + diff --git a/Resources/Prototypes/Entities/Markers/atmos_blocker.yml b/Resources/Prototypes/Entities/Markers/atmos_blocker.yml index 18973d03c8..51f9f56a49 100644 --- a/Resources/Prototypes/Entities/Markers/atmos_blocker.yml +++ b/Resources/Prototypes/Entities/Markers/atmos_blocker.yml @@ -66,3 +66,20 @@ - type: AtmosFixMarker mode: 4 +- type: entity + name: Atmos Fix Instant Plasmafire Marker + id: AtmosFixInstantPlasmaFireMarker + description: "INSTANT PLASMAFIRE" + parent: MarkerBase + components: + - type: Sprite + layers: + - sprite: Markers/atmos.rsi # { + state: base-hot + shader: unshaded + - sprite: Markers/atmos.rsi + shader: unshaded # } + state: fire + - type: AtmosFixMarker + mode: 5 + diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/human.yml b/Resources/Prototypes/Entities/Mobs/NPCs/human.yml index e2840a1c5d..d5a4c85027 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/human.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/human.yml @@ -28,3 +28,16 @@ - Thirst - Idle - Spirate + +- type: entity + parent: MobHumanBase + suffix: Dead + id: SalvageHumanCorpse + name: unidentified human + description: We barely knew ye. + components: + - type: Damageable + damage: + types: + Blunt: 200 + diff --git a/Resources/Prototypes/Entities/Structures/Machines/salvage.yml b/Resources/Prototypes/Entities/Structures/Machines/salvage.yml new file mode 100644 index 0000000000..5440bb243b --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Machines/salvage.yml @@ -0,0 +1,25 @@ +- type: entity + id: SalvageMagnet + parent: BaseMachine + name: salvage magnet + description: "Pulls in salvage." + components: + - type: Sprite + layers: + - sprite: Structures/Machines/salvage.rsi + state: salvage-magnet + # Ideally, there'd be lights indicating power usage and a big red lamp indicating loss + - type: Rotatable + - type: SalvageMagnet + offset: 0, -32 + +# For Knightship +- type: entity + id: SalvageLocator + parent: SalvageMagnet + name: salvage locator + description: "Locates salvage." + components: + - type: SalvageMagnet + offset: 0, -12 + diff --git a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml index c1f4c221f4..235a302e1a 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml @@ -23,6 +23,7 @@ - type: Occluder sizeX: 32 sizeY: 32 + - type: Airtight - type: Appearance visuals: - type: AsteroidRockVisualizer diff --git a/Resources/Prototypes/Maps/salvage.yml b/Resources/Prototypes/Maps/salvage.yml new file mode 100644 index 0000000000..6035777731 --- /dev/null +++ b/Resources/Prototypes/Maps/salvage.yml @@ -0,0 +1,33 @@ +# ALL SALVAGE MAPS SHOULD BE SETUP SUCH THAT TILE REF -1,-1 IS THEIR OFFICIAL CENTRE, +# AND FOR EASE OF UNDERSTANDING, USE - pos: 0.5, 0.5 FOR SAVED POSITION. + +# "Small"-class maps - Max size square: 7x7, indicated size: 3.5 + +- type: salvageMap + id: small1 + name: "Small / Engineering Storage 1" + mapPath: Maps/Salvage/small-1.yml + size: 3.5 + +- type: salvageMap + id: small2 + name: "Small / Gaming Nook 1" + mapPath: Maps/Salvage/small-2.yml + size: 3.5 + +# Small - Asteroids + +- type: salvageMap + id: smallA1 + name: "Small / Asteroid 1 Plasmafire" + mapPath: Maps/Salvage/small-a-1.yml + size: 3.5 + +# "Medium"-class maps - Max size square: 15x15, indicated size: 7.5 + +- type: salvageMap + id: medium1 + name: "Medium / Plasma-Trapped Cache 1" + mapPath: Maps/Salvage/medium-1.yml + size: 7.5 + diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml index ac15a7960c..67073f0f9a 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml @@ -9,6 +9,7 @@ access: - Cargo - Maintenance + - External - type: startingGear id: CargoTechGear diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml index 06390dce09..b77e4d90dd 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml @@ -10,6 +10,7 @@ - Cargo # - Quartermaster - Maintenance + - External - type: startingGear id: QuartermasterGear diff --git a/Resources/Textures/Markers/arrow.rsi/meta.json b/Resources/Textures/Markers/arrow.rsi/meta.json new file mode 100644 index 0000000000..158be37a96 --- /dev/null +++ b/Resources/Textures/Markers/arrow.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Space Wizards Federation", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "mono" + } + ] +} diff --git a/Resources/Textures/Markers/arrow.rsi/mono.png b/Resources/Textures/Markers/arrow.rsi/mono.png new file mode 100644 index 0000000000..59de0257f6 Binary files /dev/null and b/Resources/Textures/Markers/arrow.rsi/mono.png differ diff --git a/Resources/Textures/Markers/atmos.rsi/base-hot.png b/Resources/Textures/Markers/atmos.rsi/base-hot.png new file mode 100644 index 0000000000..e0d68f8b9e Binary files /dev/null and b/Resources/Textures/Markers/atmos.rsi/base-hot.png differ diff --git a/Resources/Textures/Markers/atmos.rsi/fire.png b/Resources/Textures/Markers/atmos.rsi/fire.png new file mode 100644 index 0000000000..71abc46e81 Binary files /dev/null and b/Resources/Textures/Markers/atmos.rsi/fire.png differ diff --git a/Resources/Textures/Markers/atmos.rsi/meta.json b/Resources/Textures/Markers/atmos.rsi/meta.json index 769fac3d2b..019a9f02d2 100644 --- a/Resources/Textures/Markers/atmos.rsi/meta.json +++ b/Resources/Textures/Markers/atmos.rsi/meta.json @@ -10,6 +10,9 @@ { "name": "base" }, + { + "name": "base-hot" + }, { "name": "vacuum" }, @@ -24,6 +27,9 @@ }, { "name": "watervapour" + }, + { + "name": "fire" } ] } diff --git a/Resources/Textures/Structures/Machines/salvage.rsi/meta.json b/Resources/Textures/Structures/Machines/salvage.rsi/meta.json new file mode 100644 index 0000000000..852e539aef --- /dev/null +++ b/Resources/Textures/Structures/Machines/salvage.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Edit by 20kdc using small parts of autolathe from https://github.com/tgstation/tgstation/blob/acb091f9744e9ab7d5a27fb32dd0c03bd019f58c/icons/obj/stationobjs.dmi (may be an earlier version) and tcboss from https://github.com/tgstation/tgstation/blob/e32357e6b0ec0f0a1821d2773f0d1e1d6ce7d494/icons/obj/computer.dmi (may be an earlier version)", + "size": { + "x": 32, + "y": 64 + }, + "states": [ + { + "name": "salvage-magnet", + "directions": 4, + "commentary": "So presumably the lights would represent the power usage of the magnet, when that's in, and the big red lamp would mean something's being lost." + } + ] +} + diff --git a/Resources/Textures/Structures/Machines/salvage.rsi/salvage-magnet.png b/Resources/Textures/Structures/Machines/salvage.rsi/salvage-magnet.png new file mode 100644 index 0000000000..19171634fe Binary files /dev/null and b/Resources/Textures/Structures/Machines/salvage.rsi/salvage-magnet.png differ