ГУИ для книги странно рисует текстуры

Версия Minecraft
1.7.10
API
Forge
55
7
3
я пытаюсь создать книгу-гайд для своего мода, сейчас пытаюсь нарисовать текстуры для проверки и вот что получается:
2024-08-31_21.59.10.png
вот класс:
Java:
/**
 * File created on 17:19 31.08.2024 by Wertyfire
 */

package ru.wertyfiregames.craftablecreatures.inventory.gui;

import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import ru.wertyfiregames.craftablecreatures.CraftableCreatures;

public class GuiGuideBook extends GuiScreen {
    private static final ResourceLocation guideBookGuiTextures = new ResourceLocation(CraftableCreatures.getModId(), "textures/gui/guide_book.png");

    private final GuiButton buttonBack = new ChangePageButton(0, 100, 0, 19, 11, false);
    private final GuiButton buttonNext = new ChangePageButton(1, 130, 0, 19, 11, true);

    private static final int xSize = 290, ySize = 178;
    private static final int xSizeClosed = 145;

    private final int totalPages = 3;
    private int currentPage = 1;

    @SuppressWarnings("unchecked")
    @Override
    public void initGui() {
        buttonList.clear();
        checkButtons();
        buttonList.add(buttonBack);
        buttonList.add(buttonNext);
    }

    @Override
    public void drawScreen(int x, int y, float partialTicks) {
        drawDefaultBackground();
        super.drawScreen(x, y, partialTicks);

        drawPage();
    }

    @Override
    protected void actionPerformed(GuiButton button) {
        if (button.id == 0) {
            minusPage();
            checkButtons();
        } else if (button.id == 1) {
            plusPage();
            checkButtons();
        }
    }

    private void drawPage() {
        if (currentPage == 1) {
            drawTexture(2);
        } else if (currentPage == totalPages) {
            drawTexture(0);
        } else {
            drawTexture(1);
        }
    }

    private void minusPage() {
        if (currentPage > 1) currentPage--;
    }
    private void plusPage() {
        if (currentPage < totalPages) currentPage++;
    }

    private void checkButtons() {
        if (currentPage == 1) {
            buttonBack.enabled = false;
            buttonBack.visible = false;
            if (!buttonNext.enabled) buttonNext.enabled = true;
            if (!buttonNext.visible) buttonNext.visible = true;
        } else if (currentPage == totalPages) {
            buttonNext.enabled = false;
            buttonNext.visible = false;
            if (!buttonBack.enabled) buttonBack.enabled = true;
            if (!buttonBack.visible) buttonBack.visible = true;
        } else {
            if (!buttonBack.enabled) buttonBack.enabled = true;
            if (!buttonBack.visible) buttonBack.visible = true;
            if (!buttonNext.enabled) buttonNext.enabled = true;
            if (!buttonNext.visible) buttonNext.visible = true;
        }
    }

    // part: 0 - back, 1 - default (middle), 2 - cover
    private void drawTexture(int part) {
        if (part < 0 || part > 2)
            throw new IllegalArgumentException("Argument part must be 0 to 2 but current is: " + part);

        GL11.glColor4f(1f, 1f, 1f, 1f);
        mc.getTextureManager().bindTexture(guideBookGuiTextures);

//        int xSize = (currentPage == 1 || currentPage == totalPages) ? xSizeClosed : GuiGuideBook.xSize;

        int x = (width - xSize) / 2;
        int y = (height - ySize) / 2;

        int tx;
        if (part == 1) tx = 0;
        else if (part == 0) tx = 292;
        else tx = 436;

        int ty = 0;

        drawTexturedModalRect(x, y, tx, ty, xSize, ySize);
    }

    static class ChangePageButton extends GuiButton {
        private final boolean reverse;

        public ChangePageButton(int id, int x, int y, int width, int height, boolean shouldReverse) {
            super(id, x, y, width, height, "");
            reverse = shouldReverse;
        }

        public void drawButton(Minecraft mc, int x, int y) {
            if (visible) {
                boolean hovered = isMouseOver(x, y);
                GL11.glColor4f(1f, 1f,1f, 1f);
                mc.getTextureManager().bindTexture(guideBookGuiTextures);

                int u = 0;
                int v = 192;

                if (hovered) u += 23;
                if (!reverse) v += 13;

                drawTexturedModalRect(xPosition, yPosition, u, v, 23, 13);
            }
        }

        private boolean isMouseOver(int mouseX, int mouseY) {
            return mouseX >= xPosition && mouseX < xPosition + width && mouseY >= yPosition && mouseY < yPosition + height;
        }
    }
}

и вот текстура: (612x256, может в этом проблема?)

guide_book.png
 
Назад
Сверху