Compare commits
35 Commits
2817bc326d
...
lavaland
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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.Research.Components;
|
||||
using JetBrains.Annotations;
|
||||
@@ -34,6 +35,8 @@ namespace Content.Client.Lathe.UI
|
||||
_menu.QueueMoveUpAction += index => SendMessage(new LatheMoveRequestMessage(index, -1));
|
||||
_menu.QueueMoveDownAction += index => SendMessage(new LatheMoveRequestMessage(index, 1));
|
||||
_menu.DeleteFabricatingAction += () => SendMessage(new LatheAbortFabricationMessage());
|
||||
|
||||
_menu.OnClaimMiningPoints += () => SendMessage(new LatheClaimMiningPointsMessage()); // DeltaV
|
||||
}
|
||||
|
||||
protected override void UpdateState(BoundUserInterfaceState state)
|
||||
|
||||
@@ -151,6 +151,12 @@
|
||||
<ui:MaterialStorageControl Name="MaterialsList" SizeFlagsStretchRatio="8"/>
|
||||
</BoxContainer>
|
||||
</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>
|
||||
|
||||
|
||||
@@ -1,17 +1,21 @@
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
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.Prototypes;
|
||||
using Content.Shared.Research.Prototypes;
|
||||
using Robust.Client.AutoGenerated;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Client.Player; // DeltaV
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
using Robust.Client.UserInterface.CustomControls;
|
||||
using Robust.Client.UserInterface.XAML;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Utility;
|
||||
using Robust.Shared.Timing; // DeltaV
|
||||
|
||||
namespace Content.Client.Lathe.UI;
|
||||
|
||||
@@ -19,11 +23,13 @@ namespace Content.Client.Lathe.UI;
|
||||
public sealed partial class LatheMenu : DefaultWindow
|
||||
{
|
||||
[Dependency] private readonly IEntityManager _entityManager = default!;
|
||||
[Dependency] private readonly IPlayerManager _player = default!; // DeltaV
|
||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||
|
||||
private readonly SpriteSystem _spriteSystem;
|
||||
private readonly LatheSystem _lathe;
|
||||
private readonly MaterialStorageSystem _materialStorage;
|
||||
private readonly MiningPointsSystem _miningPoints; // DeltaV
|
||||
|
||||
public event Action<BaseButton.ButtonEventArgs>? OnServerListButtonPressed;
|
||||
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>? QueueMoveDownAction;
|
||||
public event Action? DeleteFabricatingAction;
|
||||
|
||||
public event Action? OnClaimMiningPoints; // DeltaV
|
||||
public List<ProtoId<LatheRecipePrototype>> Recipes = new();
|
||||
|
||||
public List<ProtoId<LatheCategoryPrototype>>? Categories;
|
||||
|
||||
public ProtoId<LatheCategoryPrototype>? CurrentCategory;
|
||||
|
||||
public EntityUid Entity;
|
||||
|
||||
private uint? _lastMiningPoints; // DeltaV: used to avoid Loc.GetString every frame
|
||||
|
||||
public LatheMenu()
|
||||
{
|
||||
RobustXamlLoader.Load(this);
|
||||
@@ -48,6 +55,7 @@ public sealed partial class LatheMenu : DefaultWindow
|
||||
_spriteSystem = _entityManager.System<SpriteSystem>();
|
||||
_lathe = _entityManager.System<LatheSystem>();
|
||||
_materialStorage = _entityManager.System<MaterialStorageSystem>();
|
||||
_miningPoints = _entityManager.System<MiningPointsSystem>(); // DeltaV
|
||||
|
||||
SearchBar.OnTextChanged += _ =>
|
||||
{
|
||||
@@ -86,9 +94,52 @@ public sealed partial class LatheMenu : DefaultWindow
|
||||
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);
|
||||
}
|
||||
|
||||
/// <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>
|
||||
/// Populates the list of all the recipes
|
||||
/// </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,
|
||||
Hair,
|
||||
FacialHair,
|
||||
Eyes, // imp
|
||||
Head,
|
||||
HeadTop,
|
||||
HeadSide,
|
||||
@@ -31,6 +32,7 @@ namespace Content.Shared.Humanoid.Markings
|
||||
HumanoidVisualLayers.Special => MarkingCategories.Special,
|
||||
HumanoidVisualLayers.Hair => MarkingCategories.Hair,
|
||||
HumanoidVisualLayers.FacialHair => MarkingCategories.FacialHair,
|
||||
HumanoidVisualLayers.Eyes => MarkingCategories.Eyes,
|
||||
HumanoidVisualLayers.Head => MarkingCategories.Head,
|
||||
HumanoidVisualLayers.HeadTop => MarkingCategories.HeadTop,
|
||||
HumanoidVisualLayers.HeadSide => MarkingCategories.HeadSide,
|
||||
|
||||
@@ -69,5 +69,13 @@ namespace Content.Shared.Research.Prototypes
|
||||
/// </summary>
|
||||
[DataField]
|
||||
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)
|
||||
weather.EndTime = weather.EndTime.Value + args.PausedTime;
|
||||
}
|
||||
component.NextUpdate += args.PausedTime; // DeltaV
|
||||
}
|
||||
|
||||
public bool CanWeatherAffect(EntityUid uid, MapGridComponent grid, TileRef tileRef, RoofComponent? roofComp = null)
|
||||
|
||||
@@ -14,6 +14,18 @@ public sealed partial class WeatherComponent : Component
|
||||
[DataField]
|
||||
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 ShutdownTime = TimeSpan.FromSeconds(15);
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.Whitelist;
|
||||
using Robust.Shared.Audio;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Utility;
|
||||
@@ -20,4 +22,17 @@ public sealed partial class WeatherPrototype : IPrototype
|
||||
/// </summary>
|
||||
[ViewVariables(VVAccess.ReadWrite), DataField("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]
|
||||
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
|
||||
forkId: ""
|
||||
forkVersion: ""
|
||||
time: 11/24/2025 21:47:10
|
||||
entityCount: 2899
|
||||
time: 11/27/2025 18:20:30
|
||||
entityCount: 2900
|
||||
maps:
|
||||
- 1
|
||||
grids:
|
||||
@@ -107,7 +107,7 @@ entities:
|
||||
version: 7
|
||||
-1,1:
|
||||
ind: -1,1
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAfQAAAAAAAH0AAAAAAAB9AAAAAAAAbQAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAH4AAAAAAABtAAAAAAAAfgAAAAAAAG0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAfQAAAAAAAH0AAAAAAAB9AAAAAAAAbQAAAAAAAH4AAAAAAAB+AAAAAAAAbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAH4AAAAAAABtAAAAAAAAfgAAAAAAAG0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
|
||||
version: 7
|
||||
-1,-2:
|
||||
ind: -1,-2
|
||||
@@ -1069,7 +1069,7 @@ entities:
|
||||
-2,4:
|
||||
0: 14
|
||||
-1,4:
|
||||
1: 175
|
||||
1: 47
|
||||
0,-5:
|
||||
1: 24576
|
||||
0: 3584
|
||||
@@ -1582,14 +1582,8 @@ entities:
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: 13.5,13.5
|
||||
parent: 2
|
||||
- proto: AirlockExternalGlassShuttleLocked
|
||||
- proto: AirlockExternalGlassShuttleMining
|
||||
entities:
|
||||
- uid: 44
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: -0.5,17.5
|
||||
parent: 2
|
||||
- uid: 45
|
||||
components:
|
||||
- type: Transform
|
||||
@@ -1977,12 +1971,6 @@ entities:
|
||||
rot: 3.141592653589793 rad
|
||||
pos: -2.5,17.5
|
||||
parent: 2
|
||||
- uid: 100
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: -0.5,17.5
|
||||
parent: 2
|
||||
- uid: 101
|
||||
components:
|
||||
- type: Transform
|
||||
@@ -4402,6 +4390,11 @@ entities:
|
||||
- type: Transform
|
||||
pos: -4.5,-14.5
|
||||
parent: 2
|
||||
- uid: 2900
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -5.5,10.5
|
||||
parent: 2
|
||||
- proto: CableHV
|
||||
entities:
|
||||
- uid: 571
|
||||
@@ -6857,11 +6850,6 @@ entities:
|
||||
- type: Transform
|
||||
pos: -0.5,15.5
|
||||
parent: 2
|
||||
- uid: 1053
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -0.5,16.5
|
||||
parent: 2
|
||||
- uid: 1054
|
||||
components:
|
||||
- type: Transform
|
||||
@@ -7790,6 +7778,13 @@ entities:
|
||||
- type: Transform
|
||||
pos: 2.5,13.5
|
||||
parent: 2
|
||||
- proto: ComputerShuttleMining
|
||||
entities:
|
||||
- uid: 1053
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -0.5,16.5
|
||||
parent: 2
|
||||
- proto: ComputerSurveillanceCameraMonitor
|
||||
entities:
|
||||
- uid: 1200
|
||||
@@ -12183,6 +12178,11 @@ entities:
|
||||
radius: 175.75
|
||||
- proto: Grille
|
||||
entities:
|
||||
- uid: 44
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -0.5,17.5
|
||||
parent: 2
|
||||
- uid: 1812
|
||||
components:
|
||||
- type: Transform
|
||||
@@ -14758,6 +14758,11 @@ entities:
|
||||
parent: 2
|
||||
- proto: ShuttleWindow
|
||||
entities:
|
||||
- uid: 100
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -0.5,17.5
|
||||
parent: 2
|
||||
- uid: 2183
|
||||
components:
|
||||
- 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
|
||||
group: market
|
||||
|
||||
- type: cargoProduct
|
||||
id: CrateVendingMachineRestockSalvageEquipment
|
||||
icon:
|
||||
sprite: Objects/Specific/Service/vending_machine_restock.rsi
|
||||
state: base
|
||||
product: CrateVendingMachineRestockSalvageEquipmentFilled
|
||||
cost: 1500
|
||||
category: cargoproduct-category-name-engineering
|
||||
group: market
|
||||
#- type: cargoProduct # DeltaV: Salvage vendor doesn't have stock anymore
|
||||
# id: CrateVendingMachineRestockSalvageEquipment
|
||||
# icon:
|
||||
# sprite: Objects/Specific/Service/vending_machine_restock.rsi
|
||||
# state: base
|
||||
# product: CrateVendingMachineRestockSalvageEquipmentFilled
|
||||
# cost: 1000
|
||||
# category: cargoproduct-category-name-engineering
|
||||
# group: market
|
||||
|
||||
- type: cargoProduct
|
||||
id: CrateVendingMachineRestockSecTech
|
||||
|
||||
@@ -154,16 +154,15 @@
|
||||
id: VendingMachineRestockRobustSoftdrinks
|
||||
amount: 2
|
||||
|
||||
- type: entity
|
||||
id: CrateVendingMachineRestockSalvageEquipmentFilled
|
||||
parent: CrateGenericSteel
|
||||
name: Salvage restock crate
|
||||
description: Contains a restock box for the salvage vendor.
|
||||
components:
|
||||
- type: EntityTableContainerFill
|
||||
containers:
|
||||
entity_storage:
|
||||
id: VendingMachineRestockSalvageEquipment
|
||||
#- type: entity # DeltaV: Salvage vendor doesn't have stock anymore
|
||||
# id: CrateVendingMachineRestockSalvageEquipmentFilled
|
||||
# parent: CrateGenericSteel
|
||||
# name: Salvage restock crate
|
||||
# description: Contains a restock box for the salvage vendor.
|
||||
# components:
|
||||
# - type: StorageFill
|
||||
# contents:
|
||||
# - id: VendingMachineRestockSalvageEquipment
|
||||
|
||||
- type: entity
|
||||
id: CrateVendingMachineRestockSecTechFilled
|
||||
|
||||
@@ -11,6 +11,11 @@
|
||||
id: LockerFillSalvageSpecialist
|
||||
table: !type:AllSelector
|
||||
children:
|
||||
- id: OreBag
|
||||
- id: Pickaxe
|
||||
- id: WeaponProtoKineticAccelerator
|
||||
- id: FlashlightSeclite
|
||||
- id: ClothingEyesGlassesMeson
|
||||
- id: ClothingBeltUtilityFilled
|
||||
- id: SurvivalKnife
|
||||
- id: HandheldGPSBasic
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
- id: BoxFolderQmClipboard
|
||||
- id: BoxQMCircuitboards
|
||||
- id: BoxQMStamps
|
||||
- id: MiningShuttleConsoleCircuitboard
|
||||
- id: CigPackGreen
|
||||
prob: 0.50
|
||||
- id: ClothingHeadsetAltCargo
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: fulltile_overlay
|
||||
|
||||
- type: decal
|
||||
@@ -11,7 +11,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: brick_box
|
||||
|
||||
- type: decal
|
||||
@@ -19,7 +19,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: brick_corner_ne
|
||||
|
||||
- type: decal
|
||||
@@ -27,7 +27,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: brick_corner_nw
|
||||
|
||||
- type: decal
|
||||
@@ -35,7 +35,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: brick_corner_se
|
||||
|
||||
- type: decal
|
||||
@@ -43,7 +43,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: brick_corner_sw
|
||||
|
||||
- type: decal
|
||||
@@ -51,7 +51,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: brick_end_e
|
||||
|
||||
- type: decal
|
||||
@@ -59,7 +59,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: brick_end_n
|
||||
|
||||
- type: decal
|
||||
@@ -67,7 +67,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: brick_end_s
|
||||
|
||||
- type: decal
|
||||
@@ -75,7 +75,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: brick_end_w
|
||||
|
||||
- type: decal
|
||||
@@ -83,7 +83,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: brick_line_e
|
||||
|
||||
- type: decal
|
||||
@@ -91,7 +91,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: brick_line_n
|
||||
|
||||
- type: decal
|
||||
@@ -99,7 +99,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: brick_line_s
|
||||
|
||||
- type: decal
|
||||
@@ -107,7 +107,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: brick_line_w
|
||||
|
||||
- type: decal
|
||||
@@ -115,7 +115,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: halftile_overlay
|
||||
|
||||
- type: decal
|
||||
@@ -123,7 +123,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: halftile_overlay_90
|
||||
|
||||
- type: decal
|
||||
@@ -131,7 +131,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: halftile_overlay_180
|
||||
|
||||
- type: decal
|
||||
@@ -139,7 +139,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: halftile_overlay_270
|
||||
|
||||
- type: decal
|
||||
@@ -147,7 +147,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: quartertile_overlay
|
||||
|
||||
- type: decal
|
||||
@@ -155,7 +155,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: quartertile_overlay_90
|
||||
|
||||
- type: decal
|
||||
@@ -163,7 +163,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: quartertile_overlay_180
|
||||
|
||||
- type: decal
|
||||
@@ -171,7 +171,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: quartertile_overlay_270
|
||||
|
||||
- type: decal
|
||||
@@ -179,7 +179,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: threequartertile_overlay
|
||||
|
||||
- type: decal
|
||||
@@ -187,7 +187,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: threequartertile_overlay_90
|
||||
|
||||
- type: decal
|
||||
@@ -195,7 +195,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: threequartertile_overlay_180
|
||||
|
||||
- type: decal
|
||||
@@ -203,7 +203,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: threequartertile_overlay_270
|
||||
|
||||
- type: decal
|
||||
@@ -211,7 +211,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: mono
|
||||
|
||||
- type: decal
|
||||
@@ -219,7 +219,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: checkerNESW
|
||||
|
||||
- type: decal
|
||||
@@ -227,7 +227,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: checkerNWSE
|
||||
|
||||
- type: decal
|
||||
@@ -235,7 +235,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: diagonal
|
||||
|
||||
- type: decal
|
||||
@@ -243,7 +243,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: diagonal_checker_a
|
||||
|
||||
- type: decal
|
||||
@@ -251,7 +251,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: diagonal_checker_b
|
||||
|
||||
- type: decal
|
||||
@@ -259,7 +259,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: herringbone
|
||||
|
||||
- type: decal
|
||||
@@ -267,7 +267,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile
|
||||
|
||||
- type: decal
|
||||
@@ -275,7 +275,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_checker_a
|
||||
|
||||
- type: decal
|
||||
@@ -283,7 +283,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_checker_b
|
||||
|
||||
- type: decal
|
||||
@@ -291,7 +291,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_diagonal
|
||||
|
||||
- type: decal
|
||||
@@ -299,7 +299,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_diagonal_a
|
||||
|
||||
- type: decal
|
||||
@@ -307,7 +307,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_diagonal_b
|
||||
|
||||
- type: decal
|
||||
@@ -315,7 +315,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_box
|
||||
|
||||
- type: decal
|
||||
@@ -323,7 +323,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_corner_ne
|
||||
|
||||
- type: decal
|
||||
@@ -331,7 +331,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_corner_nw
|
||||
|
||||
- type: decal
|
||||
@@ -339,7 +339,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_corner_se
|
||||
|
||||
- type: decal
|
||||
@@ -347,7 +347,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_corner_sw
|
||||
|
||||
- type: decal
|
||||
@@ -355,7 +355,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_end_e
|
||||
|
||||
- type: decal
|
||||
@@ -363,7 +363,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_end_n
|
||||
|
||||
- type: decal
|
||||
@@ -371,7 +371,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_end_s
|
||||
|
||||
- type: decal
|
||||
@@ -379,7 +379,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_end_w
|
||||
|
||||
- type: decal
|
||||
@@ -387,7 +387,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_inner_ne
|
||||
|
||||
- type: decal
|
||||
@@ -395,7 +395,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_inner_nw
|
||||
|
||||
- type: decal
|
||||
@@ -403,7 +403,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_inner_se
|
||||
|
||||
- type: decal
|
||||
@@ -411,7 +411,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_inner_sw
|
||||
|
||||
- type: decal
|
||||
@@ -419,7 +419,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_line_e
|
||||
|
||||
- type: decal
|
||||
@@ -427,7 +427,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_line_n
|
||||
|
||||
- type: decal
|
||||
@@ -435,7 +435,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_line_s
|
||||
|
||||
- type: decal
|
||||
@@ -443,7 +443,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: minitile_line_w
|
||||
|
||||
- type: decal
|
||||
@@ -451,7 +451,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: offset
|
||||
|
||||
- type: decal
|
||||
@@ -459,7 +459,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: offset_checker_a
|
||||
|
||||
- type: decal
|
||||
@@ -467,7 +467,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: offset_checker_b
|
||||
|
||||
- type: decal
|
||||
@@ -475,7 +475,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: pavement
|
||||
|
||||
- type: decal
|
||||
@@ -483,7 +483,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: pavement_checker_a
|
||||
|
||||
- type: decal
|
||||
@@ -491,7 +491,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: pavement_checker_b
|
||||
|
||||
- type: decal
|
||||
@@ -499,7 +499,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: pavement_vertical
|
||||
|
||||
- type: decal
|
||||
@@ -507,7 +507,7 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: pavement_vertical_checker_a
|
||||
|
||||
- type: decal
|
||||
@@ -515,5 +515,5 @@
|
||||
tags: ["station", "overlay"]
|
||||
defaultCustomColor: true
|
||||
sprite:
|
||||
sprite: Decals/Overlays/greyscale.rsi
|
||||
sprite: _TBD/Decals/Overlays/greyscale.rsi
|
||||
state: pavement_vertical_checker_b
|
||||
|
||||
@@ -2,117 +2,117 @@
|
||||
id: BrickTileDarkBox
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: dark_box
|
||||
|
||||
- type: decal
|
||||
id: BrickTileDarkCornerNe
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: dark_corner_ne
|
||||
|
||||
- type: decal
|
||||
id: BrickTileDarkCornerSe
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: dark_corner_se
|
||||
|
||||
- type: decal
|
||||
id: BrickTileDarkCornerNw
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: dark_corner_nw
|
||||
|
||||
- type: decal
|
||||
id: BrickTileDarkCornerSw
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: dark_corner_sw
|
||||
|
||||
- type: decal
|
||||
id: BrickTileDarkInnerNe
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: dark_inner_ne
|
||||
|
||||
- type: decal
|
||||
id: BrickTileDarkInnerSe
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: dark_inner_se
|
||||
|
||||
- type: decal
|
||||
id: BrickTileDarkInnerNw
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: dark_inner_nw
|
||||
|
||||
- type: decal
|
||||
id: BrickTileDarkInnerSw
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: dark_inner_sw
|
||||
|
||||
- type: decal
|
||||
id: BrickTileDarkEndN
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: dark_end_n
|
||||
|
||||
- type: decal
|
||||
id: BrickTileDarkEndE
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: dark_end_e
|
||||
|
||||
- type: decal
|
||||
id: BrickTileDarkEndS
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: dark_end_s
|
||||
|
||||
- type: decal
|
||||
id: BrickTileDarkEndW
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: dark_end_w
|
||||
|
||||
- type: decal
|
||||
id: BrickTileDarkLineN
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: dark_line_n
|
||||
|
||||
- type: decal
|
||||
id: BrickTileDarkLineE
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: dark_line_e
|
||||
|
||||
- type: decal
|
||||
id: BrickTileDarkLineS
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: dark_line_s
|
||||
|
||||
- type: decal
|
||||
id: BrickTileDarkLineW
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: dark_line_w
|
||||
|
||||
@@ -2,117 +2,117 @@
|
||||
id: BrickTileSteelBox
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: steel_box
|
||||
|
||||
- type: decal
|
||||
id: BrickTileSteelCornerNe
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: steel_corner_ne
|
||||
|
||||
- type: decal
|
||||
id: BrickTileSteelCornerSe
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: steel_corner_se
|
||||
|
||||
- type: decal
|
||||
id: BrickTileSteelCornerNw
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: steel_corner_nw
|
||||
|
||||
- type: decal
|
||||
id: BrickTileSteelCornerSw
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: steel_corner_sw
|
||||
|
||||
- type: decal
|
||||
id: BrickTileSteelInnerNe
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: steel_inner_ne
|
||||
|
||||
- type: decal
|
||||
id: BrickTileSteelInnerSe
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: steel_inner_se
|
||||
|
||||
- type: decal
|
||||
id: BrickTileSteelInnerNw
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: steel_inner_nw
|
||||
|
||||
- type: decal
|
||||
id: BrickTileSteelInnerSw
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: steel_inner_sw
|
||||
|
||||
- type: decal
|
||||
id: BrickTileSteelEndN
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: steel_end_n
|
||||
|
||||
- type: decal
|
||||
id: BrickTileSteelEndE
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: steel_end_e
|
||||
|
||||
- type: decal
|
||||
id: BrickTileSteelEndS
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: steel_end_s
|
||||
|
||||
- type: decal
|
||||
id: BrickTileSteelEndW
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: steel_end_w
|
||||
|
||||
- type: decal
|
||||
id: BrickTileSteelLineN
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: steel_line_n
|
||||
|
||||
- type: decal
|
||||
id: BrickTileSteelLineE
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: steel_line_e
|
||||
|
||||
- type: decal
|
||||
id: BrickTileSteelLineS
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: steel_line_s
|
||||
|
||||
- type: decal
|
||||
id: BrickTileSteelLineW
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: steel_line_w
|
||||
|
||||
@@ -2,117 +2,117 @@
|
||||
id: BrickTileWhiteBox
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: white_box
|
||||
|
||||
- type: decal
|
||||
id: BrickTileWhiteCornerNe
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: white_corner_ne
|
||||
|
||||
- type: decal
|
||||
id: BrickTileWhiteCornerSe
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: white_corner_se
|
||||
|
||||
- type: decal
|
||||
id: BrickTileWhiteCornerNw
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: white_corner_nw
|
||||
|
||||
- type: decal
|
||||
id: BrickTileWhiteCornerSw
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: white_corner_sw
|
||||
|
||||
- type: decal
|
||||
id: BrickTileWhiteInnerNe
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: white_inner_ne
|
||||
|
||||
- type: decal
|
||||
id: BrickTileWhiteInnerSe
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: white_inner_se
|
||||
|
||||
- type: decal
|
||||
id: BrickTileWhiteInnerNw
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: white_inner_nw
|
||||
|
||||
- type: decal
|
||||
id: BrickTileWhiteInnerSw
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: white_inner_sw
|
||||
|
||||
- type: decal
|
||||
id: BrickTileWhiteEndN
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: white_end_n
|
||||
|
||||
- type: decal
|
||||
id: BrickTileWhiteEndE
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: white_end_e
|
||||
|
||||
- type: decal
|
||||
id: BrickTileWhiteEndS
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: white_end_s
|
||||
|
||||
- type: decal
|
||||
id: BrickTileWhiteEndW
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: white_end_w
|
||||
|
||||
- type: decal
|
||||
id: BrickTileWhiteLineN
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: white_line_n
|
||||
|
||||
- type: decal
|
||||
id: BrickTileWhiteLineE
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: white_line_e
|
||||
|
||||
- type: decal
|
||||
id: BrickTileWhiteLineS
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: white_line_s
|
||||
|
||||
- type: decal
|
||||
id: BrickTileWhiteLineW
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/bricktile.rsi
|
||||
sprite: _TBD/Decals/bricktile.rsi
|
||||
state: white_line_w
|
||||
|
||||
@@ -2,117 +2,117 @@
|
||||
id: WoodTrimThinBox
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/wood_trim.rsi
|
||||
sprite: _TBD/Decals/wood_trim.rsi
|
||||
state: thin_box
|
||||
|
||||
- type: decal
|
||||
id: WoodTrimThinCornerNe
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/wood_trim.rsi
|
||||
sprite: _TBD/Decals/wood_trim.rsi
|
||||
state: thin_corner_ne
|
||||
|
||||
- type: decal
|
||||
id: WoodTrimThinCornerSe
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/wood_trim.rsi
|
||||
sprite: _TBD/Decals/wood_trim.rsi
|
||||
state: thin_corner_se
|
||||
|
||||
- type: decal
|
||||
id: WoodTrimThinCornerNw
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/wood_trim.rsi
|
||||
sprite: _TBD/Decals/wood_trim.rsi
|
||||
state: thin_corner_nw
|
||||
|
||||
- type: decal
|
||||
id: WoodTrimThinCornerSw
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/wood_trim.rsi
|
||||
sprite: _TBD/Decals/wood_trim.rsi
|
||||
state: thin_corner_sw
|
||||
|
||||
- type: decal
|
||||
id: WoodTrimThinInnerNe
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/wood_trim.rsi
|
||||
sprite: _TBD/Decals/wood_trim.rsi
|
||||
state: thin_inner_ne
|
||||
|
||||
- type: decal
|
||||
id: WoodTrimThinInnerSe
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/wood_trim.rsi
|
||||
sprite: _TBD/Decals/wood_trim.rsi
|
||||
state: thin_inner_se
|
||||
|
||||
- type: decal
|
||||
id: WoodTrimThinInnerNw
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/wood_trim.rsi
|
||||
sprite: _TBD/Decals/wood_trim.rsi
|
||||
state: thin_inner_nw
|
||||
|
||||
- type: decal
|
||||
id: WoodTrimThinInnerSw
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/wood_trim.rsi
|
||||
sprite: _TBD/Decals/wood_trim.rsi
|
||||
state: thin_inner_sw
|
||||
|
||||
- type: decal
|
||||
id: WoodTrimThinEndN
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/wood_trim.rsi
|
||||
sprite: _TBD/Decals/wood_trim.rsi
|
||||
state: thin_end_n
|
||||
|
||||
- type: decal
|
||||
id: WoodTrimThinEndE
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/wood_trim.rsi
|
||||
sprite: _TBD/Decals/wood_trim.rsi
|
||||
state: thin_end_e
|
||||
|
||||
- type: decal
|
||||
id: WoodTrimThinEndS
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/wood_trim.rsi
|
||||
sprite: _TBD/Decals/wood_trim.rsi
|
||||
state: thin_end_s
|
||||
|
||||
- type: decal
|
||||
id: WoodTrimThinEndW
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/wood_trim.rsi
|
||||
sprite: _TBD/Decals/wood_trim.rsi
|
||||
state: thin_end_w
|
||||
|
||||
- type: decal
|
||||
id: WoodTrimThinLineN
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/wood_trim.rsi
|
||||
sprite: _TBD/Decals/wood_trim.rsi
|
||||
state: thin_line_n
|
||||
|
||||
- type: decal
|
||||
id: WoodTrimThinLineE
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/wood_trim.rsi
|
||||
sprite: _TBD/Decals/wood_trim.rsi
|
||||
state: thin_line_e
|
||||
|
||||
- type: decal
|
||||
id: WoodTrimThinLineS
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/wood_trim.rsi
|
||||
sprite: _TBD/Decals/wood_trim.rsi
|
||||
state: thin_line_s
|
||||
|
||||
- type: decal
|
||||
id: WoodTrimThinLineW
|
||||
tags: ["station", "markings"]
|
||||
sprite:
|
||||
sprite: Decals/wood_trim.rsi
|
||||
sprite: _TBD/Decals/wood_trim.rsi
|
||||
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".
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpskirt/captain.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/captain.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Uniforms/Jumpskirt/captain.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/captain.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingUniformSkirtBase
|
||||
@@ -27,9 +27,9 @@
|
||||
description: A sturdy jumpskirt, issued to members of the Cargo department.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpskirt/cargotech.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/cargotech.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Uniforms/Jumpskirt/cargotech.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/cargotech.rsi
|
||||
|
||||
- type: entity
|
||||
parent: [ClothingUniformSkirtBase, BaseCommandContraband]
|
||||
@@ -82,9 +82,9 @@
|
||||
description: There's some odd stains on this jumpskirt. Hm.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpskirt/chemistry.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/chemistry.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Uniforms/Jumpskirt/chemistry.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/chemistry.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingUniformSkirtBase
|
||||
@@ -159,9 +159,9 @@
|
||||
description: If this suit was non-conductive, maybe engineers would actually do their damn job.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpskirt/engineering.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/engineering.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Uniforms/Jumpskirt/engineering.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/engineering.rsi
|
||||
|
||||
- type: entity
|
||||
parent: [ClothingUniformSkirtBase, BaseCommandContraband]
|
||||
@@ -170,9 +170,9 @@
|
||||
description: Rather bland and inoffensive. Perfect for vanishing off the face of the universe.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpskirt/hop.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/hop.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Uniforms/Jumpskirt/hop.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/hop.rsi
|
||||
|
||||
- type: entity
|
||||
parent: [ClothingUniformSkirtBase, BaseCommandContraband]
|
||||
@@ -239,9 +239,9 @@
|
||||
description: Has a strong earthy smell to it. Hopefully it's merely dirty as opposed to soiled.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpskirt/hydro.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/hydro.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Uniforms/Jumpskirt/hydro.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/hydro.rsi
|
||||
|
||||
- type: entity
|
||||
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.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpskirt/medical.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/medical.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Uniforms/Jumpskirt/medical.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/medical.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingUniformSkirtBase
|
||||
@@ -345,9 +345,9 @@
|
||||
description: 'What can brown do for you?'
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpskirt/qm.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/qm.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Uniforms/Jumpskirt/qm.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/qm.rsi
|
||||
|
||||
- type: entity
|
||||
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.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpskirt/scientist.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/scientist.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Uniforms/Jumpskirt/scientist.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/scientist.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingUniformSkirtBase
|
||||
@@ -389,9 +389,9 @@
|
||||
description: It's a slimming black with reinforced seams; great for industrial work.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpskirt/roboticist.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/roboticist.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Uniforms/Jumpskirt/roboticist.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/roboticist.rsi
|
||||
|
||||
- type: entity
|
||||
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.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpskirt/atmosf.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/atmos.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Uniforms/Jumpskirt/atmosf.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpskirt/atmos.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingUniformSkirtBase
|
||||
|
||||
@@ -62,9 +62,9 @@
|
||||
description: It's a blue jumpsuit with some gold markings denoting the rank of "Captain".
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpsuit/captain.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpsuit/captain.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Uniforms/Jumpsuit/captain.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpsuit/captain.rsi
|
||||
|
||||
- type: entity
|
||||
parent: [ClothingUniformBase, ClothingUniformFoldableBase]
|
||||
@@ -73,7 +73,7 @@
|
||||
description: A sturdy jumpsuit, issued to members of the Cargo department.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpsuit/cargotech.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpsuit/cargotech.rsi
|
||||
|
||||
- type: entity
|
||||
parent: [ClothingUniformBase, ClothingUniformFoldableBase]
|
||||
@@ -166,7 +166,7 @@
|
||||
description: There's some odd stains on this jumpsuit. Hm.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpsuit/chemistry.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpsuit/chemistry.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingUniformBase
|
||||
@@ -291,7 +291,7 @@
|
||||
description: If this suit was non-conductive, maybe engineers would actually do their damn job.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpsuit/engineering.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpsuit/engineering.rsi
|
||||
|
||||
- type: entity
|
||||
parent: [ClothingUniformBase, ClothingUniformFoldableBase]
|
||||
@@ -309,7 +309,7 @@
|
||||
description: Rather bland and inoffensive. Perfect for vanishing off the face of the universe.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpsuit/hop.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpsuit/hop.rsi
|
||||
|
||||
- type: entity
|
||||
parent: [ClothingUniformBase, BaseCommandContraband]
|
||||
@@ -396,7 +396,7 @@
|
||||
description: Has a strong earthy smell to it. Hopefully it's merely dirty as opposed to soiled.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpsuit/hydro.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpsuit/hydro.rsi
|
||||
|
||||
- type: entity
|
||||
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.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpsuit/medical.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpsuit/medical.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingUniformBase
|
||||
@@ -507,9 +507,9 @@
|
||||
description: 'What can brown do for you?'
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpsuit/qm.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpsuit/qm.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Uniforms/Jumpsuit/qm.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpsuit/qm.rsi
|
||||
|
||||
- type: entity
|
||||
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.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpsuit/scientist.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpsuit/scientist.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingUniformBase
|
||||
@@ -571,7 +571,7 @@
|
||||
description: It's a slimming black with reinforced seams; great for industrial work.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpsuit/roboticist.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpsuit/roboticist.rsi
|
||||
|
||||
- type: entity
|
||||
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.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Clothing/Uniforms/Jumpsuit/atmos.rsi
|
||||
sprite: _TBD/Clothing/Uniforms/Jumpsuit/atmos.rsi
|
||||
|
||||
- type: entity
|
||||
parent: [ClothingUniformBase, ClothingUniformFoldableBase]
|
||||
|
||||
@@ -173,228 +173,534 @@
|
||||
state: underwing_secondary
|
||||
|
||||
# Wings
|
||||
|
||||
- type: marking
|
||||
id: MothWingsDefault
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: default
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsCharred
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: charred
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsDbushy
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: dbushy_primary
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: dbushy_secondary
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
state: dbushy_neck
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsDeathhead
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: deathhead_primary
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: deathhead_secondary
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
state: deathhead_neck
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsFan
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: fan
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsDfan
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: dfan
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsFeathery
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: feathery
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsFirewatch
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: firewatch_primary
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: firewatch_secondary
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
state: firewatch_neck
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsGothic
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: gothic
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsJungle
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: jungle
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsLadybug
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: ladybug
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsMaple
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: maple_primary
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: maple_secondary
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
state: maple_neck
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsMoffra
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: moffra_primary
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: moffra_secondary
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
state: moffra_neck
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsOakworm
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: oakworm
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsPlasmafire
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: plasmafire_primary
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: plasmafire_secondary
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
state: plasmafire_neck
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsPointy
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: pointy
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsRoyal
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: royal_primary
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: royal_secondary
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
state: royal_neck
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsStellar
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: stellar
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsStriped
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: striped
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsSwirly
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: swirly
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsWhitefly
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: whitefly
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsWitchwing
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: witchwing
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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
|
||||
id: MothWingsUnderwing
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
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:
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: underwing_primary
|
||||
- sprite: Mobs/Customization/Moth/moth_wings.rsi
|
||||
state: underwing_secondary
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
state: underwing_neck
|
||||
- sprite: _Impstation/Mobs/Customization/Moth/taillayers.rsi
|
||||
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:
|
||||
# Charred
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
description: A sheet of glass, used often on the station in various applications.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Materials/Sheets/glass.rsi
|
||||
sprite: _TBD/Objects/stack_objects.rsi
|
||||
- type: Item
|
||||
sprite: Objects/Materials/Sheets/glass.rsi
|
||||
sprite: _TBD/Objects/stack_objects.rsi
|
||||
size: Normal
|
||||
- type: StaticPrice
|
||||
price: 0
|
||||
@@ -62,16 +62,16 @@
|
||||
stackType: Glass
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- glass
|
||||
- glass_2
|
||||
- glass_3
|
||||
- sheet-glass_1
|
||||
- sheet-glass_2
|
||||
- sheet-glass_3
|
||||
- type: Sprite
|
||||
state: glass_3
|
||||
state: sheet-glass_3
|
||||
layers:
|
||||
- state: glass_3
|
||||
- state: sheet-glass_3
|
||||
map: ["base"]
|
||||
- type: Item
|
||||
heldPrefix: glass
|
||||
heldPrefix: sheet-glass_1
|
||||
- type: FloorTile
|
||||
outputs:
|
||||
- FloorGlass
|
||||
@@ -93,7 +93,7 @@
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Sprite
|
||||
state: glass
|
||||
state: sheet-glass_1
|
||||
- type: Stack
|
||||
stackType: Glass
|
||||
count: 10
|
||||
@@ -104,7 +104,7 @@
|
||||
suffix: Single
|
||||
components:
|
||||
- type: Sprite
|
||||
state: glass
|
||||
state: sheet-glass_1
|
||||
- type: Stack
|
||||
stackType: Glass
|
||||
count: 1
|
||||
@@ -123,16 +123,16 @@
|
||||
stackType: ReinforcedGlass
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- rglass
|
||||
- rglass_2
|
||||
- rglass_3
|
||||
- sheet-rglass_1
|
||||
- sheet-rglass_2
|
||||
- sheet-rglass_3
|
||||
- type: Sprite
|
||||
state: rglass_3
|
||||
state: sheet-rglass_3
|
||||
layers:
|
||||
- state: rglass_3
|
||||
- state: sheet-rglass_3
|
||||
map: ["base"]
|
||||
- type: Item
|
||||
heldPrefix: rglass
|
||||
heldPrefix: sheet-rglass_1
|
||||
- type: FloorTile
|
||||
outputs:
|
||||
- FloorRGlass
|
||||
@@ -171,12 +171,12 @@
|
||||
suffix: Single
|
||||
components:
|
||||
- type: Sprite
|
||||
state: rglass
|
||||
state: sheet-rglass_1
|
||||
- type: Stack
|
||||
stackType: ReinforcedGlass
|
||||
count: 1
|
||||
- type: Extractable
|
||||
grindableSolutionName: rglass
|
||||
grindableSolutionName: sheet-rglass_1
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
rglass:
|
||||
@@ -203,16 +203,16 @@
|
||||
stackType: PlasmaGlass
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- pglass
|
||||
- pglass_2
|
||||
- pglass_3
|
||||
- sheet-pglass_1
|
||||
- sheet-pglass_2
|
||||
- sheet-pglass_3
|
||||
- type: Sprite
|
||||
state: pglass_3
|
||||
state: sheet-pglass_3
|
||||
layers:
|
||||
- state: pglass_3
|
||||
- state: sheet-pglass_3
|
||||
map: ["base"]
|
||||
- type: Item
|
||||
heldPrefix: pglass
|
||||
heldPrefix: sheet-pglass_1
|
||||
- type: Construction
|
||||
graph: Glass
|
||||
node: SheetPGlass
|
||||
@@ -248,7 +248,7 @@
|
||||
suffix: Single
|
||||
components:
|
||||
- type: Sprite
|
||||
state: pglass
|
||||
state: sheet-pglass_1
|
||||
- type: Stack
|
||||
stackType: PlasmaGlass
|
||||
count: 1
|
||||
@@ -278,16 +278,16 @@
|
||||
stackType: ReinforcedPlasmaGlass
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- rpglass
|
||||
- rpglass_2
|
||||
- rpglass_3
|
||||
- sheet-prglass_1
|
||||
- sheet-prglass_2
|
||||
- sheet-prglass_3
|
||||
- type: Sprite
|
||||
state: rpglass_3
|
||||
state: sheet-prglass_3
|
||||
layers:
|
||||
- state: rpglass_3
|
||||
- state: sheet-prglass_3
|
||||
map: ["base"]
|
||||
- type: Item
|
||||
heldPrefix: rpglass
|
||||
heldPrefix: sheet-prglass_1
|
||||
- type: Construction
|
||||
graph: Glass
|
||||
node: SheetRPGlass
|
||||
@@ -314,7 +314,7 @@
|
||||
suffix: Single
|
||||
components:
|
||||
- type: Sprite
|
||||
state: rpglass
|
||||
state: sheet-prglass_1
|
||||
- type: Stack
|
||||
stackType: ReinforcedPlasmaGlass
|
||||
count: 1
|
||||
@@ -333,16 +333,16 @@
|
||||
stackType: UraniumGlass
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- uglass
|
||||
- uglass_2
|
||||
- uglass_3
|
||||
- sheet-uglass_1
|
||||
- sheet-uglass_2
|
||||
- sheet-uglass_3
|
||||
- type: Sprite
|
||||
state: uglass_3
|
||||
state: sheet-uglass_3
|
||||
layers:
|
||||
- state: uglass_3
|
||||
- state: sheet-uglass_3
|
||||
map: ["base"]
|
||||
- type: Item
|
||||
heldPrefix: uglass
|
||||
heldPrefix: sheet-uglass_1
|
||||
- type: Construction
|
||||
graph: Glass
|
||||
node: SheetUGlass
|
||||
@@ -389,7 +389,7 @@
|
||||
suffix: Single
|
||||
components:
|
||||
- type: Sprite
|
||||
state: uglass
|
||||
state: sheet-uglass_1
|
||||
- type: Stack
|
||||
stackType: UraniumGlass
|
||||
count: 1
|
||||
@@ -407,16 +407,16 @@
|
||||
stackType: ReinforcedUraniumGlass
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- ruglass
|
||||
- ruglass_2
|
||||
- ruglass_3
|
||||
- sheet-urglass_1
|
||||
- sheet-urglass_2
|
||||
- sheet-urglass_3
|
||||
- type: Sprite
|
||||
state: ruglass_3
|
||||
state: sheet-urglass_3
|
||||
layers:
|
||||
- state: ruglass_3
|
||||
- state: sheet-urglass_3
|
||||
map: ["base"]
|
||||
- type: Item
|
||||
heldPrefix: ruglass
|
||||
heldPrefix: sheet-urglass
|
||||
- type: Construction
|
||||
graph: Glass
|
||||
node: SheetRUGlass
|
||||
@@ -443,7 +443,7 @@
|
||||
suffix: Single
|
||||
components:
|
||||
- type: Sprite
|
||||
state: ruglass
|
||||
state: sheet-urglass_1
|
||||
- type: Stack
|
||||
stackType: ReinforcedUraniumGlass
|
||||
count: 1
|
||||
@@ -466,6 +466,7 @@
|
||||
- cglass_2
|
||||
- cglass_3
|
||||
- type: Sprite
|
||||
sprite: Objects/Materials/Sheets/glass.rsi
|
||||
state: cglass_3
|
||||
layers:
|
||||
- state: cglass_3
|
||||
@@ -520,6 +521,7 @@
|
||||
suffix: Single
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Materials/Sheets/glass.rsi
|
||||
state: cglass
|
||||
- type: Stack
|
||||
stackType: ClockworkGlass
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
description: A sheet of metal, used often on the station in various applications.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Materials/Sheets/metal.rsi
|
||||
sprite: _TBD/Objects/stack_objects.rsi
|
||||
- type: Item
|
||||
sprite: Objects/Materials/Sheets/metal.rsi
|
||||
sprite: _TBD/Objects/stack_objects.rsi
|
||||
size: Normal
|
||||
- type: StaticPrice
|
||||
price: 0
|
||||
@@ -49,16 +49,16 @@
|
||||
stackType: Steel
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- steel
|
||||
- steel_2
|
||||
- steel_3
|
||||
- sheet-metal_1
|
||||
- sheet-metal_2
|
||||
- sheet-metal_3
|
||||
- type: Sprite
|
||||
state: steel_3
|
||||
state: sheet-metal_3
|
||||
layers:
|
||||
- state: steel_3
|
||||
- state: sheet-metal_3
|
||||
map: ["base"]
|
||||
- type: Item
|
||||
heldPrefix: steel
|
||||
heldPrefix: sheet-metal_1
|
||||
- type: Appearance
|
||||
- type: Extractable
|
||||
grindableSolutionName: steel
|
||||
@@ -78,7 +78,7 @@
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Sprite
|
||||
state: steel
|
||||
state: sheet-metal_1
|
||||
- type: Stack
|
||||
stackType: Steel
|
||||
count: 10
|
||||
@@ -90,7 +90,7 @@
|
||||
suffix: Single
|
||||
components:
|
||||
- type: Sprite
|
||||
state: steel
|
||||
state: sheet-metal_1
|
||||
- type: Stack
|
||||
stackType: Steel
|
||||
count: 1
|
||||
@@ -114,6 +114,7 @@
|
||||
- brass_2
|
||||
- brass_3
|
||||
- type: Sprite
|
||||
sprite: Objects/Materials/Sheets/metal.rsi
|
||||
state: brass_3
|
||||
layers:
|
||||
- state: brass_3
|
||||
@@ -142,6 +143,7 @@
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Materials/Sheets/metal.rsi
|
||||
state: brass
|
||||
- type: Stack
|
||||
stackType: Brass
|
||||
@@ -154,6 +156,7 @@
|
||||
suffix: Single
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Materials/Sheets/metal.rsi
|
||||
state: brass
|
||||
- type: Stack
|
||||
stackType: Brass
|
||||
@@ -173,13 +176,13 @@
|
||||
stackType: Plasteel
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- plasteel
|
||||
- plasteel_2
|
||||
- plasteel_3
|
||||
- sheet-plasteel_1
|
||||
- sheet-plasteel_2
|
||||
- sheet-plasteel_3
|
||||
- type: Sprite
|
||||
state: plasteel_3
|
||||
state: sheet-plasteel_3
|
||||
layers:
|
||||
- state: plasteel_3
|
||||
- state: sheet-plasteel_3
|
||||
map: ["base"]
|
||||
- type: Item
|
||||
heldPrefix: plasteel
|
||||
@@ -205,7 +208,7 @@
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Sprite
|
||||
state: plasteel
|
||||
state: sheet-plasteel_1
|
||||
- type: Stack
|
||||
stackType: Plasteel
|
||||
count: 10
|
||||
@@ -217,7 +220,7 @@
|
||||
suffix: Single
|
||||
components:
|
||||
- type: Sprite
|
||||
state: plasteel
|
||||
state: sheet-plasteel_1
|
||||
- type: Stack
|
||||
stackType: Plasteel
|
||||
count: 1
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
description: A sheet of material, used often on the station in various applications.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Materials/Sheets/other.rsi
|
||||
sprite: _TBD/Objects/stack_objects.rsi
|
||||
- type: Item
|
||||
sprite: Objects/Materials/Sheets/other.rsi
|
||||
sprite: _TBD/Objects/stack_objects.rsi
|
||||
size: Normal
|
||||
- type: Tag
|
||||
tags:
|
||||
@@ -38,20 +38,20 @@
|
||||
stackType: Paper
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- paper
|
||||
- paper_2
|
||||
- paper_3
|
||||
- sheet-paper_1
|
||||
- sheet-paper_2
|
||||
- sheet-paper_3
|
||||
- type: Material
|
||||
- type: PhysicalComposition
|
||||
materialComposition:
|
||||
Paper: 100
|
||||
- type: Sprite
|
||||
state: paper_3
|
||||
state: sheet-paper_3
|
||||
layers:
|
||||
- state: paper_3
|
||||
- state: sheet-paper_3
|
||||
map: ["base"]
|
||||
- type: Item
|
||||
heldPrefix: paper
|
||||
heldPrefix: sheet-paper_1
|
||||
- type: Appearance
|
||||
- type: Extractable
|
||||
grindableSolutionName: paper
|
||||
@@ -70,7 +70,7 @@
|
||||
suffix: Single
|
||||
components:
|
||||
- type: Sprite
|
||||
state: paper
|
||||
state: sheet-paper_1
|
||||
- type: Stack
|
||||
count: 1
|
||||
|
||||
@@ -88,16 +88,16 @@
|
||||
stackType: Plasma
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- plasma
|
||||
- plasma_2
|
||||
- plasma_3
|
||||
- sheet-plasma_1
|
||||
- sheet-plasma_2
|
||||
- sheet-plasma_3
|
||||
- type: Sprite
|
||||
state: plasma_3
|
||||
state: sheet-plasma_3
|
||||
layers:
|
||||
- state: plasma_3
|
||||
- state: sheet-plasma_3
|
||||
map: ["base"]
|
||||
- type: Item
|
||||
heldPrefix: plasma
|
||||
heldPrefix: sheet-plasma_1
|
||||
- type: Appearance
|
||||
- type: Extractable
|
||||
grindableSolutionName: plasma
|
||||
@@ -115,7 +115,7 @@
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Sprite
|
||||
state: plasma
|
||||
state: sheet-plasma_1
|
||||
- type: Stack
|
||||
count: 10
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
suffix: Single
|
||||
components:
|
||||
- type: Sprite
|
||||
state: plasma
|
||||
state: sheet-plasma_1
|
||||
- type: Stack
|
||||
count: 1
|
||||
|
||||
@@ -149,16 +149,16 @@
|
||||
stackType: Plastic
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- plastic
|
||||
- plastic_2
|
||||
- plastic_3
|
||||
- sheet-plastic_1
|
||||
- sheet-plastic_2
|
||||
- sheet-plastic_3
|
||||
- type: Sprite
|
||||
state: plastic_3
|
||||
state: sheet-plastic_3
|
||||
layers:
|
||||
- state: plastic_3
|
||||
- state: sheet-plastic_3
|
||||
map: ["base"]
|
||||
- type: Item
|
||||
heldPrefix: plastic
|
||||
heldPrefix: sheet-plastic_1
|
||||
- type: Appearance
|
||||
- type: Extractable
|
||||
grindableSolutionName: plastic
|
||||
@@ -179,7 +179,7 @@
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Sprite
|
||||
state: plastic
|
||||
state: sheet-plastic_1
|
||||
- type: Stack
|
||||
count: 10
|
||||
|
||||
@@ -190,7 +190,7 @@
|
||||
suffix: Single
|
||||
components:
|
||||
- type: Sprite
|
||||
state: plastic
|
||||
state: sheet-plastic_1
|
||||
- type: Stack
|
||||
count: 1
|
||||
|
||||
@@ -211,17 +211,17 @@
|
||||
stackType: Uranium
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- uranium
|
||||
- uranium_2
|
||||
- uranium_3
|
||||
- sheet-uranium_1
|
||||
- sheet-uranium_2
|
||||
- sheet-uranium_3
|
||||
- type: Sprite
|
||||
state: uranium_3
|
||||
state: sheet-uranium_3
|
||||
layers:
|
||||
- state: uranium_3
|
||||
- state: sheet-uranium_3
|
||||
map: ["base"]
|
||||
- type: Appearance
|
||||
- type: Item
|
||||
heldPrefix: uranium
|
||||
heldPrefix: sheet-uranium_1
|
||||
- type: Extractable
|
||||
grindableSolutionName: food
|
||||
- type: SolutionContainerManager
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
description: A heavy metal ingot stamped with the Nanotrasen logo.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Materials/ingots.rsi
|
||||
sprite: _TBD/Objects/stack_objects.rsi
|
||||
- type: Item
|
||||
sprite: Objects/Materials/ingots.rsi
|
||||
sprite: _TBD/Objects/stack_objects.rsi
|
||||
size: Normal
|
||||
- type: StaticPrice
|
||||
price: 0
|
||||
@@ -41,16 +41,16 @@
|
||||
stackType: Gold
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- gold
|
||||
- gold_2
|
||||
- gold_3
|
||||
- sheet-gold_1
|
||||
- sheet-gold_2
|
||||
- sheet-gold_3
|
||||
- type: Sprite
|
||||
state: gold_3
|
||||
state: sheet-gold_3
|
||||
layers:
|
||||
- state: gold_3
|
||||
- state: sheet-gold_3
|
||||
map: ["base"]
|
||||
- type: Item
|
||||
heldPrefix: gold
|
||||
heldPrefix: sheet-gold_1
|
||||
- type: Appearance
|
||||
- type: Extractable
|
||||
grindableSolutionName: gold
|
||||
@@ -68,7 +68,7 @@
|
||||
suffix: Single
|
||||
components:
|
||||
- type: Sprite
|
||||
state: gold
|
||||
state: sheet-gold_1
|
||||
- type: Stack
|
||||
count: 1
|
||||
|
||||
@@ -86,16 +86,16 @@
|
||||
stackType: Silver
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- silver
|
||||
- silver_2
|
||||
- silver_3
|
||||
- sheet-silver_1
|
||||
- sheet-silver_2
|
||||
- sheet-silver_3
|
||||
- type: Sprite
|
||||
state: silver_3
|
||||
layers:
|
||||
- state: silver_3
|
||||
map: ["base"]
|
||||
- type: Item
|
||||
heldPrefix: silver
|
||||
heldPrefix: sheet-silver_1
|
||||
- type: Appearance
|
||||
- type: Extractable
|
||||
grindableSolutionName: gold
|
||||
@@ -113,6 +113,6 @@
|
||||
suffix: Single
|
||||
components:
|
||||
- type: Sprite
|
||||
state: silver
|
||||
state: sheet-silver_1
|
||||
- type: Stack
|
||||
count: 1
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
abstract: true
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Misc/id_cards.rsi
|
||||
sprite: _TBD/Objects/Misc/id_cards.rsi
|
||||
- type: Clothing
|
||||
slots:
|
||||
- idcard
|
||||
sprite: Objects/Misc/id_cards.rsi
|
||||
sprite: _TBD/Objects/Misc/id_cards.rsi
|
||||
- type: Item
|
||||
size: Small
|
||||
heldPrefix: default
|
||||
@@ -25,6 +25,7 @@
|
||||
- WhitelistChameleonIdCard
|
||||
- type: StealTarget
|
||||
stealGroup: IDCard
|
||||
- type: MiningPoints # DeltaV
|
||||
|
||||
#IDs with layers
|
||||
|
||||
@@ -37,7 +38,7 @@
|
||||
layers:
|
||||
- state: default
|
||||
- sprite: &icon-rsi Interface/Misc/job_icons.rsi
|
||||
offset: &icon-offset -0.09375, 0.0625 #3 pixels left, 2 pixels up
|
||||
offset: &icon-offset -0.185, 0.015 #3 pixels left, 2 pixels up
|
||||
state: Passenger
|
||||
- type: PresetIdCard
|
||||
job: Passenger
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user