Exemplo n.º 1
0
 public void OnPhotonPlayerDisconnected(PhotonPlayer otherPlayer)
 {
     while (ManagedObjects.GetOwnersObjects(otherPlayer.ID).Count > 0)
     {
         ObjectPoolManager.Delete(ManagedObjects.GetOwnersObjects(otherPlayer.ID)[0]);
     }
 }
        public virtual void ActivateObjects()
        {
            List <T> toBeRemoved = new List <T>();

            //TODO: Trace usage paths to confirm transaction is needed
            using (Transaction acTrans = HostDocument.Database.TransactionManager.StartTransaction())
            {
                foreach (T managedObject in ManagedObjects)
                {
                    if (!managedObject.CreateActiveObject())
                    {
                        toBeRemoved.Add(managedObject);
                    }
                }

                acTrans.Commit();
            }

            foreach (T removeObj in toBeRemoved)
            {
                ManagedObjects.Remove(removeObj);
            }

            SetActiveObjects();
        }
Exemplo n.º 3
0
 public void AddTree(Tree tree)
 {
     ManagedObjects.Add(tree);
     tree.DirtyAdded = true;
     //TODO: Move into base
     //DrawingObjectManagerCollection.Current.FlagDirty();
 }
Exemplo n.º 4
0
        internal void UnregisterObject(Object obj)
        {
            lock (ManagedObjects)
            {
                if (!ManagedObjects.Contains(obj))
                {
                    return;
                }

                ManagedObjects.Remove(obj);

                if (obj is GameObject gameObject)
                {
                    if ((gameObject.Id.Flags & ObjectIdFlags.Spawned) != 0)
                    {
                        SpawnedObjects.Remove(gameObject);
                    }
                }

                var updated = UpdatedObjects.FirstOrDefault(u => u.Associate == obj);

                if (updated == default)
                {
                    return;
                }

                UpdatedObjects.Remove(updated);
            }
        }
Exemplo n.º 5
0
 /// <summary>
 /// Clears the <see cref="ChannelsManager"/>, disassociating any <see cref="Channel"/>s
 /// </summary>
 protected override void Clear()
 {
     foreach (Channel ch in ManagedObjects.ContentsAs_ListCopy)
     {
         ManagedObjects.Remove(ch);
     }
     base.Clear();
 }
Exemplo n.º 6
0
 /// <summary>
 /// Clears the <see cref="MediaDataManager"/> disassociating any linked <see cref="MediaData"/>
 /// </summary>
 protected override void Clear()
 {
     foreach (MediaData md in ManagedObjects.ContentsAs_ListCopy)
     {
         ManagedObjects.Remove(md);
     }
     base.Clear();
 }
Exemplo n.º 7
0
 /// <summary>
 /// Clears the <see cref="ExternalFileDataDataManager"/> disassociating any linked <see cref="ExternalFileData"/>
 /// </summary>
 protected override void Clear()
 {
     foreach (ExternalFileData EFd in ManagedObjects.ContentsAs_ListCopy)
     {
         ManagedObjects.Remove(EFd);
     }
     base.Clear();
 }
Exemplo n.º 8
0
        public override BasicLocus Create()
        {
            BasicLocus locus = Init(GetRandomLocusType());

            ManagedObjects.Add(locus);
            locus.OnCreated();
            return(locus);
        }
 public void Clear()
 {
     foreach (T managedObject in ManagedObjects)
     {
         managedObject.Erase();
     }
     ManagedObjects.Clear();
     SetActiveObjects();
 }
Exemplo n.º 10
0
    private static void CleanUpObjects()
    {
        List <GameObject> items = ManagedObjects.GetAllObjects();

        while (items.Count > 0)
        {
            Delete(items[0]);
            items.Remove(items[0]);
        }
    }
        ///// <summary>
        ///// Remove all <see cref="DataProvider"/> that are managed by the manager
        ///// </summary>
        ///// <param name="delete">A <see cref="bool"/> indicating if the removed data providers should be deleted</param>
        //public void RemoveUnusedDataProviders(List<DataProvider> usedDataProviders, bool delete)
        //{
        //    foreach (DataProvider prov in ManagedObjects.ContentsAs_YieldEnumerable)
        //    {
        //        if (!usedDataProviders.Contains(prov))
        //        {
        //            RemoveDataProvider(prov, delete);
        //        }
        //    }
        //}

        #endregion

        #region IXukAble Members

        /// <summary>
        /// Clears the <see cref="DataProviderManager"/>, clearing any links to <see cref="DataProvider"/>s
        /// </summary>
        protected override void Clear()
        {
            foreach (DataProvider dp in ManagedObjects.ContentsAs_ListCopy)
            {
                ManagedObjects.Remove(dp);
            }
            mDataFileDirectory = null;
            mXukedInFilDataProviderPaths.Clear();
            base.Clear();
        }
Exemplo n.º 12
0
    public static GameObject PhotonRpcInstantiateAsChild(string prefabPath, Vector3 position, Quaternion rotation, object[] data, int parentTokenId)
    {
        InstantiationData i = InstantiationData(prefabPath, position, rotation, data);

        i.PoolType = PoolType.RPC;

        var g = ObjectPoolManager.Instantiate(i);

        g.transform.parent = ManagedObjects.Find(parentTokenId).transform;
        ObjectPoolRpcManager.InstantiateAsChild(i, parentTokenId);
        return(g);
    }
