Ejemplo n.º 1
0
 void view_Refresh(object sender, EventArgs e)
 {
     //(sender as TypeSetupControl).Controls[1].Enabled = false;
     //if (???)
     //{
     //    (sender as TypeSetupControl).Controls[1].Enabled = false;
     //}
     //else
     //{
     //    (sender as TypeSetupControl).Controls[1].Enabled = true;
     //}
     if (view.CurrentItem != null)
     {
         current = view.CurrentItem;
     }
     model.Reload();
     if (model.ItemList.Select(n => n.Id).Contains(current.Id))
     {
         view.CurrentItem = model.ItemList.First(n => n.Id == current.Id);
     }
     else
     {
         view.CurrentItem = model.ItemList.First(n => n.Id == model.ItemList.Last().Id);
     }
 }
Ejemplo n.º 2
0
 public void EditorThread_SetPreviewMeshMaterial(CMaterial material)
 {
     OnEngineThread(() =>
     {
         m_previewMesh?.SetMaterialOverride(material);
     });
 }
Ejemplo n.º 3
0
        public void InitDefaultResources(DeviceContext deviceContext)
        {
            DefaultShader   = RequestShaderResource(new SHashedName("SimpleLitShader"));
            DepthShader     = RequestShaderResource(new SHashedName("depthShader"));
            DepthCubeShader = RequestShaderResource(new SHashedName("depthCubeShader"));

            DefaultTexture  = new CTextureSampler(m_graphicsDevice, deviceContext, "Resources/Textures/DefaultTexture.tga");
            FallbackTexture = new CTextureSampler(m_graphicsDevice, deviceContext, "Resources/Textures/MissingTexture.tga");
            WhiteTexture    = new CTextureSampler(m_graphicsDevice, deviceContext, "Resources/Textures/DefaultWhite.tga");
            BlackTexture    = new CTextureSampler(m_graphicsDevice, deviceContext, "Resources/Textures/DefaultBlack.tga");

            DefaultMaterial = CMaterial.CreateDefaultMaterial();
            DefaultMaterial.ShaderResource = DefaultShader;
            DefaultMaterial.SetTextureParameter(new SHashedName("DiffuseTexture"), WhiteTexture);
            DefaultMaterial.FinishLoading();

            DefaultTextureMaterial = CMaterial.CreateDefaultMaterial();
            DefaultTextureMaterial.ShaderResource = DefaultShader;
            DefaultTextureMaterial.SetTextureParameter(new SHashedName("DiffuseTexture"), DefaultTexture);
            DefaultTextureMaterial.FinishLoading();

            MissingTextureMaterial = CMaterial.CreateDefaultMaterial();
            MissingTextureMaterial.ShaderResource = DefaultShader;
            MissingTextureMaterial.SetTextureParameter(new SHashedName("DiffuseTexture"), FallbackTexture);
            MissingTextureMaterial.FinishLoading();
        }
Ejemplo n.º 4
0
 public CollisionEndEventArgs(IntPtr materialPtr, IntPtr contactPoint, CMaterial material1, CMaterial material2)
 {
     _materialPtr  = materialPtr;
     _contactPoint = contactPoint;
     _material1    = material1;
     _material2    = material2;
 }
            //---------------------------------------------------------------------------------------------------------
            /// <summary>
            /// Выбор шаблона привязки данных
            /// </summary>
            /// <param name="item">Объект</param>
            /// <param name="container">Контейнер</param>
            /// <returns>Нужный шаблон</returns>
            //---------------------------------------------------------------------------------------------------------
            public override DataTemplate SelectTemplate(Object item, DependencyObject container)
            {
                CScene3D scene = item as CScene3D;

                if (scene != null)
                {
                    return(Scene);
                }

                CNode3D node = item as CNode3D;

                if (node != null)
                {
                    return(Node);
                }

                CModel3D model = item as CModel3D;

                if (model != null)
                {
                    return(Model);
                }

                CMesh3Df mesh = item as CMesh3Df;

                if (mesh != null)
                {
                    return(Mesh);
                }

                CMeshSet mesh_set = item as CMeshSet;

                if (mesh_set != null)
                {
                    return(MeshSet);
                }

                CMaterial material = item as CMaterial;

                if (material != null)
                {
                    return(Material);
                }

                CTextureSlot texture_slot = item as CTextureSlot;

                if (texture_slot != null)
                {
                    return(TextureSlot);
                }

                CMaterialSet material_set = item as CMaterialSet;

                if (material_set != null)
                {
                    return(MaterialSet);
                }

                return(Scene);
            }
