예제 #1
0
        /*
         *
         * public static void sys_env(VNNeoController game, SystemData param)
         * {
         *  sys_env(game, param.env);
         * }
         *
         * public static void sys_env(VNNeoController game, (int no, bool play) param)
         * {
         *  // set evn sound, param = (evn no, play), StudioNeo only
         *  if (game.isStudioNEO)
         *  {
         *      if (game.studio.envCtrl.no != param.no)
         *      {
         *          game.studio.envCtrl.Play(param.no);
         *      }
         *      if (game.studio.envCtrl.play != param.play)
         *      {
         *          if (param.play)
         *          {
         *              game.studio.envCtrl.Play();
         *          }
         *          else
         *          {
         *              game.studio.envCtrl.Stop();
         *          }
         *      }
         *  }
         *  else
         *  {
         *      Console.WriteLine("sys_env only supports HoneySelect Studio Neo");
         *  }
         * }
         */

        public static void sys_wav(VNNeoController game, SystemData param)
        {
            if (param.wav is Wav_s wav)
            {
                sys_wav(game, wav);
            }
        }
예제 #2
0
 public static void resetConsole(VNNeoController game)
 {
     sceneConsoleGUIClose();
     sceneConsole = null;
     sceneConsole = new SceneConsole(game);
     UI.sceneConsoleGUIStart(game);
 }
예제 #3
0
        public static void sys_bg_png(VNNeoController game, string param = "")
        {
            string pngInDefault;
            // set background png, param = png file name
            var pngName = param.Trim();

            if (pngName != "")
            {
                if (!pngName.ToLower().EndsWith(".png"))
                {
                    pngName += ".png";
                }
                // load png in game scene folder if existed
                var pngInScene = combine_path(game.get_scene_dir(), game.sceneDir, pngName);
                if (File.Exists(pngInScene))
                {
                    game.scene_set_bg_png(pngName);
                    return;
                }
                // load png in game default background folder if existed

                pngInDefault = Path.GetFullPath(combine_path(Application.dataPath, "..", "UserData", "bg", pngName));

                if (File.Exists(pngInDefault))
                {
                    game.scene_set_bg_png_orig(pngName);
                    return;
                }
            }
            // remove if param == "" or file not existed
            game.scene_set_bg_png_orig("");
        }
예제 #4
0
        public static void cam_rotate(VNNeoController game, Vector3 param)
        {
            CamData camobj = game.get_camera_num(0);
            Vector3 v3     = camobj.rotation;

            camobj.rotation = new Vector3(v3.x + param.x, v3.y + param.y, v3.z + param.z);
            game.move_camera_obj(camobj);
        }
예제 #5
0
        public static void map_option(VNNeoController game, bool param)
        {
            Map map;

            // set map option visible: param = 1/0
            map = Map.Instance;
            map.visibleOption = param;
        }
예제 #6
0
 public static void sys_skip(VNNeoController game, int param)
 {
     // skip some steps, param: steps to skip, should be > 0
     foreach (var i in Enumerable.Range(0, param))
     {
         //game.nextTexts.Remove(0); TODO
     }
 }
예제 #7
0
 public static void sys_map(VNNeoController game, int param)
 {
     // set map
     if (param != game.studio_scene.mapInfo.no)
     {
         game.studio.AddMap(param);
     }
 }
예제 #8
0
        /*
         *
         * public static void cam_zoom(VNNeoController game, (float zoom_delta, float duration) param)
         * {
         *  var camobj = game.get_camera_num(0);
         *  var dv3 = camobj.distance;
         *  // param = zoom_delta, use positive value to zoom in, and negative value for zoom out
         *  camobj.distance = new Vector3(dv3.x, dv3.y, dv3.z + param.zoom_delta);
         *  game.anim_to_camera_obj(param.duration, camobj);
         * }
         *
         * public static void cam_zoom(VNNeoController game, (float zoom_delta, float duration, string style) param)
         * {
         *  var camobj = game.get_camera_num(0);
         *  var dv3 = camobj.distance;
         *  // param = zoom_delta, use positive value to zoom in, and negative value for zoom out
         *  camobj.distance = new Vector3(dv3.x, dv3.y, dv3.z + param.zoom_delta);
         *  game.anim_to_camera_obj(param.duration, camobj, param.style);
         * }
         */

        public static void cam_zoom(VNNeoController game, CamData param)
        {
            var camobj = game.get_camera_num(0);
            var dv3    = camobj.distance;

            // param = zoom_delta, use positive value to zoom in, and negative value for zoom out
            camobj.distance = new Vector3(dv3.x, dv3.y, dv3.z + param.zoom_delta);
            game.anim_to_camera_obj(param.duration, camobj, param.style);
        }
