public static void Write(BinaryWriter writer, ACCMaterialEx mate) { writer.Write(FileConst.HEAD_MATE); writer.Write(1000); // version writer.Write(mate.name1); writer.Write(mate.name2); var shaderName1 = mate.type.name; writer.Write(shaderName1); var shaderName2 = ShaderType.GetMateName(shaderName1); writer.Write(shaderName2); // tex foreach (var texProp in mate.type.texProps) { if (texProp.key == PropKey._RenderTex) { writer.Write("null"); } else { writer.Write("tex2d"); var tex = mate.texDic[texProp.key]; writer.Write(tex.editname); writer.Write(tex.txtpath); OUT_UTIL.Write(writer, tex.texOffset); OUT_UTIL.Write(writer, tex.texScale); } } // col for (var i = 0; i < mate.editColors.Length; i++) { var colProp = mate.type.colProps[i]; var eColor = mate.editColors[i]; // PropType.col writer.Write(colProp.type.ToString()); writer.Write(colProp.keyName); OUT_UTIL.Write(writer, eColor.val); } // f for (var i = 0; i < mate.editVals.Length; i++) { var prop = mate.type.fProps[i]; var eVal = mate.editVals[i]; // PropType.f writer.Write(prop.type.ToString()); writer.Write(prop.keyName); writer.Write(eVal.val); } }
// Token: 0x060001A2 RID: 418 RVA: 0x0000F858 File Offset: 0x0000DA58 public string ToText(ACCMaterial target) { Material material = target.material; StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("1000\r\n"); stringBuilder.Append(target.name.ToLower()).Append("\r\n"); stringBuilder.Append(target.name).Append("\r\n"); string name = target.type.name; stringBuilder.Append(name).Append("\r\n"); stringBuilder.Append(ShaderType.GetMateName(name)).Append("\r\n\r\n"); ShaderType type = target.type; foreach (ShaderPropTex shaderPropTex in type.texProps) { stringBuilder.Append("tex\r\n"); string keyName = shaderPropTex.keyName; stringBuilder.Append('\t').Append(keyName).Append("\r\n"); Texture texture = material.GetTexture(shaderPropTex.propId); if (texture == null) { stringBuilder.Append("\tnull\r\n"); } else { stringBuilder.Append("\ttex2d\r\n"); stringBuilder.Append('\t').Append(texture.name).Append("\r\n"); stringBuilder.Append('\t').Append(MateHandler.settings.txtPrefixTex).Append(texture.name).Append(".png\r\n"); Vector2 textureOffset = material.GetTextureOffset(keyName); Vector2 textureScale = material.GetTextureScale(keyName); stringBuilder.Append("\t").Append(textureOffset.x).Append(' ').Append(textureOffset.y).Append(' ').Append(textureScale.x).Append(' ').Append(textureScale.y).Append("\r\n"); } } foreach (ShaderPropColor shaderPropColor in type.colProps) { stringBuilder.Append("col\r\n"); string keyName2 = shaderPropColor.keyName; stringBuilder.Append('\t').Append(keyName2).Append("\r\n"); Color color = material.GetColor(keyName2); stringBuilder.Append('\t').Append(color.r).Append(' ').Append(color.g).Append(' ').Append(color.b).Append(' ').Append(color.a).Append("\r\n"); } foreach (ShaderPropFloat shaderPropFloat in type.fProps) { stringBuilder.Append("f\r\n"); string keyName3 = shaderPropFloat.keyName; stringBuilder.Append('\t').Append(keyName3).Append("\r\n"); float @float = material.GetFloat(keyName3); stringBuilder.Append('\t').Append(@float).Append("\r\n"); } return(stringBuilder.ToString()); }
// Token: 0x060000E3 RID: 227 RVA: 0x0000B2C4 File Offset: 0x000094C4 public static void Write(BinaryWriter writer, ACCMaterialEx mate) { writer.Write(FileConst.HEAD_MATE); writer.Write(1000); writer.Write(mate.name1); writer.Write(mate.name2); string name = mate.type.name; writer.Write(name); string mateName = ShaderType.GetMateName(name); writer.Write(mateName); foreach (ShaderPropTex shaderPropTex in mate.type.texProps) { if (shaderPropTex.key == PropKey._RenderTex) { writer.Write("null"); } else { writer.Write("tex2d"); ACCTextureEx acctextureEx = mate.texDic[shaderPropTex.key]; writer.Write(acctextureEx.editname); writer.Write(acctextureEx.txtpath); ACCMaterialEx.OUT_UTIL.Write(writer, acctextureEx.texOffset); ACCMaterialEx.OUT_UTIL.Write(writer, acctextureEx.texScale); } } for (int j = 0; j < mate.editColors.Length; j++) { ShaderPropColor shaderPropColor = mate.type.colProps[j]; EditColor editColor = mate.editColors[j]; writer.Write(shaderPropColor.type.ToString()); writer.Write(shaderPropColor.keyName); ACCMaterialEx.OUT_UTIL.Write(writer, editColor.val); } for (int k = 0; k < mate.editVals.Length; k++) { ShaderPropFloat shaderPropFloat = mate.type.fProps[k]; EditValue editValue = mate.editVals[k]; writer.Write(shaderPropFloat.type.ToString()); writer.Write(shaderPropFloat.keyName); writer.Write(editValue.val); } }
public string ToText(ACCMaterial target) { var mate = target.material; var buff = new StringBuilder(); // ゲーム中にバージョン、name1を保持していないので制限事項 // mateファイルの特定も少し手間が掛かるため、まずは暫定処置 buff.Append("1000\r\n"); buff.Append(target.name.ToLower()).Append("\r\n"); buff.Append(target.name).Append("\r\n"); var shaderName = target.type.name; buff.Append(shaderName).Append("\r\n"); buff.Append(ShaderType.GetMateName(shaderName)).Append("\r\n\r\n"); var type = target.type; // tex foreach (var texProp in type.texProps) { buff.Append("tex\r\n"); var propName = texProp.keyName; buff.Append('\t').Append(propName).Append("\r\n"); var tex = mate.GetTexture(texProp.propId); if (tex == null) { buff.Append("\tnull\r\n"); } else { buff.Append("\ttex2d\r\n"); buff.Append('\t').Append(tex.name).Append("\r\n"); // tex name // なんちゃってテキストパス (これもゲーム中にデータが残らないため) buff.Append('\t').Append(settings.txtPrefixTex).Append(tex.name).Append(".png\r\n"); // tex path // var offset = mate.GetTextureOffset(propName); var scale = mate.GetTextureScale(propName); buff.Append("\t").Append(offset.x).Append(' ').Append(offset.y) .Append(' ').Append(scale.x).Append(' ').Append(scale.y).Append("\r\n"); } } // col foreach (var colProp in type.colProps) { buff.Append("col\r\n"); var propName = colProp.keyName; buff.Append('\t').Append(propName).Append("\r\n"); var color = mate.GetColor(propName); buff.Append('\t').Append(color.r).Append(' ') .Append(color.g).Append(' ') .Append(color.b).Append(' ') .Append(color.a).Append("\r\n"); } // f foreach (var prop in type.fProps) { buff.Append("f\r\n"); var propName = prop.keyName; buff.Append('\t').Append(propName).Append("\r\n"); var fVal = mate.GetFloat(propName); buff.Append('\t').Append(fVal).Append("\r\n"); } return(buff.ToString()); }