From e0878096f455d117f3397c6637ea685c12923c6e Mon Sep 17 00:00:00 2001
From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Date: Tue, 27 Dec 2022 14:33:04 +1100
Subject: [PATCH] Add AttachToGridOrMap test (#3625)
Closes https://github.com/space-wizards/RobustToolbox/issues/3624
---
.../GameObjects/TransformComponent_Tests.cs | 27 +++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/Robust.UnitTesting/Shared/GameObjects/TransformComponent_Tests.cs b/Robust.UnitTesting/Shared/GameObjects/TransformComponent_Tests.cs
index 9dfa14c8a..3ea2c3d20 100644
--- a/Robust.UnitTesting/Shared/GameObjects/TransformComponent_Tests.cs
+++ b/Robust.UnitTesting/Shared/GameObjects/TransformComponent_Tests.cs
@@ -43,5 +43,32 @@ namespace Robust.UnitTesting.Shared.GameObjects
Assert.That(invWorldMatrix, Is.EqualTo(xform2.InvWorldMatrix));
}
+
+ ///
+ /// Asserts that when AttachToGridOrMap is called the entity remains in the same position.
+ ///
+ [Test]
+ public void AttachToGridOrMap()
+ {
+ var server = RobustServerSimulation.NewSimulation().InitializeInstance();
+
+ var entManager = server.Resolve();
+ var mapManager = server.Resolve();
+
+ var mapId = mapManager.CreateMap();
+ var grid = mapManager.CreateGrid(mapId);
+ grid.SetTile(new Vector2i(0, 0), new Tile(1));
+ var gridXform = entManager.GetComponent(grid.Owner);
+ gridXform.LocalPosition = new Vector2(0f, 100f);
+
+ var ent1 = entManager.SpawnEntity(null, new EntityCoordinates(grid.Owner, Vector2.One * grid.TileSize / 2));
+ var ent2 = entManager.SpawnEntity(null, new EntityCoordinates(ent1, Vector2.Zero));
+
+ var xform2 = entManager.GetComponent(ent2);
+ Assert.That(xform2.WorldPosition, Is.EqualTo(new Vector2(0.5f, 100.5f)));
+
+ xform2.AttachToGridOrMap();
+ Assert.That(xform2.LocalPosition, Is.EqualTo(Vector2.One * grid.TileSize / 2));
+ }
}
}