예제 #1
0
        internal void update(Server server)
        {
            foreach (ServerEntity e in entityList.Values) {
                e.update(this);
            }

            bool c = entityAddList.Count > 0 || entityRemoveList.Count > 0;

            if (c) {
                while (entityAddList.Count > 0) {
                    if (!entityList.ContainsKey(entityAddList[0].entityId)) {
                        entityList.Add(entityAddList[0].entityId, entityAddList[0]);
                    } else {
                        server.println("Can't add: " + entityAddList[0].entityId);
                    }
                    entityAddList.RemoveAt(0);
                }
                while (entityRemoveList.Count > 0) {
                    entityList.Remove(entityRemoveList[0]);
                    entityRemoveList.RemoveAt(0);
                }

                entityArray = new ServerEntity[entityList.Count];
                entityList.Values.CopyTo(entityArray, 0);
            }
        }