Revert "Fork sync (#40)" (#43)

This reverts commit fe139a9e93.
This commit is contained in:
Morbo
2022-01-07 20:28:59 +03:00
committed by GitHub
parent fe139a9e93
commit 946f01ac05
53 changed files with 693 additions and 1433 deletions

View File

@@ -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"
};
}
}

View File

@@ -1,10 +0,0 @@
using Content.Shared.Foldable;
using JetBrains.Annotations;
namespace Content.Client.Foldable;
[UsedImplicitly]
public sealed class FoldableSystem : SharedFoldableSystem
{
// classic.
}

View File

@@ -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);

View File

@@ -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;
}
}
}
}
}

View File

@@ -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();

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;
}
}
}

View 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;
}
}

View File

@@ -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()

View File

@@ -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;
}

View File

@@ -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";
}
}

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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;
}
}
}

View File

@@ -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;
}

View File

@@ -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;
}
}

View File

@@ -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();
}
}

View File

@@ -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;

View File

@@ -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);

View File

@@ -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;

View File

@@ -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.

View File

@@ -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()

View File

@@ -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()

View File

@@ -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'

View File

@@ -18,4 +18,3 @@ chatsan-confused = looks confused
chatsan-unimpressed = seems unimpressed
chatsan-waves = waves
chatsan-salutes = salutes
chatsan-shrugs = shrugs

View File

@@ -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!

View File

@@ -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:

View File

@@ -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
...

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -3,6 +3,7 @@
inventory:
- Aluminium
- Carbon
- CapsaicinOil
- Chlorine
- Copper
- Ethanol

View File

@@ -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

View File

@@ -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

View File

@@ -4,7 +4,6 @@
name: closet
description: A standard-issue Nanotrasen storage unit.
components:
- type: ResistLocker
- type: Transform
noRot: true
- type: Sprite

View File

@@ -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:

View File

@@ -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:

View File

@@ -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

View File

@@ -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 ]

View File

@@ -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

View File

@@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 B

View File

@@ -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
}
]
}