/// <summary> /// キャラクタチップ部品のノードを解析し、設定値を得る。 /// </summary> /// <param name="node">キャラクタチップ部品ノード</param> /// <param name="parts">Partsオブジェクト</param> private static void LoadCharacterPartsNode(XmlNode node, Parts parts) { foreach (XmlAttribute attr in node.Attributes) { // 全ての子要素に対して読み出す。 try { switch (attr.Name) { case CharacterFileDefs.PartsAttrMaterialName: parts.MaterialName = attr.Value; break; case CharacterFileDefs.PartsAttrOffsetX: parts.OffsetX = int.Parse(attr.Value); break; case CharacterFileDefs.PartsAttrOffsetY: parts.OffsetY = int.Parse(attr.Value); break; case CharacterFileDefs.PartsAttrColor1: parts.Color1 = ColorSetting.Parse(attr.Value); break; } } catch (Exception) { // ここの解析例外は無視する。 } } }
/// <summary> /// settingで指定されるオブジェクトと一致しているかどうかを判定して返す。 /// </summary> /// <param name="setting">設定</param> /// <returns>一致している場合にはtrue, それ以外はfalse</returns> public bool Equals(ColorSetting setting) { return((hue == setting.hue) && (saturation == setting.saturation) && (value == setting.value) && (opacity == setting.opacity)); }
/// <summary> /// 新しいインスタンスを構築する。 /// </summary> /// <param name="partsType">パーツ種類</param> public Parts(PartsType partsType) { PartsType = partsType; materialName = ""; offsetX = 0; offsetY = 0; color1 = new ColorSetting(); color1.PropertyChanged += OnColor1PropertyChanged; color2 = new ColorSetting(); color2.PropertyChanged += OnColor2PropertyChanged; }
/// <summary> /// パラメータを指定されたモデルにコピーする /// </summary> /// <param name="setting">パラメータ</param> public void CopyTo(ColorSetting setting) { if ((setting.hue == hue) && (setting.saturation == saturation) && (setting.value == value) && (setting.opacity == opacity)) { // 同じデータ return; } setting.Hue = Hue; setting.Saturation = Saturation; setting.Value = Value; setting.Opacity = Opacity; }
/// <summary> /// textをパースしてColorSettingオブジェクトを構築する。 /// </summary> /// <param name="text">テキスト</param> /// <param name="setting">ColorSettingオブジェクト。パース失敗時はnull</param> /// <returns>パース成功時はtrue、それ以外はfalse</returns> public static bool TryParse(string text, out ColorSetting setting) { string[] tokens = text.Split(','); if ((tokens.Length == 4) && int.TryParse(tokens[0], out int h) && int.TryParse(tokens[1], out int s) && int.TryParse(tokens[2], out int v) && int.TryParse(tokens[3], out int o)) { setting = new ColorSetting() { Hue = h, Saturation = s, Value = v, Opacity = o }; return(true); } else { setting = null; return(false); } }