LWJGL Inventory Rendering Wrong

So I was working on a 2D RPG and I designed the inventory pretty well, but ive ran into an issue where when I have an item in a slot, the slot immediately after it doesn't display; its just a black square.

Here is a visual: http://imgur.com/lLbv0fh

Im using immediate rendering mode.

Rendering Inventory Method:

 public void render(Renderer renderer) {
    if (shown == false) {
        return;
    }
    //renderer.renderRectangle(0, x, y, 220, 240, Color4f.BLACK);
    renderer.setFont(font);
    renderer.renderString("Inventory", x + 24, y + 11, Color4f.WHITE);
    renderer.setFont(Renderer.DEFAULT_FONT);

    int drawSlotsX = x + 25;
    int drawSlotsY = y + 50;

    int xPos = 0;
    int yPos = 0;
    int maxX = 4;
    int maxY = 4;



    for (int i = 0; i < slots.length; i++) {

        int renderX = ((xPos * 32) + drawSlotsX) + 2 * xPos;
        int renderY = ((yPos * 32) + drawSlotsY) + 2 * yPos;

        renderer.renderTexture(slot, renderX, renderY, 32, 32, 0);


        if (collisionBoxs[i] == null) {
            collisionBoxs[i] = new Rectangle(renderX, renderY, 32, 32);
        }
        if (slots[i] != null) { 
            renderer.renderTexture(slots[i].getItem().getIcon().getIcon(), renderX, renderY, 24, 32, 0);


            if (slots[i].getAmount() < 10) {
                renderer.renderString("" + slots[i].getAmount(), renderX + 22, renderY + 18, Color4f.BLACK);
            } else {
                renderer.renderString("" + slots[i].getAmount(), renderX + 18, renderY + 18, Color4f.BLACK);
            }
        }

        if (xPos < maxX) {
            xPos++;
        } else {
            xPos = 0;
            if (yPos < maxY) {
                yPos++;
            }
        }
    }

    if (grabbedItem != null) {
        renderer.renderTexture(grabbedItem.getItem().getIcon().getIcon(),  Mouse.getX(), (Engine.FRAME_HEIGHT - Mouse.getY()),  32, 32, 0);
    }
}

      

Sorry if you don't see a problem with this method!

+3


source to share





All Articles