예제 #1
0
 protected override void OnVixen(VixenEventArgs args)
 {
     if (scene != null)
     {
         scene.OnVixen(args.VixEvent, Viewer);
     }
 }
예제 #2
0
        protected override void OnVixen(VixenEventArgs args)
        {
            Event ev = args.VixEvent;

            base.OnVixen(args);
            scene.OnVixen(ev, Viewer);
        }
예제 #3
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.
         */
        protected override void OnVixen(VixenEventArgs vargs)
        {
            Event ev   = vargs.VixEvent;
            int   code = ev.Code;

            if (code == Event.STOP)
            {
                if (StopEvent != null)
                {
                    StopEvent(ev.Sender.Name);
                }
            }
            else if (code == Event.LOAD_SCENE)
            {
                try
                {
                    LoadSceneEvent le    = ev as LoadSceneEvent;
                    String         fname = le.FileName;
                    SharedObj      obj   = le.Object;

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

                        if (p > 0)
                        {
                            name = name.Substring(0, p);
                        }
                        if (obj.IsClass((uint)SerialID.VX_Scene))
                        {
                            Scene scene = obj as Scene;
                            OnSceneLoad(scene, fname);
                            if (LoadSceneEvent != null)
                            {
                                LoadSceneEvent(name, fname);
                            }
                        }
                        else if (obj.IsClass((uint)SerialID.VX_Skeleton))
                        {
                            if (LoadAnimEvent != null)
                            {
                                LoadAnimEvent(name, fname);
                            }
                        }
                    }
                }
                catch (Exception) { }
            }
            else if (code == Event.SCENE_CHANGE)
            {
                try
                {
                    SceneEvent se = ev as SceneEvent;
                    if (SetSceneEvent != null)
                    {
                        string name = se.Target.Name;
                        int    p    = name.IndexOf('.');

                        if (p > 0)
                        {
                            name = name.Substring(0, p);
                        }
                        SetSceneEvent(name);
                    }
                }
                catch (Exception) { }
            }
        }