private static void OnPlayVoice(BaseKagManager __instance, KagTagSupport tag_data, object ___subtitle_data)
        {
            __instance.CheckAbsolutelyNecessaryTag(tag_data, "playvoice", "voice");

            var voice   = tag_data.GetTagProperty("voice").AsString();
            var subData =
                Core.ScriptTranslate.GetSubtitle(Path.GetFileNameWithoutExtension(__instance.kag.GetCurrentFileName()),
                                                 voice);

            if (subData == null)
            {
                return;
            }

            var sub = SubtitleMovieManager.GetGlobalInstance(false);

            sub.Clear();

            if (subData.Count == 1 && subData[0].startTime == 0)
            {
                subData[0].SetSubtitleData(___subtitle_data);
            }
            else
            {
                sub.autoDestroy = true;
                foreach (var subtitleData in subData)
                {
                    sub.AddData($"{subtitleData.original}<E>{subtitleData.translation}", subtitleData.startTime,
                                subtitleData.displayTime);
                }
                sub.Play();
            }
        }
Ejemplo n.º 2
0
    static bool TagFaceBlend(BaseKagManager baseKagManager, KagTagSupport tag_data)
    {
        Maid maidAndMan = GetMaidAndMan(tag_data);

        if (maidAndMan == null)
        {
            return(false);
        }
        if (ExSaveData.GetBool(maidAndMan, PluginName, "FACEBLEND_OFF", false))
        {
            // Helper.Log("FACEBLEND_OFF() -> match");
            return(false);
        }

        baseKagManager.CheckAbsolutelyNecessaryTag(tag_data, "faceblend", new string[] { "name" });

        string oldName = tag_data.GetTagProperty("name").AsString();

        if (oldName == "なし")
        {
            oldName = "無し";
        }
        string newName = FaceScriptTemplates.ProcFaceBlendName(maidAndMan, PluginName, oldName);

        // Helper.Log("TagFaceBlend({0})->({1})", oldName, newName);

        maidAndMan.FaceBlend(newName);
        return(false);
    }
    static bool TagFaceBlend(BaseKagManager baseKagManager, KagTagSupport tag_data)
    {
        Maid maidAndMan = baseKagManager.GetMaidAndMan(tag_data);

        if (maidAndMan == null)
        {
            return(false);
        }
        if (ExSaveData.GetBool(maidAndMan, PluginName, "FACEBLEND_OFF", false))
        {
            Trace.WriteLine("FACEBLEND_OFF() -> match");
            return(false);
        }

        baseKagManager.CheckAbsolutelyNecessaryTag(tag_data, "faceblend", new string[] { "name" });

        string oldName = tag_data.GetTagProperty("name").AsString();

        if (oldName == "なし")
        {
            oldName = "無し";
        }

        string newName = FaceScriptTemplates.ProcFaceBlendName(maidAndMan, PluginName, oldName);

        Trace.WriteLine(string.Format("TagFaceBlend({0})->({1})", oldName, newName));

        if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name == "ScenePhotoMode")
        {
            newName = "オリジナル";
        }

        maidAndMan.FaceBlend(newName);
        return(false);
    }
Ejemplo n.º 4
0
 static bool TagEyeToCamera(BaseKagManager baseKagManager, KagTagSupport tag_data)
 {
     Maid maidAndMan = baseKagManager.GetMaidAndMan(tag_data);
     if (maidAndMan != null && ExSaveData.GetBool(maidAndMan, PluginName, "EYETOCAMERA_OFF", false))
     {
         return false;
     }
     return baseKagManager.TagEyeToCamera(tag_data);
 }
Ejemplo n.º 5
0
    static bool TagEyeToCamera(BaseKagManager baseKagManager, KagTagSupport tag_data)
    {
        Maid maidAndMan = GetMaidAndMan(tag_data);

        if (maidAndMan != null && ExSaveData.GetBool(maidAndMan, PluginName, "EYETOCAMERA_OFF", false))
        {
            return(false);
        }
        return(baseKagManager.TagEyeToCamera(tag_data));
    }
Ejemplo n.º 6
0
 public static void TagSceneCall(KagTagSupport tag_data, ADVKagManager __instance)
 {
     if (configEntryUtill["TagSceneCall"])
     {
         MyLog.LogMessage("TagSceneCall");
         foreach (var item in __instance.tag_backup)
         {
             MyLog.LogMessage("TagSceneCall", item.Key, item.Value);
         }
     }
 }