예제 #9
0
        public static void cam_zoom(VNNeoController game, float zoom_delta)
        {
            var camobj = game.get_camera_num(0);
            var dv3    = camobj.distance;

            // param = zoom_delta, use positive value to zoom in, and negative value for zoom out
            camobj.distance = new Vector3(dv3.x, dv3.y, dv3.z + zoom_delta);
            game.move_camera_obj(camobj);
        }
예제 #10
0
 // :type game: vngameengine.VNNeoController
 public static string get_camera_name(VNNeoController game)
 {
     // return the current active camera's name, or return None if no camera actived.
     if (game.studio.ociCamera != null)
     {
         return(game.studio.ociCamera.name);
     }
     return(null);
 }
예제 #11
0
        public static void ministates_run_elem_by_name(VNNeoController game, string name)
        {
            var elem = ministates_get_elem_by_name(game, name);

            if (elem != null)
            {
                ministates_run_elem(game, elem);
            }
        }
예제 #12
0
        /*
         * public static void cam_rotate(VNNeoController game, (Vector3 vec, float duration) param)
         * {
         *  CamData camobj = game.get_camera_num(0);
         *  Vector3 v3 = camobj.rotation;
         *  // param = ((rot_delta_x, rot_delta_y, rot_delta_z), duration)
         *  camobj.rotation = new Vector3(v3.x + param.vec.x, v3.y + param.vec.y, v3.z + param.vec.z);
         *  game.anim_to_camera_obj(param.duration, camobj);
         * }
         *
         * public static void cam_rotate(VNNeoController game, (Vector3 vec, float duration, string style) param)
         * {
         *  CamData camobj = game.get_camera_num(0);
         *  Vector3 v3 = camobj.rotation;
         *  // param = ((rot_delta_x, rot_delta_y, rot_delta_z), duration)
         *  camobj.rotation = new Vector3(v3.x + param.vec.x, v3.y + param.vec.y, v3.z + param.vec.z);
         *  game.anim_to_camera_obj(param.duration, camobj, style: param.style);
         * }
         *
         * public static void cam_rotate(VNNeoController game, (Vector3 vec, float duration, string style, GameFunc onCameraEnd) param)
         * {
         *  CamData camobj = game.get_camera_num(0);
         *  Vector3 v3 = camobj.rotation;
         *  // param = ((rot_delta_x, rot_delta_y, rot_delta_z), duration)
         *  camobj.rotation = new Vector3(v3.x + param.vec.x, v3.y + param.vec.y, v3.z + param.vec.z);
         *  game.anim_to_camera_obj(param.duration, camobj, style: param.style, param.onCameraEnd);
         * }
         */

        public static void cam_rotate(VNNeoController game, CamData param)
        {
            CamData camobj = game.get_camera_num(0);
            Vector3 v3     = camobj.rotation;

            // param = ((rot_delta_x, rot_delta_y, rot_delta_z), duration)
            camobj.rotation = new Vector3(v3.x + param.rotation.x, v3.y + param.rotation.y, v3.z + param.rotation.z);
            game.anim_to_camera_obj(param.duration, camobj, style: param.style);
        }
