void EntityCreated(Entity ent) { if (_UserState != UserState.SPAWNING) { var mut = new EntityRemovedMutation(ent.ID); Program.QueuedMutations[mut.Time].Enqueue(mut); return; } else { _UserState = UserState.SPAWNED; Entity = ent; SendTick(Program.State.World); } }
void DestroyEntity() { switch (_UserState) { case UserState.SPAWNED: var mutation = new EntityRemovedMutation(Entity.ID); Program.QueuedMutations[mutation.Time].Enqueue(mutation); _UserState = UserState.CLOSED; break; case UserState.SPAWNING: case UserState.NOT_YET_SPAWNED: _UserState = UserState.CLOSED; break; case UserState.CLOSED: break; } }