Ejemplo n.º 7
0
        public static void YotogiKagManager_Tag(YotogiKagManager manager, KagTagSupport kagTag)
        {
            try
            {
                var list = kagTag.GetTagList();

                Logger.Log(LogLevel.Debug, $"[Yotogi] Kag Tag({list["tagname"]})");

                switch (list["tagname"])
                {
                case "talk":
                case "talkrepeat":
                    foreach (var tag in list)
                    {
                        Logger.Log(LogLevel.Debug, $"[Yotogi] Kag Tag {tag.Key}:{tag.Value}");
                    }
                    yotogiTagEventArgs = new YotogiKagHitRetEventArgs(list["voice"] + ".ogg");
                    yotogiTagEventArgs.TagCallStack.Add(kagTag);
                    break;

                case "hitret":
                    if (yotogiTagEventArgs == null)
                    {
                        return;
                    }

                    yotogiTagEventArgs.Text = manager.kag.GetText();

                    var args = new TextTranslationEventArgs(manager.kag.GetText(), TextType.Text, TextSource.Yotogi);
                    TextTranslation?.Invoke(manager, args);

                    if (args.Translation != null)
                    {
                        yotogiTagEventArgs.Translation = args.Translation;
                    }

                    yotogiTagEventArgs.TagCallStack.Add(kagTag);
                    YotogiKagHitRet?.Invoke(manager, yotogiTagEventArgs);
                    yotogiTagEventArgs = null;
                    break;
                }
            }
            catch (Exception ex)
            {
                Logger.Log(LogLevel.Error, ex);
                throw;
            }
        }
Ejemplo n.º 8
0
    static bool TagPropSet(BaseKagManager baseKagManager, KagTagSupport tag_data)
    {
        Maid maidAndMan = GetMaidAndMan(tag_data);

        if (maidAndMan != null && ExSaveData.GetBool(maidAndMan, PluginName, "PROPSET_OFF", false))
        {
            string str = tag_data.GetTagProperty("category").AsString();
            if (Array.IndexOf(PluginHelper.MpnStrings, str) >= 0)
            {
                // Helper.Log("PROPSET_OFF(category={0}) -> match", str);
                return(false);
            }
        }

        return(baseKagManager.TagPropSet(tag_data));
    }
Ejemplo n.º 9
0
    static bool TagPropSet(BaseKagManager baseKagManager, KagTagSupport tag_data)
    {
        Maid maidAndMan = baseKagManager.GetMaidAndMan(tag_data);
        if (maidAndMan != null && ExSaveData.GetBool(maidAndMan, PluginName, "PROPSET_OFF", false))
        {
            string str = tag_data.GetTagProperty("category").AsString();
            if (Array.IndexOf(PluginHelper.MpnStrings, str) >= 0)
            {
#if DEBUG
                Console.WriteLine("PROPSET_OFF(category={0}) -> match", str);
                Helper.Log("PROPSET_OFF(category={0}) -> match", str);
#endif
                return false;
            }
        }

        return baseKagManager.TagPropSet(tag_data);
    }
Ejemplo n.º 10
0
    static bool TagFace(BaseKagManager baseKagManager, KagTagSupport tag_data)
    {
        Maid maidAndMan = GetMaidAndMan(tag_data);

        if (maidAndMan == null)
        {
            return(false);
        }
        if (maidAndMan != null && ExSaveData.GetBool(maidAndMan, PluginName, "FACE_OFF", false))
        {
            // Helper.Log("FACE_OFF() -> match");
            return(false);
        }

        baseKagManager.CheckAbsolutelyNecessaryTag(tag_data, "face", new string[] { "name" });

        string oldName = tag_data.GetTagProperty("name").AsString();
        string newName = FaceScriptTemplates.ProcFaceName(maidAndMan, PluginName, oldName);
        // Helper.Log("TagFace({0})->({1})", oldName, newName);

        WaitEventList waitEventList = GetWaitEventList(baseKagManager, "face");
        int           num           = 0;

        if (tag_data.IsValid("wait"))
        {
            num = tag_data.GetTagProperty("wait").AsInteger();
        }
        if (num > 0)
        {
            waitEventList.Add(() =>
            {
                if (maidAndMan != null && maidAndMan.body0 != null && maidAndMan.body0.isLoadedBody)
                {
                    maidAndMan.FaceAnime(newName, 1f, 0);
                }
            }, num);
        }
        else
        {
            maidAndMan.FaceAnime(newName, 1f, 0);
            waitEventList.Clear();
        }
        return(false);
    }
