Esempio n. 1
0
 public bool DeleteMaterial(RMaterial material)
 {
     if (_instance._MaterialList.Contains(material.name))
     {
         _instance._MaterialList.Remove(material.name);
         material = null;
         return true;
     }
     else
     {
         return false;
     }
     return false;
 }
Esempio n. 2
0
 public void SaveMaterial(RMaterial material, string filename)
 {
     StreamWriter writer = new System.IO.StreamWriter(REngine.Instance._game.Content.RootDirectory + filename);
     BinaryFormatter formatter = new BinaryFormatter();
     formatter.Serialize(writer.BaseStream, material);
     writer.Close();
 }
Esempio n. 3
0
 public RMaterial CreateMaterial(string Name)
 {
     if (!_instance._MaterialList.ContainsKey(Name))
     {
         RMaterial material = new RMaterial();
         material.name = Name;
         material.ambColor = new Color(0, 0, 0);
         material.diffColor = Color.White;
         material.specColor = Color.White;
         material.specPower = 100;
         material.ID = _instance._MaterialList.Count;
         material.shader = new RShader();
         material.shader.effect = new BasicEffect(REngine.Instance._graphics.GraphicsDevice);
         _instance._MaterialList.Add(Name, material);
         return material;
     }
     else
     {
         REngine.Instance.AddToLog("RMaterialFactory tried to create "+Name+" Material when its name was already taken!");
         return null;
     }
 }
Esempio n. 4
0
 public RMaterial Clone()
 {
     int num = 1;
     for(int i=0; i<RMaterialFactory.Instance._MaterialList.Count; i++)
         if (RMaterialFactory.Instance._MaterialList.ContainsKey(this.name+num))
         {
             num++;
         }
     RMaterial mat = new RMaterial();
     RShader sh = new RShader();
     sh.effect = shader.effect.Clone();
     mat.name = this.name+num;
     mat.shader = sh;
     mat.ambColor = ambColor;
     mat.diffColor = diffColor;
     mat.ID = RMaterialFactory._instance._MaterialList.Count + 1;
     mat.specColor = specColor;
     mat.specPower = specPower;
     RMaterialFactory._instance._MaterialList.Add(mat.name, mat);
     return mat;
 }
Esempio n. 5
0
 public void SetMaterial(RMaterial material, string MeshName)
 {
     int mid = GetMeshIDFromName(MeshName);
     SetMaterial(material, mid);
 }
Esempio n. 6
0
 public void SetMaterial(RMaterial material, int MeshID)
 {
     _material = material;
     _materials[MeshID] = material;
     foreach(ModelMeshPart part in _model.Meshes[MeshID].MeshParts)
     {
         part.Effect = material.shader.effect;
     }
 }
Esempio n. 7
0
 public void SetMaterial(RMaterial material)
 {
     int i = 0;
     _material = material;
     _materials.Clear();
     _materials.Add(i, material);
     i++;
     foreach (ModelMesh mesh in _model.Meshes)
     {
         foreach (ModelMeshPart part in mesh.MeshParts)
         {
             _materials.Add(i, material);
             part.Effect = material.shader.effect;
             i++;
         }
     }
 }