예제 #13
0
        public static void sys_wav(VNNeoController game, Wav_s param)
        {
            string wavRevPath;
            // set outside wav sound, param = (wav file, play, repeat)
            var wavName = param.fileName.Trim();

            if (wavName != "")
            {
                if (!wavName.ToLower().EndsWith(".wav"))
                {
                    wavName += ".wav";
                }
                // load wav in game scene folder if existed
                var wavInScene = combine_path(game.get_scene_dir(), game.sceneDir, wavName);
                if (File.Exists(wavInScene))
                {
                    wavRevPath = combine_path("..", "studio", "scene", game.sceneDir, wavName);

                    if (game.studio.outsideSoundCtrl.fileName != wavRevPath)
                    {
                        game.studio.outsideSoundCtrl.Play(wavRevPath);
                    }
                }
                else
                {
                    // load wav in game default audio folder if existed
                    var wavInDefault = Path.GetFullPath(combine_path(Application.dataPath, "..", "UserData", "audio", wavName));
                    if (File.Exists(wavInDefault))
                    {
                        if (game.studio.outsideSoundCtrl.fileName != wavName)
                        {
                            game.studio.outsideSoundCtrl.Play(wavName);
                        }
                    }
                }
            }
            if (game.studio.outsideSoundCtrl.play != param.play || wavName == "")
            {
                if (param.play)
                {
                    game.studio.outsideSoundCtrl.Play();
                }
                else
                {
                    game.studio.outsideSoundCtrl.Stop();
                }
            }
            if (param.repeat)
            {
                game.studio.outsideSoundCtrl.repeat = BGMCtrl.Repeat.All;
            }
            else
            {
                game.studio.outsideSoundCtrl.repeat = BGMCtrl.Repeat.None;
            }
        }
예제 #14
0
 override public void setup(VNController controller)
 {
     //super(SkinDefault, self).setup(controller)
     this.controller             = (VNNeoController)controller;
     controller.wwidth           = this.wwidth;
     controller.wheight          = this.wheight;
     controller.windowName       = "";
     controller.windowRect       = new Rect(Screen.width / 2 - controller.wwidth / 2, Screen.height - controller.wheight - 10, controller.wwidth, controller.wheight);
     this.controller.windowStyle = this.controller.windowStyleDefault;
 }
예제 #15
0
        /* TODO
         *  public static void ministates_run_savedstate(VNNeoController game, Dictionary<string, TreeNodeObject> state)
         *  {
         *      var elDataObj = state;
         *      foreach (var key in elDataObj.Keys)
         *      {
         *          var elId = Convert.ToInt32(key[4]);
         *          var objctrl = game.studio.dicObjectCtrl[elId];
         *          var actprop = HSNeoOCI.create_from(objctrl);
         *          if (actprop is Actor chara)
         *          {
         *              chara.as_actor.import_status_diff_optimized(elDataObj[key]);
         *          }
         *          else if (actprop is HSNeoOCIProp prop)
         *          {
         *              prop.as_prop.import_status_diff_optimized(elDataObj[key]);
         *          }
         *      }
         *  }
         */

        public static TreeNodeObject ministates_get_elem_by_name(VNNeoController game, string name)
        {
            var list = ministates_get_list(game);

            foreach (var elemFull in list)
            {
                if (elemFull.name == name)
                {
                    return(elemFull.obj);
                }
            }
            return(null);
        }
예제 #16
0
 public static bool sys_wait_voice(VNNeoController game, string param)
 {
     // wait voice of actor over: param = actorID
     // return True if voice is over or actor not found
     VNActor.Actor actor = game.GetActor(param);
     if (actor is VNActor.Actor act)
     {
         return(!act.IsVoicePlay);
     }
     else
     {
         return(true);
     }
 }
예제 #17
0
        public static void sys_btn_next(VNNeoController game, string param = "Next >>")
        {
            // param = "next button text"
            //game.btnNextText = param

            /* TODO
             * game.set_buttons(new List<string> {
             *  param
             * },
             *  new List<(Action<object>, object)> {
             *  (game.NextText, null)
             * });
             */
        }
예제 #18
0
 public static bool sys_wait_anime(VNNeoController game, string param)
 {
     // wait anime of actor play once: param = actorID
     // return True if anime is over or actor not found
     VNActor.Actor actor = game.GetActor(param);
     if (actor is VNActor.Actor act)
     {
         return(act.IsAnimeOver);
     }
     else
     {
         return(true);
     }
 }
