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); }
/*! * @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; } }