Files
tbd-station-14/Content.IntegrationTests/Tests/Tiles/TileConstructionTests.cs
Saphire Lattice 49ff1b5e51 Remove steel sheet hull fixing (#33443)
* Remove steel sheet hull fixing

It's unintuitive that it's wasteful, there's not really any systems to NOT make it wasteful, and it's a UX trap. No this is not "noob trap", no. It's an UX issue because if hundreds of people do it over and over again without noticing anything wrong, well, something fails to properly note that there's an issue with what they are doing. Aka user experience issue. Aka not a problem with the user but the design.

Also could be a shitty doafter action that makes you wonder if something's wrong

* Why was this testing using steel of all things
2025-04-23 21:08:02 +10:00

104 lines
2.9 KiB
C#

using Content.IntegrationTests.Tests.Interaction;
using Robust.Shared.Map;
namespace Content.IntegrationTests.Tests.Tiles;
public sealed class TileConstructionTests : InteractionTest
{
/// <summary>
/// Test placing and cutting a single lattice.
/// </summary>
[Test]
public async Task PlaceThenCutLattice()
{
await AssertTile(Plating);
await AssertTile(Plating, PlayerCoords);
AssertGridCount(1);
await SetTile(null);
await InteractUsing(Rod);
await AssertTile(Lattice);
Assert.That(Hands.ActiveHandEntity, Is.Null);
await InteractUsing(Cut);
await AssertTile(null);
await AssertEntityLookup((Rod, 1));
AssertGridCount(1);
}
/// <summary>
/// Test placing and cutting a single lattice in space (not adjacent to any existing grid.
/// </summary>
[Test]
public async Task CutThenPlaceLatticeNewGrid()
{
await AssertTile(Plating);
await AssertTile(Plating, PlayerCoords);
AssertGridCount(1);
// Remove grid
await SetTile(null);
await SetTile(null, PlayerCoords);
Assert.That(MapData.Grid.Comp.Deleted);
AssertGridCount(0);
// Place Lattice
var oldPos = TargetCoords;
TargetCoords = SEntMan.GetNetCoordinates(new EntityCoordinates(MapData.MapUid, 1, 0));
await InteractUsing(Rod);
TargetCoords = oldPos;
await AssertTile(Lattice);
AssertGridCount(1);
// Cut lattice
Assert.That(Hands.ActiveHandEntity, Is.Null);
await InteractUsing(Cut);
await AssertTile(null);
AssertGridCount(0);
await AssertEntityLookup((Rod, 1));
}
/// <summary>
/// Test space -> floor -> plating
/// </summary>
[Test]
public async Task FloorConstructDeconstruct()
{
await AssertTile(Plating);
await AssertTile(Plating, PlayerCoords);
AssertGridCount(1);
// Remove grid
await SetTile(null);
await SetTile(null, PlayerCoords);
Assert.That(MapData.Grid.Comp.Deleted);
AssertGridCount(0);
// Space -> Lattice
var oldPos = TargetCoords;
TargetCoords = SEntMan.GetNetCoordinates(new EntityCoordinates(MapData.MapUid, 1, 0));
await InteractUsing(Rod);
TargetCoords = oldPos;
await AssertTile(Lattice);
AssertGridCount(1);
// Lattice -> Plating
await InteractUsing(FloorItem);
Assert.That(Hands.ActiveHandEntity, Is.Null);
await AssertTile(Plating);
AssertGridCount(1);
// Plating -> Tile
await InteractUsing(FloorItem);
Assert.That(Hands.ActiveHandEntity, Is.Null);
await AssertTile(Floor);
AssertGridCount(1);
// Tile -> Plating
await InteractUsing(Pry);
await AssertTile(Plating);
AssertGridCount(1);
await AssertEntityLookup((FloorItem, 1));
}
}