Exemple #1
0
        private void DrawItem(int i)
        {
            float   scaleAdjust = i == player.SelectedSlotId ? 1.00f : 1f;
            Vector3 postAdjust  = i != player.SelectedSlotId ? new Vector3(0, 4, 0) : new Vector3();

            t.StartDrawingColoredQuads();
            Vector3 pos = new Vector3((i) * frameSize, 0, 0) + postAdjust;

            Camera.Instance.World = Matrix.Multiply(Camera.Instance.World, Matrix.Scaling(new Vector3(frameSize, frameSize, frameSize) * scaleAdjust));
            Camera.Instance.World = Matrix.Multiply(Camera.Instance.World, Matrix.Translation(pos));
            t.Draw(background);

            EntityStack stack = player.Inventory.Slots[i].Content;

            if (stack.IsEmpty)
            {
                return;
            }

            t.StartDrawingTiledQuadsWTF();
            pos += new Vector3(1 + (frameSize - itemSize) / 2f, -1 + (frameSize - itemSize) / 2f, 0);
            Camera.Instance.World = Matrix.Multiply(Camera.Instance.World, Matrix.Scaling(new Vector3(itemSize, itemSize, itemSize) * scaleAdjust));
            Camera.Instance.World = Matrix.Multiply(Camera.Instance.World, Matrix.Translation(pos));
            t.Draw(TileTextures.Instance.GetItemVertexBuffer(stack.Id));

            labels[i].Text     = stack.Count.ToString();
            labels[i].Position = pos;
            labels[i].Render();
        }