Ejemplo n.º 6
0
        public JsonResult saveMaterial(CMaterial model)
        {
            string message    = "";
            string ErrMessage = "";
            int    ErrCode    = 0;
            int    materialId = 0;

            if (Session["ident"] == null)
            {
                message = "identError";
            }
            if (message == "")
            {
                string ident = Session["ident"].ToString();

                SmManager.gMaterialCL material = new SmManager.gMaterialCL();
                material.materialId    = model.materialId;
                material.material      = model.material;
                material.materialShort = model.materialShort;
                SmManager.SmManagerClient cl = new SmManager.SmManagerClient();
                material   = cl.saveMaterial(ident, material);
                ErrMessage = material.ErrMessage;
                ErrCode    = material.ErrCode;
                materialId = material.materialId;
            }
            return(Json(new
            {
                message = message,
                errMessage = ErrMessage,
                errCode = ErrCode.ToString(),
                materialId = materialId
            }, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 7
0
        public override void Update()
        {
            float y = Math.Min(1, _vehicle.Chassis.Actor.AngularVelocity.Y / 10);

            Speed.X    = y;
            Speed.Y    = Math.Min(1, _vehicle.Chassis.Actor.LinearVelocity.Length() / 10);
            _uvOffset += Speed * Engine.ElapsedSeconds;
            if (_uvOffset.X > 10)
            {
                _uvOffset.X = 10 - _uvOffset.X;
            }
            if (_uvOffset.Y > 10)
            {
                _uvOffset.Y = 10 - _uvOffset.Y;
            }

            if (_vehicle.CurrentSpecialVolume.Count > 0)
            {
                SpecialVolume vol = _vehicle.CurrentSpecialVolume.Peek();
                CMaterial     mat = ResourceCache.GetMaterial(vol.WindscreenMaterial);
                if (mat != null)
                {
                    this.Material.Texture = mat.Texture;
                }
            }
            else
            {
                this.Material.Texture = _origTexture;
            }
        }
Ejemplo n.º 8
0
    public void removeItemFromList(int matType)
    {
        CMaterial found = materials.Find(x => x.getMaterialType() == matType);

        if (found != null)
        {
            materials.Remove(found);
        }
    }
Ejemplo n.º 9
0
 public void SetMaterial(int materialIndex, CMaterial material)
 {
     m_overrideMaterials.SetMinSize(materialIndex + 1);
     m_overrideMaterials[materialIndex] = material;
     if (m_renderNodes.Length < materialIndex)
     {
         m_renderNodes[materialIndex].SetMaterialOverride(material);
     }
 }
Ejemplo n.º 10
0
        public virtual void Resolve()
        {
            CMaterial cm = ResourceCache.GetMaterial(MaterialName);

            if (cm == null)
            {
                return;
            }
            cm.Funk  = this;
            Material = cm;
        }
Ejemplo n.º 11
0
 public void AddMaterialToHands(CMaterial mat, int i)
 {
     if (i == 0)
     {
         mat.transform.parent = hands.transform.Find("FirstItem").transform;
     }
     if (i == 1)
     {
         mat.transform.parent = hands.transform.Find("SecondItem").transform;
     }
     mat.transform.localPosition = Vector3.zero;
 }
Ejemplo n.º 12
0
    public void takeMaterial()
    {
        // Cargar un material dependiendo del tipo, ej se agarra bandera se carga tela a la lista

        AudioManager.Inst.Play("agarrar_item");

        GameObject matObject = Instantiate <GameObject>(materialTemplate, GameController.Inst.player.transform);
        //Debug.Log(matObject);
        CMaterial mat = matObject.GetComponent <CMaterial>();

        mat.setMaterialType(type);


        GameController.Inst.PushMaterials(mat);

        //Destroy(this.gameObject);
    }
Ejemplo n.º 13
0
 void view_Delete(object sender, EventArgs e)
 {
     model.Delete(view.CurrentItem);
     model.ItemList.Remove(view.CurrentItem);
     //model.Reload();
     if (view.CurrentItem != null)
     {
         if (model.ItemList.First() != view.CurrentItem)
         {
             view.CurrentItem = model.ItemList.First(n => n.Id == model.ItemList.FirstOrDefault().Id);
         }
         else
         {
             view.CurrentItem = model.ItemList[0];
         }
         current = view.CurrentItem;
     }
 }
Ejemplo n.º 14
0
        public void EngineThread_SetPreviewMesh(CMeshAsset meshAsset, bool bKeepMaterial, bool bZoomToFit)
        {
            m_currentMeshAsset = meshAsset;
            CMaterial nodeMaterial = m_previewMesh?.GetOverrideMaterial();

            if (m_previewMesh != null)
            {
                m_renderScene?.UnregisterRenderNode(m_previewMesh);
            }
            m_previewMesh = new CMeshRenderNode(null, meshAsset, null, m_previewMeshTransform);
            if (bKeepMaterial)
            {
                m_previewMesh.SetMaterialOverride(nodeMaterial);
            }
            m_renderScene?.RegisterRenderNode(m_previewMesh);

            if (bZoomToFit)
            {
                EngineThread_ZoomCameraToFitAsset();
            }
        }
Ejemplo n.º 15
0
        public ActionResult selectMaterial(int materialId)
        {
            string errorTxt = "";

            if (Session["ident"] == null)
            {
                RedirectToAction("Login", "Home");
            }
            string    ident = Session["ident"].ToString();
            CMaterial model = new CMaterial();

            if (materialId > 0)
            {
                SmManager.SmManagerClient cl       = new SmManager.SmManagerClient();
                SmManager.gMaterialCL[]   material = cl.getMaterial(ident, materialId);
                if (material.Length == 1)
                {
                    if (material[0].ErrCode != 0)
                    {
                        errorTxt = material[0].ErrMessage;
                    }
                    else
                    {
                        model.materialId    = material[0].materialId;
                        model.material      = material[0].material;
                        model.materialShort = material[0].materialShort;
                    }
                }
                else
                {
                    errorTxt = "Kan ej hitta valt material";
                }
            }
            ViewBag.errorTxt = errorTxt;
            return(View(model));
        }
Ejemplo n.º 16
0
    public bool findMaterial(int matType)
    {
        CMaterial found = materials.Find(x => x.getMaterialType() == matType);

        return(found != null);
    }
Ejemplo n.º 17
0
        public MatFile(string filename)
        {
            Stream file = OpenDataFile(filename);

            if (!Exists)
            {
                return;
            }

            EndianBinaryReader reader = new EndianBinaryReader(EndianBitConverter.Big, file);

            CMaterial currentMaterial = null;

            while (true)
            {
                int blockLength             = 0;
                MaterialBlockType blockType = (MaterialBlockType)reader.ReadInt32();
                blockLength = reader.ReadInt32();

                byte[] flags;

                switch (blockType)
                {
                case MaterialBlockType.Attributes:
                    currentMaterial = new CMaterial();
                    _materials.Add(currentMaterial);

                    byte[] color       = reader.ReadBytes(4);
                    byte[] otherColors = reader.ReadBytes(16);
                    flags = reader.ReadBytes(2);
                    byte[] transform = reader.ReadBytes(24);
                    currentMaterial.SimpMatPixelIndex    = reader.ReadByte();
                    currentMaterial.SimpMatGradientCount = reader.ReadByte();

                    currentMaterial.DoubleSided = flags[0] == 0x10;
                    currentMaterial.Name        = ReadNullTerminatedString(reader);

                    break;

                case MaterialBlockType.AttributesV2:
                    currentMaterial = new CMaterial();
                    _materials.Add(currentMaterial);

                    reader.ReadBytes(4);         //color
                    reader.ReadBytes(16);        //othercolors
                    flags = reader.ReadBytes(4); // flags
                    reader.ReadBytes(24);        //transform
                    reader.ReadBytes(4);         //unk
                    currentMaterial.DoubleSided = flags[0] == 0x10;
                    reader.BaseStream.Position += 13;
                    currentMaterial.Name        = ReadNullTerminatedString(reader);

                    break;

                case MaterialBlockType.TextureName:
                    currentMaterial.PixName = ReadNullTerminatedString(reader);
                    break;

                case MaterialBlockType.TabName:
                    string tabName = ReadNullTerminatedString(reader);
                    break;

                case MaterialBlockType.Null:
                    break;

                default:
                    reader.Seek(blockLength, SeekOrigin.Current);
                    break;
                }
                if (reader.BaseStream.Position == reader.BaseStream.Length)
                {
                    break;
                }
            }

            reader.Close();
        }
Ejemplo n.º 18
0
 public VehicleBitsParticleSystem(CMaterial material)
 {
     _material = material;
     InitializeSystem();
 }
Ejemplo n.º 19
0
        /// <summary>
        /// Returns a list of all registered materials
        /// </summary>
        /// <param name="ident"></param>
        /// <returns></returns>
        /// 2018-08-15 KJBO
        public List <gMaterialCL> getAllMaterial(string ident)
        {
            CMaterial cm = new CMaterial();

            return(cm.getAllMaterial(ident));
        }
Ejemplo n.º 20
0
 public VehicleBitsParticleSystem(CMaterial material)
 {
     _material = material;
     InitializeSystem();
 }
Ejemplo n.º 21
0
 private void view_Add(object sender, EventArgs e)
 {
     model.Add();
     view.CurrentItem = model.ItemList.First(n => n == model.ItemList.LastOrDefault());
     current          = view.CurrentItem;
 }
Ejemplo n.º 22
0
        /// <summary>
        /// Returns a list of all registered materials
        /// If materialId <> 0 then only the material ID that
        /// matches the current ID will be returned.
        /// In that case this will be 0 or 1 instance of gMaterialCL
        /// </summary>
        /// <param name="ident"></param>
        /// <returns></returns>
        /// 2018-08-15 KJBO
        public List <gMaterialCL> getMaterial(string ident, int materialId)
        {
            CMaterial cm = new CMaterial();

            return(cm.getMaterial(ident, materialId));
        }
Ejemplo n.º 23
0
        public void Render(CModel model, CCamera cam, CShaderSystem shader, bool transparent)
        {
            GL.Enable(EnableCap.Texture2D);
            GL.Enable(EnableCap.AlphaTest);
            GL.Enable(EnableCap.DepthTest);

            if (model == null)
            {
                return;
            }

            CMesh mesh = model.Mesh;

            if (mesh.BindVBOs() == false)
            {
                return;
            }

            // start shader
            if (shader.UseProgram(SupportShader.Model) == true)
            {
                UniformModel(model);

                foreach (CSubset subset in mesh.Subsets)
                {
                    CMaterial material = null;
                    if (model.Materials.Count > 0 && model.Materials.ContainsKey(subset.Name))
                    {
                        material = model.Materials[subset.Name];
                    }

                    if (material == null)
                    {
                        if (transparent == true) // 재질이 없으면 불투명할 대만 그린다.
                        {
                            continue;
                        }

                        // Material Routine Func Uniform
                        int func_index = (int)FSMaterialRoutine.funcBasic;
                        GL.UniformSubroutines(ShaderType.FragmentShader, 1, ref func_index);
                    }
                    else
                    {
                        if (transparent != material.IsTransparent())
                        {
                            continue;
                        }

                        material.GLModeSetting();
                        material.Bind();
                        material.Uniform();
                    }

                    // Draw
                    int offset       = subset.IndexOffset * sizeof(uint);
                    int elementCount = subset.TriangleCount * 3;

                    GL.DrawElements(PrimitiveType.Triangles, elementCount,
                                    DrawElementsType.UnsignedInt, offset);
                }
            }
            shader.ReleaseProgram();

            GL.BindTexture(TextureTarget.Texture2D, 0);
            GL.Disable(EnableCap.Blend);

            mesh.UnbindVBOs();

            GL.Disable(EnableCap.Texture2D);
            GL.Disable(EnableCap.AlphaTest);
            GL.Disable(EnableCap.DepthTest);
        }
Ejemplo n.º 24
0
 public void Error(CMaterial obj)
 {
     _log.Error(string.Format("There is no subscribers!/n MaterialID:{0}/n MaterialName:{1}", obj.Id, obj.Name));
 }
Ejemplo n.º 25
0
 public void SetMaterial(CMaterial material)
 {
     m_overrideMaterial = material;
     m_renderNode?.SetMaterialOverride(material);
 }
Ejemplo n.º 26
0
        public MatFile(string filename)
        {
            Stream file = OpenDataFile(filename);
            if (!Exists)
                return;

            EndianBinaryReader reader = new EndianBinaryReader(EndianBitConverter.Big, file);

            CMaterial currentMaterial = null;

            while (true)
            {
                int blockLength = 0;
                MaterialBlockType blockType = (MaterialBlockType)reader.ReadInt32();
                blockLength = reader.ReadInt32();

                byte[] flags;

                switch (blockType)
                {
                    case MaterialBlockType.Attributes:
                        currentMaterial = new CMaterial();
                        _materials.Add(currentMaterial);

                        byte[] color = reader.ReadBytes(4);
                        byte[] otherColors = reader.ReadBytes(16);
                        flags = reader.ReadBytes(2);
                        byte[] transform = reader.ReadBytes(24);
                        currentMaterial.SimpMatPixelIndex = reader.ReadByte();
                        currentMaterial.SimpMatGradientCount = reader.ReadByte();

                        currentMaterial.DoubleSided = flags[0] == 0x10;
                        currentMaterial.Name = ReadNullTerminatedString(reader);

                        break;

                    case MaterialBlockType.AttributesV2:
                        currentMaterial = new CMaterial();
                        _materials.Add(currentMaterial);

                        reader.ReadBytes(4); //color
                        reader.ReadBytes(16); //othercolors
                        flags = reader.ReadBytes(4); // flags
                        reader.ReadBytes(24); //transform
                        reader.ReadBytes(4); //unk
                        currentMaterial.DoubleSided = flags[0] == 0x10;
                        reader.BaseStream.Position += 13;
                        currentMaterial.Name = ReadNullTerminatedString(reader);

                        break;

                    case MaterialBlockType.TextureName:
                        currentMaterial.PixName = ReadNullTerminatedString(reader);
                        break;

                    case MaterialBlockType.TabName:
                        string tabName = ReadNullTerminatedString(reader);
                        break;

                    case MaterialBlockType.Null:
                        break;

                    default:
                        reader.Seek(blockLength, SeekOrigin.Current);
                        break;
                }
                if (reader.BaseStream.Position == reader.BaseStream.Length)
                    break;
            }

            reader.Close();
        }
Ejemplo n.º 27
0
        /// <summary>
        /// Saves material to database
        /// </summary>
        /// <param name="ident"></param>
        /// <param name="mat"></param>
        /// <returns>The saved material</returns>
        /// 2018-08-15 KJBO
        public gMaterialCL saveMaterial(string ident, gMaterialCL mat)
        {
            CMaterial cm = new CMaterial();

            return(cm.saveMaterial(ident, mat));
        }
Ejemplo n.º 28
0
 public void PushMaterials(CMaterial material)
 {
     player.AddMaterialToHands(material, materials.Count);
     materials.Add(material);
     //Debug.Log("Agregado con exito");
 }
Ejemplo n.º 29
0
 public void EngineThread_SetPreviewMeshMaterial(CMaterial material)
 {
     m_previewMesh?.SetMaterialOverride(material);
 }