예제 #19
0
 // main class
 // ::::: Console init and window :::::
 public static void toggle_scene_console(VNNeoController game)
 {
     if (sceneConsole == null)
     {
         sceneConsole = new SceneConsole(game);
     }
     if (sceneConsole.guiOnShow)
     {
         sceneConsoleGUIClose();
     }
     else
     {
         UI.sceneConsoleGUIStart(game);
     }
 }
예제 #20
0
 public static void sys_bgm(VNNeoController game, BGM_s param)
 {
     // set bgm, param = (bgm no, play)
     if (game.studio.bgmCtrl.no != param.no)
     {
         game.studio.bgmCtrl.Play(param.no);
     }
     if (game.studio.bgmCtrl.play != param.play)
     {
         if (param.play)
         {
             game.studio.bgmCtrl.Play();
         }
         else
         {
             game.studio.bgmCtrl.Stop();
         }
     }
 }
예제 #21
0
        public static Dictionary <string, TreeNodeObject> ministates_get_elem(VNNeoController game, TreeNodeObject elem)
        {
            var res = new Dictionary <string, TreeNodeObject>
            {
            };

            foreach (var elData in elem.child)
            {
                var data  = Int32.Parse(elData.textName);
                var bytes = BitConverter.GetBytes(data);

                var elDataObj = MessagePackSerializer.Deserialize <Dictionary <string, TreeNodeObject> >(bytes);

                foreach (KeyValuePair <string, TreeNodeObject> kv in elDataObj)
                {
                    res[kv.Key] = kv.Value;
                }
            }
            return(res);
        }
예제 #22
0
        /*
         * public static void cam_zoom(VNNeoController game, (float zoom_delta, float duration, string style, GameFunc onCameraEnd) param)
         * {
         *  var camobj = game.get_camera_num(0);
         *  var dv3 = camobj.distance;
         *  // param = zoom_delta, use positive value to zoom in, and negative value for zoom out
         *  camobj.distance = new Vector3(dv3.x, dv3.y, dv3.z + param.zoom_delta);
         *  game.anim_to_camera_obj(param.duration, camobj, param.style, param.onCameraEnd);
         * }
         */

        // :type game: vngameengine.VNNeoController
        public static void set_camera_name(VNNeoController game, string name)
        {
            // set the named camera as active camera, if name is None or not found, switch to default camera
            // if active an object camera, return true. Or return false if non object camera actived.
            foreach (var ociobj in game.studio.dicObjectCtrl.Values)
            {
                if (ociobj is OCICamera cam)
                {
                    if (cam.name == name)
                    {
                        if (game.studio.ociCamera != cam)
                        {
                            game.studio.ChangeCamera(cam);
                        }
                    }
                    return;
                }
            }
            game.studio.ChangeCamera(null);
        }
예제 #23
0
        public static void sys_char_light(VNNeoController game, CharLight_s param)
        {
            //SceneInfo sc;
            // set chara light
            // param for HS, KK, AI = (color, intensity, rot_y, rot_x, shadow)
            // param for PH = (color, intensity, rot_y, rot_x, shadow, method)

            /*            if (game.isStudioNEO)
             *          {
             *              sc = game.studio_scene;
             *              sc.cameraLightColor.SetDiffuseRGB(tuple4_2_color(param[0]));
             *              sc.cameraLightIntensity = param[1];
             *              sc.cameraLightRot[0] = param[2];
             *              sc.cameraLightRot[1] = param[3];
             *              sc.cameraLightShadow = param[4];
             *              game.studio.cameraLightCtrl.Reflect();
             *          }
             *          else if (game.isPlayHomeStudio)
             *          {
             *              sc = game.studio_scene;
             *              sc.cameraLightColor = tuple4_2_color(param[0]);
             *              sc.cameraLightIntensity = param[1];
             *              sc.cameraLightRot[0] = param[2];
             *              sc.cameraLightRot[1] = param[3];
             *              sc.cameraLightShadow = param[4];
             *              sc.cameraMethod = param[5];
             *              game.studio.cameraLightCtrl.Reflect();
             *          }*/

            var cl = game.studio_scene.charaLight;

            cl.color     = param.rgbDiffuse;
            cl.intensity = param.cameraLightIntensity;
            cl.rot[0]    = param.rot_y;
            cl.rot[1]    = param.rot_x;
            cl.shadow    = param.cameraLightShadow;
            game.studio.cameraLightCtrl.Reflect();
        }
