コード例 #1
0
            public void SetParts(MaidParts.PartsColor parts1)
            {
                if (HasMainChanged(ref parts1))
                {
                    SetMain(parts1);
                }
                if (HasShadowChanged(ref parts1))
                {
                    SetShadow(parts1);
                }

                if (c.val != parts1.m_nMainContrast)
                {
                    c.Set(parts1.m_nMainContrast);
                }

                if (shadowC.val != parts1.m_nShadowContrast)
                {
                    shadowC.Set(parts1.m_nShadowContrast);
                }

                if (shadowRate.val != parts1.m_nShadowRate)
                {
                    shadowRate.Set(parts1.m_nShadowRate);
                }

                parts = parts1;
            }
コード例 #2
0
            // Token: 0x06000352 RID: 850 RVA: 0x0001BE3C File Offset: 0x0001A03C
            public void SetMain(MaidParts.PartsColor parts1)
            {
                Color color = ColorUtil.HSL2RGB((float)parts1.m_nMainHue / 255f, (float)parts1.m_nMainChroma / 255f, (float)parts1.m_nMainBrightness / 510f, 1f);

                this.main.Set(color);
                this.mainPicker.Color = color;
            }
コード例 #3
0
            // Token: 0x06000353 RID: 851 RVA: 0x0001BE98 File Offset: 0x0001A098
            public void SetShadow(MaidParts.PartsColor parts1)
            {
                Color color = ColorUtil.HSL2RGB((float)parts1.m_nShadowHue / 255f, (float)parts1.m_nShadowChroma / 255f, (float)parts1.m_nShadowBrightness / 510f, 1f);

                this.shadow.Set(color);
                this.shadowPicker.Color = color;
            }
コード例 #4
0
            public void Set(Vector2 p, float fWidth, int iFontSize, Color32 c, ColorPickerType type, Action <Color32, MaidParts.PartsColor> f)
            {
                rect      = new Rect(p.x - fWidth, p.y, fWidth, 0f);
                fRightPos = p.x + fWidth;
                fUpPos    = p.y;

                gsLabel           = new GUIStyle("label");
                gsLabel.fontSize  = iFontSize;
                gsLabel.alignment = TextAnchor.MiddleLeft;

                gsButton           = new GUIStyle("button");
                gsButton.fontSize  = iFontSize;
                gsButton.alignment = TextAnchor.MiddleCenter;

                fMargin = iFontSize * 0.3f;

                func = f;

                r = c.r;
                g = c.g;
                b = c.b;
                a = c.a;

                partsColor = new MaidParts.PartsColor();

                this.type = type;

                texture.SetPixel(0, 0, c);
                texture.Apply();

                show = true;
            }
コード例 #5
0
            public void SetMain(MaidParts.PartsColor parts1)
            {
                var col = ColorUtil.HSL2RGB(parts1.m_nMainHue / 255f,
                                            parts1.m_nMainChroma / 255f,
                                            parts1.m_nMainBrightness / 510f, 1f);

                main.Set(col);
                mainPicker.Color = col;
            }
コード例 #6
0
            public void SetShadow(MaidParts.PartsColor parts1)
            {
                var col2 = ColorUtil.HSL2RGB(parts1.m_nShadowHue / 255f,
                                             parts1.m_nShadowChroma / 255f,
                                             parts1.m_nShadowBrightness / 510f, 1f);

                shadow.Set(col2);
                shadowPicker.Color = col2;
            }
 // Token: 0x060001D4 RID: 468 RVA: 0x00010C78 File Offset: 0x0000EE78
 public CCPartsColor(MaidParts.PartsColor pc)
 {
     this.bUse             = pc.m_bUse;
     this.mainHue          = pc.m_nMainHue;
     this.mainChroma       = pc.m_nMainChroma;
     this.mainBrightness   = pc.m_nMainBrightness;
     this.mainContrast     = pc.m_nMainContrast;
     this.shadowRate       = pc.m_nShadowRate;
     this.shadowHue        = pc.m_nShadowHue;
     this.shadowChroma     = pc.m_nShadowChroma;
     this.shadowBrightness = pc.m_nShadowBrightness;
     this.shadowContrast   = pc.m_nShadowContrast;
 }
