diff --git a/Content.IntegrationTests/Tests/Construction/RCDTest.cs b/Content.IntegrationTests/Tests/Construction/RCDTest.cs
index 770f004517..814f7e89aa 100644
--- a/Content.IntegrationTests/Tests/Construction/RCDTest.cs
+++ b/Content.IntegrationTests/Tests/Construction/RCDTest.cs
@@ -38,9 +38,9 @@ public sealed class RCDTest : InteractionTest
pEast = Transform.WithEntityId(pEast, MapData.Grid);
pWest = Transform.WithEntityId(pWest, MapData.Grid);
- await SetTile(PlatingRCD, SEntMan.GetNetCoordinates(pNorth), MapData.Grid);
- await SetTile(PlatingRCD, SEntMan.GetNetCoordinates(pSouth), MapData.Grid);
- await SetTile(PlatingRCD, SEntMan.GetNetCoordinates(pEast), MapData.Grid);
+ await SetTile(Plating, SEntMan.GetNetCoordinates(pNorth), MapData.Grid);
+ await SetTile(Plating, SEntMan.GetNetCoordinates(pSouth), MapData.Grid);
+ await SetTile(Plating, SEntMan.GetNetCoordinates(pEast), MapData.Grid);
await SetTile(Lattice, SEntMan.GetNetCoordinates(pWest), MapData.Grid);
Assert.That(ProtoMan.TryIndex(RCDSettingWall, out var settingWall), $"RCDPrototype not found: {RCDSettingWall}.");
@@ -194,7 +194,7 @@ public sealed class RCDTest : InteractionTest
// Deconstruct the steel tile.
await Interact(null, pEast);
await RunSeconds(settingDeconstructTile.Delay + 1); // wait for the deconstruction to finish
- await AssertTile(PlatingRCD, FromServer(pEast));
+ await AssertTile(Lattice, FromServer(pEast));
// Check that the cost of the deconstruction was subtracted from the current charges.
newCharges = sCharges.GetCurrentCharges(ToServer(rcd));
diff --git a/Content.IntegrationTests/Tests/Interaction/InteractionTest.Constants.cs b/Content.IntegrationTests/Tests/Interaction/InteractionTest.Constants.cs
index 1aac18f3a4..8917ba7ead 100644
--- a/Content.IntegrationTests/Tests/Interaction/InteractionTest.Constants.cs
+++ b/Content.IntegrationTests/Tests/Interaction/InteractionTest.Constants.cs
@@ -11,9 +11,7 @@ public abstract partial class InteractionTest
protected const string Floor = "FloorSteel";
protected const string FloorItem = "FloorTileItemSteel";
protected const string Plating = "Plating";
- protected const string PlatingRCD = "PlatingRCD";
protected const string Lattice = "Lattice";
- protected const string PlatingBrass = "PlatingBrass";
// Structures
protected const string Airlock = "Airlock";
diff --git a/Content.IntegrationTests/Tests/Tiles/TileConstructionTests.cs b/Content.IntegrationTests/Tests/Tiles/TileConstructionTests.cs
index 64c4c291fe..0827e11b70 100644
--- a/Content.IntegrationTests/Tests/Tiles/TileConstructionTests.cs
+++ b/Content.IntegrationTests/Tests/Tiles/TileConstructionTests.cs
@@ -100,25 +100,4 @@ public sealed class TileConstructionTests : InteractionTest
await AssertEntityLookup((FloorItem, 1));
}
-
- ///
- /// Test brassPlating -> floor -> brassPlating using tilestacking
- ///
- [Test]
- public async Task BrassPlatingPlace()
- {
- await SetTile(PlatingBrass);
-
- // Brass Plating -> Tile
- await InteractUsing(FloorItem);
- Assert.That(HandSys.GetActiveItem((SEntMan.GetEntity(Player), Hands)), Is.Null);
- await AssertTile(Floor);
- AssertGridCount(1);
-
- // Tile -> Brass Plating
- await InteractUsing(Pry);
- await AssertTile(PlatingBrass);
- AssertGridCount(1);
- await AssertEntityLookup((FloorItem, 1));
- }
}
diff --git a/Content.IntegrationTests/Tests/Tiles/TileStackRecursionTest.cs b/Content.IntegrationTests/Tests/Tiles/TileStackRecursionTest.cs
deleted file mode 100644
index 52c5b03265..0000000000
--- a/Content.IntegrationTests/Tests/Tiles/TileStackRecursionTest.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-using System.Collections.Generic;
-using System.Linq;
-using Content.Shared.CCVar;
-using Content.Shared.Maps;
-using Robust.Shared.Configuration;
-using Robust.Shared.Prototypes;
-
-namespace Content.IntegrationTests.Tests.Tiles;
-
-public sealed class TileStackRecursionTest
-{
- [Test]
- public async Task TestBaseTurfRecursion()
- {
- await using var pair = await PoolManager.GetServerClient();
- var protoMan = pair.Server.ResolveDependency();
- var cfg = pair.Server.ResolveDependency();
- var maxTileHistoryLength = cfg.GetCVar(CCVars.TileStackLimit);
- Assert.That(protoMan.TryGetInstances(out var tiles));
- Assert.That(tiles, Is.Not.EqualTo(null));
- //store the distance from the root node to the given tile node
- var nodes = new List<(ProtoId, int)>();
- //each element of list is a connection from BaseTurf tile to tile that goes on it
- var edges = new List<(ProtoId, ProtoId)>();
- foreach (var ctdef in tiles!.Values)
- {
- //at first, each node is unexplored and has infinite distance to root.
- //we use space node as root - everything is supposed to start at space, and it's hardcoded into the game anyway.
- if (ctdef.ID == ContentTileDefinition.SpaceID)
- {
- nodes.Insert(0, (ctdef.ID, 0)); //space is the first element
- continue;
- }
- Assert.That(ctdef.BaseTurf != ctdef.ID);
- nodes.Add((ctdef.ID, int.MaxValue));
- if (ctdef.BaseTurf != null)
- edges.Add((ctdef.BaseTurf.Value, ctdef.ID));
- Assert.That(ctdef.BaseWhitelist, Does.Not.Contain(ctdef.ID));
- edges.AddRange(ctdef.BaseWhitelist.Select(possibleTurf =>
- (possibleTurf, new ProtoId(ctdef.ID))));
- }
- Bfs(nodes, edges, maxTileHistoryLength);
- await pair.CleanReturnAsync();
- }
-
- private void Bfs(List<(ProtoId, int)> nodes, List<(ProtoId, ProtoId)> edges, int depthLimit)
- {
- var root = nodes[0];
- var queue = new Queue<(ProtoId, int)>();
- queue.Enqueue(root);
- while (queue.Count != 0)
- {
- var u = queue.Dequeue();
- //get a list of tiles that can be put on this tile
- var adj = edges.Where(n => n.Item1 == u.Item1).Select(n => n.Item2);
- var adjNodes = nodes.Where(n => adj.Contains(n.Item1)).ToList();
- foreach (var node in adjNodes)
- {
- var adjNode = node;
- adjNode.Item2 = u.Item2 + 1;
- Assert.That(adjNode.Item2, Is.LessThanOrEqualTo(depthLimit)); //we can doomstack tiles on top of each other. Bad!
- queue.Enqueue(adjNode);
- }
- }
- }
-}
diff --git a/Content.Server/Explosion/EntitySystems/ExplosionSystem.Processing.cs b/Content.Server/Explosion/EntitySystems/ExplosionSystem.Processing.cs
index 37045097f3..2cec8d707a 100644
--- a/Content.Server/Explosion/EntitySystems/ExplosionSystem.Processing.cs
+++ b/Content.Server/Explosion/EntitySystems/ExplosionSystem.Processing.cs
@@ -517,39 +517,17 @@ public sealed partial class ExplosionSystem
else if (tileDef.MapAtmosphere)
canCreateVacuum = true; // is already a vacuum.
- var history = CompOrNull(tileRef.GridUid);
-
- // break the tile into its underlying parts
int tileBreakages = 0;
while (maxTileBreak > tileBreakages && _robustRandom.Prob(type.TileBreakChance(effectiveIntensity)))
{
tileBreakages++;
effectiveIntensity -= type.TileBreakRerollReduction;
- ContentTileDefinition? newDef = null;
+ // does this have a base-turf that we can break it down to?
+ if (string.IsNullOrEmpty(tileDef.BaseTurf))
+ break;
- // if we have tile history, we revert the tile to its previous state
- var chunkIndices = SharedMapSystem.GetChunkIndices(tileRef.GridIndices, TileSystem.ChunkSize);
- if (history != null && history.ChunkHistory.TryGetValue(chunkIndices, out var chunk) &&
- chunk.History.TryGetValue(tileRef.GridIndices, out var stack) && stack.Count > 0)
- {
- // last entry in the stack
- var newId = stack[^1];
- stack.RemoveAt(stack.Count - 1);
- if (stack.Count == 0)
- chunk.History.Remove(tileRef.GridIndices);
-
- Dirty(tileRef.GridUid, history);
-
- newDef = (ContentTileDefinition) _tileDefinitionManager[newId.Id];
- }
- else if (tileDef.BaseTurf.HasValue)
- {
- // otherwise, we just use the base turf
- newDef = (ContentTileDefinition) _tileDefinitionManager[tileDef.BaseTurf.Value];
- }
-
- if (newDef == null)
+ if (_tileDefinitionManager[tileDef.BaseTurf] is not ContentTileDefinition newDef)
break;
if (newDef.MapAtmosphere && !canCreateVacuum)
diff --git a/Content.Server/Maps/TileGridSplitSystem.cs b/Content.Server/Maps/TileGridSplitSystem.cs
deleted file mode 100644
index fef0efed2b..0000000000
--- a/Content.Server/Maps/TileGridSplitSystem.cs
+++ /dev/null
@@ -1,74 +0,0 @@
-using System.Numerics;
-using Content.Shared.Maps;
-using Robust.Shared.Map;
-using Robust.Shared.Map.Components;
-using Robust.Shared.Prototypes;
-using Robust.Shared.Timing;
-
-namespace Content.Server.Maps;
-
-///
-/// This system handles transferring data when a grid is split.
-///
-public sealed class TileGridSplitSystem : EntitySystem
-{
- [Dependency] private readonly SharedMapSystem _maps = default!;
- [Dependency] private readonly IGameTiming _timing = default!;
-
- public override void Initialize()
- {
- base.Initialize();
- SubscribeLocalEvent(OnGridSplit);
- }
-
- ///
- /// Transfer tile history from the old grid to the new grids.
- ///
- private void OnGridSplit(ref GridSplitEvent ev)
- {
- if (!TryComp(ev.Grid, out var oldHistory))
- return;
-
- var oldGrid = Comp(ev.Grid);
-
- foreach (var gridUid in ev.NewGrids)
- {
- // ensure the new grid has a history component and get its grid component
- var newHistory = EnsureComp(gridUid);
- var newGrid = Comp(gridUid);
-
- foreach (var tile in _maps.GetAllTiles(gridUid, newGrid))
- {
- // calculate where this tile was on the old grid
- var oldIndices = _maps.LocalToTile(ev.Grid, oldGrid, new EntityCoordinates(gridUid, new Vector2(tile.GridIndices.X + 0.5f, tile.GridIndices.Y + 0.5f)));
-
- var chunkIndices = SharedMapSystem.GetChunkIndices(oldIndices, TileSystem.ChunkSize);
- if (oldHistory.ChunkHistory.TryGetValue(chunkIndices, out var oldChunk) &&
- oldChunk.History.TryGetValue(oldIndices, out var history))
- {
- // now we move the history from the old grid to the new grid
- var newChunkIndices = SharedMapSystem.GetChunkIndices(tile.GridIndices, TileSystem.ChunkSize);
- if (!newHistory.ChunkHistory.TryGetValue(newChunkIndices, out var newChunk))
- {
- newChunk = new TileHistoryChunk();
- newHistory.ChunkHistory[newChunkIndices] = newChunk;
- }
-
- newChunk.History[tile.GridIndices] = new List>(history);
- newChunk.LastModified = _timing.CurTick;
-
- // clean up the old history
- oldChunk.History.Remove(oldIndices);
- if (oldChunk.History.Count == 0)
- oldHistory.ChunkHistory.Remove(chunkIndices);
- else
- oldChunk.LastModified = _timing.CurTick;
- }
- }
-
- Dirty(gridUid, newHistory);
- }
-
- Dirty(ev.Grid, oldHistory);
- }
-}
diff --git a/Content.Shared/CCVar/CCVars.Game.cs b/Content.Shared/CCVar/CCVars.Game.cs
index 03cf6a673a..68342733f8 100644
--- a/Content.Shared/CCVar/CCVars.Game.cs
+++ b/Content.Shared/CCVar/CCVars.Game.cs
@@ -409,13 +409,4 @@ public sealed partial class CCVars
///
public static readonly CVarDef GameHostnameInTitlebar =
CVarDef.Create("game.hostname_in_titlebar", true, CVar.SERVER | CVar.REPLICATED);
-
- ///
- /// The maximum amount of tiles you can stack on top of each other. 0 is unlimited.
- ///
- ///
- /// Having it too high can result in "doomstacking" tiles - this messes with efficiency of explosions, deconstruction of tiles, and might result in memory problems.
- ///
- public static readonly CVarDef TileStackLimit =
- CVarDef.Create("game.tile_stack_limit", 5, CVar.SERVER | CVar.REPLICATED);
}
diff --git a/Content.Shared/Maps/ContentTileDefinition.cs b/Content.Shared/Maps/ContentTileDefinition.cs
index 672eb95911..46ce7a212e 100644
--- a/Content.Shared/Maps/ContentTileDefinition.cs
+++ b/Content.Shared/Maps/ContentTileDefinition.cs
@@ -8,7 +8,6 @@ using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Array;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List;
using Robust.Shared.Utility;
namespace Content.Shared.Maps
@@ -42,13 +41,7 @@ namespace Content.Shared.Maps
[DataField("isSubfloor")] public bool IsSubFloor { get; private set; }
[DataField("baseTurf")]
- public ProtoId? BaseTurf { get; private set; }
-
- ///
- /// On what tiles this tile can be placed on. BaseTurf is already included.
- ///
- [DataField]
- public List> BaseWhitelist { get; private set; } = new();
+ public string BaseTurf { get; private set; } = string.Empty;
[DataField]
public PrototypeFlags DeconstructTools { get; set; } = new();
diff --git a/Content.Shared/Maps/TileHistoryComponent.cs b/Content.Shared/Maps/TileHistoryComponent.cs
deleted file mode 100644
index 0e02d60984..0000000000
--- a/Content.Shared/Maps/TileHistoryComponent.cs
+++ /dev/null
@@ -1,125 +0,0 @@
-using Robust.Shared.GameStates;
-using Robust.Shared.Prototypes;
-using Robust.Shared.Serialization;
-using Robust.Shared.Timing;
-
-namespace Content.Shared.Maps;
-
-[RegisterComponent, NetworkedComponent]
-public sealed partial class TileHistoryComponent : Component
-{
- // History of tiles for each grid chunk.
- [DataField]
- public Dictionary ChunkHistory = new();
-
- ///
- /// Tick at which PVS was last toggled. Ensures that all players receive a full update when toggling PVS.
- ///
- public GameTick ForceTick { get; set; }
-}
-
-[Serializable, NetSerializable]
-public sealed class TileHistoryState : ComponentState
-{
- public Dictionary ChunkHistory;
-
- public TileHistoryState(Dictionary chunkHistory)
- {
- ChunkHistory = chunkHistory;
- }
-}
-
-[Serializable, NetSerializable]
-public sealed class TileHistoryDeltaState : ComponentState, IComponentDeltaState
-{
- public Dictionary ChunkHistory;
- public HashSet AllHistoryChunks;
-
- public TileHistoryDeltaState(Dictionary chunkHistory, HashSet allHistoryChunks)
- {
- ChunkHistory = chunkHistory;
- AllHistoryChunks = allHistoryChunks;
- }
-
- public void ApplyToFullState(TileHistoryState state)
- {
- var toRemove = new List();
- foreach (var key in state.ChunkHistory.Keys)
- {
- if (!AllHistoryChunks.Contains(key))
- toRemove.Add(key);
- }
-
- foreach (var key in toRemove)
- {
- state.ChunkHistory.Remove(key);
- }
-
- foreach (var (indices, chunk) in ChunkHistory)
- {
- state.ChunkHistory[indices] = new TileHistoryChunk(chunk);
- }
- }
-
- public void ApplyToComponent(TileHistoryComponent component)
- {
- var toRemove = new List();
- foreach (var key in component.ChunkHistory.Keys)
- {
- if (!AllHistoryChunks.Contains(key))
- toRemove.Add(key);
- }
-
- foreach (var key in toRemove)
- {
- component.ChunkHistory.Remove(key);
- }
-
- foreach (var (indices, chunk) in ChunkHistory)
- {
- component.ChunkHistory[indices] = new TileHistoryChunk(chunk);
- }
- }
-
- public TileHistoryState CreateNewFullState(TileHistoryState state)
- {
- var chunks = new Dictionary(state.ChunkHistory.Count);
-
- foreach (var (indices, chunk) in ChunkHistory)
- {
- chunks[indices] = new TileHistoryChunk(chunk);
- }
-
- foreach (var (indices, chunk) in state.ChunkHistory)
- {
- if (AllHistoryChunks.Contains(indices))
- chunks.TryAdd(indices, new TileHistoryChunk(chunk));
- }
-
- return new TileHistoryState(chunks);
- }
-}
-
-[DataDefinition, Serializable, NetSerializable]
-public sealed partial class TileHistoryChunk
-{
- [DataField]
- public Dictionary>> History = new();
-
- [ViewVariables]
- public GameTick LastModified;
-
- public TileHistoryChunk()
- {
- }
-
- public TileHistoryChunk(TileHistoryChunk other)
- {
- History = new Dictionary>>(other.History.Count);
- foreach (var (key, value) in other.History)
- {
- History[key] = new List>(value);
- }
- LastModified = other.LastModified;
- }
-}
diff --git a/Content.Shared/Maps/TileSystem.cs b/Content.Shared/Maps/TileSystem.cs
index 908507e54d..d87b3ca50d 100644
--- a/Content.Shared/Maps/TileSystem.cs
+++ b/Content.Shared/Maps/TileSystem.cs
@@ -1,16 +1,10 @@
using System.Linq;
using System.Numerics;
-using Content.Shared.CCVar;
using Content.Shared.Coordinates.Helpers;
using Content.Shared.Decals;
-using Content.Shared.Tiles;
-using Robust.Shared.Configuration;
-using Robust.Shared.GameStates;
using Robust.Shared.Map;
using Robust.Shared.Map.Components;
-using Robust.Shared.Prototypes;
using Robust.Shared.Random;
-using Robust.Shared.Timing;
using Robust.Shared.Utility;
namespace Content.Shared.Maps;
@@ -20,85 +14,12 @@ namespace Content.Shared.Maps;
///
public sealed class TileSystem : EntitySystem
{
- [Dependency] private readonly IConfigurationManager _cfg = default!;
[Dependency] private readonly IMapManager _mapManager = default!;
[Dependency] private readonly IRobustRandom _robustRandom = default!;
[Dependency] private readonly ITileDefinitionManager _tileDefinitionManager = default!;
[Dependency] private readonly SharedDecalSystem _decal = default!;
[Dependency] private readonly SharedMapSystem _maps = default!;
[Dependency] private readonly TurfSystem _turf = default!;
- [Dependency] private readonly IGameTiming _timing = default!;
-
- public const int ChunkSize = 16;
-
- private int _tileStackLimit;
-
- public override void Initialize()
- {
- base.Initialize();
- SubscribeLocalEvent(OnGridStartup);
- SubscribeLocalEvent(OnGetState);
- SubscribeLocalEvent(OnHandleState);
- SubscribeLocalEvent(OnFloorTileAttempt);
-
- _cfg.OnValueChanged(CCVars.TileStackLimit, t => _tileStackLimit = t, true);
- }
-
- private void OnHandleState(EntityUid uid, TileHistoryComponent component, ref ComponentHandleState args)
- {
- if (args.Current is not TileHistoryState state && args.Current is not TileHistoryDeltaState)
- return;
-
- if (args.Current is TileHistoryState fullState)
- {
- component.ChunkHistory.Clear();
- foreach (var (key, value) in fullState.ChunkHistory)
- {
- component.ChunkHistory[key] = new TileHistoryChunk(value);
- }
-
- return;
- }
-
- if (args.Current is TileHistoryDeltaState deltaState)
- {
- deltaState.ApplyToComponent(component);
- }
- }
-
- private void OnGetState(EntityUid uid, TileHistoryComponent component, ref ComponentGetState args)
- {
- if (args.FromTick <= component.CreationTick || args.FromTick <= component.ForceTick)
- {
- var fullHistory = new Dictionary(component.ChunkHistory.Count);
- foreach (var (key, value) in component.ChunkHistory)
- {
- fullHistory[key] = new TileHistoryChunk(value);
- }
- args.State = new TileHistoryState(fullHistory);
- return;
- }
-
- var data = new Dictionary();
- foreach (var (index, chunk) in component.ChunkHistory)
- {
- if (chunk.LastModified >= args.FromTick)
- data[index] = new TileHistoryChunk(chunk);
- }
-
- args.State = new TileHistoryDeltaState(data, new(component.ChunkHistory.Keys));
- }
-
- ///
- /// On grid startup, ensure that we have Tile History.
- ///
- private void OnGridStartup(GridInitializeEvent ev)
- {
- if (HasComp(ev.EntityUid))
- return;
-
- EnsureComp(ev.EntityUid);
- }
///
/// Returns a weighted pick of a tile variant.
@@ -164,7 +85,7 @@ public sealed class TileSystem : EntitySystem
return PryTile(tileRef);
}
- public bool PryTile(TileRef tileRef)
+ public bool PryTile(TileRef tileRef)
{
return PryTile(tileRef, false);
}
@@ -176,7 +97,7 @@ public sealed class TileSystem : EntitySystem
if (tile.IsEmpty)
return false;
- var tileDef = (ContentTileDefinition)_tileDefinitionManager[tile.TypeId];
+ var tileDef = (ContentTileDefinition) _tileDefinitionManager[tile.TypeId];
if (!tileDef.CanCrowbar)
return false;
@@ -191,73 +112,33 @@ public sealed class TileSystem : EntitySystem
return ReplaceTile(tileref, replacementTile, tileref.GridUid, grid);
}
- public bool ReplaceTile(TileRef tileref, ContentTileDefinition replacementTile, EntityUid grid, MapGridComponent? component = null, byte? variant = null)
+ public bool ReplaceTile(TileRef tileref, ContentTileDefinition replacementTile, EntityUid grid, MapGridComponent? component = null)
{
DebugTools.Assert(tileref.GridUid == grid);
if (!Resolve(grid, ref component))
return false;
- var key = tileref.GridIndices;
- var currentTileDef = (ContentTileDefinition) _tileDefinitionManager[tileref.Tile.TypeId];
- // If the tile we're placing has a baseTurf that matches the tile we're replacing, we don't need to create a history
- // unless the tile already has a history.
- var history = EnsureComp(grid);
- var chunkIndices = SharedMapSystem.GetChunkIndices(key, ChunkSize);
- history.ChunkHistory.TryGetValue(chunkIndices, out var chunk);
- var historyExists = chunk != null && chunk.History.ContainsKey(key);
-
- if (replacementTile.BaseTurf != currentTileDef.ID || historyExists)
- {
- if (chunk == null)
- {
- chunk = new TileHistoryChunk();
- history.ChunkHistory[chunkIndices] = chunk;
- }
-
- chunk.LastModified = _timing.CurTick;
- Dirty(grid, history);
-
- //Create stack if needed
- if (!chunk.History.TryGetValue(key, out var stack))
- {
- stack = new List>();
- chunk.History[key] = stack;
- }
-
- //Prevent the doomstack
- if (stack.Count >= _tileStackLimit && _tileStackLimit != 0)
- return false;
-
- //Push current tile to the stack, if not empty
- if (!tileref.Tile.IsEmpty)
- {
- stack.Add(currentTileDef.ID);
- }
- }
-
- variant ??= PickVariant(replacementTile);
+ var variant = PickVariant(replacementTile);
var decals = _decal.GetDecalsInRange(tileref.GridUid, _turf.GetTileCenter(tileref).Position, 0.5f);
foreach (var (id, _) in decals)
{
_decal.RemoveDecal(tileref.GridUid, id);
}
- _maps.SetTile(grid, component, tileref.GridIndices, new Tile(replacementTile.TileId, 0, variant.Value));
+ _maps.SetTile(grid, component, tileref.GridIndices, new Tile(replacementTile.TileId, 0, variant));
return true;
}
-
- public bool DeconstructTile(TileRef tileRef, bool spawnItem = true)
+ public bool DeconstructTile(TileRef tileRef)
{
if (tileRef.Tile.IsEmpty)
return false;
- var tileDef = (ContentTileDefinition)_tileDefinitionManager[tileRef.Tile.TypeId];
+ var tileDef = (ContentTileDefinition) _tileDefinitionManager[tileRef.Tile.TypeId];
- //Can't deconstruct anything that doesn't have a base turf.
- if (tileDef.BaseTurf == null)
+ if (string.IsNullOrEmpty(tileDef.BaseTurf))
return false;
var gridUid = tileRef.GridUid;
@@ -271,68 +152,20 @@ public sealed class TileSystem : EntitySystem
(_robustRandom.NextFloat() - 0.5f) * bounds,
(_robustRandom.NextFloat() - 0.5f) * bounds));
- var historyComp = EnsureComp(gridUid);
- ProtoId previousTileId;
+ //Actually spawn the relevant tile item at the right position and give it some random offset.
+ var tileItem = Spawn(tileDef.ItemDropPrototypeName, coordinates);
+ Transform(tileItem).LocalRotation = _robustRandom.NextDouble() * Math.Tau;
- var chunkIndices = SharedMapSystem.GetChunkIndices(indices, ChunkSize);
-
- //Pop from stack if we have history
- if (historyComp.ChunkHistory.TryGetValue(chunkIndices, out var chunk) &&
- chunk.History.TryGetValue(indices, out var stack) && stack.Count > 0)
- {
- chunk.LastModified = _timing.CurTick;
- Dirty(gridUid, historyComp);
-
- previousTileId = stack.Last();
- stack.RemoveAt(stack.Count - 1);
-
- //Clean up empty stacks to avoid memory buildup
- if (stack.Count == 0)
- {
- chunk.History.Remove(indices);
- }
-
- // Clean up empty chunks
- if (chunk.History.Count == 0)
- {
- historyComp.ChunkHistory.Remove(chunkIndices);
- }
- }
- else
- {
- //No stack? Assume BaseTurf was the layer below
- previousTileId = tileDef.BaseTurf.Value;
- }
-
- if (spawnItem)
- {
- //Actually spawn the relevant tile item at the right position and give it some random offset.
- var tileItem = Spawn(tileDef.ItemDropPrototypeName, coordinates);
- Transform(tileItem).LocalRotation = _robustRandom.NextDouble() * Math.Tau;
- }
-
- //Destroy any decals on the tile
+ // Destroy any decals on the tile
var decals = _decal.GetDecalsInRange(gridUid, coordinates.SnapToGrid(EntityManager, _mapManager).Position, 0.5f);
foreach (var (id, _) in decals)
{
_decal.RemoveDecal(tileRef.GridUid, id);
}
- //Replace tile with the one it was placed on
- var previousDef = (ContentTileDefinition)_tileDefinitionManager[previousTileId];
- _maps.SetTile(gridUid, mapGrid, indices, new Tile(previousDef.TileId));
+ var plating = _tileDefinitionManager[tileDef.BaseTurf];
+ _maps.SetTile(gridUid, mapGrid, tileRef.GridIndices, new Tile(plating.TileId));
return true;
}
-
- private void OnFloorTileAttempt(Entity ent, ref FloorTileAttemptEvent args)
- {
- if (_tileStackLimit == 0)
- return;
- var chunkIndices = SharedMapSystem.GetChunkIndices(args.GridIndices, ChunkSize);
- if (!ent.Comp.ChunkHistory.TryGetValue(chunkIndices, out var chunk) ||
- !chunk.History.TryGetValue(args.GridIndices, out var stack))
- return;
- args.Cancelled = stack.Count >= _tileStackLimit; // greater or equals because the attempt itself counts as a tile we're trying to place
- }
}
diff --git a/Content.Shared/RCD/RCDPrototype.cs b/Content.Shared/RCD/RCDPrototype.cs
index c4ac7148f7..2be5e1c776 100644
--- a/Content.Shared/RCD/RCDPrototype.cs
+++ b/Content.Shared/RCD/RCDPrototype.cs
@@ -44,12 +44,6 @@ public sealed partial class RCDPrototype : IPrototype
[DataField, ViewVariables(VVAccess.ReadOnly)]
public string? Prototype { get; private set; }
- ///
- /// If true, allows placing the entity once per direction (North, West, South and East)
- ///
- [DataField, ViewVariables(VVAccess.ReadOnly)]
- public bool AllowMultiDirection { get; private set; }
-
///
/// Number of charges consumed when the operation is completed
///
diff --git a/Content.Shared/RCD/Systems/RCDSystem.cs b/Content.Shared/RCD/Systems/RCDSystem.cs
index 2f1f058a1b..504576216a 100644
--- a/Content.Shared/RCD/Systems/RCDSystem.cs
+++ b/Content.Shared/RCD/Systems/RCDSystem.cs
@@ -38,7 +38,6 @@ public sealed class RCDSystem : EntitySystem
[Dependency] private readonly SharedInteractionSystem _interaction = default!;
[Dependency] private readonly SharedPopupSystem _popup = default!;
[Dependency] private readonly TurfSystem _turf = default!;
- [Dependency] private readonly TileSystem _tile = default!;
[Dependency] private readonly EntityLookupSystem _lookup = default!;
[Dependency] private readonly IPrototypeManager _protoManager = default!;
[Dependency] private readonly SharedMapSystem _mapSystem = default!;
@@ -146,7 +145,7 @@ public sealed class RCDSystem : EntitySystem
var tile = _mapSystem.GetTileRef(gridUid.Value, mapGrid, location);
var position = _mapSystem.TileIndicesFor(gridUid.Value, mapGrid, location);
- if (!IsRCDOperationStillValid(uid, component, gridUid.Value, mapGrid, tile, position, component.ConstructionDirection, args.Target, args.User))
+ if (!IsRCDOperationStillValid(uid, component, gridUid.Value, mapGrid, tile, position, args.Target, args.User))
return;
if (!_net.IsServer)
@@ -254,7 +253,7 @@ public sealed class RCDSystem : EntitySystem
var tile = _mapSystem.GetTileRef(gridUid.Value, mapGrid, location);
var position = _mapSystem.TileIndicesFor(gridUid.Value, mapGrid, location);
- if (!IsRCDOperationStillValid(uid, component, gridUid.Value, mapGrid, tile, position, args.Event.Direction, args.Event.Target, args.Event.User))
+ if (!IsRCDOperationStillValid(uid, component, gridUid.Value, mapGrid, tile, position, args.Event.Target, args.Event.User))
args.Cancel();
}
@@ -284,7 +283,7 @@ public sealed class RCDSystem : EntitySystem
var position = _mapSystem.TileIndicesFor(gridUid.Value, mapGrid, location);
// Ensure the RCD operation is still valid
- if (!IsRCDOperationStillValid(uid, component, gridUid.Value, mapGrid, tile, position, args.Direction, args.Target, args.User))
+ if (!IsRCDOperationStillValid(uid, component, gridUid.Value, mapGrid, tile, position, args.Target, args.User))
return;
// Finalize the operation (this should handle prediction properly)
@@ -319,11 +318,6 @@ public sealed class RCDSystem : EntitySystem
#region Entity construction/deconstruction rule checks
public bool IsRCDOperationStillValid(EntityUid uid, RCDComponent component, EntityUid gridUid, MapGridComponent mapGrid, TileRef tile, Vector2i position, EntityUid? target, EntityUid user, bool popMsgs = true)
- {
- return IsRCDOperationStillValid(uid, component, gridUid, mapGrid, tile, position, component.ConstructionDirection, target, user, popMsgs);
- }
-
- public bool IsRCDOperationStillValid(EntityUid uid, RCDComponent component, EntityUid gridUid, MapGridComponent mapGrid, TileRef tile, Vector2i position, Direction direction, EntityUid? target, EntityUid user, bool popMsgs = true)
{
var prototype = _protoManager.Index(component.ProtoId);
@@ -360,7 +354,7 @@ public sealed class RCDSystem : EntitySystem
{
case RcdMode.ConstructTile:
case RcdMode.ConstructObject:
- return IsConstructionLocationValid(uid, component, gridUid, mapGrid, tile, position, direction, user, popMsgs);
+ return IsConstructionLocationValid(uid, component, gridUid, mapGrid, tile, position, user, popMsgs);
case RcdMode.Deconstruct:
return IsDeconstructionStillValid(uid, tile, target, user, popMsgs);
}
@@ -368,7 +362,7 @@ public sealed class RCDSystem : EntitySystem
return false;
}
- private bool IsConstructionLocationValid(EntityUid uid, RCDComponent component, EntityUid gridUid, MapGridComponent mapGrid, TileRef tile, Vector2i position, Direction direction, EntityUid user, bool popMsgs = true)
+ private bool IsConstructionLocationValid(EntityUid uid, RCDComponent component, EntityUid gridUid, MapGridComponent mapGrid, TileRef tile, Vector2i position, EntityUid user, bool popMsgs = true)
{
var prototype = _protoManager.Index(component.ProtoId);
@@ -411,24 +405,8 @@ public sealed class RCDSystem : EntitySystem
return false;
}
- var tileDef = _turf.GetContentTileDefinition(tile);
-
- // Check rule: Respect baseTurf and baseWhitelist
- if (prototype.Prototype != null && _tileDefMan.TryGetDefinition(prototype.Prototype, out var replacementDef))
- {
- var replacementContentDef = (ContentTileDefinition) replacementDef;
-
- if (replacementContentDef.BaseTurf != tileDef.ID && !replacementContentDef.BaseWhitelist.Contains(tileDef.ID))
- {
- if (popMsgs)
- _popup.PopupClient(Loc.GetString("rcd-component-cannot-build-on-empty-tile-message"), uid, user);
-
- return false;
- }
- }
-
// Check rule: Tiles can't be identical
- if (tileDef.ID == prototype.Prototype)
+ if (_turf.GetContentTileDefinition(tile).ID == prototype.Prototype)
{
if (popMsgs)
_popup.PopupClient(Loc.GetString("rcd-component-cannot-build-identical-tile"), uid, user);
@@ -451,28 +429,6 @@ public sealed class RCDSystem : EntitySystem
foreach (var ent in _intersectingEntities)
{
- // If the entity is the exact same prototype as what we are trying to build, then block it.
- // This is to prevent spamming objects on the same tile (e.g. lights)
- if (prototype.Prototype != null && MetaData(ent).EntityPrototype?.ID == prototype.Prototype)
- {
- var isIdentical = true;
-
- if (prototype.AllowMultiDirection)
- {
- var entDirection = Transform(ent).LocalRotation.GetCardinalDir();
- if (entDirection != direction)
- isIdentical = false;
- }
-
- if (isIdentical)
- {
- if (popMsgs)
- _popup.PopupClient(Loc.GetString("rcd-component-cannot-build-identical-entity"), uid, user);
-
- return false;
- }
- }
-
if (isWindow && HasComp(ent))
continue;
@@ -577,10 +533,7 @@ public sealed class RCDSystem : EntitySystem
switch (prototype.Mode)
{
case RcdMode.ConstructTile:
- if (!_tileDefMan.TryGetDefinition(prototype.Prototype, out var tileDef))
- return;
-
- _tile.ReplaceTile(tile, (ContentTileDefinition) tileDef, gridUid, mapGrid);
+ _mapSystem.SetTile(gridUid, mapGrid, position, new Tile(_tileDefMan[prototype.Prototype].TileId));
_adminLogger.Add(LogType.RCD, LogImpact.High, $"{ToPrettyString(user):user} used RCD to set grid: {gridUid} {position} to {prototype.Prototype}");
break;
@@ -607,9 +560,10 @@ public sealed class RCDSystem : EntitySystem
if (target == null)
{
- // Deconstruct tile, don't drop tile as item
- if (_tile.DeconstructTile(tile, spawnItem: false))
- _adminLogger.Add(LogType.RCD, LogImpact.High, $"{ToPrettyString(user):user} used RCD to set grid: {gridUid} tile: {position} open to space");
+ // Deconstruct tile (either converts the tile to lattice, or removes lattice)
+ var tileDef = (_turf.GetContentTileDefinition(tile).ID != "Lattice") ? new Tile(_tileDefMan["Lattice"].TileId) : Tile.Empty;
+ _mapSystem.SetTile(gridUid, mapGrid, position, tileDef);
+ _adminLogger.Add(LogType.RCD, LogImpact.High, $"{ToPrettyString(user):user} used RCD to set grid: {gridUid} tile: {position} open to space");
}
else
{
diff --git a/Content.Shared/Tiles/FloorTileSystem.cs b/Content.Shared/Tiles/FloorTileSystem.cs
index a2743ca6ca..2c6df5ce89 100644
--- a/Content.Shared/Tiles/FloorTileSystem.cs
+++ b/Content.Shared/Tiles/FloorTileSystem.cs
@@ -16,7 +16,6 @@ using Robust.Shared.Network;
using Robust.Shared.Physics;
using Robust.Shared.Physics.Components;
using Robust.Shared.Physics.Systems;
-using Robust.Shared.Prototypes;
using Robust.Shared.Timing;
namespace Content.Shared.Tiles;
@@ -143,7 +142,7 @@ public sealed class FloorTileSystem : EntitySystem
var baseTurf = (ContentTileDefinition) _tileDefinitionManager[tile.Tile.TypeId];
- if (CanPlaceOn(currentTileDefinition, baseTurf.ID))
+ if (HasBaseTurf(currentTileDefinition, baseTurf.ID))
{
if (!_stackSystem.TryUse((uid, stack), 1))
continue;
@@ -153,7 +152,7 @@ public sealed class FloorTileSystem : EntitySystem
return;
}
}
- else if (HasBaseTurf(currentTileDefinition, new ProtoId(ContentTileDefinition.SpaceID)))
+ else if (HasBaseTurf(currentTileDefinition, ContentTileDefinition.SpaceID))
{
if (!_stackSystem.TryUse((uid, stack), 1))
continue;
@@ -172,35 +171,19 @@ public sealed class FloorTileSystem : EntitySystem
}
}
- public bool HasBaseTurf(ContentTileDefinition tileDef, ProtoId baseTurf)
+ public bool HasBaseTurf(ContentTileDefinition tileDef, string baseTurf)
{
return tileDef.BaseTurf == baseTurf;
}
- private bool CanPlaceOn(ContentTileDefinition tileDef, ProtoId currentTurfId)
- {
- //Check exact BaseTurf match
- if (tileDef.BaseTurf == currentTurfId)
- return true;
-
- // Check whitelist match
- if (tileDef.BaseWhitelist.Count > 0 && tileDef.BaseWhitelist.Contains(currentTurfId))
- return true;
-
- return false;
- }
-
private void PlaceAt(EntityUid user, EntityUid gridUid, MapGridComponent mapGrid, EntityCoordinates location,
ushort tileId, SoundSpecifier placeSound, float offset = 0)
{
_adminLogger.Add(LogType.Tile, LogImpact.Low, $"{ToPrettyString(user):actor} placed tile {_tileDefinitionManager[tileId].Name} at {ToPrettyString(gridUid)} {location}");
- var tileDef = (ContentTileDefinition) _tileDefinitionManager[tileId];
- var random = new System.Random((int)_timing.CurTick.Value);
- var variant = _tile.PickVariant(tileDef, random);
-
- var tileRef = _map.GetTileRef(gridUid, mapGrid, location.Offset(new Vector2(offset, offset)));
- _tile.ReplaceTile(tileRef, tileDef, gridUid, mapGrid, variant: variant);
+ var random = new System.Random((int) _timing.CurTick.Value);
+ var variant = _tile.PickVariant((ContentTileDefinition) _tileDefinitionManager[tileId], random);
+ _map.SetTile(gridUid, mapGrid,location.Offset(new Vector2(offset, offset)), new Tile(tileId, 0, variant));
_audio.PlayPredicted(placeSound, location, user);
}
diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml
index 9f2284ad36..6671a79fa3 100644
--- a/Resources/Changelog/Changelog.yml
+++ b/Resources/Changelog/Changelog.yml
@@ -3684,14 +3684,6 @@ Entries:
id: 9385
time: '2026-01-13T13:44:00.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/42334
-- author: Velken, Murphyneko
- changes:
- - message: Station tiles and floors can now be placed on planets, asteroids and
- different platings.
- type: Tweak
- id: 9386
- time: '2026-01-13T14:05:28.0000000+00:00'
- url: https://github.com/space-wizards/space-station-14/pull/38898
- author: ScarKy0
changes:
- message: The throwing knives bundle now comes with 8 knives instead of 4.
@@ -3797,14 +3789,6 @@ Entries:
id: 9398
time: '2026-01-14T21:40:38.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/42289
-- author: TriviaSolari
- changes:
- - message: Entities that are airtight on all sides (such as full-tile walls, airlocks,
- and windows) now skip rotational checks for airtightness when initialized.
- type: Tweak
- id: 9399
- time: '2026-01-15T02:46:30.0000000+00:00'
- url: https://github.com/space-wizards/space-station-14/pull/42390
- author: ArtisticRoomba
changes:
- message: The TEG now produces 75% more power. This is to counteract tritium fires
@@ -3867,49 +3851,3 @@ Entries:
id: 9407
time: '2026-01-15T20:01:06.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/42040
-- author: Velken
- changes:
- - message: RCD can no longer spam lights in the same spot.
- type: Fix
- - message: RCD can no longer be used to destroy indestructible tiles.
- type: Fix
- id: 9408
- time: '2026-01-15T20:39:02.0000000+00:00'
- url: https://github.com/space-wizards/space-station-14/pull/42432
-- author: B_Kirill
- changes:
- - message: Added camera map. Cutting MAP wire hides camera from map while keeping
- it accessible in camera list.
- type: Add
- id: 9409
- time: '2026-01-15T21:37:19.0000000+00:00'
- url: https://github.com/space-wizards/space-station-14/pull/39684
-- author: ScarKy0
- changes:
- - message: Added Makeshift and Regular Mortar&Pestle! It can be found in the nutrimax
- and dinnerware vendors or crafted. It works slower and can only process 1 item
- at a time.
- type: Add
- - message: Added Makeshift and Regular Handheld Juicer! It can be found in the nutrimax
- and dinnerware vendors or crafted. It works slower and can only process 1 item
- at a time.
- type: Add
- id: 9410
- time: '2026-01-16T00:35:32.0000000+00:00'
- url: https://github.com/space-wizards/space-station-14/pull/42019
-- author: EmoGarbage404
- changes:
- - message: Fixed flatpackers ignoring material costs for certain machine board requirements
- and being able to print unlatheable items for flatpacks.
- type: Fix
- id: 9411
- time: '2026-01-16T00:52:35.0000000+00:00'
- url: https://github.com/space-wizards/space-station-14/pull/42445
-- author: sowelipililimute
- changes:
- - message: Using a core pinpointer piece on another piece no longer causes you to
- start an unintended construction recipe.
- type: Fix
- id: 9412
- time: '2026-01-16T02:09:01.0000000+00:00'
- url: https://github.com/space-wizards/space-station-14/pull/42446
diff --git a/Resources/Locale/en-US/rcd/components/rcd-component.ftl b/Resources/Locale/en-US/rcd/components/rcd-component.ftl
index 17fda9111e..9741bde388 100644
--- a/Resources/Locale/en-US/rcd/components/rcd-component.ftl
+++ b/Resources/Locale/en-US/rcd/components/rcd-component.ftl
@@ -29,7 +29,6 @@ rcd-component-must-build-on-subfloor-message = You can only build that on expose
rcd-component-cannot-build-on-subfloor-message = You can't build that on exposed subfloor!
rcd-component-cannot-build-on-occupied-tile-message = You can't build here, the space is already occupied!
rcd-component-cannot-build-identical-tile = That tile already exists there!
-rcd-component-cannot-build-identical-entity = That already exists there!
### Category names
diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml
index 8c4e437f33..a93d634e1f 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml
@@ -1749,6 +1749,9 @@
state: generic_panel_open
# - type: Computer
# board: SyndicateCommsComputerCircuitboard
+ - type: Anchorable
+ flags:
+ - Anchorable # No taking the console along!
- type: PointLight
radius: 1.5
energy: 1.6
diff --git a/Resources/Prototypes/RCD/rcd.yml b/Resources/Prototypes/RCD/rcd.yml
index b173fa4157..5fb5356f91 100644
--- a/Resources/Prototypes/RCD/rcd.yml
+++ b/Resources/Prototypes/RCD/rcd.yml
@@ -37,7 +37,7 @@
category: WallsAndFlooring
sprite: /Textures/Interface/Radial/RCD/plating.png
mode: ConstructTile
- prototype: PlatingRCD
+ prototype: Plating
cost: 1
delay: 1
collisionMask: InteractImpassable
@@ -128,7 +128,6 @@
- IsWindow
rotation: User
fx: EffectRCDConstruct1
- allowMultiDirection: true
- type: rcd
id: ReinforcedWindow
@@ -158,7 +157,6 @@
- IsWindow
rotation: User
fx: EffectRCDConstruct2
- allowMultiDirection: true
# Airlocks
- type: rcd
@@ -210,7 +208,6 @@
collisionBounds: "-0.23,-0.49,0.23,-0.36"
rotation: User
fx: EffectRCDConstruct1
- allowMultiDirection: true
- type: rcd
id: BulbLight
@@ -224,7 +221,6 @@
collisionBounds: "-0.23,-0.49,0.23,-0.36"
rotation: User
fx: EffectRCDConstruct1
- allowMultiDirection: true
# Electrical
- type: rcd
diff --git a/Resources/Prototypes/Tiles/floors.yml b/Resources/Prototypes/Tiles/floors.yml
index 80163767e9..49bd367491 100644
--- a/Resources/Prototypes/Tiles/floors.yml
+++ b/Resources/Prototypes/Tiles/floors.yml
@@ -1,33 +1,5 @@
-- type: tile
- id: BaseStationTile
- abstract: true
- isSubfloor: false
- deconstructTools: [ Prying ]
- footstepSounds:
- collection: FootstepFloor
- heatCapacity: 10000
- baseTurf: Plating
- baseWhitelist:
- - PlatingBrass
- - FloorAsteroidIronsand
- - FloorAsteroidSand
- - FloorAsteroidSandBorderless
- - FloorAsteroidIronsandBorderless
- - FloorAsteroidSandRedBorderless
- - PlatingAsteroid
- - PlatingSnow
- - FloorPlanetDirt
- - FloorDesert
- - FloorLowDesert
- - FloorPlanetGrass
- - FloorSnow
- - FloorDirt
- - PlatingRCD
- - FloorHullReinforced
-
- type: tile
id: FloorSteel
- parent: BaseStationTile
name: tiles-steel-floor
sprite: /Textures/Tiles/steel.png
variants: 4
@@ -36,11 +8,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemSteel
+ heatCapacity: 10000
- type: tile
id: FloorSteelCheckerLight
- parent: BaseStationTile
name: tiles-steel-floor-checker-light
sprite: /Textures/Tiles/cafeteria.png
variants: 4
@@ -49,11 +26,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemSteelCheckerLight
+ heatCapacity: 10000
- type: tile
id: FloorSteelCheckerDark
- parent: BaseStationTile
name: tiles-steel-floor-checker-dark
sprite: /Textures/Tiles/checker_dark.png
variants: 4
@@ -62,11 +44,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemSteelCheckerDark
+ heatCapacity: 10000
- type: tile
id: FloorSteelMini
- parent: BaseStationTile
name: tiles-steel-floor-mini
sprite: /Textures/Tiles/steel_mini.png
variants: 4
@@ -75,11 +62,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemSteelMini
+ heatCapacity: 10000
- type: tile
id: FloorSteelPavement
- parent: BaseStationTile
name: tiles-steel-floor-pavement
sprite: /Textures/Tiles/steel_pavement.png
variants: 4
@@ -88,11 +80,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemSteelPavement
+ heatCapacity: 10000
- type: tile
id: FloorSteelDiagonal
- parent: BaseStationTile
name: tiles-steel-floor-diagonal
sprite: /Textures/Tiles/steel_diagonal.png
variants: 4
@@ -101,18 +98,28 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemSteelDiagonal
+ heatCapacity: 10000
- type: tile
id: FloorSteelOffset
- parent: BaseStationTile
name: tiles-steel-floor-offset
sprite: /Textures/Tiles/steel_offset.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemSteelOffset
+ heatCapacity: 10000
- type: tile
id: FloorSteelMono
- parent: BaseStationTile
name: tiles-steel-floor-mono
sprite: /Textures/Tiles/steel_mono.png
variants: 4
@@ -121,11 +128,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepTile
itemDrop: FloorTileItemSteelMono
+ heatCapacity: 10000
- type: tile
id: FloorSteelPavementVertical
- parent: BaseStationTile
name: tiles-steel-floor-pavement-vertical
sprite: /Textures/Tiles/steel_pavement_vertical.png
variants: 4
@@ -134,11 +146,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepTile
itemDrop: FloorTileItemSteelPavementVertical
+ heatCapacity: 10000
- type: tile
id: FloorSteelHerringbone
- parent: BaseStationTile
name: tiles-steel-floor-herringbone
sprite: /Textures/Tiles/steel_herringbone.png
variants: 4
@@ -147,11 +164,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepTile
itemDrop: FloorTileItemSteelHerringbone
+ heatCapacity: 10000
- type: tile
id: FloorSteelDiagonalMini
- parent: BaseStationTile
name: tiles-steel-floor-diagonal-mini
sprite: /Textures/Tiles/steel_diagonal_mini.png
variants: 4
@@ -160,29 +182,40 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepTile
itemDrop: FloorTileItemSteelDiagonalMini
+ heatCapacity: 10000
- type: tile
id: FloorBrassFilled
- parent: BaseStationTile
name: tiles-brass-floor-filled
sprite: /Textures/Tiles/Misc/clockwork/clockwork_floor_filled.png
+ baseTurf: PlatingBrass
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepHull
itemDrop: FloorTileItemBrassFilled
+ heatCapacity: 10000
- type: tile
id: FloorBrassReebe
- parent: BaseStationTile
name: tiles-brass-floor-reebe
sprite: /Textures/Tiles/Misc/clockwork/reebe.png
+ baseTurf: PlatingBrass
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepHull
itemDrop: FloorTileItemBrassReebe
+ heatCapacity: 10000
- type: tile
id: FloorPlastic
- parent: BaseStationTile
name: tiles-plastic-floor
sprite: /Textures/Tiles/plastic.png
variants: 4
@@ -191,11 +224,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemSteel
+ heatCapacity: 10000
- type: tile
id: FloorWood
- parent: BaseStationTile
name: tiles-wood
sprite: /Textures/Tiles/wood.png
variants: 4
@@ -204,15 +242,18 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepWood
barestepSounds:
collection: BarestepWood
itemDrop: FloorTileItemWood
+ heatCapacity: 10000
- type: tile
id: FloorWhite
- parent: BaseStationTile
name: tiles-white-floor
sprite: /Textures/Tiles/white.png
variants: 4
@@ -221,13 +262,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemWhite
+ heatCapacity: 10000
- type: tile
id: FloorWhiteMini
- parent: BaseStationTile
name: tiles-white-floor-mini
sprite: /Textures/Tiles/white_mini.png
variants: 4
@@ -236,13 +280,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemWhiteMini
+ heatCapacity: 10000
- type: tile
id: FloorWhitePavement
- parent: BaseStationTile
name: tiles-white-floor-pavement
sprite: /Textures/Tiles/white_pavement.png
variants: 4
@@ -251,13 +298,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemWhitePavement
+ heatCapacity: 10000
- type: tile
id: FloorWhiteDiagonal
- parent: BaseStationTile
name: tiles-white-floor-diagonal
sprite: /Textures/Tiles/white_diagonal.png
variants: 4
@@ -266,22 +316,28 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemWhiteDiagonal
+ heatCapacity: 10000
- type: tile
id: FloorWhiteOffset
- parent: BaseStationTile
name: tiles-white-floor-offset
sprite: /Textures/Tiles/white_offset.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemWhiteOffset
+ heatCapacity: 10000
- type: tile
id: FloorWhiteMono
- parent: BaseStationTile
name: tiles-white-floor-mono
sprite: /Textures/Tiles/white_mono.png
variants: 4
@@ -290,13 +346,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemWhiteMono
+ heatCapacity: 10000
- type: tile
id: FloorWhitePavementVertical
- parent: BaseStationTile
name: tiles-white-floor-pavement-vertical
sprite: /Textures/Tiles/white_pavement_vertical.png
variants: 4
@@ -305,13 +364,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemWhitePavementVertical
+ heatCapacity: 10000
- type: tile
id: FloorWhiteHerringbone
- parent: BaseStationTile
name: tiles-white-floor-herringbone
sprite: /Textures/Tiles/white_herringbone.png
variants: 4
@@ -320,13 +382,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemWhiteHerringbone
+ heatCapacity: 10000
- type: tile
id: FloorWhiteDiagonalMini
- parent: BaseStationTile
name: tiles-white-floor-diagonal-mini
sprite: /Textures/Tiles/white_diagonal_mini.png
variants: 4
@@ -335,13 +400,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemWhiteDiagonalMini
+ heatCapacity: 10000
- type: tile
id: FloorWhitePlastic
- parent: BaseStationTile
name: tiles-plastic-white-floor
sprite: /Textures/Tiles/white_plastic.png
variants: 4
@@ -350,13 +418,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemWhite
+ heatCapacity: 10000
- type: tile
id: FloorDark
- parent: BaseStationTile
name: tiles-dark-floor
sprite: /Textures/Tiles/dark.png
variants: 4
@@ -365,13 +436,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemDark
+ heatCapacity: 10000
- type: tile
id: FloorDarkMini
- parent: BaseStationTile
name: tiles-dark-floor-mini
sprite: /Textures/Tiles/dark_mini.png
variants: 4
@@ -380,13 +454,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemDarkMini
+ heatCapacity: 10000
- type: tile
id: FloorDarkPavement
- parent: BaseStationTile
name: tiles-dark-floor-pavement
sprite: /Textures/Tiles/dark_pavement.png
variants: 4
@@ -395,13 +472,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemDarkPavement
+ heatCapacity: 10000
- type: tile
id: FloorDarkDiagonal
- parent: BaseStationTile
name: tiles-dark-floor-diagonal
sprite: /Textures/Tiles/dark_diagonal.png
variants: 4
@@ -410,22 +490,28 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemDarkDiagonal
+ heatCapacity: 10000
- type: tile
id: FloorDarkOffset
- parent: BaseStationTile
name: tiles-dark-floor-offset
sprite: /Textures/Tiles/dark_offset.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemDarkOffset
+ heatCapacity: 10000
- type: tile
id: FloorDarkMono
- parent: BaseStationTile
name: tiles-dark-floor-mono
sprite: /Textures/Tiles/dark_mono.png
variants: 4
@@ -434,13 +520,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemDarkMono
+ heatCapacity: 10000
- type: tile
id: FloorDarkPavementVertical
- parent: BaseStationTile
name: tiles-dark-floor-pavement-vertical
sprite: /Textures/Tiles/dark_pavement_vertical.png
variants: 4
@@ -449,13 +538,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemDarkPavementVertical
+ heatCapacity: 10000
- type: tile
id: FloorDarkHerringbone
- parent: BaseStationTile
name: tiles-dark-floor-herringbone
sprite: /Textures/Tiles/dark_herringbone.png
variants: 4
@@ -464,13 +556,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemDarkHerringbone
+ heatCapacity: 10000
- type: tile
id: FloorDarkDiagonalMini
- parent: BaseStationTile
name: tiles-dark-floor-diagonal-mini
sprite: /Textures/Tiles/dark_diagonal_mini.png
variants: 4
@@ -479,13 +574,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemDarkDiagonalMini
+ heatCapacity: 10000
- type: tile
id: FloorDarkPlastic
- parent: BaseStationTile
name: tiles-plastic-dark-floor
sprite: /Textures/Tiles/dark_plastic.png
variants: 4
@@ -494,58 +592,76 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemDark
+ heatCapacity: 10000
- type: tile
id: FloorTechMaint
- parent: BaseStationTile
name: tiles-techmaint-floor
sprite: /Textures/Tiles/tech_maint.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepHull
itemDrop: FloorTileItemTechmaint
+ heatCapacity: 10000
- type: tile
id: FloorTechMaintDark
- parent: BaseStationTile
name: tiles-techmaint-floor-dark
sprite: /Textures/Tiles/tech_maint_dark.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepHull
itemDrop: FloorTileItemTechmaintDark
+ heatCapacity: 10000
- type: tile
id: FloorReinforced
- parent: BaseStationTile
name: tiles-reinforced-floor
sprite: /Textures/Tiles/reinforced.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepHull
itemDrop: PartRodMetal1
+ heatCapacity: 10000
- type: tile
id: FloorMono
- parent: BaseStationTile
name: tiles-mono-floor
sprite: /Textures/Tiles/mono.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemMono
+ heatCapacity: 10000
- type: tile
id: FloorLino
- parent: BaseStationTile
name: tiles-linoleum-floor
sprite: /Textures/Tiles/lino.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemLino
+ heatCapacity: 10000
- type: tile
id: FloorSteelDirty
- parent: BaseStationTile
name: tiles-dirty-steel-floor
sprite: /Textures/Tiles/steel_dirty.png
variants: 4
@@ -554,49 +670,64 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepPlating
itemDrop: FloorTileItemDirty
+ heatCapacity: 10000
- type: tile
id: FloorElevatorShaft
- parent: BaseStationTile
name: tiles-elevator-shaft
sprite: /Textures/Tiles/elevator_shaft.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepHull
itemDrop: FloorTileItemElevatorShaft
+ heatCapacity: 10000
- type: tile
id: FloorMetalDiamond
- parent: BaseStationTile
name: tiles-diamond-plate-floor
sprite: /Textures/Tiles/metaldiamond.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepHull
itemDrop: FloorTileItemMetalDiamond
+ heatCapacity: 10000
- type: tile
id: FloorRockVault
- parent: BaseStationTile
name: tiles-rock-floor
sprite: /Textures/Tiles/rock_vault.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepAsteroid
itemDrop: FloorTileItemRockVault
+ heatCapacity: 10000
- type: tile
id: FloorBlue
- parent: BaseStationTile
name: tiles-blue-tile
sprite: /Textures/Tiles/blue.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemBlue
+ heatCapacity: 10000
- type: tile
id: FloorSteelLime
- parent: BaseStationTile
name: tiles-lime-floor
sprite: /Textures/Tiles/lime.png
variants: 4
@@ -605,62 +736,89 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemLime
+ heatCapacity: 10000
- type: tile
id: FloorMining
- parent: BaseStationTile
name: tiles-mining-tile
sprite: /Textures/Tiles/mining_floor.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemMining
+ heatCapacity: 10000
- type: tile
id: FloorMiningDark
- parent: BaseStationTile
name: tiles-mining-dark-tile
sprite: /Textures/Tiles/mining_floor_dark.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemMiningDark
+ heatCapacity: 10000
- type: tile
id: FloorMiningLight
- parent: BaseStationTile
name: tiles-mining-light-tile
sprite: /Textures/Tiles/mining_floor_light.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemMiningLight
+ heatCapacity: 10000
# Departmental
- type: tile
id: FloorFreezer
- parent: BaseStationTile
name: tiles-freezer
sprite: /Textures/Tiles/freezer.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepHull
itemDrop: FloorTileItemFreezer
+ heatCapacity: 10000
- type: tile
id: FloorShowroom
- parent: BaseStationTile
name: tiles-showroom-floor
sprite: /Textures/Tiles/showroom.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemShowroom
+ heatCapacity: 10000
- type: tile
id: FloorHydro
- parent: BaseStationTile
name: tiles-hydro-floor
sprite: /Textures/Tiles/hydro.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemHydro
+ heatCapacity: 10000
- type: tile
id: FloorBar
- parent: BaseStationTile
name: tiles-bar-floor
sprite: /Textures/Tiles/bar.png
variants: 4
@@ -669,43 +827,64 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemBar
+ heatCapacity: 10000
- type: tile
id: FloorClown
- parent: BaseStationTile
name: tiles-clown-floor
sprite: /Textures/Tiles/clown.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemClown
+ heatCapacity: 10000
- type: tile
id: FloorMime
- parent: BaseStationTile
name: tiles-mime-floor
sprite: /Textures/Tiles/mime.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemMime
+ heatCapacity: 10000
- type: tile
id: FloorKitchen
- parent: BaseStationTile
name: tiles-kitchen-floor
sprite: /Textures/Tiles/kitchen.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemKitchen
+ heatCapacity: 10000
- type: tile
id: FloorLaundry
- parent: BaseStationTile
name: tiles-laundry-floor
sprite: /Textures/Tiles/laundry.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemLaundry
+ heatCapacity: 10000
- type: tile
id: FloorSteelDamaged
- parent: BaseStationTile
name: tiles-steel-floor
sprite: /Textures/Tiles/steel_damaged.png
variants: 5
@@ -715,12 +894,17 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemSteel #This should probably be made null when it becomes possible to make it such, in SS13 prying destroyed tiles wouldn't give you anything.
+ heatCapacity: 10000
# Concrete
- type: tile
id: FloorConcrete
- parent: BaseStationTile
name: tiles-concrete-tile
sprite: /Textures/Tiles/Planet/Concrete/concrete.png
variants: 4
@@ -729,13 +913,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemConcrete
+ heatCapacity: 10000
- type: tile
id: FloorConcreteMono
- parent: BaseStationTile
name: tiles-concrete-slab
sprite: /Textures/Tiles/Planet/Concrete/concrete_mono.png
variants: 4
@@ -744,13 +931,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemConcreteMono
+ heatCapacity: 10000
- type: tile
id: FloorConcreteSmooth
- parent: BaseStationTile
name: tiles-concrete-smooth
sprite: /Textures/Tiles/Planet/Concrete/concrete_smooth.png
variants: 4
@@ -759,13 +949,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemConcreteSmooth
+ heatCapacity: 10000
- type: tile
id: FloorGrayConcrete
- parent: BaseStationTile
name: tiles-gray-concrete-tile
sprite: /Textures/Tiles/Planet/Concrete/grayconcrete.png
variants: 4
@@ -774,13 +967,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemGrayConcrete
+ heatCapacity: 10000
- type: tile
id: FloorGrayConcreteMono
- parent: BaseStationTile
name: tiles-gray-concrete-slab
sprite: /Textures/Tiles/Planet/Concrete/grayconcrete_mono.png
variants: 4
@@ -789,13 +985,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemGrayConcreteMono
+ heatCapacity: 10000
- type: tile
id: FloorGrayConcreteSmooth
- parent: BaseStationTile
name: tiles-gray-concrete-smooth
sprite: /Textures/Tiles/Planet/Concrete/grayconcrete_smooth.png
variants: 4
@@ -804,13 +1003,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemGrayConcreteSmooth
+ heatCapacity: 10000
- type: tile
id: FloorOldConcrete
- parent: BaseStationTile
name: tiles-old-concrete-tile
sprite: /Textures/Tiles/Planet/Concrete/oldconcrete.png
variants: 4
@@ -819,13 +1021,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemOldConcrete
+ heatCapacity: 10000
- type: tile
id: FloorOldConcreteMono
- parent: BaseStationTile
name: tiles-old-concrete-slab
sprite: /Textures/Tiles/Planet/Concrete/oldconcrete_mono.png
variants: 4
@@ -834,13 +1039,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemOldConcreteMono
+ heatCapacity: 10000
- type: tile
id: FloorOldConcreteSmooth
- parent: BaseStationTile
name: tiles-old-concrete-smooth
sprite: /Textures/Tiles/Planet/Concrete/oldconcrete_smooth.png
variants: 4
@@ -849,86 +1057,107 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemOldConcreteSmooth
+ heatCapacity: 10000
# Carpets (non smoothing)
- type: tile
id: FloorArcadeBlue
- parent: BaseStationTile
name: tiles-blue-arcade-floor
sprite: /Textures/Tiles/arcadeblue.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepCarpet
barestepSounds:
collection: BarestepCarpet
friction: 1.25
itemDrop: FloorTileItemArcadeBlue
+ heatCapacity: 10000
- type: tile
id: FloorArcadeBlue2
- parent: BaseStationTile
name: tiles-blue-arcade-floor
sprite: /Textures/Tiles/arcadeblue2.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepCarpet
barestepSounds:
collection: BarestepCarpet
friction: 1.25
itemDrop: FloorTileItemArcadeBlue2
+ heatCapacity: 10000
- type: tile
id: FloorArcadeRed
- parent: BaseStationTile
name: tiles-red-arcade-floor
sprite: /Textures/Tiles/arcadered.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepCarpet
barestepSounds:
collection: BarestepCarpet
friction: 1.25
itemDrop: FloorTileItemArcadeRed
+ heatCapacity: 10000
- type: tile
id: FloorEighties
- parent: BaseStationTile
name: tiles-eighties-floor
sprite: /Textures/Tiles/eighties.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepCarpet
barestepSounds:
collection: BarestepCarpet
friction: 1.25
itemDrop: FloorTileItemEighties
+ heatCapacity: 10000
- type: tile
id: FloorCarpetClown
- parent: BaseStationTile
name: tiles-clown-carpet-floor
sprite: /Textures/Tiles/carpetclown.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepCarpet
barestepSounds:
collection: BarestepCarpet
friction: 1.25
itemDrop: FloorTileItemCarpetClown
+ heatCapacity: 10000
- type: tile
id: FloorCarpetOffice
- parent: BaseStationTile
name: tiles-office-carpet-floor
sprite: /Textures/Tiles/carpetoffice.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepCarpet
barestepSounds:
collection: BarestepCarpet
friction: 1.25
itemDrop: FloorTileItemCarpetOffice
+ heatCapacity: 10000
- type: tile
id: FloorBoxing
- parent: BaseStationTile
name: tiles-boxing-ring-floor
sprite: /Textures/Tiles/boxing.png
variants: 4
@@ -937,12 +1166,17 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
friction: 1.25
itemDrop: FloorTileItemBoxing
+ heatCapacity: 10000
- type: tile
id: FloorGym
- parent: BaseStationTile
name: tiles-gym-floor
sprite: /Textures/Tiles/gym.png
variants: 4
@@ -951,13 +1185,18 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
friction: 1.25
itemDrop: FloorTileItemGym
+ heatCapacity: 10000
# Shuttle
- type: tile
id: FloorShuttleWhite
- parent: BaseStationTile
name: tiles-white-shuttle-floor
sprite: /Textures/Tiles/shuttlewhite.png
variants: 4
@@ -966,11 +1205,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemShuttleWhite
+ heatCapacity: 10000
- type: tile
id: FloorShuttleGrey
- parent: BaseStationTile
name: tiles-grey-shuttle-floor
sprite: /Textures/Tiles/shuttlegrey.png
variants: 4
@@ -979,11 +1223,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemShuttleGrey
+ heatCapacity: 10000
- type: tile
id: FloorShuttleBlack
- parent: BaseStationTile
name: tiles-black-shuttle-floor
sprite: /Textures/Tiles/shuttleblack.png
variants: 4
@@ -992,11 +1241,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemShuttleBlack
+ heatCapacity: 10000
- type: tile
id: FloorShuttleBlue
- parent: BaseStationTile
name: tiles-blue-shuttle-floor
sprite: /Textures/Tiles/shuttleblue.png
variants: 4
@@ -1005,11 +1259,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemShuttleBlue
+ heatCapacity: 10000
- type: tile
id: FloorShuttleOrange
- parent: BaseStationTile
name: tiles-orange-shuttle-floor
sprite: /Textures/Tiles/shuttleorange.png
variants: 4
@@ -1018,11 +1277,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemShuttleOrange
+ heatCapacity: 10000
- type: tile
id: FloorShuttlePurple
- parent: BaseStationTile
name: tiles-purple-shuttle-floor
sprite: /Textures/Tiles/shuttlepurple.png
variants: 4
@@ -1031,11 +1295,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemShuttlePurple
+ heatCapacity: 10000
- type: tile
id: FloorShuttleRed
- parent: BaseStationTile
name: tiles-red-shuttle-floor
sprite: /Textures/Tiles/shuttlered.png
variants: 4
@@ -1044,31 +1313,42 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemShuttleRed
+ heatCapacity: 10000
# Materials
- type: tile
id: FloorGold
- parent: BaseStationTile
name: tiles-gold-tile
sprite: /Textures/Tiles/gold.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemGold
+ heatCapacity: 10000
- type: tile
id: FloorSilver
- parent: BaseStationTile
name: tiles-silver-tile
sprite: /Textures/Tiles/silver.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemSilver
+ heatCapacity: 10000
- type: tile
id: FloorGlass
- parent: BaseStationTile
name: tiles-glass-floor
sprite: /Textures/Tiles/glass.png
variants: 4
@@ -1077,13 +1357,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: SheetGlass1
+ heatCapacity: 10000
- type: tile
id: FloorRGlass
- parent: BaseStationTile
name: tiles-reinforced-glass-floor
sprite: /Textures/Tiles/rglass.png
variants: 4
@@ -1092,49 +1375,65 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: SheetRGlass1
+ heatCapacity: 10000
- type: tile
id: FloorMetalFoam
- parent: BaseStationTile
name: tiles-metal-foam
sprite: /Textures/Tiles/foammetal.png
variants: 1
placementVariants:
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepHull
itemDrop: SheetSteel1
+ heatCapacity: 10000
# Circuits
- type: tile
id: FloorGreenCircuit
- parent: BaseStationTile
name: tiles-green-circuit-floor
sprite: /Textures/Tiles/green_circuit.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepHull
itemDrop: FloorTileItemGCircuit
+ heatCapacity: 10000
- type: tile
id: FloorBlueCircuit
- parent: BaseStationTile
name: tiles-blue-circuit-floor
sprite: /Textures/Tiles/blue_circuit.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepHull
itemDrop: FloorTileItemBCircuit
+ heatCapacity: 10000
- type: tile
id: FloorRedCircuit
- parent: BaseStationTile
name: tiles-red-circuit-floor
sprite: /Textures/Tiles/red_circuit.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepHull
itemDrop: FloorTileItemRCircuit
+ heatCapacity: 10000
# Terrain
- type: tile
@@ -1255,19 +1554,19 @@
sprite: /Textures/Tiles/Asteroid/asteroid.png
variants: 13
placementVariants:
- - 0.8
- - 0.0166 #Should be roughly 20%.... I think??? I don't know dude, I'm just a YAML monkey.
- - 0.0166
- - 0.0166
- - 0.0166
- - 0.0166
- - 0.0166
- - 0.0166
- - 0.0166
- - 0.0166
- - 0.0166
- - 0.0116
- - 0.0116
+ - 0.8
+ - 0.0166 #Should be roughly 20%.... I think??? I don't know dude, I'm just a YAML monkey.
+ - 0.0166
+ - 0.0166
+ - 0.0166
+ - 0.0166
+ - 0.0166
+ - 0.0166
+ - 0.0166
+ - 0.0166
+ - 0.0166
+ - 0.0116
+ - 0.0116
baseTurf: Space
isSubfloor: true
footstepSounds:
@@ -1506,7 +1805,6 @@
- type: tile
id: FloorFlesh
- parent: BaseStationTile
name: tiles-flesh-floor
sprite: /Textures/Tiles/meat.png
variants: 4
@@ -1515,23 +1813,29 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepBlood
itemDrop: FloorTileItemFlesh
friction: 0.25 #slippy
+ heatCapacity: 10000
- type: tile
id: FloorTechMaint2
- parent: BaseStationTile
name: tiles-techmaint2-floor
sprite: /Textures/Tiles/steel_maint.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepHull
itemDrop: FloorTileItemSteelMaint
+ heatCapacity: 10000
- type: tile
id: FloorTechMaint3
- parent: BaseStationTile
name: tiles-techmaint3-floor
sprite: /Textures/Tiles/grating_maint.png
variants: 4
@@ -1540,13 +1844,16 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepHull
itemDrop: FloorTileItemGratingMaint
+ heatCapacity: 10000
- type: tile
id: FloorWoodTile
- parent: BaseStationTile
name: tiles-wood2
sprite: /Textures/Tiles/wood_tile.png
variants: 4
@@ -1555,15 +1862,18 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepWood
barestepSounds:
collection: BarestepWood
itemDrop: FloorTileItemWoodPattern
+ heatCapacity: 10000
- type: tile
id: FloorBrokenWood
- parent: BaseStationTile
name: tiles-wood3
sprite: /Textures/Tiles/wood_broken.png
variants: 7
@@ -1575,22 +1885,29 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepWood
barestepSounds:
collection: BarestepWood
itemDrop: MaterialWoodPlank1
+ heatCapacity: 10000
- type: tile
id: FloorWebTile
- parent: BaseStationTile
name: tiles-web
sprite: /Textures/Tiles/Misc/Web/web_tile.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepCarpet
barestepSounds:
collection: BarestepCarpet
itemDrop: FloorTileItemWeb
+ heatCapacity: 10000
- type: tile
id: FloorChromite
@@ -1614,18 +1931,33 @@
#Hull tiles
- type: tile
id: FloorHull
- parent: BaseStationTile
name: tiles-hull
sprite: /Textures/Tiles/hull.png
+ baseTurf: Plating
+ isSubfloor: false
footstepSounds:
collection: FootstepHull
itemDrop: FloorTileItemSteel #probably should not be normally obtainable, but the game shits itself and dies when you try to put null here
+ heatCapacity: 10000
+
+- type: tile
+ id: FloorHullReinforced
+ name: tiles-hull-reinforced
+ sprite: /Textures/Tiles/hull_reinforced.png
+ baseTurf: Plating
+ isSubfloor: false
+ footstepSounds:
+ collection: FootstepHull
+ itemDrop: FloorTileItemSteel
+ heatCapacity: 100000 #/tg/ has this set as "INFINITY." I don't know if that exists here so I've just added an extra 0
+ indestructible: true
- type: tile
id: FloorReinforcedHardened
- parent: BaseStationTile
name: tiles-super-reinforced-floor
sprite: /Textures/Tiles/super_reinforced.png
+ baseTurf: Plating
+ isSubfloor: false
footstepSounds:
collection: FootstepHull
itemDrop: PartRodMetal1 #same case as FloorHull
@@ -1635,7 +1967,6 @@
# Grass
- type: tile
id: FloorAstroGrass
- parent: BaseStationTile
name: tiles-astro-grass
sprite: /Textures/Tiles/Planet/Grass/grass.png
variants: 4
@@ -1654,15 +1985,19 @@
East: /Textures/Tiles/Planet/Grass/double_edge.png
North: /Textures/Tiles/Planet/Grass/double_edge.png
West: /Textures/Tiles/Planet/Grass/double_edge.png
+ baseTurf: Plating
+ isSubfloor: false
deconstructTools: [ Cutting ]
footstepSounds:
collection: FootstepGrass
itemDrop: FloorTileItemAstroGrass
+ heatCapacity: 10000
- type: tile
id: FloorMowedAstroGrass
- parent: [ BaseStationTile, FloorGrass ]
name: tiles-mowed-astro-grass
+ parent: FloorGrass
+ baseTurf: Plating
#Corvax
sprite: /Textures/Corvax/Tiles/mowed_grass.png
variants: 4
@@ -1679,8 +2014,9 @@
- type: tile
id: FloorJungleAstroGrass
- parent: [ BaseStationTile, FloorGrassJungle ]
name: tiles-jungle-astro-grass
+ parent: FloorGrassJungle
+ baseTurf: Plating
isSubfloor: false
deconstructTools: [ Cutting ]
itemDrop: FloorTileItemJungleAstroGrass
@@ -1707,18 +2043,22 @@
# Ice
- type: tile
id: FloorAstroIce
- parent: BaseStationTile
name: tiles-astro-ice
sprite: /Textures/Tiles/Planet/Snow/ice.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
friction: 0.05
+ heatCapacity: 10000
mobFriction: 0.05
mobAcceleration: 0.1
itemDrop: FloorTileItemAstroIce
- type: tile
id: FloorAstroSnow
- parent: [ BaseStationTile, FloorSnow ]
name: tiles-astro-snow
+ parent: FloorSnow
+ baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
itemDrop: FloorTileItemAstroSnow
@@ -1727,8 +2067,9 @@
# Asteroid Sand
- type: tile
id: FloorAstroAsteroidSand
- parent: [ BaseStationTile, FloorAsteroidSand ]
name: tiles-astro-asteroid-sand
+ parent: FloorAsteroidSand
+ baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
itemDrop: FloorTileItemAstroAsteroidSand
@@ -1736,8 +2077,9 @@
- type: tile
id: FloorAstroAsteroidSandBorderless
- parent: [ BaseStationTile, FloorAsteroidSandBorderless ]
name: tiles-astro-asteroid-sand-borderless
+ parent: FloorAsteroidSandBorderless
+ baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
itemDrop: FloorTileItemAstroAsteroidSand
@@ -1775,7 +2117,6 @@
- type: tile
id: FloorWoodLarge
- parent: BaseStationTile
name: tiles-wood-large
sprite: /Textures/Tiles/wood_large.png
variants: 4
@@ -1784,11 +2125,15 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepWood
barestepSounds:
collection: BarestepWood
itemDrop: FloorTileItemWoodLarge
+ heatCapacity: 10000
- type: tile
id: FloorXenoborg
@@ -1804,36 +2149,44 @@
- type: tile
id: FloorXeno
- parent: BaseStationTile
name: tiles-xeno-floor
sprite: /Textures/Tiles/xeno_flooring.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepBlood
itemDrop: FloorTileItemXeno
+ heatCapacity: 10000
- type: tile
id: FloorXenoSteel
- parent: BaseStationTile
name: tiles-xeno-steel
sprite: /Textures/Tiles/xeno_steel.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemXenoSteel
+ heatCapacity: 10000
allowRotationMirror: true
- type: tile
id: FloorXenoSteelCorner
- parent: BaseStationTile
name: tiles-xeno-steel-corner
sprite: /Textures/Tiles/xeno_steel_corner.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemXenoSteelCorner
+ heatCapacity: 10000
allowRotationMirror: true
- type: tile
id: FloorDarkSquiggly
- parent: BaseStationTile
name: tiles-dark-squiggly
sprite: /Textures/Tiles/dark_squiggly.png
variants: 4
@@ -1842,21 +2195,29 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
+ footstepSounds:
+ collection: FootstepFloor
itemDrop: FloorTileItemDarkSquiggly
+ heatCapacity: 10000
allowRotationMirror: true
- type: tile
id: FloorXenoMaint
- parent: BaseStationTile
name: tiles-xeno-maint
sprite: /Textures/Tiles/xeno_maint.png
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepHull
itemDrop: FloorTileItemXenoMaint
+ heatCapacity: 10000
- type: tile
id: FloorWhiteMarble
- parent: BaseStationTile
name: tiles-white-marble
sprite: /Textures/Tiles/white_marble.png
variants: 8
@@ -1869,14 +2230,17 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
friction: 0.8
itemDrop: FloorTileItemWhiteMarble
+ heatCapacity: 10000
- type: tile
id: FloorDarkMarble
- parent: BaseStationTile
name: tiles-dark-marble
sprite: /Textures/Tiles/dark_marble.png
variants: 8
@@ -1889,14 +2253,17 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
friction: 0.8
itemDrop: FloorTileItemDarkMarble
+ heatCapacity: 10000
- type: tile
id: FloorPlasmaMarble
- parent: BaseStationTile
name: tiles-plasma-marble
sprite: /Textures/Tiles/plasmarble.png
variants: 8
@@ -1909,14 +2276,17 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
friction: 0.8
itemDrop: FloorTileItemPlasmaMarble
+ heatCapacity: 10000
- type: tile
id: FloorUraniumMarble
- parent: BaseStationTile
name: tiles-uranium-marble
sprite: /Textures/Tiles/uranium_marble.png
variants: 8
@@ -1929,7 +2299,11 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Plating
+ isSubfloor: false
+ deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
friction: 0.8
itemDrop: FloorTileItemUraniumMarble
+ heatCapacity: 10000
diff --git a/Resources/Prototypes/Tiles/planet.yml b/Resources/Prototypes/Tiles/planet.yml
index 057afa776b..d2b9456e3a 100644
--- a/Resources/Prototypes/Tiles/planet.yml
+++ b/Resources/Prototypes/Tiles/planet.yml
@@ -1,16 +1,5 @@
-- type: tile
- id: BaseFloorPlanet
- abstract: true
- heatCapacity: 10000
- isSubfloor: true
- footstepSounds:
- collection: FootstepAsteroid
- weather: true
- indestructible: true
-
- type: tile
id: FloorPlanetDirt
- parent: BaseFloorPlanet
name: tiles-dirt-planet-floor
sprite: /Textures/Tiles/Planet/dirt.rsi/dirt.png
variants: 4
@@ -19,11 +8,16 @@
- 1.0
- 1.0
- 1.0
+ isSubfloor: true
+ footstepSounds:
+ collection: FootstepAsteroid
+ heatCapacity: 10000
+ weather: true
+ indestructible: true
# Desert
- type: tile
id: FloorDesert
- parent: BaseFloorPlanet
name: tiles-desert-floor
sprite: /Textures/Tiles/Planet/Desert/desert.png
variants: 6
@@ -36,6 +30,12 @@
- 0.06
- 0.01
# Corvax-Mapping-End
+ isSubfloor: true
+ footstepSounds:
+ collection: FootstepAsteroid
+ heatCapacity: 10000
+ weather: true
+ indestructible: true
- type: tile
id: FloorLowDesert
@@ -49,11 +49,16 @@
- 1.0
- 1.0
- 1.0
+ isSubfloor: true
+ footstepSounds:
+ collection: FootstepAsteroid
+ heatCapacity: 10000
+ weather: true
+ indestructible: true
# Grass
- type: tile
id: FloorPlanetGrass
- parent: BaseFloorPlanet
name: tiles-grass-planet-floor
sprite: /Textures/Tiles/Planet/Grass/grass.png
variants: 4
@@ -73,20 +78,29 @@
North: /Textures/Tiles/Planet/Grass/double_edge.png
West: /Textures/Tiles/Planet/Grass/double_edge.png
baseTurf: FloorPlanetDirt
+ isSubfloor: true
footstepSounds:
collection: FootstepGrass
+ itemDrop: FloorTileItemGrass
+ heatCapacity: 10000
+ weather: true
+ indestructible: true
# Lava
- type: tile
id: FloorBasalt
name: tiles-basalt-floor
- parent: BaseFloorPlanet
sprite: /Textures/Tiles/Planet/basalt.png
+ isSubfloor: true
+ footstepSounds:
+ collection: FootstepAsteroid
+ heatCapacity: 10000
+ weather: true
+ indestructible: true
# Snow
- type: tile
id: FloorSnow
- parent: BaseFloorPlanet
name: tiles-snow
sprite: /Textures/Tiles/Planet/Snow/snow.png
variants: 13
@@ -110,8 +124,12 @@
East: /Textures/Tiles/Planet/Snow/snow_double_edge_east.png
North: /Textures/Tiles/Planet/Snow/snow_double_edge_north.png
West: /Textures/Tiles/Planet/Snow/snow_double_edge_west.png
+ isSubfloor: true
footstepSounds:
collection: FootstepSnow
+ heatCapacity: 10000
+ weather: true
+ indestructible: true
# Ice
- type: tile
@@ -128,7 +146,6 @@
# Dug snow
- type: tile
id: FloorSnowDug
- parent: BaseFloorPlanet
name: tiles-snow-dug
sprite: /Textures/Tiles/Planet/Snow/snow_dug.png
edgeSpritePriority: 1
@@ -137,7 +154,11 @@
East: /Textures/Tiles/Planet/Snow/snow_dug_double_edge_east.png
North: /Textures/Tiles/Planet/Snow/snow_dug_double_edge_north.png
West: /Textures/Tiles/Planet/Snow/snow_dug_double_edge_west.png
+ isSubfloor: true
footstepSounds:
collection: FootstepSnow
+ heatCapacity: 10000
+ weather: true
+ indestructible: true
# Wasteland
diff --git a/Resources/Prototypes/Tiles/plating.yml b/Resources/Prototypes/Tiles/plating.yml
index a6f150959d..2a85222c3a 100644
--- a/Resources/Prototypes/Tiles/plating.yml
+++ b/Resources/Prototypes/Tiles/plating.yml
@@ -1,52 +1,16 @@
- type: tile
- id: BasePlating
- abstract: true
- friction: 1.5
- heatCapacity: 10000
+ id: Plating
+ name: tiles-plating
+ sprite: /Textures/Tiles/plating.png
+ baseTurf: Lattice
isSubfloor: true
footstepSounds:
collection: FootstepPlating
- baseTurf: Lattice
- baseWhitelist:
- - TrainLattice
-
-- type: tile
- id: Plating
- parent: BasePlating
- name: tiles-plating
- sprite: /Textures/Tiles/plating.png
-
-- type: tile
- id: PlatingRCD
- parent: Plating
- baseWhitelist:
- - TrainLattice
- - FloorPlanetDirt
- - FloorDesert
- - FloorLowDesert
- - FloorPlanetGrass
- - FloorSnow
- - FloorDirt
- - FloorAsteroidIronsand
- - FloorAsteroidSand
- - FloorAsteroidSandBorderless
- - FloorAsteroidIronsandBorderless
- - FloorAsteroidSandRedBorderless
-
-- type: tile
- id: FloorHullReinforced
- parent: BasePlating
- name: tiles-hull-reinforced
- sprite: /Textures/Tiles/hull_reinforced.png
- footstepSounds:
- collection: FootstepHull
- itemDrop: FloorTileItemSteel
- heatCapacity: 100000 #/tg/ has this set as "INFINITY." I don't know if that exists here so I've just added an extra 0
- indestructible: true
+ friction: 1.5
+ heatCapacity: 10000
- type: tile
id: PlatingDamaged
- parent: BasePlating
name: tiles-plating
sprite: /Textures/Tiles/plating_damaged.png
variants: 3
@@ -54,25 +18,45 @@
- 1.0
- 1.0
- 1.0
+ baseTurf: Lattice
+ isSubfloor: true
+ footstepSounds:
+ collection: FootstepPlating
+ friction: 1.5
+ heatCapacity: 10000
- type: tile
id: PlatingAsteroid
- parent: BasePlating
name: tiles-asteroid-plating
sprite: /Textures/Tiles/Asteroid/asteroid_plating.png
+ baseTurf: Lattice
+ isSubfloor: true
+ footstepSounds:
+ collection: FootstepPlating
+ friction: 1.5
+ heatCapacity: 10000
- type: tile
id: PlatingBrass
- parent: BasePlating
name: tiles-brass-plating
sprite: /Textures/Tiles/Misc/clockwork/clockwork_floor.png
+ baseTurf: Lattice
+ isSubfloor: true
+ footstepSounds:
+ collection: FootstepPlating
+ friction: 1.5
+ heatCapacity: 10000
- type: tile
id: PlatingSnow
name: tiles-snow-plating
- parent: BasePlating
sprite: /Textures/Tiles/snow_plating.png #Not in the snow planet RSI because it doesn't have any metadata. Should probably be moved to its own folder later.
+ baseTurf: Lattice
+ isSubfloor: true
+ footstepSounds:
+ collection: FootstepPlating
friction: 0.75 #a little less then actual snow
+ heatCapacity: 10000
- type: tile
id: PlatingIronsand
@@ -103,8 +87,16 @@
- type: tile
id: TrainLattice
- parent: Lattice
name: tiles-lattice-train
sprite: /Textures/Tiles/latticeTrain.png
+ baseTurf: Space
+ isSubfloor: true
+ deconstructTools: [ Cutting ]
+ weather: true
footstepSounds:
collection: FootstepPlating
+ friction: 1.5
+ isSpace: true
+ itemDrop: PartRodMetal1
+ heatCapacity: 10000
+ mass: 200