Exemplo n.º 13
0
        public void BuildNewRoute(double initialInvert, double gradient, List <DrainageVertex> vertices)
        {
            using (var acTrans = TransactionFactory.CreateFromNew())
            {
                var route = new DrainageRoute(initialInvert, gradient, vertices);
                route.CreateActiveObject();
                ManagedObjects.Add(route);
                acTrans.Commit();
            }

            UpdateAll();
        }
        /// <summary>
        /// Add new object to managed object collection
        /// </summary>
        /// <param name="toBeManaged">Object to be added. Dirty added does not need to be marked</param>
        public void Add(T toBeManaged)
        {
            if (!toBeManaged.Active)
            {
                throw new ArgumentException("Drawing object not active.");
            }

            ManagedObjects.Add(toBeManaged);
            toBeManaged.DirtyAdded = true;

            //TODO: Belt and Braces. Review implementation of Active and Managed object lists in line with dirty system.
            SetActiveObjects();
        }
        /// <summary>
        /// Method to iterate over managed objects and remove any that have been deleted
        /// </summary>
        public void RemoveErased()
        {
            //TODO: Review how to handle erased base objects
            List <int> indicesToRemove = new List <int>();

            for (int i = ManagedObjects.Count - 1; i >= 0; i--)
            {
                if (ManagedObjects[i].DirtyRemoved)
                {
                    indicesToRemove.Add(i);
                }
            }

            indicesToRemove.Reverse();

            foreach (int i in indicesToRemove)
            {
                ManagedObjects.RemoveAt(i);
            }
        }
Exemplo n.º 16
0
    private static bool TryGetId(out int Id)
    {
        bool foundVal = false;
        int  returnId = PhotonNetwork.player.ID * MAX_ITEMS + itemsCreated % (MAX_ITEMS);

        if (ManagedObjects.Find(returnId) == null)
        {
            Id       = returnId;
            foundVal = true;
        }
        else
        {
            Id       = -1;
            foundVal = false;
        }

        if (++itemsCreated >= MAX_ITEMS)
        {
            itemsCreated = 0;
        }
        return(foundVal);
    }
Exemplo n.º 17
0
    public int DefaultMaxPoolSize  = 100;   //Objects added to a pool beyond its max size will be permanently deleted

    void Awake()
    {
        if (PersistThroughLoad)
        {
            DontDestroyOnLoad(this);
        }

        ObjectPoolRpcManager.Initialize();
        ObjectPoolManager.Initialize();
        ManagedObjects.Initialize();

        itemsCreated    = 0;
        LocalPools      = new Dictionary <string, Pool>();
        PhotonViewPools = new Dictionary <string, Pool>();
        RPCPools        = new Dictionary <string, Pool>();
        objectPool      = this;

        PreloadedPool[] poolsArray = GetComponentsInChildren <PreloadedPool>();

        if (LogFull)
        {
            Debug.Log("Found " + poolsArray.Length + " pools to preload.");
        }

        List <PreloadedPool> pools = new List <PreloadedPool>(poolsArray);

        while (pools.Count > 0)
        {
            PreloadedPool p    = pools[0];
            Pool          pool = Pool.InitializePool(this, p.PrefabString, p.PoolType, p.MaxPoolSize, p.PreloadSize, p.gameObject);
            PoolFromPoolType(p.PoolType)[p.PrefabString] = pool;
            pool.RenameGameObject();
            pools.Remove(p);
            Destroy(p);
        }
    }
Exemplo n.º 18
0
        internal void RegisterObject(Object obj)
        {
            lock (ManagedObjects)
            {
                if (ManagedObjects.Contains(obj))
                {
                    return;
                }

                OnObject.Invoke(obj);

                ManagedObjects.Add(obj);

                if (!(obj is GameObject gameObject))
                {
                    return;
                }

                if ((gameObject.Id.Flags & ObjectIdFlags.Spawned) != 0)
                {
                    SpawnedObjects.Add(gameObject);
                }
            }
        }
Exemplo n.º 19
0
 public static GameObject Find(int tokenId)
 {
     return(ManagedObjects.Find(tokenId));
 }
Exemplo n.º 20
0
 /// <summary>
 /// Unregister the <see cref="IManagedObject"/>. The object is then no longer managed by the <see cref="HoloFlowSceneManager"/>
 /// </summary>
 /// <param name="mObject"></param>
 public void UnregisterObject(IManagedObject mObject)
 {
     ManagedObjects.Remove(mObject);
 }
Exemplo n.º 21
0
 /// <summary>
 /// Registers a <see cref="IManagedObject"/> which should be managed by the <see cref="HoloFlowSceneManager"/>
 /// </summary>
 public void RegisterObject(IManagedObject mObject)
 {
     ManagedObjects.Add(mObject);
 }
Exemplo n.º 22
0
 public static GameObject GetMyPlayerController()
 {
     return(ManagedObjects.GetPlayerController(PhotonNetwork.player.ID));
 }
Exemplo n.º 23
0
 public static List <GameObject> GetMyObjectsOfType(string prefabPath)
 {
     return(ManagedObjects.GetOwnersObjectsOfType(PhotonNetwork.player.ID, prefabPath));
 }
 private void SetActiveObjects()
 {
     _activeObjects = ManagedObjects.Where(obj => !obj.Erased).ToList().AsReadOnly();
 }
Exemplo n.º 25
0
 public override void Destroy(BasicLocus locus)
 {
     ManagedObjects.Remove(locus);
     locus.OnDestroyed();
 }
Exemplo n.º 26
0
 void OnDestroy()
 {
     ObjectPoolRpcManager.Uninitialize();
     ObjectPoolManager.Uninitialize();
     ManagedObjects.Uninitialize();
 }