protected override void OnInstanceDestroy() { if (!Object.op_Inequality((Object)this.mListener, (Object)null)) { return; } this.mListener.Listeners -= new DestroyEventListener.DestroyEvent(this.OnInstanceDestroyTrigger); this.mListener = (DestroyEventListener)null; }
protected override void OnDestroy() { if (this.NoAutoDestruct && Object.op_Inequality((Object)this.mListener, (Object)null)) { this.mListener.Listeners -= new DestroyEventListener.DestroyEvent(this.OnInstanceDestroyTrigger); this.mListener = (DestroyEventListener)null; } base.OnDestroy(); }
protected override void OnInstanceCreate() { Canvas canvas = (Canvas)this.Instance.GetComponent <Canvas>(); if ((this.Modal || this.SystemModal) && Object.op_Inequality((Object)this.Instance, (Object)null)) { if (Object.op_Equality((Object)this.Instance.GetComponent <Canvas>(), (Object)null)) { GameObject gameObject = new GameObject("ModalCanvas", new System.Type[5] { typeof(Canvas), typeof(GraphicRaycaster), typeof(SRPG_CanvasScaler), typeof(CanvasStack), typeof(TemporaryCanvas) }); Canvas component = (Canvas)gameObject.GetComponent <Canvas>(); component.set_renderMode((RenderMode)0); gameObject.get_gameObject().SetActive(false); gameObject.get_gameObject().SetActive(true); ((TemporaryCanvas)gameObject.GetComponent <TemporaryCanvas>()).Instance = this.Instance; this.mInstance.get_transform().SetParent(gameObject.get_transform(), false); this.mInstance = gameObject; canvas = component; } this.Instance.get_transform().SetParent((Transform)null, false); CanvasStack component1 = (CanvasStack)this.mInstance.GetComponent <CanvasStack>(); if (this.SystemModal) { component1.SystemModal = true; component1.Priority = this.Priority; } else if (this.OverridePriority) { component1.Modal = true; component1.Priority = this.Priority; } if (this.Modal || this.SystemModal) { ((Behaviour)canvas).set_enabled(false); ((Behaviour)canvas).set_enabled(true); } } this.mListener = GameUtility.RequireComponent <DestroyEventListener>(this.mInstance); this.mListener.Listeners += new DestroyEventListener.DestroyEvent(this.OnInstanceDestroyTrigger); }
public override void OnActivate(int pinID) { switch (pinID) { case 100: this.OnCreatePinActive(); break; case 101: if (Object.op_Inequality((Object)this.mListener, (Object)null)) { this.mListener.Listeners -= new DestroyEventListener.DestroyEvent(this.OnInstanceDestroyTrigger); this.mListener = (DestroyEventListener)null; } if (Object.op_Inequality((Object)this.Instance, (Object)null)) { ((Behaviour)this).set_enabled(false); this.DestroyInstance(); this.ActivateOutputLinks(2); break; } if (this.mResourceRequest == null) { break; } this.mResourceRequest = (LoadRequest)null; ((Behaviour)this).set_enabled(false); break; case 102: this.LoadResource(); break; default: base.OnActivate(pinID); break; } }
private void SwapOut() { if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.mDummy, (UnityEngine.Object)null) || UnityEngine.Object.op_Equality((UnityEngine.Object) this.Target, (UnityEngine.Object)null)) { return; } Transform transform1 = this.Target.get_transform(); this.mDummy = new GameObject(((UnityEngine.Object) this.Target).get_name() + "(Dummy)", new System.Type[1] { typeof(DestroyEventListener) }); Transform transform2 = this.mDummy.get_transform(); transform2.SetParent(transform1.get_parent(), false); transform2.SetSiblingIndex(transform1.GetSiblingIndex()); this.mDummyDestroyEvent = (DestroyEventListener)this.mDummy.GetComponent <DestroyEventListener>(); this.mTargetDestroyEvent = (DestroyEventListener)this.Target.get_gameObject().AddComponent <DestroyEventListener>(); this.mDummyDestroyEvent.Listeners = (DestroyEventListener.DestroyEvent)(go => { this.mDummyDestroyEvent.Listeners = (DestroyEventListener.DestroyEvent)null; this.mTargetDestroyEvent.Listeners = (DestroyEventListener.DestroyEvent)null; UnityEngine.Object.Destroy((UnityEngine.Object) this.Target); }); this.mTargetDestroyEvent.Listeners = (DestroyEventListener.DestroyEvent)(go => { this.mDummyDestroyEvent.Listeners = (DestroyEventListener.DestroyEvent)null; this.mTargetDestroyEvent.Listeners = (DestroyEventListener.DestroyEvent)null; UnityEngine.Object.Destroy((UnityEngine.Object) this.mDummy); }); transform1.SetParent((Transform)UIUtility.Pool, false); if (!this.Deactivate) { return; } this.Target.SetActive(false); }