public object DuplicateMutable()
{
var newState = new WorldState(_gridWidth, _gridHeight);
foreach (OrganismState state in Organisms)
{
var newOrganismState = state.CloneMutable();
Debug.Assert(newOrganismState != null, "Organism State is null in WorldState.DuplicateMutable()");
Debug.Assert(newOrganismState.ID != null, "Organism State ID is null in WorldState.DuplicateMutable()");
newState._organisms.Add(newOrganismState.ID, newOrganismState);
}
newState._tickNumber = _tickNumber;
newState._stateGuid = _stateGuid;
if (_teleporter != null)
{
newState._teleporter = _teleporter.Clone();
}
return newState;
}