예제 #24
0
 //import_or_reload("sceneutils")
 //import_or_reload("posesavestate")
 // :::::::::: JSON Derulo ::::::::::::
 // :::::::::: For debug only ::::::::::::
 // :type game:vngameengine.VNNeoController
 public static void start(VNNeoController game)
 {
     if (game.isClassicStudio)
     {
         game.show_blocking_message_time("This only for NEO-engines, sorry");
         return;
     }
     game.gdata.hook_update_allowed = true;
     if (sceneConsole == null)
     {
         sceneConsole = new SceneConsole(game);
     }
     UI.sceneConsoleGUIStart(game);
     game.scenef_register_actorsprops();
     // if no blocks - autoload
     if (sceneConsole.block.Count == 0)
     {
         if (HSNeoOCIFolder.find_single_startswith("-scenesavestate:") != null)
         {
             sceneConsole.loadSceneData();
             sceneConsole.show_blocking_message_time_sc("Scene data was auto-loaded!");
         }
     }
 }
예제 #25
0
 public static void sys_next(VNNeoController game, SystemData param)
 {
     return;
 }
예제 #26
0
 public static void sys_map_pos(VNNeoController game, Vector3 param)
 {
     game.studio_scene.mapInfo.ca.pos = param;
 }
예제 #27
0
 public static void sys_branch_skip(VNNeoController game, SystemData param)
 {
     return;
 }
예제 #28
0
 public static void cam_goto_preset(VNNeoController game, CamData param)
 {
     // param = (set, duration)
     game.anim_to_camera_num(param.duration, param.camnum);
 }
예제 #29
0
 /*
  * public static void cam_goto_pos(VNNeoController game, (Vector3 pos, Vector3 distance, Vector3 rotate) param)
  * {
  *  game.move_camera(pos: param.pos, distance: param.distance, rotate: param.rotate);
  * }
  *
  * public static void cam_goto_pos(VNNeoController game, (Vector3 pos, Vector3 distance, Vector3 rotate, float duration, string style) param)
  * {
  *  game.anim_to_camera(param.duration, pos: param.pos, distance: param.distance, rotate: param.rotate, style: param.style);
  * }
  *
  * public static void cam_goto_pos(VNNeoController game, (Vector3 pos, Vector3 distance, Vector3 rotate, float duration) param)
  * {
  *  game.anim_to_camera(param.duration, pos: param.pos, distance: param.distance, rotate: param.rotate);
  * }
  *
  * public static void cam_goto_pos(VNNeoController game, (Vector3 pos, Vector3 distance, Vector3 rotate, float duration, string style, float fov) param)
  * {
  *  game.anim_to_camera(param.duration, pos: param.pos, distance: param.distance, rotate: param.rotate, fov: param.fov, style: param.style);
  * }
  */
 public static void cam_goto_pos(VNNeoController game, CamData param)
 {
     game.anim_to_camera(param.duration, pos: param.position, distance: param.distance, rotate: param.rotation, fov: param.fov, style: param.style);
 }
예제 #30
0
        /*
         * public static void cam_goto_preset(VNNeoController game, (int camnum, int duration, string style) param)
         * {
         *  game.anim_to_camera_num(param.duration, param.camnum, param.style);
         * }
         *
         *
         * public static void cam_goto_preset(VNNeoController game, (int camnum, int duration, string style, GameFunc onCamEnd) param)
         * {
         *  game.anim_to_camera_num(param.duration, param.camnum, param.style, param.onCamEnd);
         * }
         */

        public static void cam_goto_preset(VNNeoController game, int param)
        {
            game.to_camera(param);
        }