Terrarium.Game.WorldState.DuplicateMutable C# (CSharp) Method

DuplicateMutable() public method

Copies the object, but not the isImmutable bit. Makes a newly immutable copy.
public DuplicateMutable ( ) : object
return object
        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;
        }