static bool Prefix(ref ConfigNode node, ref Shader ___shader) { var orig = node; node = orig.CreateCopy(); node.RemoveValues("shader"); var shaders = orig.GetValues("shader"); if (shaders.Length > 0) { ___shader = Shabby.FindShader(shaders[shaders.Length - 1]); } return(true); }
public override IEnumerator Load(UrlDir.UrlFile urlFile, FileInfo file) { Debug.Log($"[Shabby] `{urlFile.fullPath}'"); var bundle = AssetBundle.LoadFromFile(urlFile.fullPath); if (!bundle) { Debug.Log($"[Shabby] could not load {urlFile.fullPath}"); } else { Shader[] shaders = bundle.LoadAllAssets <Shader>(); foreach (Shader shader in shaders) { Debug.Log($"[Shabby] adding {shader.name}"); Shabby.AddShader(shader); } } yield break; }
static bool ReadMaterial4(BinaryReader br, ref Material __result) { string materialName = br.ReadString(); string shaderName = br.ReadString(); int numProperties = br.ReadInt32(); Shader shader = Shabby.FindShader(shaderName); var material = new Material(shader); material.name = materialName; for (int i = 0; i < numProperties; i++) { string propertyName = br.ReadString(); int propertyType = br.ReadInt32(); switch (propertyType) { case 0: // Color material.SetColor(propertyName, ReadColor(br)); break; case 1: // Vector material.SetVector(propertyName, ReadVector(br)); break; case 2: // Float case 3: // Range material.SetFloat(propertyName, br.ReadSingle()); break; case 4: // TexEnv Shabby.ReadMaterialTexture(br, material, propertyName); break; } } __result = material; return(false); }