public MqChunk ToChunk() { baseChunk = baseChunk ?? new MqChunk(); baseChunk.Name = Surround(this.Name); baseChunk.Attribute("shader").SetArguments(((int)this.Shader).ToString()); baseChunk.Attribute("vcol").SetArguments(this.VertexColor ? "1" : "0"); baseChunk.Attribute("col").SetArguments(this.Color.Select(_ => _.ToString("0.000"))); baseChunk.Attribute("dif").SetArguments(this.Diffusion.ToString("0.000")); baseChunk.Attribute("amb").SetArguments(this.Ambient.ToString("0.000")); baseChunk.Attribute("emi").SetArguments(this.Emmisive.ToString("0.000")); baseChunk.Attribute("spc").SetArguments(this.Specular.ToString("0.000")); baseChunk.Attribute("power").SetArguments(this.Power.ToString("0.000")); if (string.IsNullOrEmpty(this.Texture)) { baseChunk.RemoveAttributes("tex"); } else { baseChunk.Attribute("tex").SetArguments(Surround(this.Texture)); } if (string.IsNullOrEmpty(this.AlphaMap)) { baseChunk.RemoveAttributes("aplane"); } else { baseChunk.Attribute("aplane").SetArguments(Surround(this.AlphaMap)); } if (string.IsNullOrEmpty(this.Bump)) { baseChunk.RemoveAttributes("bump"); } else { baseChunk.Attribute("bump").SetArguments(Surround(this.Bump)); } if (this.ProjectionType == MqProjectionType.UV) { baseChunk.RemoveAttributes("proj_type"); } else { baseChunk.Attribute("proj_type").SetArguments(((int)this.ProjectionType).ToString()); } if (this.ProjectionPosition.All(_ => _ == 0)) { baseChunk.RemoveAttributes("proj_pos"); } else { baseChunk.Attribute("proj_pos").SetArguments(this.ProjectionPosition.Select(_ => _.ToString("0.000"))); } if (this.ProjectionScale.All(_ => _ == 1)) { baseChunk.RemoveAttributes("proj_scale"); } else { baseChunk.Attribute("proj_scale").SetArguments(this.ProjectionScale.Select(_ => _.ToString("0.000"))); } if (this.ProjectionAngle.All(_ => _ == 0)) { baseChunk.RemoveAttributes("proj_angle"); } else { baseChunk.Attribute("proj_angle").SetArguments(this.ProjectionAngle.Select(_ => _.ToString("0.000"))); } return(baseChunk); }
public MqChunk ToChunk() { baseChunk = baseChunk ?? new MqChunk(); baseChunk.Name = Surround(this.Name); baseChunk.Attribute("shader").SetArguments(((int)this.Shader).ToString()); baseChunk.Attribute("vcol").SetArguments(this.VertexColor ? "1" : "0"); baseChunk.Attribute("col").SetArguments(this.Color.Select(_ => _.ToString("0.000"))); baseChunk.Attribute("dif").SetArguments(this.Diffusion.ToString("0.000")); baseChunk.Attribute("amb").SetArguments(this.Ambient.ToString("0.000")); baseChunk.Attribute("emi").SetArguments(this.Emmisive.ToString("0.000")); baseChunk.Attribute("spc").SetArguments(this.Specular.ToString("0.000")); baseChunk.Attribute("power").SetArguments(this.Power.ToString("0.000")); if (string.IsNullOrEmpty(this.Texture)) baseChunk.RemoveAttributes("tex"); else baseChunk.Attribute("tex").SetArguments(Surround(this.Texture)); if (string.IsNullOrEmpty(this.AlphaMap)) baseChunk.RemoveAttributes("aplane"); else baseChunk.Attribute("aplane").SetArguments(Surround(this.AlphaMap)); if (string.IsNullOrEmpty(this.Bump)) baseChunk.RemoveAttributes("bump"); else baseChunk.Attribute("bump").SetArguments(Surround(this.Bump)); if (this.ProjectionType == MqProjectionType.UV) baseChunk.RemoveAttributes("proj_type"); else baseChunk.Attribute("proj_type").SetArguments(((int)this.ProjectionType).ToString()); if (this.ProjectionPosition.All(_ => _ == 0)) baseChunk.RemoveAttributes("proj_pos"); else baseChunk.Attribute("proj_pos").SetArguments(this.ProjectionPosition.Select(_ => _.ToString("0.000"))); if (this.ProjectionScale.All(_ => _ == 1)) baseChunk.RemoveAttributes("proj_scale"); else baseChunk.Attribute("proj_scale").SetArguments(this.ProjectionScale.Select(_ => _.ToString("0.000"))); if (this.ProjectionAngle.All(_ => _ == 0)) baseChunk.RemoveAttributes("proj_angle"); else baseChunk.Attribute("proj_angle").SetArguments(this.ProjectionAngle.Select(_ => _.ToString("0.000"))); return baseChunk; }