Compare commits
38 Commits
2817bc326d
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
86eeafebf6 | ||
|
|
33e6f83d6b | ||
| 2a085b7e64 | |||
|
|
fe19eca8ca | ||
|
|
d45c22ac6b | ||
|
|
5a8b515eb5 | ||
|
|
41d0338fcc | ||
|
|
653bc57aef | ||
|
|
c79bd1822f | ||
|
|
c2801fc5db | ||
|
|
800fd928b8 | ||
|
|
cef7597e8d | ||
|
|
f42c2ae11b | ||
|
|
1c2f200762 | ||
|
|
3e33dc5936 | ||
|
|
da7cf45fa6 | ||
|
|
8d66d0bc7c | ||
|
|
bd8bbdcbe7 | ||
|
|
86cf6ef2c4 | ||
|
|
2eb6888fac | ||
|
|
cef0e84bff | ||
|
|
a6f8c868fd | ||
|
|
9e53d064f2 | ||
|
|
1a7dca3aac | ||
|
|
e91df813d2 | ||
|
|
d1661c1bf7 | ||
|
|
4ff374660a | ||
| 9d2d51cdad | |||
|
|
f08b58255b | ||
|
|
56a9ba096d | ||
|
|
f27cba0c4f | ||
|
|
5c034953ba | ||
|
|
9f39c112ad | ||
|
|
b2ffe70f8f | ||
|
|
a1d96346e6 | ||
|
|
4f2f9eced9 | ||
|
|
2f977a0670 | ||
|
|
e0adc2fce8 |
@@ -0,0 +1,5 @@
|
|||||||
|
using Content.Shared.DeltaV.Shuttles.Systems;
|
||||||
|
|
||||||
|
namespace Content.Client.DeltaV.Shuttles.Systems;
|
||||||
|
|
||||||
|
public sealed class DockingConsoleSystem : SharedDockingConsoleSystem;
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
using Content.Shared.DeltaV.Shuttles;
|
||||||
|
|
||||||
|
namespace Content.Client.DeltaV.Shuttles.UI;
|
||||||
|
|
||||||
|
public sealed class DockingConsoleBoundUserInterface : BoundUserInterface
|
||||||
|
{
|
||||||
|
[ViewVariables]
|
||||||
|
private DockingConsoleWindow? _window;
|
||||||
|
|
||||||
|
public DockingConsoleBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Open()
|
||||||
|
{
|
||||||
|
base.Open();
|
||||||
|
|
||||||
|
_window = new DockingConsoleWindow(Owner);
|
||||||
|
_window.OnFTL += index => SendMessage(new DockingConsoleFTLMessage(index));
|
||||||
|
_window.OnClose += Close;
|
||||||
|
_window.OpenCentered();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void UpdateState(BoundUserInterfaceState state)
|
||||||
|
{
|
||||||
|
base.UpdateState(state);
|
||||||
|
if (state is DockingConsoleState cast)
|
||||||
|
_window?.UpdateState(cast);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
base.Dispose(disposing);
|
||||||
|
|
||||||
|
if (disposing)
|
||||||
|
_window?.Orphan();
|
||||||
|
}
|
||||||
|
}
|
||||||
17
Content.Client/DeltaV/Shuttles/UI/DockingConsoleWindow.xaml
Normal file
17
Content.Client/DeltaV/Shuttles/UI/DockingConsoleWindow.xaml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<controls:FancyWindow xmlns="https://spacestation14.io"
|
||||||
|
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
|
||||||
|
SetSize="500 500">
|
||||||
|
<BoxContainer Orientation="Vertical">
|
||||||
|
<ScrollContainer SetHeight="256" HorizontalExpand="True">
|
||||||
|
<ItemList Name="Destinations"/> <!-- Populated from comp.Destinations -->
|
||||||
|
</ScrollContainer>
|
||||||
|
<controls:StripeBack MinSize="48 48">
|
||||||
|
<Label Text="{Loc 'shuttle-console-ftl-label'}" VerticalExpand="True" HorizontalAlignment="Center"/>
|
||||||
|
</controls:StripeBack>
|
||||||
|
<Label Name="MapFTLState" Text="{Loc 'shuttle-console-ftl-state-Available'}" VerticalAlignment="Stretch" HorizontalAlignment="Center"/>
|
||||||
|
<ProgressBar Name="FTLBar" HorizontalExpand="True" Margin="5" MinValue="0.0" MaxValue="1.0" Value="1.0" SetHeight="32"/>
|
||||||
|
<controls:StripeBack HorizontalExpand="True">
|
||||||
|
<Button Name="FTLButton" Text="{Loc 'docking-console-ftl'}" Disabled="True" SetSize="128 48" Margin="5"/>
|
||||||
|
</controls:StripeBack>
|
||||||
|
</BoxContainer>
|
||||||
|
</controls:FancyWindow>
|
||||||
112
Content.Client/DeltaV/Shuttles/UI/DockingConsoleWindow.xaml.cs
Normal file
112
Content.Client/DeltaV/Shuttles/UI/DockingConsoleWindow.xaml.cs
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
using Content.Client.UserInterface.Controls;
|
||||||
|
using Content.Shared.Access.Systems;
|
||||||
|
using Content.Shared.DeltaV.Shuttles;
|
||||||
|
using Content.Shared.DeltaV.Shuttles.Components;
|
||||||
|
using Content.Shared.Shuttles.Systems;
|
||||||
|
using Content.Shared.Timing;
|
||||||
|
using Robust.Client.AutoGenerated;
|
||||||
|
using Robust.Client.Graphics;
|
||||||
|
using Robust.Client.Player;
|
||||||
|
using Robust.Client.UserInterface.XAML;
|
||||||
|
using Robust.Shared.Timing;
|
||||||
|
|
||||||
|
namespace Content.Client.DeltaV.Shuttles.UI;
|
||||||
|
|
||||||
|
[GenerateTypedNameReferences]
|
||||||
|
public sealed partial class DockingConsoleWindow : FancyWindow
|
||||||
|
{
|
||||||
|
[Dependency] private readonly IEntityManager _entMan = default!;
|
||||||
|
[Dependency] private readonly IGameTiming _timing = default!;
|
||||||
|
[Dependency] private readonly IPlayerManager _player = default!;
|
||||||
|
private readonly AccessReaderSystem _access;
|
||||||
|
|
||||||
|
public event Action<int>? OnFTL;
|
||||||
|
|
||||||
|
private readonly EntityUid _owner;
|
||||||
|
private readonly StyleBoxFlat _ftlStyle;
|
||||||
|
|
||||||
|
private FTLState _state;
|
||||||
|
private int? _selected;
|
||||||
|
private StartEndTime _ftlTime;
|
||||||
|
|
||||||
|
public DockingConsoleWindow(EntityUid owner)
|
||||||
|
{
|
||||||
|
RobustXamlLoader.Load(this);
|
||||||
|
IoCManager.InjectDependencies(this);
|
||||||
|
|
||||||
|
_access = _entMan.System<AccessReaderSystem>();
|
||||||
|
|
||||||
|
_owner = owner;
|
||||||
|
|
||||||
|
_ftlStyle = new StyleBoxFlat(Color.LimeGreen);
|
||||||
|
FTLBar.ForegroundStyleBoxOverride = _ftlStyle;
|
||||||
|
|
||||||
|
if (!_entMan.TryGetComponent<DockingConsoleComponent>(owner, out var comp))
|
||||||
|
return;
|
||||||
|
|
||||||
|
Title = Loc.GetString(comp.WindowTitle);
|
||||||
|
|
||||||
|
if (!comp.HasShuttle)
|
||||||
|
{
|
||||||
|
MapFTLState.Text = Loc.GetString("docking-console-no-shuttle");
|
||||||
|
_ftlStyle.BackgroundColor = Color.FromHex("#B02E26");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Destinations.OnItemSelected += args => _selected = args.ItemIndex;
|
||||||
|
Destinations.OnItemDeselected += _ => _selected = null;
|
||||||
|
|
||||||
|
FTLButton.OnPressed += _ =>
|
||||||
|
{
|
||||||
|
if (_selected is {} index)
|
||||||
|
OnFTL?.Invoke(index);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateState(DockingConsoleState state)
|
||||||
|
{
|
||||||
|
_state = state.FTLState;
|
||||||
|
_ftlTime = state.FTLTime;
|
||||||
|
|
||||||
|
MapFTLState.Text = Loc.GetString($"shuttle-console-ftl-state-{_state.ToString()}");
|
||||||
|
_ftlStyle.BackgroundColor = Color.FromHex(_state switch
|
||||||
|
{
|
||||||
|
FTLState.Available => "#80C71F",
|
||||||
|
FTLState.Starting => "#169C9C",
|
||||||
|
FTLState.Travelling => "#8932B8",
|
||||||
|
FTLState.Arriving => "#F9801D",
|
||||||
|
_ => "#B02E26" // cooldown and fallback
|
||||||
|
});
|
||||||
|
|
||||||
|
UpdateButton();
|
||||||
|
|
||||||
|
if (Destinations.Count == state.Destinations.Count)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Destinations.Clear();
|
||||||
|
foreach (var dest in state.Destinations)
|
||||||
|
{
|
||||||
|
Destinations.AddItem(dest.Name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateButton()
|
||||||
|
{
|
||||||
|
FTLButton.Disabled = _selected == null || _state != FTLState.Available || !HasAccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool HasAccess()
|
||||||
|
{
|
||||||
|
return _player.LocalSession?.AttachedEntity is {} player && _access.IsAllowed(player, _owner);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void FrameUpdate(FrameEventArgs args)
|
||||||
|
{
|
||||||
|
base.FrameUpdate(args);
|
||||||
|
|
||||||
|
UpdateButton();
|
||||||
|
|
||||||
|
var progress = _ftlTime.ProgressAt(_timing.CurTime);
|
||||||
|
FTLBar.Value = float.IsFinite(progress) ? progress : 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
123
Content.Client/DeltaV/VendingMachines/ShopVendorSystem.cs
Normal file
123
Content.Client/DeltaV/VendingMachines/ShopVendorSystem.cs
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
using Content.Shared.DeltaV.VendingMachines;
|
||||||
|
using Content.Shared.VendingMachines;
|
||||||
|
using Robust.Client.Animations;
|
||||||
|
using Robust.Client.GameObjects;
|
||||||
|
|
||||||
|
namespace Content.Client.DeltaV.VendingMachines;
|
||||||
|
|
||||||
|
public sealed class ShopVendorSystem : SharedShopVendorSystem
|
||||||
|
{
|
||||||
|
[Dependency] private readonly AnimationPlayerSystem _animationPlayer = default!;
|
||||||
|
[Dependency] private readonly AppearanceSystem _appearance = default!;
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<ShopVendorComponent, AppearanceChangeEvent>(OnAppearanceChange);
|
||||||
|
SubscribeLocalEvent<ShopVendorComponent, AnimationCompletedEvent>(OnAnimationCompleted);
|
||||||
|
}
|
||||||
|
|
||||||
|
// copied from vending machines because its not reusable in other systems :)
|
||||||
|
private void OnAnimationCompleted(Entity<ShopVendorComponent> ent, ref AnimationCompletedEvent args)
|
||||||
|
{
|
||||||
|
UpdateAppearance((ent, ent.Comp));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnAppearanceChange(Entity<ShopVendorComponent> ent, ref AppearanceChangeEvent args)
|
||||||
|
{
|
||||||
|
UpdateAppearance((ent, ent.Comp, args.Sprite));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateAppearance(Entity<ShopVendorComponent, SpriteComponent?> ent)
|
||||||
|
{
|
||||||
|
if (!Resolve(ent, ref ent.Comp2))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!_appearance.TryGetData<VendingMachineVisualState>(ent, VendingMachineVisuals.VisualState, out var state))
|
||||||
|
state = VendingMachineVisualState.Normal;
|
||||||
|
|
||||||
|
var sprite = ent.Comp2;
|
||||||
|
SetLayerState(VendingMachineVisualLayers.Base, ent.Comp1.OffState, sprite);
|
||||||
|
SetLayerState(VendingMachineVisualLayers.Screen, ent.Comp1.ScreenState, sprite);
|
||||||
|
switch (state)
|
||||||
|
{
|
||||||
|
case VendingMachineVisualState.Normal:
|
||||||
|
SetLayerState(VendingMachineVisualLayers.BaseUnshaded, ent.Comp1.NormalState, sprite);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case VendingMachineVisualState.Deny:
|
||||||
|
if (ent.Comp1.LoopDenyAnimation)
|
||||||
|
SetLayerState(VendingMachineVisualLayers.BaseUnshaded, ent.Comp1.DenyState, sprite);
|
||||||
|
else
|
||||||
|
PlayAnimation(ent, VendingMachineVisualLayers.BaseUnshaded, ent.Comp1.DenyState, ent.Comp1.DenyDelay, sprite);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case VendingMachineVisualState.Eject:
|
||||||
|
PlayAnimation(ent, VendingMachineVisualLayers.BaseUnshaded, ent.Comp1.EjectState, ent.Comp1.EjectDelay, sprite);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case VendingMachineVisualState.Broken:
|
||||||
|
HideLayers(sprite);
|
||||||
|
SetLayerState(VendingMachineVisualLayers.Base, ent.Comp1.BrokenState, sprite);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case VendingMachineVisualState.Off:
|
||||||
|
HideLayers(sprite);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void SetLayerState(VendingMachineVisualLayers layer, string? state, SpriteComponent sprite)
|
||||||
|
{
|
||||||
|
if (state == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
sprite.LayerSetVisible(layer, true);
|
||||||
|
sprite.LayerSetAutoAnimated(layer, true);
|
||||||
|
sprite.LayerSetState(layer, state);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PlayAnimation(EntityUid uid, VendingMachineVisualLayers layer, string? state, TimeSpan time, SpriteComponent sprite)
|
||||||
|
{
|
||||||
|
if (state == null || _animationPlayer.HasRunningAnimation(uid, state))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var animation = GetAnimation(layer, state, time);
|
||||||
|
sprite.LayerSetVisible(layer, true);
|
||||||
|
_animationPlayer.Play(uid, animation, state);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Animation GetAnimation(VendingMachineVisualLayers layer, string state, TimeSpan time)
|
||||||
|
{
|
||||||
|
return new Animation
|
||||||
|
{
|
||||||
|
Length = time,
|
||||||
|
AnimationTracks =
|
||||||
|
{
|
||||||
|
new AnimationTrackSpriteFlick
|
||||||
|
{
|
||||||
|
LayerKey = layer,
|
||||||
|
KeyFrames =
|
||||||
|
{
|
||||||
|
new AnimationTrackSpriteFlick.KeyFrame(state, 0f)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void HideLayers(SpriteComponent sprite)
|
||||||
|
{
|
||||||
|
HideLayer(VendingMachineVisualLayers.BaseUnshaded, sprite);
|
||||||
|
HideLayer(VendingMachineVisualLayers.Screen, sprite);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void HideLayer(VendingMachineVisualLayers layer, SpriteComponent sprite)
|
||||||
|
{
|
||||||
|
if (!sprite.LayerMapTryGet(layer, out var actualLayer))
|
||||||
|
return;
|
||||||
|
|
||||||
|
sprite.LayerSetVisible(actualLayer, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
using Content.Shared.DeltaV.VendingMachines;
|
||||||
|
using Robust.Client.UserInterface;
|
||||||
|
|
||||||
|
namespace Content.Client.DeltaV.VendingMachines.UI;
|
||||||
|
|
||||||
|
public sealed class ShopVendorBoundUserInterface : BoundUserInterface
|
||||||
|
{
|
||||||
|
[ViewVariables]
|
||||||
|
private ShopVendorWindow? _window;
|
||||||
|
|
||||||
|
public ShopVendorBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Open()
|
||||||
|
{
|
||||||
|
base.Open();
|
||||||
|
|
||||||
|
_window = this.CreateWindow<ShopVendorWindow>();
|
||||||
|
_window.SetEntity(Owner);
|
||||||
|
_window.OpenCenteredLeft();
|
||||||
|
_window.Title = EntMan.GetComponent<MetaDataComponent>(Owner).EntityName;
|
||||||
|
_window.OnItemSelected += index => SendMessage(new ShopVendorPurchaseMessage(index));
|
||||||
|
}
|
||||||
|
}
|
||||||
13
Content.Client/DeltaV/VendingMachines/UI/ShopVendorItem.xaml
Normal file
13
Content.Client/DeltaV/VendingMachines/UI/ShopVendorItem.xaml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<BoxContainer xmlns="https://spacestation14.io"
|
||||||
|
Orientation="Horizontal"
|
||||||
|
HorizontalExpand="True"
|
||||||
|
SeparationOverride="4">
|
||||||
|
<EntityPrototypeView
|
||||||
|
Name="ItemPrototype"
|
||||||
|
Margin="4 0 0 0"
|
||||||
|
HorizontalAlignment="Center"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
MinSize="32 32"/>
|
||||||
|
<Label Name="NameLabel" SizeFlagsStretchRatio="3" HorizontalExpand="True" ClipText="True"/>
|
||||||
|
<Label Name="CostLabel" SizeFlagsStretchRatio="3" HorizontalAlignment="Right" Margin="8 0"/>
|
||||||
|
</BoxContainer>
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
using Robust.Client.AutoGenerated;
|
||||||
|
using Robust.Client.UserInterface.Controls;
|
||||||
|
using Robust.Client.UserInterface.XAML;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
|
||||||
|
namespace Content.Client.DeltaV.VendingMachines.UI;
|
||||||
|
|
||||||
|
[GenerateTypedNameReferences]
|
||||||
|
public sealed partial class ShopVendorItem : BoxContainer
|
||||||
|
{
|
||||||
|
public ShopVendorItem(EntProtoId entProto, string text, uint cost)
|
||||||
|
{
|
||||||
|
RobustXamlLoader.Load(this);
|
||||||
|
|
||||||
|
ItemPrototype.SetPrototype(entProto);
|
||||||
|
|
||||||
|
NameLabel.Text = text;
|
||||||
|
|
||||||
|
CostLabel.Text = cost.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<controls:FancyWindow
|
||||||
|
xmlns="https://spacestation14.io"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
|
||||||
|
MinHeight="210">
|
||||||
|
<BoxContainer Name="MainContainer" Orientation="Vertical">
|
||||||
|
<BoxContainer Orientation="Horizontal">
|
||||||
|
<LineEdit Name="SearchBar" PlaceHolder="{Loc 'vending-machine-component-search-filter'}" HorizontalExpand="True" Margin="4 4"/>
|
||||||
|
<Label Name="BalanceLabel" Margin="4 4"/>
|
||||||
|
</BoxContainer>
|
||||||
|
<controls:SearchListContainer Name="VendingContents" VerticalExpand="True" Margin="4 4"/>
|
||||||
|
<!-- Footer -->
|
||||||
|
<BoxContainer Orientation="Vertical">
|
||||||
|
<PanelContainer StyleClasses="LowDivider" />
|
||||||
|
<BoxContainer Orientation="Horizontal" Margin="10 2 5 0" VerticalAlignment="Bottom">
|
||||||
|
<Label Text="{Loc 'shop-vendor-flavor-left'}" StyleClasses="WindowFooterText" />
|
||||||
|
<Label Text="{Loc 'shop-vendor-flavor-right'}" StyleClasses="WindowFooterText"
|
||||||
|
HorizontalAlignment="Right" HorizontalExpand="True" Margin="0 0 5 0" />
|
||||||
|
<TextureRect StyleClasses="NTLogoDark" Stretch="KeepAspectCentered"
|
||||||
|
VerticalAlignment="Center" HorizontalAlignment="Right" SetSize="19 19"/>
|
||||||
|
</BoxContainer>
|
||||||
|
</BoxContainer>
|
||||||
|
</BoxContainer>
|
||||||
|
</controls:FancyWindow>
|
||||||
@@ -0,0 +1,147 @@
|
|||||||
|
using Content.Client.UserInterface.Controls;
|
||||||
|
using Content.Shared.DeltaV.VendingMachines;
|
||||||
|
using Content.Shared.Stacks;
|
||||||
|
using Robust.Client.AutoGenerated;
|
||||||
|
using Robust.Client.Graphics;
|
||||||
|
using Robust.Client.Player;
|
||||||
|
using Robust.Client.UserInterface;
|
||||||
|
using Robust.Client.UserInterface.Controls;
|
||||||
|
using Robust.Client.UserInterface.XAML;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
using Robust.Shared.Timing;
|
||||||
|
using System.Numerics;
|
||||||
|
|
||||||
|
namespace Content.Client.DeltaV.VendingMachines.UI;
|
||||||
|
|
||||||
|
[GenerateTypedNameReferences]
|
||||||
|
public sealed partial class ShopVendorWindow : FancyWindow
|
||||||
|
{
|
||||||
|
[Dependency] private readonly IComponentFactory _factory = default!;
|
||||||
|
[Dependency] private readonly IEntityManager _entMan = default!;
|
||||||
|
[Dependency] private readonly IPlayerManager _player = default!;
|
||||||
|
[Dependency] private readonly IPrototypeManager _proto = default!;
|
||||||
|
private readonly ShopVendorSystem _vendor;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Event fired with the listing index to purchase.
|
||||||
|
/// </summary>
|
||||||
|
public event Action<int>? OnItemSelected;
|
||||||
|
|
||||||
|
private EntityUid _owner;
|
||||||
|
private readonly StyleBoxFlat _style = new() { BackgroundColor = new Color(70, 73, 102) };
|
||||||
|
private readonly StyleBoxFlat _styleBroke = new() { BackgroundColor = Color.FromHex("#303133") };
|
||||||
|
private readonly List<ListContainerButton> _buttons = new();
|
||||||
|
private uint _balance = 1;
|
||||||
|
|
||||||
|
public ShopVendorWindow()
|
||||||
|
{
|
||||||
|
RobustXamlLoader.Load(this);
|
||||||
|
IoCManager.InjectDependencies(this);
|
||||||
|
|
||||||
|
_vendor = _entMan.System<ShopVendorSystem>();
|
||||||
|
|
||||||
|
VendingContents.SearchBar = SearchBar;
|
||||||
|
VendingContents.DataFilterCondition += DataFilterCondition;
|
||||||
|
VendingContents.GenerateItem += GenerateButton;
|
||||||
|
VendingContents.ItemKeyBindDown += (args, data) => OnItemSelected?.Invoke(((ShopVendorListingData) data).Index);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetEntity(EntityUid owner)
|
||||||
|
{
|
||||||
|
_owner = owner;
|
||||||
|
|
||||||
|
if (!_entMan.TryGetComponent<ShopVendorComponent>(owner, out var comp))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var pack = _proto.Index(comp.Pack);
|
||||||
|
Populate(pack.Listings);
|
||||||
|
|
||||||
|
UpdateBalance();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateBalance(uint balance)
|
||||||
|
{
|
||||||
|
if (_balance == balance)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_balance = balance;
|
||||||
|
|
||||||
|
BalanceLabel.Text = Loc.GetString("shop-vendor-balance", ("points", balance));
|
||||||
|
|
||||||
|
// disable items that are too expensive to buy
|
||||||
|
foreach (var button in _buttons)
|
||||||
|
{
|
||||||
|
if (button.Data is ShopVendorListingData data)
|
||||||
|
button.Disabled = data.Cost > balance;
|
||||||
|
|
||||||
|
button.StyleBoxOverride = button.Disabled ? _styleBroke : _style;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateBalance()
|
||||||
|
{
|
||||||
|
if (_player.LocalEntity is {} user)
|
||||||
|
UpdateBalance(_vendor.GetBalance(_owner, user));
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool DataFilterCondition(string filter, ListData data)
|
||||||
|
{
|
||||||
|
if (data is not ShopVendorListingData { Text: var text })
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(filter))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return text.Contains(filter, StringComparison.CurrentCultureIgnoreCase);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void GenerateButton(ListData data, ListContainerButton button)
|
||||||
|
{
|
||||||
|
if (data is not ShopVendorListingData cast)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_buttons.Add(button);
|
||||||
|
button.AddChild(new ShopVendorItem(cast.ItemId, cast.Text, cast.Cost));
|
||||||
|
|
||||||
|
button.ToolTip = cast.Text;
|
||||||
|
button.Disabled = cast.Cost > _balance;
|
||||||
|
button.StyleBoxOverride = button.Disabled ? _styleBroke : _style;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Populate(List<ShopListing> listings)
|
||||||
|
{
|
||||||
|
var longestEntry = string.Empty;
|
||||||
|
var listData = new List<ShopVendorListingData>();
|
||||||
|
for (var i = 0; i < listings.Count; i++)
|
||||||
|
{
|
||||||
|
var listing = listings[i];
|
||||||
|
var proto = _proto.Index(listing.Id);
|
||||||
|
var text = proto.Name;
|
||||||
|
if (proto.TryGetComponent<StackComponent>(out var stack, _factory) && stack.Count > 1)
|
||||||
|
{
|
||||||
|
text += " ";
|
||||||
|
text += Loc.GetString("shop-vendor-stack-suffix", ("count", stack.Count));
|
||||||
|
}
|
||||||
|
listData.Add(new ShopVendorListingData(i, listing.Id, text, listing.Cost));
|
||||||
|
}
|
||||||
|
|
||||||
|
_buttons.Clear();
|
||||||
|
VendingContents.PopulateList(listData);
|
||||||
|
SetSizeAfterUpdate(longestEntry.Length, listings.Count);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetSizeAfterUpdate(int longestEntryLength, int contentCount)
|
||||||
|
{
|
||||||
|
SetSize = new Vector2(Math.Clamp((longestEntryLength + 2) * 12, 250, 400),
|
||||||
|
Math.Clamp(contentCount * 50, 150, 350));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void FrameUpdate(FrameEventArgs args)
|
||||||
|
{
|
||||||
|
base.FrameUpdate(args);
|
||||||
|
|
||||||
|
UpdateBalance();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public record ShopVendorListingData(int Index, EntProtoId ItemId, string Text, uint Cost) : ListData;
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using Content.Shared.DeltaV.Salvage; // DeltaV
|
||||||
using Content.Shared.Lathe;
|
using Content.Shared.Lathe;
|
||||||
using Content.Shared.Research.Components;
|
using Content.Shared.Research.Components;
|
||||||
using JetBrains.Annotations;
|
using JetBrains.Annotations;
|
||||||
@@ -34,6 +35,8 @@ namespace Content.Client.Lathe.UI
|
|||||||
_menu.QueueMoveUpAction += index => SendMessage(new LatheMoveRequestMessage(index, -1));
|
_menu.QueueMoveUpAction += index => SendMessage(new LatheMoveRequestMessage(index, -1));
|
||||||
_menu.QueueMoveDownAction += index => SendMessage(new LatheMoveRequestMessage(index, 1));
|
_menu.QueueMoveDownAction += index => SendMessage(new LatheMoveRequestMessage(index, 1));
|
||||||
_menu.DeleteFabricatingAction += () => SendMessage(new LatheAbortFabricationMessage());
|
_menu.DeleteFabricatingAction += () => SendMessage(new LatheAbortFabricationMessage());
|
||||||
|
|
||||||
|
_menu.OnClaimMiningPoints += () => SendMessage(new LatheClaimMiningPointsMessage()); // DeltaV
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void UpdateState(BoundUserInterfaceState state)
|
protected override void UpdateState(BoundUserInterfaceState state)
|
||||||
|
|||||||
@@ -151,6 +151,12 @@
|
|||||||
<ui:MaterialStorageControl Name="MaterialsList" SizeFlagsStretchRatio="8"/>
|
<ui:MaterialStorageControl Name="MaterialsList" SizeFlagsStretchRatio="8"/>
|
||||||
</BoxContainer>
|
</BoxContainer>
|
||||||
</PanelContainer>
|
</PanelContainer>
|
||||||
|
<!-- Begin DeltaV Additions: Mining points -->
|
||||||
|
<BoxContainer Orientation="Horizontal" Name="MiningPointsContainer" Visible="False">
|
||||||
|
<Label Name="MiningPointsLabel" HorizontalExpand="True"/>
|
||||||
|
<Button Name="MiningPointsClaimButton" Text="{Loc 'lathe-menu-mining-points-claim-button'}"/>
|
||||||
|
</BoxContainer>
|
||||||
|
<!-- End DeltaV Additions: Mining points -->
|
||||||
</BoxContainer>
|
</BoxContainer>
|
||||||
</BoxContainer>
|
</BoxContainer>
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,21 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using Content.Client.Materials;
|
using Content.Client.Materials;
|
||||||
|
using Content.Shared.DeltaV.Salvage.Components; // DeltaV
|
||||||
|
using Content.Shared.DeltaV.Salvage.Systems; // DeltaV
|
||||||
using Content.Shared.Lathe;
|
using Content.Shared.Lathe;
|
||||||
using Content.Shared.Lathe.Prototypes;
|
using Content.Shared.Lathe.Prototypes;
|
||||||
using Content.Shared.Research.Prototypes;
|
using Content.Shared.Research.Prototypes;
|
||||||
using Robust.Client.AutoGenerated;
|
using Robust.Client.AutoGenerated;
|
||||||
using Robust.Client.GameObjects;
|
using Robust.Client.GameObjects;
|
||||||
|
using Robust.Client.Player; // DeltaV
|
||||||
using Robust.Client.UserInterface;
|
using Robust.Client.UserInterface;
|
||||||
using Robust.Client.UserInterface.Controls;
|
using Robust.Client.UserInterface.Controls;
|
||||||
using Robust.Client.UserInterface.CustomControls;
|
using Robust.Client.UserInterface.CustomControls;
|
||||||
using Robust.Client.UserInterface.XAML;
|
using Robust.Client.UserInterface.XAML;
|
||||||
using Robust.Shared.Prototypes;
|
using Robust.Shared.Prototypes;
|
||||||
using Robust.Shared.Utility;
|
using Robust.Shared.Utility;
|
||||||
|
using Robust.Shared.Timing; // DeltaV
|
||||||
|
|
||||||
namespace Content.Client.Lathe.UI;
|
namespace Content.Client.Lathe.UI;
|
||||||
|
|
||||||
@@ -19,11 +23,13 @@ namespace Content.Client.Lathe.UI;
|
|||||||
public sealed partial class LatheMenu : DefaultWindow
|
public sealed partial class LatheMenu : DefaultWindow
|
||||||
{
|
{
|
||||||
[Dependency] private readonly IEntityManager _entityManager = default!;
|
[Dependency] private readonly IEntityManager _entityManager = default!;
|
||||||
|
[Dependency] private readonly IPlayerManager _player = default!; // DeltaV
|
||||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||||
|
|
||||||
private readonly SpriteSystem _spriteSystem;
|
private readonly SpriteSystem _spriteSystem;
|
||||||
private readonly LatheSystem _lathe;
|
private readonly LatheSystem _lathe;
|
||||||
private readonly MaterialStorageSystem _materialStorage;
|
private readonly MaterialStorageSystem _materialStorage;
|
||||||
|
private readonly MiningPointsSystem _miningPoints; // DeltaV
|
||||||
|
|
||||||
public event Action<BaseButton.ButtonEventArgs>? OnServerListButtonPressed;
|
public event Action<BaseButton.ButtonEventArgs>? OnServerListButtonPressed;
|
||||||
public event Action<string, int>? RecipeQueueAction;
|
public event Action<string, int>? RecipeQueueAction;
|
||||||
@@ -31,15 +37,16 @@ public sealed partial class LatheMenu : DefaultWindow
|
|||||||
public event Action<int>? QueueMoveUpAction;
|
public event Action<int>? QueueMoveUpAction;
|
||||||
public event Action<int>? QueueMoveDownAction;
|
public event Action<int>? QueueMoveDownAction;
|
||||||
public event Action? DeleteFabricatingAction;
|
public event Action? DeleteFabricatingAction;
|
||||||
|
public event Action? OnClaimMiningPoints; // DeltaV
|
||||||
public List<ProtoId<LatheRecipePrototype>> Recipes = new();
|
public List<ProtoId<LatheRecipePrototype>> Recipes = new();
|
||||||
|
|
||||||
public List<ProtoId<LatheCategoryPrototype>>? Categories;
|
public List<ProtoId<LatheCategoryPrototype>>? Categories;
|
||||||
|
|
||||||
public ProtoId<LatheCategoryPrototype>? CurrentCategory;
|
public ProtoId<LatheCategoryPrototype>? CurrentCategory;
|
||||||
|
|
||||||
public EntityUid Entity;
|
public EntityUid Entity;
|
||||||
|
|
||||||
|
private uint? _lastMiningPoints; // DeltaV: used to avoid Loc.GetString every frame
|
||||||
|
|
||||||
public LatheMenu()
|
public LatheMenu()
|
||||||
{
|
{
|
||||||
RobustXamlLoader.Load(this);
|
RobustXamlLoader.Load(this);
|
||||||
@@ -48,6 +55,7 @@ public sealed partial class LatheMenu : DefaultWindow
|
|||||||
_spriteSystem = _entityManager.System<SpriteSystem>();
|
_spriteSystem = _entityManager.System<SpriteSystem>();
|
||||||
_lathe = _entityManager.System<LatheSystem>();
|
_lathe = _entityManager.System<LatheSystem>();
|
||||||
_materialStorage = _entityManager.System<MaterialStorageSystem>();
|
_materialStorage = _entityManager.System<MaterialStorageSystem>();
|
||||||
|
_miningPoints = _entityManager.System<MiningPointsSystem>(); // DeltaV
|
||||||
|
|
||||||
SearchBar.OnTextChanged += _ =>
|
SearchBar.OnTextChanged += _ =>
|
||||||
{
|
{
|
||||||
@@ -86,9 +94,52 @@ public sealed partial class LatheMenu : DefaultWindow
|
|||||||
AmountLineEdit.SetText(latheComponent.DefaultProductionAmount.ToString());
|
AmountLineEdit.SetText(latheComponent.DefaultProductionAmount.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Begin DeltaV Additions: Mining points UI
|
||||||
|
MiningPointsContainer.Visible = _entityManager.TryGetComponent<MiningPointsComponent>(Entity, out var points);
|
||||||
|
MiningPointsClaimButton.OnPressed += _ => OnClaimMiningPoints?.Invoke();
|
||||||
|
if (points != null)
|
||||||
|
UpdateMiningPoints(points.Points);
|
||||||
|
// End DeltaV Additions
|
||||||
|
|
||||||
MaterialsList.SetOwner(Entity);
|
MaterialsList.SetOwner(Entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// DeltaV: Updates the UI elements for mining points.
|
||||||
|
/// </summary>
|
||||||
|
private void UpdateMiningPoints(uint points)
|
||||||
|
{
|
||||||
|
MiningPointsClaimButton.Disabled = points == 0 ||
|
||||||
|
_player.LocalSession?.AttachedEntity is not {} player ||
|
||||||
|
_miningPoints.TryFindIdCard(player) == null;
|
||||||
|
if (points == _lastMiningPoints)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_lastMiningPoints = points;
|
||||||
|
MiningPointsLabel.Text = Loc.GetString("lathe-menu-mining-points", ("points", points));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Opened()
|
||||||
|
{
|
||||||
|
base.Opened();
|
||||||
|
|
||||||
|
if (_entityManager.TryGetComponent<LatheComponent>(Entity, out var latheComp))
|
||||||
|
{
|
||||||
|
AmountLineEdit.SetText(latheComp.DefaultProductionAmount.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// DeltaV: Update mining points UI whenever it changes.
|
||||||
|
/// </summary>
|
||||||
|
protected override void FrameUpdate(FrameEventArgs args)
|
||||||
|
{
|
||||||
|
base.FrameUpdate(args);
|
||||||
|
|
||||||
|
if (_entityManager.TryGetComponent<MiningPointsComponent>(Entity, out var points))
|
||||||
|
UpdateMiningPoints(points.Points);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Populates the list of all the recipes
|
/// Populates the list of all the recipes
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
using Content.Shared._DV.Salvage.Systems;
|
||||||
|
|
||||||
|
namespace Content.Client._DV.Salvage.Systems;
|
||||||
|
|
||||||
|
public sealed class ShelterCapsuleSystem : SharedShelterCapsuleSystem;
|
||||||
74
Content.Server/DeltaV/Planet/PlanetSystem.cs
Normal file
74
Content.Server/DeltaV/Planet/PlanetSystem.cs
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
using Content.Server.Atmos.EntitySystems;
|
||||||
|
using Content.Server.Parallax;
|
||||||
|
using Content.Shared.DeltaV.Planet;
|
||||||
|
using Content.Shared.Parallax.Biomes;
|
||||||
|
using Robust.Shared.EntitySerialization.Systems;
|
||||||
|
using Robust.Shared.Map;
|
||||||
|
using Robust.Shared.Map.Components;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
using Robust.Shared.Utility;
|
||||||
|
|
||||||
|
namespace Content.Server.DeltaV.Planet;
|
||||||
|
|
||||||
|
public sealed class PlanetSystem : EntitySystem
|
||||||
|
{
|
||||||
|
[Dependency] private readonly AtmosphereSystem _atmos = default!;
|
||||||
|
[Dependency] private readonly BiomeSystem _biome = default!;
|
||||||
|
[Dependency] private readonly IPrototypeManager _proto = default!;
|
||||||
|
[Dependency] private readonly MapLoaderSystem _mapLoader = default!;
|
||||||
|
[Dependency] private readonly MetaDataSystem _meta = default!;
|
||||||
|
[Dependency] private readonly SharedMapSystem _map = default!;
|
||||||
|
|
||||||
|
private readonly List<(Vector2i, Tile)> _setTiles = new();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Spawn a planet map from a planet prototype.
|
||||||
|
/// </summary>
|
||||||
|
public EntityUid SpawnPlanet(ProtoId<PlanetPrototype> id, bool runMapInit = true)
|
||||||
|
{
|
||||||
|
var planet = _proto.Index(id);
|
||||||
|
|
||||||
|
var map = _map.CreateMap(out _, runMapInit: runMapInit);
|
||||||
|
_biome.EnsurePlanet(map, _proto.Index(planet.Biome), mapLight: planet.MapLight);
|
||||||
|
|
||||||
|
// add each marker layer
|
||||||
|
var biome = Comp<BiomeComponent>(map);
|
||||||
|
foreach (var layer in planet.BiomeMarkerLayers)
|
||||||
|
{
|
||||||
|
_biome.AddMarkerLayer(map, biome, layer);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (planet.AddedComponents is {} added)
|
||||||
|
EntityManager.AddComponents(map, added);
|
||||||
|
|
||||||
|
_atmos.SetMapAtmosphere(map, false, planet.Atmosphere);
|
||||||
|
|
||||||
|
_meta.SetEntityName(map, Loc.GetString(planet.MapName));
|
||||||
|
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Spawns an initialized planet map from a planet prototype and loads a grid onto it.
|
||||||
|
/// Returns the map entity if loading succeeded.
|
||||||
|
/// </summary>
|
||||||
|
public EntityUid? LoadPlanet(ProtoId<PlanetPrototype> id, ResPath path)
|
||||||
|
{
|
||||||
|
var map = SpawnPlanet(id, runMapInit: false);
|
||||||
|
var mapId = Comp<MapComponent>(map).MapId;
|
||||||
|
if (!_mapLoader.TryLoadGrid(mapId, path, out var grid))
|
||||||
|
{
|
||||||
|
Log.Error($"Failed to load planet grid {path} for planet {id}!");
|
||||||
|
Del(map);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// don't want rocks spawning inside the base
|
||||||
|
_setTiles.Clear();
|
||||||
|
var aabb = Comp<MapGridComponent>(grid.Value).LocalAABB;
|
||||||
|
_biome.ReserveTiles(map, aabb.Enlarged(0.2f), _setTiles);
|
||||||
|
|
||||||
|
_map.InitializeMap(map);
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
}
|
||||||
177
Content.Server/DeltaV/Shuttles/Systems/DockingConsoleSystem.cs
Normal file
177
Content.Server/DeltaV/Shuttles/Systems/DockingConsoleSystem.cs
Normal file
@@ -0,0 +1,177 @@
|
|||||||
|
using Content.Server.Shuttles.Components;
|
||||||
|
using Content.Server.Shuttles.Events;
|
||||||
|
using Content.Server.Shuttles.Systems;
|
||||||
|
using Content.Server.Station.Systems;
|
||||||
|
using Content.Shared.DeltaV.Shuttles;
|
||||||
|
using Content.Shared.DeltaV.Shuttles.Components;
|
||||||
|
using Content.Shared.DeltaV.Shuttles.Systems;
|
||||||
|
using Content.Shared.Shuttles.Components;
|
||||||
|
using Content.Shared.Shuttles.Systems;
|
||||||
|
using Content.Shared.Station.Components;
|
||||||
|
using Content.Shared.Timing;
|
||||||
|
using Content.Shared.Whitelist;
|
||||||
|
using Robust.Shared.Map;
|
||||||
|
using Robust.Shared.Map.Components;
|
||||||
|
|
||||||
|
namespace Content.Server.DeltaV.Shuttles.Systems;
|
||||||
|
|
||||||
|
public sealed class DockingConsoleSystem : SharedDockingConsoleSystem
|
||||||
|
{
|
||||||
|
[Dependency] private readonly EntityWhitelistSystem _whitelist = default!;
|
||||||
|
[Dependency] private readonly SharedMapSystem _map = default!;
|
||||||
|
[Dependency] private readonly SharedUserInterfaceSystem _ui = default!;
|
||||||
|
[Dependency] private readonly ShuttleSystem _shuttle = default!;
|
||||||
|
[Dependency] private readonly StationSystem _station = default!;
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<DockEvent>(OnDock);
|
||||||
|
SubscribeLocalEvent<UndockEvent>(OnUndock);
|
||||||
|
|
||||||
|
Subs.BuiEvents<DockingConsoleComponent>(DockingConsoleUiKey.Key, subs =>
|
||||||
|
{
|
||||||
|
subs.Event<BoundUIOpenedEvent>(OnOpened);
|
||||||
|
subs.Event<DockingConsoleFTLMessage>(OnFTL);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDock(DockEvent args)
|
||||||
|
{
|
||||||
|
UpdateConsoles(args.GridAUid, args.GridBUid);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnUndock(UndockEvent args)
|
||||||
|
{
|
||||||
|
UpdateConsoles(args.GridAUid, args.GridBUid);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnOpened(Entity<DockingConsoleComponent> ent, ref BoundUIOpenedEvent args)
|
||||||
|
{
|
||||||
|
if (TerminatingOrDeleted(ent.Comp.Shuttle))
|
||||||
|
UpdateShuttle(ent);
|
||||||
|
|
||||||
|
UpdateUI(ent);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateConsoles(EntityUid gridA, EntityUid gridB)
|
||||||
|
{
|
||||||
|
UpdateConsolesUsing(gridA);
|
||||||
|
UpdateConsolesUsing(gridB);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Update the UI of every console that is using a certain shuttle.
|
||||||
|
/// </summary>
|
||||||
|
public void UpdateConsolesUsing(EntityUid shuttle)
|
||||||
|
{
|
||||||
|
if (!HasComp<DockingShuttleComponent>(shuttle))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var query = EntityQueryEnumerator<DockingConsoleComponent>();
|
||||||
|
while (query.MoveNext(out var uid, out var comp))
|
||||||
|
{
|
||||||
|
if (comp.Shuttle == shuttle)
|
||||||
|
UpdateUI((uid, comp));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateUI(Entity<DockingConsoleComponent> ent)
|
||||||
|
{
|
||||||
|
if (ent.Comp.Shuttle is not {} shuttle)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var ftlState = FTLState.Available;
|
||||||
|
StartEndTime ftlTime = default;
|
||||||
|
List<DockingDestination> destinations = new();
|
||||||
|
|
||||||
|
if (TryComp<FTLComponent>(shuttle, out var ftl))
|
||||||
|
{
|
||||||
|
ftlState = ftl.State;
|
||||||
|
ftlTime = _shuttle.GetStateTime(ftl);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TryComp<DockingShuttleComponent>(shuttle, out var docking))
|
||||||
|
{
|
||||||
|
destinations = docking.Destinations;
|
||||||
|
}
|
||||||
|
|
||||||
|
var state = new DockingConsoleState(ftlState, ftlTime, destinations);
|
||||||
|
_ui.SetUiState(ent.Owner, DockingConsoleUiKey.Key, state);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnFTL(Entity<DockingConsoleComponent> ent, ref DockingConsoleFTLMessage args)
|
||||||
|
{
|
||||||
|
if (ent.Comp.Shuttle is not {} shuttle || !TryComp<DockingShuttleComponent>(shuttle, out var docking))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (args.Index < 0 || args.Index > docking.Destinations.Count)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var dest = docking.Destinations[args.Index];
|
||||||
|
var map = dest.Map;
|
||||||
|
// can't FTL if its already there or somehow failed whitelist
|
||||||
|
if (map == Transform(shuttle).MapID || !_shuttle.CanFTLTo(shuttle, map, ent))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (FindLargestGrid(map) is not {} grid)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Log.Debug($"{ToPrettyString(args.Actor):user} is FTL-docking {ToPrettyString(shuttle):shuttle} to {ToPrettyString(grid):grid}");
|
||||||
|
|
||||||
|
_shuttle.FTLToDock(shuttle, Comp<ShuttleComponent>(shuttle), grid, priorityTag: ent.Comp.DockTag);
|
||||||
|
UpdateUI(ent);
|
||||||
|
}
|
||||||
|
|
||||||
|
private EntityUid? FindLargestGrid(MapId map)
|
||||||
|
{
|
||||||
|
EntityUid? largestGrid = null;
|
||||||
|
var largestSize = 0f;
|
||||||
|
|
||||||
|
if (_station.GetStationInMap(map) is {} station)
|
||||||
|
{
|
||||||
|
// prevent picking vgroid and stuff
|
||||||
|
return _station.GetLargestGrid(station); // May need to get the StationDataComponent if this doesn't work
|
||||||
|
}
|
||||||
|
|
||||||
|
var query = EntityQueryEnumerator<MapGridComponent, TransformComponent>();
|
||||||
|
while (query.MoveNext(out var gridUid, out var grid, out var xform))
|
||||||
|
{
|
||||||
|
if (xform.MapID != map)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
var size = grid.LocalAABB.Size.LengthSquared();
|
||||||
|
if (size < largestSize)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
largestSize = size;
|
||||||
|
largestGrid = gridUid;
|
||||||
|
}
|
||||||
|
|
||||||
|
return largestGrid;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateShuttle(Entity<DockingConsoleComponent> ent)
|
||||||
|
{
|
||||||
|
var hadShuttle = ent.Comp.HasShuttle;
|
||||||
|
// no error if it cant find one since it would fail every test as shuttle.grid_fill is false in dev
|
||||||
|
ent.Comp.Shuttle = FindShuttle(ent.Comp.ShuttleWhitelist);
|
||||||
|
ent.Comp.HasShuttle = ent.Comp.Shuttle != null;
|
||||||
|
|
||||||
|
if (ent.Comp.HasShuttle != hadShuttle)
|
||||||
|
Dirty(ent);
|
||||||
|
}
|
||||||
|
|
||||||
|
private EntityUid? FindShuttle(EntityWhitelist whitelist)
|
||||||
|
{
|
||||||
|
var query = EntityQueryEnumerator<DockingShuttleComponent>();
|
||||||
|
while (query.MoveNext(out var uid, out _))
|
||||||
|
{
|
||||||
|
if (_whitelist.IsValid(whitelist, uid))
|
||||||
|
return uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
using Content.Server.Shuttles.Events;
|
||||||
|
using Content.Server.Station.Systems;
|
||||||
|
using Content.Shared.DeltaV.Shuttles.Components;
|
||||||
|
using Content.Shared.DeltaV.Shuttles.Systems;
|
||||||
|
using Content.Shared.Shuttles.Components;
|
||||||
|
using Content.Shared.Station.Components;
|
||||||
|
using Content.Shared.Whitelist;
|
||||||
|
using Robust.Shared.Map.Components;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace Content.Server.DeltaV.Shuttles.Systems;
|
||||||
|
|
||||||
|
public sealed class DockingShuttleSystem : SharedDockingShuttleSystem
|
||||||
|
{
|
||||||
|
[Dependency] private readonly DockingConsoleSystem _console = default!;
|
||||||
|
[Dependency] private readonly EntityWhitelistSystem _whitelist = default!;
|
||||||
|
[Dependency] private readonly StationSystem _station = default!;
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<DockingShuttleComponent, MapInitEvent>(OnMapInit);
|
||||||
|
SubscribeLocalEvent<DockingShuttleComponent, FTLStartedEvent>(OnFTLStarted);
|
||||||
|
SubscribeLocalEvent<DockingShuttleComponent, FTLCompletedEvent>(OnFTLCompleted);
|
||||||
|
|
||||||
|
SubscribeLocalEvent<StationGridAddedEvent>(OnStationGridAdded);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnMapInit(Entity<DockingShuttleComponent> ent, ref MapInitEvent args)
|
||||||
|
{
|
||||||
|
// add any whitelisted destinations that it can FTL to
|
||||||
|
// since it needs a whitelist, this excludes the station
|
||||||
|
var query = EntityQueryEnumerator<FTLDestinationComponent, MapComponent>();
|
||||||
|
while (query.MoveNext(out var mapUid, out var dest, out var map))
|
||||||
|
{
|
||||||
|
if (!dest.Enabled || _whitelist.IsWhitelistFailOrNull(dest.Whitelist, ent))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
ent.Comp.Destinations.Add(new DockingDestination()
|
||||||
|
{
|
||||||
|
Name = Name(mapUid),
|
||||||
|
Map = map.MapId
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnFTLStarted(Entity<DockingShuttleComponent> ent, ref FTLStartedEvent args)
|
||||||
|
{
|
||||||
|
_console.UpdateConsolesUsing(ent);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnFTLCompleted(Entity<DockingShuttleComponent> ent, ref FTLCompletedEvent args)
|
||||||
|
{
|
||||||
|
_console.UpdateConsolesUsing(ent);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnStationGridAdded(StationGridAddedEvent args)
|
||||||
|
{
|
||||||
|
var uid = args.GridId;
|
||||||
|
if (!TryComp<DockingShuttleComponent>(uid, out var comp))
|
||||||
|
return;
|
||||||
|
|
||||||
|
// only add the destination once
|
||||||
|
if (comp.Station != null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (_station.GetOwningStation(uid) is not {} station || !TryComp<StationDataComponent>(station, out var data))
|
||||||
|
return;
|
||||||
|
|
||||||
|
// add the source station as a destination
|
||||||
|
comp.Station = station;
|
||||||
|
comp.Destinations.Add(new DockingDestination()
|
||||||
|
{
|
||||||
|
Name = Name(station),
|
||||||
|
Map = Transform(data.Grids.First()).MapID
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
using Content.Server.DeltaV.Station.Systems;
|
||||||
|
using Content.Shared.DeltaV.Planet;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
using Robust.Shared.Utility;
|
||||||
|
|
||||||
|
namespace Content.Server.DeltaV.Station.Components;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Loads a planet map on mapinit and spawns a grid on it (e.g. a mining base).
|
||||||
|
/// The map can then be FTLd to by any shuttle matching its whitelist.
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, Access(typeof(StationPlanetSpawnerSystem))]
|
||||||
|
public sealed partial class StationPlanetSpawnerComponent : Component
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The planet to create.
|
||||||
|
/// </summary>
|
||||||
|
[DataField(required: true)]
|
||||||
|
public ProtoId<PlanetPrototype> Planet;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path to the grid to load onto the map.
|
||||||
|
/// </summary>
|
||||||
|
[DataField(required: true)]
|
||||||
|
public ResPath? GridPath;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The map that was loaded.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public EntityUid? Map;
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
using Content.Server.DeltaV.Planet;
|
||||||
|
using Content.Server.DeltaV.Station.Components;
|
||||||
|
|
||||||
|
namespace Content.Server.DeltaV.Station.Systems;
|
||||||
|
|
||||||
|
public sealed class StationPlanetSpawnerSystem : EntitySystem
|
||||||
|
{
|
||||||
|
[Dependency] private readonly PlanetSystem _planet = default!;
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<StationPlanetSpawnerComponent, MapInitEvent>(OnMapInit);
|
||||||
|
SubscribeLocalEvent<StationPlanetSpawnerComponent, ComponentShutdown>(OnShutdown);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnMapInit(Entity<StationPlanetSpawnerComponent> ent, ref MapInitEvent args)
|
||||||
|
{
|
||||||
|
if (ent.Comp.GridPath is not {} path)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ent.Comp.Map = _planet.LoadPlanet(ent.Comp.Planet, path);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnShutdown(Entity<StationPlanetSpawnerComponent> ent, ref ComponentShutdown args)
|
||||||
|
{
|
||||||
|
QueueDel(ent.Comp.Map);
|
||||||
|
}
|
||||||
|
}
|
||||||
47
Content.Server/DeltaV/VendingMachines/ShopVendorSystem.cs
Normal file
47
Content.Server/DeltaV/VendingMachines/ShopVendorSystem.cs
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
using Content.Server.Advertise.EntitySystems;
|
||||||
|
using Content.Shared.Advertise.Components;
|
||||||
|
using Content.Shared.DeltaV.VendingMachines;
|
||||||
|
|
||||||
|
namespace Content.Server.DeltaV.VendingMachines;
|
||||||
|
|
||||||
|
public sealed class ShopVendorSystem : SharedShopVendorSystem
|
||||||
|
{
|
||||||
|
[Dependency] private readonly SpeakOnUIClosedSystem _speakOnUIClosed = default!;
|
||||||
|
|
||||||
|
public override void Update(float frameTime)
|
||||||
|
{
|
||||||
|
base.Update(frameTime);
|
||||||
|
|
||||||
|
var query = EntityQueryEnumerator<ShopVendorComponent, TransformComponent>();
|
||||||
|
var now = Timing.CurTime;
|
||||||
|
while (query.MoveNext(out var uid, out var comp, out var xform))
|
||||||
|
{
|
||||||
|
var ent = (uid, comp);
|
||||||
|
var dirty = false;
|
||||||
|
if (comp.Ejecting is {} ejecting && now > comp.NextEject)
|
||||||
|
{
|
||||||
|
Spawn(ejecting, xform.Coordinates);
|
||||||
|
comp.Ejecting = null;
|
||||||
|
dirty = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (comp.Denying && now > comp.NextDeny)
|
||||||
|
{
|
||||||
|
comp.Denying = false;
|
||||||
|
dirty = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dirty)
|
||||||
|
{
|
||||||
|
Dirty(uid, comp);
|
||||||
|
UpdateVisuals(ent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void AfterPurchase(Entity<ShopVendorComponent> ent)
|
||||||
|
{
|
||||||
|
if (TryComp<SpeakOnUIClosedComponent>(ent, out var speak))
|
||||||
|
_speakOnUIClosed.TrySetFlag((ent.Owner, speak));
|
||||||
|
}
|
||||||
|
}
|
||||||
83
Content.Server/DeltaV/Weather/WeatherEffectsSystem.cs
Normal file
83
Content.Server/DeltaV/Weather/WeatherEffectsSystem.cs
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
using Content.Shared.Damage;
|
||||||
|
using Content.Shared.Damage.Systems;
|
||||||
|
using Content.Shared.Mobs;
|
||||||
|
using Content.Shared.Mobs.Components;
|
||||||
|
using Content.Shared.Weather;
|
||||||
|
using Content.Shared.Whitelist;
|
||||||
|
using Robust.Shared.Map.Components;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
using Robust.Shared.Timing;
|
||||||
|
|
||||||
|
namespace Content.Shared.DeltaV.Weather;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Handles weather damage for exposed entities.
|
||||||
|
/// </summary>
|
||||||
|
public sealed partial class WeatherEffectsSystem : EntitySystem
|
||||||
|
{
|
||||||
|
[Dependency] private readonly DamageableSystem _damageable = default!;
|
||||||
|
[Dependency] private readonly EntityWhitelistSystem _whitelist = default!;
|
||||||
|
[Dependency] private readonly IGameTiming _timing = default!;
|
||||||
|
[Dependency] private readonly IPrototypeManager _proto = default!;
|
||||||
|
[Dependency] private readonly SharedMapSystem _map = default!;
|
||||||
|
[Dependency] private readonly SharedWeatherSystem _weather = default!;
|
||||||
|
|
||||||
|
private EntityQuery<MapGridComponent> _gridQuery;
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
_gridQuery = GetEntityQuery<MapGridComponent>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Update(float frameTime)
|
||||||
|
{
|
||||||
|
base.Update(frameTime);
|
||||||
|
|
||||||
|
var now = _timing.CurTime;
|
||||||
|
var query = EntityQueryEnumerator<WeatherComponent>();
|
||||||
|
while (query.MoveNext(out var map, out var weather))
|
||||||
|
{
|
||||||
|
if (now < weather.NextUpdate)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
weather.NextUpdate = now + weather.UpdateDelay;
|
||||||
|
|
||||||
|
foreach (var (id, data) in weather.Weather)
|
||||||
|
{
|
||||||
|
// start and end do no damage
|
||||||
|
if (data.State != WeatherState.Running)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
UpdateDamage(map, id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateDamage(EntityUid map, ProtoId<WeatherPrototype> id)
|
||||||
|
{
|
||||||
|
var weather = _proto.Index(id);
|
||||||
|
if (weather.Damage is not {} damage)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var query = EntityQueryEnumerator<MobStateComponent, TransformComponent>();
|
||||||
|
while (query.MoveNext(out var uid, out var mob, out var xform))
|
||||||
|
{
|
||||||
|
// Dead bodies aren't revivable anyways!
|
||||||
|
if (xform.MapUid != map)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// if not in space, check for being indoors
|
||||||
|
if (xform.GridUid is {} gridUid && _gridQuery.TryComp(gridUid, out var grid))
|
||||||
|
{
|
||||||
|
var tile = _map.GetTileRef((gridUid, grid), xform.Coordinates);
|
||||||
|
if (!_weather.CanWeatherAffect(gridUid, grid, tile))
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_whitelist.IsBlacklistFailOrNull(weather.DamageBlacklist, uid))
|
||||||
|
_damageable.TryChangeDamage(uid, damage, interruptsDoAfters: false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
58
Content.Server/DeltaV/Weather/WeatherSchedulerComponent.cs
Normal file
58
Content.Server/DeltaV/Weather/WeatherSchedulerComponent.cs
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
using Content.Shared.Destructible.Thresholds;
|
||||||
|
using Content.Shared.Weather;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
using Robust.Shared.Serialization;
|
||||||
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
|
||||||
|
|
||||||
|
namespace Content.Server.DeltaV.Weather;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Makes weather randomly happen every so often.
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, Access(typeof(WeatherSchedulerSystem))]
|
||||||
|
[AutoGenerateComponentPause]
|
||||||
|
public sealed partial class WeatherSchedulerComponent : Component
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Weather stages to schedule.
|
||||||
|
/// </summary>
|
||||||
|
[DataField(required: true)]
|
||||||
|
public List<WeatherStage> Stages = new();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The index of <see cref="Stages"/> to use next, wraps back to the start.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public int Stage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// When to go to the next step of the schedule.
|
||||||
|
/// </summary>
|
||||||
|
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField]
|
||||||
|
public TimeSpan NextUpdate;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A stage in a weather schedule.
|
||||||
|
/// </summary>
|
||||||
|
[Serializable, DataDefinition]
|
||||||
|
public partial struct WeatherStage
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// A range of how long the stage can last for, in seconds.
|
||||||
|
/// </summary>
|
||||||
|
[DataField(required: true)]
|
||||||
|
public MinMax Duration = new(0, 0);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The weather prototype to add, or null for clear weather.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public ProtoId<WeatherPrototype>? Weather;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Alert message to send in chat for players on the map when it starts.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public LocId? Message;
|
||||||
|
}
|
||||||
75
Content.Server/DeltaV/Weather/WeatherSchedulerSystem.cs
Normal file
75
Content.Server/DeltaV/Weather/WeatherSchedulerSystem.cs
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
using Content.Server.Chat.Managers;
|
||||||
|
using Content.Shared.Chat;
|
||||||
|
using Content.Shared.Weather;
|
||||||
|
using Robust.Shared.Map.Components;
|
||||||
|
using Robust.Shared.Player;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
using Robust.Shared.Random;
|
||||||
|
using Robust.Shared.Timing;
|
||||||
|
|
||||||
|
namespace Content.Server.DeltaV.Weather;
|
||||||
|
|
||||||
|
public sealed class WeatherSchedulerSystem : EntitySystem
|
||||||
|
{
|
||||||
|
[Dependency] private readonly IChatManager _chat = default!;
|
||||||
|
[Dependency] private readonly IGameTiming _timing = default!;
|
||||||
|
[Dependency] private readonly IPrototypeManager _proto = default!;
|
||||||
|
[Dependency] private readonly IRobustRandom _random = default!;
|
||||||
|
[Dependency] private readonly SharedWeatherSystem _weather = default!;
|
||||||
|
|
||||||
|
public override void Update(float frameTime)
|
||||||
|
{
|
||||||
|
base.Update(frameTime);
|
||||||
|
|
||||||
|
var now = _timing.CurTime;
|
||||||
|
var query = EntityQueryEnumerator<WeatherSchedulerComponent>();
|
||||||
|
while (query.MoveNext(out var map, out var comp))
|
||||||
|
{
|
||||||
|
if (now < comp.NextUpdate)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (comp.Stage >= comp.Stages.Count)
|
||||||
|
comp.Stage = 0;
|
||||||
|
|
||||||
|
var stage = comp.Stages[comp.Stage++];
|
||||||
|
var duration = stage.Duration.Next(_random);
|
||||||
|
comp.NextUpdate = now + TimeSpan.FromSeconds(duration);
|
||||||
|
|
||||||
|
var mapId = Comp<MapComponent>(map).MapId;
|
||||||
|
if (stage.Weather is {} weather)
|
||||||
|
{
|
||||||
|
var ending = comp.NextUpdate;
|
||||||
|
// crossfade weather so as one ends the next starts
|
||||||
|
if (HasWeather(comp, comp.Stage - 1))
|
||||||
|
ending += WeatherComponent.ShutdownTime;
|
||||||
|
if (HasWeather(comp, comp.Stage + 1))
|
||||||
|
ending += WeatherComponent.StartupTime;
|
||||||
|
_weather.SetWeather(mapId, _proto.Index(weather), ending);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stage.Message is {} message)
|
||||||
|
{
|
||||||
|
var msg = Loc.GetString(message);
|
||||||
|
_chat.ChatMessageToManyFiltered(
|
||||||
|
Filter.BroadcastMap(mapId),
|
||||||
|
ChatChannel.Radio,
|
||||||
|
msg,
|
||||||
|
msg,
|
||||||
|
map,
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool HasWeather(WeatherSchedulerComponent comp, int stage)
|
||||||
|
{
|
||||||
|
if (stage < 0)
|
||||||
|
stage = comp.Stages.Count + stage;
|
||||||
|
else if (stage >= comp.Stages.Count)
|
||||||
|
stage %= comp.Stages.Count;
|
||||||
|
|
||||||
|
return comp.Stages[stage].Weather != null;
|
||||||
|
}
|
||||||
|
}
|
||||||
109
Content.Server/_DV/Salvage/Systems/ShelterCapsuleSystem.cs
Normal file
109
Content.Server/_DV/Salvage/Systems/ShelterCapsuleSystem.cs
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
using Content.Server.Fluids.EntitySystems;
|
||||||
|
using Content.Server.Procedural;
|
||||||
|
using Content.Shared.Administration.Logs;
|
||||||
|
using Content.Shared.Chemistry.Components;
|
||||||
|
using Content.Shared.Database;
|
||||||
|
using Content.Shared._DV.Salvage.Components;
|
||||||
|
using Content.Shared._DV.Salvage.Systems;
|
||||||
|
using Content.Shared.Maps;
|
||||||
|
using Content.Shared.Physics;
|
||||||
|
using Robust.Shared.Map.Components;
|
||||||
|
using Robust.Shared.Maths;
|
||||||
|
using Robust.Shared.Physics;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
using System.Numerics;
|
||||||
|
|
||||||
|
namespace Content.Server._DV.Salvage.Systems;
|
||||||
|
|
||||||
|
public sealed class ShelterCapsuleSystem : SharedShelterCapsuleSystem
|
||||||
|
{
|
||||||
|
[Dependency] private readonly DungeonSystem _dungeon = default!;
|
||||||
|
[Dependency] private readonly EntityLookupSystem _lookup = default!;
|
||||||
|
[Dependency] private readonly IPrototypeManager _proto = default!;
|
||||||
|
[Dependency] private readonly ISharedAdminLogManager _adminLogger = default!;
|
||||||
|
[Dependency] private readonly SharedMapSystem _map = default!;
|
||||||
|
[Dependency] private readonly SmokeSystem _smoke = default!;
|
||||||
|
|
||||||
|
public static readonly EntProtoId SmokePrototype = "Smoke";
|
||||||
|
|
||||||
|
private EntityQuery<FixturesComponent> _fixturesQuery;
|
||||||
|
private HashSet<EntityUid> _entities = new();
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
_fixturesQuery = GetEntityQuery<FixturesComponent>();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override LocId? TrySpawnRoom(Entity<ShelterCapsuleComponent> ent)
|
||||||
|
{
|
||||||
|
var xform = Transform(ent);
|
||||||
|
if (xform.GridUid is not {} gridUid || !TryComp<MapGridComponent>(gridUid, out var grid))
|
||||||
|
return "shelter-capsule-error-space";
|
||||||
|
|
||||||
|
var center = _map.LocalToTile(gridUid, grid, xform.Coordinates);
|
||||||
|
var room = _proto.Index(ent.Comp.Room);
|
||||||
|
var origin = center - room.Size / 2;
|
||||||
|
|
||||||
|
// check that every tile it needs isn't blocked
|
||||||
|
var mask = (int) CollisionGroup.MobMask;
|
||||||
|
if (IsAreaBlocked(gridUid, center, room.Size, mask))
|
||||||
|
return "shelter-capsule-error-obstructed";
|
||||||
|
|
||||||
|
// check that it isn't on space or SpawnRoom will crash
|
||||||
|
for (int y = 0; y < room.Size.Y; y++)
|
||||||
|
{
|
||||||
|
for (int x = 0; x < room.Size.X; x++)
|
||||||
|
{
|
||||||
|
var pos = origin + new Vector2i(x, y);
|
||||||
|
var tile = _map.GetTileRef((gridUid, grid), pos);
|
||||||
|
if (tile.Tile.IsEmpty)
|
||||||
|
return "shelter-capsule-error-space";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var user = ent.Comp.User;
|
||||||
|
_adminLogger.Add(LogType.Action, LogImpact.High, $"{ToPrettyString(user):user} expanded {ToPrettyString(ent):capsule} at {center} on {ToPrettyString(gridUid):grid}");
|
||||||
|
|
||||||
|
_dungeon.SpawnRoom(gridUid,
|
||||||
|
grid,
|
||||||
|
origin,
|
||||||
|
room,
|
||||||
|
new Random(),
|
||||||
|
null,
|
||||||
|
clearExisting: true); // already checked for mobs and structures here
|
||||||
|
|
||||||
|
var smoke = Spawn(SmokePrototype, xform.Coordinates);
|
||||||
|
var spreadAmount = (int) room.Size.Length * 2;
|
||||||
|
_smoke.StartSmoke(smoke, new Solution(), 3f, spreadAmount);
|
||||||
|
|
||||||
|
QueueDel(ent);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool IsAreaBlocked(EntityUid grid, Vector2i center, Vector2i size, int mask)
|
||||||
|
{
|
||||||
|
// This is scaled to 95 % so it doesn't encompass walls on other tiles.
|
||||||
|
var aabb = Box2.CenteredAround(center, size * 0.95f);
|
||||||
|
_entities.Clear();
|
||||||
|
_lookup.GetLocalEntitiesIntersecting(grid, aabb, _entities, LookupFlags.Dynamic | LookupFlags.Static);
|
||||||
|
foreach (var uid in _entities)
|
||||||
|
{
|
||||||
|
// don't care about non-physical entities
|
||||||
|
if (!_fixturesQuery.TryComp(uid, out var fixtures))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
foreach (var fixture in fixtures.Fixtures.Values)
|
||||||
|
{
|
||||||
|
if (!fixture.Hard)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if ((fixture.CollisionLayer & mask) != 0)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false; // no entities colliding with the mask found
|
||||||
|
}
|
||||||
|
}
|
||||||
49
Content.Shared/DeltaV/Planet/PlanetPrototype.cs
Normal file
49
Content.Shared/DeltaV/Planet/PlanetPrototype.cs
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
using Content.Shared.Atmos;
|
||||||
|
using Content.Shared.Parallax.Biomes;
|
||||||
|
using Content.Shared.Parallax.Biomes.Markers;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
|
||||||
|
namespace Content.Shared.DeltaV.Planet;
|
||||||
|
|
||||||
|
[Prototype]
|
||||||
|
public sealed partial class PlanetPrototype : IPrototype
|
||||||
|
{
|
||||||
|
[IdDataField]
|
||||||
|
public string ID { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The biome to create the planet with.
|
||||||
|
/// </summary>
|
||||||
|
[DataField(required: true)]
|
||||||
|
public ProtoId<BiomeTemplatePrototype> Biome;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name to give to the map.
|
||||||
|
/// </summary>
|
||||||
|
[DataField(required: true)]
|
||||||
|
public LocId MapName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Ambient lighting for the map.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public Color MapLight = Color.FromHex("#D8B059");
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Components to add to the map.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public ComponentRegistry? AddedComponents;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The gas mixture to use for the atmosphere.
|
||||||
|
/// </summary>
|
||||||
|
[DataField(required: true)]
|
||||||
|
public GasMixture Atmosphere = new();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Biome layers to add to the map, i.e. ores.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public List<ProtoId<BiomeMarkerLayerPrototype>> BiomeMarkerLayers = new();
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
using Content.Shared.DeltaV.Salvage.Systems;
|
||||||
|
using Robust.Shared.Audio;
|
||||||
|
using Robust.Shared.GameStates;
|
||||||
|
|
||||||
|
namespace Content.Shared.DeltaV.Salvage.Components;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Stores mining points for a holder, such as an ID card or ore processor.
|
||||||
|
/// Mining points are gained by smelting ore and redeeming them to your ID card.
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, NetworkedComponent, Access(typeof(MiningPointsSystem))]
|
||||||
|
[AutoGenerateComponentState]
|
||||||
|
public sealed partial class MiningPointsComponent : Component
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The number of points stored.
|
||||||
|
/// </summary>
|
||||||
|
[DataField, AutoNetworkedField]
|
||||||
|
public uint Points;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sound played when successfully transferring points to another holder.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public SoundSpecifier? TransferSound;
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
using Robust.Shared.GameStates;
|
||||||
|
|
||||||
|
namespace Content.Shared.DeltaV.Salvage.Components;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Adds points to <see cref="MiningPointsComponent"/> when making a recipe that has miningPoints set.
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, NetworkedComponent]
|
||||||
|
public sealed partial class MiningPointsLatheComponent : Component;
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
using Content.Shared._DV.Salvage.Systems;
|
||||||
|
using Content.Shared.Procedural;
|
||||||
|
using Robust.Shared.GameStates;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
|
||||||
|
|
||||||
|
namespace Content.Shared._DV.Salvage.Components;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Spawns a dungeon room after a delay when used and deletes itself.
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, NetworkedComponent, Access(typeof(SharedShelterCapsuleSystem))]
|
||||||
|
[AutoGenerateComponentPause]
|
||||||
|
public sealed partial class ShelterCapsuleComponent : Component
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The room to spawn.
|
||||||
|
/// </summary>
|
||||||
|
[DataField(required: true)]
|
||||||
|
public ProtoId<DungeonRoomPrototype> Room;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// How long to wait between using and spawning the room.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public TimeSpan Delay = TimeSpan.FromSeconds(5);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// When to next spawn the room, also used to ignore activating multiple times.
|
||||||
|
/// </summary>
|
||||||
|
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField]
|
||||||
|
public TimeSpan? NextSpawn;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The user of the capsule, used for logging.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public EntityUid? User;
|
||||||
|
}
|
||||||
9
Content.Shared/DeltaV/Salvage/MiningPointsUI.cs
Normal file
9
Content.Shared/DeltaV/Salvage/MiningPointsUI.cs
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
using Robust.Shared.Serialization;
|
||||||
|
|
||||||
|
namespace Content.Shared.DeltaV.Salvage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Message for a lathe to transfer its mining points to the user's id card.
|
||||||
|
/// </summary>
|
||||||
|
[Serializable, NetSerializable]
|
||||||
|
public sealed class LatheClaimMiningPointsMessage : BoundUserInterfaceMessage;
|
||||||
121
Content.Shared/DeltaV/Salvage/Systems/MiningPointsSystem.cs
Normal file
121
Content.Shared/DeltaV/Salvage/Systems/MiningPointsSystem.cs
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
using Content.Shared.Access.Systems;
|
||||||
|
using Content.Shared.DeltaV.Salvage.Components;
|
||||||
|
using Content.Shared.Lathe;
|
||||||
|
using Robust.Shared.Audio.Systems;
|
||||||
|
|
||||||
|
namespace Content.Shared.DeltaV.Salvage.Systems;
|
||||||
|
|
||||||
|
public sealed class MiningPointsSystem : EntitySystem
|
||||||
|
{
|
||||||
|
[Dependency] private readonly SharedAudioSystem _audio = default!;
|
||||||
|
[Dependency] private readonly SharedIdCardSystem _idCard = default!;
|
||||||
|
|
||||||
|
private EntityQuery<MiningPointsComponent> _query;
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
_query = GetEntityQuery<MiningPointsComponent>();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<MiningPointsLatheComponent, LatheStartPrintingEvent>(OnStartPrinting);
|
||||||
|
Subs.BuiEvents<MiningPointsLatheComponent>(LatheUiKey.Key, subs =>
|
||||||
|
{
|
||||||
|
subs.Event<LatheClaimMiningPointsMessage>(OnClaimMiningPoints);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Event Handlers
|
||||||
|
|
||||||
|
private void OnStartPrinting(Entity<MiningPointsLatheComponent> ent, ref LatheStartPrintingEvent args)
|
||||||
|
{
|
||||||
|
var points = args.Recipe.MiningPoints;
|
||||||
|
if (points > 0)
|
||||||
|
AddPoints(ent.Owner, points);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnClaimMiningPoints(Entity<MiningPointsLatheComponent> ent, ref LatheClaimMiningPointsMessage args)
|
||||||
|
{
|
||||||
|
var user = args.Actor;
|
||||||
|
if (TryFindIdCard(user) is {} dest)
|
||||||
|
TransferAll(ent.Owner, dest);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
#region Public API
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Tries to find the user's id card and gets its <see cref="MiningPointsComponent"/>.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Component is nullable for easy usage with the API due to Entity<T> not being usable for Entity<T?> arguments.
|
||||||
|
/// </remarks>
|
||||||
|
public Entity<MiningPointsComponent?>? TryFindIdCard(EntityUid user)
|
||||||
|
{
|
||||||
|
if (!_idCard.TryFindIdCard(user, out var idCard))
|
||||||
|
return null;
|
||||||
|
|
||||||
|
if (!_query.TryComp(idCard, out var comp))
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return (idCard, comp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Removes points from a holder, returning true if it succeeded.
|
||||||
|
/// </summary>
|
||||||
|
public bool RemovePoints(Entity<MiningPointsComponent?> ent, uint amount)
|
||||||
|
{
|
||||||
|
if (!_query.Resolve(ent, ref ent.Comp) || amount > ent.Comp.Points)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
ent.Comp.Points -= amount;
|
||||||
|
Dirty(ent);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Add points to a holder.
|
||||||
|
/// </summary>
|
||||||
|
public bool AddPoints(Entity<MiningPointsComponent?> ent, uint amount)
|
||||||
|
{
|
||||||
|
if (!_query.Resolve(ent, ref ent.Comp))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
ent.Comp.Points += amount;
|
||||||
|
Dirty(ent);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Transfer a number of points from source to destination.
|
||||||
|
/// Returns true if the transfer succeeded.
|
||||||
|
/// </summary>
|
||||||
|
public bool Transfer(Entity<MiningPointsComponent?> src, Entity<MiningPointsComponent?> dest, uint amount)
|
||||||
|
{
|
||||||
|
// don't make a sound or anything
|
||||||
|
if (amount == 0)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (!_query.Resolve(src, ref src.Comp) || !_query.Resolve(dest, ref dest.Comp))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (!RemovePoints(src, amount))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
AddPoints(dest, amount);
|
||||||
|
_audio.PlayPvs(src.Comp.TransferSound, src);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Transfers all points from source to destination.
|
||||||
|
/// Returns true if the transfer succeeded.
|
||||||
|
/// </summary>
|
||||||
|
public bool TransferAll(Entity<MiningPointsComponent?> src, Entity<MiningPointsComponent?> dest)
|
||||||
|
{
|
||||||
|
return _query.Resolve(src, ref src.Comp) && Transfer(src, dest, src.Comp.Points);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
using Content.Shared._DV.Salvage.Components;
|
||||||
|
using Content.Shared.Interaction.Events;
|
||||||
|
using Content.Shared.Popups;
|
||||||
|
using Robust.Shared.Timing;
|
||||||
|
|
||||||
|
namespace Content.Shared._DV.Salvage.Systems;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Handles interaction for shelter capsules.
|
||||||
|
/// Room spawning is done serverside.
|
||||||
|
/// </summary>
|
||||||
|
public abstract class SharedShelterCapsuleSystem : EntitySystem
|
||||||
|
{
|
||||||
|
[Dependency] private readonly IGameTiming _timing = default!;
|
||||||
|
[Dependency] private readonly SharedPopupSystem _popup = default!;
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<ShelterCapsuleComponent, UseInHandEvent>(OnUse);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Update(float frameTime)
|
||||||
|
{
|
||||||
|
base.Update(frameTime);
|
||||||
|
|
||||||
|
var now = _timing.CurTime;
|
||||||
|
var query = EntityQueryEnumerator<ShelterCapsuleComponent>();
|
||||||
|
while (query.MoveNext(out var uid, out var comp))
|
||||||
|
{
|
||||||
|
if (comp.NextSpawn is not {} nextSpawn || now < nextSpawn)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
comp.User = null;
|
||||||
|
comp.NextSpawn = null;
|
||||||
|
if (TrySpawnRoom((uid, comp)) is {} id)
|
||||||
|
{
|
||||||
|
var msg = Loc.GetString(id, ("capsule", uid));
|
||||||
|
_popup.PopupEntity(msg, uid, PopupType.LargeCaution);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Spawn the room, returning a locale string for an error. It gets "capsule" passed.
|
||||||
|
/// </summary>
|
||||||
|
protected virtual LocId? TrySpawnRoom(Entity<ShelterCapsuleComponent> ent)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnUse(Entity<ShelterCapsuleComponent> ent, ref UseInHandEvent args)
|
||||||
|
{
|
||||||
|
if (args.Handled || ent.Comp.NextSpawn != null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
args.Handled = true;
|
||||||
|
|
||||||
|
var msg = Loc.GetString("shelter-capsule-warning", ("capsule", ent));
|
||||||
|
_popup.PopupPredicted(msg, ent, args.User, PopupType.LargeCaution);
|
||||||
|
|
||||||
|
ent.Comp.User = args.User;
|
||||||
|
ent.Comp.NextSpawn = _timing.CurTime + ent.Comp.Delay;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
using Content.Shared.DeltaV.Shuttles.Systems;
|
||||||
|
using Content.Shared.Tag;
|
||||||
|
using Content.Shared.Whitelist;
|
||||||
|
using Robust.Shared.GameStates;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
|
||||||
|
namespace Content.Shared.DeltaV.Shuttles.Components;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A shuttle console that can only ftl-dock between 2 grids.
|
||||||
|
/// The shuttle used must have <see cref="DockingShuttleComponent"/>.
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, NetworkedComponent, Access(typeof(SharedDockingConsoleSystem))]
|
||||||
|
[AutoGenerateComponentState]
|
||||||
|
public sealed partial class DockingConsoleComponent : Component
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Title of the window to use
|
||||||
|
/// </summary>
|
||||||
|
[DataField(required: true)]
|
||||||
|
public LocId WindowTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Airlock tag that it will prioritize docking to.
|
||||||
|
/// </summary>
|
||||||
|
[DataField(required: true)]
|
||||||
|
public ProtoId<TagPrototype> DockTag;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A whitelist the shuttle has to match to be piloted.
|
||||||
|
/// </summary>
|
||||||
|
[DataField(required: true)]
|
||||||
|
public EntityWhitelist ShuttleWhitelist = new();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The shuttle that matches <see cref="ShuttleWhitelist"/>.
|
||||||
|
/// If this is null a shuttle was not found and this console does nothing.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public EntityUid? Shuttle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Whether <see cref="Shuttle"/> is set on the server or not.
|
||||||
|
/// Client can't use Shuttle outside of PVS range so that isn't networked.
|
||||||
|
/// </summary>
|
||||||
|
[DataField, AutoNetworkedField]
|
||||||
|
public bool HasShuttle;
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
using Content.Shared.DeltaV.Shuttles.Systems;
|
||||||
|
using Robust.Shared.GameStates;
|
||||||
|
using Robust.Shared.Map;
|
||||||
|
using Robust.Shared.Serialization;
|
||||||
|
|
||||||
|
namespace Content.Shared.DeltaV.Shuttles.Components;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Component that stores destinations a docking-only shuttle can use.
|
||||||
|
/// Used by <see cref="DockingConsoleComponent"/> to access destinations.
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, NetworkedComponent, Access(typeof(SharedDockingShuttleSystem))]
|
||||||
|
public sealed partial class DockingShuttleComponent : Component
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The station this shuttle belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public EntityUid? Station;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Every destination this console can FTL to.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public List<DockingDestination> Destinations = new();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A map a shuttle can FTL to.
|
||||||
|
/// Created automatically on shuttle mapinit.
|
||||||
|
/// </summary>
|
||||||
|
[DataDefinition, Serializable, NetSerializable]
|
||||||
|
public partial struct DockingDestination
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The name of the destination to use in UI.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public LocId Name;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The map ID.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public MapId Map;
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
using Robust.Shared.GameStates;
|
||||||
|
|
||||||
|
namespace Content.Shared.DeltaV.Shuttles.Components;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Marker component for the mining shuttle grid.
|
||||||
|
/// Used for lavaland's FTL whitelist.
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, NetworkedComponent]
|
||||||
|
public sealed partial class MiningShuttleComponent : Component;
|
||||||
30
Content.Shared/DeltaV/Shuttles/DockingConsoleUI.cs
Normal file
30
Content.Shared/DeltaV/Shuttles/DockingConsoleUI.cs
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
|
||||||
|
using Content.Shared.DeltaV.Shuttles.Components;
|
||||||
|
using Content.Shared.Shuttles.Systems;
|
||||||
|
using Content.Shared.Timing;
|
||||||
|
using Robust.Shared.Serialization;
|
||||||
|
|
||||||
|
namespace Content.Shared.DeltaV.Shuttles;
|
||||||
|
|
||||||
|
[Serializable, NetSerializable]
|
||||||
|
public enum DockingConsoleUiKey : byte
|
||||||
|
{
|
||||||
|
Key
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable, NetSerializable]
|
||||||
|
public sealed class DockingConsoleState(FTLState ftlState, StartEndTime ftlTime, List<DockingDestination> destinations) : BoundUserInterfaceState
|
||||||
|
{
|
||||||
|
public FTLState FTLState = ftlState;
|
||||||
|
public StartEndTime FTLTime = ftlTime;
|
||||||
|
public List<DockingDestination> Destinations = destinations;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable, NetSerializable]
|
||||||
|
public sealed class DockingConsoleFTLMessage(int index) : BoundUserInterfaceMessage
|
||||||
|
{
|
||||||
|
public int Index = index;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable, NetSerializable]
|
||||||
|
public sealed class DockingConsoleShuttleCheckMessage : BoundUserInterfaceMessage;
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
namespace Content.Shared.DeltaV.Shuttles.Systems;
|
||||||
|
|
||||||
|
public abstract class SharedDockingConsoleSystem : EntitySystem;
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
namespace Content.Shared.DeltaV.Shuttles.Systems;
|
||||||
|
|
||||||
|
public abstract class SharedDockingShuttleSystem : EntitySystem;
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
using Robust.Shared.GameStates;
|
||||||
|
|
||||||
|
namespace Content.Shared.DeltaV.VendingMachines;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Makes a <see cref="ShopVendorComponent"/> use mining points to buy items.
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, NetworkedComponent]
|
||||||
|
public sealed partial class PointsVendorComponent : Component;
|
||||||
181
Content.Shared/DeltaV/VendingMachines/SharedShopVendorSystem.cs
Normal file
181
Content.Shared/DeltaV/VendingMachines/SharedShopVendorSystem.cs
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
using Content.Shared.Access.Systems;
|
||||||
|
using Content.Shared.DeltaV.Salvage.Systems;
|
||||||
|
using Content.Shared.Destructible;
|
||||||
|
using Content.Shared.Popups;
|
||||||
|
using Content.Shared.Power;
|
||||||
|
using Content.Shared.Power.EntitySystems;
|
||||||
|
using Content.Shared.UserInterface;
|
||||||
|
using Content.Shared.VendingMachines;
|
||||||
|
using Robust.Shared.Audio.Systems;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
using Robust.Shared.Timing;
|
||||||
|
|
||||||
|
namespace Content.Shared.DeltaV.VendingMachines;
|
||||||
|
|
||||||
|
public abstract class SharedShopVendorSystem : EntitySystem
|
||||||
|
{
|
||||||
|
[Dependency] private readonly AccessReaderSystem _access = default!;
|
||||||
|
[Dependency] private readonly MiningPointsSystem _points = default!;
|
||||||
|
[Dependency] protected readonly IGameTiming Timing = default!;
|
||||||
|
[Dependency] private readonly IPrototypeManager _proto = default!;
|
||||||
|
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
|
||||||
|
[Dependency] private readonly SharedAudioSystem _audio = default!;
|
||||||
|
[Dependency] private readonly SharedPointLightSystem _light = default!;
|
||||||
|
[Dependency] private readonly SharedPopupSystem _popup = default!;
|
||||||
|
[Dependency] private readonly SharedPowerReceiverSystem _power = default!;
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<PointsVendorComponent, ShopVendorBalanceEvent>(OnPointsBalance);
|
||||||
|
SubscribeLocalEvent<PointsVendorComponent, ShopVendorPurchaseEvent>(OnPointsPurchase);
|
||||||
|
|
||||||
|
SubscribeLocalEvent<ShopVendorComponent, PowerChangedEvent>(OnPowerChanged);
|
||||||
|
SubscribeLocalEvent<ShopVendorComponent, BreakageEventArgs>(OnBreak);
|
||||||
|
SubscribeLocalEvent<ShopVendorComponent, ActivatableUIOpenAttemptEvent>(OnOpenAttempt);
|
||||||
|
Subs.BuiEvents<ShopVendorComponent>(VendingMachineUiKey.Key, subs =>
|
||||||
|
{
|
||||||
|
subs.Event<ShopVendorPurchaseMessage>(OnPurchase);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Public API
|
||||||
|
|
||||||
|
public uint GetBalance(EntityUid uid, EntityUid user)
|
||||||
|
{
|
||||||
|
var ev = new ShopVendorBalanceEvent(user);
|
||||||
|
RaiseLocalEvent(uid, ref ev);
|
||||||
|
return ev.Balance;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Balance adapters
|
||||||
|
|
||||||
|
private void OnPointsBalance(Entity<PointsVendorComponent> ent, ref ShopVendorBalanceEvent args)
|
||||||
|
{
|
||||||
|
args.Balance = _points.TryFindIdCard(args.User)?.Comp?.Points ?? 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnPointsPurchase(Entity<PointsVendorComponent> ent, ref ShopVendorPurchaseEvent args)
|
||||||
|
{
|
||||||
|
if (_points.TryFindIdCard(args.User) is {} idCard && _points.RemovePoints(idCard, args.Cost))
|
||||||
|
args.Paid = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private void OnPowerChanged(Entity<ShopVendorComponent> ent, ref PowerChangedEvent args)
|
||||||
|
{
|
||||||
|
UpdateVisuals(ent);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnBreak(Entity<ShopVendorComponent> ent, ref BreakageEventArgs args)
|
||||||
|
{
|
||||||
|
ent.Comp.Broken = true;
|
||||||
|
UpdateVisuals(ent);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnOpenAttempt(Entity<ShopVendorComponent> ent, ref ActivatableUIOpenAttemptEvent args)
|
||||||
|
{
|
||||||
|
if (ent.Comp.Broken)
|
||||||
|
args.Cancel();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnPurchase(Entity<ShopVendorComponent> ent, ref ShopVendorPurchaseMessage args)
|
||||||
|
{
|
||||||
|
if (ent.Comp.Ejecting != null || ent.Comp.Broken || !_power.IsPowered(ent.Owner))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var pack = _proto.Index(ent.Comp.Pack);
|
||||||
|
if (args.Index < 0 || args.Index >= pack.Listings.Count)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var user = args.Actor;
|
||||||
|
if (!_access.IsAllowed(user, ent))
|
||||||
|
{
|
||||||
|
Deny(ent, user);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var listing = pack.Listings[args.Index];
|
||||||
|
var ev = new ShopVendorPurchaseEvent(user, listing.Cost);
|
||||||
|
RaiseLocalEvent(ent, ref ev);
|
||||||
|
if (!ev.Paid)
|
||||||
|
{
|
||||||
|
Deny(ent, user);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ent.Comp.Ejecting = listing.Id;
|
||||||
|
ent.Comp.NextEject = Timing.CurTime + ent.Comp.EjectDelay;
|
||||||
|
Dirty(ent);
|
||||||
|
|
||||||
|
_audio.PlayPvs(ent.Comp.PurchaseSound, ent);
|
||||||
|
UpdateVisuals(ent);
|
||||||
|
|
||||||
|
Log.Debug($"Player {ToPrettyString(user):user} purchased {listing.Id} from {ToPrettyString(ent):vendor}");
|
||||||
|
|
||||||
|
AfterPurchase(ent);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void AfterPurchase(Entity<ShopVendorComponent> ent)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Deny(Entity<ShopVendorComponent> ent, EntityUid user)
|
||||||
|
{
|
||||||
|
_popup.PopupClient(Loc.GetString("vending-machine-component-try-eject-access-denied"), ent, user);
|
||||||
|
if (ent.Comp.Denying)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ent.Comp.Denying = true;
|
||||||
|
ent.Comp.NextDeny = Timing.CurTime + ent.Comp.DenyDelay;
|
||||||
|
Dirty(ent);
|
||||||
|
|
||||||
|
_audio.PlayPvs(ent.Comp.DenySound, ent);
|
||||||
|
UpdateVisuals(ent);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void UpdateVisuals(Entity<ShopVendorComponent> ent)
|
||||||
|
{
|
||||||
|
var state = VendingMachineVisualState.Normal;
|
||||||
|
var lit = true;
|
||||||
|
if (ent.Comp.Broken)
|
||||||
|
{
|
||||||
|
state = VendingMachineVisualState.Broken;
|
||||||
|
lit = false;
|
||||||
|
}
|
||||||
|
else if (ent.Comp.Ejecting != null)
|
||||||
|
{
|
||||||
|
state = VendingMachineVisualState.Eject;
|
||||||
|
}
|
||||||
|
else if (ent.Comp.Denying)
|
||||||
|
{
|
||||||
|
state = VendingMachineVisualState.Deny;
|
||||||
|
}
|
||||||
|
else if (!_power.IsPowered(ent.Owner))
|
||||||
|
{
|
||||||
|
state = VendingMachineVisualState.Off;
|
||||||
|
lit = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
_light.SetEnabled(ent, lit);
|
||||||
|
_appearance.SetData(ent, VendingMachineVisuals.VisualState, state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Raised on a shop vendor to get its current balance.
|
||||||
|
/// A currency component sets Balance to whatever it is.
|
||||||
|
/// </summary>
|
||||||
|
[ByRefEvent]
|
||||||
|
public record struct ShopVendorBalanceEvent(EntityUid User, uint Balance = 0);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Raised on a shop vendor when trying to purchase an item.
|
||||||
|
/// A currency component sets Paid to true if the user successfully paid for it.
|
||||||
|
/// </summary>
|
||||||
|
[ByRefEvent]
|
||||||
|
public record struct ShopVendorPurchaseEvent(EntityUid User, uint Cost, bool Paid = false);
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
using Robust.Shared.Serialization;
|
||||||
|
|
||||||
|
namespace Content.Shared.DeltaV.VendingMachines;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Similar to <c>VendingMachineInventoryPrototype</c> but for <see cref="ShopVendorComponent"/>.
|
||||||
|
/// </summary>
|
||||||
|
[Prototype]
|
||||||
|
public sealed class ShopInventoryPrototype : IPrototype
|
||||||
|
{
|
||||||
|
[IdDataField]
|
||||||
|
public string ID { get; private set; } = default!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The item listings for sale.
|
||||||
|
/// </summary>
|
||||||
|
[DataField(required: true)]
|
||||||
|
public List<ShopListing> Listings = new();
|
||||||
|
}
|
||||||
|
|
||||||
|
[DataRecord, Serializable]
|
||||||
|
public record struct ShopListing(EntProtoId Id, uint Cost);
|
||||||
96
Content.Shared/DeltaV/VendingMachines/ShopVendorComponent.cs
Normal file
96
Content.Shared/DeltaV/VendingMachines/ShopVendorComponent.cs
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
using Robust.Shared.Audio;
|
||||||
|
using Robust.Shared.GameStates;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
|
||||||
|
|
||||||
|
namespace Content.Shared.DeltaV.VendingMachines;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A vending machine that sells items for a currency controlled by events.
|
||||||
|
/// Does not need restocking.
|
||||||
|
/// Another component must handle <see cref="ShopVendorBalanceEvent"/> and <see cref="ShopVendorPurchaseEvent"/> to work.
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, NetworkedComponent, Access(typeof(SharedShopVendorSystem))]
|
||||||
|
[AutoGenerateComponentState, AutoGenerateComponentPause]
|
||||||
|
public sealed partial class ShopVendorComponent : Component
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The inventory prototype to sell.
|
||||||
|
/// </summary>
|
||||||
|
[DataField(required: true)]
|
||||||
|
public ProtoId<ShopInventoryPrototype> Pack;
|
||||||
|
|
||||||
|
[DataField, AutoNetworkedField]
|
||||||
|
public bool Broken;
|
||||||
|
|
||||||
|
[DataField, AutoNetworkedField]
|
||||||
|
public bool Denying;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Item being ejected, or null if it isn't.
|
||||||
|
/// </summary>
|
||||||
|
[DataField, AutoNetworkedField]
|
||||||
|
public EntProtoId? Ejecting;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// How long to wait before flashing denied again.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public TimeSpan DenyDelay = TimeSpan.FromSeconds(2);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// How long to wait before another item can be bought
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public TimeSpan EjectDelay = TimeSpan.FromSeconds(1.2);
|
||||||
|
|
||||||
|
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer))]
|
||||||
|
public TimeSpan NextDeny;
|
||||||
|
|
||||||
|
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer))]
|
||||||
|
public TimeSpan NextEject;
|
||||||
|
|
||||||
|
[DataField]
|
||||||
|
public SoundSpecifier PurchaseSound = new SoundPathSpecifier("/Audio/Machines/machine_vend.ogg")
|
||||||
|
{
|
||||||
|
Params = new AudioParams
|
||||||
|
{
|
||||||
|
Volume = -4f,
|
||||||
|
Variation = 0.15f
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
[DataField]
|
||||||
|
public SoundSpecifier DenySound = new SoundPathSpecifier("/Audio/Machines/custom_deny.ogg")
|
||||||
|
{
|
||||||
|
Params = new AudioParams
|
||||||
|
{
|
||||||
|
Volume = -2f
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#region Visuals
|
||||||
|
|
||||||
|
[DataField]
|
||||||
|
public bool LoopDenyAnimation = true;
|
||||||
|
|
||||||
|
[DataField]
|
||||||
|
public string? OffState;
|
||||||
|
|
||||||
|
[DataField]
|
||||||
|
public string? ScreenState;
|
||||||
|
|
||||||
|
[DataField]
|
||||||
|
public string? NormalState;
|
||||||
|
|
||||||
|
[DataField]
|
||||||
|
public string? DenyState;
|
||||||
|
|
||||||
|
[DataField]
|
||||||
|
public string? EjectState;
|
||||||
|
|
||||||
|
[DataField]
|
||||||
|
public string? BrokenState;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
9
Content.Shared/DeltaV/VendingMachines/ShopVendorUI.cs
Normal file
9
Content.Shared/DeltaV/VendingMachines/ShopVendorUI.cs
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
using Robust.Shared.Serialization;
|
||||||
|
|
||||||
|
namespace Content.Shared.DeltaV.VendingMachines;
|
||||||
|
|
||||||
|
[Serializable, NetSerializable]
|
||||||
|
public sealed class ShopVendorPurchaseMessage(int index) : BoundUserInterfaceMessage
|
||||||
|
{
|
||||||
|
public readonly int Index = index;
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
using Robust.Shared.GameStates;
|
||||||
|
|
||||||
|
namespace Content.Shared.DeltaV.Weather.Components;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Makes an entity not take damage from ash storms.
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, NetworkedComponent]
|
||||||
|
public sealed partial class AshStormImmuneComponent : Component;
|
||||||
@@ -8,6 +8,7 @@ namespace Content.Shared.Humanoid.Markings
|
|||||||
Special,
|
Special,
|
||||||
Hair,
|
Hair,
|
||||||
FacialHair,
|
FacialHair,
|
||||||
|
Eyes, // imp
|
||||||
Head,
|
Head,
|
||||||
HeadTop,
|
HeadTop,
|
||||||
HeadSide,
|
HeadSide,
|
||||||
@@ -31,6 +32,7 @@ namespace Content.Shared.Humanoid.Markings
|
|||||||
HumanoidVisualLayers.Special => MarkingCategories.Special,
|
HumanoidVisualLayers.Special => MarkingCategories.Special,
|
||||||
HumanoidVisualLayers.Hair => MarkingCategories.Hair,
|
HumanoidVisualLayers.Hair => MarkingCategories.Hair,
|
||||||
HumanoidVisualLayers.FacialHair => MarkingCategories.FacialHair,
|
HumanoidVisualLayers.FacialHair => MarkingCategories.FacialHair,
|
||||||
|
HumanoidVisualLayers.Eyes => MarkingCategories.Eyes,
|
||||||
HumanoidVisualLayers.Head => MarkingCategories.Head,
|
HumanoidVisualLayers.Head => MarkingCategories.Head,
|
||||||
HumanoidVisualLayers.HeadTop => MarkingCategories.HeadTop,
|
HumanoidVisualLayers.HeadTop => MarkingCategories.HeadTop,
|
||||||
HumanoidVisualLayers.HeadSide => MarkingCategories.HeadSide,
|
HumanoidVisualLayers.HeadSide => MarkingCategories.HeadSide,
|
||||||
|
|||||||
@@ -69,5 +69,13 @@ namespace Content.Shared.Research.Prototypes
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[DataField]
|
[DataField]
|
||||||
public List<ProtoId<LatheCategoryPrototype>> Categories = new();
|
public List<ProtoId<LatheCategoryPrototype>> Categories = new();
|
||||||
|
public ProtoId<LatheCategoryPrototype>? Category;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// DeltaV: Number of mining points this recipe adds to an oreproc when printed.
|
||||||
|
/// Scales with stack count.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public uint MiningPoints;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ public abstract class SharedWeatherSystem : EntitySystem
|
|||||||
if (weather.EndTime != null)
|
if (weather.EndTime != null)
|
||||||
weather.EndTime = weather.EndTime.Value + args.PausedTime;
|
weather.EndTime = weather.EndTime.Value + args.PausedTime;
|
||||||
}
|
}
|
||||||
|
component.NextUpdate += args.PausedTime; // DeltaV
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool CanWeatherAffect(EntityUid uid, MapGridComponent grid, TileRef tileRef, RoofComponent? roofComp = null)
|
public bool CanWeatherAffect(EntityUid uid, MapGridComponent grid, TileRef tileRef, RoofComponent? roofComp = null)
|
||||||
|
|||||||
@@ -14,6 +14,18 @@ public sealed partial class WeatherComponent : Component
|
|||||||
[DataField]
|
[DataField]
|
||||||
public Dictionary<ProtoId<WeatherPrototype>, WeatherData> Weather = new();
|
public Dictionary<ProtoId<WeatherPrototype>, WeatherData> Weather = new();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// DeltaV: How long to wait between updating weather effects.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public TimeSpan UpdateDelay = TimeSpan.FromSeconds(1);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// DeltaV: When to next update weather effects (damage).
|
||||||
|
/// </summary>
|
||||||
|
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer))]
|
||||||
|
public TimeSpan NextUpdate = TimeSpan.Zero;
|
||||||
|
|
||||||
public static readonly TimeSpan StartupTime = TimeSpan.FromSeconds(15);
|
public static readonly TimeSpan StartupTime = TimeSpan.FromSeconds(15);
|
||||||
public static readonly TimeSpan ShutdownTime = TimeSpan.FromSeconds(15);
|
public static readonly TimeSpan ShutdownTime = TimeSpan.FromSeconds(15);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
using Content.Shared.Damage;
|
||||||
|
using Content.Shared.Whitelist;
|
||||||
using Robust.Shared.Audio;
|
using Robust.Shared.Audio;
|
||||||
using Robust.Shared.Prototypes;
|
using Robust.Shared.Prototypes;
|
||||||
using Robust.Shared.Utility;
|
using Robust.Shared.Utility;
|
||||||
@@ -20,4 +22,17 @@ public sealed partial class WeatherPrototype : IPrototype
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[ViewVariables(VVAccess.ReadWrite), DataField("sound")]
|
[ViewVariables(VVAccess.ReadWrite), DataField("sound")]
|
||||||
public SoundSpecifier? Sound;
|
public SoundSpecifier? Sound;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// DeltaV: Damage you can take from being in this weather.
|
||||||
|
/// Only applies when weather has fully set in.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public DamageSpecifier? Damage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// DeltaV: Don't damage entities that match this blacklist.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public EntityWhitelist? DamageBlacklist;
|
||||||
}
|
}
|
||||||
|
|||||||
3
Resources/Locale/en-US/_DV/salvage/shelter-capsule.ftl
Normal file
3
Resources/Locale/en-US/_DV/salvage/shelter-capsule.ftl
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
shelter-capsule-warning = {THE($capsule)} begins to shake. Stand back!
|
||||||
|
shelter-capsule-error-space = {THE($capsule)} needs ground to deploy on!
|
||||||
|
shelter-capsule-error-obstructed = {THE($capsule)} is obstructed, clear the area first!
|
||||||
159
Resources/Locale/en-US/_Impstation/markings/arachnid.ftl
Normal file
159
Resources/Locale/en-US/_Impstation/markings/arachnid.ftl
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
# Chest
|
||||||
|
|
||||||
|
marking-ArachnidOverlayFluffy = Fluffy
|
||||||
|
marking-ArachnidOverlayFluffy-fluffy = Fluff
|
||||||
|
|
||||||
|
marking-ArachnidTorsoSegments = Segmented Chest
|
||||||
|
marking-ArachnidTorsoSegments-segments1 = Chest
|
||||||
|
marking-ArachnidTorsoSegments-segments2 = Stomach
|
||||||
|
|
||||||
|
marking-SpiderMirror = Mirror
|
||||||
|
marking-SpiderMirror-mirror = Mirror
|
||||||
|
|
||||||
|
# Head
|
||||||
|
|
||||||
|
marking-ArachnidHeadSegments = Segmented Head
|
||||||
|
marking-ArachnidHeadSegments-segments1 = Head
|
||||||
|
marking-ArachnidHeadSegments-segments2 = Stripe
|
||||||
|
|
||||||
|
# Snout
|
||||||
|
|
||||||
|
marking-WhipSpiderMouth = Chelicerae (Whip)
|
||||||
|
marking-WhipSpiderMouth-whipspidermouth = Chelicerae
|
||||||
|
|
||||||
|
# Eyes
|
||||||
|
|
||||||
|
marking-ArachnidEyesDefault = Eyes
|
||||||
|
marking-ArachnidEyesDefault-eyes = Eyes (Default)
|
||||||
|
|
||||||
|
marking-ArachnidEyesJumper = Jumper Eyes
|
||||||
|
marking-ArachnidEyesJumper-jumper1 = Outer Right
|
||||||
|
marking-ArachnidEyesJumper-jumper2 = Inner Right
|
||||||
|
marking-ArachnidEyesJumper-jumper3 = Inner Left
|
||||||
|
marking-ArachnidEyesJumper-jumper4 = Outer Left
|
||||||
|
|
||||||
|
marking-ArachnidEyesJumperGlowing = Jumper Glowing Eyes
|
||||||
|
marking-ArachnidEyesJumperGlowing-jumper1 = Outer Right
|
||||||
|
marking-ArachnidEyesJumperGlowing-jumper2 = Inner Right
|
||||||
|
marking-ArachnidEyesJumperGlowing-jumper3 = Inner Left
|
||||||
|
marking-ArachnidEyesJumperGlowing-jumper4 = Outer Left
|
||||||
|
|
||||||
|
marking-ArachnidEyesRound = Round Eyes
|
||||||
|
marking-ArachnidEyesRound-round1 = Inner
|
||||||
|
marking-ArachnidEyesRound-round2 = Upper
|
||||||
|
marking-ArachnidEyesRound-round3 = Outer
|
||||||
|
marking-ArachnidEyesRound-round4 = Sides
|
||||||
|
|
||||||
|
marking-ArachnidEyesRoundGlowing = Round Glowing Eyes
|
||||||
|
marking-ArachnidEyesRoundGlowing-round1 = Inner
|
||||||
|
marking-ArachnidEyesRoundGlowing-round2 = Upper
|
||||||
|
marking-ArachnidEyesRoundGlowing-round3 = Outer
|
||||||
|
marking-ArachnidEyesRoundGlowing-round4 = Sides
|
||||||
|
|
||||||
|
marking-SpiderEyesMulti = Multicolor Eyes
|
||||||
|
marking-SpiderEyesMulti-multi1 = Top
|
||||||
|
marking-SpiderEyesMulti-multi2 = Middle Top
|
||||||
|
marking-SpiderEyesMulti-multi3 = Middle Bottom
|
||||||
|
marking-SpiderEyesMulti-multi4 = Bottom
|
||||||
|
|
||||||
|
marking-SpiderGlowEyes = Glowing Eyes
|
||||||
|
marking-SpiderGlowEyes-glow = Glowing Eyes
|
||||||
|
|
||||||
|
# RArm
|
||||||
|
|
||||||
|
marking-ArachnidRArmSegments = Segmented Arm (Right)
|
||||||
|
marking-ArachnidRArmSegments-segments1 = Upper Arm
|
||||||
|
marking-ArachnidRArmSegments-segments2 = Forearm
|
||||||
|
|
||||||
|
# LArm
|
||||||
|
|
||||||
|
marking-ArachnidLArmSegments = Segmented Arm (Left)
|
||||||
|
marking-ArachnidLArmSegments-segments1 = Upper Arm
|
||||||
|
marking-ArachnidLArmSegments-segments2 = Forearm
|
||||||
|
|
||||||
|
# RLeg
|
||||||
|
|
||||||
|
marking-ArachnidRLegSegments = Segmented Leg (Right)
|
||||||
|
marking-ArachnidRLegSegments-segments1 = Thigh
|
||||||
|
marking-ArachnidRLegSegments-segments2 = Shin
|
||||||
|
|
||||||
|
# LLeg
|
||||||
|
|
||||||
|
marking-ArachnidLLegSegments = Segmented Leg (Left)
|
||||||
|
marking-ArachnidLLegSegments-segments1 = Thigh
|
||||||
|
marking-ArachnidLLegSegments-segments2 = Shin
|
||||||
|
|
||||||
|
# UndergarmentBottom
|
||||||
|
|
||||||
|
# UndergarmentTop
|
||||||
|
|
||||||
|
marking-UndergarmentTopBinderA = Binder
|
||||||
|
marking-UndergarmentTopBinderA-binder = Binder
|
||||||
|
|
||||||
|
marking-UndergarmentTopTanktopA = Tanktop
|
||||||
|
marking-UndergarmentTopTanktopA-tanktop = Tanktop
|
||||||
|
|
||||||
|
marking-UndershirtBraSportsA = Bra (Sports)
|
||||||
|
marking-UndershirtBraSportsA-sports = Bra
|
||||||
|
|
||||||
|
marking-UndershirtBraStraplessA = Bra (Strapless)
|
||||||
|
marking-UndershirtBraStraplessA-strapless = Bra
|
||||||
|
|
||||||
|
marking-UndershirtDefaultA = Undershirt
|
||||||
|
marking-UndershirtDefaultA-undershirt = Undershirt
|
||||||
|
|
||||||
|
marking-UndershirtGrossSleevelessA = Tanktop (Gross)
|
||||||
|
marking-UndershirtGrossSleevelessA-grosssleeveless = Tanktop
|
||||||
|
|
||||||
|
marking-UndershirtNanotrasenA = Undershirt (Nanotrasen)
|
||||||
|
marking-UndershirtNanotrasenA-nanotrasen = Undershirt
|
||||||
|
|
||||||
|
marking-UndershirtRolledA = Undershirt (Cropped)
|
||||||
|
marking-UndershirtRolledA-rolledundershirt = Undershirt
|
||||||
|
|
||||||
|
# LFoot
|
||||||
|
|
||||||
|
# RFoot
|
||||||
|
|
||||||
|
# LHand
|
||||||
|
|
||||||
|
# RHand
|
||||||
|
|
||||||
|
# FacialHair
|
||||||
|
|
||||||
|
# Hair
|
||||||
|
|
||||||
|
marking-SpiderHair1 = Fluffy
|
||||||
|
marking-SpiderHair2 = Long Horned
|
||||||
|
marking-SpiderHair3 = Wisps
|
||||||
|
|
||||||
|
# HeadSide
|
||||||
|
|
||||||
|
marking-ArachnidCheliceraeSmall = Chelicerae (Small)
|
||||||
|
marking-ArachnidCheliceraeSmall-small = Chelicerae
|
||||||
|
marking-ArachnidCheliceraeBig = Chelicerae (Big)
|
||||||
|
marking-ArachnidCheliceraeBig-big = Chelicerae
|
||||||
|
marking-ArachnidCheliceraeSolifugid = Chelicerae (Solifugid)
|
||||||
|
marking-ArachnidCheliceraeSolifugid-solifugid = Chelicerae
|
||||||
|
marking-ArachnidCheliceraeLongjaw = Chelicerae (Longjaw)
|
||||||
|
marking-ArachnidCheliceraeLongjaw-longjaw = Chelicerae
|
||||||
|
|
||||||
|
# HeadTop
|
||||||
|
|
||||||
|
# Tail
|
||||||
|
|
||||||
|
marking-AbdomenBasic = Abdomen (Basic)
|
||||||
|
marking-AbdomenBasic-abdomenbasic1 = Legs
|
||||||
|
marking-AbdomenBasic-abdomenbasic2 = Abdomen
|
||||||
|
|
||||||
|
marking-AbdomenWidow = Abdomen (Widow)
|
||||||
|
marking-AbdomenWidow-widow1 = Abdomen and Arms
|
||||||
|
marking-AbdomenWidow-widow2 = Marking
|
||||||
|
|
||||||
|
marking-CreepyArms = Creepy Arms
|
||||||
|
marking-CreepyArms-creepy = Creepy Arms
|
||||||
|
|
||||||
|
marking-AppendagesScorpion = Appendages (Scorpion)
|
||||||
|
marking-AppendagesScorpion-scorpion = Legs and Pincers
|
||||||
|
|
||||||
|
# RArmExtension
|
||||||
151
Resources/Locale/en-US/_Impstation/markings/diona.ftl
Normal file
151
Resources/Locale/en-US/_Impstation/markings/diona.ftl
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
# Chest
|
||||||
|
|
||||||
|
marking-DionaFirefly = Fireflies
|
||||||
|
marking-DionaFirefly-firefly = Fireflies
|
||||||
|
|
||||||
|
marking-DionaFlowersBody-flowers1 = Vine
|
||||||
|
marking-DionaFlowersBody-flowers2 = Flowers
|
||||||
|
|
||||||
|
marking-DionaLivingNymph = Living Nymphs
|
||||||
|
marking-DionaLivingNymph-livingnymph = Living Nymphs
|
||||||
|
|
||||||
|
marking-DionaMossChest = Moss Drape
|
||||||
|
marking-DionaMossChest-moss = Moss Drape
|
||||||
|
|
||||||
|
marking-MycenaChest = Diona Fungal (Mycena)
|
||||||
|
marking-MycenaChest-mycena = Mycena
|
||||||
|
|
||||||
|
marking-MycenaChestGlow = Diona Fungal (Glowing Mycena)
|
||||||
|
marking-MycenaChestGlow-mycena = Mycena
|
||||||
|
|
||||||
|
marking-ShelfChest = Diona Fungal (Shelf)
|
||||||
|
marking-ShelfChest-shelf = Shelf
|
||||||
|
|
||||||
|
# Head
|
||||||
|
|
||||||
|
marking-Amanita = Diona Fungal (Amanita)
|
||||||
|
marking-Amanita-amanita1 = Cap
|
||||||
|
marking-Amanita-amanita2 = Spots and Gills
|
||||||
|
|
||||||
|
marking-DionaBigFirefly = Big Fireflies
|
||||||
|
marking-DionaBigFirefly-bigfirefly = Big Fireflies
|
||||||
|
|
||||||
|
marking-DionaPollenDust = Pollen Cloud
|
||||||
|
marking-DionaPollenDust-pollendust = Pollen Cloud
|
||||||
|
|
||||||
|
marking-DionaSunflower = Sunflower
|
||||||
|
marking-DionaSunflower-sunflower_base = Sunflower Center
|
||||||
|
marking-DionaSunflower-sunflower_eyes = Sunflower Eyes
|
||||||
|
marking-DionaSunflower-sunflower_petals1 = Sunflower Petals 1
|
||||||
|
marking-DionaSunflower-sunflower_petals2 = Sunflower Petals 2
|
||||||
|
|
||||||
|
marking-DionaSunflowerEyesUnshaded = Sunflower Eyes (Unshaded)
|
||||||
|
marking-DionaSunflowerEyesUnshaded-sunflower_eyes = Sunflower Eyes
|
||||||
|
|
||||||
|
marking-DionaFlowersHead-flowers1 = Stems
|
||||||
|
marking-DionaFlowersHead-flowers2 = Flowers
|
||||||
|
|
||||||
|
marking-DionaBloomHead-bloom1 = Stem
|
||||||
|
marking-DionaBloomHead-bloom2 = Flower
|
||||||
|
|
||||||
|
marking-DionaCornflowerHead-cornflower1 = Leaves
|
||||||
|
marking-DionaCornflowerHead-cornflower2 = Flowers (Inner)
|
||||||
|
marking-DionaCornflowerHead-cornflower3 = Flowers
|
||||||
|
|
||||||
|
marking-DionaGarlandHead-garland1 = Leaves
|
||||||
|
marking-DionaGarlandHead-garland2 = Flowers (Inner)
|
||||||
|
marking-DionaGarlandHead-garland3 = Flowers 1
|
||||||
|
marking-DionaGarlandHead-garland4 = Flowers 2
|
||||||
|
marking-DionaGarlandHead-garland5 = Flowers 3
|
||||||
|
|
||||||
|
marking-DionaKingHead-king1 = Stem
|
||||||
|
marking-DionaKingHead-king2 = Flower
|
||||||
|
|
||||||
|
marking-DionaLotusHead-lotus1 = Stem
|
||||||
|
marking-DionaLotusHead-lotus2 = Flower
|
||||||
|
|
||||||
|
marking-DionaRoseHead-rose1 = Stem
|
||||||
|
marking-DionaRoseHead-rose2 = Flower
|
||||||
|
|
||||||
|
marking-DionaRoseyHead-rosey1 = Bush
|
||||||
|
marking-DionaRoseyHead-rosey2 = Flowers (Inner)
|
||||||
|
marking-DionaRoseyHead-rosey3= Flowers
|
||||||
|
|
||||||
|
marking-DionaSpinnerHeadSide-spinner1 = Roots
|
||||||
|
marking-DionaSpinnerHeadSide-spinner2 = Eyes
|
||||||
|
|
||||||
|
marking-DionaSproutHeadSide-sprout1= Primary
|
||||||
|
marking-DionaSproutHeadSide-sprout2 = Secondary
|
||||||
|
|
||||||
|
marking-DionaVineHeadTop-vine1 = Root
|
||||||
|
marking-DionaVineHeadTop-vine2 = Vines
|
||||||
|
|
||||||
|
marking-DionaVinelHead-vinel1 = Primary
|
||||||
|
marking-DionaVinelHead-vinel2 = Secondary
|
||||||
|
|
||||||
|
marking-DionaVinesHead-vines1 = Primary
|
||||||
|
marking-DionaVinesHead-vines2 = Secondary
|
||||||
|
|
||||||
|
marking-DionaWildflowerHead-wildflower1 = Leaves
|
||||||
|
marking-DionaWildflowerHead-wildflower2 = Flowers (Inner)
|
||||||
|
marking-DionaWildflowerHead-wildflower3= Flowers 1
|
||||||
|
marking-DionaWildflowerHead-wildflower4 = Flowers 2
|
||||||
|
marking-DionaWildflowerHead-wildflower5 = Flowers 3
|
||||||
|
marking-DionaWildflowerHead-wildflower6 = Flowers 4
|
||||||
|
|
||||||
|
marking-JackHead = Diona Fungal (Jack o' Lantern)
|
||||||
|
marking-JackHead-jack = Pumpkin
|
||||||
|
|
||||||
|
marking-MycenaHead = Diona Fungal (Mycena)
|
||||||
|
marking-MycenaHead-mycena = Mycena
|
||||||
|
|
||||||
|
marking-MycenaHeadGlow = Diona Fungal (Glowing Mycena)
|
||||||
|
marking-MycenaHeadGlow-mycena = Mycena
|
||||||
|
|
||||||
|
marking-ShelfHead = Diona Fungal (Shelf)
|
||||||
|
marking-ShelfHead-shelf = Shelf
|
||||||
|
|
||||||
|
# Snout
|
||||||
|
|
||||||
|
# Eyes
|
||||||
|
|
||||||
|
# RArm
|
||||||
|
|
||||||
|
# LArm
|
||||||
|
|
||||||
|
marking-MycenaArm = Diona Fungal (Mycena)
|
||||||
|
marking-MycenaArm-mycena = Mycena
|
||||||
|
|
||||||
|
marking-MycenaArmGlow = Diona Fungal (Glowing Mycena)
|
||||||
|
marking-MycenaArmGlow-mycena = Mycena
|
||||||
|
|
||||||
|
# RLeg
|
||||||
|
|
||||||
|
# LLeg
|
||||||
|
|
||||||
|
# UndergarmentBottom
|
||||||
|
|
||||||
|
# UndergarmentTop
|
||||||
|
|
||||||
|
# LFoot
|
||||||
|
|
||||||
|
# RFoot
|
||||||
|
|
||||||
|
# LHand
|
||||||
|
|
||||||
|
# RHand
|
||||||
|
|
||||||
|
# FacialHair
|
||||||
|
|
||||||
|
# Hair
|
||||||
|
|
||||||
|
# HeadSide
|
||||||
|
|
||||||
|
# HeadTop
|
||||||
|
|
||||||
|
marking-DionaMoonBloom = Moon Bloom
|
||||||
|
marking-DionaMoonBloom-dionamoonbloom = Moon Bloom
|
||||||
|
|
||||||
|
# Tail
|
||||||
|
|
||||||
|
# RArmExtension
|
||||||
102
Resources/Locale/en-US/_Impstation/markings/dwarf.ftl
Normal file
102
Resources/Locale/en-US/_Impstation/markings/dwarf.ftl
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
# Chest
|
||||||
|
|
||||||
|
marking-DwarfChestHair = Chest Hair
|
||||||
|
marking-DwarfChestHair-chesthair = Chest Hair
|
||||||
|
|
||||||
|
marking-DwarfConstellationChest = Chest Constellation
|
||||||
|
marking-DwarfConstellationChest-constellation = Chest Constellation
|
||||||
|
|
||||||
|
marking-DwarfMarkBear = Mark of the Bear
|
||||||
|
marking-DwarfMarkBear-markbear = Mark of the Bear
|
||||||
|
|
||||||
|
marking-DwarfMarkCobra = Mark of the Cobra
|
||||||
|
marking-DwarfMarkCobra-markcobra = Mark of the Cobra
|
||||||
|
|
||||||
|
marking-DwarfMarkSpider = Mark of the Spider
|
||||||
|
marking-DwarfMarkSpider-markspider = Mark of the Spider
|
||||||
|
|
||||||
|
marking-DwarfTattooShootingStar = Shooting Star Tattoo
|
||||||
|
marking-DwarfTattooShootingStar-shootingstar = Shooting Star Tattoo
|
||||||
|
|
||||||
|
# Head
|
||||||
|
|
||||||
|
marking-DwarfBearCheeks = Glowing Cheeks
|
||||||
|
marking-DwarfBearCheeks-bearcheeks = Glowing Cheeks
|
||||||
|
|
||||||
|
marking-DwarfConstellationHead = Head Constellation
|
||||||
|
marking-DwarfConstellationHead-constellation = Head Constellation
|
||||||
|
|
||||||
|
marking-DwarfHeadGlow = Glowing Star
|
||||||
|
marking-DwarfHeadGlow-glow = Glowing Star
|
||||||
|
|
||||||
|
# Snout
|
||||||
|
|
||||||
|
# Eyes
|
||||||
|
|
||||||
|
# RArm
|
||||||
|
|
||||||
|
marking-DwarfConstellationRArm = Arm Constellation (Right)
|
||||||
|
marking-DwarfConstellationRArm-constellation = Arm Constellation (Right)
|
||||||
|
|
||||||
|
# LArm
|
||||||
|
|
||||||
|
marking-DwarfArmHair = Arm Hair
|
||||||
|
marking-DwarfArmHair-hair = Arm Hair
|
||||||
|
|
||||||
|
marking-DwarfConstellationLArm = Arm Constellation (Left)
|
||||||
|
marking-DwarfConstellationLArm-constellation = Arm Constellation (Left)
|
||||||
|
|
||||||
|
# RLeg
|
||||||
|
|
||||||
|
marking-DwarfConstellationRLeg = Leg Constellation (Right)
|
||||||
|
marking-DwarfConstellationRLeg-constellation = Leg Constellation (Right)
|
||||||
|
|
||||||
|
# LLeg
|
||||||
|
|
||||||
|
marking-DwarfConstellationLLeg = Leg Constellation (Left)
|
||||||
|
marking-DwarfConstellationLLeg-constellation = Leg Constellation (Left)
|
||||||
|
|
||||||
|
marking-DwarfLegHair = Leg Hair
|
||||||
|
marking-DwarfLegHair-hair = Leg Hair
|
||||||
|
|
||||||
|
# UndergarmentBottom
|
||||||
|
|
||||||
|
# UndergarmentTop
|
||||||
|
|
||||||
|
# LFoot
|
||||||
|
|
||||||
|
marking-DwarfConstellationLFoot = Foot Constellation (Left)
|
||||||
|
marking-DwarfConstellationLFoot-constellation = Foot Constellation (Left)
|
||||||
|
|
||||||
|
# RFoot
|
||||||
|
|
||||||
|
marking-DwarfConstellationRFoot = Foot Constellation (Right)
|
||||||
|
marking-DwarfConstellationRFoot-constellation = Foot Constellation (Right)
|
||||||
|
|
||||||
|
# LHand
|
||||||
|
|
||||||
|
marking-DwarfConstellationLHand = Hand Constellation (Left)
|
||||||
|
marking-DwarfConstellationLHand-constellation = Hand Constellation (Left)
|
||||||
|
|
||||||
|
marking-DwarfMarkKangarooLHand = Mark of the Kangaroo (Left)
|
||||||
|
marking-DwarfMarkKangarooLHand-markkangaroo = Mark of the Kangaroo (Left)
|
||||||
|
|
||||||
|
# RHand
|
||||||
|
|
||||||
|
marking-DwarfConstellationRHand = Hand Constellation (Right)
|
||||||
|
marking-DwarfConstellationRHand-constellation = Hand Constellation (Right)
|
||||||
|
|
||||||
|
marking-DwarfMarkKangarooRHand = Mark of the Kangaroo (Right)
|
||||||
|
marking-DwarfMarkKangarooRHand-markkangaroo = Mark of the Kangaroo (Right)
|
||||||
|
|
||||||
|
# FacialHair
|
||||||
|
|
||||||
|
# Hair
|
||||||
|
|
||||||
|
# HeadSide
|
||||||
|
|
||||||
|
# HeadTop
|
||||||
|
|
||||||
|
# Tail
|
||||||
|
|
||||||
|
# RArmExtension
|
||||||
46
Resources/Locale/en-US/_Impstation/markings/human.ftl
Normal file
46
Resources/Locale/en-US/_Impstation/markings/human.ftl
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# Chest
|
||||||
|
|
||||||
|
# Head
|
||||||
|
|
||||||
|
# Snout
|
||||||
|
|
||||||
|
# Eyes
|
||||||
|
marking-HumanLEyeGlow = Glowing Eye (Left)
|
||||||
|
marking-HumanLEyeGlow-tattoo_eye_l = Glowing Eye (Left)
|
||||||
|
|
||||||
|
marking-HumanREyeGlow = Glowing Eye (Right)
|
||||||
|
marking-HumanREyeGlow-tattoo_eye_r = Glowing Eye (Right)
|
||||||
|
|
||||||
|
# RArm
|
||||||
|
|
||||||
|
# LArm
|
||||||
|
|
||||||
|
# RLeg
|
||||||
|
|
||||||
|
# LLeg
|
||||||
|
|
||||||
|
# UndergarmentBottom
|
||||||
|
|
||||||
|
# UndergarmentTop
|
||||||
|
|
||||||
|
# LFoot
|
||||||
|
|
||||||
|
# RFoot
|
||||||
|
|
||||||
|
# LHand
|
||||||
|
|
||||||
|
# RHand
|
||||||
|
|
||||||
|
# FacialHair
|
||||||
|
|
||||||
|
# Hair
|
||||||
|
|
||||||
|
# HeadSide
|
||||||
|
|
||||||
|
# HeadTop
|
||||||
|
|
||||||
|
marking-PrettyFly = Stinky Agent
|
||||||
|
|
||||||
|
# Tail
|
||||||
|
|
||||||
|
# RArmExtension
|
||||||
496
Resources/Locale/en-US/_Impstation/markings/humanoid.ftl
Normal file
496
Resources/Locale/en-US/_Impstation/markings/humanoid.ftl
Normal file
@@ -0,0 +1,496 @@
|
|||||||
|
# Chest
|
||||||
|
|
||||||
|
marking-BodyhairHumanFemale = Body Hair
|
||||||
|
marking-BodyhairHumanFemale-bodyhairfemale = Body Hair
|
||||||
|
|
||||||
|
marking-BodyhairHumanMale = Body Hair
|
||||||
|
marking-BodyhairHumanMale-bodyhairmale = Body Hair
|
||||||
|
|
||||||
|
marking-BodyhairHumanUnsexed = Body Hair
|
||||||
|
marking-BodyhairHumanUnsexed-bodyhairmale = Body Hair
|
||||||
|
|
||||||
|
marking-ChestBackstabbed = Backstabbed
|
||||||
|
marking-ChestBackstabbed-backstabbed = Backstabbed
|
||||||
|
|
||||||
|
marking-ChestCutHere = 'Cut Here' Tattoo
|
||||||
|
marking-ChestCutHere-cuthere = 'Cut Here' Tattoo
|
||||||
|
|
||||||
|
marking-ChestHeavyTattoos = Heavy Chest Tattoos
|
||||||
|
marking-ChestHeavyTattoos-heavy1 = Heavy Chest Tattoos (Upper)
|
||||||
|
marking-ChestHeavyTattoos-heavy2 = Heavy Chest Tattoos (Middle)
|
||||||
|
marking-ChestHeavyTattoos-heavy3 = Heavy Chest Tattoos (Lower)
|
||||||
|
|
||||||
|
marking-ChestNecklace = Necklace
|
||||||
|
marking-ChestNecklace-necklace = Necklace
|
||||||
|
|
||||||
|
marking-ChestTwistingLeft = Twisted Scar (Left)
|
||||||
|
marking-ChestTwistingLeft-twistingleft = Twisted Scar (Left)
|
||||||
|
|
||||||
|
marking-ChestTwistingRight = Twisted Scar (Right)
|
||||||
|
marking-ChestTwistingRight-twistingright = Twisted Scar (Right)
|
||||||
|
|
||||||
|
marking-HumanoidAbs = Muscles
|
||||||
|
marking-HumanoidAbs-muscular = Muscles
|
||||||
|
|
||||||
|
marking-ProstheticShoulderL = Prosthetic (Left Shoulder)
|
||||||
|
marking-ProstheticShoulderL-prostheticshoulderleft = Prosthetic
|
||||||
|
|
||||||
|
marking-ProstheticShoulderR = Prosthetic (Right Shoulder)
|
||||||
|
marking-ProstheticShoulderR-prostheticshoulderright = Prosthetic (Right Shoulder)
|
||||||
|
|
||||||
|
marking-TattooAnchor = Tattoo (Anchor)
|
||||||
|
marking-TattooAnchor-anchor = Tattoo
|
||||||
|
|
||||||
|
marking-TattooCode1 = Tattoo (Code QR Back Small)
|
||||||
|
marking-TattooCode1-code1 = Tattoo
|
||||||
|
|
||||||
|
marking-TattooCode2 = Tattoo (Code Bar Back)
|
||||||
|
marking-TattooCode2-code2 = Tattoo
|
||||||
|
|
||||||
|
marking-TattooCode3 = Tattoo (Code QR Back Big)
|
||||||
|
marking-TattooCode3-code3 = Tattoo
|
||||||
|
|
||||||
|
marking-TattooDragon = Tattoo (Dragon)
|
||||||
|
marking-TattooDragon-dragontattoo1 = Body
|
||||||
|
marking-TattooDragon-dragontattoo2 = Highlights
|
||||||
|
|
||||||
|
marking-TattooNanotrasenChest-nanotrasen = Chest Tattoo (Nanotrasen)
|
||||||
|
marking-TattooNanotrasenChest = Chest Tattoo (Nanotrasen)
|
||||||
|
|
||||||
|
marking-ChestStar = Star Scar
|
||||||
|
marking-ChestStar-star = Star Scar
|
||||||
|
|
||||||
|
marking-TorsoIncision = Torso Incision
|
||||||
|
marking-TorsoIncision-torso_incision = Torso Incision
|
||||||
|
|
||||||
|
marking-TattooVinesHumanoid = Tattoo (Vines)
|
||||||
|
marking-TattooVinesHumanoid-vines = Tattoo (Vines)
|
||||||
|
|
||||||
|
marking-VitiligoChestF = Vitiligo Spread
|
||||||
|
|
||||||
|
marking-VitiligoChestSpots = Vitiligo Spots
|
||||||
|
|
||||||
|
# Head
|
||||||
|
|
||||||
|
marking-EyebrowsBig = Eyebrows (Big)
|
||||||
|
marking-EyebrowsBig-eyebrowsthick = Eyebrows (Big)
|
||||||
|
|
||||||
|
marking-EyebrowsBigger = Eyebrows (Bigger)
|
||||||
|
marking-EyebrowsBigger-eyebrowsultra = Eyebrows (Bigger)
|
||||||
|
|
||||||
|
marking-EyebrowsUnibrow = Eyebrows (Unibrow)
|
||||||
|
marking-EyebrowsUnibrow-eyebrowsunibrow = Eyebrows (Unibrow)
|
||||||
|
|
||||||
|
marking-HeadHeavyTattoos = Heavy Neck Tattoos
|
||||||
|
marking-HeadHeavyTattoos-heavy1 = Heavy Neck Tattoos (Lower)
|
||||||
|
marking-HeadHeavyTattoos-heavy2 = Heavy Neck Tattoos (Upper)
|
||||||
|
|
||||||
|
marking-HeadTwisting = Twisted Scar
|
||||||
|
marking-HeadTwisting-twisting = Twisted Scar
|
||||||
|
|
||||||
|
marking-HeadTwistingFlipped = Twisted Scar, Flipped
|
||||||
|
marking-HeadTwisting-twistingflipped = Twisted Scar, Flipped
|
||||||
|
|
||||||
|
marking-HumanoidEyebags = Eyebags
|
||||||
|
marking-HumanoidEyebags-eyebags = Eyebags
|
||||||
|
|
||||||
|
marking-SmileScars = The Jonker
|
||||||
|
marking-SmileScars-smile = The Jonker
|
||||||
|
|
||||||
|
marking-VitiligoHeadJaw = Vitiligo (Jawline)
|
||||||
|
|
||||||
|
marking-VitiligoHeadL = Vitiligo (Left Eye)
|
||||||
|
|
||||||
|
marking-VitiligoHeadR = Vitiligo (Right Eye)
|
||||||
|
|
||||||
|
marking-Shadow = Gloomy
|
||||||
|
|
||||||
|
# Snout
|
||||||
|
|
||||||
|
marking-HeadSeptum = Septum Ring
|
||||||
|
marking-HeadSeptum-septum = Septum Ring
|
||||||
|
|
||||||
|
# Eyes
|
||||||
|
|
||||||
|
# RArm
|
||||||
|
|
||||||
|
marking-ArmDollJointsTattooRight = Doll Joints Arm Tattoo (Right)
|
||||||
|
marking-ArmDollJointsTattooRight-doll = Doll Joints Arm Tattoo (Right)
|
||||||
|
|
||||||
|
marking-ArmHeavyTattoosRight = Heavy Arm Tattoos (Right)
|
||||||
|
marking-ArmHeavyTattoosRight-heavy1 = Heavy Arm Tattoos (Upper)
|
||||||
|
marking-ArmHeavyTattoosRight-heavy2 = Heavy Arm Tattoos (Lower)
|
||||||
|
|
||||||
|
marking-ArmProstheticRight = Prosthetic (Right Arm)
|
||||||
|
marking-ArmProstheticRight-prosthetic = Prosthetic (Right Arm)
|
||||||
|
|
||||||
|
marking-ArmTwistingRight = Twisted Scar (Right Arm)
|
||||||
|
marking-ArmTwistingRight-twisting = Twisted Scar (Right Arm)
|
||||||
|
|
||||||
|
marking-TattooCode4 = Tattoo (Code QR Right Arm)
|
||||||
|
marking-TattooCode4-code4 = Tattoo
|
||||||
|
|
||||||
|
marking-TattooCode5 = Tattoo (Code Bar Right Arm)
|
||||||
|
marking-TattooCode5-code5 = Tattoo
|
||||||
|
|
||||||
|
marking-TattooHeartR = Tattoo (Heart Right Arm)
|
||||||
|
marking-TattooHeartR-heart = Tattoo
|
||||||
|
|
||||||
|
marking-VitiligoArmR = Vitiligo (Right Arm)
|
||||||
|
|
||||||
|
# LArm
|
||||||
|
|
||||||
|
marking-ArmDollJointsTattooLeft = Doll Joints Arm Tattoo (Left)
|
||||||
|
marking-ArmDollJointsTattooLeft-doll = Doll Joints Arm Tattoo (Left)
|
||||||
|
|
||||||
|
marking-ArmHeavyTattoosLeft = Heavy Arm Tattoos (Left)
|
||||||
|
marking-ArmHeavyTattoosLeft-heavy1 = Heavy Arm Tattoos (Upper)
|
||||||
|
marking-ArmHeavyTattoosLeft-heavy2 = Heavy Arm Tattoos (Lower)
|
||||||
|
|
||||||
|
marking-ArmProstheticLeft = Prosthetic (Left Arm)
|
||||||
|
marking-ArmProstheticLeft-prosthetic = Prosthetic (Left Arm)
|
||||||
|
|
||||||
|
marking-ArmTwistingLeft = Twisted Scar (Left Arm)
|
||||||
|
marking-ArmTwistingLeft-twisting = Twisted Scar (Left Arm)
|
||||||
|
|
||||||
|
marking-TattooHeartL = Tattoo (Heart Left Arm)
|
||||||
|
marking-TattooHeartL-heart = Tattoo
|
||||||
|
|
||||||
|
marking-VitiligoArmL = Vitiligo (Left Arm)
|
||||||
|
|
||||||
|
# RLeg
|
||||||
|
|
||||||
|
marking-LegDollJointsTattooRight = Doll Joints Leg Tattoo (Right)
|
||||||
|
marking-LegDollJointsTattooRight-doll = Doll Joints Leg Tattoo (Right)
|
||||||
|
|
||||||
|
marking-LegHeavyTattoosRight = Heavy Leg Tattoos (Right)
|
||||||
|
marking-LegHeavyTattoosRight-heavy1 = Heavy Leg Tattoos (Upper)
|
||||||
|
marking-LegHeavyTattoosRight-heavy2 = Heavy Leg Tattoos (Lower)
|
||||||
|
|
||||||
|
marking-LegProstheticRight = Prosthetic (Right Leg)
|
||||||
|
marking-LegProstheticRight-prosthetic = Prosthetic (Right Leg)
|
||||||
|
|
||||||
|
marking-LegTwistingRight = Twisted Scar (Right Leg)
|
||||||
|
marking-LegTwistingRight-twisting = Twisted Scar (Right Leg)
|
||||||
|
|
||||||
|
marking-VitiligoLegR = Vitiligo (Right)
|
||||||
|
|
||||||
|
# LLeg
|
||||||
|
|
||||||
|
marking-LegDollJointsTattooLeft = Doll Joints Leg Tattoo (Left)
|
||||||
|
marking-LegDollJointsTattooLeft-doll = Doll Joints Leg Tattoo (Left)
|
||||||
|
|
||||||
|
marking-LegHeavyTattoosLeft = Heavy Leg Tattoos (Left)
|
||||||
|
marking-LegHeavyTattoosLeft-heavy1 = Heavy Leg Tattoos (Upper)
|
||||||
|
marking-LegHeavyTattoosLeft-heavy2 = Heavy Leg Tattoos (Lower)
|
||||||
|
|
||||||
|
marking-LegProstheticLeft = Prosthetic (Left Leg)
|
||||||
|
marking-LegProstheticLeft-prosthetic = Prosthetic (Left Leg)
|
||||||
|
|
||||||
|
marking-LegTwistingLeft = Twisted Scar (Left Leg)
|
||||||
|
marking-LegTwistingLeft-twisting = Twisted Scar (Left Leg)
|
||||||
|
|
||||||
|
marking-VitiligoLegL = Vitiligo (Left)
|
||||||
|
|
||||||
|
# UndergarmentBottom
|
||||||
|
|
||||||
|
marking-UnderwearLowriders = Lowriders
|
||||||
|
marking-UnderwearLowriders-lowriders = Underwear
|
||||||
|
|
||||||
|
marking-UnderwearTanga = Tanga
|
||||||
|
marking-UnderwearTanga-tanga = Underwear
|
||||||
|
|
||||||
|
# UndergarmentTop
|
||||||
|
|
||||||
|
marking-UndergarmentTopBinderF = Binder
|
||||||
|
marking-UndergarmentTopBinderF-binderf = Binder
|
||||||
|
|
||||||
|
marking-UndergarmentTopBinderU = Binder
|
||||||
|
marking-UndergarmentTopBinderU-binder = Binder
|
||||||
|
|
||||||
|
marking-UndergarmentTopTanktopF = Tanktop
|
||||||
|
marking-UndergarmentTopTanktopF-tanktopf = Tanktop
|
||||||
|
|
||||||
|
marking-UndergarmentTopTanktopU = Tanktop
|
||||||
|
marking-UndergarmentTopTanktopU-tanktop = Tanktop
|
||||||
|
|
||||||
|
marking-UndershirtBraClassic = Bra
|
||||||
|
marking-UndershirtBraClassic-classic = Bra
|
||||||
|
|
||||||
|
marking-UndershirtBraSports = Bra (Sports)
|
||||||
|
marking-UndershirtBraSports-sports = Bra
|
||||||
|
|
||||||
|
marking-UndershirtBraSportsF = Bra (Sports)
|
||||||
|
marking-UndershirtBraSportsF-sportsf = Bra
|
||||||
|
|
||||||
|
marking-UndershirtBraSportsU = Bra (Sports)
|
||||||
|
marking-UndershirtBraSportsU-sports = Bra
|
||||||
|
|
||||||
|
marking-UndershirtBraStrapless = Bra (Strapless)
|
||||||
|
marking-UndershirtBraStrapless-strapless = Bra
|
||||||
|
|
||||||
|
marking-UndershirtBraStraplessF = Bra (Strapless)
|
||||||
|
marking-UndershirtBraStraplessF-straplessf = Bra
|
||||||
|
|
||||||
|
marking-UndershirtBraStraplessU = Bra (Strapless)
|
||||||
|
marking-UndershirtBraStraplessU-strapless = Bra
|
||||||
|
|
||||||
|
marking-UndershirtDefault = Undershirt
|
||||||
|
marking-UndershirtDefault-undershirt = Undershirt
|
||||||
|
|
||||||
|
marking-UndershirtDefaultF = Undershirt
|
||||||
|
marking-UndershirtDefaultF-undershirtf = Undershirt
|
||||||
|
|
||||||
|
marking-UndershirtDefaultU = Undershirt
|
||||||
|
marking-UndershirtDefaultU-undershirt = Undershirt
|
||||||
|
|
||||||
|
marking-UndershirtGrossSleeveless = Tanktop (Gross)
|
||||||
|
marking-UndershirtGrossSleeveless-grosssleeveless = Tanktop
|
||||||
|
|
||||||
|
marking-UndershirtGrossSleevelessF = Tanktop (Gross)
|
||||||
|
marking-UndershirtGrossSleevelessF-grosssleevelessf = Tanktop
|
||||||
|
|
||||||
|
marking-UndershirtGrossSleevelessU = Tanktop (Gross)
|
||||||
|
marking-UndershirtGrossSleevelessU-grosssleeveless = Tanktop
|
||||||
|
|
||||||
|
marking-UndershirtNanotrasen = Undershirt (Nanotrasen)
|
||||||
|
marking-UndershirtNanotrasen-nanotrasen = Undershirt
|
||||||
|
|
||||||
|
marking-UndershirtNanotrasenF = Undershirt (Nanotrasen)
|
||||||
|
marking-UndershirtNanotrasenF-nanotrasenf = Undershirt
|
||||||
|
|
||||||
|
marking-UndershirtNanotrasenU = Undershirt (Nanotrasen)
|
||||||
|
marking-UndershirtNanotrasenU-nanotrasen = Undershirt
|
||||||
|
|
||||||
|
marking-UndershirtRolled = Undershirt (Cropped)
|
||||||
|
marking-UndershirtRolled-rolledundershirt = Undershirt
|
||||||
|
|
||||||
|
marking-UndershirtRolledF = Undershirt (Cropped)
|
||||||
|
marking-UndershirtRolledF-rolledundershirtf = Undershirt
|
||||||
|
|
||||||
|
marking-UndershirtRolledU = Undershirt (Cropped)
|
||||||
|
marking-UndershirtRolledU-rolledundershirt = Undershirt
|
||||||
|
|
||||||
|
# LFoot
|
||||||
|
|
||||||
|
marking-FootDollJointsTattooLeft = Doll Joints Foot Tattoo (Left)
|
||||||
|
marking-FootDollJointsTattooLeft-doll = Doll Joints Foot Tattoo (Left)
|
||||||
|
|
||||||
|
marking-FootHeavyTattoosLeft = Heavy Foot Tattoos (Left)
|
||||||
|
marking-FootHeavyTattoosLeft-heavy1 = Heavy Foot Tattoos (Inner)
|
||||||
|
marking-FootHeavyTattoosLeft-heavy2 = Heavy Foot Tattoos (Outer)
|
||||||
|
|
||||||
|
marking-FootProstheticLeft-prosthetic = Prosthetic (Left Foot)
|
||||||
|
marking-FootProstheticLeft = Prosthetic (Left Foot)
|
||||||
|
|
||||||
|
# RFoot
|
||||||
|
|
||||||
|
marking-FootDollJointsTattooRight = Doll Joints Foot Tattoo (Right)
|
||||||
|
marking-FootDollJointsTattooRight-doll = Doll Joints Foot Tattoo (Right)
|
||||||
|
|
||||||
|
marking-FootHeavyTattoosRight = Heavy Foot Tattoos (Right)
|
||||||
|
marking-FootHeavyTattoosRight-heavy1 = Heavy Foot Tattoos (Inner)
|
||||||
|
marking-FootHeavyTattoosRight-heavy2 = Heavy Foot Tattoos (Outer)
|
||||||
|
|
||||||
|
marking-FootProstheticRight = Prosthetic (Right Foot)
|
||||||
|
marking-FootProstheticRight-prosthetic = Prosthetic (Right Foot)
|
||||||
|
|
||||||
|
# LHand
|
||||||
|
|
||||||
|
marking-HandBraceletLeft = Bracelet (Left)
|
||||||
|
marking-HandBraceletLeft-bracelet = Bracelet (Left)
|
||||||
|
|
||||||
|
marking-HandDollJointsTattooLeft = Doll Joints Hand Tattoo (Left)
|
||||||
|
marking-HandDollJointsTattooLeft-doll = Doll Joints Hand Tattoo (Left)
|
||||||
|
|
||||||
|
marking-HandHeavyTattoosLeft = Heavy Hand Tattoos (Left)
|
||||||
|
marking-HandHeavyTattoosLeft-heavy1 = Heavy Hand Tattoos (Outer)
|
||||||
|
marking-HandHeavyTattoosLeft-heavy2 = Heavy Hand Tattoos (Inner)
|
||||||
|
|
||||||
|
marking-HandProstheticLeft = Prosthetic (Left Hand)
|
||||||
|
marking-HandProstheticLeft-prosthetic = Prosthetic (Left Hand)
|
||||||
|
|
||||||
|
marking-HandRingsLeft = Rings (Left)
|
||||||
|
marking-HandRingsLeft-rings1 = Left Index Finger
|
||||||
|
marking-HandRingsLeft-rings2 = Left Ring Finger
|
||||||
|
|
||||||
|
marking-HandTwistingLeft = Twisted Scar (Left Hand)
|
||||||
|
marking-HandTwistingLeft-twisting = Twisted Scar (Left Hand)
|
||||||
|
|
||||||
|
marking-VitiligoHandL = Vitiligo (Left Hand)
|
||||||
|
|
||||||
|
# RHand
|
||||||
|
|
||||||
|
marking-HandBraceletRight = Bracelet (Right)
|
||||||
|
marking-HandBraceletRight-bracelet = Bracelet (Right)
|
||||||
|
|
||||||
|
marking-HandDollJointsTattooRight = Doll Joints Hand Tattoo (Right)
|
||||||
|
marking-HandDollJointsTattooRight-doll = Doll Joints Hand Tattoo (Right)
|
||||||
|
|
||||||
|
marking-HandHeavyTattoosRight = Heavy Hand Tattoos (Right)
|
||||||
|
marking-HandHeavyTattoosRight-heavy1 = Heavy Hand Tattoos (Outer)
|
||||||
|
marking-HandHeavyTattoosRight-heavy2 = Heavy Hand Tattoos (Inner)
|
||||||
|
|
||||||
|
marking-HandProstheticRight = Prosthetic (Right Hand)
|
||||||
|
marking-HandProstheticRight-prosthetic = Prosthetic (Right Hand)
|
||||||
|
|
||||||
|
marking-HandRingsRight = Rings (Right)
|
||||||
|
marking-HandRingsRight-rings1 = Right Index Finger
|
||||||
|
marking-HandRingsRight-rings2 = Right Ring Finger
|
||||||
|
|
||||||
|
marking-HandTwistingRight = Twisted Scar (Right Hand)
|
||||||
|
marking-HandTwistingRight-twisting = Twisted Scar (Right Hand)
|
||||||
|
|
||||||
|
marking-VitiligoHandR = Vitiligo (Right Hand)
|
||||||
|
|
||||||
|
# FacialHair
|
||||||
|
|
||||||
|
marking-FloralBeard = Beard (Floral)
|
||||||
|
|
||||||
|
# Hair
|
||||||
|
|
||||||
|
marking-BurqaSolid = Burqa
|
||||||
|
|
||||||
|
marking-HairFloralLong = Floral hair (Long)
|
||||||
|
|
||||||
|
marking-HairFloralMid = Floral hair (Medium)
|
||||||
|
|
||||||
|
marking-HijabFashionable = Hijab (Fashionable)
|
||||||
|
|
||||||
|
marking-HijabSimple = Hijab (Simple)
|
||||||
|
|
||||||
|
marking-HumanHairFrenchBraid = French Braid
|
||||||
|
|
||||||
|
marking-HumanHairGatheredlow = Gathered Low
|
||||||
|
|
||||||
|
marking-HumanHairHalfUpShort = Half-Up (Short)
|
||||||
|
|
||||||
|
marking-HumanHairHalfUpLong = Half-Up (Long)
|
||||||
|
|
||||||
|
marking-HumanHairHalfUpUndercut = Half-Up (Undercut)
|
||||||
|
|
||||||
|
marking-HumanHairLowpigtails = Low Pigtails
|
||||||
|
|
||||||
|
marking-HumanHairMidPartLong = Middle Part (Long)
|
||||||
|
|
||||||
|
marking-HumanHairMidPartLonger = Middle Part (Longer)
|
||||||
|
|
||||||
|
marking-HumanHairMullet = Mullet
|
||||||
|
|
||||||
|
marking-HumanHairMulletSideshave = Mullet (Sideshave)
|
||||||
|
|
||||||
|
marking-HumanHairSpikyPonytailLong = Ponytail (Spiky Long)
|
||||||
|
|
||||||
|
marking-HumanHairUndercutCurly = Undercut (Curly)
|
||||||
|
|
||||||
|
marking-HumanHairSideshaveCurly = Sideshave (Curly)
|
||||||
|
|
||||||
|
marking-MessyPonytail = Messy Ponytail
|
||||||
|
|
||||||
|
marking-Niqab = Niqab
|
||||||
|
|
||||||
|
marking-TichelFashionable = Tichel (Fashionable)
|
||||||
|
|
||||||
|
marking-TichelSimple = Tichel (Simple)
|
||||||
|
|
||||||
|
marking-HumanHairShaggy = Shaggy
|
||||||
|
|
||||||
|
marking-HumanHairShaggyLonger = Shaggy (Longer)
|
||||||
|
|
||||||
|
marking-HumanHairShaggyMessy = Shaggy (Messy)
|
||||||
|
|
||||||
|
marking-HumanHairSusie = Mean Girl (Bangs)
|
||||||
|
|
||||||
|
marking-HumanHairSusieNoBangs = Mean Girl
|
||||||
|
|
||||||
|
marking-HumanHairEyeBangLong = Eye Bang (Long)
|
||||||
|
|
||||||
|
marking-HumanHairEyeBangSideTail = Eye Bang (Side Tail)
|
||||||
|
|
||||||
|
marking-HumanHairOverEyes = Over Eyes
|
||||||
|
|
||||||
|
marking-HumanHairOverEyesTail = Over Eyes (Messy Floor-length)
|
||||||
|
|
||||||
|
marking-HumanHairFringeTail = Fringe (Ponytail)
|
||||||
|
|
||||||
|
marking-HumanHairFringeRat = Fringe (Low Ponytail)
|
||||||
|
|
||||||
|
marking-HumanHairFringeBraid = Fringe (Braid)
|
||||||
|
|
||||||
|
marking-HumanHairAsymBun = Asymmetrical Bun
|
||||||
|
|
||||||
|
marking-HumanHairIntakeShort = Intake (Short)
|
||||||
|
|
||||||
|
marking-HumanHairIntakeLong = Intake (Long)
|
||||||
|
|
||||||
|
marking-HumanHairLiberatorTied = Liberator (Tied)
|
||||||
|
|
||||||
|
marking-HumanHairLiberatorShort = Liberator (Short)
|
||||||
|
|
||||||
|
marking-HumanHairLiberatorLong = Liberator (Long)
|
||||||
|
|
||||||
|
marking-HumanHairDrillTail = Drill Ponytail
|
||||||
|
|
||||||
|
marking-HumanHairBraidMed = Braided (Medium)
|
||||||
|
|
||||||
|
marking-HumanHairLocsTied = Tied Locs
|
||||||
|
|
||||||
|
marking-HumanHairCurlyPerm = Curly Perm
|
||||||
|
|
||||||
|
marking-HumanHairPosterPerson = Poster Person
|
||||||
|
|
||||||
|
marking-HumanHairSmiler = Happy Smiler
|
||||||
|
|
||||||
|
marking-HumanHairWavyLong = Wavy (Long)
|
||||||
|
|
||||||
|
marking-HumanHairMiddlePartShort = Middle part (Short)
|
||||||
|
|
||||||
|
marking-HumanHairFadeHighlight = Fade Highlights
|
||||||
|
|
||||||
|
marking-HumanHairChonmage = Chonmage
|
||||||
|
|
||||||
|
marking-HumanHairBaldingLong = Balding (Long)
|
||||||
|
|
||||||
|
marking-HumanHairBaldingCurls = Balding Curls
|
||||||
|
|
||||||
|
marking-HumanHairFriar = Friar
|
||||||
|
|
||||||
|
marking-HumanHairAdoringFan = Adoring Fan
|
||||||
|
|
||||||
|
marking-HumanHairBabyHair = Baby Hair
|
||||||
|
|
||||||
|
marking-HumanHairGuyMullet = Blue Collar
|
||||||
|
|
||||||
|
marking-HumanHairGuyTied = Blue Collar (Tied)
|
||||||
|
|
||||||
|
marking-HumanHairMidPartPonytail = Foppish
|
||||||
|
|
||||||
|
marking-HumanHairMidBangs = Shy Guy (Brave)
|
||||||
|
|
||||||
|
marking-HumanHairMidBangsCovered = Shy Guy
|
||||||
|
|
||||||
|
marking-HumanHairSideshaveBun = Topknot
|
||||||
|
|
||||||
|
marking-HumanHairJed = Pleasant
|
||||||
|
|
||||||
|
marking-HumanHairJedPonytail = Pleasant (Tied)
|
||||||
|
|
||||||
|
# HeadSide
|
||||||
|
|
||||||
|
# HeadTop
|
||||||
|
|
||||||
|
marking-HeadEarrings = Earrings (Small)
|
||||||
|
marking-HeadEarrings-earrings1 = Right Earring
|
||||||
|
marking-HeadEarrings-earrings2 = Left Earring
|
||||||
|
|
||||||
|
marking-HeadEarringsDrop = Earrings (Drop)
|
||||||
|
marking-HeadEarringsDrop-earringsdrop1 = Right Earring
|
||||||
|
marking-HeadEarringsDrop-earringsdrop2 = Left Earring
|
||||||
|
|
||||||
|
marking-HeadEarringsWeights = Earrings (Weights)
|
||||||
|
marking-HeadEarringsWeights-earringsweights1 = Right Earring
|
||||||
|
marking-HeadEarringsWeights-earringsweights2 = Left Earring
|
||||||
|
|
||||||
|
# Tail
|
||||||
|
|
||||||
|
# RArmExtension
|
||||||
348
Resources/Locale/en-US/_Impstation/markings/moth.ftl
Normal file
348
Resources/Locale/en-US/_Impstation/markings/moth.ftl
Normal file
@@ -0,0 +1,348 @@
|
|||||||
|
# Chest
|
||||||
|
|
||||||
|
marking-ChestChimeraFemaleMoth = Moth Chest (Chimera)
|
||||||
|
marking-ChestChimeraFemaleMoth-chimeraf = Chimera
|
||||||
|
|
||||||
|
marking-ChestChimeraMaleMoth = Moth Chest (Chimera)
|
||||||
|
marking-ChestChimeraMaleMoth-chimeram = Chimera
|
||||||
|
|
||||||
|
marking-ChestTwistingLeftFemaleMoth = Scar (Twisted Scar Left)
|
||||||
|
marking-ChestTwistingLeftFemaleMoth-twistingleftf = Twisted Scar (Left)
|
||||||
|
|
||||||
|
marking-ChestTwistingLeftMaleMoth = Scar (Twisted Scar Left)
|
||||||
|
marking-ChestTwistingLeftMaleMoth-twistingleftm = Twisted Scar (Left)
|
||||||
|
|
||||||
|
marking-ChestTwistingRightFemaleMoth = Scar (Twisted Scar Right)
|
||||||
|
marking-ChestTwistingRightFemaleMoth-twistingrightf = Twisted Scar (Right)
|
||||||
|
|
||||||
|
marking-ChestTwistingRightMaleMoth = Scar (Twisted Scar Right)
|
||||||
|
marking-ChestTwistingRightMaleMoth-twistingrightm = Twisted Scar (Right)
|
||||||
|
|
||||||
|
marking-ChestStarMoth = Scar (Star)
|
||||||
|
marking-ChestStarMoth-star = Star Scar
|
||||||
|
|
||||||
|
marking-MothBodyClaw = Scar (Claws)
|
||||||
|
marking-MothBodyClaw-claw = Claw Scars
|
||||||
|
|
||||||
|
marking-MothChestGlow = Moth Bioluminescence (Chest)
|
||||||
|
marking-MothChestGlow-glow = Glow
|
||||||
|
|
||||||
|
marking-TorsoIncisionMoth = Scar (Incision)
|
||||||
|
marking-TorsoIncisionMoth-incision = Torso Incision
|
||||||
|
|
||||||
|
# Head
|
||||||
|
|
||||||
|
marking-BadmoltMoth = Scar (Bad Molt)
|
||||||
|
marking-BadmoltMoth-badmolt = Bad Molt
|
||||||
|
|
||||||
|
marking-EyebagsMoth = Eye (Eyebags)
|
||||||
|
marking-EyebagsMoth-eyebags = Eyebags
|
||||||
|
|
||||||
|
marking-HeadChimeraMoth = Moth Head (Chimera)
|
||||||
|
marking-HeadChimeraMoth-chimera = Chimera
|
||||||
|
|
||||||
|
marking-HeadTwistingMoth = Scar (Twisted)
|
||||||
|
marking-HeadTwistingMoth-twisting = Twisted Scar
|
||||||
|
|
||||||
|
marking-MothBurnLeft = Burn Scar (Left)
|
||||||
|
marking-MothBurnLeft-burnleft = Burn Scar (Left)
|
||||||
|
|
||||||
|
marking-MothBurnRight = Burn Scar (Right)
|
||||||
|
marking-MothBurnRight-burnright = Burn Scar (Right)
|
||||||
|
|
||||||
|
marking-MothFaceClaw = Claw Scars (Face)
|
||||||
|
marking-MothFaceClaw-claw = Claw Scars (Face)
|
||||||
|
|
||||||
|
marking-MothHeadGlow = Moth Bioluminescence (Head)
|
||||||
|
marking-MothHeadGlow-glow = Glow
|
||||||
|
|
||||||
|
marking-MothSlashLeft = Scar (Claw Left)
|
||||||
|
marking-MothSlashLeft-slashleft = Claw Scars (Left)
|
||||||
|
|
||||||
|
marking-MothSlashRight = Scar (Claw Right)
|
||||||
|
marking-MothSlashRight-slashright = Claw Scars (Right)
|
||||||
|
|
||||||
|
# Snout
|
||||||
|
|
||||||
|
marking-MouthpartsFulgoridae = Mouthparts (Fulgoridae)
|
||||||
|
marking-MouthpartsFulgoridaeUpturned = Mouthparts (Fulgoridae Upturned)
|
||||||
|
marking-MouthpartsHymenoptera = Mouthparts (Hymenoptera)
|
||||||
|
marking-MouthpartsHymenopteraLarge = Mouthparts (Hymenoptera Large)
|
||||||
|
marking-MouthpartsProboscisDownturned = Mouthparts (Proboscis Downturned)
|
||||||
|
marking-MouthpartsProboscisDownturned-proboscisdownturned = Mouthparts (Proboscis Downturned)
|
||||||
|
marking-MouthpartsProboscisUpturned = Mouthparts (Proboscis Upturned)
|
||||||
|
marking-MouthpartsProboscisUpturned-proboscisupturned = Mouthparts (Proboscis Upturned)
|
||||||
|
marking-MouthpartsSchistocerca = Mouthparts (Schistocerca)
|
||||||
|
|
||||||
|
# Eyes
|
||||||
|
|
||||||
|
marking-HeterochromiaMoth = Eyes (Heterophobia)
|
||||||
|
marking-HeterochromiaMoth-heterochromia = Heterophobia
|
||||||
|
|
||||||
|
marking-MothBiggerEyes = Eyes (Large)
|
||||||
|
marking-MothBiggerEyes-bigger = Bigger Eyes
|
||||||
|
|
||||||
|
# RArm
|
||||||
|
|
||||||
|
marking-ProstheticArmRightMoth = Prosthetic (Right Arm)
|
||||||
|
marking-ProstheticArmRightMoth-prosthetic = Prosthetic (Right Arm)
|
||||||
|
|
||||||
|
marking-TwistingArmRightMoth = Scar (Twisted Right Arm)
|
||||||
|
marking-TwistingArmRightMoth-twisting = Twisted Scar (Right)
|
||||||
|
|
||||||
|
# LArm
|
||||||
|
|
||||||
|
marking-ChimeraArmLeftMoth = Moth Left Arm (Chimera)
|
||||||
|
marking-ChimeraArmLeftMoth-chimera = Chimera (Arm)
|
||||||
|
|
||||||
|
marking-ProstheticArmLeftMoth = Prosthetic (Left Arm)
|
||||||
|
marking-ProstheticArmLeftMoth-prosthetic = Prosthetic (Left Arm)
|
||||||
|
|
||||||
|
marking-TwistingArmLeftMoth = Scar (Twisted Left Arm)
|
||||||
|
marking-TwistingArmLeftMoth-twisting = Twisted Scar (Left Arm)
|
||||||
|
|
||||||
|
# RLeg
|
||||||
|
|
||||||
|
marking-LegProstheticRightMoth = Prosthetic (Right Leg)
|
||||||
|
marking-LegProstheticRightMoth-prosthetic = Prosthetic (Right Leg)
|
||||||
|
|
||||||
|
marking-LegTwistingRightMoth = Scar (Twisted Right Leg)
|
||||||
|
marking-LegTwistingRightMoth-twisting = Twisted Scar (Right)
|
||||||
|
|
||||||
|
# LLeg
|
||||||
|
|
||||||
|
marking-LegChimeraLeftMoth = Moth left Leg (Chimera)
|
||||||
|
marking-LegChimeraLeftMoth-chimera = Chimera (Leg)
|
||||||
|
|
||||||
|
marking-LegProstheticLeftMoth = Prosthetic (Left Leg)
|
||||||
|
marking-LegProstheticLeftMoth-prosthetic = Prosthetic (Left Leg)
|
||||||
|
|
||||||
|
marking-LegTwistingLeftMoth = Scar (Twisted Left Leg)
|
||||||
|
marking-LegTwistingLeftMoth-twisting = Twisted Scar (Left)
|
||||||
|
|
||||||
|
# UndergarmentBottom
|
||||||
|
|
||||||
|
# UndergarmentTop
|
||||||
|
|
||||||
|
# LFoot
|
||||||
|
|
||||||
|
marking-FootChimeraLeftMoth = Moth Left Foot (Chimera)
|
||||||
|
marking-FootChimeraLeftMoth-chimera = Chimera (Foot)
|
||||||
|
|
||||||
|
marking-FootProstheticLeftMoth = Prosthetic (Left Foot)
|
||||||
|
marking-FootProstheticLeftMoth-prosthetic = Prosthetic (Left Foot)
|
||||||
|
|
||||||
|
# RFoot
|
||||||
|
|
||||||
|
marking-FootProstheticRightMoth = Prosthetic (Right Foot)
|
||||||
|
marking-FootProstheticRightMoth-prosthetic = Prosthetic (Right Foot)
|
||||||
|
|
||||||
|
# LHand
|
||||||
|
|
||||||
|
marking-HandChimeraLeftMoth = Moth Left Hand (Chimera)
|
||||||
|
marking-HandChimeraLeftMoth-chimera = Chimera (Hand)
|
||||||
|
|
||||||
|
marking-HandProstheticLeftMoth = Prosthetic (Left Hand)
|
||||||
|
marking-HandProstheticLeftMoth-prosthetic = Prosthetic (Left Hand)
|
||||||
|
|
||||||
|
marking-HandTwistingLeftMoth = Scar (Twisted Left Hand)
|
||||||
|
marking-HandTwistingLeftMoth-twisting = Twisted Scar (Left Hand)
|
||||||
|
|
||||||
|
# RHand
|
||||||
|
|
||||||
|
marking-HandProstheticRightMoth = Prosthetic (Right Hand)
|
||||||
|
marking-HandProstheticRightMoth-prosthetic = Prosthetic Hand (Right)
|
||||||
|
|
||||||
|
marking-HandTwistingRightMoth = Scar (Twisted Right Hand)
|
||||||
|
marking-HandTwistingRightMoth-twisting = Twisted Scar (Right Hand)
|
||||||
|
|
||||||
|
# FacialHair
|
||||||
|
|
||||||
|
# Hair
|
||||||
|
|
||||||
|
# HeadSide
|
||||||
|
|
||||||
|
marking-PlateBlunt = Head (Blunt)
|
||||||
|
marking-PlateHeart = Head (Heart)
|
||||||
|
marking-PlateDaisy = Head (Daisy)
|
||||||
|
marking-PlateHorn = Head (Horned)
|
||||||
|
marking-PlateSmallSpike = Head (Spike)
|
||||||
|
|
||||||
|
# HeadTop
|
||||||
|
|
||||||
|
marking-MothBeetleHorn1 = Beetle Horn (Pronged)
|
||||||
|
marking-MothBeetleHorn1-beetlehorn1 = Beetle Horn (Pronged)
|
||||||
|
|
||||||
|
marking-MothBeetleHorn2 = Beetle Horn (Lance)
|
||||||
|
marking-MothBeetleHorn2-beetlehorn2 = Beetle Horn (Lance)
|
||||||
|
|
||||||
|
marking-MothGlowAntenna = Antennae (Firefly)
|
||||||
|
marking-MothGlowAntenna-glowantenna = Antennae
|
||||||
|
|
||||||
|
marking-AntennaCockroach = Antennae (Cockroach)
|
||||||
|
marking-AntennaCockroach-cockroach = Antennae
|
||||||
|
marking-AntennaHeart = Antennae (Heartbrush)
|
||||||
|
marking-AntennaHeart-heart1 = Antennae
|
||||||
|
marking-AntennaHeart-heart2 = Heart
|
||||||
|
marking-AntennaFly = Antennae (Fly)
|
||||||
|
marking-AntennaFly-fly = Antennae
|
||||||
|
marking-AntennaShort = Antennae (Locust)
|
||||||
|
marking-AntennaShort-nub = Antennae
|
||||||
|
|
||||||
|
# Tail
|
||||||
|
|
||||||
|
marking-LunaWings = Wings (Luna Moth)
|
||||||
|
marking-LunaWings-luna_neck = Neck
|
||||||
|
marking-LunaWings-luna_primary_front = Wings
|
||||||
|
marking-LunaWings-luna_secondary_front = Spots
|
||||||
|
|
||||||
|
marking-MothBee = Wings (Bumblebee)
|
||||||
|
marking-MothBee-bee_neck = Neck
|
||||||
|
marking-MothBee-bee_primary_front = Wings
|
||||||
|
marking-MothBee-bee_secondary_front = Outer stripes
|
||||||
|
marking-MothBee-bee_tertiary_front = Inner stripe
|
||||||
|
|
||||||
|
marking-MothBeetleTail = Wings (Junebug)
|
||||||
|
marking-MothBeetleTail-beetle_neck = Neck
|
||||||
|
marking-MothBeetleTail-beetle_primary_front = Outline
|
||||||
|
marking-MothBeetleTail-beetle_secondary_front = Wings
|
||||||
|
marking-MothBeetleTail-beetle_tertiary_behind = Inner wings
|
||||||
|
|
||||||
|
marking-MothFirefly = Wings (Firefly Underlay)
|
||||||
|
marking-MothFirefly-firefly_neck = Neck
|
||||||
|
marking-MothFirefly-firefly_primary_front = Firefly Wings
|
||||||
|
|
||||||
|
marking-MothFireflyOverlay = Firefly (Overlay)
|
||||||
|
marking-MothFireflyOverlay-firefly_secondary_front = Firefly (Overlay)
|
||||||
|
|
||||||
|
marking-MothGlasswing = Wings (Glasswing)
|
||||||
|
marking-MothGlasswing-glasswing_neck = Neck
|
||||||
|
marking-MothGlasswing-glasswing_primary_front = Inner
|
||||||
|
marking-MothGlasswing-glasswing_secondary_front = Outer
|
||||||
|
marking-MothGlasswing-glasswing_tertiary_front = Stripe
|
||||||
|
|
||||||
|
marking-MothRhinoBeetle = Whings (Rhino Beetle)
|
||||||
|
marking-MothRhinoBeetle-rhinobeetle_neck = Neck
|
||||||
|
marking-MothRhinoBeetle-rhinobeetle_primary_front = Outline
|
||||||
|
marking-MothRhinoBeetle-rhinobeetle_secondary_front = Wings
|
||||||
|
|
||||||
|
marking-MothSnoth = Wings (Snoth)
|
||||||
|
marking-MothSnoth-snoth_neck = Neck
|
||||||
|
marking-MothSnoth-snoth_primary_front = Wings
|
||||||
|
marking-MothSnoth-snoth_secondary_front = Shell
|
||||||
|
|
||||||
|
marking-MothTrueButterfly = Wings (Rainbow)
|
||||||
|
marking-MothTrueButterfly-truebutterfly_neck = Neck
|
||||||
|
marking-MothTrueButterfly-truebutterfly_primary_front = Wings
|
||||||
|
marking-MothTrueButterfly-truebutterfly_secondary_front = Stripes
|
||||||
|
marking-MothTrueButterfly-truebutterfly_tertiary_front = Dots
|
||||||
|
|
||||||
|
marking-WingsBackstabbed = Wings (Backstabbed)
|
||||||
|
marking-WingsBackstabbed-backstabbed_neck = Neck
|
||||||
|
marking-WingsBackstabbed-backstabbed_primary_front = Wings
|
||||||
|
|
||||||
|
marking-WingsFly = Wings (Fly)
|
||||||
|
marking-WingsFly-fly_neck = Neck
|
||||||
|
marking-WingsFly-fly_primary_front = Wings
|
||||||
|
marking-WingsFly-fly_secondary_front = Tail
|
||||||
|
|
||||||
|
marking-WingsDragonfly = Wings (Dragonfly)
|
||||||
|
marking-WingsDragonfly-dragonfly_neck = Neck
|
||||||
|
marking-WingsDragonfly-dragonfly_primary_front = Wings
|
||||||
|
marking-WingsDragonfly-dragonfly_secondary_front = Tail
|
||||||
|
|
||||||
|
marking-WingsLanternfly = Wings (Lanternfly)
|
||||||
|
marking-WingsLanternfly-lanternfly_neck = Neck
|
||||||
|
marking-WingsLanternfly-lanternfly_primary_front = Wings
|
||||||
|
|
||||||
|
marking-WingsPyrausta = Wings (Pyrausta)
|
||||||
|
marking-WingsPyrausta-pyr_neck = Neck
|
||||||
|
marking-WingsPyrausta-pyr_wing_front = Wings
|
||||||
|
marking-WingsPyrausta-pyr_inner_front = Inner wing
|
||||||
|
marking-WingsPyrausta-pyr_stripes_front = Stripes
|
||||||
|
|
||||||
|
# Tail, upstream variations
|
||||||
|
|
||||||
|
marking-MothWingsDefault-default_neck = Neck
|
||||||
|
marking-MothWingsDefault-default_primary_front = Wing
|
||||||
|
marking-MothWingsDefault-default_secondary_front = Spots
|
||||||
|
|
||||||
|
marking-MothWingsCharred-charred_neck = Neck
|
||||||
|
marking-MothWingsCharred-charred_primary_front = Wing
|
||||||
|
|
||||||
|
marking-MothWingsDbushy-dbushy_neck = Neck
|
||||||
|
marking-MothWingsDbushy-dbushy_primary_front = Primary
|
||||||
|
marking-MothWingsDbushy-dbushy_secondary_front = Secondary
|
||||||
|
|
||||||
|
marking-MothWingsDeathhead-deathhead_neck = Neck
|
||||||
|
marking-MothWingsDeathhead-deathhead_primary_front = Primary
|
||||||
|
marking-MothWingsDeathhead-deathhead_secondary_front = Secondary
|
||||||
|
|
||||||
|
marking-MothWingsFan-fan_neck = Neck
|
||||||
|
marking-MothWingsFan-fan_primary_front = Wing
|
||||||
|
marking-MothWingsFan-fan_secondary_front = Stripes
|
||||||
|
|
||||||
|
marking-MothWingsDfan-dfan_neck = Neck
|
||||||
|
marking-MothWingsDfan-dfan_primary_front = Wing
|
||||||
|
marking-MothWingsDfan-dfan_secondary_front = Stripes
|
||||||
|
|
||||||
|
marking-MothWingsFeathery-feathery_neck = Neck
|
||||||
|
marking-MothWingsFeathery-feathery_primary_front = Wing
|
||||||
|
|
||||||
|
marking-MothWingsFirewatch-firewatch_neck = Neck
|
||||||
|
marking-MothWingsFirewatch-firewatch_primary_front = Primary
|
||||||
|
marking-MothWingsFirewatch-firewatch_secondary_front = Secondary
|
||||||
|
|
||||||
|
marking-MothWingsGothic-gothic_neck = Neck
|
||||||
|
marking-MothWingsGothic-gothic_primary_front = Wing
|
||||||
|
marking-MothWingsGothic-gothic_secondary_front = Secondary
|
||||||
|
|
||||||
|
marking-MothWingsJungle-jungle_neck = Neck
|
||||||
|
marking-MothWingsJungle-jungle_primary_front = Wing
|
||||||
|
|
||||||
|
marking-MothWingsLadybug-ladybug_neck = Neck
|
||||||
|
marking-MothWingsLadybug-ladybug_primary_front = Wing
|
||||||
|
marking-MothWingsLadybug-ladybug_secondary_front = Spots
|
||||||
|
|
||||||
|
marking-MothWingsMaple-maple_neck = Neck
|
||||||
|
marking-MothWingsMaple-maple_primary_front = Primary
|
||||||
|
marking-MothWingsMaple-maple_secondary_front = Secondary
|
||||||
|
|
||||||
|
marking-MothWingsMoffra-moffra_neck = Neck
|
||||||
|
marking-MothWingsMoffra-moffra_primary_front = Primary
|
||||||
|
marking-MothWingsMoffra-moffra_secondary_front = Secondary
|
||||||
|
|
||||||
|
marking-MothWingsOakworm-oakworm_neck = Neck
|
||||||
|
marking-MothWingsOakworm-oakworm_primary_front = Wing
|
||||||
|
|
||||||
|
marking-MothWingsPlasmafire-plasmafire_neck = Neck
|
||||||
|
marking-MothWingsPlasmafire-plasmafire_primary_front = Primary
|
||||||
|
marking-MothWingsPlasmafire-plasmafire_secondary_front = Secondary
|
||||||
|
|
||||||
|
marking-MothWingsPointy-pointy_neck = Neck
|
||||||
|
marking-MothWingsPointy-pointy_primary_front = Wing
|
||||||
|
|
||||||
|
marking-MothWingsRoyal-royal_neck = Neck
|
||||||
|
marking-MothWingsRoyal-royal_primary_front = Primary
|
||||||
|
marking-MothWingsRoyal-royal_secondary_front = Secondary
|
||||||
|
|
||||||
|
marking-MothWingsStellar-stellar_neck = Neck
|
||||||
|
marking-MothWingsStellar-stellar_primary_front = Wing
|
||||||
|
|
||||||
|
marking-MothWingsStriped-striped_neck = Neck
|
||||||
|
marking-MothWingsStriped-striped_primary_front = Wing
|
||||||
|
|
||||||
|
marking-MothWingsSwirly-swirly_neck = Neck
|
||||||
|
marking-MothWingsSwirly-swirly_primary_front = Wing
|
||||||
|
|
||||||
|
marking-MothWingsWhitefly-whitefly_neck = Neck
|
||||||
|
marking-MothWingsWhitefly-whitefly_primary_front = Wing
|
||||||
|
|
||||||
|
marking-MothWingsWitchwing-witchwing_neck = Neck
|
||||||
|
marking-MothWingsWitchwing-witchwing_primary_front = Wing
|
||||||
|
|
||||||
|
marking-MothWingsUnderwing-underwing_neck = Neck
|
||||||
|
marking-MothWingsUnderwing-underwing_primary_front = Primary
|
||||||
|
marking-MothWingsUnderwing-underwing_secondary_front = Secondary
|
||||||
|
|
||||||
|
# RArmExtension
|
||||||
134
Resources/Locale/en-US/_Impstation/markings/reptilian.ftl
Normal file
134
Resources/Locale/en-US/_Impstation/markings/reptilian.ftl
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
# Chest
|
||||||
|
|
||||||
|
marking-BadMoltChest = Scar (Bad Molt)
|
||||||
|
marking-BadMoltChest-badmolt = Scar (Bad Molt)
|
||||||
|
|
||||||
|
# Head
|
||||||
|
|
||||||
|
marking-BadMoltHead = Scar (Bad Molt)
|
||||||
|
marking-BadMoltHead-badmolt = Scar (Bad Molt)
|
||||||
|
|
||||||
|
marking-ScarSlash = Scar (Slash)
|
||||||
|
marking-ScarSlash-snoutscar = Scar (Slash)
|
||||||
|
|
||||||
|
marking-ScarTalons = Scar (Talonmark)
|
||||||
|
marking-ScarTalons-talonscar = Scar (Talonmark)
|
||||||
|
|
||||||
|
# Snout
|
||||||
|
|
||||||
|
marking-Fangs = Lizard Fangs
|
||||||
|
marking-Fangs-Fangs = Fangs
|
||||||
|
|
||||||
|
marking-LizardBeard = Lizard Beard
|
||||||
|
marking-LizardBeard-beard = Beard
|
||||||
|
|
||||||
|
marking-LizardDroopySnout = Lizard Snout (Droopy)
|
||||||
|
marking-LizardDroopySnout-droopy = Snout
|
||||||
|
|
||||||
|
marking-LizardSnoutpiercings = Piercings
|
||||||
|
marking-LizardSnoutpiercings-piercings1 = Piercings
|
||||||
|
|
||||||
|
marking-LizardSnoutTall = Lizard Snout (Tall)
|
||||||
|
marking-LizardSnoutTall-tall = Snout
|
||||||
|
|
||||||
|
marking-LizardUpperSnout = Lizard Snout (High Nostrils)
|
||||||
|
marking-LizardUpperSnout-upper = Snout
|
||||||
|
|
||||||
|
# Eyes
|
||||||
|
|
||||||
|
# RArm
|
||||||
|
|
||||||
|
marking-BadMoltRArm = Scar (Bad Molt R)
|
||||||
|
marking-BadMoltRArm-badmolt = Scar (Bad Molt R)
|
||||||
|
|
||||||
|
# LArm
|
||||||
|
|
||||||
|
marking-BadMoltLArm = Scar (Bad Molt L)
|
||||||
|
marking-BadMoltLArm-badmolt = Scar (Bad Molt L)
|
||||||
|
|
||||||
|
# RLeg
|
||||||
|
|
||||||
|
# LLeg
|
||||||
|
|
||||||
|
# UndergarmentBottom
|
||||||
|
|
||||||
|
marking-UnderwearLowridersR = Lowriders
|
||||||
|
marking-UnderwearLowridersR-lowriders = Underwear
|
||||||
|
|
||||||
|
marking-UnderwearTangaR = Tanga
|
||||||
|
marking-UnderwearTangaR-tanga = Underwear
|
||||||
|
|
||||||
|
# UndergarmentTop
|
||||||
|
|
||||||
|
# LFoot
|
||||||
|
|
||||||
|
# RFoot
|
||||||
|
|
||||||
|
# LHand
|
||||||
|
|
||||||
|
# RHand
|
||||||
|
|
||||||
|
# FacialHair
|
||||||
|
|
||||||
|
# Hair
|
||||||
|
|
||||||
|
# HeadSide
|
||||||
|
|
||||||
|
marking-BurqaSolidLizard = Burqa
|
||||||
|
marking-BurqaSolidLizard-burqasolidlizard = Burqa
|
||||||
|
|
||||||
|
marking-HijabFashionableLizard = Hijab (Fashionable)
|
||||||
|
marking-HijabFashionableLizard-hijabchiclizard = Hijab (Fashionable)
|
||||||
|
|
||||||
|
marking-HijabSimpleLizard = Hijab (Simple)
|
||||||
|
marking-HijabSimpleLizard-hijabsimplelizard = Hijab (Simple)
|
||||||
|
|
||||||
|
marking-LizardKoboldEarsMid = Lizard Ears (Kobold Soft)
|
||||||
|
marking-LizardKoboldEarsMid-koboldearsmid = Ears
|
||||||
|
|
||||||
|
marking-LizardKoboldEarsTall = Lizard Ears (Kobold Stiff)
|
||||||
|
marking-LizardKoboldEarsTall-koboldearstall = Ears
|
||||||
|
|
||||||
|
marking-NiqabLizard = Niqab
|
||||||
|
marking-NiqabLizard-niqablizard = Niqab
|
||||||
|
|
||||||
|
marking-TichelSimpleLizard = Tichel (Simple)
|
||||||
|
marking-TichelSimpleLizard-tichelsimplelizard = Tichel (Simple)
|
||||||
|
|
||||||
|
marking-TichelFashionableLizard = Tichel (Fashionable)
|
||||||
|
marking-TichelFashionableLizard-tichelfashionablelizard = Tichel (Fashionable)
|
||||||
|
|
||||||
|
# HeadTop
|
||||||
|
|
||||||
|
marking-LizardHeadFlat = Flat Head
|
||||||
|
marking-LizardHeadFlat-flat = Flat Head
|
||||||
|
|
||||||
|
marking-LizardFrill = Head Frill
|
||||||
|
marking-LizardFrill-frill = Head Frill
|
||||||
|
|
||||||
|
marking-LizardHornsKoboldEarspiercings = Lizard Ears (Kobold, Pierced)
|
||||||
|
marking-LizardHornsKoboldEarspiercings-koboldears = Ears
|
||||||
|
marking-LizardHornsKoboldEarspiercings-kobold_earspiercings = Piercings
|
||||||
|
|
||||||
|
marking-LizardHornsNubby-nubby = Lizard Horns (Nubby)
|
||||||
|
marking-LizardHornsNubby = Lizard Horns (Nubby)
|
||||||
|
|
||||||
|
marking-LizardLittleHorns = Lizard Horns (Small)
|
||||||
|
marking-LizardLittleHorns-small = Horns
|
||||||
|
|
||||||
|
|
||||||
|
# Tail
|
||||||
|
|
||||||
|
marking-TailDropped = Dropped Tail
|
||||||
|
marking-TailDropped-dropped = Dropped Tail
|
||||||
|
|
||||||
|
marking-TailGecko = Gecko Tail
|
||||||
|
marking-TailGecko-gecko1 = Gecko Tail
|
||||||
|
marking-TailGecko-gecko2 = Spots
|
||||||
|
|
||||||
|
marking-TailSnailLizard = Snail Shell
|
||||||
|
marking-TailSnailLizard-snizard1 = Shell
|
||||||
|
marking-TailSnailLizard-snizard2 = Tail
|
||||||
|
marking-TailSnailLizard-snizard3 = Undertail
|
||||||
|
|
||||||
|
# RArmExtension
|
||||||
120
Resources/Locale/en-US/_Impstation/markings/slimeperson.ftl
Normal file
120
Resources/Locale/en-US/_Impstation/markings/slimeperson.ftl
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
# Chest
|
||||||
|
|
||||||
|
marking-bubble = Bubbles
|
||||||
|
marking-bubble-bubble = Bubbles
|
||||||
|
|
||||||
|
marking-fishbowl = Fishbowl
|
||||||
|
marking-fishbowl-fishbowl1 = Fish
|
||||||
|
marking-fishbowl-fishbowl2 = Fish bubbles
|
||||||
|
|
||||||
|
marking-SlimeBonechest = Floating Ribcage
|
||||||
|
marking-SlimeBonechest-bone = Floating Ribcage
|
||||||
|
|
||||||
|
marking-SlimeCore = Core
|
||||||
|
marking-SlimeCore-core = Core
|
||||||
|
|
||||||
|
marking-SlimeCoreGlowing = Core (Glowing)
|
||||||
|
marking-SlimeCoreGlowing-core = Core (Glowing)
|
||||||
|
|
||||||
|
marking-SlimeLungs = Lungs
|
||||||
|
marking-SlimeLungs-lungs = Lungs
|
||||||
|
|
||||||
|
# Head
|
||||||
|
|
||||||
|
marking-FadingStars = Fading Starlight
|
||||||
|
marking-FadingStars-fadingstars1 = Brightest
|
||||||
|
marking-FadingStars-fadingstars2 = Middling
|
||||||
|
marking-FadingStars-fadingstars3 = Darkest
|
||||||
|
|
||||||
|
marking-fizz = Fizz
|
||||||
|
marking-fizz-fizz = Fizz
|
||||||
|
|
||||||
|
marking-SlimeBonehead = Floating Skull
|
||||||
|
marking-SlimeBonehead-bone = Floating Skull
|
||||||
|
|
||||||
|
marking-SlimeNose = Nose (Profile)
|
||||||
|
marking-SlimeNose-nose = Nose (Profile)
|
||||||
|
|
||||||
|
marking-SlimeMouth = Mouth
|
||||||
|
marking-SlimeMouth-mouth = Mouth
|
||||||
|
|
||||||
|
marking-SlimeBrain = Brain
|
||||||
|
marking-SlimeBrain-brain = Brain
|
||||||
|
|
||||||
|
# Snout
|
||||||
|
|
||||||
|
# Eyes
|
||||||
|
|
||||||
|
marking-SlimeEyesDefault = Eyes
|
||||||
|
marking-SlimeEyesDefault-eyes = Eyes (Default)
|
||||||
|
|
||||||
|
marking-SlimeEyeglow = Glowing Eyes
|
||||||
|
marking-SlimeEyeglow-glow = Glowing Eyes
|
||||||
|
|
||||||
|
marking-SlimeEyesDroopy = Droopy Eyes
|
||||||
|
marking-SlimeEyesDroopy-droopy = Droopy Eyes
|
||||||
|
|
||||||
|
marking-SlimeEyesDroopyGlowing = Droopy Glowing Eyes
|
||||||
|
marking-SlimeEyesDroopyGlowing-droopyglow = Droopy Glowing Eyes
|
||||||
|
|
||||||
|
marking-SlimeEyesCyclops = Cyclops Eye
|
||||||
|
marking-SlimeEyesCyclops-cyclops = Cyclops Eye
|
||||||
|
|
||||||
|
marking-SlimeEyesCyclopsGlowing = Cyclops Glowing Eye
|
||||||
|
marking-SlimeEyesCyclopsGlowing-cyclopsglow = Cyclops Glowing Eye
|
||||||
|
|
||||||
|
# RArm
|
||||||
|
|
||||||
|
marking-SlimeBonearmright = Floating Bones (Right Arm)
|
||||||
|
marking-SlimeBonearmright-bone = Floating Bones (Right Arm)
|
||||||
|
|
||||||
|
# LArm
|
||||||
|
|
||||||
|
marking-SlimeBonearmleft = Floating Bones (Left Arm)
|
||||||
|
marking-SlimeBonearmleft-bone = Floating Bones (Left Arm)
|
||||||
|
|
||||||
|
# RLeg
|
||||||
|
|
||||||
|
marking-SlimeBonelegright = Floating Bones (Right Leg)
|
||||||
|
marking-SlimeBonelegright-bone = Floating Bones (Right Leg)
|
||||||
|
|
||||||
|
# LLeg
|
||||||
|
|
||||||
|
marking-SlimeBonelegleft = Floating Bones (Left Leg)
|
||||||
|
marking-SlimeBonelegleft-bone = Floating Bones (Left Leg)
|
||||||
|
|
||||||
|
# UndergarmentBottom
|
||||||
|
|
||||||
|
# UndergarmentTop
|
||||||
|
|
||||||
|
# LFoot
|
||||||
|
|
||||||
|
marking-SlimeBonefootleft = Floating Bones (Left Foot)
|
||||||
|
marking-SlimeBonefootleft-bone = Floating Bones (Left Foot)
|
||||||
|
|
||||||
|
# RFoot
|
||||||
|
|
||||||
|
marking-SlimeBonefootright = Floating Bones (Right Foot)
|
||||||
|
marking-SlimeBonefootright-bone = Floating Bones (Right Foot)
|
||||||
|
|
||||||
|
# LHand
|
||||||
|
|
||||||
|
marking-SlimeBonehandleft = Floating Bones (Left Hand)
|
||||||
|
marking-SlimeBonehandleft-bone = Floating Bones (Left Hand)
|
||||||
|
|
||||||
|
# RHand
|
||||||
|
|
||||||
|
marking-SlimeBonehandright = Floating Bones (Right Hand)
|
||||||
|
marking-SlimeBonehandright-bone = Floating Bones (Right Hand)
|
||||||
|
|
||||||
|
# FacialHair
|
||||||
|
|
||||||
|
# Hair
|
||||||
|
|
||||||
|
# HeadSide
|
||||||
|
|
||||||
|
# HeadTop
|
||||||
|
|
||||||
|
# Tail
|
||||||
|
|
||||||
|
# RArmExtension
|
||||||
319
Resources/Locale/en-US/_Impstation/markings/vox.ftl
Normal file
319
Resources/Locale/en-US/_Impstation/markings/vox.ftl
Normal file
@@ -0,0 +1,319 @@
|
|||||||
|
# Chest
|
||||||
|
|
||||||
|
marking-ScarsVoxClawTorso = Claw Scar
|
||||||
|
marking-ScarsVoxClawTorso-claw = Claw Scar
|
||||||
|
|
||||||
|
marking-SpotsChest = Spotted Chest
|
||||||
|
marking-SpotsChest-spots1 = Spots
|
||||||
|
marking-SpotsChest-spots2 = Belly
|
||||||
|
|
||||||
|
marking-VChest = Vee
|
||||||
|
marking-VChest-v1 = Top
|
||||||
|
marking-VChest-v2 = Middle
|
||||||
|
marking-VChest-v3 = Bottom
|
||||||
|
|
||||||
|
marking-VoxBelly = Belly
|
||||||
|
marking-VoxBelly-belly = Belly
|
||||||
|
|
||||||
|
marking-VoxChestPlumage = Chest Plumage
|
||||||
|
marking-VoxChestPlumage-plumage = Chest Plumage
|
||||||
|
|
||||||
|
marking-VoxScarIncision = Scar (Incision)
|
||||||
|
marking-VoxScarIncision-scarincision = Scar (Incision)
|
||||||
|
|
||||||
|
marking-VoxScarMangled = Scar (Mangled)
|
||||||
|
marking-VoxScarMangled-scarmangled = Scar (Mangled)
|
||||||
|
|
||||||
|
marking-VoxScarSpinal = Scar (Spinal)
|
||||||
|
marking-VoxScarSpinal-scarspinal = Scar (Spinal)
|
||||||
|
|
||||||
|
marking-VoxTailSingleStripe = Single Tail Stripe
|
||||||
|
marking-VoxTailSingleStripe-tailsinglestripe = Single Tail Stripe
|
||||||
|
|
||||||
|
marking-VoxTailStripes = Tail Stripes
|
||||||
|
marking-VoxTailStripes-tailstripes = Tail Stripes
|
||||||
|
|
||||||
|
# Head
|
||||||
|
|
||||||
|
marking-ScarsVoxBigslashLeftHead = Big Slash (Left)
|
||||||
|
marking-ScarsVoxBigslashLeftHead-bigslashleft = Big Slash (Left)
|
||||||
|
|
||||||
|
marking-ScarsVoxBigslashRightHead = Big Slash (Right)
|
||||||
|
marking-ScarsVoxBigslashRightHead-roadrashright = Big Slash (Right)
|
||||||
|
|
||||||
|
marking-ScarsVoxRoadrashLeftHead = Road Rash (Left)
|
||||||
|
marking-ScarsVoxRoadrashLeftHead-roadrashleft = Road Rash (Left)
|
||||||
|
|
||||||
|
marking-ScarsVoxRoadrashRightHead = Road Rash (Right)
|
||||||
|
marking-ScarsVoxRoadrashRightHead-roadrashright = Road Rash (Right)
|
||||||
|
|
||||||
|
marking-ScarsVoxSlashLeftHead = Slash (Left)
|
||||||
|
marking-ScarsVoxSlashLeftHead-slashleft = Slash (Left)
|
||||||
|
|
||||||
|
marking-ScarsVoxSlashRightHead = Slash (Right)
|
||||||
|
marking-ScarsVoxSlashRightHead-slashright = Slash (Right)
|
||||||
|
|
||||||
|
marking-VoxCheeks = Cheeks
|
||||||
|
marking-VoxCheeks-cheeks = Cheeks
|
||||||
|
|
||||||
|
marking-VoxEarhole = Tympanic Membrane
|
||||||
|
marking-VoxEarhole-earhole = Tympanic Membrane
|
||||||
|
|
||||||
|
marking-VoxHeadGradient = Gradient
|
||||||
|
marking-VoxHeadGradient-gradient1 = Front
|
||||||
|
marking-VoxHeadGradient-gradient2 = Middle
|
||||||
|
marking-VoxHeadGradient-gradient3 = Back
|
||||||
|
|
||||||
|
marking-VoxNeckband = Neckband
|
||||||
|
marking-VoxNeckband-neckband = Neckband
|
||||||
|
|
||||||
|
marking-VoxScarBlasted = Scar (Blasted)
|
||||||
|
marking-VoxScarBlasted-scarheadblasted = Scar (Blasted)
|
||||||
|
|
||||||
|
# Snout
|
||||||
|
|
||||||
|
marking-VoxBeakColor = Colorable Beak
|
||||||
|
marking-VoxBeakColor-color = Colorable Beak
|
||||||
|
|
||||||
|
marking-VoxBeakSplit = Split Color Beak
|
||||||
|
marking-VoxBeakSplit-split1 = Top
|
||||||
|
marking-VoxBeakSplit-split2 = Bottom
|
||||||
|
|
||||||
|
marking-VoxBeakTipped = Tipped Beak
|
||||||
|
marking-VoxBeakTipped-tipped = Tipped Beak
|
||||||
|
|
||||||
|
# Eyes
|
||||||
|
|
||||||
|
# RArm
|
||||||
|
|
||||||
|
marking-SpotsArmR = Spotted Arm R
|
||||||
|
marking-SpotsArmR-spots = Spotted Arm R
|
||||||
|
|
||||||
|
marking-VoxArmsStripesRHand = Stripes (Right Arm)
|
||||||
|
marking-VoxArmsStripesRHand-stripes = Stripes (Right Arm)
|
||||||
|
|
||||||
|
marking-VoxRArmScales = Arm Scales R
|
||||||
|
|
||||||
|
# LArm
|
||||||
|
|
||||||
|
marking-SpotsArmL = Spotted Arm L
|
||||||
|
marking-SpotsArmL-spots = Spotted Arm L
|
||||||
|
|
||||||
|
marking-VoxArmsStripesLHand = Stripes (Left Arm)
|
||||||
|
marking-VoxArmsStripesLHand-stripes = Stripes (Left Arm)
|
||||||
|
|
||||||
|
marking-VoxLArmScales = Arm Scales L
|
||||||
|
|
||||||
|
# RLeg
|
||||||
|
|
||||||
|
marking-FeatheredLegR = Feathered Leg R
|
||||||
|
marking-FeatheredLegR-feathered = Feathered Leg R
|
||||||
|
|
||||||
|
marking-VoxLegGradientRLeg = Solid (Right Leg)
|
||||||
|
marking-VoxLegGradientRLeg-gradient = Solid (Right Leg)
|
||||||
|
|
||||||
|
marking-VoxLegsStripesRLeg = Stripes (Right)
|
||||||
|
marking-VoxLegsStripesRLeg-stripes = Stripes (Right)
|
||||||
|
|
||||||
|
marking-VoxRLegScales = Leg Scales R
|
||||||
|
|
||||||
|
# LLeg
|
||||||
|
|
||||||
|
marking-FeatheredLegL = Feathered Leg L
|
||||||
|
marking-FeatheredLegL-feathered = Feathered Leg L
|
||||||
|
|
||||||
|
marking-VoxLegGradientLLeg = Solid (Left Leg)
|
||||||
|
marking-VoxLegGradientLLeg-gradient = Solid (Left Leg)
|
||||||
|
|
||||||
|
marking-VoxLegsStripesLLeg = Stripes (Left)
|
||||||
|
marking-VoxLegsStripesLLeg-stripes = Stripes (Left)
|
||||||
|
|
||||||
|
marking-VoxLLegScales = Leg Scales L
|
||||||
|
|
||||||
|
# UndergarmentBottom
|
||||||
|
|
||||||
|
marking-UnderwearBriefsVox = Briefs (Soft)
|
||||||
|
marking-UnderwearBriefsVox-underwearbriefs = Briefs
|
||||||
|
|
||||||
|
marking-UnderwearHighWaisted = High Waisted
|
||||||
|
marking-UnderwearHighWaisted-highwaisted = High Waisted
|
||||||
|
|
||||||
|
marking-UnderwearIxixSpecial = Modest Underwear
|
||||||
|
marking-UnderwearIxixSpecial-ixixspecial1 = Band
|
||||||
|
marking-UnderwearIxixSpecial-ixixspecial2 = Cup
|
||||||
|
|
||||||
|
marking-UnderwearLowridersV = Lowriders
|
||||||
|
marking-UnderwearLowridersV-lowriders = Underwear
|
||||||
|
|
||||||
|
marking-UnderwearStrappy = Belted
|
||||||
|
marking-UnderwearStrappy-strappy1 = Belt
|
||||||
|
marking-UnderwearStrappy-strappy2 = Belt
|
||||||
|
marking-UnderwearStrappy-strappy3 = Underwear
|
||||||
|
|
||||||
|
marking-UnderwearTangaV = Tanga
|
||||||
|
marking-UnderwearTangaV-tanga_vox = Underwear
|
||||||
|
|
||||||
|
# UndergarmentTop
|
||||||
|
|
||||||
|
# LFoot
|
||||||
|
|
||||||
|
marking-VoxFootGradientLFoot = Solid (Left Foot)
|
||||||
|
marking-VoxFootGradientLFoot-gradient = Solid (Left Foot)
|
||||||
|
|
||||||
|
marking-VoxLFootScales = Foot Scales L
|
||||||
|
|
||||||
|
# RFoot
|
||||||
|
|
||||||
|
marking-VoxFootGradientRFoot = Solid (Right Foot)
|
||||||
|
marking-VoxFootGradientRFoot-gradient = Solid (Right Foot)
|
||||||
|
|
||||||
|
marking-VoxRFootScales = Foot Scales R
|
||||||
|
|
||||||
|
# LHand
|
||||||
|
|
||||||
|
marking-VoxHandGradientLHand = Gradient (Left Hand)
|
||||||
|
marking-VoxHandGradientLHand-gradient1 = Bottom
|
||||||
|
marking-VoxHandGradientLHand-gradient2 = Middle
|
||||||
|
marking-VoxHandGradientLHand-gradient3 = Top
|
||||||
|
|
||||||
|
marking-VoxLArmProsthetic = Prosthetic (Left)
|
||||||
|
marking-VoxLArmProsthetic-prosthetic = Prosthetic (Left)
|
||||||
|
|
||||||
|
marking-VoxLHandScales = Hand Scales L
|
||||||
|
|
||||||
|
# RHand
|
||||||
|
|
||||||
|
marking-VoxHandGradientRHand = Gradient (Right Hand)
|
||||||
|
marking-VoxHandGradientRHand-gradient1 = Bottom
|
||||||
|
marking-VoxHandGradientRHand-gradient2 = Middle
|
||||||
|
marking-VoxHandGradientRHand-gradient3 = Top
|
||||||
|
|
||||||
|
marking-VoxRArmProsthetic = Prosthetic (Right)
|
||||||
|
marking-VoxRArmProsthetic-prosthetic = Prosthetic (Right)
|
||||||
|
|
||||||
|
marking-VoxRHandScales = Hand Scales R
|
||||||
|
|
||||||
|
# FacialHair
|
||||||
|
|
||||||
|
marking-BeardPadovana = Padovana
|
||||||
|
marking-BeardPadovana-padovana = Padovana
|
||||||
|
|
||||||
|
marking-LargeWattle = Wattle (Large)
|
||||||
|
marking-LargeWattle-largewattle = Wattle (Large)
|
||||||
|
|
||||||
|
marking-SmallWattle = Wattle (Small)
|
||||||
|
marking-SmallWattle-smallwattle = Wattle (Small)
|
||||||
|
|
||||||
|
# Hair
|
||||||
|
|
||||||
|
marking-HairPadovana = Padovana
|
||||||
|
marking-HairPadovana-padovana = Padovana
|
||||||
|
|
||||||
|
marking-HijabSimpleVox = Hijab (Simple)
|
||||||
|
marking-HijabSimpleVox-hijabsimple = Hijab (Simple)
|
||||||
|
|
||||||
|
marking-HijabFashionableVox = Hijab (Fashionable)
|
||||||
|
marking-HijabFashionableVox-hijabchic = Hijab (Fashionable)
|
||||||
|
|
||||||
|
marking-LargeComb = Comb (Large)
|
||||||
|
marking-LargeComb-largecomb = Comb (Large)
|
||||||
|
|
||||||
|
marking-TichelSimpleVox = Tichel (Simple)
|
||||||
|
marking-TichelSimpleVox-tichelsimple = Tichel (Simple)
|
||||||
|
|
||||||
|
marking-TichelFashionableVox = Tichel (Fashionable)
|
||||||
|
marking-TichelFashionableVox-tichelfashionable = Tichel (Fashionable)
|
||||||
|
|
||||||
|
marking-VoxBald = Balding
|
||||||
|
marking-VoxBald-balding = Balding
|
||||||
|
|
||||||
|
marking-VoxEmover = Emover
|
||||||
|
marking-VoxEmover-hairemover = Emover
|
||||||
|
|
||||||
|
marking-VoxPolish = Polish
|
||||||
|
marking-VoxPolish-hairpolish = Polish
|
||||||
|
|
||||||
|
marking-VoxWindswept = Windswept
|
||||||
|
marking-VoxWindswept-hairwindswept = Windswept
|
||||||
|
|
||||||
|
# HeadSide
|
||||||
|
|
||||||
|
marking-SideQuills = Quills
|
||||||
|
marking-SideQuills-quills1 = Top and bottom
|
||||||
|
marking-SideQuills-quills2 = Middle top
|
||||||
|
marking-SideQuills-quills3 = Middle bottom
|
||||||
|
|
||||||
|
marking-VoxStreamers = Streamers
|
||||||
|
marking-VoxStreamers-streamers1 = Quill
|
||||||
|
marking-VoxStreamers-streamers2 = Flue
|
||||||
|
marking-VoxStreamers-streamers3 = Eye
|
||||||
|
|
||||||
|
# HeadTop
|
||||||
|
|
||||||
|
# Tail
|
||||||
|
|
||||||
|
marking-FriendsOfAFeather = Feather of a Friend
|
||||||
|
marking-FriendsOfAFeather-friendsfeather1 = Feather
|
||||||
|
marking-FriendsOfAFeather-friendsfeather2 = Feather
|
||||||
|
|
||||||
|
marking-SpotsTail = Spotted Tail
|
||||||
|
marking-SpotsTail-spots= Spotted Tail
|
||||||
|
|
||||||
|
marking-TailBloom = Bloom
|
||||||
|
marking-TailBloom-bloom1 = Flower
|
||||||
|
marking-TailBloom-bloom2 = Flower
|
||||||
|
marking-TailBloom-bloom3 = Bush
|
||||||
|
|
||||||
|
marking-VoxChains = Chains
|
||||||
|
marking-VoxChains-chains = Chains
|
||||||
|
|
||||||
|
marking-VoxCocktail = Cocktail
|
||||||
|
marking-VoxCocktail-cocktail1 = Feathers
|
||||||
|
marking-VoxCocktail-cocktail2 = Feathers
|
||||||
|
marking-VoxCocktail-cocktail3 = Feathers
|
||||||
|
marking-VoxCocktail-cocktail4 = Tail
|
||||||
|
|
||||||
|
marking-VoxFootSpines = Leg Spines
|
||||||
|
marking-VoxFootSpines-footspines = Leg Spines
|
||||||
|
|
||||||
|
marking-VoxTailBack = Back Tail
|
||||||
|
marking-VoxBackTail-colorable = Back Tail
|
||||||
|
|
||||||
|
marking-VoxTailBalled = Thrasher
|
||||||
|
marking-VoxTailBalled-balled = Thrasher
|
||||||
|
|
||||||
|
marking-VoxTailBell = Bell
|
||||||
|
marking-VoxTailBell-bell1 = Bell
|
||||||
|
marking-VoxTailBell-bell2 = Back Tail
|
||||||
|
|
||||||
|
marking-VoxTailLantern = Lantern
|
||||||
|
marking-VoxTailLantern-lantern = Lantern
|
||||||
|
|
||||||
|
marking-VoxTailNub = Nub
|
||||||
|
marking-VoxTailNub-nub1 = Tail
|
||||||
|
marking-VoxTailNub-nub2 = Scar
|
||||||
|
|
||||||
|
marking-VoxTailRaptor = Raptor
|
||||||
|
marking-VoxTailRaptor-raptor = Tail
|
||||||
|
|
||||||
|
marking-VoxTailShort1 = Short Down
|
||||||
|
marking-VoxTailShort1-short1 = Tail
|
||||||
|
|
||||||
|
marking-VoxTailShort2 = Short Up
|
||||||
|
marking-VoxTailShort2-short2 = Tail
|
||||||
|
|
||||||
|
marking-VoxTailSmallPlume = Small Plume
|
||||||
|
marking-VoxTailSmallPlume-smallplume = Small Plume
|
||||||
|
|
||||||
|
marking-VoxTailSpines = Tail Spines
|
||||||
|
marking-VoxTailSpines-spines = Tail Spines
|
||||||
|
|
||||||
|
marking-VoxTailSplitImp = Twinned
|
||||||
|
marking-VoxTailSplit-split = Twinned
|
||||||
|
|
||||||
|
marking-VoxSunAndMoon = Sun and Moon
|
||||||
|
marking-VoxSunAndMoon-sunandmoon = Sun and Moon
|
||||||
|
|
||||||
|
marking-VoxTail = Default Tail [DO NOT USE]
|
||||||
|
|
||||||
|
# RArmExtension
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
markings-category-Eyes = Eyes
|
||||||
2
Resources/Locale/en-US/deltav/lathe/ui/lathe-menu.ftl
Normal file
2
Resources/Locale/en-US/deltav/lathe/ui/lathe-menu.ftl
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
lathe-menu-mining-points = Mining Points: {$points}
|
||||||
|
lathe-menu-mining-points-claim-button = Claim Points
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
docking-console-no-shuttle = No Shuttle Detected
|
||||||
|
docking-console-ftl = FTL
|
||||||
|
|
||||||
|
mining-console-window-title = Mining Shuttle Console
|
||||||
|
|
||||||
|
shuttle-destination-lavaland = Lavaland
|
||||||
|
shuttle-destination-glacier-surface = Glacier Surface
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
shop-vendor-balance = Balance: {$points}
|
||||||
|
shop-vendor-stack-suffix = x{$count}
|
||||||
|
shop-vendor-flavor-left = All payments are secure
|
||||||
|
shop-vendor-flavor-right = v1.2
|
||||||
3
Resources/Locale/en-US/deltav/weather/ashstorm.ftl
Normal file
3
Resources/Locale/en-US/deltav/weather/ashstorm.ftl
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
ash-storm-telegraph = [color=red][bold]An eerie moan rises on the wind. Sheets of burning ash blacken the horizon. Seek shelter.[/bold][/color]
|
||||||
|
ash-storm-alert = [color=red][bolditalic]Smoldering clouds of scorching ash billow down around you! Get inside![/bolditalic][/color]
|
||||||
|
ash-storm-clearing = [color=red]The shrieking wind whips away the last of the ash and falls to its usual murmur. It should be safe to go outside now.[/color]
|
||||||
@@ -7,14 +7,14 @@ game-ticker-unknown-role = Unknown
|
|||||||
game-ticker-delay-start = Round start has been delayed for {$seconds} seconds.
|
game-ticker-delay-start = Round start has been delayed for {$seconds} seconds.
|
||||||
game-ticker-pause-start = Round start has been paused.
|
game-ticker-pause-start = Round start has been paused.
|
||||||
game-ticker-pause-start-resumed = Round start countdown is now resumed.
|
game-ticker-pause-start-resumed = Round start countdown is now resumed.
|
||||||
game-ticker-player-join-game-message = Welcome to Space Station 14! If this is your first time playing, be sure to read the game rules, and don't be afraid to ask for help in LOOC (local OOC) or OOC (usually available only between rounds).
|
game-ticker-player-join-game-message = Welcome to TBD Station 14! If this is your first time playing, be sure to read the rules, and don't be afraid to ask for help in LOOC (local OOC, only for people near you) or OOC (global, can be heard from anywhere by anyone)!
|
||||||
game-ticker-get-info-text = Hi and welcome to [color=white]Space Station 14![/color]
|
game-ticker-get-info-text = Hi and welcome to [color=white]TBD Station 14![/color]
|
||||||
The current round is: [color=white]#{$roundId}[/color]
|
The current round is: [color=white]#{$roundId}[/color]
|
||||||
The current player count is: [color=white]{$playerCount}[/color]
|
The current player count is: [color=white]{$playerCount}[/color]
|
||||||
The current map is: [color=white]{$mapName}[/color]
|
The current map is: [color=white]{$mapName}[/color]
|
||||||
The current game mode is: [color=white]{$gmTitle}[/color]
|
The current game mode is: [color=white]{$gmTitle}[/color]
|
||||||
>[color=yellow]{$desc}[/color]
|
>[color=yellow]{$desc}[/color]
|
||||||
game-ticker-get-info-preround-text = Hi and welcome to [color=white]Space Station 14![/color]
|
game-ticker-get-info-preround-text = Hi and welcome to [color=white]TBD Station 14![/color]
|
||||||
The current round is: [color=white]#{$roundId}[/color]
|
The current round is: [color=white]#{$roundId}[/color]
|
||||||
The current player count is: [color=white]{$playerCount}[/color] ([color=white]{$readyCount}[/color] {$readyCount ->
|
The current player count is: [color=white]{$playerCount}[/color] ([color=white]{$readyCount}[/color] {$readyCount ->
|
||||||
[one] is
|
[one] is
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
### Connecting dialog when you start up the game
|
### Connecting dialog when you start up the game
|
||||||
|
|
||||||
connecting-title = Space Station 14
|
connecting-title = TBD Station 14
|
||||||
connecting-exit = Exit
|
connecting-exit = Exit
|
||||||
connecting-retry = Retry
|
connecting-retry = Retry
|
||||||
connecting-reconnect = Reconnect
|
connecting-reconnect = Reconnect
|
||||||
@@ -11,7 +11,7 @@ connecting-in-progress = Connecting to server...
|
|||||||
connecting-disconnected = Disconnected from server:
|
connecting-disconnected = Disconnected from server:
|
||||||
connecting-tip = Don't die!
|
connecting-tip = Don't die!
|
||||||
connecting-window-tip = Tip { $numberTip }
|
connecting-window-tip = Tip { $numberTip }
|
||||||
connecting-version = ver 0.1
|
connecting-version = ver 0.67
|
||||||
connecting-fail-reason = Failed to connect to server:
|
connecting-fail-reason = Failed to connect to server:
|
||||||
{ $reason }
|
{ $reason }
|
||||||
connecting-state-NotConnecting = Not connecting
|
connecting-state-NotConnecting = Not connecting
|
||||||
|
|||||||
3866
Resources/Maps/Nonstations/DeltaV/lavaland_mining_base.yml
Normal file
3866
Resources/Maps/Nonstations/DeltaV/lavaland_mining_base.yml
Normal file
File diff suppressed because it is too large
Load Diff
12441
Resources/Maps/Nonstations/_TBD/lavaland_base.yml
Normal file
12441
Resources/Maps/Nonstations/_TBD/lavaland_base.yml
Normal file
File diff suppressed because it is too large
Load Diff
495
Resources/Maps/Shuttles/DeltaV/mining.yml
Normal file
495
Resources/Maps/Shuttles/DeltaV/mining.yml
Normal file
@@ -0,0 +1,495 @@
|
|||||||
|
meta:
|
||||||
|
format: 6
|
||||||
|
postmapinit: false
|
||||||
|
tilemap:
|
||||||
|
0: Space
|
||||||
|
74: FloorMono
|
||||||
|
84: FloorReinforced
|
||||||
|
89: FloorShuttleBlue
|
||||||
|
98: FloorSteel
|
||||||
|
130: Lattice
|
||||||
|
131: Plating
|
||||||
|
entities:
|
||||||
|
- proto: ""
|
||||||
|
entities:
|
||||||
|
- uid: 1
|
||||||
|
components:
|
||||||
|
- type: MetaData
|
||||||
|
name: Mining Shuttle
|
||||||
|
- type: Transform
|
||||||
|
- type: MapGrid
|
||||||
|
chunks:
|
||||||
|
0,0:
|
||||||
|
ind: 0,0
|
||||||
|
tiles: YgAAAAAAYgAAAAAASgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYgAAAAAAYgAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAgwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAgwAAAAAAggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
version: 6
|
||||||
|
0,-1:
|
||||||
|
ind: 0,-1
|
||||||
|
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgwAAAAAAgwAAAAAAggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAWQAAAAAAgwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
version: 6
|
||||||
|
-1,-1:
|
||||||
|
ind: -1,-1
|
||||||
|
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAggAAAAAAgwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgwAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAWQAAAAAA
|
||||||
|
version: 6
|
||||||
|
-1,0:
|
||||||
|
ind: -1,0
|
||||||
|
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgwAAAAAAYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgwAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAggAAAAAAgwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
version: 6
|
||||||
|
- type: Broadphase
|
||||||
|
- type: Physics
|
||||||
|
bodyStatus: InAir
|
||||||
|
angularDamping: 0.05
|
||||||
|
linearDamping: 0.05
|
||||||
|
fixedRotation: False
|
||||||
|
bodyType: Dynamic
|
||||||
|
- type: Fixtures
|
||||||
|
fixtures: {}
|
||||||
|
- type: OccluderTree
|
||||||
|
- type: SpreaderGrid
|
||||||
|
- type: Shuttle
|
||||||
|
- type: MiningShuttle
|
||||||
|
- type: DockingShuttle
|
||||||
|
destinations: []
|
||||||
|
- type: ProtectedGrid
|
||||||
|
- type: Gravity
|
||||||
|
gravityShakeSound: !type:SoundPathSpecifier
|
||||||
|
path: /Audio/Effects/alert.ogg
|
||||||
|
- type: GridPathfinding
|
||||||
|
- type: DecalGrid
|
||||||
|
chunkCollection:
|
||||||
|
version: 2
|
||||||
|
nodes: []
|
||||||
|
- type: GridAtmosphere
|
||||||
|
version: 2
|
||||||
|
data:
|
||||||
|
tiles:
|
||||||
|
0,0:
|
||||||
|
0: 823
|
||||||
|
1: 16384
|
||||||
|
0,-1:
|
||||||
|
0: 13072
|
||||||
|
1: 64
|
||||||
|
-1,0:
|
||||||
|
0: 2184
|
||||||
|
1: 16384
|
||||||
|
-1,-1:
|
||||||
|
0: 34816
|
||||||
|
1: 64
|
||||||
|
uniqueMixes:
|
||||||
|
- volume: 2500
|
||||||
|
temperature: 293.15
|
||||||
|
moles:
|
||||||
|
- 21.824879
|
||||||
|
- 82.10312
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- volume: 2500
|
||||||
|
immutable: True
|
||||||
|
moles:
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
chunkSize: 4
|
||||||
|
- type: GasTileOverlay
|
||||||
|
- type: RadiationGridResistance
|
||||||
|
- proto: AirlockShuttle
|
||||||
|
entities:
|
||||||
|
- uid: 2
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
rot: 1.5707963267948966 rad
|
||||||
|
pos: 2.5,0.5
|
||||||
|
parent: 1
|
||||||
|
- proto: APCBasic
|
||||||
|
entities:
|
||||||
|
- uid: 3
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
rot: -1.5707963267948966 rad
|
||||||
|
pos: 2.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- proto: AtmosDeviceFanDirectional
|
||||||
|
entities:
|
||||||
|
- uid: 4
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
rot: 1.5707963267948966 rad
|
||||||
|
pos: 2.5,0.5
|
||||||
|
parent: 1
|
||||||
|
- proto: CableApcExtension
|
||||||
|
entities:
|
||||||
|
- uid: 5
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 2.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 6
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 1.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 7
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 0.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 8
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 0.5,-0.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 9
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 0.5,0.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 10
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 0.5,1.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 11
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 0.5,2.5
|
||||||
|
parent: 1
|
||||||
|
- proto: CableHV
|
||||||
|
entities:
|
||||||
|
- uid: 12
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -0.5,-2.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 13
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -0.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 14
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -1.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- proto: CableMV
|
||||||
|
entities:
|
||||||
|
- uid: 15
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -1.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 16
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 0.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 17
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 1.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 18
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 2.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 19
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -0.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- proto: ChairPilotSeat
|
||||||
|
entities:
|
||||||
|
- uid: 20
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
rot: 3.141592653589793 rad
|
||||||
|
pos: 0.5,1.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 21
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
rot: 3.141592653589793 rad
|
||||||
|
pos: -0.5,-0.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 22
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
rot: 3.141592653589793 rad
|
||||||
|
pos: 0.5,-0.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 23
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
rot: 3.141592653589793 rad
|
||||||
|
pos: 1.5,-0.5
|
||||||
|
parent: 1
|
||||||
|
- proto: ComputerShuttleMining
|
||||||
|
entities:
|
||||||
|
- uid: 24
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 0.5,2.5
|
||||||
|
parent: 1
|
||||||
|
- proto: CrateGenericSteel
|
||||||
|
entities:
|
||||||
|
- uid: 25
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -0.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- proto: GasPassiveVent
|
||||||
|
entities:
|
||||||
|
- uid: 26
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
rot: 3.141592653589793 rad
|
||||||
|
pos: 0.5,-2.5
|
||||||
|
parent: 1
|
||||||
|
- type: AtmosPipeColor
|
||||||
|
color: '#990000FF'
|
||||||
|
- proto: GasPipeStraight
|
||||||
|
entities:
|
||||||
|
- uid: 27
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 0.5,-0.5
|
||||||
|
parent: 1
|
||||||
|
- type: AtmosPipeColor
|
||||||
|
color: '#990000FF'
|
||||||
|
- uid: 28
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 0.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- type: AtmosPipeColor
|
||||||
|
color: '#990000FF'
|
||||||
|
- proto: GasVentScrubber
|
||||||
|
entities:
|
||||||
|
- uid: 29
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 0.5,0.5
|
||||||
|
parent: 1
|
||||||
|
- type: AtmosPipeColor
|
||||||
|
color: '#990000FF'
|
||||||
|
- proto: GeneratorWallmountBasic
|
||||||
|
entities:
|
||||||
|
- uid: 30
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -0.5,-2.5
|
||||||
|
parent: 1
|
||||||
|
- proto: GravityGeneratorMini
|
||||||
|
entities:
|
||||||
|
- uid: 63
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 0.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- proto: Grille
|
||||||
|
entities:
|
||||||
|
- uid: 31
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -1.5,-0.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 32
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -1.5,1.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 33
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 2.5,1.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 34
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 2.5,-0.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 35
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 0.5,3.5
|
||||||
|
parent: 1
|
||||||
|
- proto: OreBox
|
||||||
|
entities:
|
||||||
|
- uid: 36
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 1.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- proto: Poweredlight
|
||||||
|
entities:
|
||||||
|
- uid: 37
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
rot: 1.5707963267948966 rad
|
||||||
|
pos: -0.5,0.5
|
||||||
|
parent: 1
|
||||||
|
- proto: ShuttleWindow
|
||||||
|
entities:
|
||||||
|
- uid: 38
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 2.5,1.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 39
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 0.5,3.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 40
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -1.5,1.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 41
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -1.5,-0.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 42
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 2.5,-0.5
|
||||||
|
parent: 1
|
||||||
|
- proto: SubstationWallBasic
|
||||||
|
entities:
|
||||||
|
- uid: 43
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
rot: 1.5707963267948966 rad
|
||||||
|
pos: -1.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- proto: Table
|
||||||
|
entities:
|
||||||
|
- uid: 44
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -0.5,2.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 45
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 1.5,2.5
|
||||||
|
parent: 1
|
||||||
|
- proto: Thruster
|
||||||
|
entities:
|
||||||
|
- uid: 46
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
rot: 3.141592653589793 rad
|
||||||
|
pos: 0.5,-2.5
|
||||||
|
parent: 1
|
||||||
|
- proto: WallShuttle
|
||||||
|
entities:
|
||||||
|
- uid: 47
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 2.5,2.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 48
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 1.5,3.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 49
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -0.5,3.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 50
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -1.5,2.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 51
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -1.5,0.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 52
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -1.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 53
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -0.5,-2.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 54
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 1.5,-2.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 55
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: 2.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- proto: WallShuttleDiagonal
|
||||||
|
entities:
|
||||||
|
- uid: 56
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
rot: -1.5707963267948966 rad
|
||||||
|
pos: 2.5,3.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 57
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
rot: 3.141592653589793 rad
|
||||||
|
pos: 2.5,-2.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 58
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
rot: 1.5707963267948966 rad
|
||||||
|
pos: -1.5,-2.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 59
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -1.5,3.5
|
||||||
|
parent: 1
|
||||||
|
- proto: WindowReinforcedDirectional
|
||||||
|
entities:
|
||||||
|
- uid: 60
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
rot: 1.5707963267948966 rad
|
||||||
|
pos: 0.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 61
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
rot: -1.5707963267948966 rad
|
||||||
|
pos: 0.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
- uid: 62
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
rot: 3.141592653589793 rad
|
||||||
|
pos: 0.5,-1.5
|
||||||
|
parent: 1
|
||||||
|
...
|
||||||
2102
Resources/Maps/_DV/Nonstations/shelters.yml
Normal file
2102
Resources/Maps/_DV/Nonstations/shelters.yml
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -4,8 +4,8 @@ meta:
|
|||||||
engineVersion: 268.0.0
|
engineVersion: 268.0.0
|
||||||
forkId: ""
|
forkId: ""
|
||||||
forkVersion: ""
|
forkVersion: ""
|
||||||
time: 11/24/2025 21:47:10
|
time: 11/27/2025 18:20:30
|
||||||
entityCount: 2899
|
entityCount: 2900
|
||||||
maps:
|
maps:
|
||||||
- 1
|
- 1
|
||||||
grids:
|
grids:
|
||||||
@@ -107,7 +107,7 @@ entities:
|
|||||||
version: 7
|
version: 7
|
||||||
-1,1:
|
-1,1:
|
||||||
ind: -1,1
|
ind: -1,1
|
||||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAfQAAAAAAAH0AAAAAAAB9AAAAAAAAbQAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAH4AAAAAAABtAAAAAAAAfgAAAAAAAG0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
|
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAfQAAAAAAAH0AAAAAAAB9AAAAAAAAbQAAAAAAAH4AAAAAAAB+AAAAAAAAbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAH4AAAAAAABtAAAAAAAAfgAAAAAAAG0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
|
||||||
version: 7
|
version: 7
|
||||||
-1,-2:
|
-1,-2:
|
||||||
ind: -1,-2
|
ind: -1,-2
|
||||||
@@ -1069,7 +1069,7 @@ entities:
|
|||||||
-2,4:
|
-2,4:
|
||||||
0: 14
|
0: 14
|
||||||
-1,4:
|
-1,4:
|
||||||
1: 175
|
1: 47
|
||||||
0,-5:
|
0,-5:
|
||||||
1: 24576
|
1: 24576
|
||||||
0: 3584
|
0: 3584
|
||||||
@@ -1582,14 +1582,8 @@ entities:
|
|||||||
rot: 1.5707963267948966 rad
|
rot: 1.5707963267948966 rad
|
||||||
pos: 13.5,13.5
|
pos: 13.5,13.5
|
||||||
parent: 2
|
parent: 2
|
||||||
- proto: AirlockExternalGlassShuttleLocked
|
- proto: AirlockExternalGlassShuttleMining
|
||||||
entities:
|
entities:
|
||||||
- uid: 44
|
|
||||||
components:
|
|
||||||
- type: Transform
|
|
||||||
rot: 3.141592653589793 rad
|
|
||||||
pos: -0.5,17.5
|
|
||||||
parent: 2
|
|
||||||
- uid: 45
|
- uid: 45
|
||||||
components:
|
components:
|
||||||
- type: Transform
|
- type: Transform
|
||||||
@@ -1977,12 +1971,6 @@ entities:
|
|||||||
rot: 3.141592653589793 rad
|
rot: 3.141592653589793 rad
|
||||||
pos: -2.5,17.5
|
pos: -2.5,17.5
|
||||||
parent: 2
|
parent: 2
|
||||||
- uid: 100
|
|
||||||
components:
|
|
||||||
- type: Transform
|
|
||||||
rot: 3.141592653589793 rad
|
|
||||||
pos: -0.5,17.5
|
|
||||||
parent: 2
|
|
||||||
- uid: 101
|
- uid: 101
|
||||||
components:
|
components:
|
||||||
- type: Transform
|
- type: Transform
|
||||||
@@ -4402,6 +4390,11 @@ entities:
|
|||||||
- type: Transform
|
- type: Transform
|
||||||
pos: -4.5,-14.5
|
pos: -4.5,-14.5
|
||||||
parent: 2
|
parent: 2
|
||||||
|
- uid: 2900
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -5.5,10.5
|
||||||
|
parent: 2
|
||||||
- proto: CableHV
|
- proto: CableHV
|
||||||
entities:
|
entities:
|
||||||
- uid: 571
|
- uid: 571
|
||||||
@@ -6857,11 +6850,6 @@ entities:
|
|||||||
- type: Transform
|
- type: Transform
|
||||||
pos: -0.5,15.5
|
pos: -0.5,15.5
|
||||||
parent: 2
|
parent: 2
|
||||||
- uid: 1053
|
|
||||||
components:
|
|
||||||
- type: Transform
|
|
||||||
pos: -0.5,16.5
|
|
||||||
parent: 2
|
|
||||||
- uid: 1054
|
- uid: 1054
|
||||||
components:
|
components:
|
||||||
- type: Transform
|
- type: Transform
|
||||||
@@ -7790,6 +7778,13 @@ entities:
|
|||||||
- type: Transform
|
- type: Transform
|
||||||
pos: 2.5,13.5
|
pos: 2.5,13.5
|
||||||
parent: 2
|
parent: 2
|
||||||
|
- proto: ComputerShuttleMining
|
||||||
|
entities:
|
||||||
|
- uid: 1053
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -0.5,16.5
|
||||||
|
parent: 2
|
||||||
- proto: ComputerSurveillanceCameraMonitor
|
- proto: ComputerSurveillanceCameraMonitor
|
||||||
entities:
|
entities:
|
||||||
- uid: 1200
|
- uid: 1200
|
||||||
@@ -12183,6 +12178,11 @@ entities:
|
|||||||
radius: 175.75
|
radius: 175.75
|
||||||
- proto: Grille
|
- proto: Grille
|
||||||
entities:
|
entities:
|
||||||
|
- uid: 44
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -0.5,17.5
|
||||||
|
parent: 2
|
||||||
- uid: 1812
|
- uid: 1812
|
||||||
components:
|
components:
|
||||||
- type: Transform
|
- type: Transform
|
||||||
@@ -14758,6 +14758,11 @@ entities:
|
|||||||
parent: 2
|
parent: 2
|
||||||
- proto: ShuttleWindow
|
- proto: ShuttleWindow
|
||||||
entities:
|
entities:
|
||||||
|
- uid: 100
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
pos: -0.5,17.5
|
||||||
|
parent: 2
|
||||||
- uid: 2183
|
- uid: 2183
|
||||||
components:
|
components:
|
||||||
- type: Transform
|
- type: Transform
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
50
Resources/Prototypes/Body/Prototypes/ashwalker.yml
Normal file
50
Resources/Prototypes/Body/Prototypes/ashwalker.yml
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# TODO: will need updating with shitmed
|
||||||
|
- type: body
|
||||||
|
name: ashwalker
|
||||||
|
id: AshWalker
|
||||||
|
root: torso
|
||||||
|
slots:
|
||||||
|
head:
|
||||||
|
part: HeadReptilian
|
||||||
|
connections:
|
||||||
|
- torso
|
||||||
|
organs:
|
||||||
|
brain: OrganHumanBrain
|
||||||
|
eyes: OrganHumanEyes
|
||||||
|
torso:
|
||||||
|
part: TorsoReptilian
|
||||||
|
organs:
|
||||||
|
heart: OrganAnimalHeart
|
||||||
|
lungs: OrganAshWalkerLungs
|
||||||
|
stomach: OrganReptilianStomach
|
||||||
|
liver: OrganAnimalLiver
|
||||||
|
kidneys: OrganHumanKidneys
|
||||||
|
connections:
|
||||||
|
- right arm
|
||||||
|
- left arm
|
||||||
|
- right leg
|
||||||
|
- left leg
|
||||||
|
right arm:
|
||||||
|
part: RightArmReptilian
|
||||||
|
connections:
|
||||||
|
- right hand
|
||||||
|
left arm:
|
||||||
|
part: LeftArmReptilian
|
||||||
|
connections:
|
||||||
|
- left hand
|
||||||
|
right hand:
|
||||||
|
part: RightHandReptilian
|
||||||
|
left hand:
|
||||||
|
part: LeftHandReptilian
|
||||||
|
right leg:
|
||||||
|
part: RightLegReptilian
|
||||||
|
connections:
|
||||||
|
- right foot
|
||||||
|
left leg:
|
||||||
|
part: LeftLegReptilian
|
||||||
|
connections:
|
||||||
|
- left foot
|
||||||
|
right foot:
|
||||||
|
part: RightFootReptilian
|
||||||
|
left foot:
|
||||||
|
part: LeftFootReptilian
|
||||||
@@ -146,15 +146,15 @@
|
|||||||
category: cargoproduct-category-name-service
|
category: cargoproduct-category-name-service
|
||||||
group: market
|
group: market
|
||||||
|
|
||||||
- type: cargoProduct
|
#- type: cargoProduct # DeltaV: Salvage vendor doesn't have stock anymore
|
||||||
id: CrateVendingMachineRestockSalvageEquipment
|
# id: CrateVendingMachineRestockSalvageEquipment
|
||||||
icon:
|
# icon:
|
||||||
sprite: Objects/Specific/Service/vending_machine_restock.rsi
|
# sprite: Objects/Specific/Service/vending_machine_restock.rsi
|
||||||
state: base
|
# state: base
|
||||||
product: CrateVendingMachineRestockSalvageEquipmentFilled
|
# product: CrateVendingMachineRestockSalvageEquipmentFilled
|
||||||
cost: 1500
|
# cost: 1000
|
||||||
category: cargoproduct-category-name-engineering
|
# category: cargoproduct-category-name-engineering
|
||||||
group: market
|
# group: market
|
||||||
|
|
||||||
- type: cargoProduct
|
- type: cargoProduct
|
||||||
id: CrateVendingMachineRestockSecTech
|
id: CrateVendingMachineRestockSecTech
|
||||||
|
|||||||
@@ -154,16 +154,15 @@
|
|||||||
id: VendingMachineRestockRobustSoftdrinks
|
id: VendingMachineRestockRobustSoftdrinks
|
||||||
amount: 2
|
amount: 2
|
||||||
|
|
||||||
- type: entity
|
#- type: entity # DeltaV: Salvage vendor doesn't have stock anymore
|
||||||
id: CrateVendingMachineRestockSalvageEquipmentFilled
|
# id: CrateVendingMachineRestockSalvageEquipmentFilled
|
||||||
parent: CrateGenericSteel
|
# parent: CrateGenericSteel
|
||||||
name: Salvage restock crate
|
# name: Salvage restock crate
|
||||||
description: Contains a restock box for the salvage vendor.
|
# description: Contains a restock box for the salvage vendor.
|
||||||
components:
|
# components:
|
||||||
- type: EntityTableContainerFill
|
# - type: StorageFill
|
||||||
containers:
|
# contents:
|
||||||
entity_storage:
|
# - id: VendingMachineRestockSalvageEquipment
|
||||||
id: VendingMachineRestockSalvageEquipment
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: CrateVendingMachineRestockSecTechFilled
|
id: CrateVendingMachineRestockSecTechFilled
|
||||||
|
|||||||
@@ -11,6 +11,11 @@
|
|||||||
id: LockerFillSalvageSpecialist
|
id: LockerFillSalvageSpecialist
|
||||||
table: !type:AllSelector
|
table: !type:AllSelector
|
||||||
children:
|
children:
|
||||||
|
- id: OreBag
|
||||||
|
- id: Pickaxe
|
||||||
|
- id: WeaponProtoKineticAccelerator
|
||||||
|
- id: FlashlightSeclite
|
||||||
|
- id: ClothingEyesGlassesMeson
|
||||||
- id: ClothingBeltUtilityFilled
|
- id: ClothingBeltUtilityFilled
|
||||||
- id: SurvivalKnife
|
- id: SurvivalKnife
|
||||||
- id: HandheldGPSBasic
|
- id: HandheldGPSBasic
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
- id: BoxFolderQmClipboard
|
- id: BoxFolderQmClipboard
|
||||||
- id: BoxQMCircuitboards
|
- id: BoxQMCircuitboards
|
||||||
- id: BoxQMStamps
|
- id: BoxQMStamps
|
||||||
|
- id: MiningShuttleConsoleCircuitboard
|
||||||
- id: CigPackGreen
|
- id: CigPackGreen
|
||||||
prob: 0.50
|
prob: 0.50
|
||||||
- id: ClothingHeadsetAltCargo
|
- id: ClothingHeadsetAltCargo
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: fulltile_overlay
|
state: fulltile_overlay
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: brick_box
|
state: brick_box
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: brick_corner_ne
|
state: brick_corner_ne
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: brick_corner_nw
|
state: brick_corner_nw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: brick_corner_se
|
state: brick_corner_se
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: brick_corner_sw
|
state: brick_corner_sw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: brick_end_e
|
state: brick_end_e
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: brick_end_n
|
state: brick_end_n
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: brick_end_s
|
state: brick_end_s
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -75,7 +75,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: brick_end_w
|
state: brick_end_w
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: brick_line_e
|
state: brick_line_e
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: brick_line_n
|
state: brick_line_n
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: brick_line_s
|
state: brick_line_s
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -107,7 +107,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: brick_line_w
|
state: brick_line_w
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -115,7 +115,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: halftile_overlay
|
state: halftile_overlay
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -123,7 +123,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: halftile_overlay_90
|
state: halftile_overlay_90
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -131,7 +131,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: halftile_overlay_180
|
state: halftile_overlay_180
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -139,7 +139,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: halftile_overlay_270
|
state: halftile_overlay_270
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -147,7 +147,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: quartertile_overlay
|
state: quartertile_overlay
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -155,7 +155,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: quartertile_overlay_90
|
state: quartertile_overlay_90
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -163,7 +163,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: quartertile_overlay_180
|
state: quartertile_overlay_180
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -171,7 +171,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: quartertile_overlay_270
|
state: quartertile_overlay_270
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -179,7 +179,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: threequartertile_overlay
|
state: threequartertile_overlay
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -187,7 +187,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: threequartertile_overlay_90
|
state: threequartertile_overlay_90
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -195,7 +195,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: threequartertile_overlay_180
|
state: threequartertile_overlay_180
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -203,7 +203,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: threequartertile_overlay_270
|
state: threequartertile_overlay_270
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -211,7 +211,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: mono
|
state: mono
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -219,7 +219,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: checkerNESW
|
state: checkerNESW
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -227,7 +227,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: checkerNWSE
|
state: checkerNWSE
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -235,7 +235,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: diagonal
|
state: diagonal
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -243,7 +243,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: diagonal_checker_a
|
state: diagonal_checker_a
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -251,7 +251,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: diagonal_checker_b
|
state: diagonal_checker_b
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -259,7 +259,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: herringbone
|
state: herringbone
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -267,7 +267,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile
|
state: minitile
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -275,7 +275,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_checker_a
|
state: minitile_checker_a
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -283,7 +283,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_checker_b
|
state: minitile_checker_b
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -291,7 +291,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_diagonal
|
state: minitile_diagonal
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -299,7 +299,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_diagonal_a
|
state: minitile_diagonal_a
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -307,7 +307,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_diagonal_b
|
state: minitile_diagonal_b
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -315,7 +315,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_box
|
state: minitile_box
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -323,7 +323,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_corner_ne
|
state: minitile_corner_ne
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -331,7 +331,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_corner_nw
|
state: minitile_corner_nw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -339,7 +339,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_corner_se
|
state: minitile_corner_se
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -347,7 +347,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_corner_sw
|
state: minitile_corner_sw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -355,7 +355,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_end_e
|
state: minitile_end_e
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -363,7 +363,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_end_n
|
state: minitile_end_n
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -371,7 +371,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_end_s
|
state: minitile_end_s
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -379,7 +379,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_end_w
|
state: minitile_end_w
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -387,7 +387,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_inner_ne
|
state: minitile_inner_ne
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -395,7 +395,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_inner_nw
|
state: minitile_inner_nw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -403,7 +403,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_inner_se
|
state: minitile_inner_se
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -411,7 +411,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_inner_sw
|
state: minitile_inner_sw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -419,7 +419,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_line_e
|
state: minitile_line_e
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -427,7 +427,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_line_n
|
state: minitile_line_n
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -435,7 +435,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_line_s
|
state: minitile_line_s
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -443,7 +443,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: minitile_line_w
|
state: minitile_line_w
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -451,7 +451,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: offset
|
state: offset
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -459,7 +459,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: offset_checker_a
|
state: offset_checker_a
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -467,7 +467,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: offset_checker_b
|
state: offset_checker_b
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -475,7 +475,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: pavement
|
state: pavement
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -483,7 +483,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: pavement_checker_a
|
state: pavement_checker_a
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -491,7 +491,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: pavement_checker_b
|
state: pavement_checker_b
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -499,7 +499,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: pavement_vertical
|
state: pavement_vertical
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -507,7 +507,7 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: pavement_vertical_checker_a
|
state: pavement_vertical_checker_a
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
@@ -515,5 +515,5 @@
|
|||||||
tags: ["station", "overlay"]
|
tags: ["station", "overlay"]
|
||||||
defaultCustomColor: true
|
defaultCustomColor: true
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/Overlays/greyscale.rsi
|
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||||
state: pavement_vertical_checker_b
|
state: pavement_vertical_checker_b
|
||||||
|
|||||||
@@ -2,117 +2,117 @@
|
|||||||
id: BrickTileDarkBox
|
id: BrickTileDarkBox
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: dark_box
|
state: dark_box
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileDarkCornerNe
|
id: BrickTileDarkCornerNe
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: dark_corner_ne
|
state: dark_corner_ne
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileDarkCornerSe
|
id: BrickTileDarkCornerSe
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: dark_corner_se
|
state: dark_corner_se
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileDarkCornerNw
|
id: BrickTileDarkCornerNw
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: dark_corner_nw
|
state: dark_corner_nw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileDarkCornerSw
|
id: BrickTileDarkCornerSw
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: dark_corner_sw
|
state: dark_corner_sw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileDarkInnerNe
|
id: BrickTileDarkInnerNe
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: dark_inner_ne
|
state: dark_inner_ne
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileDarkInnerSe
|
id: BrickTileDarkInnerSe
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: dark_inner_se
|
state: dark_inner_se
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileDarkInnerNw
|
id: BrickTileDarkInnerNw
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: dark_inner_nw
|
state: dark_inner_nw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileDarkInnerSw
|
id: BrickTileDarkInnerSw
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: dark_inner_sw
|
state: dark_inner_sw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileDarkEndN
|
id: BrickTileDarkEndN
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: dark_end_n
|
state: dark_end_n
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileDarkEndE
|
id: BrickTileDarkEndE
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: dark_end_e
|
state: dark_end_e
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileDarkEndS
|
id: BrickTileDarkEndS
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: dark_end_s
|
state: dark_end_s
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileDarkEndW
|
id: BrickTileDarkEndW
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: dark_end_w
|
state: dark_end_w
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileDarkLineN
|
id: BrickTileDarkLineN
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: dark_line_n
|
state: dark_line_n
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileDarkLineE
|
id: BrickTileDarkLineE
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: dark_line_e
|
state: dark_line_e
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileDarkLineS
|
id: BrickTileDarkLineS
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: dark_line_s
|
state: dark_line_s
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileDarkLineW
|
id: BrickTileDarkLineW
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: dark_line_w
|
state: dark_line_w
|
||||||
|
|||||||
@@ -2,117 +2,117 @@
|
|||||||
id: BrickTileSteelBox
|
id: BrickTileSteelBox
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: steel_box
|
state: steel_box
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileSteelCornerNe
|
id: BrickTileSteelCornerNe
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: steel_corner_ne
|
state: steel_corner_ne
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileSteelCornerSe
|
id: BrickTileSteelCornerSe
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: steel_corner_se
|
state: steel_corner_se
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileSteelCornerNw
|
id: BrickTileSteelCornerNw
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: steel_corner_nw
|
state: steel_corner_nw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileSteelCornerSw
|
id: BrickTileSteelCornerSw
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: steel_corner_sw
|
state: steel_corner_sw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileSteelInnerNe
|
id: BrickTileSteelInnerNe
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: steel_inner_ne
|
state: steel_inner_ne
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileSteelInnerSe
|
id: BrickTileSteelInnerSe
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: steel_inner_se
|
state: steel_inner_se
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileSteelInnerNw
|
id: BrickTileSteelInnerNw
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: steel_inner_nw
|
state: steel_inner_nw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileSteelInnerSw
|
id: BrickTileSteelInnerSw
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: steel_inner_sw
|
state: steel_inner_sw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileSteelEndN
|
id: BrickTileSteelEndN
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: steel_end_n
|
state: steel_end_n
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileSteelEndE
|
id: BrickTileSteelEndE
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: steel_end_e
|
state: steel_end_e
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileSteelEndS
|
id: BrickTileSteelEndS
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: steel_end_s
|
state: steel_end_s
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileSteelEndW
|
id: BrickTileSteelEndW
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: steel_end_w
|
state: steel_end_w
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileSteelLineN
|
id: BrickTileSteelLineN
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: steel_line_n
|
state: steel_line_n
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileSteelLineE
|
id: BrickTileSteelLineE
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: steel_line_e
|
state: steel_line_e
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileSteelLineS
|
id: BrickTileSteelLineS
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: steel_line_s
|
state: steel_line_s
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileSteelLineW
|
id: BrickTileSteelLineW
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: steel_line_w
|
state: steel_line_w
|
||||||
|
|||||||
@@ -2,117 +2,117 @@
|
|||||||
id: BrickTileWhiteBox
|
id: BrickTileWhiteBox
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: white_box
|
state: white_box
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileWhiteCornerNe
|
id: BrickTileWhiteCornerNe
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: white_corner_ne
|
state: white_corner_ne
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileWhiteCornerSe
|
id: BrickTileWhiteCornerSe
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: white_corner_se
|
state: white_corner_se
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileWhiteCornerNw
|
id: BrickTileWhiteCornerNw
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: white_corner_nw
|
state: white_corner_nw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileWhiteCornerSw
|
id: BrickTileWhiteCornerSw
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: white_corner_sw
|
state: white_corner_sw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileWhiteInnerNe
|
id: BrickTileWhiteInnerNe
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: white_inner_ne
|
state: white_inner_ne
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileWhiteInnerSe
|
id: BrickTileWhiteInnerSe
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: white_inner_se
|
state: white_inner_se
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileWhiteInnerNw
|
id: BrickTileWhiteInnerNw
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: white_inner_nw
|
state: white_inner_nw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileWhiteInnerSw
|
id: BrickTileWhiteInnerSw
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: white_inner_sw
|
state: white_inner_sw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileWhiteEndN
|
id: BrickTileWhiteEndN
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: white_end_n
|
state: white_end_n
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileWhiteEndE
|
id: BrickTileWhiteEndE
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: white_end_e
|
state: white_end_e
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileWhiteEndS
|
id: BrickTileWhiteEndS
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: white_end_s
|
state: white_end_s
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileWhiteEndW
|
id: BrickTileWhiteEndW
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: white_end_w
|
state: white_end_w
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileWhiteLineN
|
id: BrickTileWhiteLineN
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: white_line_n
|
state: white_line_n
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileWhiteLineE
|
id: BrickTileWhiteLineE
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: white_line_e
|
state: white_line_e
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileWhiteLineS
|
id: BrickTileWhiteLineS
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: white_line_s
|
state: white_line_s
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: BrickTileWhiteLineW
|
id: BrickTileWhiteLineW
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/bricktile.rsi
|
sprite: _TBD/Decals/bricktile.rsi
|
||||||
state: white_line_w
|
state: white_line_w
|
||||||
|
|||||||
@@ -2,117 +2,117 @@
|
|||||||
id: WoodTrimThinBox
|
id: WoodTrimThinBox
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/wood_trim.rsi
|
sprite: _TBD/Decals/wood_trim.rsi
|
||||||
state: thin_box
|
state: thin_box
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: WoodTrimThinCornerNe
|
id: WoodTrimThinCornerNe
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/wood_trim.rsi
|
sprite: _TBD/Decals/wood_trim.rsi
|
||||||
state: thin_corner_ne
|
state: thin_corner_ne
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: WoodTrimThinCornerSe
|
id: WoodTrimThinCornerSe
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/wood_trim.rsi
|
sprite: _TBD/Decals/wood_trim.rsi
|
||||||
state: thin_corner_se
|
state: thin_corner_se
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: WoodTrimThinCornerNw
|
id: WoodTrimThinCornerNw
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/wood_trim.rsi
|
sprite: _TBD/Decals/wood_trim.rsi
|
||||||
state: thin_corner_nw
|
state: thin_corner_nw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: WoodTrimThinCornerSw
|
id: WoodTrimThinCornerSw
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/wood_trim.rsi
|
sprite: _TBD/Decals/wood_trim.rsi
|
||||||
state: thin_corner_sw
|
state: thin_corner_sw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: WoodTrimThinInnerNe
|
id: WoodTrimThinInnerNe
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/wood_trim.rsi
|
sprite: _TBD/Decals/wood_trim.rsi
|
||||||
state: thin_inner_ne
|
state: thin_inner_ne
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: WoodTrimThinInnerSe
|
id: WoodTrimThinInnerSe
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/wood_trim.rsi
|
sprite: _TBD/Decals/wood_trim.rsi
|
||||||
state: thin_inner_se
|
state: thin_inner_se
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: WoodTrimThinInnerNw
|
id: WoodTrimThinInnerNw
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/wood_trim.rsi
|
sprite: _TBD/Decals/wood_trim.rsi
|
||||||
state: thin_inner_nw
|
state: thin_inner_nw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: WoodTrimThinInnerSw
|
id: WoodTrimThinInnerSw
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/wood_trim.rsi
|
sprite: _TBD/Decals/wood_trim.rsi
|
||||||
state: thin_inner_sw
|
state: thin_inner_sw
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: WoodTrimThinEndN
|
id: WoodTrimThinEndN
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/wood_trim.rsi
|
sprite: _TBD/Decals/wood_trim.rsi
|
||||||
state: thin_end_n
|
state: thin_end_n
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: WoodTrimThinEndE
|
id: WoodTrimThinEndE
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/wood_trim.rsi
|
sprite: _TBD/Decals/wood_trim.rsi
|
||||||
state: thin_end_e
|
state: thin_end_e
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: WoodTrimThinEndS
|
id: WoodTrimThinEndS
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/wood_trim.rsi
|
sprite: _TBD/Decals/wood_trim.rsi
|
||||||
state: thin_end_s
|
state: thin_end_s
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: WoodTrimThinEndW
|
id: WoodTrimThinEndW
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/wood_trim.rsi
|
sprite: _TBD/Decals/wood_trim.rsi
|
||||||
state: thin_end_w
|
state: thin_end_w
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: WoodTrimThinLineN
|
id: WoodTrimThinLineN
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/wood_trim.rsi
|
sprite: _TBD/Decals/wood_trim.rsi
|
||||||
state: thin_line_n
|
state: thin_line_n
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: WoodTrimThinLineE
|
id: WoodTrimThinLineE
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/wood_trim.rsi
|
sprite: _TBD/Decals/wood_trim.rsi
|
||||||
state: thin_line_e
|
state: thin_line_e
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: WoodTrimThinLineS
|
id: WoodTrimThinLineS
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/wood_trim.rsi
|
sprite: _TBD/Decals/wood_trim.rsi
|
||||||
state: thin_line_s
|
state: thin_line_s
|
||||||
|
|
||||||
- type: decal
|
- type: decal
|
||||||
id: WoodTrimThinLineW
|
id: WoodTrimThinLineW
|
||||||
tags: ["station", "markings"]
|
tags: ["station", "markings"]
|
||||||
sprite:
|
sprite:
|
||||||
sprite: Decals/wood_trim.rsi
|
sprite: _TBD/Decals/wood_trim.rsi
|
||||||
state: thin_line_w
|
state: thin_line_w
|
||||||
|
|||||||
9
Resources/Prototypes/DeltaV/Body/Organs/ashwalker.yml
Normal file
9
Resources/Prototypes/DeltaV/Body/Organs/ashwalker.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
- type: entity
|
||||||
|
parent: OrganAnimalLungs
|
||||||
|
id: OrganAshWalkerLungs
|
||||||
|
name: ashwalker lungs
|
||||||
|
description: These lungs are adapted from isolation in lavaland, capable of withstanding the low oxygen content and ash storms.
|
||||||
|
components:
|
||||||
|
- type: Lung
|
||||||
|
saturationLoss: 0.5
|
||||||
|
# TODO SHITMED: add AshStormImmune when transplanted
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
- type: entity
|
||||||
|
parent: ClothingBackpackDuffelSalvage
|
||||||
|
id: ClothingBackpackDuffelSalvageConscription
|
||||||
|
name: mining conscription kit
|
||||||
|
description: A duffel bag containing everything a crewmember needs to support a shaft miner in the field.
|
||||||
|
components:
|
||||||
|
- type: StorageFill
|
||||||
|
contents:
|
||||||
|
- id: ClothingEyesGlassesMeson
|
||||||
|
- id: MineralScanner
|
||||||
|
- id: OreBag
|
||||||
|
- id: ClothingUniformJumpsuitSalvageSpecialist
|
||||||
|
- id: EncryptionKeyCargo
|
||||||
|
- id: ClothingMaskGasExplorer
|
||||||
|
- id: SalvageIDCard
|
||||||
|
- id: WeaponProtoKineticAccelerator
|
||||||
|
- id: SurvivalKnife
|
||||||
|
- id: FlashlightSeclite
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
- type: shopInventory
|
||||||
|
id: SalvageVendorInventory
|
||||||
|
listings:
|
||||||
|
# TODO: marker beacons 1/10/30 for 10 each
|
||||||
|
- id: DrinkWhiskeyBottleFull
|
||||||
|
cost: 100
|
||||||
|
- id: DrinkAbsintheBottleFull
|
||||||
|
cost: 100
|
||||||
|
- id: CigarGold
|
||||||
|
cost: 150
|
||||||
|
- id: Soap
|
||||||
|
cost: 200
|
||||||
|
- id: SeismicCharge
|
||||||
|
cost: 250
|
||||||
|
- id: WeaponGrapplingGun
|
||||||
|
cost: 300
|
||||||
|
# TODO: laser pointer 300, toy facehugger 300
|
||||||
|
# TODO: stabilizing serum for 400
|
||||||
|
- id: FultonBeacon
|
||||||
|
cost: 400
|
||||||
|
- id: ShelterCapsule
|
||||||
|
cost: 400
|
||||||
|
- id: ClothingEyesGlassesGarMeson
|
||||||
|
cost: 500
|
||||||
|
- id: ClothingBeltSalvageWebbing
|
||||||
|
cost: 500
|
||||||
|
- id: MedkitBruteFilled
|
||||||
|
cost: 600
|
||||||
|
- id: MedkitBurnFilled
|
||||||
|
cost: 600
|
||||||
|
# TODO: salvage 5g, 3 implants and a locator for 600
|
||||||
|
# TODO: wormhole jaunter for 750
|
||||||
|
- id: WeaponCrusher
|
||||||
|
cost: 750
|
||||||
|
- id: WeaponProtoKineticAccelerator
|
||||||
|
cost: 750
|
||||||
|
- id: AdvancedMineralScanner
|
||||||
|
cost: 800
|
||||||
|
# TODO: resonator for 800
|
||||||
|
- id: Fulton
|
||||||
|
cost: 1000
|
||||||
|
# TODO: lazarus injector for 1k
|
||||||
|
- id: ClothingBackpackDuffelSalvageConscription
|
||||||
|
cost: 1500
|
||||||
|
- id: SpaceCash1000
|
||||||
|
cost: 2000
|
||||||
|
# TODO: super resonator for 2500
|
||||||
|
# TODO: jump boots for 2500
|
||||||
|
- id: ClothingOuterHardsuitSalvage
|
||||||
|
cost: 3000
|
||||||
|
- id: ShelterCapsuleLuxury
|
||||||
|
cost: 3000
|
||||||
|
- id: ShelterCapsuleBar
|
||||||
|
cost: 10000
|
||||||
|
# TODO: pka mods
|
||||||
|
# TODO: mining drone stuff
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
- type: entity
|
||||||
|
parent: ClothingEyesGlassesGar
|
||||||
|
id: ClothingEyesGlassesGarMeson
|
||||||
|
name: gar mesons
|
||||||
|
description: Do the impossible, see the invisible!
|
||||||
|
components:
|
||||||
|
- type: EyeProtection
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
- type: entity
|
||||||
|
save: false
|
||||||
|
parent: MobReptilian
|
||||||
|
id: MobAshWalker
|
||||||
|
name: Urist McAsh
|
||||||
|
suffix: ""
|
||||||
|
components:
|
||||||
|
- type: Body
|
||||||
|
prototype: AshWalker
|
||||||
|
- type: AshStormImmune
|
||||||
|
# TODO: shitmed stuff so you can steal ashwalker lungs
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
- type: entity
|
||||||
|
parent: BaseComputerCircuitboard
|
||||||
|
id: MiningShuttleConsoleCircuitboard
|
||||||
|
name: mining shuttle console board
|
||||||
|
description: A printed circuit board for a mining shuttle console.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
state: cpu_supply
|
||||||
|
- type: ComputerBoard
|
||||||
|
prototype: ComputerShuttleMining
|
||||||
7
Resources/Prototypes/DeltaV/Entities/Stations/base.yml
Normal file
7
Resources/Prototypes/DeltaV/Entities/Stations/base.yml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
- type: entity
|
||||||
|
abstract: true
|
||||||
|
id: BaseStationLavaland
|
||||||
|
components:
|
||||||
|
- type: StationPlanetSpawner
|
||||||
|
planet: Lavaland
|
||||||
|
gridPath: /Maps/Nonstations/_TBD/lavaland_base.yml
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# this goes on lavaland, unlimited
|
||||||
|
- type: entity
|
||||||
|
parent: AirlockGlassShuttle
|
||||||
|
id: AirlockExternalGlassShuttleMining
|
||||||
|
suffix: External, Mining, Glass, Docking, Locked
|
||||||
|
components:
|
||||||
|
- type: PriorityDock
|
||||||
|
tag: DockMining
|
||||||
|
- type: ContainerFill
|
||||||
|
containers:
|
||||||
|
board: [ DoorElectronicsExternal ]
|
||||||
|
|
||||||
|
# 1 per map, this spawns the mining shuttle
|
||||||
|
- type: entity
|
||||||
|
parent: AirlockExternalGlassShuttleMining
|
||||||
|
id: AirlockExternalGlassShuttleMiningFilled
|
||||||
|
suffix: Mining, Filled, Locked
|
||||||
|
components:
|
||||||
|
- type: GridFill
|
||||||
|
path: /Maps/Shuttles/DeltaV/mining.yml
|
||||||
|
addComponents:
|
||||||
|
- type: IFF
|
||||||
|
flags:
|
||||||
|
- HideLabel
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
- type: entity
|
||||||
|
abstract: true
|
||||||
|
parent: BaseComputer
|
||||||
|
id: BaseComputerDocking
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
layers:
|
||||||
|
- map: [ "computerLayerBody" ]
|
||||||
|
state: computer
|
||||||
|
- map: [ "computerLayerKeyboard" ]
|
||||||
|
state: generic_keyboard
|
||||||
|
- map: [ "computerLayerScreen" ]
|
||||||
|
state: shuttle
|
||||||
|
- map: ["computerLayerKeys" ]
|
||||||
|
state: generic_keys
|
||||||
|
- map: [ "enum.WiresVisualLayers.MaintenancePanel" ]
|
||||||
|
state: generic_panel_open
|
||||||
|
- type: ActivatableUI
|
||||||
|
key: enum.DockingConsoleUiKey.Key
|
||||||
|
- type: UserInterface
|
||||||
|
interfaces:
|
||||||
|
enum.DockingConsoleUiKey.Key:
|
||||||
|
type: DockingConsoleBoundUserInterface
|
||||||
|
enum.WiresUiKey.Key:
|
||||||
|
type: WiresBoundUserInterface
|
||||||
|
- type: WorldLoader
|
||||||
|
radius: 256
|
||||||
|
- type: DockingConsole
|
||||||
|
- type: PointLight
|
||||||
|
radius: 1.5
|
||||||
|
energy: 1.6
|
||||||
|
color: "#43ccb5"
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: BaseComputerDocking
|
||||||
|
id: ComputerShuttleMining
|
||||||
|
name: mining shuttle console
|
||||||
|
description: Used to pilot the mining shuttle to and from the mining base.
|
||||||
|
components:
|
||||||
|
- type: DockingConsole
|
||||||
|
windowTitle: mining-console-window-title
|
||||||
|
dockTag: DockMining
|
||||||
|
shuttleWhitelist:
|
||||||
|
components:
|
||||||
|
- MiningShuttle
|
||||||
|
- type: Computer
|
||||||
|
board: MiningShuttleConsoleCircuitboard
|
||||||
|
- type: AccessReader
|
||||||
|
access:
|
||||||
|
- [ Salvage ]
|
||||||
7
Resources/Prototypes/DeltaV/Wires/layouts.yml
Normal file
7
Resources/Prototypes/DeltaV/Wires/layouts.yml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
- type: wireLayout
|
||||||
|
id: ShopVendor
|
||||||
|
wires:
|
||||||
|
- !type:AiInteractWireAction
|
||||||
|
- !type:PowerWireAction
|
||||||
|
- !type:AccessWireAction
|
||||||
|
- !type:LogWireAction
|
||||||
75
Resources/Prototypes/DeltaV/planets.yml
Normal file
75
Resources/Prototypes/DeltaV/planets.yml
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
- type: planet
|
||||||
|
id: Lavaland
|
||||||
|
biome: Lava
|
||||||
|
mapName: shuttle-destination-lavaland
|
||||||
|
mapLight: "#A34931"
|
||||||
|
addedComponents:
|
||||||
|
- type: FTLDestination
|
||||||
|
whitelist:
|
||||||
|
components:
|
||||||
|
- MiningShuttle
|
||||||
|
- type: WeatherScheduler # Regular ash storms
|
||||||
|
stages:
|
||||||
|
- duration: # 5-10 minutes of calm
|
||||||
|
min: 300
|
||||||
|
max: 600
|
||||||
|
- weather: AshfallLight # ash starts to fall, 30 second warning
|
||||||
|
message: ash-storm-telegraph
|
||||||
|
duration:
|
||||||
|
min: 30
|
||||||
|
max: 30
|
||||||
|
- weather: Ashfall # 1-2 minutes of damaging storm
|
||||||
|
message: ash-storm-alert
|
||||||
|
duration:
|
||||||
|
min: 60
|
||||||
|
max: 120
|
||||||
|
- weather: AshfallLight # ash clears away for 30 seconds
|
||||||
|
message: ash-storm-clearing
|
||||||
|
duration:
|
||||||
|
min: 30
|
||||||
|
max: 30
|
||||||
|
atmosphere:
|
||||||
|
volume: 2500
|
||||||
|
temperature: 353.15 # 80C
|
||||||
|
moles: # 120kPa, 14% O2 (unbreathable)
|
||||||
|
- 14.38346
|
||||||
|
- 88.35554
|
||||||
|
biomeMarkerLayers:
|
||||||
|
- OreIron
|
||||||
|
- OreQuartz
|
||||||
|
- OreCoal
|
||||||
|
- OreGold
|
||||||
|
- OreSilver
|
||||||
|
- OrePlasmaLow
|
||||||
|
- OreUranium
|
||||||
|
- OreDiamondLow
|
||||||
|
- OreArtifactFragment
|
||||||
|
- WatchersLavaland
|
||||||
|
- GoliathsLavaland
|
||||||
|
|
||||||
|
- type: planet
|
||||||
|
id: GlacierSurface
|
||||||
|
biome: Snow
|
||||||
|
mapName: shuttle-destination-glacier-surface
|
||||||
|
mapLight: "#2B3153"
|
||||||
|
addedComponents:
|
||||||
|
- type: FTLDestination
|
||||||
|
whitelist:
|
||||||
|
components:
|
||||||
|
- MiningShuttle
|
||||||
|
atmosphere:
|
||||||
|
volume: 2500
|
||||||
|
temperature: 180 # -93, extreme cold
|
||||||
|
moles: # 119kPa, 21% O2
|
||||||
|
- 42
|
||||||
|
- 158
|
||||||
|
biomeMarkerLayers:
|
||||||
|
- OreIron
|
||||||
|
- OreQuartz
|
||||||
|
- OreCoal
|
||||||
|
- OreGold
|
||||||
|
- OreSilver
|
||||||
|
- OrePlasma
|
||||||
|
- OreUraniumLow
|
||||||
|
- OreDiamond
|
||||||
|
- OreArtifactFragment
|
||||||
2
Resources/Prototypes/DeltaV/tags.yml
Normal file
2
Resources/Prototypes/DeltaV/tags.yml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
- type: Tag
|
||||||
|
id: DockMining
|
||||||
@@ -16,9 +16,9 @@
|
|||||||
description: It's a blue jumpskirt with some gold markings denoting the rank of "Captain".
|
description: It's a blue jumpskirt with some gold markings denoting the rank of "Captain".
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/captain.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/captain.rsi
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/captain.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/captain.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: ClothingUniformSkirtBase
|
parent: ClothingUniformSkirtBase
|
||||||
@@ -27,9 +27,9 @@
|
|||||||
description: A sturdy jumpskirt, issued to members of the Cargo department.
|
description: A sturdy jumpskirt, issued to members of the Cargo department.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/cargotech.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/cargotech.rsi
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/cargotech.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/cargotech.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: [ClothingUniformSkirtBase, BaseCommandContraband]
|
parent: [ClothingUniformSkirtBase, BaseCommandContraband]
|
||||||
@@ -82,9 +82,9 @@
|
|||||||
description: There's some odd stains on this jumpskirt. Hm.
|
description: There's some odd stains on this jumpskirt. Hm.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/chemistry.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/chemistry.rsi
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/chemistry.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/chemistry.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: ClothingUniformSkirtBase
|
parent: ClothingUniformSkirtBase
|
||||||
@@ -159,9 +159,9 @@
|
|||||||
description: If this suit was non-conductive, maybe engineers would actually do their damn job.
|
description: If this suit was non-conductive, maybe engineers would actually do their damn job.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/engineering.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/engineering.rsi
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/engineering.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/engineering.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: [ClothingUniformSkirtBase, BaseCommandContraband]
|
parent: [ClothingUniformSkirtBase, BaseCommandContraband]
|
||||||
@@ -170,9 +170,9 @@
|
|||||||
description: Rather bland and inoffensive. Perfect for vanishing off the face of the universe.
|
description: Rather bland and inoffensive. Perfect for vanishing off the face of the universe.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/hop.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/hop.rsi
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/hop.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/hop.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: [ClothingUniformSkirtBase, BaseCommandContraband]
|
parent: [ClothingUniformSkirtBase, BaseCommandContraband]
|
||||||
@@ -239,9 +239,9 @@
|
|||||||
description: Has a strong earthy smell to it. Hopefully it's merely dirty as opposed to soiled.
|
description: Has a strong earthy smell to it. Hopefully it's merely dirty as opposed to soiled.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/hydro.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/hydro.rsi
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/hydro.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/hydro.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: ClothingUniformSkirtBase
|
parent: ClothingUniformSkirtBase
|
||||||
@@ -261,9 +261,9 @@
|
|||||||
description: It's made of a special fiber that provides minor protection against biohazards. It has a cross on the chest denoting that the wearer is trained medical personnel.
|
description: It's made of a special fiber that provides minor protection against biohazards. It has a cross on the chest denoting that the wearer is trained medical personnel.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/medical.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/medical.rsi
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/medical.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/medical.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: ClothingUniformSkirtBase
|
parent: ClothingUniformSkirtBase
|
||||||
@@ -345,9 +345,9 @@
|
|||||||
description: 'What can brown do for you?'
|
description: 'What can brown do for you?'
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/qm.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/qm.rsi
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/qm.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/qm.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: [ClothingUniformSkirtBase, BaseCommandContraband]
|
parent: [ClothingUniformSkirtBase, BaseCommandContraband]
|
||||||
@@ -378,9 +378,9 @@
|
|||||||
description: It's made of a special fiber that increases perceived intelligence and decreases personal ethics. It has markings that denote the wearer as a scientist.
|
description: It's made of a special fiber that increases perceived intelligence and decreases personal ethics. It has markings that denote the wearer as a scientist.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/scientist.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/scientist.rsi
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/scientist.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/scientist.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: ClothingUniformSkirtBase
|
parent: ClothingUniformSkirtBase
|
||||||
@@ -389,9 +389,9 @@
|
|||||||
description: It's a slimming black with reinforced seams; great for industrial work.
|
description: It's a slimming black with reinforced seams; great for industrial work.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/roboticist.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/roboticist.rsi
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/roboticist.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/roboticist.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: [ClothingUniformSkirtBase, BaseSecurityContraband]
|
parent: [ClothingUniformSkirtBase, BaseSecurityContraband]
|
||||||
@@ -546,9 +546,9 @@
|
|||||||
description: I am at work. I can't leave work. Work is breathing. I am testing air quality.
|
description: I am at work. I can't leave work. Work is breathing. I am testing air quality.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/atmosf.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/atmos.rsi
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: Clothing/Uniforms/Jumpskirt/atmosf.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpskirt/atmos.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: ClothingUniformSkirtBase
|
parent: ClothingUniformSkirtBase
|
||||||
|
|||||||
@@ -62,9 +62,9 @@
|
|||||||
description: It's a blue jumpsuit with some gold markings denoting the rank of "Captain".
|
description: It's a blue jumpsuit with some gold markings denoting the rank of "Captain".
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpsuit/captain.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpsuit/captain.rsi
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: Clothing/Uniforms/Jumpsuit/captain.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpsuit/captain.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: [ClothingUniformBase, ClothingUniformFoldableBase]
|
parent: [ClothingUniformBase, ClothingUniformFoldableBase]
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
description: A sturdy jumpsuit, issued to members of the Cargo department.
|
description: A sturdy jumpsuit, issued to members of the Cargo department.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpsuit/cargotech.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpsuit/cargotech.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: [ClothingUniformBase, ClothingUniformFoldableBase]
|
parent: [ClothingUniformBase, ClothingUniformFoldableBase]
|
||||||
@@ -166,7 +166,7 @@
|
|||||||
description: There's some odd stains on this jumpsuit. Hm.
|
description: There's some odd stains on this jumpsuit. Hm.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpsuit/chemistry.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpsuit/chemistry.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: ClothingUniformBase
|
parent: ClothingUniformBase
|
||||||
@@ -291,7 +291,7 @@
|
|||||||
description: If this suit was non-conductive, maybe engineers would actually do their damn job.
|
description: If this suit was non-conductive, maybe engineers would actually do their damn job.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpsuit/engineering.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpsuit/engineering.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: [ClothingUniformBase, ClothingUniformFoldableBase]
|
parent: [ClothingUniformBase, ClothingUniformFoldableBase]
|
||||||
@@ -309,7 +309,7 @@
|
|||||||
description: Rather bland and inoffensive. Perfect for vanishing off the face of the universe.
|
description: Rather bland and inoffensive. Perfect for vanishing off the face of the universe.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpsuit/hop.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpsuit/hop.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: [ClothingUniformBase, BaseCommandContraband]
|
parent: [ClothingUniformBase, BaseCommandContraband]
|
||||||
@@ -396,7 +396,7 @@
|
|||||||
description: Has a strong earthy smell to it. Hopefully it's merely dirty as opposed to soiled.
|
description: Has a strong earthy smell to it. Hopefully it's merely dirty as opposed to soiled.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpsuit/hydro.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpsuit/hydro.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: [ClothingUniformBase, ClothingUniformFoldableBase]
|
parent: [ClothingUniformBase, ClothingUniformFoldableBase]
|
||||||
@@ -425,7 +425,7 @@
|
|||||||
description: It's made of a special fiber that provides minor protection against biohazards. It has a cross on the chest denoting that the wearer is trained medical personnel.
|
description: It's made of a special fiber that provides minor protection against biohazards. It has a cross on the chest denoting that the wearer is trained medical personnel.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpsuit/medical.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpsuit/medical.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: ClothingUniformBase
|
parent: ClothingUniformBase
|
||||||
@@ -507,9 +507,9 @@
|
|||||||
description: 'What can brown do for you?'
|
description: 'What can brown do for you?'
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpsuit/qm.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpsuit/qm.rsi
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: Clothing/Uniforms/Jumpsuit/qm.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpsuit/qm.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: [ClothingUniformBase, BaseCommandContraband]
|
parent: [ClothingUniformBase, BaseCommandContraband]
|
||||||
@@ -551,7 +551,7 @@
|
|||||||
description: It's made of a special fiber that increases perceived intelligence and decreases personal ethics. It has markings that denote the wearer as a scientist.
|
description: It's made of a special fiber that increases perceived intelligence and decreases personal ethics. It has markings that denote the wearer as a scientist.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpsuit/scientist.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpsuit/scientist.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: ClothingUniformBase
|
parent: ClothingUniformBase
|
||||||
@@ -571,7 +571,7 @@
|
|||||||
description: It's a slimming black with reinforced seams; great for industrial work.
|
description: It's a slimming black with reinforced seams; great for industrial work.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpsuit/roboticist.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpsuit/roboticist.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: [ClothingUniformBase, BaseSecurityContraband, ClothingUniformFoldableBase]
|
parent: [ClothingUniformBase, BaseSecurityContraband, ClothingUniformFoldableBase]
|
||||||
@@ -872,7 +872,7 @@
|
|||||||
description: I am at work. I can't leave work. Work is breathing. I am testing air quality.
|
description: I am at work. I can't leave work. Work is breathing. I am testing air quality.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Uniforms/Jumpsuit/atmos.rsi
|
sprite: _TBD/Clothing/Uniforms/Jumpsuit/atmos.rsi
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: [ClothingUniformBase, ClothingUniformFoldableBase]
|
parent: [ClothingUniformBase, ClothingUniformFoldableBase]
|
||||||
|
|||||||
@@ -173,228 +173,534 @@
|
|||||||
state: underwing_secondary
|
state: underwing_secondary
|
||||||
|
|
||||||
# Wings
|
# Wings
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsDefault
|
id: MothWingsDefault
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
default_neck: TailBehindBackpack
|
||||||
|
default_primary_behind: TailBehind
|
||||||
|
default_primary_front: TailBehindBackpack
|
||||||
|
default_secondary_behind: TailBehind
|
||||||
|
default_secondary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
default_primary_behind: default_primary_front
|
||||||
|
default_secondary_behind: default_secondary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: default
|
state: default_neck
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: default_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: default_primary_front
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: default_secondary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: default_secondary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsCharred
|
id: MothWingsCharred
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
charred_neck: TailBehindBackpack
|
||||||
|
charred_primary_behind: TailBehind
|
||||||
|
charred_primary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
charred_primary_behind: charred_primary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: charred
|
state: charred_neck
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: charred_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: charred_primary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsDbushy
|
id: MothWingsDbushy
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
dbushy_neck: TailBehindBackpack
|
||||||
|
dbushy_primary_behind: TailBehind
|
||||||
|
dbushy_primary_front: TailBehindBackpack
|
||||||
|
dbushy_secondary_behind: TailBehind
|
||||||
|
dbushy_secondary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
dbushy_primary_behind: dbushy_primary_front
|
||||||
|
dbushy_secondary_behind: dbushy_secondary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: dbushy_primary
|
state: dbushy_neck
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: dbushy_secondary
|
state: dbushy_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: dbushy_primary_front
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: dbushy_secondary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: dbushy_secondary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsDeathhead
|
id: MothWingsDeathhead
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
deathhead_neck: TailBehindBackpack
|
||||||
|
deathhead_primary_behind: TailBehind
|
||||||
|
deathhead_primary_front: TailBehindBackpack
|
||||||
|
deathhead_secondary_behind: TailBehind
|
||||||
|
deathhead_secondary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
deathhead_primary_behind: deathhead_primary_front
|
||||||
|
deathhead_secondary_behind: deathhead_secondary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: deathhead_primary
|
state: deathhead_neck
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: deathhead_secondary
|
state: deathhead_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: deathhead_primary_front
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: deathhead_secondary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: deathhead_secondary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsFan
|
id: MothWingsFan
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
fan_neck: TailBehindBackpack
|
||||||
|
fan_primary_behind: TailBehind
|
||||||
|
fan_primary_front: TailBehindBackpack
|
||||||
|
fan_secondary_behind: TailBehind
|
||||||
|
fan_secondary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
fan_primary_behind: fan_primary_front
|
||||||
|
fan_secondary_behind: fan_secondary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: fan
|
state: fan_neck
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: fan_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: fan_primary_front
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: fan_secondary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: fan_secondary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsDfan
|
id: MothWingsDfan
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
dfan_neck: TailBehindBackpack
|
||||||
|
dfan_primary_behind: TailBehind
|
||||||
|
dfan_primary_front: TailBehindBackpack
|
||||||
|
dfan_secondary_behind: TailBehind
|
||||||
|
dfan_secondary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
dfan_primary_behind: dfan_primary_front
|
||||||
|
dfan_secondary_behind: dfan_secondary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: dfan
|
state: dfan_neck
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: dfan_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: dfan_primary_front
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: dfan_secondary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: dfan_secondary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsFeathery
|
id: MothWingsFeathery
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
feathery_neck: TailBehindBackpack
|
||||||
|
feathery_primary_behind: TailBehind
|
||||||
|
feathery_primary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
feathery_primary_behind: feathery_primary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: feathery
|
state: feathery_neck
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: feathery_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: feathery_primary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsFirewatch
|
id: MothWingsFirewatch
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
firewatch_neck: TailBehindBackpack
|
||||||
|
firewatch_primary_behind: TailBehind
|
||||||
|
firewatch_primary_front: TailBehindBackpack
|
||||||
|
firewatch_secondary_behind: TailBehind
|
||||||
|
firewatch_secondary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
firewatch_primary_behind: firewatch_primary_front
|
||||||
|
firewatch_secondary_behind: firewatch_secondary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: firewatch_primary
|
state: firewatch_neck
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: firewatch_secondary
|
state: firewatch_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: firewatch_primary_front
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: firewatch_secondary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: firewatch_secondary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsGothic
|
id: MothWingsGothic
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
gothic_neck: TailBehindBackpack
|
||||||
|
gothic_primary_behind: TailBehind
|
||||||
|
gothic_primary_front: TailBehindBackpack
|
||||||
|
gothic_secondary_behind: TailBehind
|
||||||
|
gothic_secondary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
gothic_primary_behind: gothic_primary_front
|
||||||
|
gothic_secondary_behind: gothic_secondary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: gothic
|
state: gothic_neck
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: gothic_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: gothic_primary_front
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: gothic_secondary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: gothic_secondary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsJungle
|
id: MothWingsJungle
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
jungle_neck: TailBehindBackpack
|
||||||
|
jungle_primary_behind: TailBehind
|
||||||
|
jungle_primary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
jungle_primary_behind: jungle_primary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: jungle
|
state: jungle_neck
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: jungle_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: jungle_primary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsLadybug
|
id: MothWingsLadybug
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
ladybug_neck: TailBehindBackpack
|
||||||
|
ladybug_primary_behind: TailBehind
|
||||||
|
ladybug_primary_front: TailBehindBackpack
|
||||||
|
ladybug_secondary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
ladybug_primary_behind: ladybug_primary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: ladybug
|
state: ladybug_neck
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: ladybug_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: ladybug_primary_front
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: ladybug_secondary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsMaple
|
id: MothWingsMaple
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
maple_neck: TailBehindBackpack
|
||||||
|
maple_primary_behind: TailBehind
|
||||||
|
maple_primary_front: TailBehindBackpack
|
||||||
|
maple_secondary_behind: TailBehind
|
||||||
|
maple_secondary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
maple_primary_behind: maple_primary_front
|
||||||
|
maple_secondary_behind: maple_secondary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: maple_primary
|
state: maple_neck
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: maple_secondary
|
state: maple_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: maple_primary_front
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: maple_secondary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: maple_secondary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsMoffra
|
id: MothWingsMoffra
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
moffra_neck: TailBehindBackpack
|
||||||
|
moffra_neck_secondary: TailBehindBackpack
|
||||||
|
moffra_primary_behind: TailBehind
|
||||||
|
moffra_primary_front: TailBehindBackpack
|
||||||
|
moffra_secondary_behind: TailBehind
|
||||||
|
moffra_secondary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
moffra_primary_behind: moffra_primary_front
|
||||||
|
moffra_secondary_behind: moffra_secondary_front
|
||||||
|
moffra_neck_secondary: moffra_secondary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: moffra_primary
|
state: moffra_neck
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: moffra_secondary
|
state: moffra_neck_secondary
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: moffra_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: moffra_primary_front
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: moffra_secondary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: moffra_secondary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsOakworm
|
id: MothWingsOakworm
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
oakworm_neck: TailBehindBackpack
|
||||||
|
oakworm_primary_behind: TailBehind
|
||||||
|
oakworm_primary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
oakworm_primary_behind: oakworm_primary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: oakworm
|
state: oakworm_neck
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: oakworm_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: oakworm_primary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsPlasmafire
|
id: MothWingsPlasmafire
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
plasmafire_neck: TailBehindBackpack
|
||||||
|
plasmafire_primary_behind: TailBehind
|
||||||
|
plasmafire_primary_front: TailBehindBackpack
|
||||||
|
plasmafire_secondary_behind: TailBehind
|
||||||
|
plasmafire_secondary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
plasmafire_primary_behind: plasmafire_primary_front
|
||||||
|
plasmafire_secondary_behind: plasmafire_secondary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: plasmafire_primary
|
state: plasmafire_neck
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: plasmafire_secondary
|
state: plasmafire_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: plasmafire_primary_front
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: plasmafire_secondary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: plasmafire_secondary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsPointy
|
id: MothWingsPointy
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
pointy_neck: TailBehindBackpack
|
||||||
|
pointy_primary_behind: TailBehind
|
||||||
|
pointy_primary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
pointy_primary_behind: pointy_primary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: pointy
|
state: pointy_neck
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: pointy_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: pointy_primary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsRoyal
|
id: MothWingsRoyal
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
royal_neck: TailBehindBackpack
|
||||||
|
royal_primary_behind: TailBehind
|
||||||
|
royal_primary_front: TailBehindBackpack
|
||||||
|
royal_secondary_behind: TailBehind
|
||||||
|
royal_secondary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
royal_primary_behind: royal_primary_front
|
||||||
|
royal_secondary_behind: royal_secondary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: royal_primary
|
state: royal_neck
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: royal_secondary
|
state: royal_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: royal_primary_front
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: royal_secondary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: royal_secondary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsStellar
|
id: MothWingsStellar
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
stellar_neck: TailBehindBackpack
|
||||||
|
stellar_primary_behind: TailBehind
|
||||||
|
stellar_primary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
stellar_primary_behind: stellar_primary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: stellar
|
state: stellar_neck
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: stellar_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: stellar_primary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsStriped
|
id: MothWingsStriped
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
striped_neck: TailBehindBackpack
|
||||||
|
striped_primary_behind: TailBehind
|
||||||
|
striped_primary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
striped_primary_behind: striped_primary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: striped
|
state: striped_neck
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: striped_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: striped_primary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsSwirly
|
id: MothWingsSwirly
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
swirly_neck: TailBehindBackpack
|
||||||
|
swirly_primary_behind: TailBehind
|
||||||
|
swirly_primary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
swirly_primary_behind: swirly_primary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: swirly
|
state: swirly_neck
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: swirly_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: swirly_primary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsWhitefly
|
id: MothWingsWhitefly
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
whitefly_neck: TailBehindBackpack
|
||||||
|
whitefly_primary_behind: TailBehind
|
||||||
|
whitefly_primary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
whitefly_primary_behind: whitefly_primary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: whitefly
|
state: whitefly_neck
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: whitefly_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: whitefly_primary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsWitchwing
|
id: MothWingsWitchwing
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
witchwing_neck: TailBehindBackpack
|
||||||
|
witchwing_primary_behind: TailBehind
|
||||||
|
witchwing_primary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
witchwing_primary_behind: witchwing_primary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: witchwing
|
state: witchwing_neck
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: witchwing_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: witchwing_primary_front # imp edit end
|
||||||
|
|
||||||
- type: marking
|
- type: marking
|
||||||
id: MothWingsUnderwing
|
id: MothWingsUnderwing
|
||||||
bodyPart: Tail
|
bodyPart: Tail
|
||||||
markingCategory: Tail
|
markingCategory: Tail
|
||||||
speciesRestriction: [Moth]
|
speciesRestriction: [Moth]
|
||||||
|
layering: # imp edit start
|
||||||
|
underwing_neck: TailBehindBackpack
|
||||||
|
underwing_primary_behind: TailBehind
|
||||||
|
underwing_primary_front: TailBehindBackpack
|
||||||
|
underwing_secondary_behind: TailBehind
|
||||||
|
underwing_secondary_front: TailBehindBackpack
|
||||||
|
colorLinks:
|
||||||
|
underwing_primary_behind: underwing_primary_front
|
||||||
|
underwing_secondary_behind: underwing_secondary_front
|
||||||
sprites:
|
sprites:
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: underwing_primary
|
state: underwing_neck
|
||||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
state: underwing_secondary
|
state: underwing_primary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: underwing_primary_front
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: underwing_secondary_behind
|
||||||
|
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||||
|
state: underwing_secondary_front # imp edit end
|
||||||
|
|
||||||
# Body markings:
|
# Body markings:
|
||||||
# Charred
|
# Charred
|
||||||
|
|||||||
@@ -6,9 +6,9 @@
|
|||||||
description: A sheet of glass, used often on the station in various applications.
|
description: A sheet of glass, used often on the station in various applications.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Materials/Sheets/glass.rsi
|
sprite: _TBD/Objects/stack_objects.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
sprite: Objects/Materials/Sheets/glass.rsi
|
sprite: _TBD/Objects/stack_objects.rsi
|
||||||
size: Normal
|
size: Normal
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 0
|
price: 0
|
||||||
@@ -62,16 +62,16 @@
|
|||||||
stackType: Glass
|
stackType: Glass
|
||||||
baseLayer: base
|
baseLayer: base
|
||||||
layerStates:
|
layerStates:
|
||||||
- glass
|
- sheet-glass_1
|
||||||
- glass_2
|
- sheet-glass_2
|
||||||
- glass_3
|
- sheet-glass_3
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: glass_3
|
state: sheet-glass_3
|
||||||
layers:
|
layers:
|
||||||
- state: glass_3
|
- state: sheet-glass_3
|
||||||
map: ["base"]
|
map: ["base"]
|
||||||
- type: Item
|
- type: Item
|
||||||
heldPrefix: glass
|
heldPrefix: sheet-glass_1
|
||||||
- type: FloorTile
|
- type: FloorTile
|
||||||
outputs:
|
outputs:
|
||||||
- FloorGlass
|
- FloorGlass
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
suffix: 10
|
suffix: 10
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: glass
|
state: sheet-glass_1
|
||||||
- type: Stack
|
- type: Stack
|
||||||
stackType: Glass
|
stackType: Glass
|
||||||
count: 10
|
count: 10
|
||||||
@@ -104,7 +104,7 @@
|
|||||||
suffix: Single
|
suffix: Single
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: glass
|
state: sheet-glass_1
|
||||||
- type: Stack
|
- type: Stack
|
||||||
stackType: Glass
|
stackType: Glass
|
||||||
count: 1
|
count: 1
|
||||||
@@ -123,16 +123,16 @@
|
|||||||
stackType: ReinforcedGlass
|
stackType: ReinforcedGlass
|
||||||
baseLayer: base
|
baseLayer: base
|
||||||
layerStates:
|
layerStates:
|
||||||
- rglass
|
- sheet-rglass_1
|
||||||
- rglass_2
|
- sheet-rglass_2
|
||||||
- rglass_3
|
- sheet-rglass_3
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: rglass_3
|
state: sheet-rglass_3
|
||||||
layers:
|
layers:
|
||||||
- state: rglass_3
|
- state: sheet-rglass_3
|
||||||
map: ["base"]
|
map: ["base"]
|
||||||
- type: Item
|
- type: Item
|
||||||
heldPrefix: rglass
|
heldPrefix: sheet-rglass_1
|
||||||
- type: FloorTile
|
- type: FloorTile
|
||||||
outputs:
|
outputs:
|
||||||
- FloorRGlass
|
- FloorRGlass
|
||||||
@@ -171,12 +171,12 @@
|
|||||||
suffix: Single
|
suffix: Single
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: rglass
|
state: sheet-rglass_1
|
||||||
- type: Stack
|
- type: Stack
|
||||||
stackType: ReinforcedGlass
|
stackType: ReinforcedGlass
|
||||||
count: 1
|
count: 1
|
||||||
- type: Extractable
|
- type: Extractable
|
||||||
grindableSolutionName: rglass
|
grindableSolutionName: sheet-rglass_1
|
||||||
- type: SolutionContainerManager
|
- type: SolutionContainerManager
|
||||||
solutions:
|
solutions:
|
||||||
rglass:
|
rglass:
|
||||||
@@ -203,16 +203,16 @@
|
|||||||
stackType: PlasmaGlass
|
stackType: PlasmaGlass
|
||||||
baseLayer: base
|
baseLayer: base
|
||||||
layerStates:
|
layerStates:
|
||||||
- pglass
|
- sheet-pglass_1
|
||||||
- pglass_2
|
- sheet-pglass_2
|
||||||
- pglass_3
|
- sheet-pglass_3
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: pglass_3
|
state: sheet-pglass_3
|
||||||
layers:
|
layers:
|
||||||
- state: pglass_3
|
- state: sheet-pglass_3
|
||||||
map: ["base"]
|
map: ["base"]
|
||||||
- type: Item
|
- type: Item
|
||||||
heldPrefix: pglass
|
heldPrefix: sheet-pglass_1
|
||||||
- type: Construction
|
- type: Construction
|
||||||
graph: Glass
|
graph: Glass
|
||||||
node: SheetPGlass
|
node: SheetPGlass
|
||||||
@@ -248,7 +248,7 @@
|
|||||||
suffix: Single
|
suffix: Single
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: pglass
|
state: sheet-pglass_1
|
||||||
- type: Stack
|
- type: Stack
|
||||||
stackType: PlasmaGlass
|
stackType: PlasmaGlass
|
||||||
count: 1
|
count: 1
|
||||||
@@ -278,16 +278,16 @@
|
|||||||
stackType: ReinforcedPlasmaGlass
|
stackType: ReinforcedPlasmaGlass
|
||||||
baseLayer: base
|
baseLayer: base
|
||||||
layerStates:
|
layerStates:
|
||||||
- rpglass
|
- sheet-prglass_1
|
||||||
- rpglass_2
|
- sheet-prglass_2
|
||||||
- rpglass_3
|
- sheet-prglass_3
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: rpglass_3
|
state: sheet-prglass_3
|
||||||
layers:
|
layers:
|
||||||
- state: rpglass_3
|
- state: sheet-prglass_3
|
||||||
map: ["base"]
|
map: ["base"]
|
||||||
- type: Item
|
- type: Item
|
||||||
heldPrefix: rpglass
|
heldPrefix: sheet-prglass_1
|
||||||
- type: Construction
|
- type: Construction
|
||||||
graph: Glass
|
graph: Glass
|
||||||
node: SheetRPGlass
|
node: SheetRPGlass
|
||||||
@@ -314,7 +314,7 @@
|
|||||||
suffix: Single
|
suffix: Single
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: rpglass
|
state: sheet-prglass_1
|
||||||
- type: Stack
|
- type: Stack
|
||||||
stackType: ReinforcedPlasmaGlass
|
stackType: ReinforcedPlasmaGlass
|
||||||
count: 1
|
count: 1
|
||||||
@@ -333,16 +333,16 @@
|
|||||||
stackType: UraniumGlass
|
stackType: UraniumGlass
|
||||||
baseLayer: base
|
baseLayer: base
|
||||||
layerStates:
|
layerStates:
|
||||||
- uglass
|
- sheet-uglass_1
|
||||||
- uglass_2
|
- sheet-uglass_2
|
||||||
- uglass_3
|
- sheet-uglass_3
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: uglass_3
|
state: sheet-uglass_3
|
||||||
layers:
|
layers:
|
||||||
- state: uglass_3
|
- state: sheet-uglass_3
|
||||||
map: ["base"]
|
map: ["base"]
|
||||||
- type: Item
|
- type: Item
|
||||||
heldPrefix: uglass
|
heldPrefix: sheet-uglass_1
|
||||||
- type: Construction
|
- type: Construction
|
||||||
graph: Glass
|
graph: Glass
|
||||||
node: SheetUGlass
|
node: SheetUGlass
|
||||||
@@ -389,7 +389,7 @@
|
|||||||
suffix: Single
|
suffix: Single
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: uglass
|
state: sheet-uglass_1
|
||||||
- type: Stack
|
- type: Stack
|
||||||
stackType: UraniumGlass
|
stackType: UraniumGlass
|
||||||
count: 1
|
count: 1
|
||||||
@@ -407,16 +407,16 @@
|
|||||||
stackType: ReinforcedUraniumGlass
|
stackType: ReinforcedUraniumGlass
|
||||||
baseLayer: base
|
baseLayer: base
|
||||||
layerStates:
|
layerStates:
|
||||||
- ruglass
|
- sheet-urglass_1
|
||||||
- ruglass_2
|
- sheet-urglass_2
|
||||||
- ruglass_3
|
- sheet-urglass_3
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: ruglass_3
|
state: sheet-urglass_3
|
||||||
layers:
|
layers:
|
||||||
- state: ruglass_3
|
- state: sheet-urglass_3
|
||||||
map: ["base"]
|
map: ["base"]
|
||||||
- type: Item
|
- type: Item
|
||||||
heldPrefix: ruglass
|
heldPrefix: sheet-urglass
|
||||||
- type: Construction
|
- type: Construction
|
||||||
graph: Glass
|
graph: Glass
|
||||||
node: SheetRUGlass
|
node: SheetRUGlass
|
||||||
@@ -443,7 +443,7 @@
|
|||||||
suffix: Single
|
suffix: Single
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: ruglass
|
state: sheet-urglass_1
|
||||||
- type: Stack
|
- type: Stack
|
||||||
stackType: ReinforcedUraniumGlass
|
stackType: ReinforcedUraniumGlass
|
||||||
count: 1
|
count: 1
|
||||||
@@ -466,6 +466,7 @@
|
|||||||
- cglass_2
|
- cglass_2
|
||||||
- cglass_3
|
- cglass_3
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
|
sprite: Objects/Materials/Sheets/glass.rsi
|
||||||
state: cglass_3
|
state: cglass_3
|
||||||
layers:
|
layers:
|
||||||
- state: cglass_3
|
- state: cglass_3
|
||||||
@@ -520,6 +521,7 @@
|
|||||||
suffix: Single
|
suffix: Single
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
|
sprite: Objects/Materials/Sheets/glass.rsi
|
||||||
state: cglass
|
state: cglass
|
||||||
- type: Stack
|
- type: Stack
|
||||||
stackType: ClockworkGlass
|
stackType: ClockworkGlass
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
description: A sheet of metal, used often on the station in various applications.
|
description: A sheet of metal, used often on the station in various applications.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Materials/Sheets/metal.rsi
|
sprite: _TBD/Objects/stack_objects.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
sprite: Objects/Materials/Sheets/metal.rsi
|
sprite: _TBD/Objects/stack_objects.rsi
|
||||||
size: Normal
|
size: Normal
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 0
|
price: 0
|
||||||
@@ -49,16 +49,16 @@
|
|||||||
stackType: Steel
|
stackType: Steel
|
||||||
baseLayer: base
|
baseLayer: base
|
||||||
layerStates:
|
layerStates:
|
||||||
- steel
|
- sheet-metal_1
|
||||||
- steel_2
|
- sheet-metal_2
|
||||||
- steel_3
|
- sheet-metal_3
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: steel_3
|
state: sheet-metal_3
|
||||||
layers:
|
layers:
|
||||||
- state: steel_3
|
- state: sheet-metal_3
|
||||||
map: ["base"]
|
map: ["base"]
|
||||||
- type: Item
|
- type: Item
|
||||||
heldPrefix: steel
|
heldPrefix: sheet-metal_1
|
||||||
- type: Appearance
|
- type: Appearance
|
||||||
- type: Extractable
|
- type: Extractable
|
||||||
grindableSolutionName: steel
|
grindableSolutionName: steel
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
suffix: 10
|
suffix: 10
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: steel
|
state: sheet-metal_1
|
||||||
- type: Stack
|
- type: Stack
|
||||||
stackType: Steel
|
stackType: Steel
|
||||||
count: 10
|
count: 10
|
||||||
@@ -90,7 +90,7 @@
|
|||||||
suffix: Single
|
suffix: Single
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: steel
|
state: sheet-metal_1
|
||||||
- type: Stack
|
- type: Stack
|
||||||
stackType: Steel
|
stackType: Steel
|
||||||
count: 1
|
count: 1
|
||||||
@@ -114,6 +114,7 @@
|
|||||||
- brass_2
|
- brass_2
|
||||||
- brass_3
|
- brass_3
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
|
sprite: Objects/Materials/Sheets/metal.rsi
|
||||||
state: brass_3
|
state: brass_3
|
||||||
layers:
|
layers:
|
||||||
- state: brass_3
|
- state: brass_3
|
||||||
@@ -142,6 +143,7 @@
|
|||||||
suffix: 10
|
suffix: 10
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
|
sprite: Objects/Materials/Sheets/metal.rsi
|
||||||
state: brass
|
state: brass
|
||||||
- type: Stack
|
- type: Stack
|
||||||
stackType: Brass
|
stackType: Brass
|
||||||
@@ -154,6 +156,7 @@
|
|||||||
suffix: Single
|
suffix: Single
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
|
sprite: Objects/Materials/Sheets/metal.rsi
|
||||||
state: brass
|
state: brass
|
||||||
- type: Stack
|
- type: Stack
|
||||||
stackType: Brass
|
stackType: Brass
|
||||||
@@ -173,13 +176,13 @@
|
|||||||
stackType: Plasteel
|
stackType: Plasteel
|
||||||
baseLayer: base
|
baseLayer: base
|
||||||
layerStates:
|
layerStates:
|
||||||
- plasteel
|
- sheet-plasteel_1
|
||||||
- plasteel_2
|
- sheet-plasteel_2
|
||||||
- plasteel_3
|
- sheet-plasteel_3
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: plasteel_3
|
state: sheet-plasteel_3
|
||||||
layers:
|
layers:
|
||||||
- state: plasteel_3
|
- state: sheet-plasteel_3
|
||||||
map: ["base"]
|
map: ["base"]
|
||||||
- type: Item
|
- type: Item
|
||||||
heldPrefix: plasteel
|
heldPrefix: plasteel
|
||||||
@@ -205,7 +208,7 @@
|
|||||||
suffix: 10
|
suffix: 10
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: plasteel
|
state: sheet-plasteel_1
|
||||||
- type: Stack
|
- type: Stack
|
||||||
stackType: Plasteel
|
stackType: Plasteel
|
||||||
count: 10
|
count: 10
|
||||||
@@ -217,7 +220,7 @@
|
|||||||
suffix: Single
|
suffix: Single
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: plasteel
|
state: sheet-plasteel_1
|
||||||
- type: Stack
|
- type: Stack
|
||||||
stackType: Plasteel
|
stackType: Plasteel
|
||||||
count: 1
|
count: 1
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
description: A sheet of material, used often on the station in various applications.
|
description: A sheet of material, used often on the station in various applications.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Materials/Sheets/other.rsi
|
sprite: _TBD/Objects/stack_objects.rsi
|
||||||
- type: Item
|
- type: Item
|
||||||
sprite: Objects/Materials/Sheets/other.rsi
|
sprite: _TBD/Objects/stack_objects.rsi
|
||||||
size: Normal
|
size: Normal
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
@@ -38,20 +38,20 @@
|
|||||||
stackType: Paper
|
stackType: Paper
|
||||||
baseLayer: base
|
baseLayer: base
|
||||||
layerStates:
|
layerStates:
|
||||||
- paper
|
- sheet-paper_1
|
||||||
- paper_2
|
- sheet-paper_2
|
||||||
- paper_3
|
- sheet-paper_3
|
||||||
- type: Material
|
- type: Material
|
||||||
- type: PhysicalComposition
|
- type: PhysicalComposition
|
||||||
materialComposition:
|
materialComposition:
|
||||||
Paper: 100
|
Paper: 100
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: paper_3
|
state: sheet-paper_3
|
||||||
layers:
|
layers:
|
||||||
- state: paper_3
|
- state: sheet-paper_3
|
||||||
map: ["base"]
|
map: ["base"]
|
||||||
- type: Item
|
- type: Item
|
||||||
heldPrefix: paper
|
heldPrefix: sheet-paper_1
|
||||||
- type: Appearance
|
- type: Appearance
|
||||||
- type: Extractable
|
- type: Extractable
|
||||||
grindableSolutionName: paper
|
grindableSolutionName: paper
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
suffix: Single
|
suffix: Single
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: paper
|
state: sheet-paper_1
|
||||||
- type: Stack
|
- type: Stack
|
||||||
count: 1
|
count: 1
|
||||||
|
|
||||||
@@ -88,16 +88,16 @@
|
|||||||
stackType: Plasma
|
stackType: Plasma
|
||||||
baseLayer: base
|
baseLayer: base
|
||||||
layerStates:
|
layerStates:
|
||||||
- plasma
|
- sheet-plasma_1
|
||||||
- plasma_2
|
- sheet-plasma_2
|
||||||
- plasma_3
|
- sheet-plasma_3
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: plasma_3
|
state: sheet-plasma_3
|
||||||
layers:
|
layers:
|
||||||
- state: plasma_3
|
- state: sheet-plasma_3
|
||||||
map: ["base"]
|
map: ["base"]
|
||||||
- type: Item
|
- type: Item
|
||||||
heldPrefix: plasma
|
heldPrefix: sheet-plasma_1
|
||||||
- type: Appearance
|
- type: Appearance
|
||||||
- type: Extractable
|
- type: Extractable
|
||||||
grindableSolutionName: plasma
|
grindableSolutionName: plasma
|
||||||
@@ -115,7 +115,7 @@
|
|||||||
suffix: 10
|
suffix: 10
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: plasma
|
state: sheet-plasma_1
|
||||||
- type: Stack
|
- type: Stack
|
||||||
count: 10
|
count: 10
|
||||||
|
|
||||||
@@ -126,7 +126,7 @@
|
|||||||
suffix: Single
|
suffix: Single
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: plasma
|
state: sheet-plasma_1
|
||||||
- type: Stack
|
- type: Stack
|
||||||
count: 1
|
count: 1
|
||||||
|
|
||||||
@@ -149,16 +149,16 @@
|
|||||||
stackType: Plastic
|
stackType: Plastic
|
||||||
baseLayer: base
|
baseLayer: base
|
||||||
layerStates:
|
layerStates:
|
||||||
- plastic
|
- sheet-plastic_1
|
||||||
- plastic_2
|
- sheet-plastic_2
|
||||||
- plastic_3
|
- sheet-plastic_3
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: plastic_3
|
state: sheet-plastic_3
|
||||||
layers:
|
layers:
|
||||||
- state: plastic_3
|
- state: sheet-plastic_3
|
||||||
map: ["base"]
|
map: ["base"]
|
||||||
- type: Item
|
- type: Item
|
||||||
heldPrefix: plastic
|
heldPrefix: sheet-plastic_1
|
||||||
- type: Appearance
|
- type: Appearance
|
||||||
- type: Extractable
|
- type: Extractable
|
||||||
grindableSolutionName: plastic
|
grindableSolutionName: plastic
|
||||||
@@ -179,7 +179,7 @@
|
|||||||
suffix: 10
|
suffix: 10
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: plastic
|
state: sheet-plastic_1
|
||||||
- type: Stack
|
- type: Stack
|
||||||
count: 10
|
count: 10
|
||||||
|
|
||||||
@@ -190,7 +190,7 @@
|
|||||||
suffix: Single
|
suffix: Single
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: plastic
|
state: sheet-plastic_1
|
||||||
- type: Stack
|
- type: Stack
|
||||||
count: 1
|
count: 1
|
||||||
|
|
||||||
@@ -211,17 +211,17 @@
|
|||||||
stackType: Uranium
|
stackType: Uranium
|
||||||
baseLayer: base
|
baseLayer: base
|
||||||
layerStates:
|
layerStates:
|
||||||
- uranium
|
- sheet-uranium_1
|
||||||
- uranium_2
|
- sheet-uranium_2
|
||||||
- uranium_3
|
- sheet-uranium_3
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: uranium_3
|
state: sheet-uranium_3
|
||||||
layers:
|
layers:
|
||||||
- state: uranium_3
|
- state: sheet-uranium_3
|
||||||
map: ["base"]
|
map: ["base"]
|
||||||
- type: Appearance
|
- type: Appearance
|
||||||
- type: Item
|
- type: Item
|
||||||
heldPrefix: uranium
|
heldPrefix: sheet-uranium_1
|
||||||
- type: Extractable
|
- type: Extractable
|
||||||
grindableSolutionName: food
|
grindableSolutionName: food
|
||||||
- type: SolutionContainerManager
|
- type: SolutionContainerManager
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user