diff --git a/Sources/FirebladeECS/FSM.swift b/Sources/FirebladeECS/FSM.swift index 6167a84..d9ab4d5 100644 --- a/Sources/FirebladeECS/FSM.swift +++ b/Sources/FirebladeECS/FSM.swift @@ -344,7 +344,7 @@ public class EntityStateMachine { for (identifier, _) in currentState.providers { if let other = toAdd[identifier], let current = currentState.providers[identifier], - current.identifier == other.identifier { + current.identifier == other.identifier { toAdd[identifier] = nil } else { entity.remove(identifier) diff --git a/Tests/FirebladeECSTests/FSMTests.swift b/Tests/FirebladeECSTests/FSMTests.swift index f7dc428..8c466e0 100644 --- a/Tests/FirebladeECSTests/FSMTests.swift +++ b/Tests/FirebladeECSTests/FSMTests.swift @@ -413,7 +413,7 @@ class EntityStateMachineTests: XCTestCase { XCTAssertTrue(entity.get(component: MockComponent.self) === component1) XCTAssertTrue(entity.get(component: MockComponent2.self) === component2) } - + func testGetsDeinitedWhileBeingStronglyReferencedByComponentAssignedToEntity() { class Marker: Component { let fsm: EntityStateMachine @@ -421,7 +421,7 @@ class EntityStateMachineTests: XCTestCase { self.fsm = fsm } } - + let nexus = Nexus() var entity = nexus.createEntity() var markerComponent = Marker(fsm: EntityStateMachine(entity: entity)) diff --git a/Tests/FirebladeECSTests/XCTestManifests.swift b/Tests/FirebladeECSTests/XCTestManifests.swift index 1613cc8..8079fe2 100644 --- a/Tests/FirebladeECSTests/XCTestManifests.swift +++ b/Tests/FirebladeECSTests/XCTestManifests.swift @@ -103,7 +103,8 @@ extension EntityStateMachineTests { ("testEnterSecondStateDoesNotRemoveOverlappingComponents", testEnterSecondStateDoesNotRemoveOverlappingComponents), ("testEnterSecondStateRemovesDifferentComponentsOfSameType", testEnterSecondStateRemovesDifferentComponentsOfSameType), ("testEnterSecondStateRemovesFirstStatesComponents", testEnterSecondStateRemovesFirstStatesComponents), - ("testEnterStateAddsStatesComponents", testEnterStateAddsStatesComponents) + ("testEnterStateAddsStatesComponents", testEnterStateAddsStatesComponents), + ("testGetsDeinitedWhileBeingStronglyReferencedByComponentAssignedToEntity", testGetsDeinitedWhileBeingStronglyReferencedByComponentAssignedToEntity) ] }