Airship + Unittest (#496)
* wings * update cargo shuttle * update goblin sound * add new unit test * Update CP14EntityTest.cs * Update CP14RitualTest.cs * add buy and sell hints * paper reading * hardwork * clean task * body forkfiltered * Update crystal.yml * more fork flitered * Update basic.yml * Update wild.yml * Update CP14EntityTest.cs * realise pusharing * pusharing alchemical vials * coin disappear works * Fix
This commit is contained in:
37
Content.IntegrationTests/Tests/_CP14/CP14CargoTest.cs
Normal file
37
Content.IntegrationTests/Tests/_CP14/CP14CargoTest.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System.Collections.Generic;
|
||||
using Content.Shared._CP14.TravelingStoreShip.Prototype;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.IntegrationTests.Tests._CP14;
|
||||
|
||||
#nullable enable
|
||||
|
||||
[TestFixture]
|
||||
public sealed class CP14CargoTest
|
||||
{
|
||||
[Test]
|
||||
public async Task CheckAllBuyPositionsUniqueCode()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var server = pair.Server;
|
||||
|
||||
var compFactory = server.ResolveDependency<IComponentFactory>();
|
||||
var protoManager = server.ResolveDependency<IPrototypeManager>();
|
||||
|
||||
await server.WaitAssertion(() =>
|
||||
{
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
HashSet<string> existedCodes = new();
|
||||
|
||||
foreach (var proto in protoManager.EnumeratePrototypes<CP14StoreBuyPositionPrototype>())
|
||||
{
|
||||
Assert.That(!existedCodes.Contains(proto.Code), $"Repeated purchasing code {proto.Code} of the {proto}");
|
||||
existedCodes.Add(proto.Code);
|
||||
}
|
||||
});
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
41
Content.IntegrationTests/Tests/_CP14/CP14EntityTest.cs
Normal file
41
Content.IntegrationTests/Tests/_CP14/CP14EntityTest.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.IntegrationTests.Tests._CP14;
|
||||
|
||||
#nullable enable
|
||||
|
||||
[TestFixture]
|
||||
public sealed class CP14EntityTest
|
||||
{
|
||||
[Test]
|
||||
public async Task CheckAllCP14EntityHasForkFilteredCategory()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var server = pair.Server;
|
||||
|
||||
var compFactory = server.ResolveDependency<IComponentFactory>();
|
||||
var protoManager = server.ResolveDependency<IPrototypeManager>();
|
||||
|
||||
await server.WaitAssertion(() =>
|
||||
{
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
if (!protoManager.TryIndex<EntityCategoryPrototype>("ForkFiltered", out var indexedFilter))
|
||||
return;
|
||||
|
||||
foreach (var proto in protoManager.EnumeratePrototypes<EntityPrototype>())
|
||||
{
|
||||
if (!proto.ID.StartsWith("CP14"))
|
||||
continue;
|
||||
|
||||
if (proto.Abstract || proto.HideSpawnMenu)
|
||||
continue;
|
||||
|
||||
Assert.That(proto.Categories.Contains(indexedFilter), $"CP14 fork proto: {proto} does not marked abstract, or have a HideSpawnMenu or ForkFiltered category");
|
||||
}
|
||||
});
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
@@ -42,7 +42,7 @@ public sealed class CP14RitualTest
|
||||
|
||||
foreach (var edge in phase.Edges)
|
||||
{
|
||||
Assert.That(edge.Triggers.Count > 0, $"{{proto}} is ritual node, but edge to {edge.Target} has no triggers and cannot be activated.");
|
||||
Assert.That(edge.Triggers.Count > 0, $"{proto} is ritual node, but edge to {edge.Target} has no triggers and cannot be activated.");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -149,11 +149,6 @@ public sealed partial class CP14CurrencySystem : CP14SharedCurrencySystem
|
||||
args.Verbs.Add(platinumVerb);
|
||||
}
|
||||
|
||||
public HashSet<EntityUid> GenerateMoney(EntProtoId currencyType, int target, EntityCoordinates coordinates)
|
||||
{
|
||||
return GenerateMoney(currencyType, target, coordinates, out _);
|
||||
}
|
||||
|
||||
public HashSet<EntityUid> GenerateMoney(EntProtoId currencyType, int target, EntityCoordinates coordinates, out int remainder)
|
||||
{
|
||||
remainder = target;
|
||||
@@ -189,18 +184,18 @@ public sealed partial class CP14CurrencySystem : CP14SharedCurrencySystem
|
||||
spawns.Add(ent);
|
||||
remainder -= singleCurrency;
|
||||
|
||||
if (TryComp<StackComponent>(ent, out var stack))
|
||||
if (TryComp<StackComponent>(ent, out var stack) && _proto.TryIndex<StackPrototype>(stack.StackTypeId, out var indexedStack))
|
||||
{
|
||||
AdjustStack(ent, stack, singleCurrency, ref remainder);
|
||||
AdjustStack(ent, stack, indexedStack, singleCurrency, ref remainder);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private void AdjustStack(EntityUid ent, StackComponent stack, float singleCurrency, ref int remainder)
|
||||
private void AdjustStack(EntityUid ent, StackComponent stack, StackPrototype stackProto, float singleCurrency, ref int remainder)
|
||||
{
|
||||
var singleStackCurrency = singleCurrency / stack.Count;
|
||||
var stackLeftSpace = stack.MaxCountOverride - stack.Count;
|
||||
var stackLeftSpace = stackProto.MaxCount - stack.Count;
|
||||
|
||||
if (stackLeftSpace is not null)
|
||||
{
|
||||
|
||||
@@ -25,22 +25,25 @@ public sealed partial class CP14CargoSystem
|
||||
if (_timing.CurTime < ship.NextTravelTime || ship.NextTravelTime == TimeSpan.Zero)
|
||||
continue;
|
||||
|
||||
if (Transform(ship.Shuttle).MapUid == Transform(ship.TradePostMap).MapUid)
|
||||
if (ship.Shuttle is null || ship.TradePostMap is null)
|
||||
continue;
|
||||
|
||||
if (Transform(ship.Shuttle.Value).MapUid == Transform(ship.TradePostMap.Value).MapUid)
|
||||
{
|
||||
// if landed on trade post
|
||||
ship.NextTravelTime = _timing.CurTime + ship.StationWaitTime;
|
||||
SendShuttleToStation((uid, ship));
|
||||
SendShuttleToStation(ship.Shuttle.Value);
|
||||
}
|
||||
else
|
||||
{
|
||||
// if landed on station
|
||||
ship.NextTravelTime = _timing.CurTime + ship.TradePostWaitTime;
|
||||
SendShuttleToTradepost((uid, ship));
|
||||
SendShuttleToTradepost(ship.Shuttle.Value, ship.TradePostMap.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SendShuttleToStation(Entity<CP14StationTravelingStoreShipTargetComponent> station, float startupTime = 0f)
|
||||
private void SendShuttleToStation(EntityUid shuttle, float startupTime = 0f)
|
||||
{
|
||||
var targetPoints = new List<EntityUid>();
|
||||
var targetEnumerator = EntityQueryEnumerator<CP14TravelingStoreShipFTLTargetComponent, TransformComponent>(); //TODO - different method position location
|
||||
@@ -54,16 +57,16 @@ public sealed partial class CP14CargoSystem
|
||||
var target = _random.Pick(targetPoints);
|
||||
var targetXform = Transform(target);
|
||||
|
||||
var shuttleComp = Comp<ShuttleComponent>(station.Comp.Shuttle);
|
||||
var shuttleComp = Comp<ShuttleComponent>(shuttle);
|
||||
|
||||
_shuttles.FTLToCoordinates(station.Comp.Shuttle, shuttleComp, targetXform.Coordinates, targetXform.LocalRotation, hyperspaceTime: 5f, startupTime: startupTime);
|
||||
_shuttles.FTLToCoordinates(shuttle, shuttleComp, targetXform.Coordinates, targetXform.LocalRotation, hyperspaceTime: 5f, startupTime: startupTime);
|
||||
}
|
||||
|
||||
private void SendShuttleToTradepost(Entity<CP14StationTravelingStoreShipTargetComponent> station)
|
||||
private void SendShuttleToTradepost(EntityUid shuttle, EntityUid tradePostMap)
|
||||
{
|
||||
var shuttleComp = Comp<ShuttleComponent>(station.Comp.Shuttle);
|
||||
var shuttleComp = Comp<ShuttleComponent>(shuttle);
|
||||
|
||||
_shuttles.FTLToCoordinates(station.Comp.Shuttle, shuttleComp, new EntityCoordinates(station.Comp.TradePostMap, Vector2.Zero), Angle.Zero, hyperspaceTime: 5f);
|
||||
_shuttles.FTLToCoordinates(shuttle, shuttleComp, new EntityCoordinates(tradePostMap, Vector2.Zero), Angle.Zero, hyperspaceTime: 5f);
|
||||
}
|
||||
|
||||
private void OnFTLCompleted(Entity<CP14TravelingStoreShipComponent> ent, ref FTLCompletedEvent args)
|
||||
@@ -71,16 +74,23 @@ public sealed partial class CP14CargoSystem
|
||||
if (!TryComp<CP14StationTravelingStoreShipTargetComponent>(ent.Comp.Station, out var station))
|
||||
return;
|
||||
|
||||
if (Transform(ent).MapUid == Transform(station.TradePostMap).MapUid) //Landed on tradepost
|
||||
if (station.TradePostMap is not null && Transform(ent).MapUid == Transform(station.TradePostMap.Value).MapUid) //Landed on tradepost
|
||||
{
|
||||
station.OnStation = false;
|
||||
|
||||
SellingThings((ent.Comp.Station, station));
|
||||
var b = station.Balance;
|
||||
|
||||
SellingThings((ent.Comp.Station, station)); // +balance
|
||||
TopUpBalance((ent.Comp.Station, station)); //+balance
|
||||
BuyToQueue((ent.Comp.Station, station)); //-balance +buyQueue
|
||||
TrySpawnBuyedThings((ent.Comp.Station, station));
|
||||
UpdateStorePositions((ent.Comp.Station, station));
|
||||
}
|
||||
else //Landed on station
|
||||
{
|
||||
station.OnStation = true;
|
||||
|
||||
CashOut((ent.Comp.Station, station));
|
||||
}
|
||||
UpdateAllStores();
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace Content.Server._CP14.TravelingStoreShip;
|
||||
|
||||
public sealed partial class CP14CargoSystem
|
||||
{
|
||||
public void InitializeStore()
|
||||
public void InitializeUI()
|
||||
{
|
||||
SubscribeLocalEvent<CP14CargoStoreComponent, BeforeActivatableUIOpenEvent>(OnBeforeUIOpen);
|
||||
}
|
||||
@@ -27,15 +27,17 @@ public sealed partial class CP14CargoSystem
|
||||
|
||||
private void OnBeforeUIOpen(Entity<CP14CargoStoreComponent> ent, ref BeforeActivatableUIOpenEvent args)
|
||||
{
|
||||
//TODO: If you open a store on a mapping, and initStore() it, the entity will throw an error when you try to save the grid\map.
|
||||
|
||||
if (ent.Comp.Station is null)
|
||||
TryInitStore(ent);
|
||||
|
||||
UpdateUIProducts(ent);
|
||||
}
|
||||
|
||||
//TODO: redo
|
||||
private void UpdateAllStores()
|
||||
{
|
||||
//TODO: redo
|
||||
var query = EntityQueryEnumerator<CP14CargoStoreComponent>();
|
||||
while (query.MoveNext(out var uid, out var store))
|
||||
{
|
||||
@@ -53,32 +55,30 @@ public sealed partial class CP14CargoSystem
|
||||
|
||||
foreach (var proto in ent.Comp.Station.Value.Comp.CurrentBuyPositions)
|
||||
{
|
||||
if (!_proto.TryIndex(proto.Key, out var indexedProto))
|
||||
continue;
|
||||
|
||||
var name = Loc.GetString(indexedProto.Name);
|
||||
var name = Loc.GetString(proto.Key.Name);
|
||||
var desc = new StringBuilder();
|
||||
desc.Append(Loc.GetString(indexedProto.Desc) + "\n");
|
||||
foreach (var service in indexedProto.Services)
|
||||
desc.Append(Loc.GetString(proto.Key.Desc) + "\n");
|
||||
foreach (var service in proto.Key.Services)
|
||||
{
|
||||
desc.Append(service.GetDescription(_proto, EntityManager));
|
||||
}
|
||||
|
||||
prodBuy.Add(new CP14StoreUiProductEntry(proto.Key.Id, indexedProto.Icon, name, desc.ToString(), proto.Value));
|
||||
desc.Append("\n" + Loc.GetString("cp14-store-buy-hint", ("name", Loc.GetString(proto.Key.Name)), ("code", "#" + proto.Key.Code)));
|
||||
|
||||
prodBuy.Add(new CP14StoreUiProductEntry(proto.Key.ID, proto.Key.Icon, name, desc.ToString(), proto.Value));
|
||||
}
|
||||
|
||||
foreach (var proto in ent.Comp.Station.Value.Comp.CurrentSellPositions)
|
||||
{
|
||||
if (!_proto.TryIndex(proto.Key, out var indexedProto))
|
||||
continue;
|
||||
|
||||
var name = Loc.GetString(indexedProto.Name);
|
||||
var name = Loc.GetString(proto.Key.Name);
|
||||
|
||||
var desc = new StringBuilder();
|
||||
desc.Append(Loc.GetString(indexedProto.Desc) + "\n");
|
||||
desc.Append(indexedProto.Service.GetDescription(_proto, EntityManager));
|
||||
desc.Append(Loc.GetString(proto.Key.Desc) + "\n");
|
||||
desc.Append(proto.Key.Service.GetDescription(_proto, EntityManager) + "\n");
|
||||
desc.Append("\n" + Loc.GetString("cp14-store-sell-hint", ("name", Loc.GetString(proto.Key.Name))));
|
||||
|
||||
prodSell.Add(new CP14StoreUiProductEntry(proto.Key.Id, indexedProto.Icon, name, desc.ToString(), proto.Value));
|
||||
prodSell.Add(new CP14StoreUiProductEntry(proto.Key.ID, proto.Key.Icon, name, desc.ToString(), proto.Value));
|
||||
}
|
||||
|
||||
var stationComp = ent.Comp.Station.Value.Comp;
|
||||
|
||||
@@ -5,6 +5,10 @@ using Content.Server.Station.Systems;
|
||||
using Content.Shared._CP14.Currency;
|
||||
using Content.Shared._CP14.TravelingStoreShip;
|
||||
using Content.Shared._CP14.TravelingStoreShip.Prototype;
|
||||
using Content.Shared.Maps;
|
||||
using Content.Shared.Paper;
|
||||
using Content.Shared.Physics;
|
||||
using Content.Shared.Storage;
|
||||
using Content.Shared.Storage.EntitySystems;
|
||||
using Robust.Server.GameObjects;
|
||||
using Robust.Shared.Map;
|
||||
@@ -28,6 +32,7 @@ public sealed partial class CP14CargoSystem : CP14SharedCargoSystem
|
||||
[Dependency] private readonly EntityLookupSystem _lookup = default!;
|
||||
[Dependency] private readonly CP14CurrencySystem _currency = default!;
|
||||
[Dependency] private readonly SharedStorageSystem _storage = default!;
|
||||
[Dependency] private readonly TurfSystem _turf = default!;
|
||||
|
||||
private EntityQuery<TransformComponent> _xformQuery;
|
||||
|
||||
@@ -38,7 +43,8 @@ public sealed partial class CP14CargoSystem : CP14SharedCargoSystem
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
InitializeStore();
|
||||
|
||||
InitializeUI();
|
||||
InitializeShuttle();
|
||||
|
||||
_xformQuery = GetEntityQuery<TransformComponent>();
|
||||
@@ -76,7 +82,7 @@ public sealed partial class CP14CargoSystem : CP14SharedCargoSystem
|
||||
var shuttle = shuttleUids[0];
|
||||
station.Comp.Shuttle = shuttle;
|
||||
station.Comp.TradePostMap = _mapManager.GetMapEntityId(tradepostMap);
|
||||
var travelingStoreShipComp = EnsureComp<CP14TravelingStoreShipComponent>(station.Comp.Shuttle);
|
||||
var travelingStoreShipComp = EnsureComp<CP14TravelingStoreShipComponent>(station.Comp.Shuttle.Value);
|
||||
travelingStoreShipComp.Station = station;
|
||||
|
||||
station.Comp.NextTravelTime = _timing.CurTime + TimeSpan.FromSeconds(10f);
|
||||
@@ -104,6 +110,9 @@ public sealed partial class CP14CargoSystem : CP14SharedCargoSystem
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sell all the items we can, and replenish the internal balance
|
||||
/// </summary>
|
||||
private void SellingThings(Entity<CP14StationTravelingStoreShipTargetComponent> station)
|
||||
{
|
||||
var shuttle = station.Comp.Shuttle;
|
||||
@@ -119,7 +128,7 @@ public sealed partial class CP14CargoSystem : CP14SharedCargoSystem
|
||||
|
||||
var sentEntities = new HashSet<EntityUid>();
|
||||
|
||||
_lookup.GetEntitiesInRange(uid, 1, sentEntities, LookupFlags.Dynamic | LookupFlags.Sundries);
|
||||
_lookup.GetEntitiesInRange(uid, 0.5f, sentEntities, LookupFlags.Dynamic | LookupFlags.Sundries);
|
||||
|
||||
foreach (var ent in sentEntities)
|
||||
{
|
||||
@@ -130,56 +139,154 @@ public sealed partial class CP14CargoSystem : CP14SharedCargoSystem
|
||||
}
|
||||
}
|
||||
|
||||
var cash = 0;
|
||||
foreach (var sellPos in station.Comp.CurrentSellPositions)
|
||||
{
|
||||
if (!_proto.TryIndex(sellPos.Key, out var indexedPos))
|
||||
continue;
|
||||
|
||||
while (indexedPos.Service.TrySell(EntityManager, toSell))
|
||||
while (sellPos.Key.Service.TrySell(EntityManager, toSell))
|
||||
{
|
||||
cash += sellPos.Value;
|
||||
station.Comp.Balance += sellPos.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Take all the money from the tradebox, and credit it to the internal balance
|
||||
/// </summary>
|
||||
private void TopUpBalance(Entity<CP14StationTravelingStoreShipTargetComponent> station)
|
||||
{
|
||||
var tradebox = GetTradeBox(station);
|
||||
|
||||
if (tradebox is null)
|
||||
return;
|
||||
|
||||
if (!TryComp<StorageComponent>(tradebox, out var tradeStorage))
|
||||
return;
|
||||
|
||||
//Get all currency in tradebox
|
||||
int cash = 0;
|
||||
foreach (var stored in tradeStorage.Container.ContainedEntities)
|
||||
{
|
||||
var price = _currency.GetTotalCurrency(stored);
|
||||
if (price > 0)
|
||||
{
|
||||
cash += price;
|
||||
QueueDel(stored);
|
||||
}
|
||||
}
|
||||
|
||||
var moneyBox = GetMoneyBox(station);
|
||||
station.Comp.Balance += cash;
|
||||
}
|
||||
|
||||
private void BuyToQueue(Entity<CP14StationTravelingStoreShipTargetComponent> station)
|
||||
{
|
||||
var tradebox = GetTradeBox(station);
|
||||
|
||||
if (tradebox is null)
|
||||
return;
|
||||
|
||||
if (!TryComp<StorageComponent>(tradebox, out var tradeStorage))
|
||||
return;
|
||||
|
||||
//Reading all papers in tradebox
|
||||
List<KeyValuePair<CP14StoreBuyPositionPrototype, int>> requests = new();
|
||||
foreach (var stored in tradeStorage.Container.ContainedEntities)
|
||||
{
|
||||
if (!TryComp<PaperComponent>(stored, out var paper))
|
||||
continue;
|
||||
|
||||
var splittedText = paper.Content.Split("#");
|
||||
foreach (var fragment in splittedText)
|
||||
{
|
||||
foreach (var buyPosition in station.Comp.CurrentBuyPositions)
|
||||
{
|
||||
if (fragment.StartsWith(buyPosition.Key.Code))
|
||||
requests.Add(buyPosition);
|
||||
}
|
||||
}
|
||||
|
||||
QueueDel(stored);
|
||||
}
|
||||
|
||||
//Trying spend tradebox money to buy requested things
|
||||
foreach (var request in requests)
|
||||
{
|
||||
if (station.Comp.Balance < request.Value)
|
||||
continue;
|
||||
|
||||
station.Comp.Balance -= request.Value;
|
||||
station.Comp.BuyedQueue.Enqueue(request);
|
||||
}
|
||||
}
|
||||
|
||||
//Dequeue buyed items, and spawn they on shuttle
|
||||
private void TrySpawnBuyedThings(Entity<CP14StationTravelingStoreShipTargetComponent> station)
|
||||
{
|
||||
var shuttle = station.Comp.Shuttle;
|
||||
|
||||
var query = EntityQueryEnumerator<CP14BuyingPalettComponent, TransformComponent>();
|
||||
while (query.MoveNext(out var uid, out _, out var palletXform))
|
||||
{
|
||||
if (station.Comp.BuyedQueue.Count <= 0)
|
||||
break;
|
||||
|
||||
if (palletXform.ParentUid != shuttle || !palletXform.Anchored)
|
||||
continue;
|
||||
|
||||
var tileRef = palletXform.Coordinates.GetTileRef();
|
||||
if (tileRef is null)
|
||||
continue;
|
||||
|
||||
if (_turf.IsTileBlocked(tileRef.Value, CollisionGroup.ItemMask))
|
||||
continue;
|
||||
|
||||
var buyedThing = station.Comp.BuyedQueue.Dequeue();
|
||||
Spawn(buyedThing.Key.ID, palletXform.Coordinates);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Transform all the accumulated balance into physical money, which we will give to the players.
|
||||
/// </summary>
|
||||
private void CashOut(Entity<CP14StationTravelingStoreShipTargetComponent> station)
|
||||
{
|
||||
var moneyBox = GetTradeBox(station);
|
||||
if (moneyBox is not null)
|
||||
{
|
||||
var coord = Transform(moneyBox.Value).Coordinates;
|
||||
|
||||
if (cash > 0)
|
||||
if (station.Comp.Balance > 0)
|
||||
{
|
||||
var coins = _currency.GenerateMoney(CP14SharedCurrencySystem.PP.Key, cash, coord, out var remainder);
|
||||
cash = remainder;
|
||||
var coins = _currency.GenerateMoney(CP14SharedCurrencySystem.PP.Key, station.Comp.Balance, coord, out var remainder);
|
||||
station.Comp.Balance = remainder;
|
||||
foreach (var coin in coins)
|
||||
{
|
||||
_storage.Insert(moneyBox.Value, coin, out _);
|
||||
}
|
||||
}
|
||||
|
||||
if (cash > 0)
|
||||
if (station.Comp.Balance > 0)
|
||||
{
|
||||
var coins = _currency.GenerateMoney(CP14SharedCurrencySystem.GP.Key, cash, coord, out var remainder);
|
||||
cash = remainder;
|
||||
var coins = _currency.GenerateMoney(CP14SharedCurrencySystem.GP.Key, station.Comp.Balance, coord, out var remainder);
|
||||
station.Comp.Balance = remainder;
|
||||
foreach (var coin in coins)
|
||||
{
|
||||
_storage.Insert(moneyBox.Value, coin, out _);
|
||||
}
|
||||
}
|
||||
|
||||
if (cash > 0)
|
||||
if (station.Comp.Balance > 0)
|
||||
{
|
||||
var coins = _currency.GenerateMoney(CP14SharedCurrencySystem.SP.Key, cash, coord, out var remainder);
|
||||
cash = remainder;
|
||||
var coins = _currency.GenerateMoney(CP14SharedCurrencySystem.SP.Key, station.Comp.Balance, coord, out var remainder);
|
||||
station.Comp.Balance = remainder;
|
||||
foreach (var coin in coins)
|
||||
{
|
||||
_storage.Insert(moneyBox.Value, coin, out _);
|
||||
}
|
||||
}
|
||||
|
||||
if (cash > 0)
|
||||
if (station.Comp.Balance > 0)
|
||||
{
|
||||
var coins = _currency.GenerateMoney(CP14SharedCurrencySystem.CP.Key, cash, coord);
|
||||
var coins = _currency.GenerateMoney(CP14SharedCurrencySystem.CP.Key, station.Comp.Balance, coord, out var remainder);
|
||||
station.Comp.Balance = remainder;
|
||||
foreach (var coin in coins)
|
||||
{
|
||||
_storage.Insert(moneyBox.Value, coin, out _);
|
||||
@@ -188,7 +295,7 @@ public sealed partial class CP14CargoSystem : CP14SharedCargoSystem
|
||||
}
|
||||
}
|
||||
|
||||
private EntityUid? GetMoneyBox(Entity<CP14StationTravelingStoreShipTargetComponent> station)
|
||||
private EntityUid? GetTradeBox(Entity<CP14StationTravelingStoreShipTargetComponent> station)
|
||||
{
|
||||
var query = EntityQueryEnumerator<CP14CargoMoneyBoxComponent, TransformComponent>();
|
||||
|
||||
|
||||
@@ -37,11 +37,16 @@ public partial class CP14SharedCurrencySystem : EntitySystem
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
public int GetTotalCurrency(EntityUid uid, CP14CurrencyComponent? currency = null)
|
||||
public int GetTotalCurrency(EntityUid uid)
|
||||
{
|
||||
if (!Resolve(uid, ref currency))
|
||||
if (!TryComp<CP14CurrencyComponent>(uid, out var currency))
|
||||
return 0;
|
||||
|
||||
return GetTotalCurrency(uid, currency);
|
||||
}
|
||||
|
||||
public int GetTotalCurrency(EntityUid uid, CP14CurrencyComponent currency)
|
||||
{
|
||||
var total = currency.Currency;
|
||||
|
||||
if (TryComp<StackComponent>(uid, out var stack))
|
||||
|
||||
@@ -12,35 +12,44 @@ namespace Content.Shared._CP14.TravelingStoreShip;
|
||||
public sealed partial class CP14StationTravelingStoreShipTargetComponent : Component
|
||||
{
|
||||
[DataField]
|
||||
public EntityUid Shuttle;
|
||||
public EntityUid? Shuttle;
|
||||
|
||||
[DataField]
|
||||
public EntityUid TradePostMap;
|
||||
public EntityUid? TradePostMap;
|
||||
|
||||
[DataField]
|
||||
public bool OnStation;
|
||||
|
||||
[DataField]
|
||||
public ResPath ShuttlePath = new("/Maps/_CP14/Ships/balloon.yml");
|
||||
public ResPath ShuttlePath = new("/Maps/_CP14/Ships/cargo_shuttle.yml");
|
||||
|
||||
[DataField]
|
||||
public TimeSpan NextTravelTime = TimeSpan.Zero;
|
||||
|
||||
[DataField]
|
||||
public TimeSpan StationWaitTime = TimeSpan.FromMinutes(6);
|
||||
public TimeSpan StationWaitTime = TimeSpan.FromMinutes(1);
|
||||
|
||||
[DataField]
|
||||
public TimeSpan TradePostWaitTime = TimeSpan.FromMinutes(4);
|
||||
public TimeSpan TradePostWaitTime = TimeSpan.FromMinutes(1);
|
||||
|
||||
[DataField]
|
||||
public Dictionary<ProtoId<CP14StoreBuyPositionPrototype>, int> CurrentBuyPositions = new(); //Proto, price
|
||||
public Dictionary<CP14StoreBuyPositionPrototype, int> CurrentBuyPositions = new(); //Proto, price
|
||||
|
||||
[DataField]
|
||||
public MinMax SpecialBuyPositionCount = new(1, 2);
|
||||
|
||||
[DataField]
|
||||
public Dictionary<ProtoId<CP14StoreSellPositionPrototype>, int> CurrentSellPositions = new(); //Proto, price
|
||||
public Dictionary<CP14StoreSellPositionPrototype, int> CurrentSellPositions = new(); //Proto, price
|
||||
|
||||
[DataField]
|
||||
public MinMax SpecialSellPositionCount = new(1, 2);
|
||||
|
||||
[DataField]
|
||||
public int Balance = 0;
|
||||
|
||||
/// <summary>
|
||||
/// a queue of purchased items. The oldest purchases are taken out one by one to be unloaded onto the ship
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public Queue<KeyValuePair<CP14StoreBuyPositionPrototype, int>> BuyedQueue = new();
|
||||
}
|
||||
|
||||
@@ -26,6 +26,12 @@ public sealed partial class CP14StoreBuyPositionPrototype : IPrototype
|
||||
[DataField(required: true)]
|
||||
public LocId Name = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// a unique code that can be used to purchase items.
|
||||
/// </summary>
|
||||
[DataField(required: true)]
|
||||
public string Code = string.Empty;
|
||||
|
||||
[DataField]
|
||||
public LocId Desc = string.Empty;
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,2 +1,7 @@
|
||||
cp14-store-buy-hint = If you want to buy {$name}, leave your money and order in the trade box: Any paper that says {$code} on it will do.
|
||||
|
||||
cp14-store-buy-alchemy-normalizer-name = Solution normalizer
|
||||
cp14-store-buy-alchemy-normalizer-desc = Are your alchemists making poor quality potions? Fix it with a modern technological device made by Dwarf! “Alchemical Normalizer” - will remove any residue from your potions!
|
||||
cp14-store-buy-alchemy-normalizer-desc = Are your alchemists making poor quality potions? Fix it with a modern technological device made by Dwarf! “Alchemical Normalizer” - will remove any residue from your potions!
|
||||
|
||||
cp14-store-buy-alchemy-vials-name = Alchemical vials
|
||||
cp14-store-buy-alchemy-vials-desc = Now the problem of shortage of potion vessels is no longer a problem! After all, for a rather modest price you can order batches of shiny vials directly from the glassblowing factory! Random alchemical devices as a gift.
|
||||
@@ -1,3 +1,5 @@
|
||||
cp14-store-sell-hint = To sell {$name}, load the desired goods onto the selling pallets. Our people in town will sort it out, pick up the goods and leave the money in the trade box on the ship.
|
||||
|
||||
cp14-store-sell-goldbar-name = 10 gold bars
|
||||
cp14-store-sell-goldbar-desc = The mining and processing of gold ore is heavily sponsored by the empire, which uses gold as currency and material for jewelry.
|
||||
|
||||
|
||||
@@ -1,2 +1,7 @@
|
||||
cp14-store-buy-hint = Если вы хотите купить {$name}, оставьте деньги и ваш заказ в торговом ящике: Подойдет любая бумага, на которой будет написано {$code}
|
||||
|
||||
cp14-store-buy-alchemy-normalizer-name = Нормализатор растворов
|
||||
cp14-store-buy-alchemy-normalizer-desc = Ваши алхимики делают некачественные зелья? Исправьте это при помощи современного технологического устройства дворфского производства! "Алхимический нормализатор" - удалит из ваших зелий любой осадок!
|
||||
cp14-store-buy-alchemy-normalizer-desc = Ваши алхимики делают некачественные зелья? Исправьте это при помощи современного технологического устройства дворфского производства! "Алхимический нормализатор" - удалит из ваших зелий любой осадок!
|
||||
|
||||
cp14-store-buy-alchemy-vials-name = Алхимические пузырьки
|
||||
cp14-store-buy-alchemy-vials-desc = Теперь проблема дефицита емкостей для зелий больше не проблема! Ведь по довольно скромной цене вы можете заказывать партии блестящих склянок прямо с стеклодульного завода! Случайные алхимические приборы в подарок.
|
||||
@@ -1,3 +1,5 @@
|
||||
cp14-store-sell-hint = Чтобы продать {$name}, погрузите необходимый товар на продающие поддоны. Наши люди в городе разберутся что к чему, заберут товар и оставят деньги в торговом ящике на корабле.
|
||||
|
||||
cp14-store-sell-goldbar-name = 10 золотых слитков
|
||||
cp14-store-sell-goldbar-desc = Добыча и обработка золотой руды активно спонсируется империей, использующей золото как валюту и материал для ювелирных украшений.
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ meta:
|
||||
postmapinit: false
|
||||
tilemap:
|
||||
0: Space
|
||||
49: CP14FloorStonebricksSmallCarved1
|
||||
35: CP14FloorOakWoodPlanksCruciform
|
||||
entities:
|
||||
- proto: ""
|
||||
entities:
|
||||
@@ -12,25 +12,25 @@ entities:
|
||||
- type: MetaData
|
||||
name: grid
|
||||
- type: Transform
|
||||
pos: -0.73058385,-0.60119945
|
||||
pos: -0.5393677,-0.48875555
|
||||
parent: invalid
|
||||
- type: MapGrid
|
||||
chunks:
|
||||
0,0:
|
||||
ind: 0,0
|
||||
tiles: MQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
tiles: IwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
version: 6
|
||||
-1,0:
|
||||
ind: -1,0
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
version: 6
|
||||
-1,-1:
|
||||
ind: -1,-1
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAA
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAA
|
||||
version: 6
|
||||
0,-1:
|
||||
ind: 0,-1
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
version: 6
|
||||
- type: Broadphase
|
||||
- type: Physics
|
||||
@@ -60,289 +60,416 @@ entities:
|
||||
- type: RadiationGridResistance
|
||||
- proto: C14IronCabinetCargo
|
||||
entities:
|
||||
- uid: 50
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 0.5,-1.5
|
||||
parent: 1
|
||||
- proto: CP14WallmountLamp
|
||||
entities:
|
||||
- uid: 51
|
||||
- uid: 61
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: -1.5,-3.5
|
||||
pos: 1.5,0.5
|
||||
parent: 1
|
||||
- type: Fixtures
|
||||
fixtures: {}
|
||||
- uid: 52
|
||||
- proto: CP14BrassChest
|
||||
entities:
|
||||
- uid: 59
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -0.5,-3.5
|
||||
parent: 1
|
||||
- proto: CP14ChairWooden
|
||||
entities:
|
||||
- uid: 56
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: 2.5,-3.5
|
||||
pos: 1.6128012,-3.351526
|
||||
parent: 1
|
||||
- type: Fixtures
|
||||
fixtures: {}
|
||||
- uid: 53
|
||||
- uid: 57
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -1.5,4.5
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: 0.67951775,-2.4741838
|
||||
parent: 1
|
||||
- type: Fixtures
|
||||
fixtures: {}
|
||||
- uid: 54
|
||||
- uid: 58
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 2.5,4.5
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: 0.66827327,-1.5855919
|
||||
parent: 1
|
||||
- type: Fixtures
|
||||
fixtures: {}
|
||||
- proto: CP14WallStonebrick
|
||||
- proto: CP14CurtainsRedOpened
|
||||
entities:
|
||||
- uid: 2
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -0.5,-4.5
|
||||
parent: 1
|
||||
- uid: 3
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -1.5,-4.5
|
||||
parent: 1
|
||||
- uid: 4
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -2.5,-4.5
|
||||
parent: 1
|
||||
- uid: 5
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -2.5,-3.5
|
||||
parent: 1
|
||||
- uid: 6
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -2.5,-1.5
|
||||
parent: 1
|
||||
- uid: 7
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -2.5,-0.5
|
||||
parent: 1
|
||||
- uid: 8
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -2.5,0.5
|
||||
parent: 1
|
||||
- uid: 11
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -2.5,-2.5
|
||||
parent: 1
|
||||
- uid: 13
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -2.5,4.5
|
||||
parent: 1
|
||||
- uid: 14
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -2.5,5.5
|
||||
parent: 1
|
||||
- uid: 15
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -1.5,5.5
|
||||
parent: 1
|
||||
- uid: 18
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 2.5,5.5
|
||||
parent: 1
|
||||
- uid: 19
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 3.5,5.5
|
||||
parent: 1
|
||||
- uid: 21
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 3.5,4.5
|
||||
parent: 1
|
||||
- uid: 25
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 3.5,0.5
|
||||
parent: 1
|
||||
- uid: 26
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 3.5,-0.5
|
||||
parent: 1
|
||||
- uid: 27
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 3.5,-2.5
|
||||
parent: 1
|
||||
- uid: 28
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 3.5,-1.5
|
||||
parent: 1
|
||||
- uid: 29
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 3.5,-3.5
|
||||
parent: 1
|
||||
- uid: 30
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 3.5,-4.5
|
||||
parent: 1
|
||||
- uid: 31
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 2.5,-4.5
|
||||
parent: 1
|
||||
- uid: 32
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 1.5,-4.5
|
||||
parent: 1
|
||||
- uid: 49
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 0.5,-0.5
|
||||
parent: 1
|
||||
- proto: CP14WindowStoneBrick
|
||||
entities:
|
||||
- uid: 9
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -2.5,1.5
|
||||
parent: 1
|
||||
- uid: 10
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -2.5,2.5
|
||||
parent: 1
|
||||
- uid: 12
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -2.5,3.5
|
||||
parent: 1
|
||||
- uid: 16
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 0.5,5.5
|
||||
parent: 1
|
||||
- uid: 17
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 1.5,5.5
|
||||
parent: 1
|
||||
- uid: 20
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -0.5,5.5
|
||||
parent: 1
|
||||
- uid: 22
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 3.5,3.5
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: 1.5,-1.5
|
||||
parent: 1
|
||||
- uid: 23
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 3.5,2.5
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: 1.5,-2.5
|
||||
parent: 1
|
||||
- uid: 24
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 3.5,1.5
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: -0.5,-1.5
|
||||
parent: 1
|
||||
- proto: CP14WoodenPalletBuy
|
||||
- uid: 25
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: -0.5,-2.5
|
||||
parent: 1
|
||||
- uid: 26
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: 0.5,-3.5
|
||||
parent: 1
|
||||
- proto: CP14FenceWoodSmallCorner
|
||||
entities:
|
||||
- uid: 28
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: -1.5,4.5
|
||||
parent: 1
|
||||
- uid: 29
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: -0.5,6.5
|
||||
parent: 1
|
||||
- uid: 30
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: 1.5,6.5
|
||||
parent: 1
|
||||
- uid: 31
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: 2.5,4.5
|
||||
parent: 1
|
||||
- proto: CP14FenceWoodSmallStraight
|
||||
entities:
|
||||
- uid: 32
|
||||
components:
|
||||
- type: Transform
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: -1.5,3.5
|
||||
parent: 1
|
||||
- uid: 33
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 1.5,4.5
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: -1.5,0.5
|
||||
parent: 1
|
||||
- uid: 34
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 1.5,3.5
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: 2.5,0.5
|
||||
parent: 1
|
||||
- uid: 35
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 1.5,2.5
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: 2.5,3.5
|
||||
parent: 1
|
||||
- uid: 36
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 2.5,4.5
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: 1.5,5.5
|
||||
parent: 1
|
||||
- uid: 37
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 2.5,3.5
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: -0.5,5.5
|
||||
parent: 1
|
||||
- uid: 38
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 2.5,2.5
|
||||
rot: 3.141592653589793 rad
|
||||
pos: 0.5,6.5
|
||||
parent: 1
|
||||
- uid: 39
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 1.5,1.5
|
||||
parent: 1
|
||||
- uid: 40
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 2.5,1.5
|
||||
parent: 1
|
||||
- proto: CP14WoodenPalletSell
|
||||
- proto: CP14GreenBottle
|
||||
entities:
|
||||
- uid: 41
|
||||
- uid: 46
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -0.5,4.5
|
||||
pos: 1.6018345,-1.3505682
|
||||
parent: 1
|
||||
- uid: 42
|
||||
- uid: 60
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -0.5,2.5
|
||||
pos: 1.344657,-1.2195666
|
||||
parent: 1
|
||||
- uid: 43
|
||||
- proto: CP14PaperFolderRed
|
||||
entities:
|
||||
- uid: 63
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -0.5,1.5
|
||||
pos: -0.34691465,6.6029224
|
||||
parent: 1
|
||||
- uid: 64
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -0.50438666,6.4117675
|
||||
parent: 1
|
||||
- proto: CP14PenFeather
|
||||
entities:
|
||||
- uid: 65
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -0.34691465,6.0294585
|
||||
parent: 1
|
||||
- proto: CP14ShuttleWingBigL
|
||||
entities:
|
||||
- uid: 9
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -1.5,-0.5
|
||||
parent: 1
|
||||
- proto: CP14ShuttleWingBigR
|
||||
entities:
|
||||
- uid: 6
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 2.5,-0.5
|
||||
parent: 1
|
||||
- proto: CP14ShuttleWingSmallL
|
||||
entities:
|
||||
- uid: 4
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -1.5,-3.5
|
||||
parent: 1
|
||||
- uid: 5
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -0.5,-4.5
|
||||
parent: 1
|
||||
- proto: CP14ShuttleWingSmallR
|
||||
entities:
|
||||
- uid: 7
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 2.5,-3.5
|
||||
parent: 1
|
||||
- uid: 8
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 1.5,-4.5
|
||||
parent: 1
|
||||
- proto: CP14TableWooden
|
||||
entities:
|
||||
- uid: 44
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -1.5,4.5
|
||||
rot: 3.141592653589793 rad
|
||||
pos: 1.5,-1.5
|
||||
parent: 1
|
||||
- uid: 55
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: 1.5,-2.5
|
||||
parent: 1
|
||||
- proto: CP14TableWoodenCounter
|
||||
entities:
|
||||
- uid: 39
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: 0.5,7.5
|
||||
parent: 1
|
||||
- uid: 45
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -1.5,3.5
|
||||
rot: 3.141592653589793 rad
|
||||
pos: 2.5,0.5
|
||||
parent: 1
|
||||
- uid: 46
|
||||
- uid: 51
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -1.5,2.5
|
||||
rot: 3.141592653589793 rad
|
||||
pos: -0.5,5.5
|
||||
parent: 1
|
||||
- uid: 52
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: -0.5,6.5
|
||||
parent: 1
|
||||
- uid: 53
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: 1.5,5.5
|
||||
parent: 1
|
||||
- uid: 54
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: 1.5,6.5
|
||||
parent: 1
|
||||
- proto: CP14WallmountLamp
|
||||
entities:
|
||||
- uid: 62
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: 0.5,0.5
|
||||
parent: 1
|
||||
- type: Fixtures
|
||||
fixtures: {}
|
||||
- uid: 67
|
||||
components:
|
||||
- type: Transform
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: 1.5,-3.5
|
||||
parent: 1
|
||||
- type: Fixtures
|
||||
fixtures: {}
|
||||
- proto: CP14WallWooden
|
||||
entities:
|
||||
- uid: 2
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -1.5,-4.5
|
||||
parent: 1
|
||||
- uid: 3
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -0.5,-4.5
|
||||
parent: 1
|
||||
- uid: 11
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 1.5,-4.5
|
||||
parent: 1
|
||||
- uid: 12
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 2.5,-4.5
|
||||
parent: 1
|
||||
- uid: 13
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 2.5,-3.5
|
||||
parent: 1
|
||||
- uid: 14
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -1.5,-3.5
|
||||
parent: 1
|
||||
- uid: 17
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -1.5,-0.5
|
||||
parent: 1
|
||||
- uid: 19
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 2.5,-0.5
|
||||
parent: 1
|
||||
- uid: 27
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 0.5,-0.5
|
||||
parent: 1
|
||||
- uid: 66
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 1.5,-0.5
|
||||
parent: 1
|
||||
- proto: CP14WindowWooden
|
||||
entities:
|
||||
- uid: 10
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 0.5,-4.5
|
||||
parent: 1
|
||||
- uid: 15
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -1.5,-2.5
|
||||
parent: 1
|
||||
- uid: 16
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -1.5,-1.5
|
||||
parent: 1
|
||||
- uid: 20
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 2.5,-1.5
|
||||
parent: 1
|
||||
- uid: 21
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 2.5,-2.5
|
||||
parent: 1
|
||||
- proto: CP14WoodenDoor
|
||||
entities:
|
||||
- uid: 18
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -0.5,-0.5
|
||||
parent: 1
|
||||
- proto: CP14WoodenPalletBuy
|
||||
entities:
|
||||
- uid: 47
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -1.5,1.5
|
||||
rot: 3.141592653589793 rad
|
||||
pos: 2.5,3.5
|
||||
parent: 1
|
||||
- uid: 48
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: 2.5,4.5
|
||||
parent: 1
|
||||
- uid: 49
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: 1.5,3.5
|
||||
parent: 1
|
||||
- uid: 50
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: 1.5,4.5
|
||||
parent: 1
|
||||
- proto: CP14WoodenPalletSell
|
||||
entities:
|
||||
- uid: 40
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: -0.5,4.5
|
||||
parent: 1
|
||||
- uid: 41
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: -0.5,3.5
|
||||
parent: 1
|
||||
- uid: 42
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: -1.5,4.5
|
||||
parent: 1
|
||||
- uid: 43
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: -1.5,3.5
|
||||
parent: 1
|
||||
...
|
||||
24
Resources/Prototypes/_CP14/Catalog/Cargo/crates.yml
Normal file
24
Resources/Prototypes/_CP14/Catalog/Cargo/crates.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
- type: entity
|
||||
parent: CP14BrassChest
|
||||
id: CP14BrassChestFilledAlchemy
|
||||
suffix: Alchemical vials
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: CP14VialTiny
|
||||
amount: 9
|
||||
- id: CP14VialSmall
|
||||
amount: 8
|
||||
#Gift
|
||||
- id: CP14Dropper
|
||||
prob: 0.2
|
||||
- id: CP14Mortar
|
||||
prob: 0.2
|
||||
- id: CP14Pestle
|
||||
prob: 0.2
|
||||
- id: CP14VialSmall
|
||||
prob: 0.2
|
||||
- id: CP14VialTiny
|
||||
prob: 0.2
|
||||
- id: ShardGlass #Lol. Something broken
|
||||
prob: 0.2
|
||||
@@ -61,6 +61,7 @@
|
||||
- ItemHeftyBase
|
||||
name: artificial flame
|
||||
description: A magically created artificial flame burning directly into the air. Not a bad light source, or a weapon if you throw it in someone's face.
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Item
|
||||
size: Ginormous
|
||||
|
||||
@@ -56,6 +56,7 @@
|
||||
|
||||
- type: entity
|
||||
id: CP14SpawnEffectFlashLight
|
||||
categories: [ HideSpawnMenu ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: /Textures/Objects/Fun/goldbikehorn.rsi
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
parent: IceCrust
|
||||
name: ice crust
|
||||
description: It's cold and slippery.
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Slippery
|
||||
paralyzeTime: 1
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
name: Sphere of light
|
||||
parent: BaseItem
|
||||
description: A lump of bright light in the shape of a sphere.
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: TimedDespawn
|
||||
lifetime: 300 # 5 min
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
- type: entity
|
||||
id: CP14TorsoHuman
|
||||
parent: TorsoHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Human/parts.rsi
|
||||
@@ -10,6 +11,7 @@
|
||||
- type: entity
|
||||
id: CP14HeadHuman
|
||||
parent: HeadHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Human/parts.rsi
|
||||
@@ -18,6 +20,7 @@
|
||||
- type: entity
|
||||
id: CP14LeftArmHuman
|
||||
parent: LeftArmHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Human/parts.rsi
|
||||
@@ -25,6 +28,7 @@
|
||||
- type: entity
|
||||
id: CP14RightArmHuman
|
||||
parent: RightArmHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Human/parts.rsi
|
||||
@@ -32,6 +36,7 @@
|
||||
- type: entity
|
||||
id: CP14LeftHandHuman
|
||||
parent: LeftHandHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Human/parts.rsi
|
||||
@@ -39,6 +44,7 @@
|
||||
- type: entity
|
||||
id: CP14RightHandHuman
|
||||
parent: RightHandHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Human/parts.rsi
|
||||
@@ -46,6 +52,7 @@
|
||||
- type: entity
|
||||
id: CP14LeftLegHuman
|
||||
parent: LeftLegHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Human/parts.rsi
|
||||
@@ -53,6 +60,7 @@
|
||||
- type: entity
|
||||
id: CP14RightLegHuman
|
||||
parent: RightLegHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Human/parts.rsi
|
||||
@@ -60,6 +68,7 @@
|
||||
- type: entity
|
||||
id: CP14LeftFootHuman
|
||||
parent: LeftFootHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Human/parts.rsi
|
||||
@@ -67,6 +76,7 @@
|
||||
- type: entity
|
||||
id: CP14RightFootHuman
|
||||
parent: RightFootHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Human/parts.rsi
|
||||
@@ -1,6 +1,7 @@
|
||||
- type: entity
|
||||
id: CP14TorsoZombie
|
||||
parent: CP14TorsoHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Zombie/parts.rsi
|
||||
@@ -9,6 +10,7 @@
|
||||
- type: entity
|
||||
id: CP14HeadZombie
|
||||
parent: CP14HeadHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Zombie/parts.rsi
|
||||
@@ -17,6 +19,7 @@
|
||||
- type: entity
|
||||
id: CP14LeftArmZombie
|
||||
parent: CP14LeftArmHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Zombie/parts.rsi
|
||||
@@ -24,6 +27,7 @@
|
||||
- type: entity
|
||||
id: CP14RightArmZombie
|
||||
parent: CP14RightArmHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Zombie/parts.rsi
|
||||
@@ -31,6 +35,7 @@
|
||||
- type: entity
|
||||
id: CP14LeftHandZombie
|
||||
parent: CP14LeftHandHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Zombie/parts.rsi
|
||||
@@ -38,14 +43,15 @@
|
||||
- type: entity
|
||||
id: CP14RightHandZombie
|
||||
parent: CP14RightHandHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Zombie/parts.rsi
|
||||
|
||||
- type: entity
|
||||
id: CP14LeftLegZombie
|
||||
name: "left zombie leg"
|
||||
parent: CP14LeftLegHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Zombie/parts.rsi
|
||||
@@ -63,8 +69,8 @@
|
||||
|
||||
- type: entity
|
||||
id: CP14RightLegZombie
|
||||
name: "right zombie leg"
|
||||
parent: CP14RightLegHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Zombie/parts.rsi
|
||||
@@ -83,6 +89,7 @@
|
||||
- type: entity
|
||||
id: CP14LeftFootZombie
|
||||
parent: CP14LeftFootHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Zombie/parts.rsi
|
||||
@@ -90,6 +97,7 @@
|
||||
- type: entity
|
||||
id: CP14RightFootZombie
|
||||
parent: CP14RightFootHuman
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Mobs/Species/Zombie/parts.rsi
|
||||
@@ -2,6 +2,7 @@
|
||||
parent: BaseFoam
|
||||
id: CP14Mist
|
||||
name: mist
|
||||
categories: [ HideSpawnMenu ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Effects/mist.rsi
|
||||
@@ -14,20 +15,4 @@
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
solutionArea:
|
||||
maxVol: 100
|
||||
|
||||
- type: entity
|
||||
parent: CP14Mist
|
||||
id: CP14MistVitalExtract
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Effects/mist.rsi
|
||||
layers:
|
||||
- state: chemmist
|
||||
color: "#db2a2a"
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
solutionArea:
|
||||
reagents:
|
||||
- ReagentId: CP14VitalExtract
|
||||
Quantity: 10
|
||||
maxVol: 100
|
||||
@@ -17,6 +17,7 @@
|
||||
parent: CP14BaseRitualPhase
|
||||
id: CP14RitualEnd
|
||||
name: end of ritual
|
||||
categories: [ HideSpawnMenu ]
|
||||
components:
|
||||
- type: CP14MagicRitualPhase
|
||||
deadEnd: true
|
||||
@@ -6,6 +6,7 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
snapCardinals: true
|
||||
drawdepth: FloorTiles
|
||||
- type: Transform
|
||||
anchored: true
|
||||
- type: Physics
|
||||
|
||||
@@ -176,6 +176,7 @@
|
||||
id: CP14QuartzCrystal
|
||||
name: quartz
|
||||
description: Quartz is an essential mineral capable of interacting with magical energy. It is highly sought after by alchemists for extracting beneficial properties from liquids
|
||||
categories: [ HideSpawnMenu ]
|
||||
components:
|
||||
- type: Sprite
|
||||
drawdepth: Mobs
|
||||
|
||||
@@ -48,7 +48,6 @@
|
||||
- FullTileMask
|
||||
layer:
|
||||
- Opaque
|
||||
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Wood
|
||||
@@ -98,6 +97,7 @@
|
||||
id: CP14RandomBushOffsetSpawner
|
||||
name: random bush offset spawner
|
||||
parent: MarkerBase
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
- type: entity
|
||||
parent: C14IronCabinet
|
||||
id: C14IronCabinetCargo
|
||||
name: money box
|
||||
name: trade box
|
||||
description: An armored vault for storing money for trade with the city. City workers will unload their earnings here, or take them from here when you want to buy something.
|
||||
components:
|
||||
- type: CP14CargoMoneyBox
|
||||
@@ -0,0 +1,76 @@
|
||||
- type: entity
|
||||
id: CP14TravelingStoreshipAnchor
|
||||
name: traveling storeship anchor
|
||||
categories: [ ForkFiltered ]
|
||||
placement:
|
||||
mode: SnapgridCenter
|
||||
description: the point of adhesion of a traveling storeship to the surface. Keep your eyes to the sky so you don't get crushed!
|
||||
components:
|
||||
- type: Clickable
|
||||
- type: Sprite
|
||||
sprite: _CP14/Structures/Shuttle/traveling_storeship_anchor.rsi
|
||||
state: base
|
||||
drawdepth: FloorTiles
|
||||
- type: Icon
|
||||
sprite: _CP14/Structures/Shuttle/traveling_storeship_anchor.rsi
|
||||
state: base
|
||||
- type: Transform
|
||||
anchored: true
|
||||
- type: CP14TravelingStoreShipFTLTarget
|
||||
- type: FTLSmashImmune
|
||||
|
||||
- type: entity
|
||||
id: CP14ShuttleWingBase
|
||||
abstract: true
|
||||
categories: [ ForkFiltered ]
|
||||
name: airship wing
|
||||
description: Giant webbed wings, capable, along with magic, of holding the heaviest objects in the air.
|
||||
placement:
|
||||
mode: SnapgridCenter
|
||||
components:
|
||||
- type: Sprite
|
||||
drawdepth: FloorTiles
|
||||
- type: Clickable
|
||||
- type: Transform
|
||||
anchored: true
|
||||
|
||||
- type: entity
|
||||
parent: CP14ShuttleWingBase
|
||||
id: CP14ShuttleWingSmallR
|
||||
suffix: Right, Small
|
||||
components:
|
||||
- type: Sprite
|
||||
offset: 1, -0.75
|
||||
sprite: _CP14/Structures/Shuttle/wing_small.rsi
|
||||
state: right
|
||||
|
||||
- type: entity
|
||||
parent: CP14ShuttleWingBase
|
||||
id: CP14ShuttleWingSmallL
|
||||
suffix: Left, Small
|
||||
components:
|
||||
- type: Sprite
|
||||
offset: -1, -0.75
|
||||
sprite: _CP14/Structures/Shuttle/wing_small.rsi
|
||||
state: left
|
||||
|
||||
|
||||
- type: entity
|
||||
parent: CP14ShuttleWingBase
|
||||
id: CP14ShuttleWingBigL
|
||||
suffix: Left, Big
|
||||
components:
|
||||
- type: Sprite
|
||||
offset: -1.75, -1.5
|
||||
sprite: _CP14/Structures/Shuttle/wing_big.rsi
|
||||
state: left
|
||||
|
||||
- type: entity
|
||||
parent: CP14ShuttleWingBase
|
||||
id: CP14ShuttleWingBigR
|
||||
suffix: Right, Big
|
||||
components:
|
||||
- type: Sprite
|
||||
offset: 1.75, -1.5
|
||||
sprite: _CP14/Structures/Shuttle/wing_big.rsi
|
||||
state: right
|
||||
@@ -50,7 +50,7 @@
|
||||
key: walls
|
||||
mode: NoSprite
|
||||
- type: Sprite
|
||||
drawdepth: FloorTiles
|
||||
drawdepth: BelowFloor
|
||||
sprite: _CP14/Structures/Specific/Farming/seedbed.rsi
|
||||
layers:
|
||||
- state: seedbed_default
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
abstract: true
|
||||
name: sparkling quartz
|
||||
description: bioluminescent quartz crystals that can take on any color - a very handy light source in a deep caves. Unfortunately, the luminous properties are very hard to preserve.
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
drawdepth: Mobs
|
||||
@@ -124,6 +125,7 @@
|
||||
parent: BaseRock
|
||||
name: sparkling quartz
|
||||
description: bioluminescent quartz crystals that can take on any color - a very handy light source in a deep caves. Unfortunately, the luminous properties are very hard to preserve.
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
drawdepth: Mobs
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
- type: entity
|
||||
id: CP14TravelingStoreshipAnchor
|
||||
name: traveling storeship anchor
|
||||
categories: [ ForkFiltered ]
|
||||
placement:
|
||||
mode: SnapgridCenter
|
||||
description: the point of adhesion of a traveling storeship to the surface. Keep your eyes to the sky so you don't get crushed!
|
||||
components:
|
||||
- type: Clickable
|
||||
- type: Sprite
|
||||
sprite: _CP14/Structures/traveling_storeship_anchor.rsi
|
||||
state: base
|
||||
drawdepth: FloorTiles
|
||||
- type: Icon
|
||||
sprite: _CP14/Structures/traveling_storeship_anchor.rsi
|
||||
state: base
|
||||
- type: Transform
|
||||
anchored: true
|
||||
- type: CP14TravelingStoreShipFTLTarget
|
||||
- type: FTLSmashImmune
|
||||
@@ -26,6 +26,7 @@
|
||||
id: CP14BaseLockpick
|
||||
name: lockpick
|
||||
description: A thief's tool that, with proper skill and skill, allows you to pick any lock.
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/keys.rsi
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
id: CP14AlchemyNormalizer
|
||||
name: cp14-store-buy-alchemy-normalizer-name
|
||||
desc: cp14-store-buy-alchemy-normalizer-desc
|
||||
code: ALH-NRML
|
||||
icon:
|
||||
sprite: _CP14/Structures/Specific/Alchemy/normalizer.rsi
|
||||
state: base
|
||||
@@ -11,4 +12,20 @@
|
||||
services:
|
||||
- !type:CP14BuyItemsService
|
||||
product:
|
||||
CP14AlchemyNormalizer: 1
|
||||
CP14AlchemyNormalizer: 1
|
||||
|
||||
- type: storePositionBuy
|
||||
id: CP14AlchemyVials
|
||||
name: cp14-store-buy-alchemy-vials-name
|
||||
desc: cp14-store-buy-alchemy-vials-desc
|
||||
code: ALH-VIAL
|
||||
icon:
|
||||
sprite: _CP14/Objects/Specific/Alchemy/vial_small.rsi
|
||||
state: vial
|
||||
price:
|
||||
min: 200
|
||||
max: 300
|
||||
services:
|
||||
- !type:CP14BuyItemsService
|
||||
product:
|
||||
CP14BrassChestFilledAlchemy: 1
|
||||
@@ -3,6 +3,7 @@
|
||||
id: CP14DebugWorldSprite
|
||||
name: strange copper bar
|
||||
suffix: CP, DEBUG
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
# Just copy me, I am block with name Bob
|
||||
- type: Appearance
|
||||
|
||||
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "Created by TheShuEd (Github) for CrystallPunk14",
|
||||
"size": {
|
||||
"x": 144,
|
||||
"y": 128
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "left"
|
||||
},
|
||||
{
|
||||
"name": "right"
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.0 KiB |
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "Created by TheShuEd (Github) for CrystallPunk14",
|
||||
"size": {
|
||||
"x": 96,
|
||||
"y": 80
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "left"
|
||||
},
|
||||
{
|
||||
"name": "right"
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.0 KiB |
Reference in New Issue
Block a user