コード例 #8
0
 public CCPartsColor(MaidParts.PartsColor pc)
 {
     bUse             = pc.m_bUse;
     mainHue          = pc.m_nMainHue;
     mainChroma       = pc.m_nMainChroma;
     mainBrightness   = pc.m_nMainBrightness;
     mainContrast     = pc.m_nMainContrast;
     shadowRate       = pc.m_nShadowRate;
     shadowHue        = pc.m_nShadowHue;
     shadowChroma     = pc.m_nShadowChroma;
     shadowBrightness = pc.m_nShadowBrightness;
     shadowContrast   = pc.m_nShadowContrast;
 }
コード例 #9
0
        public MaidParts.PartsColor toStruct()
        {
            var pc = new MaidParts.PartsColor();

            pc.m_bUse              = bUse;
            pc.m_nMainHue          = mainHue;
            pc.m_nMainChroma       = mainChroma;
            pc.m_nMainBrightness   = mainBrightness;
            pc.m_nMainContrast     = mainContrast;
            pc.m_nShadowRate       = shadowRate;
            pc.m_nShadowHue        = shadowHue;
            pc.m_nShadowChroma     = shadowChroma;
            pc.m_nShadowBrightness = shadowBrightness;
            pc.m_nShadowContrast   = shadowContrast;
            return(pc);
        }
コード例 #10
0
        public MaidParts.PartsColor ToStruct()
        {
            var pc = new MaidParts.PartsColor {
                m_bUse              = bUse,
                m_nMainHue          = mainHue,
                m_nMainChroma       = mainChroma,
                m_nMainBrightness   = mainBrightness,
                m_nMainContrast     = mainContrast,
                m_nShadowRate       = shadowRate,
                m_nShadowHue        = shadowHue,
                m_nShadowChroma     = shadowChroma,
                m_nShadowBrightness = shadowBrightness,
                m_nShadowContrast   = shadowContrast
            };

            return(pc);
        }
コード例 #11
0
            // Token: 0x0600034E RID: 846 RVA: 0x0001BB78 File Offset: 0x00019D78
            public EditParts(ref MaidParts.PartsColor pc, ColorPresetManager presetMgr)
            {
                this.mainPicker = new ColorPicker(presetMgr)
                {
                    ColorTex    = new Texture2D(32, 20, TextureFormat.RGB24, false),
                    texEdgeSize = 2
                };
                this.shadowPicker = new ColorPicker(presetMgr)
                {
                    ColorTex    = new Texture2D(32, 20, TextureFormat.RGB24, false),
                    texEdgeSize = 2
                };
                Color white = Color.white;

                this.mainPicker.SetTexColor(ref white, 0);
                this.shadowPicker.SetTexColor(ref white, 0);
                this.c.Set(pc.m_nMainContrast);
                this.shadowC.Set(pc.m_nShadowContrast);
                this.shadowRate.Set(pc.m_nShadowRate);
                this.parts = pc;
                this.SetMain(pc);
                this.SetShadow(pc);
            }
コード例 #12
0
            public EditParts(ref MaidParts.PartsColor pc, ColorPresetManager presetMgr)
            {
                mainPicker = new ColorPicker(presetMgr)
                {
                    ColorTex    = new Texture2D(32, 20, TextureFormat.RGB24, false),
                    texEdgeSize = 2
                };
                shadowPicker = new ColorPicker(presetMgr)
                {
                    ColorTex    = new Texture2D(32, 20, TextureFormat.RGB24, false),
                    texEdgeSize = 2
                };
                var frameCol = Color.white;

                mainPicker.SetTexColor(ref frameCol, 0);
                shadowPicker.SetTexColor(ref frameCol, 0);

                c.Set(pc.m_nMainContrast);
                shadowC.Set(pc.m_nShadowContrast);
                shadowRate.Set(pc.m_nShadowRate);
                parts = pc;
                SetMain(pc);
                SetShadow(pc);
            }
