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; }
// 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; }
// 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; }
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; }
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; }
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; }
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; }
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); }
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); }
// 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); }
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); }
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; }
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); }
// 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(); } }
// 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); }
// 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); }
// 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); }
public void SetColor(MaidParts.PARTS_COLOR partsColor, MaidParts.PartsColor val) { maidPartsColors[partsColor] = val; }
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); }