Ejemplo n.º 1
0
        private void InitEvent()
        {
            //event
            _settingChangedEvent = _eventAggregator.GetEvent <SettingChangedEvent>();
            _settingChangedEvent.Subscribe(OnSettingChanged, ThreadOption.PublisherThread, false, info => string.IsNullOrEmpty(info.Guid) || info.Guid == _fileGuid);

            _loadTextEvent = _eventAggregator.GetEvent <LoadTextEvent>();
            _loadTextEvent.Subscribe(OnLoadText, ThreadOption.UIThread, false, tab => tab.Guid == _fileGuid);

            _updateTabStatusEvent = _eventAggregator.GetEvent <UpdateTabStatusEvent>();
            _updateTabStatusEvent.Subscribe(OnUpdateTabStatus, ThreadOption.PublisherThread, false, tab => tab.Guid == _fileGuid);

            _selectTabEvent = _eventAggregator.GetEvent <SelectTabEvent>();
            _selectTabEvent.Subscribe(OnSelectTab, ThreadOption.PublisherThread, false, info => info.Guid == _fileGuid);
        }
Ejemplo n.º 2
0
        /*!
         * @param ev	Vixen event to handle.
         * @param world	current world
         * Handles vixen events - content loading and animation.
         * This function also calls event handlers for AvatarEvents.
         */
        public virtual void OnVixen(Event ev, SharedWorld world)
        {
            int code = ev.Code;

            if (code == Event.STOP)
            {
                OnStopAnim(ev.Sender);
                return;
            }
            if (code == Event.LOAD_SCENE)
            {
                LoadSceneEvent le    = ev as LoadSceneEvent;
                String         fname = le.FileName;
                SharedObj      obj   = le.Object;

                if (obj != null)
                {
                    Scene  scene = obj as Scene;
                    string name  = obj.Name;
                    int    p     = name.IndexOf('.');

                    if (p > 0)
                    {
                        name = name.Substring(0, p);
                    }
                    if (scene != null)
                    {
                        if (scene.Models != null)
                        {
                            OnSceneLoad(world, scene, fname);
                        }
                        else if (scene.Engines != null)
                        {
                            RaiseAnimLoadEvent(name, fname);
                        }
                        return;
                    }
                    if (((obj as Skeleton) != null) || ((obj as MeshAnimator) != null))
                    {
                        RaiseAnimLoadEvent(name, fname);
                    }
                }
                return;
            }
            if (code == Event.LOAD_TEXT)
            {
                LoadTextEvent le = ev as LoadTextEvent;

                OnLoadText(le.FileName, le.Text);
                return;
            }
            if (code == Event.SCENE_CHANGE)
            {
                SceneEvent se = ev as SceneEvent;
                OnSceneChange(world, se.Target as Scene);
                return;
            }
            if (code == Event.ERROR)
            {
                ErrorEvent err = ev as ErrorEvent;
                RaiseErrorEvent(err.ErrString, err.ErrLevel);
                return;
            }
        }