Example #1
0
            protected override void OnReload(GameMode currentGameMode)
            {
                Logger.Log(DebugLogLevel, "[OnReload] Fired!!");
                TriggerEnabled = false;
                ResetCharaTriggerInfo();

                PluginData ExtendedData = GetExtendedData();

                if (ExtendedData != null && ExtendedData.data.TryGetValue("CharaTriggerInfo", out var loadedCharaTriggerInfo) && loadedCharaTriggerInfo != null)
                {
                    if (MakerAPI.InsideMaker)
                    {
                        CharacterLoadFlags LoadFlags = MakerAPI.GetCharacterLoadFlags();
                        if (((bool)LoadFlags?.Clothes) || (LoadFlags == null))
                        {
                            CharaTriggerInfo = MessagePackSerializer.Deserialize <List <OutfitTriggerInfo> >((byte[])loadedCharaTriggerInfo);
                        }
                    }
                    else
                    {
                        CharaTriggerInfo = MessagePackSerializer.Deserialize <List <OutfitTriggerInfo> >((byte[])loadedCharaTriggerInfo);
                    }

                    Logger.Log(DebugLogLevel, $"[OnReload][{ChaControl.chaFile.parameter?.fullname}] CharaTriggerInfo loaded from extdata");
                }
                InitCurOutfitTriggerInfo();

                base.OnReload(currentGameMode);
            }
        private static int ReplacedParts(CharacterLoadFlags flags)
        {
            if (flags == null)
            {
                return(5);
            }
            var bools = new[] { flags.Body, flags.Clothes, flags.Face, flags.Hair, flags.Parameters };

            return(bools.Sum(b => b ? 1 : 0));
        }
Example #3
0
        protected override void OnReload(GameMode currentGameMode, bool maintainState)
        {
            Dictionary <string, object> data = GetExtendedData()?.data;

            foreach (string prefix in prefixKeys)
            {
                foreach (string boolKey in boolKeys)
                {
                    string key = prefix + boolKey;
                    data.TryGetValue(key, out bool value, boolDefaults[key]);
                    boolData[key] = value;
                }

                foreach (string floatKey in floatKeys)
                {
                    string key = prefix + floatKey;
                    data.TryGetValue(key, out float value, floatDefaults[key]);
                    floatData[key] = value;
                }
            }

            if (!MakerAPI.InsideMaker)
            {
                return;
            }

            CharacterLoadFlags flags = MakerAPI.GetCharacterLoadFlags();

            if (flags != null && !flags.Body)
            {
                return;
            }

            if (MakerAPI.GetCharacterControl() != ChaControl)
            {
                return;
            }

            HS2_BoobSettings.MakerAPI_Update(this);
        }