- 25
- 2
Доброго времени суток.
Пытаюсь отрендерить на экране картинку и текст, но выходит в результате, что рендерится только эта картинка и текст, а чат, инвентарь и т.д. пропадают.
Код:
Так регистрирую:
Пробывал разные способы, но ничего не выходит. Неужели мне нужно брать код из GuiIngame из метода renderGameOverlayEvent и пихать в свой renderGameOverlayEvent?? Это же не очень правильно будет.
Есть способ как-то добавлять мой рендер картинки в основной рендер? А ни заменять моим рендером?
Пытаюсь отрендерить на экране картинку и текст, но выходит в результате, что рендерится только эта картинка и текст, а чат, инвентарь и т.д. пропадают.
Код:
Java:
@SideOnly(Side.CLIENT)
public class PanelRenderer extends GuiIngame {
private final Minecraft mc = Minecraft.getMinecraft();
private final ResourceLocation icons = new ResourceLocation("relevant_craft:textures/gui/icons.png");
public PanelRenderer(Minecraft mc) {
super(mc);
}
@SubscribeEvent
public void renderGameOverlayEvent(RenderGameOverlayEvent.Pre event) {
FMLClientHandler.instance().getClient().ingameGUI = new PanelRenderer(this.mc);
}
public void renderGameOverlay(float partialTicks) {
ScaledResolution resolution = new ScaledResolution(mc);
int width = resolution.getScaledWidth();
int height = resolution.getScaledHeight();
mc.getTextureManager().bindTexture(icons);
GL11.glEnable(GL11.GL_BLEND);
// Левый верхний уголок
drawTexturedModalRect(width - 135, 15, 0, 235, 9, 9);
// Верхняя и нижняя обводка
for (int l6 = 0; l6 < 10; l6++) {
drawTexturedModalRect(width - 135 + 9 + l6 * 9, 15, 9, 235, 9, 9);
drawTexturedModalRect(width - 135 + 9 + l6 * 9, 69, 9, 247, 9, 9);
}
// Правый верхний уголок
drawTexturedModalRect(width - 135 + 99, 15, 21, 235, 9, 9);
// Боковые полосы
for (int l6 = 0; l6 < 5; l6++) {
drawTexturedModalRect(width - 135, 24 + l6 * 9, 0, 244, 9, 9);
drawTexturedModalRect(width - 135 + 99, 24 + l6 * 9, 21, 244, 9, 9);
}
// Нижний левый уголок
drawTexturedModalRect(width - 135, 69, 0, 247, 9, 9);
// Нижний правый уголок
drawTexturedModalRect(width - 135 + 99, 69, 21, 247, 9, 9);
// Внутреннее заполнение
for (int l6 = 0; l6 < 5; l6++) {
for (int k8 = 0; k8 < 10; k8++) {
drawTexturedModalRect(k8 * 9 + width - 135 + 9, l6 * 9 + 24, 3, 246, 9, 9);
}
}
mc.fontRenderer.drawString("Убийства: " + PanelData.playerKills, width - 130, 18, 16777215);
mc.fontRenderer.drawString("Убийства зомби: " + PanelData.walkerKills, width - 130, 28, 16777215);
mc.fontRenderer.drawString("Смертей: " + PanelData.deaths, width - 130, 38, 16777215);
mc.fontRenderer.drawString("Деньги: " + PanelData.money, width - 130, 48, 16777215);
mc.fontRenderer.drawString("Группа: " + PanelData.group, width - 130, 58, 16777215);
mc.fontRenderer.drawString("Игроки: " + PanelData.online, width - 130, 68, 16777215);
GL11.glDisable(GL11.GL_BLEND);
}
}
Так регистрирую:
Java:
@EventHandler
public void onLoad(FMLInitializationEvent event) {
MinecraftForge.EVENT_BUS.register(new PanelRenderer(Minecraft.getMinecraft()));
}
Пробывал разные способы, но ничего не выходит. Неужели мне нужно брать код из GuiIngame из метода renderGameOverlayEvent и пихать в свой renderGameOverlayEvent?? Это же не очень правильно будет.
Есть способ как-то добавлять мой рендер картинки в основной рендер? А ни заменять моим рендером?