@@ -293,6 +293,7 @@ namespace Content.Client.Entry
|
||||
"IncreaseDamageOnWield",
|
||||
"TabletopGame",
|
||||
"LitOnPowered",
|
||||
"Foldable",
|
||||
"TriggerOnSignalReceived",
|
||||
"ToggleDoorOnTrigger",
|
||||
"DeviceNetworkComponent",
|
||||
@@ -322,8 +323,7 @@ namespace Content.Client.Entry
|
||||
"Spreader",
|
||||
"GrowingKudzu",
|
||||
"MonkeyAccent",
|
||||
"ReplacementAccent",
|
||||
"ResistLocker"
|
||||
"ReplacementAccent"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
using Content.Shared.Foldable;
|
||||
using JetBrains.Annotations;
|
||||
|
||||
namespace Content.Client.Foldable;
|
||||
|
||||
[UsedImplicitly]
|
||||
public sealed class FoldableSystem : SharedFoldableSystem
|
||||
{
|
||||
// classic.
|
||||
}
|
||||
@@ -18,42 +18,34 @@ namespace Content.Client.MobState
|
||||
private int? _originalDrawDepth;
|
||||
|
||||
[DataField("normal")]
|
||||
private string? _normal;
|
||||
|
||||
private string? normal;
|
||||
[DataField("crit")]
|
||||
private string? _crit;
|
||||
|
||||
private string? crit;
|
||||
[DataField("dead")]
|
||||
private string? _dead;
|
||||
|
||||
/// <summary>
|
||||
/// Should noRot be turned off when crit / dead.
|
||||
/// </summary>
|
||||
[DataField("rotate")]
|
||||
private bool _rotate;
|
||||
private string? dead;
|
||||
|
||||
void ISerializationHooks.BeforeSerialization()
|
||||
{
|
||||
_stateMap.TryGetValue(DamageState.Alive, out _normal);
|
||||
_stateMap.TryGetValue(DamageState.Critical, out _crit);
|
||||
_stateMap.TryGetValue(DamageState.Dead, out _dead);
|
||||
_stateMap.TryGetValue(DamageState.Alive, out normal);
|
||||
_stateMap.TryGetValue(DamageState.Critical, out crit);
|
||||
_stateMap.TryGetValue(DamageState.Dead, out dead);
|
||||
}
|
||||
|
||||
void ISerializationHooks.AfterDeserialization()
|
||||
{
|
||||
if (_normal != null)
|
||||
if (normal != null)
|
||||
{
|
||||
_stateMap.Add(DamageState.Alive, _normal);
|
||||
_stateMap.Add(DamageState.Alive, normal);
|
||||
}
|
||||
|
||||
if (_crit != null)
|
||||
if (crit != null)
|
||||
{
|
||||
_stateMap.Add(DamageState.Critical, _crit);
|
||||
_stateMap.Add(DamageState.Critical, crit);
|
||||
}
|
||||
|
||||
if (_dead != null)
|
||||
if (dead != null)
|
||||
{
|
||||
_stateMap.Add(DamageState.Dead, _dead);
|
||||
_stateMap.Add(DamageState.Dead, dead);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,16 +65,6 @@ namespace Content.Client.MobState
|
||||
|
||||
_data = data;
|
||||
|
||||
if (_rotate)
|
||||
{
|
||||
sprite.NoRotation = data switch
|
||||
{
|
||||
DamageState.Critical => false,
|
||||
DamageState.Dead => false,
|
||||
_ => true
|
||||
};
|
||||
}
|
||||
|
||||
if (_stateMap.TryGetValue(_data, out var state))
|
||||
{
|
||||
sprite.LayerSetState(DamageStateVisualLayers.Base, state);
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
using Content.Client.Clothing;
|
||||
using Content.Shared.Smoking;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Serialization.Manager.Attributes;
|
||||
|
||||
namespace Content.Client.Smoking
|
||||
{
|
||||
[UsedImplicitly]
|
||||
public sealed class BurnStateVisualizer : AppearanceVisualizer, ISerializationHooks
|
||||
public class BurnStateVisualizer : AppearanceVisualizer
|
||||
{
|
||||
[Dependency] private readonly IEntityManager _entMan = default!;
|
||||
|
||||
[DataField("burntIcon")]
|
||||
private string _burntIcon = "burnt-icon";
|
||||
[DataField("litIcon")]
|
||||
@@ -20,29 +18,49 @@ namespace Content.Client.Smoking
|
||||
[DataField("unlitIcon")]
|
||||
private string _unlitIcon = "icon";
|
||||
|
||||
void ISerializationHooks.AfterDeserialization()
|
||||
{
|
||||
IoCManager.InjectDependencies(this);
|
||||
}
|
||||
[DataField("burntPrefix")]
|
||||
private string _burntPrefix = "unlit";
|
||||
[DataField("litPrefix")]
|
||||
private string _litPrefix = "lit";
|
||||
[DataField("unlitPrefix")]
|
||||
private string _unlitPrefix = "unlit";
|
||||
|
||||
public override void OnChangeData(AppearanceComponent component)
|
||||
{
|
||||
base.OnChangeData(component);
|
||||
|
||||
if (!_entMan.TryGetComponent(component.Owner, out SpriteComponent? sprite))
|
||||
return;
|
||||
|
||||
if (!component.TryGetData<SmokableState>(SmokingVisuals.Smoking, out var burnState))
|
||||
return;
|
||||
|
||||
var state = burnState switch
|
||||
if (component.TryGetData<SmokableState>(SmokingVisuals.Smoking, out var smoking))
|
||||
{
|
||||
SmokableState.Lit => _litIcon,
|
||||
SmokableState.Burnt => _burntIcon,
|
||||
_ => _unlitIcon
|
||||
};
|
||||
SetState(component, smoking);
|
||||
}
|
||||
}
|
||||
|
||||
sprite.LayerSetState(0, state);
|
||||
private void SetState(AppearanceComponent component, SmokableState burnState)
|
||||
{
|
||||
var entities = IoCManager.Resolve<IEntityManager>();
|
||||
var clothing = entities.GetComponentOrNull<ClothingComponent>(component.Owner);
|
||||
|
||||
if (entities.TryGetComponent(component.Owner, out ISpriteComponent sprite))
|
||||
{
|
||||
switch (burnState)
|
||||
{
|
||||
case SmokableState.Lit:
|
||||
if (clothing != null)
|
||||
clothing.EquippedPrefix = _litPrefix;
|
||||
sprite.LayerSetState(0, _litIcon);
|
||||
break;
|
||||
case SmokableState.Burnt:
|
||||
if (clothing != null)
|
||||
clothing.EquippedPrefix = _burntPrefix;
|
||||
sprite.LayerSetState(0, _burntIcon);
|
||||
break;
|
||||
case SmokableState.Unlit:
|
||||
if (clothing != null)
|
||||
clothing.EquippedPrefix = _unlitPrefix;
|
||||
sprite.LayerSetState(0, _unlitIcon);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,13 +10,13 @@ using Content.Server.AI.Utility.Actions;
|
||||
using Content.Server.AI.WorldState;
|
||||
using Content.Server.AI.WorldState.States.Utility;
|
||||
using Content.Server.CPUJob.JobQueues;
|
||||
using Content.Shared.MobState;
|
||||
using Content.Shared.Movement.Components;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Log;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Serialization.Manager.Attributes;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Set;
|
||||
|
||||
namespace Content.Server.AI.Utility.AiLogic
|
||||
{
|
||||
@@ -36,7 +36,7 @@ namespace Content.Server.AI.Utility.AiLogic
|
||||
/// <summary>
|
||||
/// The sum of all BehaviorSets gives us what actions the AI can take
|
||||
/// </summary>
|
||||
[DataField("behaviorSets", customTypeSerializer:typeof(PrototypeIdHashSetSerializer<BehaviorSetPrototype>))]
|
||||
[DataField("behaviorSets")]
|
||||
public HashSet<string> BehaviorSets { get; } = new();
|
||||
|
||||
public List<IAiUtility> AvailableActions { get; set; } = new();
|
||||
|
||||
@@ -35,6 +35,7 @@ public class ChatSanitizationManager : IChatSanitizationManager
|
||||
{ ":D", "chatsan-smiles-widely" },
|
||||
{ "D:", "chatsan-frowns-deeply" },
|
||||
{ ":O", "chatsan-surprised" },
|
||||
{ ":О", "chatsan-surprised" },
|
||||
{ ":3", "chatsan-smiles" }, //nope
|
||||
{ ":S", "chatsan-uncertain" },
|
||||
{ ":>", "chatsan-grins" },
|
||||
@@ -43,7 +44,6 @@ public class ChatSanitizationManager : IChatSanitizationManager
|
||||
{ "хд", "chatsan-laughs" },
|
||||
{ ";-;", "chatsan-cries" },
|
||||
{ ";_;", "chatsan-cries" },
|
||||
{ "qwq", "chatsan-cries" },
|
||||
{ ":u", "chatsan-smiles-smugly" },
|
||||
{ ":v", "chatsan-smiles-smugly" },
|
||||
{ ">:i", "chatsan-annoyed" },
|
||||
@@ -67,11 +67,8 @@ public class ChatSanitizationManager : IChatSanitizationManager
|
||||
{ "lmao", "chatsan-laughs" },
|
||||
{ "lol", "chatsan-laughs" },
|
||||
{ "лол", "chatsan-laughs" },
|
||||
{ "lel", "chatsan-laughs" },
|
||||
{ "kek", "chatsan-laughs" },
|
||||
{ "o7", "chatsan-salutes" },
|
||||
{ "о7", "chatsan-salutes" }, // cyrillic о
|
||||
{ "idk", "chatsan-shrugs" }
|
||||
{ "о7", "chatsan-salutes" } // cyrillic о
|
||||
};
|
||||
|
||||
private bool doSanitize = false;
|
||||
|
||||
@@ -26,6 +26,8 @@ namespace Content.Server.DoAfter
|
||||
|
||||
public EntityCoordinates TargetGrid { get; }
|
||||
|
||||
public bool TookDamage { get; set; }
|
||||
|
||||
public DoAfterStatus Status => AsTask.IsCompletedSuccessfully ? AsTask.Result : DoAfterStatus.Running;
|
||||
|
||||
// NeedHand
|
||||
@@ -60,12 +62,6 @@ namespace Content.Server.DoAfter
|
||||
AsTask = Tcs.Task;
|
||||
}
|
||||
|
||||
public void Cancel()
|
||||
{
|
||||
if (Status == DoAfterStatus.Running)
|
||||
Tcs.SetResult(DoAfterStatus.Cancelled);
|
||||
}
|
||||
|
||||
public void Run(float frameTime, IEntityManager entityManager)
|
||||
{
|
||||
switch (Status)
|
||||
@@ -128,6 +124,11 @@ namespace Content.Server.DoAfter
|
||||
return true;
|
||||
}
|
||||
|
||||
if (EventArgs.BreakOnDamage && TookDamage)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (EventArgs.ExtraCheck != null && !EventArgs.ExtraCheck.Invoke())
|
||||
{
|
||||
return true;
|
||||
|
||||
@@ -3,7 +3,6 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.MobState;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.GameObjects;
|
||||
|
||||
@@ -20,30 +19,20 @@ namespace Content.Server.DoAfter
|
||||
{
|
||||
base.Initialize();
|
||||
SubscribeLocalEvent<DoAfterComponent, DamageChangedEvent>(HandleDamage);
|
||||
SubscribeLocalEvent<DoAfterComponent, MobStateChangedEvent>(HandleStateChanged);
|
||||
}
|
||||
|
||||
private void HandleStateChanged(EntityUid uid, DoAfterComponent component, MobStateChangedEvent args)
|
||||
{
|
||||
if (!args.CurrentMobState.IsIncapacitated())
|
||||
return;
|
||||
|
||||
foreach (var doAfter in component.DoAfters)
|
||||
{
|
||||
doAfter.Cancel();
|
||||
}
|
||||
}
|
||||
|
||||
public void HandleDamage(EntityUid _, DoAfterComponent component, DamageChangedEvent args)
|
||||
{
|
||||
if (!args.InterruptsDoAfters || !args.DamageIncreased)
|
||||
if (component.DoAfters.Count == 0 || !args.InterruptsDoAfters)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (var doAfter in component.DoAfters)
|
||||
{
|
||||
if (doAfter.EventArgs.BreakOnDamage)
|
||||
{
|
||||
doAfter.Cancel();
|
||||
doAfter.TookDamage = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
25
Content.Server/Foldable/FoldableComponent.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
#nullable enable
|
||||
|
||||
using Robust.Shared.Containers;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Serialization.Manager.Attributes;
|
||||
using Robust.Shared.ViewVariables;
|
||||
|
||||
namespace Content.Server.Foldable
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Used to create "foldable structures" that you can pickup like an item when folded. Used for rollerbeds and wheelchairs
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
public class FoldableComponent : Component
|
||||
{
|
||||
public override string Name => "Foldable";
|
||||
|
||||
[DataField("folded")]
|
||||
[ViewVariables]
|
||||
public bool IsFolded = false;
|
||||
|
||||
public bool CanBeFolded = true;
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
using System.Linq;
|
||||
using Content.Server.Buckle.Components;
|
||||
using Content.Server.Storage.Components;
|
||||
using Content.Shared.Foldable;
|
||||
using Content.Shared.Interaction;
|
||||
using Content.Shared.Item;
|
||||
using Content.Shared.Verbs;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.Containers;
|
||||
@@ -12,15 +13,19 @@ using Robust.Shared.Localization;
|
||||
namespace Content.Server.Foldable
|
||||
{
|
||||
[UsedImplicitly]
|
||||
public sealed class FoldableSystem : SharedFoldableSystem
|
||||
public sealed class FoldableSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private SharedContainerSystem _container = default!;
|
||||
|
||||
private const string FoldKey = "FoldedState";
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<FoldableComponent, ComponentInit>(OnFoldableInit);
|
||||
SubscribeLocalEvent<FoldableComponent, StorageOpenAttemptEvent>(OnFoldableOpenAttempt);
|
||||
SubscribeLocalEvent<FoldableComponent, AttemptItemPickupEvent>(OnPickedUpAttempt);
|
||||
SubscribeLocalEvent<FoldableComponent, GetAlternativeVerbsEvent>(AddFoldVerb);
|
||||
}
|
||||
|
||||
@@ -30,27 +35,14 @@ namespace Content.Server.Foldable
|
||||
args.Cancel();
|
||||
}
|
||||
|
||||
public bool TryToggleFold(FoldableComponent comp)
|
||||
private void OnFoldableInit(EntityUid uid, FoldableComponent component, ComponentInit args)
|
||||
{
|
||||
return TrySetFolded(comp, !comp.IsFolded);
|
||||
SetFolded(component, component.IsFolded);
|
||||
}
|
||||
|
||||
public bool CanToggleFold(EntityUid uid, FoldableComponent? fold = null)
|
||||
private bool TryToggleFold(FoldableComponent comp)
|
||||
{
|
||||
if (!Resolve(uid, ref fold))
|
||||
return false;
|
||||
|
||||
// Can't un-fold in hands / inventory
|
||||
if (_container.IsEntityInContainer(uid))
|
||||
return false;
|
||||
|
||||
// If an entity is buckled to the object we can't pick it up or fold it
|
||||
if (TryComp(uid, out StrapComponent? strap) && strap.BuckledEntities.Any())
|
||||
return false;
|
||||
|
||||
// Also check if this entity is "open" (e.g., body bags)
|
||||
return !TryComp(uid, out EntityStorageComponent? storage) || !storage.Open;
|
||||
|
||||
return TrySetFolded(comp, !comp.IsFolded);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -59,14 +51,22 @@ namespace Content.Server.Foldable
|
||||
/// <param name="comp"></param>
|
||||
/// <param name="state">Folded state we want</param>
|
||||
/// <returns>True if successful</returns>
|
||||
public bool TrySetFolded(FoldableComponent comp, bool state)
|
||||
private bool TrySetFolded(FoldableComponent comp, bool state)
|
||||
{
|
||||
if (state == comp.IsFolded)
|
||||
return false;
|
||||
|
||||
if (!CanToggleFold(comp.Owner, comp))
|
||||
if (_container.IsEntityInContainer(comp.Owner))
|
||||
return false;
|
||||
|
||||
// First we check if the foldable object has a strap component
|
||||
if (EntityManager.TryGetComponent(comp.Owner, out StrapComponent? strap))
|
||||
{
|
||||
// If an entity is buckled to the object we can't pick it up or fold it
|
||||
if (strap.BuckledEntities.Any())
|
||||
return false;
|
||||
}
|
||||
|
||||
SetFolded(comp, state);
|
||||
return true;
|
||||
}
|
||||
@@ -76,20 +76,41 @@ namespace Content.Server.Foldable
|
||||
/// </summary>
|
||||
/// <param name="component"></param>
|
||||
/// <param name="folded">If true, the component will become folded, else unfolded</param>
|
||||
public override void SetFolded(FoldableComponent component, bool folded)
|
||||
private void SetFolded(FoldableComponent component, bool folded)
|
||||
{
|
||||
base.SetFolded(component, folded);
|
||||
component.IsFolded = folded;
|
||||
component.CanBeFolded = !_container.IsEntityInContainer(component.Owner);
|
||||
|
||||
// You can't buckle an entity to a folded object
|
||||
if (TryComp(component.Owner, out StrapComponent? strap))
|
||||
if (EntityManager.TryGetComponent(component.Owner, out StrapComponent? strap))
|
||||
strap.Enabled = !component.IsFolded;
|
||||
|
||||
// Update visuals only if the value has changed
|
||||
if (EntityManager.TryGetComponent(component.Owner, out AppearanceComponent? appearance))
|
||||
appearance.SetData(FoldKey, folded);
|
||||
}
|
||||
|
||||
#region Event handlers
|
||||
|
||||
/// <summary>
|
||||
/// Prevents foldable objects to be picked up when unfolded
|
||||
/// </summary>
|
||||
/// <param name="uid"></param>
|
||||
/// <param name="component"></param>
|
||||
/// <param name="args"></param>
|
||||
private void OnPickedUpAttempt(EntityUid uid, FoldableComponent component, AttemptItemPickupEvent args)
|
||||
{
|
||||
if (!component.IsFolded)
|
||||
args.Cancel();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Verb
|
||||
|
||||
private void AddFoldVerb(EntityUid uid, FoldableComponent component, GetAlternativeVerbsEvent args)
|
||||
{
|
||||
if (!args.CanAccess || !args.CanInteract || !CanToggleFold(uid, component))
|
||||
if (!args.CanAccess || !args.CanInteract)
|
||||
return;
|
||||
|
||||
Verb verb = new()
|
||||
|
||||
@@ -98,27 +98,6 @@ namespace Content.Server.Lock
|
||||
return true;
|
||||
}
|
||||
|
||||
public void Unlock(EntityUid uid, EntityUid user, LockComponent? lockComp = null)
|
||||
{
|
||||
if (!Resolve(uid, ref lockComp))
|
||||
return;
|
||||
|
||||
lockComp.Owner.PopupMessage(user, Loc.GetString("lock-comp-do-unlock-success", ("entityName", Name: EntityManager.GetComponent<MetaDataComponent>(lockComp.Owner).EntityName)));
|
||||
lockComp.Locked = false;
|
||||
|
||||
if (lockComp.UnlockSound != null)
|
||||
{
|
||||
SoundSystem.Play(Filter.Pvs(lockComp.Owner), lockComp.UnlockSound.GetSound(), lockComp.Owner, AudioParams.Default.WithVolume(-5));
|
||||
}
|
||||
|
||||
if (EntityManager.TryGetComponent(lockComp.Owner, out AppearanceComponent? appearanceComp))
|
||||
{
|
||||
appearanceComp.SetData(StorageVisuals.Locked, false);
|
||||
}
|
||||
|
||||
RaiseLocalEvent(lockComp.Owner, new LockToggledEvent(false));
|
||||
}
|
||||
|
||||
public bool TryUnlock(EntityUid uid, EntityUid user, LockComponent? lockComp = null)
|
||||
{
|
||||
if (!Resolve(uid, ref lockComp))
|
||||
@@ -130,7 +109,21 @@ namespace Content.Server.Lock
|
||||
if (!HasUserAccess(uid, user, quiet: false))
|
||||
return false;
|
||||
|
||||
Unlock(uid, user, lockComp);
|
||||
lockComp.Owner.PopupMessage(user, Loc.GetString("lock-comp-do-unlock-success", ("entityName", Name: EntityManager.GetComponent<MetaDataComponent>(lockComp.Owner).EntityName)));
|
||||
lockComp.Locked = false;
|
||||
|
||||
if(lockComp.UnlockSound != null)
|
||||
{
|
||||
SoundSystem.Play(Filter.Pvs(lockComp.Owner), lockComp.UnlockSound.GetSound(), lockComp.Owner, AudioParams.Default.WithVolume(-5));
|
||||
}
|
||||
|
||||
if (EntityManager.TryGetComponent(lockComp.Owner, out AppearanceComponent? appearanceComp))
|
||||
{
|
||||
appearanceComp.SetData(StorageVisuals.Locked, false);
|
||||
}
|
||||
|
||||
RaiseLocalEvent(lockComp.Owner, new LockToggledEvent(false));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -24,13 +24,5 @@ namespace Content.Server.Nutrition.Components
|
||||
|
||||
[DataField("state")]
|
||||
public SmokableState State { get; set; } = SmokableState.Unlit;
|
||||
|
||||
// clothing prefixes
|
||||
[DataField("burntPrefix")]
|
||||
public string BurntPrefix = "unlit";
|
||||
[DataField("litPrefix")]
|
||||
public string LitPrefix = "lit";
|
||||
[DataField("unlitPrefix")]
|
||||
public string UnlitPrefix = "unlit";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ using System.Linq;
|
||||
using Content.Server.Body.Components;
|
||||
using Content.Server.Body.Systems;
|
||||
using Content.Server.Chemistry.EntitySystems;
|
||||
using Content.Server.Clothing.Components;
|
||||
using Content.Server.Nutrition.Components;
|
||||
using Content.Shared.Chemistry;
|
||||
using Content.Shared.Chemistry.Reagent;
|
||||
@@ -39,22 +38,14 @@ namespace Content.Server.Nutrition.EntitySystems
|
||||
InitializeCigars();
|
||||
}
|
||||
|
||||
public void SetSmokableState(EntityUid uid, SmokableState state, SmokableComponent? smokable = null,
|
||||
AppearanceComponent? appearance = null, ClothingComponent? clothing = null)
|
||||
public void SetSmokableState(EntityUid uid, SmokableState state, SmokableComponent? smokable = null, AppearanceComponent? appearance = null)
|
||||
{
|
||||
if (!Resolve(uid, ref smokable, ref appearance, ref clothing))
|
||||
if (!Resolve(uid, ref smokable, ref appearance))
|
||||
return;
|
||||
|
||||
smokable.State = state;
|
||||
appearance.SetData(SmokingVisuals.Smoking, state);
|
||||
|
||||
clothing.EquippedPrefix = state switch
|
||||
{
|
||||
SmokableState.Lit => smokable.LitPrefix,
|
||||
SmokableState.Burnt => smokable.BurntPrefix,
|
||||
_ => smokable.UnlitPrefix
|
||||
};
|
||||
|
||||
if (state == SmokableState.Lit)
|
||||
_active.Add(uid);
|
||||
else
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Serialization.Manager.Attributes;
|
||||
using Robust.Shared.ViewVariables;
|
||||
using Robust.Shared.Analyzers;
|
||||
using System.Threading;
|
||||
|
||||
namespace Content.Server.Resist;
|
||||
|
||||
[RegisterComponent]
|
||||
[Friend(typeof(ResistLockerSystem))]
|
||||
public class ResistLockerComponent : Component
|
||||
{
|
||||
public override string Name => "ResistLocker";
|
||||
|
||||
/// <summary>
|
||||
/// How long will this locker take to kick open, defaults to 2 minutes
|
||||
/// </summary>
|
||||
[ViewVariables]
|
||||
[DataField("resistTime")]
|
||||
public float ResistTime = 120f;
|
||||
|
||||
/// <summary>
|
||||
/// For quick exit if the player attempts to move while already resisting
|
||||
/// </summary>
|
||||
[ViewVariables]
|
||||
public bool IsResisting = false;
|
||||
|
||||
/// <summary>
|
||||
/// Cancellation token used to cancel the DoAfter if the container is opened before it's complete
|
||||
/// </summary>
|
||||
public CancellationTokenSource? CancelToken;
|
||||
}
|
||||
@@ -1,114 +0,0 @@
|
||||
using Content.Shared.Movement;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Content.Server.Storage.Components;
|
||||
using Content.Server.DoAfter;
|
||||
using Content.Server.Lock;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Player;
|
||||
using Robust.Shared.Containers;
|
||||
using Content.Server.Popups;
|
||||
using Robust.Shared.Localization;
|
||||
|
||||
namespace Content.Server.Resist;
|
||||
|
||||
public class ResistLockerSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly DoAfterSystem _doAfterSystem = default!;
|
||||
[Dependency] private readonly PopupSystem _popupSystem = default!;
|
||||
[Dependency] private readonly LockSystem _lockSystem = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
SubscribeLocalEvent<ResistLockerComponent, RelayMovementEntityEvent>(OnRelayMovement);
|
||||
SubscribeLocalEvent<ResistLockerComponent, ResistDoAfterComplete>(OnDoAfterComplete);
|
||||
SubscribeLocalEvent<ResistLockerComponent, ResistDoAfterCancelled>(OnDoAfterCancelled);
|
||||
SubscribeLocalEvent<ResistLockerComponent, EntRemovedFromContainerMessage>(OnRemovedFromContainer);
|
||||
}
|
||||
|
||||
private void OnRelayMovement(EntityUid uid, ResistLockerComponent component, RelayMovementEntityEvent args)
|
||||
{
|
||||
if (component.IsResisting)
|
||||
return;
|
||||
|
||||
if (!TryComp(uid, out EntityStorageComponent? storageComponent))
|
||||
return;
|
||||
|
||||
if (TryComp<LockComponent>(uid, out var lockComponent) && lockComponent.Locked || storageComponent.IsWeldedShut)
|
||||
{
|
||||
AttemptResist(args.Entity, uid, storageComponent, component);
|
||||
}
|
||||
}
|
||||
|
||||
private void AttemptResist(EntityUid user, EntityUid target, EntityStorageComponent? storageComponent = null, ResistLockerComponent? resistLockerComponent = null)
|
||||
{
|
||||
if (!Resolve(target, ref storageComponent, ref resistLockerComponent))
|
||||
return;
|
||||
|
||||
resistLockerComponent.CancelToken = new();
|
||||
var doAfterEventArgs = new DoAfterEventArgs(user, resistLockerComponent.ResistTime, resistLockerComponent.CancelToken.Token, target)
|
||||
{
|
||||
BreakOnTargetMove = false,
|
||||
BreakOnUserMove = true,
|
||||
BreakOnDamage = true,
|
||||
BreakOnStun = true,
|
||||
NeedHand = false, //No hands 'cause we be kickin'
|
||||
TargetFinishedEvent = new ResistDoAfterComplete(user, target),
|
||||
TargetCancelledEvent = new ResistDoAfterCancelled(user)
|
||||
};
|
||||
|
||||
resistLockerComponent.IsResisting = true;
|
||||
_popupSystem.PopupEntity(Loc.GetString("resist-locker-component-start-resisting"), user, Filter.Entities(user));
|
||||
_doAfterSystem.DoAfter(doAfterEventArgs);
|
||||
}
|
||||
|
||||
private void OnDoAfterComplete(EntityUid uid, ResistLockerComponent component, ResistDoAfterComplete ev)
|
||||
{
|
||||
component.IsResisting = false;
|
||||
|
||||
if (TryComp<EntityStorageComponent>(uid, out var storageComponent))
|
||||
{
|
||||
if (storageComponent.IsWeldedShut)
|
||||
storageComponent.IsWeldedShut = false;
|
||||
|
||||
if (TryComp<LockComponent>(ev.Target, out var lockComponent))
|
||||
_lockSystem.Unlock(uid, ev.User, lockComponent);
|
||||
|
||||
component.CancelToken = null;
|
||||
storageComponent.TryOpenStorage(ev.User);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDoAfterCancelled(EntityUid uid, ResistLockerComponent component, ResistDoAfterCancelled ev)
|
||||
{
|
||||
component.IsResisting = false;
|
||||
component.CancelToken = null;
|
||||
_popupSystem.PopupEntity(Loc.GetString("resist-locker-component-resist-interrupted"), ev.User, Filter.Entities(ev.User));
|
||||
}
|
||||
|
||||
private void OnRemovedFromContainer(EntityUid uid, ResistLockerComponent component, EntRemovedFromContainerMessage message)
|
||||
{
|
||||
component.CancelToken?.Cancel();
|
||||
}
|
||||
|
||||
private class ResistDoAfterComplete : EntityEventArgs
|
||||
{
|
||||
public readonly EntityUid User;
|
||||
public readonly EntityUid Target;
|
||||
public ResistDoAfterComplete(EntityUid userUid, EntityUid target)
|
||||
{
|
||||
User = userUid;
|
||||
Target = target;
|
||||
}
|
||||
}
|
||||
|
||||
private class ResistDoAfterCancelled : EntityEventArgs
|
||||
{
|
||||
public readonly EntityUid User;
|
||||
|
||||
public ResistDoAfterCancelled(EntityUid userUid)
|
||||
{
|
||||
User = userUid;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -183,9 +183,7 @@ namespace Content.Server.Storage.Components
|
||||
{
|
||||
if (IsWeldedShut)
|
||||
{
|
||||
if (!silent && !Contents.Contains(user))
|
||||
Owner.PopupMessage(user, Loc.GetString("entity-storage-component-welded-shut-message"));
|
||||
|
||||
if (!silent) Owner.PopupMessage(user, Loc.GetString("entity-storage-component-welded-shut-message"));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
using Robust.Shared.Analyzers;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Serialization.Manager.Attributes;
|
||||
using Robust.Shared.ViewVariables;
|
||||
using System;
|
||||
|
||||
namespace Content.Shared.Foldable;
|
||||
|
||||
/// <summary>
|
||||
/// Used to create "foldable structures" that you can pickup like an item when folded. Used for rollerbeds and wheelchairs
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
[NetworkedComponent]
|
||||
[Friend(typeof(SharedFoldableSystem))]
|
||||
public class FoldableComponent : Component
|
||||
{
|
||||
public override string Name => "Foldable";
|
||||
|
||||
[DataField("folded")]
|
||||
public bool IsFolded = false;
|
||||
}
|
||||
|
||||
// ahhh, the ol' "state thats just a copy of the component".
|
||||
[Serializable, NetSerializable]
|
||||
public class FoldableComponentState : ComponentState
|
||||
{
|
||||
public readonly bool IsFolded;
|
||||
|
||||
public FoldableComponentState(bool isFolded)
|
||||
{
|
||||
IsFolded = isFolded;
|
||||
}
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
using Content.Shared.Item;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.GameStates;
|
||||
|
||||
namespace Content.Shared.Foldable;
|
||||
|
||||
[UsedImplicitly]
|
||||
public abstract class SharedFoldableSystem : EntitySystem
|
||||
{
|
||||
private const string FoldKey = "FoldedState";
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<FoldableComponent, ComponentGetState>(OnGetState);
|
||||
SubscribeLocalEvent<FoldableComponent, ComponentHandleState>(OnHandleState);
|
||||
|
||||
SubscribeLocalEvent<FoldableComponent, ComponentInit>(OnFoldableInit);
|
||||
SubscribeLocalEvent<FoldableComponent, AttemptItemPickupEvent>(OnPickedUpAttempt);
|
||||
}
|
||||
|
||||
private void OnGetState(EntityUid uid, FoldableComponent component, ref ComponentGetState args)
|
||||
{
|
||||
args.State = new FoldableComponentState(component.IsFolded);
|
||||
}
|
||||
|
||||
private void OnHandleState(EntityUid uid, FoldableComponent component, ref ComponentHandleState args)
|
||||
{
|
||||
if (args.Current is not FoldableComponentState state)
|
||||
return;
|
||||
|
||||
if (state.IsFolded != component.IsFolded)
|
||||
SetFolded(component, state.IsFolded);
|
||||
}
|
||||
|
||||
private void OnFoldableInit(EntityUid uid, FoldableComponent component, ComponentInit args)
|
||||
{
|
||||
SetFolded(component, component.IsFolded);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set the folded state of the given <see cref="FoldableComponent"/>
|
||||
/// </summary>
|
||||
/// <param name="component"></param>
|
||||
/// <param name="folded">If true, the component will become folded, else unfolded</param>
|
||||
public virtual void SetFolded(FoldableComponent component, bool folded)
|
||||
{
|
||||
component.IsFolded = folded;
|
||||
component.Dirty();
|
||||
|
||||
if (TryComp(component.Owner, out AppearanceComponent? appearance))
|
||||
appearance.SetData(FoldKey, folded);
|
||||
}
|
||||
|
||||
private void OnPickedUpAttempt(EntityUid uid, FoldableComponent component, AttemptItemPickupEvent args)
|
||||
{
|
||||
if (!component.IsFolded)
|
||||
args.Cancel();
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,6 @@ using Robust.Shared.IoC;
|
||||
using Robust.Shared.Log;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Maths;
|
||||
using Robust.Shared.Physics;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Serialization.Manager.Attributes;
|
||||
using Robust.Shared.ViewVariables;
|
||||
@@ -498,14 +497,11 @@ namespace Content.Shared.Hands.Components
|
||||
/// </summary>
|
||||
protected bool CanInsertEntityIntoHand(Hand hand, EntityUid entity)
|
||||
{
|
||||
var handContainer = hand.Container;
|
||||
if (handContainer == null) return false;
|
||||
|
||||
if (!_entMan.HasComponent<SharedItemComponent>(entity))
|
||||
return false;
|
||||
|
||||
if (_entMan.TryGetComponent(entity, out IPhysBody? physics) && physics.BodyType == BodyType.Static)
|
||||
return false;
|
||||
var handContainer = hand.Container;
|
||||
if (handContainer == null) return false;
|
||||
|
||||
if (!handContainer.CanInsert(entity)) return false;
|
||||
|
||||
|
||||
@@ -81,6 +81,9 @@ namespace Content.Shared.Hands
|
||||
return;
|
||||
}
|
||||
|
||||
if (TryComp(entity, out SharedSpriteComponent? component))
|
||||
component.Visible = true;
|
||||
|
||||
hands.Dirty();
|
||||
|
||||
var unequippedHandMessage = new UnequippedHandEvent(uid, entity, hand);
|
||||
@@ -112,6 +115,9 @@ namespace Content.Shared.Hands
|
||||
|
||||
_adminLogSystem.Add(LogType.Pickup, LogImpact.Low, $"{ToPrettyString(uid):user} picked up {ToPrettyString(entity):entity}");
|
||||
|
||||
if (TryComp(entity, out SharedSpriteComponent? component))
|
||||
component.Visible = false;
|
||||
|
||||
hands.Dirty();
|
||||
|
||||
var equippedHandMessage = new EquippedHandEvent(uid, entity, hand);
|
||||
|
||||
@@ -601,8 +601,13 @@ namespace Content.Shared.Interaction
|
||||
|
||||
protected void InteractionActivate(EntityUid user, EntityUid used)
|
||||
{
|
||||
if (TryComp(used, out UseDelayComponent? delayComponent) && delayComponent.ActiveDelay)
|
||||
return;
|
||||
if (TryComp(used, out UseDelayComponent? delayComponent))
|
||||
{
|
||||
if (delayComponent.ActiveDelay)
|
||||
return;
|
||||
|
||||
delayComponent.BeginDelay();
|
||||
}
|
||||
|
||||
if (!_actionBlockerSystem.CanInteract(user) || !_actionBlockerSystem.CanUse(user))
|
||||
return;
|
||||
@@ -620,7 +625,6 @@ namespace Content.Shared.Interaction
|
||||
RaiseLocalEvent(used, activateMsg);
|
||||
if (activateMsg.Handled)
|
||||
{
|
||||
delayComponent?.BeginDelay();
|
||||
_adminLogSystem.Add(LogType.InteractActivate, LogImpact.Low, $"{ToPrettyString(user):user} activated {ToPrettyString(used):used}");
|
||||
return;
|
||||
}
|
||||
@@ -630,7 +634,6 @@ namespace Content.Shared.Interaction
|
||||
|
||||
var activateEventArgs = new ActivateEventArgs(user, used);
|
||||
activateComp.Activate(activateEventArgs);
|
||||
delayComponent?.BeginDelay();
|
||||
_adminLogSystem.Add(LogType.InteractActivate, LogImpact.Low, $"{ToPrettyString(user):user} activated {ToPrettyString(used):used}"); // No way to check success.
|
||||
}
|
||||
#endregion
|
||||
@@ -657,16 +660,18 @@ namespace Content.Shared.Interaction
|
||||
/// <returns>True if the interaction was handled. False otherwise</returns>
|
||||
public bool UseInteraction(EntityUid user, EntityUid used)
|
||||
{
|
||||
if (TryComp(used, out UseDelayComponent? delayComponent) && delayComponent.ActiveDelay)
|
||||
return true; // if the item is on cooldown, we consider this handled.
|
||||
if (TryComp(used, out UseDelayComponent? delayComponent))
|
||||
{
|
||||
if (delayComponent.ActiveDelay)
|
||||
return true; // if the item is on cooldown, we consider this handled.
|
||||
|
||||
delayComponent.BeginDelay();
|
||||
}
|
||||
|
||||
var useMsg = new UseInHandEvent(user, used);
|
||||
RaiseLocalEvent(used, useMsg);
|
||||
if (useMsg.Handled)
|
||||
{
|
||||
delayComponent?.BeginDelay();
|
||||
return true;
|
||||
}
|
||||
|
||||
var uses = AllComps<IUse>(used).ToList();
|
||||
|
||||
@@ -675,10 +680,7 @@ namespace Content.Shared.Interaction
|
||||
{
|
||||
// If a Use returns a status completion we finish our interaction
|
||||
if (use.UseEntity(new UseEntityEventArgs(user)))
|
||||
{
|
||||
delayComponent?.BeginDelay();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
@@ -53,11 +53,11 @@ namespace Content.Shared.Item
|
||||
args.Using != null ||
|
||||
!args.CanAccess ||
|
||||
!args.CanInteract ||
|
||||
!args.Hands.CanPickupEntityToActiveHand(args.Target))
|
||||
!component.CanPickup(args.User, popup: false))
|
||||
return;
|
||||
|
||||
Verb verb = new();
|
||||
verb.Act = () => args.Hands.TryPickupEntityToActiveHand(args.Target);
|
||||
verb.Act = () => args.Hands.PutInHand(args.Target);
|
||||
verb.IconTexture = "/Textures/Interface/VerbIcons/pickup.svg.192dpi.png";
|
||||
|
||||
// if the item already in a container (that is not the same as the user's), then change the text.
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using Content.Shared.ActionBlocker;
|
||||
using Content.Shared.Hands;
|
||||
using Content.Shared.Hands.Components;
|
||||
using Content.Shared.Interaction;
|
||||
@@ -10,6 +11,7 @@ using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Maths;
|
||||
using Robust.Shared.Physics;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Serialization.Manager.Attributes;
|
||||
using Robust.Shared.ViewVariables;
|
||||
@@ -99,11 +101,28 @@ namespace Content.Shared.Item
|
||||
[DataField("sprite")]
|
||||
private string? _rsiPath;
|
||||
|
||||
/// <summary>
|
||||
/// If a player can pick up this item.
|
||||
/// </summary>
|
||||
public bool CanPickup(EntityUid user, bool popup = true)
|
||||
{
|
||||
if (!EntitySystem.Get<ActionBlockerSystem>().CanPickup(user))
|
||||
return false;
|
||||
|
||||
if (_entMan.GetComponent<TransformComponent>(user).MapID != _entMan.GetComponent<TransformComponent>(Owner).MapID)
|
||||
return false;
|
||||
|
||||
if (!_entMan.TryGetComponent(Owner, out IPhysBody? physics) || physics.BodyType == BodyType.Static)
|
||||
return false;
|
||||
|
||||
return user.InRangeUnobstructed(Owner, ignoreInsideBlocker: true, popup: popup);
|
||||
}
|
||||
|
||||
bool IInteractHand.InteractHand(InteractHandEventArgs eventArgs)
|
||||
{
|
||||
var user = eventArgs.User;
|
||||
|
||||
if (!user.InRangeUnobstructed(Owner, ignoreInsideBlocker: true))
|
||||
if (!CanPickup(user))
|
||||
return false;
|
||||
|
||||
if (!_entMan.TryGetComponent(user, out SharedHandsComponent hands))
|
||||
@@ -114,8 +133,8 @@ namespace Content.Shared.Item
|
||||
if (activeHand == null)
|
||||
return false;
|
||||
|
||||
// hands checks action blockers
|
||||
return hands.TryPickupEntityToActiveHand(Owner, animateUser: true);
|
||||
hands.TryPickupEntityToActiveHand(Owner, animateUser: true);
|
||||
return true;
|
||||
}
|
||||
|
||||
private void OnEquippedPrefixChange()
|
||||
|
||||
@@ -46,9 +46,12 @@ namespace Content.Shared.Timing
|
||||
|
||||
_lastUseTime = IoCManager.Resolve<IGameTiming>().CurTime;
|
||||
|
||||
var cooldown = IoCManager.Resolve<IEntityManager>().EnsureComponent<ItemCooldownComponent>(Owner);
|
||||
cooldown.CooldownStart = _lastUseTime;
|
||||
cooldown.CooldownEnd = _lastUseTime + TimeSpan.FromSeconds(Delay);
|
||||
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(Owner, out ItemCooldownComponent? cooldown))
|
||||
{
|
||||
cooldown.CooldownStart = _lastUseTime;
|
||||
cooldown.CooldownEnd = _lastUseTime + TimeSpan.FromSeconds(Delay);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void Cancel()
|
||||
|
||||
@@ -1,4 +1,65 @@
|
||||
Entries:
|
||||
- author: ElectroJr
|
||||
changes:
|
||||
- {message: The keybinding to stop pulling an object now works., type: Fix}
|
||||
id: 327
|
||||
time: '2021-08-20T05:47:59.0000000+00:00'
|
||||
- author: Swept
|
||||
changes:
|
||||
- {message: Announcements now play announcement sound, type: Add}
|
||||
id: 328
|
||||
time: '2021-08-21T05:19:39.0000000+00:00'
|
||||
- author: Zumorica
|
||||
changes:
|
||||
- {message: Fixes pie cannon shooting errors instead of cream pies., type: Fix}
|
||||
id: 329
|
||||
time: '2021-08-21T07:18:23.0000000+00:00'
|
||||
- author: ElectroSR
|
||||
changes:
|
||||
- {message: 'Alt+E, Alt+Z and Alt+Left-Mouse keybindings can trigger alternative
|
||||
interactions on entities.', type: Add}
|
||||
- {message: Some existing context-menu actions are now considered "alternative interactions".
|
||||
For example ejecting IDs/beakers/magazines or locking & unlocking lockers can
|
||||
be done via these new keybindings., type: Add}
|
||||
- {message: More context menu icons and two new actions (open inventory & eject
|
||||
items from disposal unit), type: Add}
|
||||
- {message: Using 'E' to interact with items in your inventory or hands works again.,
|
||||
type: Fix}
|
||||
id: 330
|
||||
time: '2021-08-21T17:20:18.0000000+00:00'
|
||||
- author: metalgearsloth
|
||||
changes:
|
||||
- {message: Singulo slightly less janky., type: Fix}
|
||||
id: 331
|
||||
time: '2021-08-22T14:54:03.0000000+00:00'
|
||||
- author: 20kdc
|
||||
changes:
|
||||
- {message: Particle Accelerator construction won't cause an error when finishing
|
||||
the power box., type: Fix}
|
||||
- {message: Cables are now called lv cables when referred to in a construction step
|
||||
for clarity., type: Tweak}
|
||||
id: 332
|
||||
time: '2021-08-22T15:50:44.0000000+00:00'
|
||||
- author: Macoron
|
||||
changes:
|
||||
- {message: Add security barriers to codebase, type: Add}
|
||||
id: 333
|
||||
time: '2021-08-22T16:32:24.0000000+00:00'
|
||||
- author: SweptWasTaken
|
||||
changes:
|
||||
- {message: Admin ghosts can interact with stuff, type: Add}
|
||||
id: 334
|
||||
time: '2021-08-23T03:14:52.0000000+00:00'
|
||||
- author: Seth
|
||||
changes:
|
||||
- {message: Added basic parts technology, type: Add}
|
||||
id: 335
|
||||
time: '2021-08-23T03:28:37.0000000+00:00'
|
||||
- author: metalgearsloth
|
||||
changes:
|
||||
- {message: Add meteor swarm event., type: Add}
|
||||
id: 336
|
||||
time: '2021-08-23T03:28:48.0000000+00:00'
|
||||
- author: Swept
|
||||
changes:
|
||||
- {message: Fix grav gen losing power after only a bit, type: Fix}
|
||||
@@ -2853,56 +2914,3 @@ Entries:
|
||||
- {message: Traitors can now see their codewords in the objective menu., type: Add}
|
||||
id: 828
|
||||
time: '2022-01-05T05:46:41.0000000+00:00'
|
||||
- author: ElectroJr
|
||||
changes:
|
||||
- {message: Fixed a bug preventing hand-labellers from being used., type: Fix}
|
||||
id: 829
|
||||
time: '2022-01-06T01:51:35.0000000+00:00'
|
||||
- author: Delete69
|
||||
changes:
|
||||
- {message: 'Added small railing corners, making railing more versatile.', type: Add}
|
||||
id: 830
|
||||
time: '2022-01-06T01:51:41.0000000+00:00'
|
||||
- author: Daemon
|
||||
changes:
|
||||
- {message: Added new chat filters for emotes, type: Add}
|
||||
id: 831
|
||||
time: '2022-01-06T01:51:48.0000000+00:00'
|
||||
- author: metalgearsloth
|
||||
changes:
|
||||
- {message: Xenomorph sprites now match their physics bounds more accurately, type: Tweak}
|
||||
id: 832
|
||||
time: '2022-01-06T01:51:53.0000000+00:00'
|
||||
- author: Rane
|
||||
changes:
|
||||
- {message: Capsaicin Oil will no longer appear in the chemical dispenser., type: Fix}
|
||||
id: 833
|
||||
time: '2022-01-06T04:50:39.0000000+00:00'
|
||||
- author: JustinTime
|
||||
changes:
|
||||
- {message: Added ability to resist out of lockers or locked closets, type: Tweak}
|
||||
id: 834
|
||||
time: '2022-01-06T06:18:48.0000000+00:00'
|
||||
- author: ElectroJr
|
||||
changes:
|
||||
- {message: Smoking is cool again (fixed animation/sprite)., type: Fix}
|
||||
id: 835
|
||||
time: '2022-01-06T12:45:02.0000000+00:00'
|
||||
- author: LittleBuilderJane
|
||||
changes:
|
||||
- {message: Adjusted aspects of Reach and Dart to fix issues., type: Add}
|
||||
- {message: Removed one Security Officer slot on Dart to fit new airlock., type: Remove}
|
||||
id: 836
|
||||
time: '2022-01-06T13:31:37.0000000+00:00'
|
||||
- author: Lamrr
|
||||
changes:
|
||||
- {message: Spare jumpsuits and jumpskirts are now available in the form of various
|
||||
colour themed wardrobes. Collect them all!, type: Add}
|
||||
id: 837
|
||||
time: '2022-01-07T03:58:41.0000000+00:00'
|
||||
- author: Lamrr
|
||||
changes:
|
||||
- {message: Radiation closets and medicine lockers now come with supplies inside.,
|
||||
type: Tweak}
|
||||
id: 838
|
||||
time: '2022-01-07T04:03:20.0000000+00:00'
|
||||
|
||||
@@ -18,4 +18,3 @@ chatsan-confused = looks confused
|
||||
chatsan-unimpressed = seems unimpressed
|
||||
chatsan-waves = waves
|
||||
chatsan-salutes = salutes
|
||||
chatsan-shrugs = shrugs
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
resist-locker-component-start-resisting = You begin to kick at the door!
|
||||
resist-locker-component-resist-interrupted = Your attempts to kick at the door were interrupted!
|
||||
@@ -11,50 +11,44 @@ tilemap:
|
||||
4: floor_asteroid_coarse_sand_dug
|
||||
5: floor_asteroid_sand
|
||||
6: floor_asteroid_tile
|
||||
7: floor_bar
|
||||
8: floor_blue
|
||||
9: floor_blue_circuit
|
||||
10: floor_clown
|
||||
11: floor_dark
|
||||
12: floor_elevator_shaft
|
||||
13: floor_freezer
|
||||
14: floor_glass
|
||||
15: floor_gold
|
||||
16: floor_grass
|
||||
17: floor_green_circuit
|
||||
18: floor_hydro
|
||||
19: floor_kitchen
|
||||
20: floor_laundry
|
||||
21: floor_lino
|
||||
22: floor_mime
|
||||
23: floor_mono
|
||||
24: floor_reinforced
|
||||
25: floor_rglass
|
||||
26: floor_rock_vault
|
||||
27: floor_showroom
|
||||
28: floor_silver
|
||||
29: floor_snow
|
||||
30: floor_steel
|
||||
31: floor_steel_dirty
|
||||
32: floor_techmaint
|
||||
33: floor_white
|
||||
34: floor_wood
|
||||
35: lattice
|
||||
36: plating
|
||||
37: underplating
|
||||
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: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAGAAAAA==
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAB0AAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAASAAAAEgAAAA==
|
||||
- ind: "0,-1"
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAJQAAACUAAAAlAAAAJQAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACAAAAAgAAAAIAAAACUAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAgAAAAIAAAACAAAAAlAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAIAAAACAAAAAgAAAAJQAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACAAAAAgAAAAIAAAACUAAAAjAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAgAAAAIAAAACAAAAAlAAAAJQAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACUAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAIAAAACAAAAAlAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAIAAAACAAAAAgAAAAJQAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAIAAAACUAAAAlAAAAJQAAACUAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAAlAAAAGAAAABgAAAAlAAAAIwAAACUAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAlAAAAJQAAABgAAAAYAAAAJQAAABgAAAAYAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAJQAAABgAAAAYAAAAGAAAACUAAAAYAAAAGAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAdAAAAHQAAAB0AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAABoAAAAaAAAAGgAAAB8AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAaAAAAGgAAABoAAAAfAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAGgAAABoAAAAaAAAAHwAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAABoAAAAaAAAAGgAAAB8AAAAdAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAaAAAAGgAAABoAAAAfAAAAHwAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAGgAAABoAAAAaAAAAGgAAAB8AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAABoAAAAaAAAAGgAAABoAAAAfAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAAaAAAAGgAAABoAAAAaAAAAHwAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAGgAAAB8AAAAfAAAAHwAAAB8AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAABgAAAAfAAAAEgAAABIAAAAfAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAfAAAAHwAAABIAAAASAAAAHwAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAHwAAABIAAAASAAAAEgAAAB8AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAABIAAAASAAAAEgAAABIAAAAfAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
|
||||
- ind: "-1,0"
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAdAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
|
||||
- ind: "0,0"
|
||||
tiles: HgAAACUAAAAlAAAAJQAAACUAAAAlAAAAIwAAACUAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAIQAAACEAAAAhAAAAJQAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAACUAAAAhAAAAIQAAACUAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAB4AAAAlAAAAJQAAACUAAAAlAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAZAAAAGQAAABkAAAAlAAAAIwAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAGQAAABkAAAAZAAAAJQAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAABkAAAAZAAAAGQAAACUAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAlAAAAJQAAACUAAAAlAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
|
||||
tiles: EgAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAYAAAAGwAAABsAAAAbAAAAHwAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAGAAAAB8AAAAbAAAAGwAAAB8AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAABgAAAAfAAAAHwAAAB8AAAAfAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAATAAAAEwAAABMAAAAfAAAAHQAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAEwAAABMAAAATAAAAHwAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAABMAAAATAAAAEwAAAB8AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAHQAAAB0AAAAdAAAAHQAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
|
||||
entities:
|
||||
- uid: 0
|
||||
type: SpawnPointLatejoin
|
||||
@@ -92,136 +86,6 @@ entities:
|
||||
bodyType: Dynamic
|
||||
type: Physics
|
||||
- fixtures:
|
||||
- shape: !type:PolygonShape
|
||||
vertices:
|
||||
- -0.01,-14.99
|
||||
- -0.01,-10.01
|
||||
- -0.99,-10.01
|
||||
- -0.99,-14.99
|
||||
id: grid_chunk--0.99--14.99
|
||||
mask:
|
||||
- MapGrid
|
||||
layer:
|
||||
- MapGrid
|
||||
mass: 19.521599
|
||||
restitution: 0.1
|
||||
- shape: !type:PolygonShape
|
||||
vertices:
|
||||
- -0.01,-9.99
|
||||
- -0.01,-0.01
|
||||
- -1.99,-0.01
|
||||
- -1.99,-9.99
|
||||
id: grid_chunk--1.99--9.99
|
||||
mask:
|
||||
- MapGrid
|
||||
layer:
|
||||
- MapGrid
|
||||
mass: 79.041595
|
||||
restitution: 0.1
|
||||
- shape: !type:PolygonShape
|
||||
vertices:
|
||||
- 5.99,-14.99
|
||||
- 5.99,-10.01
|
||||
- 0.01,-10.01
|
||||
- 0.01,-14.99
|
||||
id: grid_chunk-0.01--14.99
|
||||
mask:
|
||||
- MapGrid
|
||||
layer:
|
||||
- MapGrid
|
||||
mass: 119.12158
|
||||
restitution: 0.1
|
||||
- shape: !type:PolygonShape
|
||||
vertices:
|
||||
- 8.99,-3.99
|
||||
- 8.99,-0.01
|
||||
- 0.01,-0.01
|
||||
- 0.01,-3.99
|
||||
id: grid_chunk-0.01--3.99
|
||||
mask:
|
||||
- MapGrid
|
||||
layer:
|
||||
- MapGrid
|
||||
mass: 142.9616
|
||||
restitution: 0.1
|
||||
- shape: !type:PolygonShape
|
||||
vertices:
|
||||
- 8.99,0.01
|
||||
- 8.99,0.99
|
||||
- 0.01,0.99
|
||||
- 0.01,0.01
|
||||
id: grid_chunk-0.01-0.01
|
||||
mask:
|
||||
- MapGrid
|
||||
layer:
|
||||
- MapGrid
|
||||
mass: 35.2016
|
||||
restitution: 0.1
|
||||
- shape: !type:PolygonShape
|
||||
vertices:
|
||||
- 6.99,-9.99
|
||||
- 6.99,-4.01
|
||||
- 0.01,-4.01
|
||||
- 0.01,-9.99
|
||||
id: grid_chunk-0.01--9.99
|
||||
mask:
|
||||
- MapGrid
|
||||
layer:
|
||||
- MapGrid
|
||||
mass: 166.96158
|
||||
restitution: 0.1
|
||||
- shape: !type:PolygonShape
|
||||
vertices:
|
||||
- -0.01,5.01
|
||||
- -0.01,8.99
|
||||
- -0.99,8.99
|
||||
- -0.99,5.01
|
||||
id: grid_chunk--0.99-5.01
|
||||
mask:
|
||||
- MapGrid
|
||||
layer:
|
||||
- MapGrid
|
||||
mass: 15.601599
|
||||
restitution: 0.1
|
||||
- shape: !type:PolygonShape
|
||||
vertices:
|
||||
- -0.01,0.01
|
||||
- -0.01,4.99
|
||||
- -1.99,4.99
|
||||
- -1.99,0.01
|
||||
id: grid_chunk--1.99-0.01
|
||||
mask:
|
||||
- MapGrid
|
||||
layer:
|
||||
- MapGrid
|
||||
mass: 39.441597
|
||||
restitution: 0.1
|
||||
- shape: !type:PolygonShape
|
||||
vertices:
|
||||
- 6.99,1.01
|
||||
- 6.99,4.99
|
||||
- 0.01,4.99
|
||||
- 0.01,1.01
|
||||
id: grid_chunk-0.01-1.01
|
||||
mask:
|
||||
- MapGrid
|
||||
layer:
|
||||
- MapGrid
|
||||
mass: 111.12158
|
||||
restitution: 0.1
|
||||
- shape: !type:PolygonShape
|
||||
vertices:
|
||||
- 5.99,5.01
|
||||
- 5.99,8.99
|
||||
- 0.01,8.99
|
||||
- 0.01,5.01
|
||||
id: grid_chunk-0.01-5.01
|
||||
mask:
|
||||
- MapGrid
|
||||
layer:
|
||||
- MapGrid
|
||||
mass: 95.201584
|
||||
restitution: 0.1
|
||||
- shape: !type:PolygonShape
|
||||
vertices:
|
||||
- 0,-15
|
||||
@@ -367,8 +231,8 @@ entities:
|
||||
-2,-5: 0
|
||||
-2,-4: 0
|
||||
-2,-3: 0
|
||||
-2,-2: 1
|
||||
-2,-1: 2
|
||||
-2,-2: 0
|
||||
-2,-1: 0
|
||||
-1,-11: 0
|
||||
-1,-10: 0
|
||||
-1,-9: 0
|
||||
@@ -456,7 +320,7 @@ entities:
|
||||
6,-3: 0
|
||||
6,-2: 0
|
||||
6,-1: 0
|
||||
-2,0: 3
|
||||
-2,0: 0
|
||||
-2,1: 0
|
||||
-2,2: 0
|
||||
-2,3: 0
|
||||
@@ -529,37 +393,9 @@ entities:
|
||||
6,2: 0
|
||||
6,3: 0
|
||||
6,4: 0
|
||||
-3,-2: 4
|
||||
-3,-1: 5
|
||||
-3,0: 6
|
||||
-1,-15: 7
|
||||
-1,-14: 7
|
||||
-1,-13: 7
|
||||
-1,-12: 7
|
||||
0,-15: 7
|
||||
0,-14: 7
|
||||
0,-13: 7
|
||||
0,-12: 7
|
||||
1,-15: 7
|
||||
1,-14: 7
|
||||
1,-13: 7
|
||||
1,-12: 7
|
||||
2,-15: 7
|
||||
2,-14: 7
|
||||
2,-13: 7
|
||||
2,-12: 7
|
||||
3,-15: 7
|
||||
3,-14: 7
|
||||
3,-13: 7
|
||||
3,-12: 7
|
||||
4,-15: 7
|
||||
4,-14: 7
|
||||
4,-13: 7
|
||||
4,-12: 7
|
||||
5,-15: 7
|
||||
5,-14: 7
|
||||
5,-13: 7
|
||||
5,-12: 7
|
||||
-3,-2: 1
|
||||
-3,-1: 1
|
||||
-3,0: 1
|
||||
uniqueMixes:
|
||||
- volume: 2500
|
||||
temperature: 293.15
|
||||
@@ -572,72 +408,6 @@ entities:
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- volume: 2500
|
||||
temperature: 256.84375
|
||||
moles:
|
||||
- 17.732716
|
||||
- 66.708786
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- volume: 2500
|
||||
temperature: 256.84375
|
||||
moles:
|
||||
- 17.050686
|
||||
- 64.14306
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- volume: 2500
|
||||
temperature: 240.95978
|
||||
moles:
|
||||
- 16.965433
|
||||
- 63.82235
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- volume: 2500
|
||||
temperature: 147.925
|
||||
moles:
|
||||
- 5.4562197
|
||||
- 20.52578
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- volume: 2500
|
||||
temperature: 184.23125
|
||||
moles:
|
||||
- 6.8202744
|
||||
- 25.657225
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- volume: 2500
|
||||
temperature: 120.69531
|
||||
moles:
|
||||
- 7.1612883
|
||||
- 26.940086
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- volume: 2500
|
||||
temperature: 293.15
|
||||
moles:
|
||||
@@ -699,13 +469,11 @@ entities:
|
||||
parent: 4
|
||||
type: Transform
|
||||
- uid: 13
|
||||
type: CableMV
|
||||
type: WallReinforced
|
||||
components:
|
||||
- pos: -1.5,-1.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 14
|
||||
type: WallReinforced
|
||||
components:
|
||||
@@ -793,7 +561,7 @@ entities:
|
||||
- uid: 28
|
||||
type: WallReinforced
|
||||
components:
|
||||
- pos: 8.5,0.5
|
||||
- pos: 5.5,-0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- uid: 29
|
||||
@@ -1104,13 +872,14 @@ entities:
|
||||
- uid: 79
|
||||
type: WallReinforced
|
||||
components:
|
||||
- pos: 6.5,0.5
|
||||
- pos: -1.5,0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- uid: 80
|
||||
type: WallReinforced
|
||||
components:
|
||||
- pos: 6.5,-3.5
|
||||
- rot: -1.5707963267948966 rad
|
||||
pos: -2.5,-1.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- uid: 81
|
||||
@@ -1154,21 +923,25 @@ entities:
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 85
|
||||
type: CableApcExtension
|
||||
type: AirlockExternal
|
||||
components:
|
||||
- pos: -1.5,0.5
|
||||
- pos: 0.5,-1.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- containers:
|
||||
board: !type:Container
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 86
|
||||
type: CableMV
|
||||
type: AirlockExternal
|
||||
components:
|
||||
- pos: -1.5,-0.5
|
||||
- pos: 0.5,0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- containers:
|
||||
board: !type:Container
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 87
|
||||
type: VendingMachineCola
|
||||
components:
|
||||
@@ -1202,17 +975,11 @@ entities:
|
||||
parent: 4
|
||||
type: Transform
|
||||
- uid: 92
|
||||
type: Poweredlight
|
||||
type: SpawnPointSecurityOfficer
|
||||
components:
|
||||
- rot: 1.5707963267948966 rad
|
||||
pos: 6.5,-1.5
|
||||
- pos: 2.5,-0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- powerLoad: 0
|
||||
type: ApcPowerReceiver
|
||||
- containers:
|
||||
light_bulb: !type:ContainerSlot {}
|
||||
type: ContainerContainer
|
||||
- uid: 93
|
||||
type: SpawnPointHeadOfSecurity
|
||||
components:
|
||||
@@ -1220,15 +987,11 @@ entities:
|
||||
parent: 4
|
||||
type: Transform
|
||||
- uid: 94
|
||||
type: AirlockShuttle
|
||||
type: TableReinforced
|
||||
components:
|
||||
- pos: 8.5,-1.5
|
||||
- pos: 4.5,-0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- containers:
|
||||
board: !type:Container
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 95
|
||||
type: VendingMachineEngivend
|
||||
components:
|
||||
@@ -1504,31 +1267,23 @@ entities:
|
||||
parent: 4
|
||||
type: Transform
|
||||
- uid: 133
|
||||
type: CableMV
|
||||
type: Catwalk
|
||||
components:
|
||||
- pos: 6.5,-2.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- uid: 134
|
||||
type: Catwalk
|
||||
components:
|
||||
- pos: 6.5,-1.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 134
|
||||
type: CableApcExtension
|
||||
components:
|
||||
- pos: -1.5,-1.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 135
|
||||
type: CableApcExtension
|
||||
type: Catwalk
|
||||
components:
|
||||
- pos: -1.5,-0.5
|
||||
- pos: 6.5,-0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 136
|
||||
type: Catwalk
|
||||
components:
|
||||
@@ -1838,9 +1593,9 @@ entities:
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 178
|
||||
type: CableMV
|
||||
type: ClothingOuterHardsuitSecurity
|
||||
components:
|
||||
- pos: -1.5,0.5
|
||||
- pos: 4.6585817,-0.47357002
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
@@ -1875,9 +1630,6 @@ entities:
|
||||
- pos: 4.2902675,-2.5516949
|
||||
parent: 4
|
||||
type: Transform
|
||||
- cellSlot:
|
||||
name: power-cell-slot-component-slot-name-default
|
||||
type: PowerCellSlot
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- containers:
|
||||
@@ -1889,9 +1641,6 @@ entities:
|
||||
- pos: 4.3058925,-1.739195
|
||||
parent: 4
|
||||
type: Transform
|
||||
- cellSlot:
|
||||
name: power-cell-slot-component-slot-name-default
|
||||
type: PowerCellSlot
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- containers:
|
||||
@@ -1903,20 +1652,22 @@ entities:
|
||||
- pos: 4.3058925,-0.989195
|
||||
parent: 4
|
||||
type: Transform
|
||||
- cellSlot:
|
||||
name: power-cell-slot-component-slot-name-default
|
||||
type: PowerCellSlot
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- containers:
|
||||
cellslot_cell_container: !type:ContainerSlot {}
|
||||
type: ContainerContainer
|
||||
- uid: 185
|
||||
type: WallReinforced
|
||||
type: ClothingHeadHelmetHardsuitSecurity
|
||||
components:
|
||||
- pos: -0.5,-0.5
|
||||
- pos: 4.2902675,-0.31732002
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- containers:
|
||||
cellslot_cell_container: !type:ContainerSlot {}
|
||||
type: ContainerContainer
|
||||
- uid: 186
|
||||
type: AirTankFilled
|
||||
components:
|
||||
@@ -1942,11 +1693,13 @@ entities:
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 189
|
||||
type: Catwalk
|
||||
type: AirTankFilled
|
||||
components:
|
||||
- pos: -1.5,0.5
|
||||
- pos: 4.3996425,-0.56732
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 190
|
||||
type: SalternSmes
|
||||
components:
|
||||
@@ -2047,10 +1800,9 @@ entities:
|
||||
supplyRampPosition: 0.019451141
|
||||
type: PowerNetworkBattery
|
||||
- uid: 201
|
||||
type: CableTerminal
|
||||
type: CableApcExtension
|
||||
components:
|
||||
- rot: 1.5707963267948966 rad
|
||||
pos: 3.5,-7.5
|
||||
- pos: 0.5,-7.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
@@ -2088,10 +1840,9 @@ entities:
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 205
|
||||
type: CableTerminal
|
||||
type: CableApcExtension
|
||||
components:
|
||||
- rot: -1.5707963267948966 rad
|
||||
pos: 1.5,-7.5
|
||||
- pos: 4.5,-7.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
@@ -2400,11 +2151,15 @@ entities:
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 237
|
||||
type: WallReinforced
|
||||
type: CableMV
|
||||
components:
|
||||
- pos: 7.5,0.5
|
||||
- pos: 0.5,-7.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 238
|
||||
type: CableMV
|
||||
components:
|
||||
@@ -2436,11 +2191,15 @@ entities:
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 241
|
||||
type: WallReinforced
|
||||
type: CableMV
|
||||
components:
|
||||
- pos: 8.5,-2.5
|
||||
- pos: 4.5,-7.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 242
|
||||
type: WallReinforced
|
||||
components:
|
||||
@@ -2730,11 +2489,15 @@ entities:
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 272
|
||||
type: WallReinforced
|
||||
type: CableHV
|
||||
components:
|
||||
- pos: 8.5,-3.5
|
||||
- pos: 0.5,-7.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 273
|
||||
type: CableHV
|
||||
components:
|
||||
@@ -2766,15 +2529,15 @@ entities:
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 276
|
||||
type: AirlockExternal
|
||||
type: CableHV
|
||||
components:
|
||||
- pos: 5.5,-0.5
|
||||
- pos: 4.5,-7.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- containers:
|
||||
board: !type:Container
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 277
|
||||
type: WallReinforced
|
||||
components:
|
||||
@@ -3210,11 +2973,18 @@ entities:
|
||||
- color: '#03FCF0FF'
|
||||
type: AtmosPipeColor
|
||||
- uid: 319
|
||||
type: WallReinforced
|
||||
type: GasPassiveVent
|
||||
components:
|
||||
- pos: 8.5,-0.5
|
||||
- rot: 1.5707963267948966 rad
|
||||
pos: -0.5,-0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- color: '#03FCF0FF'
|
||||
type: AtmosPipeColor
|
||||
- uid: 320
|
||||
type: GasPassiveVent
|
||||
components:
|
||||
@@ -3254,11 +3024,18 @@ entities:
|
||||
- color: '#03FCF0FF'
|
||||
type: AtmosPipeColor
|
||||
- uid: 323
|
||||
type: WallReinforced
|
||||
type: GasPipeHalf
|
||||
components:
|
||||
- pos: 7.5,-3.5
|
||||
- rot: 1.5707963267948966 rad
|
||||
pos: -0.5,-0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- color: '#03FCF0FF'
|
||||
type: AtmosPipeColor
|
||||
- uid: 324
|
||||
type: GasPipeHalf
|
||||
components:
|
||||
@@ -3737,11 +3514,15 @@ entities:
|
||||
ent: 376
|
||||
type: ContainerContainer
|
||||
- uid: 371
|
||||
type: Catwalk
|
||||
type: AirlockExternal
|
||||
components:
|
||||
- pos: -1.5,-0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- containers:
|
||||
board: !type:Container
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 372
|
||||
type: CartridgeMagnumHV
|
||||
components:
|
||||
@@ -3950,8 +3731,6 @@ entities:
|
||||
- pos: 6.5,-0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 396
|
||||
@@ -3960,8 +3739,6 @@ entities:
|
||||
- pos: 6.5,-1.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 397
|
||||
@@ -3970,8 +3747,6 @@ entities:
|
||||
- pos: 6.5,-2.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 398
|
||||
@@ -4183,11 +3958,31 @@ entities:
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 424
|
||||
type: Catwalk
|
||||
type: CableHV
|
||||
components:
|
||||
- pos: -1.5,-1.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 425
|
||||
type: CableHV
|
||||
components:
|
||||
- pos: -1.5,-0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 426
|
||||
type: CableHV
|
||||
components:
|
||||
- pos: -1.5,0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 427
|
||||
type: CableHV
|
||||
components:
|
||||
@@ -4498,8 +4293,6 @@ entities:
|
||||
- pos: 6.5,-0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 466
|
||||
@@ -4508,8 +4301,6 @@ entities:
|
||||
- pos: 6.5,-1.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 467
|
||||
@@ -4518,8 +4309,6 @@ entities:
|
||||
- pos: 6.5,-2.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 468
|
||||
@@ -4714,6 +4503,32 @@ entities:
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 492
|
||||
type: CableApcExtension
|
||||
components:
|
||||
- pos: -1.5,-1.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 493
|
||||
type: CableApcExtension
|
||||
components:
|
||||
- pos: -1.5,-0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 494
|
||||
type: CableApcExtension
|
||||
components:
|
||||
- pos: -1.5,0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 495
|
||||
type: CableApcExtension
|
||||
components:
|
||||
@@ -4912,8 +4727,14 @@ entities:
|
||||
- pos: 6.5,-0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 520
|
||||
type: CableMV
|
||||
components:
|
||||
- pos: 6.5,-1.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 521
|
||||
@@ -4922,8 +4743,6 @@ entities:
|
||||
- pos: 6.5,-2.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 522
|
||||
@@ -5118,6 +4937,32 @@ entities:
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 546
|
||||
type: CableMV
|
||||
components:
|
||||
- pos: -1.5,-1.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 547
|
||||
type: CableMV
|
||||
components:
|
||||
- pos: -1.5,-0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 548
|
||||
type: CableMV
|
||||
components:
|
||||
- pos: -1.5,0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 549
|
||||
type: CableMV
|
||||
components:
|
||||
@@ -5284,6 +5129,23 @@ entities:
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 567
|
||||
type: LightBulb
|
||||
components:
|
||||
- parent: 575
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 568
|
||||
type: AirlockShuttle
|
||||
components:
|
||||
- pos: -2.5,-0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- containers:
|
||||
board: !type:Container
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 569
|
||||
type: EmergencyLight
|
||||
components:
|
||||
@@ -5338,6 +5200,27 @@ entities:
|
||||
type: Transform
|
||||
- startingCharge: 1092.2335
|
||||
type: Battery
|
||||
- uid: 575
|
||||
type: PoweredSmallLightEmpty
|
||||
components:
|
||||
- pos: -0.5,-0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- powerLoad: 40
|
||||
type: ApcPowerReceiver
|
||||
- enabled: False
|
||||
type: AmbientSound
|
||||
- containers:
|
||||
light_bulb: !type:ContainerSlot
|
||||
ent: 567
|
||||
type: ContainerContainer
|
||||
- uid: 576
|
||||
type: WallReinforced
|
||||
components:
|
||||
- rot: -1.5707963267948966 rad
|
||||
pos: -2.5,0.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- uid: 577
|
||||
type: GasPassiveVent
|
||||
components:
|
||||
@@ -5909,9 +5792,6 @@ entities:
|
||||
- pos: 2.267219,-1.2724848
|
||||
parent: 4
|
||||
type: Transform
|
||||
- cellSlot:
|
||||
name: power-cell-slot-component-slot-name-default
|
||||
type: PowerCellSlot
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- containers:
|
||||
|
||||
@@ -52,7 +52,7 @@ grids:
|
||||
- ind: "-1,0"
|
||||
tiles: EQAAABEAAAAJAAAAIAAAACAAAAAgAAAAIAAAABcAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAAAkAAAAJAAAACQAAACAAAAAgAAAAIAAAACAAAAAlAAAAJQAAACUAAAAlAAAAJQAAACIAAAAiAAAAIgAAACIAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAJQAAABIAAAASAAAAEgAAACUAAAAiAAAAIgAAACIAAAAiAAAAJQAAACUAAAAlAAAAIAAAACAAAAAgAAAAIAAAACUAAAASAAAAEgAAABIAAAASAAAAIgAAACIAAAAiAAAAIgAAACMAAAAjAAAAJQAAACUAAAAlAAAAGAAAABgAAAAlAAAAEgAAABIAAAASAAAAJQAAACIAAAAiAAAAIgAAACIAAAAAAAAAIwAAACMAAAAjAAAAJQAAABgAAAAYAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAAAAAAAAAAAAAAAAAIwAAACQAAAAkAAAAJAAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAACMAAAAjAAAAJQAAAAAAAAAAAAAAAAAAACMAAAAjAAAAIwAAACMAAAAjAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
|
||||
- ind: "0,-1"
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAIAAAACAAAAARAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAABEAAAARAAAAEQAAABEAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAlAAAAJQAAABkAAAAlAAAAJQAAACUAAAAgAAAAIAAAABEAAAAgAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAlAAAAJQAAABkAAAAZAAAAIAAAACAAAAAgAAAAIAAAACAAAAARAAAAIAAAAAAAAAAAAAAAJQAAACUAAAAlAAAAGQAAABkAAAAZAAAAGQAAACAAAAAgAAAAIAAAACAAAAAgAAAAEQAAACAAAAAAAAAAJQAAACUAAAAfAAAAJQAAABkAAAAZAAAAGQAAABkAAAAlAAAAJQAAACUAAAAgAAAAIAAAABEAAAAgAAAAJQAAACUAAAAfAAAAHwAAAB8AAAAZAAAAGQAAABkAAAAjAAAAJQAAACUAAAARAAAAEQAAABEAAAARAAAAEQAAACUAAAAfAAAAHwAAAB8AAAAlAAAAGQAAABkAAAAZAAAAJQAAACUAAAAlAAAAIAAAACAAAAAgAAAAEQAAACAAAAAfAAAAHwAAAB8AAAAfAAAAJQAAABkAAAAZAAAAGQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAZAAAAGQAAABkAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACIAAAAiAAAAIgAAACIAAAAlAAAAGQAAABkAAAAZAAAAJQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAiAAAAIgAAACIAAAAiAAAAJQAAABkAAAAZAAAAGQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIgAAACIAAAAiAAAAIgAAACUAAAAZAAAAGQAAABkAAAAlAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACIAAAAiAAAAIgAAACIAAAAlAAAAGQAAABkAAAAZAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAZAAAAGQAAABkAAAAZAAAAFwAAABkAAAAZAAAAGQAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAGQAAABkAAAAZAAAAGQAAABcAAAAZAAAAGQAAABkAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAgAAAAJQAAAA==
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAIAAAACAAAAARAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAjAAAAIwAAACUAAAAlAAAAJQAAABEAAAARAAAAEQAAABEAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAjAAAAIwAAABkAAAAlAAAAJQAAACUAAAAgAAAAIAAAABEAAAAgAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAjAAAAIwAAABkAAAAZAAAAIAAAACAAAAAgAAAAIAAAACAAAAARAAAAIAAAAAAAAAAAAAAAJQAAACUAAAAjAAAAGQAAABkAAAAZAAAAGQAAACAAAAAgAAAAIAAAACAAAAAgAAAAEQAAACAAAAAAAAAAJQAAACUAAAAfAAAAIwAAABkAAAAZAAAAGQAAABkAAAAlAAAAJQAAACUAAAAgAAAAIAAAABEAAAAgAAAAJQAAACUAAAAfAAAAHwAAAB8AAAAZAAAAGQAAABkAAAAjAAAAJQAAACUAAAARAAAAEQAAABEAAAARAAAAEQAAACUAAAAfAAAAHwAAAB8AAAAjAAAAGQAAABkAAAAZAAAAIwAAACUAAAAlAAAAIAAAACAAAAAgAAAAEQAAACAAAAAfAAAAHwAAAB8AAAAfAAAAIwAAABkAAAAZAAAAGQAAACMAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAZAAAAGQAAABkAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACIAAAAiAAAAIgAAACIAAAAlAAAAGQAAABkAAAAZAAAAJQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAiAAAAIgAAACIAAAAiAAAAJQAAABkAAAAZAAAAGQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIgAAACIAAAAiAAAAIgAAACUAAAAZAAAAGQAAABkAAAAlAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACIAAAAiAAAAIgAAACIAAAAlAAAAGQAAABkAAAAZAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAZAAAAGQAAABkAAAAZAAAAFwAAABkAAAAZAAAAGQAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAGQAAABkAAAAZAAAAGQAAABcAAAAZAAAAGQAAABkAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAgAAAAJQAAAA==
|
||||
- ind: "0,0"
|
||||
tiles: GQAAABkAAAAZAAAAGQAAABcAAAAZAAAAGQAAABkAAAAlAAAAGwAAABsAAAAbAAAAGwAAACUAAAAgAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAGQAAABkAAAAZAAAAJQAAABsAAAAbAAAAGwAAABsAAAAlAAAAIAAAACUAAAAlAAAAIQAAACEAAAAhAAAAJQAAABkAAAAZAAAAGQAAABcAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAIQAAACEAAAAhAAAAIQAAACUAAAAZAAAAGQAAABkAAAAXAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAACUAAAAhAAAAIQAAACEAAAAlAAAAGQAAABkAAAAZAAAAFwAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAlAAAAJQAAACUAAAAlAAAAJQAAABcAAAAXAAAAFwAAACUAAAAXAAAAFwAAACUAAAAlAAAAFwAAABcAAAAXAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAlAAAAJQAAABgAAAAYAAAAGAAAACUAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAJQAAACUAAAAYAAAAGAAAABgAAAAlAAAAJQAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACUAAAAlAAAAGAAAABgAAAAYAAAAAAAAACUAAAAlAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAlAAAAJQAAABgAAAAYAAAAGAAAAAAAAAAAAAAAJQAAACUAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAJQAAACUAAAAYAAAAGAAAABgAAAAAAAAAAAAAAAAAAAAlAAAAJQAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACUAAAAlAAAAGAAAABgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAlAAAAIAAAACAAAAAgAAAAIAAAACAAAAAlAAAAJQAAABgAAAAYAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAACUAAAAgAAAAIAAAACAAAAAgAAAAJQAAACUAAAAYAAAAGAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAGAAAABgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAIwAAACUAAAAlAAAAJQAAABgAAAAYAAAAGAAAAA==
|
||||
- ind: "1,-1"
|
||||
@@ -318,7 +318,7 @@ entities:
|
||||
-5,0: 0
|
||||
-5,1: 1
|
||||
-5,2: 1
|
||||
-5,3: 2
|
||||
-5,3: 0
|
||||
-5,4: 1
|
||||
-5,5: 0
|
||||
-5,6: 0
|
||||
@@ -344,7 +344,7 @@ entities:
|
||||
-2,5: 0
|
||||
-2,6: 0
|
||||
-1,0: 0
|
||||
-1,1: 3
|
||||
-1,1: 0
|
||||
-1,2: 0
|
||||
-1,3: 0
|
||||
-1,4: 0
|
||||
@@ -394,7 +394,7 @@ entities:
|
||||
4,-14: 0
|
||||
4,-13: 0
|
||||
4,-8: 0
|
||||
4,-7: 3
|
||||
4,-7: 2
|
||||
4,-6: 1
|
||||
4,-5: 1
|
||||
4,-4: 1
|
||||
@@ -435,11 +435,11 @@ entities:
|
||||
8,-14: 0
|
||||
8,-13: 0
|
||||
8,-12: 0
|
||||
8,-11: 3
|
||||
8,-11: 2
|
||||
8,-10: 0
|
||||
8,-9: 0
|
||||
8,-8: 0
|
||||
8,-7: 3
|
||||
8,-7: 2
|
||||
8,-6: 1
|
||||
8,-5: 0
|
||||
8,-4: 1
|
||||
@@ -481,8 +481,8 @@ entities:
|
||||
11,-16: 1
|
||||
11,-15: 1
|
||||
11,-14: 1
|
||||
11,-13: 4
|
||||
11,-12: 3
|
||||
11,-13: 3
|
||||
11,-12: 2
|
||||
11,-11: 1
|
||||
11,-10: 0
|
||||
11,-9: 0
|
||||
@@ -561,7 +561,7 @@ entities:
|
||||
0,0: 0
|
||||
0,1: 1
|
||||
0,2: 1
|
||||
0,3: 2
|
||||
0,3: 0
|
||||
0,4: 1
|
||||
0,5: 0
|
||||
0,6: 0
|
||||
@@ -642,7 +642,7 @@ entities:
|
||||
8,10: 0
|
||||
8,11: 0
|
||||
8,12: 0
|
||||
8,13: 5
|
||||
8,13: 4
|
||||
8,14: 0
|
||||
8,15: 0
|
||||
9,0: 0
|
||||
@@ -650,15 +650,15 @@ entities:
|
||||
9,2: 0
|
||||
9,3: 0
|
||||
9,4: 0
|
||||
9,5: 6
|
||||
9,6: 3
|
||||
9,7: 4
|
||||
9,5: 5
|
||||
9,6: 2
|
||||
9,7: 3
|
||||
9,8: 0
|
||||
9,9: 3
|
||||
9,10: 4
|
||||
9,11: 7
|
||||
9,12: 8
|
||||
9,13: 9
|
||||
9,9: 2
|
||||
9,10: 3
|
||||
9,11: 6
|
||||
9,12: 7
|
||||
9,13: 8
|
||||
9,14: 0
|
||||
9,15: 0
|
||||
10,0: 0
|
||||
@@ -666,15 +666,15 @@ entities:
|
||||
10,2: 0
|
||||
10,3: 0
|
||||
10,4: 0
|
||||
10,5: 10
|
||||
10,6: 11
|
||||
10,7: 12
|
||||
10,8: 13
|
||||
10,9: 14
|
||||
10,10: 15
|
||||
10,11: 16
|
||||
10,12: 17
|
||||
10,13: 18
|
||||
10,5: 9
|
||||
10,6: 10
|
||||
10,7: 11
|
||||
10,8: 12
|
||||
10,9: 13
|
||||
10,10: 14
|
||||
10,11: 15
|
||||
10,12: 16
|
||||
10,13: 17
|
||||
10,14: 0
|
||||
10,15: 0
|
||||
11,0: 0
|
||||
@@ -683,15 +683,15 @@ entities:
|
||||
11,3: 0
|
||||
11,4: 0
|
||||
11,5: 0
|
||||
11,6: 19
|
||||
11,7: 13
|
||||
11,8: 20
|
||||
11,9: 21
|
||||
11,10: 22
|
||||
11,11: 23
|
||||
11,12: 24
|
||||
11,13: 25
|
||||
11,14: 26
|
||||
11,6: 18
|
||||
11,7: 12
|
||||
11,8: 19
|
||||
11,9: 20
|
||||
11,10: 21
|
||||
11,11: 22
|
||||
11,12: 23
|
||||
11,13: 24
|
||||
11,14: 25
|
||||
11,15: 1
|
||||
12,0: 0
|
||||
12,1: 0
|
||||
@@ -835,7 +835,7 @@ entities:
|
||||
20,-5: 0
|
||||
20,-4: 0
|
||||
20,-3: 0
|
||||
20,-2: 3
|
||||
20,-2: 2
|
||||
20,-1: 1
|
||||
21,-8: 0
|
||||
21,-7: 0
|
||||
@@ -987,9 +987,9 @@ entities:
|
||||
19,15: 0
|
||||
20,0: 1
|
||||
20,1: 1
|
||||
20,2: 3
|
||||
20,3: 27
|
||||
20,4: 28
|
||||
20,2: 2
|
||||
20,3: 5
|
||||
20,4: 26
|
||||
20,5: 0
|
||||
20,6: 0
|
||||
20,7: 0
|
||||
@@ -1023,14 +1023,14 @@ entities:
|
||||
23,5: 0
|
||||
23,6: 0
|
||||
24,0: 0
|
||||
24,1: 4
|
||||
24,2: 29
|
||||
24,1: 3
|
||||
24,2: 27
|
||||
24,3: 0
|
||||
24,4: 0
|
||||
24,5: 0
|
||||
24,6: 0
|
||||
25,0: 0
|
||||
25,1: 3
|
||||
25,1: 2
|
||||
25,2: 0
|
||||
25,3: 0
|
||||
25,4: 0
|
||||
@@ -1381,17 +1381,6 @@ entities:
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- volume: 2500
|
||||
temperature: 293.15
|
||||
moles:
|
||||
- 10.912439
|
||||
- 41.05156
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- volume: 2500
|
||||
temperature: 293.15
|
||||
moles:
|
||||
@@ -1656,17 +1645,6 @@ entities:
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- volume: 2500
|
||||
temperature: 293.15
|
||||
moles:
|
||||
- 20.37557
|
||||
- 76.650955
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- volume: 2500
|
||||
temperature: 293.15
|
||||
moles:
|
||||
@@ -3424,14 +3402,17 @@ entities:
|
||||
- chunkCollection: {}
|
||||
type: DecalGrid
|
||||
- uid: 5
|
||||
type: AirlockHydroponicsLocked
|
||||
type: CrateEngineeringAMEJar
|
||||
components:
|
||||
- pos: -4.5,3.5
|
||||
- pos: -12.5,-2.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- isPlaceable: False
|
||||
type: PlaceableSurface
|
||||
- containers:
|
||||
board: !type:Container
|
||||
EntityStorageComponent: !type:Container
|
||||
ents: []
|
||||
PaperLabel: !type:ContainerSlot {}
|
||||
type: ContainerContainer
|
||||
- uid: 6
|
||||
type: AMEController
|
||||
@@ -3443,17 +3424,20 @@ entities:
|
||||
AMEController-fuelJarContainer: !type:ContainerSlot {}
|
||||
type: ContainerContainer
|
||||
- uid: 7
|
||||
type: AirlockBarGlassLocked
|
||||
type: CrateEngineeringAMEJar
|
||||
components:
|
||||
- pos: -0.5,1.5
|
||||
- pos: -12.5,-3.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- isPlaceable: False
|
||||
type: PlaceableSurface
|
||||
- containers:
|
||||
board: !type:Container
|
||||
EntityStorageComponent: !type:Container
|
||||
ents: []
|
||||
PaperLabel: !type:ContainerSlot {}
|
||||
type: ContainerContainer
|
||||
- uid: 8
|
||||
type: CrateEngineeringAMEShielding
|
||||
type: CrateEngineeringAMEJar
|
||||
components:
|
||||
- pos: -13.5,-3.5
|
||||
parent: 4
|
||||
@@ -3813,16 +3797,15 @@ entities:
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 49
|
||||
type: CableTerminal
|
||||
type: AirlockBarGlassLocked
|
||||
components:
|
||||
- rot: -1.5707963267948966 rad
|
||||
pos: -13.5,-3.5
|
||||
- pos: -0.5,1.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- containers:
|
||||
board: !type:Container
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 50
|
||||
type: AirlockMaintLocked
|
||||
components:
|
||||
@@ -3860,7 +3843,7 @@ entities:
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 54
|
||||
type: AirlockKitchenLocked
|
||||
type: AirlockFreezerLocked
|
||||
components:
|
||||
- pos: 0.5,3.5
|
||||
parent: 4
|
||||
@@ -3870,17 +3853,14 @@ entities:
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 55
|
||||
type: CrateEngineeringAMEShielding
|
||||
type: AirlockServiceLocked
|
||||
components:
|
||||
- pos: -12.5,-3.5
|
||||
- pos: -4.5,3.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- isPlaceable: False
|
||||
type: PlaceableSurface
|
||||
- containers:
|
||||
EntityStorageComponent: !type:Container
|
||||
board: !type:Container
|
||||
ents: []
|
||||
PaperLabel: !type:ContainerSlot {}
|
||||
type: ContainerContainer
|
||||
- uid: 56
|
||||
type: SpawnPointBartender
|
||||
@@ -4600,17 +4580,12 @@ entities:
|
||||
- pos: 25.599106,-3.305048
|
||||
parent: 4
|
||||
type: Transform
|
||||
- cellSlot:
|
||||
startingItem: PowerCellSmallStandard
|
||||
name: power-cell-slot-component-slot-name-default
|
||||
type: PowerCellSlot
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- containers:
|
||||
BatteryBarrel-powercell-container: !type:ContainerSlot
|
||||
ent: 153
|
||||
BatteryBarrel-ammo-container: !type:ContainerSlot {}
|
||||
cellslot_cell_container: !type:ContainerSlot {}
|
||||
type: ContainerContainer
|
||||
- uid: 153
|
||||
type: PowerCellSmallStandard
|
||||
@@ -4625,17 +4600,12 @@ entities:
|
||||
- pos: 26.317856,-3.508173
|
||||
parent: 4
|
||||
type: Transform
|
||||
- cellSlot:
|
||||
startingItem: PowerCellSmallStandard
|
||||
name: power-cell-slot-component-slot-name-default
|
||||
type: PowerCellSlot
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- containers:
|
||||
BatteryBarrel-powercell-container: !type:ContainerSlot
|
||||
ent: 155
|
||||
BatteryBarrel-ammo-container: !type:ContainerSlot {}
|
||||
cellslot_cell_container: !type:ContainerSlot {}
|
||||
type: ContainerContainer
|
||||
- uid: 155
|
||||
type: PowerCellSmallStandard
|
||||
@@ -4652,7 +4622,6 @@ entities:
|
||||
type: Transform
|
||||
- containers:
|
||||
WeaponCapacitorCharger-powerCellContainer: !type:ContainerSlot {}
|
||||
charger-slot: !type:ContainerSlot {}
|
||||
type: ContainerContainer
|
||||
- uid: 157
|
||||
type: FoodBoxDonut
|
||||
@@ -6606,11 +6575,14 @@ entities:
|
||||
- uid: 446
|
||||
type: Bucket
|
||||
components:
|
||||
- pos: -7.692582,3.616344
|
||||
- rot: 1.6828704247018322E-05 rad
|
||||
pos: -6.7195354,4.7349987
|
||||
parent: 4
|
||||
type: Transform
|
||||
- solution: bucket
|
||||
type: Drink
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 447
|
||||
type: HydroponicsToolSpade
|
||||
components:
|
||||
@@ -7022,14 +6994,9 @@ entities:
|
||||
- uid: 497
|
||||
type: BarSign
|
||||
components:
|
||||
- desc: Enjoyed by fanatics, heretics, and brain-damaged patrons alike.
|
||||
name: 4 The Emprah
|
||||
type: MetaData
|
||||
- pos: 1.5,1.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- current: Emprah
|
||||
type: BarSign
|
||||
- uid: 498
|
||||
type: SignSmoking
|
||||
components:
|
||||
@@ -7133,11 +7100,15 @@ entities:
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 509
|
||||
type: BaseResearchAndDevelopmentPointSource
|
||||
type: CableHV
|
||||
components:
|
||||
- pos: 13.5,-5.5
|
||||
- pos: -14.5,-3.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 510
|
||||
type: CableHV
|
||||
components:
|
||||
@@ -15114,9 +15085,10 @@ entities:
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- cellSlot:
|
||||
startingItem: PowerCellSmallStandard
|
||||
name: power-cell-slot-component-slot-name-default
|
||||
- cellInsertSound: !type:SoundPathSpecifier
|
||||
path: /Audio/Items/pistol_magout.ogg
|
||||
cellRemoveSound: !type:SoundPathSpecifier
|
||||
path: /Audio/Items/pistol_magin.ogg
|
||||
type: PowerCellSlot
|
||||
- containers:
|
||||
cellslot_cell_container: !type:ContainerSlot {}
|
||||
@@ -15129,9 +15101,10 @@ entities:
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- cellSlot:
|
||||
startingItem: PowerCellSmallStandard
|
||||
name: power-cell-slot-component-slot-name-default
|
||||
- cellInsertSound: !type:SoundPathSpecifier
|
||||
path: /Audio/Items/pistol_magout.ogg
|
||||
cellRemoveSound: !type:SoundPathSpecifier
|
||||
path: /Audio/Items/pistol_magin.ogg
|
||||
type: PowerCellSlot
|
||||
- containers:
|
||||
cellslot_cell_container: !type:ContainerSlot {}
|
||||
@@ -16686,31 +16659,21 @@ entities:
|
||||
parent: 4
|
||||
type: Transform
|
||||
- uid: 1586
|
||||
type: DisposalPipe
|
||||
type: SprayBottleSpaceCleaner
|
||||
components:
|
||||
- rot: -1.5707963267948966 rad
|
||||
pos: 1.5,-9.5
|
||||
- pos: 2.7057152,-9.255201
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- containers:
|
||||
DisposalTransit: !type:Container
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 1587
|
||||
type: DisposalBend
|
||||
type: SprayBottleSpaceCleaner
|
||||
components:
|
||||
- rot: 3.141592653589793 rad
|
||||
pos: 0.5,-9.5
|
||||
- pos: 2.4713402,-9.473951
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- containers:
|
||||
DisposalBend: !type:Container
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 1588
|
||||
type: MopItem
|
||||
components:
|
||||
@@ -16738,20 +16701,11 @@ entities:
|
||||
parent: 4
|
||||
type: Transform
|
||||
- uid: 1591
|
||||
type: DisposalTrunk
|
||||
type: Table
|
||||
components:
|
||||
- rot: -1.5707963267948966 rad
|
||||
pos: 2.5,-9.5
|
||||
- pos: 2.5,-9.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- visible: False
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- containers:
|
||||
DisposalEntry: !type:Container
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 1592
|
||||
type: Catwalk
|
||||
components:
|
||||
@@ -17065,17 +17019,13 @@ entities:
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 1624
|
||||
type: DisposalBend
|
||||
type: SprayBottleSpaceCleaner
|
||||
components:
|
||||
- pos: 0.5,-8.5
|
||||
- pos: 2.2682152,-9.177076
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- containers:
|
||||
DisposalBend: !type:Container
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 1625
|
||||
type: MopBucket
|
||||
components:
|
||||
@@ -17113,7 +17063,7 @@ entities:
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 1629
|
||||
type: AirlockJanitorLocked
|
||||
type: AirlockServiceLocked
|
||||
components:
|
||||
- pos: 4.5,-9.5
|
||||
parent: 4
|
||||
@@ -20834,12 +20784,13 @@ entities:
|
||||
pos: 0.29553476,6.734992
|
||||
parent: 4
|
||||
type: Transform
|
||||
- cellSlot:
|
||||
startingItem: PowerCellSmallStandard
|
||||
name: power-cell-slot-component-slot-name-default
|
||||
type: PowerCellSlot
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- cellInsertSound: !type:SoundPathSpecifier
|
||||
path: /Audio/Items/pistol_magout.ogg
|
||||
cellRemoveSound: !type:SoundPathSpecifier
|
||||
path: /Audio/Items/pistol_magin.ogg
|
||||
type: PowerCellSlot
|
||||
- containers:
|
||||
cellslot_cell_container: !type:ContainerSlot {}
|
||||
type: ContainerContainer
|
||||
@@ -20850,12 +20801,13 @@ entities:
|
||||
pos: 2.327779,8.734997
|
||||
parent: 4
|
||||
type: Transform
|
||||
- cellSlot:
|
||||
startingItem: PowerCellSmallStandard
|
||||
name: power-cell-slot-component-slot-name-default
|
||||
type: PowerCellSlot
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- cellInsertSound: !type:SoundPathSpecifier
|
||||
path: /Audio/Items/pistol_magout.ogg
|
||||
cellRemoveSound: !type:SoundPathSpecifier
|
||||
path: /Audio/Items/pistol_magin.ogg
|
||||
type: PowerCellSlot
|
||||
- containers:
|
||||
cellslot_cell_container: !type:ContainerSlot {}
|
||||
type: ContainerContainer
|
||||
@@ -20865,12 +20817,13 @@ entities:
|
||||
- pos: 2.375757,6.8272552
|
||||
parent: 4
|
||||
type: Transform
|
||||
- cellSlot:
|
||||
startingItem: PowerCellSmallStandard
|
||||
name: power-cell-slot-component-slot-name-default
|
||||
type: PowerCellSlot
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- cellInsertSound: !type:SoundPathSpecifier
|
||||
path: /Audio/Items/pistol_magout.ogg
|
||||
cellRemoveSound: !type:SoundPathSpecifier
|
||||
path: /Audio/Items/pistol_magin.ogg
|
||||
type: PowerCellSlot
|
||||
- containers:
|
||||
cellslot_cell_container: !type:ContainerSlot {}
|
||||
type: ContainerContainer
|
||||
@@ -20880,12 +20833,13 @@ entities:
|
||||
- pos: 7.3755507,11.8511915
|
||||
parent: 4
|
||||
type: Transform
|
||||
- cellSlot:
|
||||
startingItem: PowerCellSmallStandard
|
||||
name: power-cell-slot-component-slot-name-default
|
||||
type: PowerCellSlot
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- cellInsertSound: !type:SoundPathSpecifier
|
||||
path: /Audio/Items/pistol_magout.ogg
|
||||
cellRemoveSound: !type:SoundPathSpecifier
|
||||
path: /Audio/Items/pistol_magin.ogg
|
||||
type: PowerCellSlot
|
||||
- containers:
|
||||
cellslot_cell_container: !type:ContainerSlot {}
|
||||
type: ContainerContainer
|
||||
@@ -20895,12 +20849,13 @@ entities:
|
||||
- pos: 10.281801,11.8668165
|
||||
parent: 4
|
||||
type: Transform
|
||||
- cellSlot:
|
||||
startingItem: PowerCellSmallStandard
|
||||
name: power-cell-slot-component-slot-name-default
|
||||
type: PowerCellSlot
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- cellInsertSound: !type:SoundPathSpecifier
|
||||
path: /Audio/Items/pistol_magout.ogg
|
||||
cellRemoveSound: !type:SoundPathSpecifier
|
||||
path: /Audio/Items/pistol_magin.ogg
|
||||
type: PowerCellSlot
|
||||
- containers:
|
||||
cellslot_cell_container: !type:ContainerSlot {}
|
||||
type: ContainerContainer
|
||||
@@ -20910,12 +20865,13 @@ entities:
|
||||
- pos: 10.344301,9.7574415
|
||||
parent: 4
|
||||
type: Transform
|
||||
- cellSlot:
|
||||
startingItem: PowerCellSmallStandard
|
||||
name: power-cell-slot-component-slot-name-default
|
||||
type: PowerCellSlot
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- cellInsertSound: !type:SoundPathSpecifier
|
||||
path: /Audio/Items/pistol_magout.ogg
|
||||
cellRemoveSound: !type:SoundPathSpecifier
|
||||
path: /Audio/Items/pistol_magin.ogg
|
||||
type: PowerCellSlot
|
||||
- containers:
|
||||
cellslot_cell_container: !type:ContainerSlot {}
|
||||
type: ContainerContainer
|
||||
@@ -21452,16 +21408,12 @@ entities:
|
||||
- pos: 21.5,4.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- enabled: False
|
||||
type: AmbientSound
|
||||
- uid: 2060
|
||||
type: VendingMachineCola
|
||||
components:
|
||||
- pos: 23.5,4.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- enabled: False
|
||||
type: AmbientSound
|
||||
- uid: 2061
|
||||
type: SalternApc
|
||||
components:
|
||||
@@ -21563,100 +21515,4 @@ entities:
|
||||
type: Sprite
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 2071
|
||||
type: WindowReinforcedDirectional
|
||||
components:
|
||||
- rot: 1.5707963267948966 rad
|
||||
pos: -1.5,1.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- uid: 2072
|
||||
type: DisposalBend
|
||||
components:
|
||||
- rot: 3.141592653589793 rad
|
||||
pos: -0.5,-8.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- containers:
|
||||
DisposalBend: !type:Container
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 2073
|
||||
type: DisposalBend
|
||||
components:
|
||||
- pos: -0.5,-7.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- containers:
|
||||
DisposalBend: !type:Container
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 2074
|
||||
type: DisposalBend
|
||||
components:
|
||||
- rot: 1.5707963267948966 rad
|
||||
pos: -1.5,-7.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- containers:
|
||||
DisposalBend: !type:Container
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 2075
|
||||
type: DisposalUnit
|
||||
components:
|
||||
- pos: 2.5,-9.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- containers:
|
||||
DisposalUnit: !type:Container
|
||||
ents: []
|
||||
type: ContainerContainer
|
||||
- uid: 2076
|
||||
type: SeedExtractor
|
||||
components:
|
||||
- pos: -6.5,4.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- uid: 2077
|
||||
type: WheatSeeds
|
||||
components:
|
||||
- pos: -6.817582,2.772594
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 2078
|
||||
type: WheatSeeds
|
||||
components:
|
||||
- pos: -6.598832,2.585094
|
||||
parent: 4
|
||||
type: Transform
|
||||
- canCollide: False
|
||||
type: Physics
|
||||
- uid: 2079
|
||||
type: SalvageMagnet
|
||||
components:
|
||||
- rot: 3.141592653589793 rad
|
||||
pos: 5.5,11.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- uid: 2080
|
||||
type: SpawnPointSecurityOfficer
|
||||
components:
|
||||
- pos: 22.5,-4.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
- uid: 2081
|
||||
type: SpawnPointSecurityOfficer
|
||||
components:
|
||||
- pos: 21.5,-4.5
|
||||
parent: 4
|
||||
type: Transform
|
||||
...
|
||||
|
||||
@@ -97,15 +97,4 @@
|
||||
- type: entity
|
||||
id: ClosetRadiationSuitFilled
|
||||
parent: ClosetRadiationSuit
|
||||
suffix: Filled
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: ClothingHeadHatHoodRad
|
||||
amount: 2
|
||||
- id: ClothingOuterSuitRad
|
||||
amount: 2
|
||||
- id: ClothingEyesGlassesMeson
|
||||
amount: 2
|
||||
|
||||
|
||||
suffix: Filled
|
||||
@@ -2,19 +2,6 @@
|
||||
id: LockerMedicineFilled
|
||||
suffix: Filled
|
||||
parent: LockerMedicine
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: BoxPillCanister
|
||||
amount: 1
|
||||
- id: BoxSyringe
|
||||
amount: 1
|
||||
- id: EpinephrineChemistryBottle
|
||||
amount: 3
|
||||
- id: Brutepack
|
||||
amount: 2
|
||||
- id: Ointment
|
||||
amount: 2
|
||||
|
||||
- type: entity
|
||||
id: LockerMedicalFilled
|
||||
|
||||
@@ -1,173 +1,39 @@
|
||||
- type: entity
|
||||
id: WardrobeGreyFilled
|
||||
suffix: Filled
|
||||
parent: WardrobeGrey
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: ClothingUniformJumpsuitColorGrey
|
||||
amount: 2
|
||||
- id: ClothingUniformJumpskirtColorGrey
|
||||
amount: 2
|
||||
- id: ClothingShoesColorBlack
|
||||
amount: 3
|
||||
- id: ClothingHeadHatGreysoft
|
||||
amount: 1
|
||||
- id: ClothingBackpackDuffel
|
||||
prob: 0.5
|
||||
- id: ClothingOuterCoatBomber
|
||||
prob: 0.3
|
||||
#- type: entity
|
||||
# id: WardrobeGreyFilled
|
||||
# suffix: Filled
|
||||
# parent: WardrobeGrey
|
||||
|
||||
- type: entity
|
||||
id: WardrobeMixedFilled
|
||||
suffix: Filled
|
||||
parent: WardrobeMixed
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: ClothingUniformJumpsuitColorWhite
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpskirtColorWhite
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpsuitColorBlue
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpskirtColorBlue
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpsuitColorYellow
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpskirtColorYellow
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpsuitColorGreen
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpskirtColorGreen
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpsuitColorOrange
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpskirtColorOrange
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpsuitColorPink
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpskirtColorPink
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpsuitColorRed
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpskirtColorRed
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpsuitColorDarkBlue
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpskirtColorDarkBlue
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpsuitColorTeal
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpskirtColorTeal
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpsuitColorPurple
|
||||
prob: 0.25
|
||||
- id: ClothingUniformJumpskirtColorPurple
|
||||
prob: 0.25
|
||||
- id: ClothingShoesColorBlack
|
||||
amount: 1
|
||||
- id: ClothingShoesColorBrown
|
||||
amount: 1
|
||||
- id: ClothingShoesColorWhite
|
||||
amount: 1
|
||||
- id: ClothingOuterCoatBomber
|
||||
prob: 0.4
|
||||
- id: ClothingOuterCoatGentle
|
||||
prob: 0.3
|
||||
|
||||
- type: entity
|
||||
id: WardrobeYellowFilled
|
||||
suffix: Filled
|
||||
parent: WardrobeYellow
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: ClothingUniformJumpsuitColorYellow
|
||||
amount: 1
|
||||
- id: ClothingUniformJumpskirtColorYellow
|
||||
amount: 1
|
||||
- id: ClothingShoesColorOrange
|
||||
amount: 2
|
||||
- id: HatBandGold
|
||||
amount: 1
|
||||
#- type: entity
|
||||
# id: WardrobeMixedFilled
|
||||
# suffix: Filled
|
||||
# parent: WardrobeMixed
|
||||
|
||||
#- type: entity
|
||||
# id: WardrobeYellowFilled
|
||||
# suffix: Filled
|
||||
# parent: WardrobeYellow
|
||||
|
||||
- type: entity
|
||||
id: WardrobeWhiteFilled
|
||||
suffix: Filled
|
||||
parent: WardrobeWhite
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: ClothingUniformJumpsuitColorWhite
|
||||
amount: 1
|
||||
- id: ClothingUniformJumpskirtColorWhite
|
||||
amount: 1
|
||||
- id: ClothingShoesColorWhite
|
||||
amount: 2
|
||||
- id: ClothingHeadHatMimesoft
|
||||
amount: 1
|
||||
|
||||
- type: entity
|
||||
id: WardrobeBlueFilled
|
||||
suffix: Filled
|
||||
parent: WardrobeBlue
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: ClothingUniformJumpsuitColorBlue
|
||||
amount: 1
|
||||
- id: ClothingUniformJumpskirtColorBlue
|
||||
amount: 1
|
||||
- id: ClothingShoesColorBrown
|
||||
amount: 2
|
||||
#- type: entity
|
||||
# id: WardrobeBlueFilled
|
||||
# suffix: Filled
|
||||
# parent: WardrobeBlue
|
||||
|
||||
- type: entity
|
||||
id: WardrobePinkFilled
|
||||
suffix: Filled
|
||||
parent: WardrobePink
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: ClothingUniformJumpsuitColorPink
|
||||
amount: 1
|
||||
- id: ClothingUniformJumpskirtColorPink
|
||||
amount: 1
|
||||
- id: ClothingShoesColorBrown
|
||||
amount: 2
|
||||
#- type: entity
|
||||
# id: WardrobePinkFilled
|
||||
# suffix: Filled
|
||||
# parent: WardrobePink
|
||||
|
||||
- type: entity
|
||||
id: WardrobeBlackFilled
|
||||
suffix: Filled
|
||||
parent: WardrobeBlack
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: ClothingUniformJumpsuitColorBlack
|
||||
amount: 1
|
||||
- id: ClothingUniformJumpskirtColorBlack
|
||||
amount: 1
|
||||
- id: ClothingShoesColorBlack
|
||||
amount: 2
|
||||
- id: HatBandBlack
|
||||
amount: 1
|
||||
- id: HatBandSkull
|
||||
prob: 0.4
|
||||
|
||||
- type: entity
|
||||
id: WardrobeGreenFilled
|
||||
suffix: Filled
|
||||
parent: WardrobeGreen
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: ClothingUniformJumpsuitColorGreen
|
||||
amount: 1
|
||||
- id: ClothingUniformJumpskirtColorGreen
|
||||
amount: 1
|
||||
- id: ClothingShoesColorBlack
|
||||
amount: 2
|
||||
- id: HatBandGreen
|
||||
amount: 1
|
||||
#- type: entity
|
||||
# id: WardrobeBlackFilled
|
||||
# suffix: Filled
|
||||
# parent: WardrobeBlack
|
||||
|
||||
#- type: entity
|
||||
# id: WardrobeGreenFilled
|
||||
# suffix: Filled
|
||||
# parent: WardrobeGreen
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
inventory:
|
||||
- Aluminium
|
||||
- Carbon
|
||||
- CapsaicinOil
|
||||
- Chlorine
|
||||
- Copper
|
||||
- Ethanol
|
||||
|
||||
@@ -24,12 +24,12 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: blue
|
||||
- texture: Mobs/Aliens/Xenos/burrower.rsi/crit.png
|
||||
- state: ai
|
||||
- state: blue
|
||||
- texture: Mobs/Aliens/Xenos/xeno.rsi/crit.png
|
||||
- state: ai
|
||||
- type: TimedSpawner
|
||||
prototypes:
|
||||
- MobXeno
|
||||
- MobXeno
|
||||
chance: 0.85
|
||||
intervalSeconds: 30
|
||||
minimumEntitiesSpawned: 2
|
||||
|
||||
@@ -15,18 +15,18 @@
|
||||
- type: Hands
|
||||
- type: Sprite
|
||||
drawdepth: Mobs
|
||||
sprite: Mobs/Aliens/Xenos/burrower.rsi
|
||||
layers:
|
||||
- map: ["enum.DamageStateVisualLayers.Base"]
|
||||
state: running
|
||||
sprite: Mobs/Aliens/Xenos/xeno.rsi
|
||||
- type: Physics
|
||||
bodyType: Dynamic
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
- shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.35
|
||||
mass: 120
|
||||
!type:PhysShapeAabb
|
||||
bounds: "-0.4,-1,0.4,-0.2"
|
||||
mass: 85
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
@@ -56,7 +56,6 @@
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: DamageStateVisualizer
|
||||
rotate: true
|
||||
normal: running
|
||||
crit: crit
|
||||
dead: dead
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
name: closet
|
||||
description: A standard-issue Nanotrasen storage unit.
|
||||
components:
|
||||
- type: ResistLocker
|
||||
- type: Transform
|
||||
noRot: true
|
||||
- type: Sprite
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
id: ClosetRadiationSuit
|
||||
name: radiation suit closet
|
||||
parent: ClosetBase
|
||||
description: "More comfortable than radiation poisioning."
|
||||
description: It's a storage unit for rad-protective suits.
|
||||
components:
|
||||
- type: Appearance
|
||||
visuals:
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
id: WardrobeBlue
|
||||
parent: WardrobeBase
|
||||
name: blue wardrobe
|
||||
description: "A wardrobe packed with stylish blue clothing."
|
||||
components:
|
||||
- type: Appearance
|
||||
visuals:
|
||||
@@ -26,7 +25,6 @@
|
||||
id: WardrobePink
|
||||
parent: WardrobeBase
|
||||
name: pink wardrobe
|
||||
description: "A wardrobe packed with fabulous pink clothing."
|
||||
components:
|
||||
- type: Appearance
|
||||
visuals:
|
||||
@@ -40,7 +38,6 @@
|
||||
id: WardrobeBlack
|
||||
parent: WardrobeBase
|
||||
name: black wardrobe
|
||||
description: "A wardrobe packed with stylish black clothing."
|
||||
components:
|
||||
- type: Appearance
|
||||
visuals:
|
||||
@@ -54,7 +51,6 @@
|
||||
id: WardrobeGreen
|
||||
parent: WardrobeBase
|
||||
name: green wardrobe
|
||||
description: "A wardrobe packed with stylish green clothing."
|
||||
components:
|
||||
- type: Appearance
|
||||
visuals:
|
||||
@@ -81,7 +77,6 @@
|
||||
id: WardrobeYellow
|
||||
parent: WardrobeBase
|
||||
name: yellow wardrobe
|
||||
description: "A wardrobe packed with stylish yellow clothing."
|
||||
components:
|
||||
- type: Appearance
|
||||
visuals:
|
||||
@@ -95,7 +90,6 @@
|
||||
id: WardrobeWhite
|
||||
parent: WardrobeBase
|
||||
name: white wardrobe
|
||||
description: "A wardrobe packed with stylish white clothing."
|
||||
components:
|
||||
- type: Appearance
|
||||
visuals:
|
||||
@@ -109,7 +103,6 @@
|
||||
id: WardrobeGrey
|
||||
parent: WardrobeBase
|
||||
name: grey wardrobe
|
||||
description: "A wardrobe packed with a tide of grey clothing."
|
||||
components:
|
||||
- type: Appearance
|
||||
visuals:
|
||||
@@ -123,7 +116,6 @@
|
||||
id: WardrobeMixed
|
||||
parent: WardrobeBase
|
||||
name: mixed wardrobe
|
||||
description: "A wardrobe packed with a mix of colorful clothing."
|
||||
components:
|
||||
- type: Appearance
|
||||
visuals:
|
||||
|
||||
@@ -110,55 +110,3 @@
|
||||
graph: railing
|
||||
node: railingCorner
|
||||
|
||||
- type: entity
|
||||
parent: BaseStructure
|
||||
id: RailingCornerSmall
|
||||
name: railing
|
||||
description: Basic railing meant to protect idiots like you from falling.
|
||||
components:
|
||||
- type: Sprite
|
||||
netsync: false
|
||||
drawdepth: WallTops
|
||||
sprite: Structures/Walls/railing.rsi
|
||||
state: corner_small
|
||||
- type: Icon
|
||||
sprite: Structures/Walls/railing.rsi
|
||||
state: corner_small
|
||||
- type: Physics
|
||||
bodyType: Static
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
- shape:
|
||||
!type:PhysShapeAabb
|
||||
bounds: "-0.49,0.49,-0.3,0.3"
|
||||
mass: 50
|
||||
layer:
|
||||
- SmallImpassable
|
||||
mask:
|
||||
- Impassable
|
||||
- type: InteractionOutline
|
||||
- type: Repairable
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: FlimsyMetallic
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 20
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
path: /Audio/Effects/metalbreak.ogg
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
PartRodMetal1:
|
||||
min: 0
|
||||
max: 2
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- type: Climbable
|
||||
- type: Construction
|
||||
graph: railing
|
||||
node: railingCornerSmall
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
prefixCreator: '14'
|
||||
mapPath: Maps/ssreach.yml
|
||||
minPlayers: 0
|
||||
maxPlayers: 17
|
||||
maxPlayers: 15
|
||||
overflowJobs: []
|
||||
availableJobs:
|
||||
CargoTechnician: [ 1, 1 ]
|
||||
@@ -114,7 +114,7 @@
|
||||
MedicalDoctor: [ 1, 1 ]
|
||||
Chemist: [ 1, 1 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 2, 4 ]
|
||||
SecurityOfficer: [ 1, 2 ]
|
||||
Janitor: [ 1, 1 ]
|
||||
|
||||
#- type: gameMap
|
||||
@@ -133,4 +133,4 @@
|
||||
# ChiefEngineer: [ 1, 1 ]
|
||||
# ChiefMedicalOfficer: [ 1, 1 ]
|
||||
# HeadOfSecurity: [ 1, 1 ]
|
||||
# SecurityOfficer: [ 2, 3 ]
|
||||
# SecurityOfficer: [ 2, 4 ]
|
||||
|
||||
@@ -20,14 +20,6 @@
|
||||
- material: MetalRod
|
||||
amount: 2
|
||||
doAfter: 2.5
|
||||
- to: railingCornerSmall
|
||||
completed:
|
||||
- !type:SnapToGrid
|
||||
southRotation: true
|
||||
steps:
|
||||
- material: MetalRod
|
||||
amount: 1
|
||||
doAfter: 2
|
||||
|
||||
- node: railing
|
||||
entity: Railing
|
||||
@@ -54,16 +46,3 @@
|
||||
steps:
|
||||
- tool: Screwing
|
||||
doAfter: 0.5
|
||||
|
||||
- node: railingCornerSmall
|
||||
entity: RailingCornerSmall
|
||||
edges:
|
||||
- to: start
|
||||
completed:
|
||||
- !type:SpawnPrototype
|
||||
prototype: PartRodMetal1
|
||||
amount: 1
|
||||
- !type:DeleteEntity
|
||||
steps:
|
||||
- tool: Screwing
|
||||
doAfter: 0.25
|
||||
|
||||
@@ -307,23 +307,6 @@
|
||||
conditions:
|
||||
- !type:TileNotBlocked
|
||||
|
||||
- type: construction
|
||||
name: railing corner small
|
||||
id: RailingCornerSmall
|
||||
graph: railing
|
||||
startNode: start
|
||||
targetNode: railingCornerSmall
|
||||
category: Structures
|
||||
description: Basic railing meant to protect idiots like you from falling.
|
||||
icon:
|
||||
sprite: Structures/Walls/railing.rsi
|
||||
state: corner_small
|
||||
objectType: Structure
|
||||
placementMode: SnapgridCenter
|
||||
canBuildInImpassable: false
|
||||
conditions:
|
||||
- !type:TileNotBlocked
|
||||
|
||||
- type: construction
|
||||
name: airlock
|
||||
id: airlock
|
||||
|
||||
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Taken from Colonial Marines at commit https://gitlab.com/cmdevs/colonial-warfare/-/commit/f6b3c61fcbfe73a3f0f92edd5fc441ef845017e5 Sprites centered by metalgearsloth",
|
||||
"copyright": "Taken from Colonial Marines at commit https://gitlab.com/cmdevs/colonial-warfare/-/commit/f6b3c61fcbfe73a3f0f92edd5fc441ef845017e5",
|
||||
"size": {
|
||||
"x": 64,
|
||||
"y": 64
|
||||
BIN
Resources/Textures/Mobs/Aliens/Xenos/xeno.rsi/running.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
Resources/Textures/Mobs/Aliens/Xenos/xeno.rsi/sleeping.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
Resources/Textures/Mobs/Aliens/Xenos/xeno.rsi/walking.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 405 B |
@@ -6,18 +6,14 @@
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "side",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "corner",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "corner_small",
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
"states": [
|
||||
{
|
||||
"name": "side",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "corner",
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||