コード例 #13
0
 public MaidParts.PartsColor toStruct() {
     var pc = new MaidParts.PartsColor();
     pc.m_bUse = bUse;
     pc.m_nMainHue = mainHue;
     pc.m_nMainChroma = mainChroma;
     pc.m_nMainBrightness = mainBrightness ;
     pc.m_nMainContrast = mainContrast;
     pc.m_nShadowRate = shadowRate;
     pc.m_nShadowHue = shadowHue;
     pc.m_nShadowChroma = shadowChroma;
     pc.m_nShadowBrightness = shadowBrightness;
     pc.m_nShadowContrast = shadowContrast;
     return pc;
 }
コード例 #14
0
        public void Save(string fileName, string presetName, Dictionary <string, bool> dDelNodes)
        {
            Maid maid = holder.currentMaid;
            // カレントのメイドデータからプリセットデータを抽出
            var preset = new PresetData();

            preset.name = presetName;
            foreach (SlotInfo slotInfo in ACConstants.SlotNames.Values)
            {
                if (!slotInfo.enable)
                {
                    continue;
                }

                TBodySkin slot = maid.body0.GetSlot((int)slotInfo.Id);
                // マスク情報を抽出
                SlotState maskState;
                if (slot.obj == null)
                {
                    maskState = SlotState.NotLoaded;
                }
                else if (!slot.boVisible)
                {
                    maskState = SlotState.Masked;
                }
                else
                {
                    maskState = SlotState.Displayed;
                }

                Material[] materialList = holder.GetMaterials(slot);
                if (materialList.Length == 0)
                {
                    continue;
                }

                var slotItem = new CCSlot(slotInfo.Id);
                slotItem.mask = maskState;

                foreach (Material material in materialList)
                {
                    var type = ShaderType.Resolve(material.shader.name);
                    if (type == ShaderType.UNKNOWN)
                    {
                        continue;
                    }
                    var cmat = new CCMaterial(material, type);
                    slotItem.Add(cmat);
                    foreach (var texProp in type.texProps)
                    {
                        var tex2d = material.GetTexture(texProp.propId) as Texture2D;
                        if (tex2d == null || string.IsNullOrEmpty(tex2d.name))
                        {
                            continue;
                        }

                        var ti = new TextureInfo();
                        cmat.Add(ti);
                        ti.propName = texProp.keyName;
                        ti.texFile  = tex2d.name;
                        var fp = texModifier.GetFilter(maid, slotInfo.Id.ToString(), material.name, tex2d.name);
                        if (fp != null && !fp.hasNotChanged())
                        {
                            ti.filter = new TexFilter(fp);
                        }
                    }
                }
                preset.slots.Add(slotItem);
            }

            for (int i = TypeUtil.BODY_START; i <= TypeUtil.BODY_END; i++)
            {
                var      mpn = (MPN)Enum.ToObject(typeof(MPN), i);
                MaidProp mp  = maid.GetProp(mpn);
                if (mp != null)
                {
                    if (!String.IsNullOrEmpty(mp.strFileName))
                    {
                        preset.mpns.Add(new CCMPN(mpn, mp.strFileName));
                    }
                    else
                    {
                        preset.mpnvals.Add(new CCMPNValue(mpn, mp.value, mp.min, mp.max));
                    }
                }
            }

            for (int i = TypeUtil.WEAR_START; i <= TypeUtil.WEAR_END; i++)
            {
                var      mpn = (MPN)Enum.ToObject(typeof(MPN), i);
                MaidProp mp  = maid.GetProp(mpn);
                if (mp != null && !String.IsNullOrEmpty(mp.strFileName))
                {
                    preset.mpns.Add(new CCMPN(mpn, mp.strFileName));
                }
            }
//            for (int i = (int)MPN_TYPE_RANGE.FOLDER_BODY_START; i <= (int)MPN_TYPE_RANGE.FOLDER_BODY_END; i++) {
//                var mpn = (MPN)Enum.ToObject(typeof(MPN), i);
//                MaidProp mp = maid.GetProp(mpn);
//                if (mp != null) {
//                    LogUtil.Debug(mpn,":", mp.type, ", value=", mp.value, ", temp=", mp.temp_value, ", file=", mp.strFileName);
//                }
//            }

            // 無限色
            for (int j = TypeUtil.PARTSCOLOR_START; j <= TypeUtil.PARTSCOLOR_END; j++)
            {
                var pcEnum = (MaidParts.PARTS_COLOR)j;
                MaidParts.PartsColor part = maid.Parts.GetPartsColor(pcEnum);
                preset.partsColors[pcEnum.ToString()] = new CCPartsColor(part);
            }

            // 表示ノード
            preset.delNodes = new Dictionary <string, bool>(dDelNodes);

            LogUtil.Debug("create preset...", fileName);
            SavePreset(fileName, preset);
        }
