示例#1
0
        public HeadUpDisplay()
        {
            player = World.Instance.Player;

            for (int i = 0; i < labels.Length; i++)
            {
                labels[i]       = new Label();
                labels[i].Color = new Vector4(1f, 1f, 0.2f, 1);
            }

            t.StartDrawingColoredQuads();
            Vector4 Color1 = new Vector4(0.1f, 0.1f, 0.1f, 1);

            t.AddVertexWithColor(new Vector4(0, 0, 0f, 1f), Color1);
            t.AddVertexWithColor(new Vector4(0, 1, 0f, 1f), Color1);
            t.AddVertexWithColor(new Vector4(1, 1, 0f, 1f), Color1);
            t.AddVertexWithColor(new Vector4(1, 0, 0f, 1f), Color1);
            background = t.GetVertexBuffer();
        }
示例#2
0
        private void RenderHash(Block block, PositionBlock globalPosition, PositionBlock positionBlock, Chunk chunk)
        {
            Vector4 c1, c2, c3, c4, c5, c6;
            int     blockId = block.Id;

            Vector4[] blockColors = block.BlockColors;
            c1 = blockColors[0];
            c2 = blockColors[1];
            c3 = blockColors[2];
            c4 = blockColors[3];
            c5 = blockColors[4];
            c6 = blockColors[5];
            float vx = globalPosition.X;
            float vy = globalPosition.Y;
            float vz = globalPosition.Z;
            int   x  = positionBlock.X;
            int   y  = positionBlock.Y;
            int   z  = positionBlock.Z;

            if (block.HasStages)
            {
                int stage = (int)((float)chunk.GetBlockMetaData(positionBlock, "stage") * block.MaxStage);
                t.ArrayIndex = TileTextures.Instance.GetStage(blockId, stage);
            }
            else
            {
                t.ArrayIndex = TileTextures.Instance.FrontIndex(blockId);
            }
            float   margin = 0.2f;
            Vector3 normal = new Vector3(0, 0, 1);

            t.AddVertexWithColor(new Vector4(vx + 0f, vy + 0f, vz + 1f - margin, 1.0f), c1, normal);
            t.AddVertexWithColor(new Vector4(vx + 0f, vy + 1f, vz + 1f - margin, 1.0f), c1, normal);
            t.AddVertexWithColor(new Vector4(vx + 1f, vy + 1f, vz + 1f - margin, 1.0f), c1, normal);
            t.AddVertexWithColor(new Vector4(vx + 1f, vy + 0f, vz + 1f - margin, 1.0f), c1, normal);
            normal = new Vector3(0, 0, 1);
            t.AddVertexWithColor(new Vector4(vx + 0f, vy + 0f, vz + 0f + margin, 1.0f), c1, normal);
            t.AddVertexWithColor(new Vector4(vx + 0f, vy + 1f, vz + 0f + margin, 1.0f), c1, normal);
            t.AddVertexWithColor(new Vector4(vx + 1f, vy + 1f, vz + 0f + margin, 1.0f), c1, normal);
            t.AddVertexWithColor(new Vector4(vx + 1f, vy + 0f, vz + 0f + margin, 1.0f), c1, normal);
            normal = new Vector3(0, 0, -1);
            t.AddVertexWithColor(new Vector4(vx + 1f, vy + 0f, vz + 1f - margin, 1.0f), c2, normal);
            t.AddVertexWithColor(new Vector4(vx + 1, vy + 1f, vz + 1f - margin, 1.0f), c2, normal);
            t.AddVertexWithColor(new Vector4(vx + 0f, vy + 1f, vz + 1f - margin, 1.0f), c2, normal);
            t.AddVertexWithColor(new Vector4(vx + 0f, vy + 0f, vz + 1f - margin, 1.0f), c2, normal);
            normal = new Vector3(0, 0, -1);
            t.AddVertexWithColor(new Vector4(vx + 1f, vy + 0f, vz + 0f + margin, 1.0f), c2, normal);
            t.AddVertexWithColor(new Vector4(vx + 1, vy + 1f, vz + 0f + margin, 1.0f), c2, normal);
            t.AddVertexWithColor(new Vector4(vx + 0f, vy + 1f, vz + 0f + margin, 1.0f), c2, normal);
            t.AddVertexWithColor(new Vector4(vx + 0f, vy + 0f, vz + 0f + margin, 1.0f), c2, normal);
            normal = new Vector3(-1, 0, 0);
            t.AddVertexWithColor(new Vector4(vx + margin, vy + 0f, vz + 0f, 1.0f), c3, normal);
            t.AddVertexWithColor(new Vector4(vx + margin, vy + 1f, vz + 0f, 1.0f), c3, normal);
            t.AddVertexWithColor(new Vector4(vx + margin, vy + 1f, vz + 1f, 1.0f), c3, normal);
            t.AddVertexWithColor(new Vector4(vx + margin, vy + 0f, vz + 1f, 1.0f), c3, normal);
            normal = new Vector3(-1, 0, 0);
            t.AddVertexWithColor(new Vector4(vx + 1f - margin, vy + 0f, vz + 0f, 1.0f), c3, normal);
            t.AddVertexWithColor(new Vector4(vx + 1f - margin, vy + 1f, vz + 0f, 1.0f), c3, normal);
            t.AddVertexWithColor(new Vector4(vx + 1f - margin, vy + 1f, vz + 1f, 1.0f), c3, normal);
            t.AddVertexWithColor(new Vector4(vx + 1f - margin, vy + 0f, vz + 1f, 1.0f), c3, normal);

            normal = new Vector3(1, 0, 0);
            t.AddVertexWithColor(new Vector4(vx + margin, vy + 0f, vz + 1f, 1.0f), c4, normal);
            t.AddVertexWithColor(new Vector4(vx + margin, vy + 1f, vz + 1f, 1.0f), c4, normal);
            t.AddVertexWithColor(new Vector4(vx + margin, vy + 1f, vz + 0f, 1.0f), c4, normal);
            t.AddVertexWithColor(new Vector4(vx + margin, vy + 0f, vz + 0f, 1.0f), c4, normal);
            normal = new Vector3(1, 0, 0);
            t.AddVertexWithColor(new Vector4(vx + 1f - margin, vy + 0f, vz + 1f, 1.0f), c4, normal);
            t.AddVertexWithColor(new Vector4(vx + 1f - margin, vy + 1f, vz + 1f, 1.0f), c4, normal);
            t.AddVertexWithColor(new Vector4(vx + 1f - margin, vy + 1f, vz + 0f, 1.0f), c4, normal);
            t.AddVertexWithColor(new Vector4(vx + 1f - margin, vy + 0f, vz + 0f, 1.0f), c4, normal);
            t.ArrayIndex = -1;
        }
