예제 #1
0
 private void Remove(UUID entity, bool removeId = true)
 {
     if (EntityByUUID.TryRemove(entity, out Entity e))
     {
         if (removeId)
         {
             Entities.TryRemove(e.EntityId, out e);
         }
     }
 }
예제 #2
0
        public void Dispose()
        {
            var entities = Entities.ToArray();

            Entities.Clear();
            EntityByUUID.Clear();

            foreach (var entity in entities)
            {
                entity.Deconstruct(out _, out _);
            }
        }
예제 #3
0
        public bool AddEntity(long id, Entity entity)
        {
            entity.Network = Network;
            entity.Level   = World;
            if (EntityByUUID.TryAdd(entity.UUID, entity))
            {
                entity.IsAlwaysShowName = false;
                // entity.NameTag = $"Entity_{id}";
                //entity.HideNameTag = false;

                if (!Entities.TryAdd(id, entity))
                {
                    EntityByUUID.TryRemove(entity.UUID, out Entity _);
                    return(false);
                }

                return(true);
            }

            return(false);
        }
예제 #4
0
 public bool TryGet(UUID uuid, out Entity entity)
 {
     return(EntityByUUID.TryGetValue(uuid, out entity));
 }