コード例 #15
0
 // Token: 0x0600034D RID: 845 RVA: 0x0001B72C File Offset: 0x0001992C
 public void Show()
 {
     GUILayout.BeginVertical(new GUILayoutOption[0]);
     try
     {
         GUILayout.BeginHorizontal(new GUILayoutOption[0]);
         GUILayout.Label("パーツカラー", this.uiParams.lStyleB, new GUILayoutOption[]
         {
             this.titleWidth,
             this.titleHeight
         });
         GUILayout.EndHorizontal();
         Maid currentMaid = BaseView.holder.CurrentMaid;
         if (!(currentMaid == null))
         {
             if (currentMaid.IsBusy)
             {
                 GUILayout.Space(100f);
                 GUILayout.Label("変更中...", this.uiParams.lStyleB, new GUILayoutOption[0]);
                 GUILayout.Space(this.uiParams.colorRect.height - 105f);
             }
             else
             {
                 this.scrollViewPosition = GUILayout.BeginScrollView(this.scrollViewPosition, new GUILayoutOption[]
                 {
                     GUILayout.Width(this.uiParams.colorRect.width),
                     GUILayout.Height(this.viewHeight)
                 });
                 try
                 {
                     if (!this.editPartColors.Any <ACCPartsColorView.EditParts>())
                     {
                         for (MaidParts.PARTS_COLOR parts_COLOR = MaidParts.PARTS_COLOR.EYE_L; parts_COLOR < MaidParts.PARTS_COLOR.MATSUGE_UP; parts_COLOR++)
                         {
                             MaidParts.PartsColor partsColor = currentMaid.Parts.GetPartsColor(parts_COLOR);
                             this.editPartColors.Add(new ACCPartsColorView.EditParts(ref partsColor, this.presetMgr));
                         }
                     }
                     for (MaidParts.PARTS_COLOR parts_COLOR2 = MaidParts.PARTS_COLOR.EYE_L; parts_COLOR2 < MaidParts.PARTS_COLOR.MATSUGE_UP; parts_COLOR2++)
                     {
                         MaidParts.PartsColor partsColor2 = currentMaid.Parts.GetPartsColor(parts_COLOR2);
                         int index = (int)parts_COLOR2;
                         ACCPartsColorView.EditParts editParts = this.editPartColors[index];
                         GUILayout.BeginHorizontal(new GUILayoutOption[0]);
                         try
                         {
                             if (GUILayout.Button(parts_COLOR2.ToString(), this.uiParams.lStyleB, new GUILayoutOption[0]))
                             {
                                 editParts.expand = !editParts.expand;
                             }
                             string text = partsColor2.m_bUse ? "未使用" : "使用中";
                             GUILayout.Label(text, this.uiParams.lStyleRS, new GUILayoutOption[0]);
                         }
                         finally
                         {
                             GUILayout.EndHorizontal();
                         }
                         if (editParts.expand)
                         {
                             if (partsColor2.m_nShadowRate != editParts.shadowRate.val)
                             {
                                 editParts.shadowRate.Set(partsColor2.m_nShadowRate);
                             }
                             if (this.sliderHelper.DrawValueSlider("影率", editParts.shadowRate))
                             {
                                 partsColor2.m_nShadowRate = editParts.shadowRate.val;
                                 currentMaid.Parts.SetPartsColor(parts_COLOR2, partsColor2);
                                 editParts.SetParts(partsColor2);
                             }
                             if (editParts.HasMainChanged(ref partsColor2))
                             {
                                 editParts.SetMain(partsColor2);
                             }
                             if (editParts.HasShadowChanged(ref partsColor2))
                             {
                                 editParts.SetShadow(partsColor2);
                             }
                             if (partsColor2.m_nMainContrast != editParts.c.val)
                             {
                                 editParts.c.Set(partsColor2.m_nMainContrast);
                             }
                             if (this.sliderHelper.DrawValueSlider("主C", editParts.c))
                             {
                                 partsColor2.m_nMainContrast = editParts.c.val;
                                 currentMaid.Parts.SetPartsColor(parts_COLOR2, partsColor2);
                                 editParts.SetParts(partsColor2);
                             }
                             if (partsColor2.m_nShadowContrast != editParts.shadowC.val)
                             {
                                 editParts.shadowC.Set(partsColor2.m_nShadowContrast);
                             }
                             if (this.sliderHelper.DrawValueSlider("影C", editParts.shadowC))
                             {
                                 partsColor2.m_nShadowContrast = editParts.shadowC.val;
                                 currentMaid.Parts.SetPartsColor(parts_COLOR2, partsColor2);
                                 editParts.SetParts(partsColor2);
                             }
                             if (this.sliderHelper.DrawColorSlider("主色", ref editParts.main, SliderHelper.DEFAULT_PRESET, ref editParts.mainExpand, editParts.mainPicker))
                             {
                                 editParts.ReflectMain();
                                 currentMaid.Parts.SetPartsColor(parts_COLOR2, editParts.parts);
                             }
                             if (this.sliderHelper.DrawColorSlider("影色", ref editParts.shadow, SliderHelper.DEFAULT_PRESET, ref editParts.shadowExpand, editParts.shadowPicker))
                             {
                                 editParts.ReflectShadow();
                                 currentMaid.Parts.SetPartsColor(parts_COLOR2, editParts.parts);
                             }
                         }
                     }
                 }
                 finally
                 {
                     GUI.EndScrollView();
                 }
             }
         }
     }
     finally
     {
         GUILayout.EndVertical();
     }
 }
