Exemple #1
0
        protected IEnumerator OnSetRemovedMode()
        {
            yield return(null);

            try {
                //if we're going into world mode then we're not in the stack any more
                OnRemoveFromStack.SafeInvoke();
                //tell our group that we're permanently gone
                Group.RemoveChildItemFromGroup(this);
                //this will call OnRemovedFromGroup
                OnRemovedFromGame.SafeInvoke();
                //make sure to save the state so we know it's removed!
                PrepareToUnload();
            } catch (Exception e) {
                Debug.LogError("Exception while removing object: " + e.ToString());
            }

            while (!ReadyToUnload)
            {
                yield return(null);
            }

            BeginUnload();

            while (!FinishedUnloading)
            {
                yield return(null);
            }
            yield return(null);

            WorldItems.Unload(this);
        }
Exemple #2
0
        protected void OnSetWorldMode(bool freeze)
        {
            if (mDestroyed)
            {
                return;
            }

            if (rb != null)
            {
                rb.isKinematic = true;
                rb.useGravity  = true;
            }

            if (Props.Global.ParentUnderGroup && !TransformLocked)
            {
                if (Group != null && tr.parent != Group.tr)
                {
                    tr.parent = Group.tr;
                }
            }

            if (freeze)
            {
                Props.Local.Mode = WIMode.Frozen;
                if (rb != null)
                {
                    rb.isKinematic = true;
                    rb.useGravity  = true;
                }
            }
            else
            {
                if (rb != null && CollisionsEnabled)
                {
                    rb.isKinematic = false;
                    rb.useGravity  = true;
                }
            }

            ParentPivot = null;
            //if we're going into world mode then we're not in the stack any more
            OnRemoveFromStack.SafeInvoke();
            //set it to null because we don't need it any more
            OnRemoveFromStack = null;

            ActiveStateLocked = false;
            gameObject.layer  = Globals.LayerNumWorldItemActive;
        }
Exemple #3
0
 public void RemoveFromGame()
 {
     //Debug.Log ("Removing " + Props.Name.FileName + " from game");
     Props.Local.PreviousMode = Props.Local.Mode;
     Props.Local.Mode         = WIMode.RemovedFromGame;
     OnRemoveFromGroup.SafeInvoke();
     mGroup            = null;
     OnRemoveFromGroup = null;
                 #if UNITY_EDITOR
     /*if (OnRemoveFromStack == null) {
      *      Debug.Log ("OnRemoveFromStack was null");
      * }*/
                 #endif
     OnRemoveFromStack.SafeInvoke();
     OnRemoveFromStack = null;
 }
Exemple #4
0
        protected void OnSetHiddenMode()
        {
            if (HUD != null)
            {
                HUD.Retire();
            }

            ParentPivot = null;
            //if we're going into hiding mode then we're not in the stack any more
            OnRemoveFromStack.SafeInvoke();
            //set it to null because we don't need it any more
            OnRemoveFromStack = null;

            if (rb != null)
            {
                rb.isKinematic = true;
            }

            ActiveStateLocked = false;
            ActiveState       = WIActiveState.Invisible;
            ActiveStateLocked = true;
        }