/// <summary> /// Marks an entity for removal from the room and presumably destruction. /// This is deferred until the next frame. /// </summary> public void MarkForRemoval(RailEntityBase entity) { if (entity.IsRemoving == false) { RailEntityServer serverEntity = entity as RailEntityServer; if (serverEntity == null) { throw new ArgumentNullException( nameof(entity), $"unexpected type of entity to remove: {entity}"); } serverEntity.MarkForRemoval(); server.LogRemovedEntity(serverEntity); } }