コード例 #16
0
 // Token: 0x06000355 RID: 853 RVA: 0x0001BF32 File Offset: 0x0001A132
 public bool HasShadowChanged(ref MaidParts.PartsColor parts1)
 {
     return(this.parts.m_nShadowBrightness != parts1.m_nShadowBrightness || this.parts.m_nShadowChroma != parts1.m_nShadowChroma || this.parts.m_nShadowHue != parts1.m_nShadowHue);
 }
コード例 #17
0
 // Token: 0x06000354 RID: 852 RVA: 0x0001BEF2 File Offset: 0x0001A0F2
 public bool HasMainChanged(ref MaidParts.PartsColor parts1)
 {
     return(this.parts.m_nMainBrightness != parts1.m_nMainBrightness || this.parts.m_nMainChroma != parts1.m_nMainChroma || this.parts.m_nMainHue != parts1.m_nMainHue);
 }
コード例 #18
0
        // Token: 0x06000066 RID: 102 RVA: 0x00007270 File Offset: 0x00005470
        public void Save(string fileName, string presetName, Dictionary <string, bool> dDelNodes)
        {
            Maid       currentMaid = this._holder.CurrentMaid;
            PresetData presetData  = new PresetData
            {
                name = presetName
            };

            foreach (SlotInfo slotInfo in ACConstants.SlotNames.Values)
            {
                if (slotInfo.enable)
                {
                    TBodySkin slot = currentMaid.body0.GetSlot((int)slotInfo.Id);
                    SlotState mask;
                    if (slot.obj == null)
                    {
                        mask = SlotState.NotLoaded;
                    }
                    else if (!slot.boVisible)
                    {
                        mask = SlotState.Masked;
                    }
                    else
                    {
                        mask = SlotState.Displayed;
                    }
                    Material[] materials = this._holder.GetMaterials(slot);
                    if (materials.Length != 0)
                    {
                        CCSlot ccslot = new CCSlot(slotInfo.Id)
                        {
                            mask = mask
                        };
                        foreach (Material material in materials)
                        {
                            ShaderType shaderType = ShaderType.Resolve(material.shader.name);
                            if (shaderType != ShaderType.UNKNOWN)
                            {
                                CCMaterial ccmaterial = new CCMaterial(material, shaderType);
                                ccslot.Add(ccmaterial);
                                foreach (ShaderPropTex shaderPropTex in shaderType.texProps)
                                {
                                    Texture2D texture2D = material.GetTexture(shaderPropTex.propId) as Texture2D;
                                    if (!(texture2D == null) && !string.IsNullOrEmpty(texture2D.name))
                                    {
                                        TextureInfo textureInfo = new TextureInfo();
                                        ccmaterial.Add(textureInfo);
                                        textureInfo.propName = shaderPropTex.keyName;
                                        textureInfo.texFile  = texture2D.name;
                                        TextureModifier.FilterParam filter = this._texModifier.GetFilter(currentMaid, slotInfo.Id.ToString(), material.name, texture2D.name);
                                        if (filter != null && !filter.HasNotChanged())
                                        {
                                            textureInfo.filter = new TexFilter(filter);
                                        }
                                        Vector2 textureOffset = material.GetTextureOffset(shaderPropTex.propId);
                                        if (Math.Abs(textureOffset.x) > 0.001f)
                                        {
                                            textureInfo.offsetX = new float?(textureOffset.x);
                                        }
                                        if (Math.Abs(textureOffset.y) > 0.001f)
                                        {
                                            textureInfo.offsetY = new float?(textureOffset.y);
                                        }
                                        Vector2 textureScale = material.GetTextureScale(shaderPropTex.propId);
                                        if (Math.Abs(textureScale.x) > 0.001f)
                                        {
                                            textureInfo.scaleX = new float?(textureScale.x);
                                        }
                                        if (Math.Abs(textureScale.y) > 0.001f)
                                        {
                                            textureInfo.scaleY = new float?(textureScale.y);
                                        }
                                    }
                                }
                            }
                        }
                        presetData.slots.Add(ccslot);
                    }
                }
            }
            for (int k = TypeUtil.BODY_START; k <= TypeUtil.BODY_END; k++)
            {
                MPN      mpn  = (MPN)Enum.ToObject(typeof(MPN), k);
                MaidProp prop = currentMaid.GetProp(mpn);
                if (prop != null)
                {
                    if (prop.type == 1 || prop.type == 2)
                    {
                        presetData.mpnvals.Add(new CCMPNValue(mpn, prop.value, prop.min, prop.max));
                    }
                    else if (prop.type == 3 && prop.nFileNameRID != 0)
                    {
                        presetData.mpns.Add(new CCMPN(mpn, prop.strFileName));
                    }
                }
            }
            for (int l = TypeUtil.WEAR_START; l <= TypeUtil.WEAR_END; l++)
            {
                MPN      mpn2  = (MPN)Enum.ToObject(typeof(MPN), l);
                MaidProp prop2 = currentMaid.GetProp(mpn2);
                if (prop2 != null && prop2.nFileNameRID != 0)
                {
                    presetData.mpns.Add(new CCMPN(mpn2, prop2.strFileName));
                }
            }
            for (MaidParts.PARTS_COLOR parts_COLOR = TypeUtil.PARTS_COLOR_START; parts_COLOR <= TypeUtil.PARTS_COLOR_END; parts_COLOR++)
            {
                MaidParts.PartsColor partsColor = currentMaid.Parts.GetPartsColor(parts_COLOR);
                presetData.partsColors[parts_COLOR.ToString()] = new CCPartsColor(partsColor);
            }
            presetData.delNodes = new Dictionary <string, bool>(dDelNodes);
            LogUtil.Debug(new object[]
            {
                "create preset...",
                fileName
            });
            this.SavePreset(fileName, presetData);
        }
