Beispiel #1
0
        private void AddProgressListener(PrefabToggleOpener spawnSite, PrefabToggle[] prefabToggles)
        {
            TimedEmitter emitter = spawnSite.FindEmitter();

            if (emitter == null)
            {
                return;
            }

            UpdateFill(emitter.Progress);

            if (m_OnProgressChanged == null)
            {
                m_OnProgressChanged = UpdateFill;
            }

            emitter.OnProgressChanged -= m_OnProgressChanged;
            emitter.OnProgressChanged += m_OnProgressChanged;

            if (m_FillRoot == null)
            {
                return;
            }

            PrefabToggle selectedToggle = prefabToggles[spawnSite.SelectedIndex];

            m_FillRoot.SetParent(selectedToggle.transform, false);
        }
Beispiel #2
0
        private void RemoveEmitterDestroyedListener(PrefabToggleOpener spawnSite)
        {
            TimedEmitter emitter = spawnSite.FindEmitter();

            if (emitter == null)
            {
                return;
            }

            TimedEmitter.OnDestroyed -= m_OnEmitterDestroyed;
        }
Beispiel #3
0
        private void RemoveProgressListener(PrefabToggleOpener spawnSite)
        {
            TimedEmitter emitter = spawnSite.FindEmitter();

            if (emitter == null)
            {
                return;
            }

            emitter.OnProgressChanged -= m_OnProgressChanged;
        }
Beispiel #4
0
        private void AddEmitterDestroyedListener(PrefabToggleOpener spawnSite)
        {
            TimedEmitter emitter = spawnSite.FindEmitter();

            if (emitter == null)
            {
                Close();
                return;
            }

            if (m_OnEmitterDestroyed == null)
            {
                m_OnEmitterDestroyed = CloseIfEmitterNamesAreEqual;
            }

            TimedEmitter.OnDestroyed -= m_OnEmitterDestroyed;
            TimedEmitter.OnDestroyed += m_OnEmitterDestroyed;
        }
Beispiel #5
0
        /// <summary>
        /// Strangely, the emitters appear equal but are different.
        /// </summary>
        private void CloseIfEmitterNamesAreEqual(TimedEmitter otherEmitter)
        {
            if (m_SpawnSite == null)
            {
                return;
            }

            TimedEmitter emitter = m_SpawnSite.FindEmitter();

            if (emitter == null)
            {
                return;
            }

            if (emitter.name != otherEmitter.name)
            {
                return;
            }

            Close();
        }