Refactor body component to use slots instead of an army of dictionaries (#3749)

* Refactor body component to use slots instead of an army of dictionaries

* Update vox

* Replace static method call with extension

* Add setpart method, replace dispose with shutdown

* Fix tests, fix not listening to slot events when setting a part
This commit is contained in:
DrSmugleaf
2021-04-05 14:54:51 +02:00
committed by GitHub
parent 5387f87608
commit 677706b117
30 changed files with 602 additions and 466 deletions

View File

@@ -131,7 +131,7 @@ namespace Content.IntegrationTests.Tests.Body
Assert.That(human.TryGetComponent(out IBody? body));
Assert.NotNull(body);
var centerPart = body!.CenterPart();
var centerPart = body!.CenterPart;
Assert.NotNull(centerPart);
Assert.That(body.TryGetSlot(centerPart!, out var centerSlot));
@@ -196,7 +196,7 @@ namespace Content.IntegrationTests.Tests.Body
behavior.ResetAll();
body.TryAddPart(centerSlot!, centerPart, true);
body.SetPart(centerSlot!.Id, centerPart);
Assert.That(behavior.WasAddedToBody);
Assert.False(behavior.WasAddedToPart);

View File

@@ -78,7 +78,8 @@ namespace Content.IntegrationTests.Tests.GameObjects.Components.ActionBlocking
// Test to ensure a player with 4 hands will still only have 2 hands cuffed
AddHand(cuffed.Owner);
AddHand(cuffed.Owner);
Assert.True(cuffed.CuffedHandCount == 2 && hands.Hands.Count() == 4, "Player doesn't have correct amount of hands cuffed");
Assert.That(cuffed.CuffedHandCount, Is.EqualTo(2));
Assert.That(hands.Hands.Count(), Is.EqualTo(4));
// Test to give a player with 4 hands 2 sets of cuffs
cuffed.TryAddNewCuffs(human, secondCuffs);