Exemple #1
0
        void GetBlockData(int x, int y, int z, BlockID B, BlockFace F)
        {
            B.GetFaceVerts(x, y, z, F, Mesh, MeshT);
            B.GetFaceUVs(F, Atlas, UVs, UVsT);

            if (B.IsTransparent())
            {
                for (int i = 0; i < 4; i++)
                {
                    ClrsT.Add(new Vector3(1, 1, 1));
                }
            }
            else
            {
                Sides++;
            }

            Vector3 Normal;

            if (F == BlockFace.Forward)
            {
                Normal = new Vector3(1, 0, 0);
            }
            else if (F == BlockFace.Backward)
            {
                Normal = new Vector3(-1, 0, 0);
            }
            else if (F == BlockFace.Left)
            {
                Normal = new Vector3(0, 1, 0);
            }
            else if (F == BlockFace.Right)
            {
                Normal = new Vector3(0, -1, 0);
            }
            else if (F == BlockFace.Top)
            {
                Normal = new Vector3(0, 0, 1);
            }
            else
            {
                Normal = new Vector3(0, 0, -1);
            }

            List <Vector4> Lst = B.IsTransparent() == false ? BlockData : BlockDataT;

            Lst.Add(new Vector4(Normal, (int)B));
            Lst.Add(new Vector4(Normal, (int)B));
            Lst.Add(new Vector4(Normal, (int)B));
            Lst.Add(new Vector4(Normal, (int)B));
        }