ResourceLocation в упор не видит текстуру. 1.12.2

Версия Minecraft
1.12.2
API
Forge
3
0
Пытался сделать гуишку, и хотел попрактиковатся с методом drawScreen, но увидел, что ResorurceLocation просто слепой как мой косоглазый друг со зрением +5
new ResourceLocation(modid,PathTexture) тоже пытался, но не пашет, тем более в классе ResourceLocation первый аргумент нигде не использован.
В скрине в пути есть ошибка, но после исправление сути ничего не меняет!
Помогите пожалуйста, где я провафлил.
Уже думаю психануть и с нуля написать свой класс считывание текстур...
Остальные текстуры конечно же загружаются.
Странно, что в логах присутствует minecraft перед modid/...
Скрины ниже.

Весь код:
package com.MLag.RedCraft.client.GUI;

import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;

import static com.MLag.RedCraft.Constants.MODIDS;

public class GUITest extends GuiScreen {
    private ResourceLocation guitexrure;
    private final int guiHeight = 192;//192
    private final int guiWidth = 256;//256
    public GUITest(){
         guitexrure = new ResourceLocation("red_crafting/textures/gui/machineblock.png");

    }


    @Override
    public void drawScreen(int w, int h, float partialTicks) {
        GL11.glColor4f(1.0f,1.0f,10.f,1.0f);
        mc.getTextureManager().bindTexture(guitexrure);
        int offset = (width-guiWidth)/2;
        drawTexturedModalRect(offset,2,0,0,guiWidth,guiHeight);
        fontRenderer.drawString("loglogloglg",offset,170,0);

        super.drawScreen(w, h, partialTicks);
    }




    @Override
    public void updateScreen() {
        super.updateScreen();
    }

    @Override
    public boolean doesGuiPauseGame() {
        return false;
    }
}
 

Вложения

  • iteleji.png
    iteleji.png
    30.1 KB · Просмотры: 12
  • new locat.png
    new locat.png
    13.2 KB · Просмотры: 13
  • иерархия папок.png
    иерархия папок.png
    17.3 KB · Просмотры: 13
  • крашлог.png
    крашлог.png
    55.8 KB · Просмотры: 10
Последнее редактирование:
434
41
110
Последнее редактирование:
3
0
пространство имен по умолчанию будет minecraft. Используй в формате namespace: object

Насколько я знаю (возможно это немного не так) только во время загрузки мода Forge автоматически ставит пространство имен на пространство имен мода, если не было указано другое принудительно

Тк ты вызвал конструктор ResourceLocation в рантайме, то на него уже не влиял forge и работало как в ваниле
Привет, к сожалению не сработало, никак,уже и // пытался, и так и сяк. Вообще ноль, уже в конвульсиях бью. В англоязычных форумах гуглю, тоже ничего толокового не нашел...
 
434
41
110
Слушай, ты прав. Я подумал немного и понял. Что конструктор вызывается тогда, когда я открываю гуи кликая пкм по блоку. Днём я это проверю и обязательно отпишусь. Спасибо за ответ.
Бред сморозил, забыл что в стародавние времена я унаследовал ResourceLocation чтобы оно автоматом MOD_ID ставило куда надо
Привет, к сожалению не сработало, никак,уже и // пытался, и так и сяк. Вообще ноль, уже в конвульсиях бью. В англоязычных форумах гуглю, тоже ничего толокового не нашел...
Проверь еще 20 раз, там ли лежит папка, не затесались ли русские буквы среди английских (я на этом не 1 раз горел), и т.д
Вот мой код 7-12-ти месячной давности, который все это время работает как часы
Java:
@SideOnly(Side.CLIENT) //серверу класс с графикой не зачем
public class GuiSpCapacitor extends SimpleGuiContainer /*<- свой класс*/ {
    private static final ResourceLocation SP_CAP_GUI =
            new ResourceLocation(SpMain.MOD_ID, "textures/gui/ibm_cond.png"); //лучше в статике

    public GuiSpCapacitor(InventoryPlayer playerInv, IInventory spCapInv){
        super(SP_CAP_GUI, new SpCapacitorContainer(playerInv, spCapInv));
    }
}
SimpleGuiContainer:
    @Override
    public void drawScreen(int mouseX, int mouseY, float partialTicks) {
        this.drawDefaultBackground();
        super.drawScreen(mouseX, mouseY, partialTicks);
        this.renderHoveredToolTip(mouseX, mouseY);
    }


    @Override
    protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) {
        GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
        int i = (this.width - this.xSize) / 2;
        int j = (this.height - this.ySize) / 2;
        this.mc.getTextureManager().bindTexture(texture); //<- SP_CAP_GUI
        this.drawTexturedModalRect(i, j, 0, 0, this.xSize, this.ySize);
        onDraw(i, j); //твой код
    }
 
Последнее редактирование:
  • Like
Реакции: Mlag
Сверху