コード例 #19
0
 public void SetColor(MaidParts.PARTS_COLOR partsColor, MaidParts.PartsColor val)
 {
     maidPartsColors[partsColor] = val;
 }
コード例 #20
0
            public override bool Equals(object obj)
            {
                if (obj == null)
                {
                    return(false);
                }

                var s = obj as PropSnapShot;

                if (s == null)
                {
                    return(false);
                }

                if (maidProps.Count != s.maidProps.Count)
                {
                    return(false);
                }

                foreach (KeyValuePair <MPN, MaidProp> kv in maidProps)
                {
                    MPN      mpn      = kv.Key;
                    MaidProp maidProp = kv.Value;
                    MaidProp p;
                    if (!s.maidProps.TryGetValue(mpn, out p))
                    {
                        return(false);
                    }
                    if (maidProp.strFileName != p.strFileName ||
                        maidProp.strTempFileName != p.strTempFileName ||
                        maidProp.idx != p.idx ||
                        maidProp.name != p.name ||
                        maidProp.type != p.type ||
                        maidProp.value_Default != p.value_Default ||
                        maidProp.value != p.value ||
                        maidProp.temp_value != p.temp_value ||
                        maidProp.value_LinkMAX != p.value_LinkMAX ||
                        maidProp.nFileNameRID != p.nFileNameRID ||
                        maidProp.nTempFileNameRID != p.nTempFileNameRID ||
                        maidProp.max != p.max ||
                        maidProp.min != p.min
                        //  maidProp.boDut              != p.boDut              || // 内部処理用なので無視すること
                        //  maidProp.boTempDut          != p.boTempDut          ||
                        )
                    {
                        return(false);
                    }
                }

                for (int i = 0; i < (int)MaidParts.PARTS_COLOR.MAX; i++)
                {
                    MaidParts.PARTS_COLOR col = (MaidParts.PARTS_COLOR)i;
                    MaidParts.PartsColor  lhs = maidPartsColors[col];
                    MaidParts.PartsColor  rhs = s.maidPartsColors[col];
                    if (
                        lhs.m_bUse != rhs.m_bUse ||
                        lhs.m_nMainHue != rhs.m_nMainHue ||
                        lhs.m_nMainChroma != rhs.m_nMainChroma ||
                        lhs.m_nMainBrightness != rhs.m_nMainBrightness ||
                        lhs.m_nMainContrast != rhs.m_nMainContrast ||
                        lhs.m_nShadowRate != rhs.m_nShadowRate ||
                        lhs.m_nShadowHue != rhs.m_nShadowHue ||
                        lhs.m_nShadowChroma != rhs.m_nShadowChroma ||
                        lhs.m_nShadowBrightness != rhs.m_nShadowBrightness ||
                        lhs.m_nShadowContrast != rhs.m_nShadowContrast
                        )
                    {
                        return(false);
                    }
                }

                return(true);
            }