/// <summary> /// Read material from library. /// </summary> /// <param name="reader"></param> public void ReadFromFile(BinaryReader reader) { materialHash = reader.ReadUInt64(); materialName = StringHelpers.ReadString32(reader); ufo1 = reader.ReadByte(); ufo2 = reader.ReadByte(); flags = (MaterialFlags)reader.ReadInt32(); ufo4 = reader.ReadByte(); ufo5 = reader.ReadInt32(); ufo6 = reader.ReadInt32(); shaderID = reader.ReadUInt64(); shaderHash = reader.ReadUInt32(); int spCount = reader.ReadInt32(); parameters = new Dictionary <string, ShaderParameter>(); for (int i = 0; i != spCount; i++) { var param = new ShaderParameter(reader); parameters.Add(param.ID, param); } int spsCount = reader.ReadInt32(); samplers = new Dictionary <string, ShaderParameterSampler>(); for (int i = 0; i != spsCount; i++) { var shader = new ShaderParameterSampler(reader); samplers.Add(shader.ID, shader); } }
/// <summary> /// Construct material based on basic material. /// </summary> public Material() { materialName = "NEW_MATERIAL"; materialHash = 1; shaderHash = 3388704532; shaderID = 4894707398632176459; ufo1 = 128; ufo2 = 0; flags = (MaterialFlags)31461376; ufo4 = 0; ufo5 = 0; ufo6 = 0; parameters = new Dictionary <string, ShaderParameter>(); samplers = new Dictionary <string, ShaderParameterSampler>(); var spp = new ShaderParameterSampler(); samplers.Add(spp.ID, spp); }