Ejemplo n.º 1
0
        private bool CanShow()
        {
            if (_chaCtrl == null)
            {
                return(false);
            }
            if (!_chaCtrl.visibleAll)
            {
                return(false);
            }

            if (MakerAPI.InsideMaker && !MakerAPI.IsInterfaceVisible())
            {
                return(false);
            }

            if (SceneApi.GetAddSceneName() == "Config")
            {
                return(false);
            }
            if (SceneApi.GetIsOverlap())
            {
                return(false);
            }
            if (SceneApi.GetIsNowLoadingFade())
            {
                return(false);
            }

            return(true);
        }
        protected override void OnReload(GameMode currentGameMode, bool maintainState)
        {
            var a = GetExtendedData();
            var b = GetBodyExtData();
            var c = GetParameterExtData();
            var d = GetFaceExtData();

            KoikatuAPI.Assert((a == null && b == null && c == null && d == null) || (a != null && b != null && c != null && d != null), "ext data not lining up");
            if (a != null)
            {
                KoikatuAPI.Assert(b != null, "b != null");
                KoikatuAPI.Assert(c != null, "c != null");
                KoikatuAPI.Assert(d != null, "d != null");
                var newId = a.data["id"] as string;
                KoikatuAPI.Assert(newId == b?.data["id"] as string, "a.data[\"id\"] == b.data[\"id\"]");
                KoikatuAPI.Assert(newId == c?.data["id"] as string, "a.data[\"id\"] == c.data[\"id\"]");
                KoikatuAPI.Assert(newId == d?.data["id"] as string, "a.data[\"id\"] == d.data[\"id\"]");
                Console.WriteLine($"ID get from ext data - {newId}  |  Old ID - {id}  |  Chara - {ChaControl.name}");
                id = newId;
            }
            if (id == null)
            {
                id = $"{No++} - {SceneApi.GetLoadSceneName()} - {SceneApi.GetAddSceneName()}";
                Console.WriteLine($"New ID assigned - {id}  |  Chara - {ChaControl.name} | {ChaFileControl.parameter.fullname}");
                SetParameterExtData(new PluginData()
                {
                    data = new Dictionary <string, object> {
                        { "id", id }
                    }
                });
                SetBodyExtData(new PluginData()
                {
                    data = new Dictionary <string, object> {
                        { "id", id }
                    }
                });
                SetFaceExtData(new PluginData()
                {
                    data = new Dictionary <string, object> {
                        { "id", id }
                    }
                });
                SetExtendedData(new PluginData()
                {
                    data = new Dictionary <string, object> {
                        { "id", id }
                    }
                });
            }

            KoikatuAPI.Logger.LogWarning($"event:OnReload  chara:{ChaControl.name}  currentGameMode:{currentGameMode}  maintainState:{maintainState}");
        }