Ejemplo n.º 11
0
 static Maid GetMaidAndMan(KagTagSupport tag_data)
 {
     MethodInfo methodInfo = GetMaidAndManMethodInfo;
     if (methodInfo == null)
     {
         // class BaseKagManager protected static Maid MaidAndMan(KagTagSupport);
         methodInfo = typeof(BaseKagManager).GetMethod(
             "GetMaidAndMan",
             BindingFlags.NonPublic | BindingFlags.Static,
             null,
             new Type[] { typeof(KagTagSupport) },
             null
         );
         GetMaidAndManMethodInfo = methodInfo;
     }
     if (methodInfo == null)
     {
         return null;
     }
     object obj = methodInfo.Invoke(null, new object[] { tag_data });
     return obj as Maid;
 }
Ejemplo n.º 12
0
    static Maid GetMaidAndMan(KagTagSupport tag_data)
    {
        MethodInfo methodInfo = GetMaidAndManMethodInfo;

        if (methodInfo == null)
        {
            // class BaseKagManager protected static Maid MaidAndMan(KagTagSupport);
            methodInfo = typeof(BaseKagManager).GetMethod(
                "GetMaidAndMan",
                BindingFlags.NonPublic | BindingFlags.Static,
                null,
                new Type[] { typeof(KagTagSupport) },
                null
                );
            GetMaidAndManMethodInfo = methodInfo;
        }
        if (methodInfo == null)
        {
            return(null);
        }
        object obj = methodInfo.Invoke(null, new object[] { tag_data });

        return(obj as Maid);
    }
Ejemplo n.º 13
0
    static bool TagFaceBlend(BaseKagManager baseKagManager, KagTagSupport tag_data)
    {
        Maid maidAndMan = GetMaidAndMan(tag_data);
        if (maidAndMan == null)
        {
            return false;
        }
        if (ExSaveData.GetBool(maidAndMan, PluginName, "FACEBLEND_OFF", false))
        {
            // Helper.Log("FACEBLEND_OFF() -> match");
            return false;
        }

        baseKagManager.CheckAbsolutelyNecessaryTag(tag_data, "faceblend", new string[] { "name" });

        string oldName = tag_data.GetTagProperty("name").AsString();
        if (oldName == "なし")
        {
            oldName = "無し";
        }
        string newName = FaceScriptTemplates.ProcFaceBlendName(maidAndMan, PluginName, oldName);
        // Helper.Log("TagFaceBlend({0})->({1})", oldName, newName);

        maidAndMan.FaceBlend(newName);
        return false;
    }
Ejemplo n.º 14
0
    static bool TagFace(BaseKagManager baseKagManager, KagTagSupport tag_data)
    {
        Maid maidAndMan = GetMaidAndMan(tag_data);
        if (maidAndMan == null)
        {
            return false;
        }
        if (maidAndMan != null && ExSaveData.GetBool(maidAndMan, PluginName, "FACE_OFF", false))
        {
            // Helper.Log("FACE_OFF() -> match");
            return false;
        }

        baseKagManager.CheckAbsolutelyNecessaryTag(tag_data, "face", new string[] { "name" });

        string oldName = tag_data.GetTagProperty("name").AsString();
        string newName = FaceScriptTemplates.ProcFaceName(maidAndMan, PluginName, oldName);
        // Helper.Log("TagFace({0})->({1})", oldName, newName);

        WaitEventList waitEventList = GetWaitEventList(baseKagManager, "face");
        int num = 0;
        if (tag_data.IsValid("wait"))
        {
            num = tag_data.GetTagProperty("wait").AsInteger();
        }
        if (num > 0)
        {
            waitEventList.Add(() =>
            {
                if (maidAndMan != null && maidAndMan.body0 != null && maidAndMan.body0.isLoadedBody)
                {
                    maidAndMan.FaceAnime(newName, 1f, 0);
                }
            }, num);
        }
        else
        {
            maidAndMan.FaceAnime(newName, 1f, 0);
            waitEventList.Clear();
        }
        return false;
    }