示例#3
0
        internal void Build()
        {
            t.StartDrawingColoredQuads();
            Vector4 c   = entity.Color;
            Vector3 min = entity.AABB.Min;
            Vector3 max = entity.AABB.Max;

            Vector4[] v = new Vector4[] {
                new Vector4(min.X, min.Y, min.Z, 1),
                new Vector4(max.X, min.Y, min.Z, 1),
                new Vector4(max.X, min.Y, max.Z, 1),
                new Vector4(min.X, min.Y, max.Z, 1),
                new Vector4(min.X, max.Y, min.Z, 1),
                new Vector4(max.X, max.Y, min.Z, 1),
                new Vector4(max.X, max.Y, max.Z, 1),
                new Vector4(min.X, max.Y, max.Z, 1),
            };

            // left
            t.AddVertexWithColor(v[0], c);
            t.AddVertexWithColor(v[4], c);
            t.AddVertexWithColor(v[7], c);
            t.AddVertexWithColor(v[3], c);

            //front
            t.AddVertexWithColor(v[3], c);
            t.AddVertexWithColor(v[7], c);
            t.AddVertexWithColor(v[6], c);
            t.AddVertexWithColor(v[2], c);

            //right
            t.AddVertexWithColor(v[2], c);
            t.AddVertexWithColor(v[6], c);
            t.AddVertexWithColor(v[5], c);
            t.AddVertexWithColor(v[1], c);

            //back
            t.AddVertexWithColor(v[1], c);
            t.AddVertexWithColor(v[5], c);
            t.AddVertexWithColor(v[4], c);
            t.AddVertexWithColor(v[0], c);

            //top
            t.AddVertexWithColor(v[4], c);
            t.AddVertexWithColor(v[5], c);
            t.AddVertexWithColor(v[6], c);
            t.AddVertexWithColor(v[7], c);

            //bottom
            t.AddVertexWithColor(v[0], c);
            t.AddVertexWithColor(v[3], c);
            t.AddVertexWithColor(v[2], c);
            t.AddVertexWithColor(v[1], c);

            buffer = t.GetVertexBuffer();
        }