RenderOverlay
-
Salut,
Dans mon mod, il y a une touche de zoom, et j’ai fait en sorte que dés que le joueur sélectionne le sniper, le zoom sera différent et appliquera un overlay.
Tout marche, sauf l’overlay, et je sais vraiment pas d’ou ça peut venir
Vu que iTickHandler n’existe plus, j’ai mis tout ça dans un onTickClient dans ClientProxy.Question : Comment faire marcher mon overlay ?
ClientProxy.java
public class ClientProxy extends CommonProxy { public static KeyBinding keyBindZoom, keyJetPack; @Override public void registerRender() { RenderingRegistry.registerEntityRenderingHandler(EntityDisk.class, new RenderDisk(new ModelDisk())); RenderingRegistry.registerEntityRenderingHandler(EntityNitron.class, new RenderNitron()); FMLCommonHandler.instance().bus().register(this); keyBindZoom = new KeyBinding("tamod.keyzoom", Keyboard.KEY_A, "key.categories.gameplay"); keyJetPack = new KeyBinding("tamod.jetpack", Keyboard.KEY_F, "key.categories.gameplay"); ClientRegistry.registerKeyBinding(keyBindZoom); ClientRegistry.registerKeyBinding(keyJetPack); } @SubscribeEvent public void onTickClient(TickEvent.ClientTickEvent event) { EntityPlayer player = FMLClientHandler.instance().getClient().thePlayer; Minecraft mc = FMLClientHandler.instance().getClient(); if(mc.currentScreen == null) { InventoryPlayer inventory = mc.thePlayer.inventory; ItemStack itemstack = inventory.getCurrentItem(); if(Keyboard.isKeyDown(this.keyJetPack.getKeyCode())) { player.motionY = Math.min(player.motionY + 0.559999999999999998D + 0.559999999999999998D, 0.49999999999999999D); } if(Keyboard.isKeyDown(this.keyBindZoom.getKeyCode())) { if(itemstack != null) { if(itemstack.getItem() instanceof TABxt1Rifle && itemstack.getItem() != null) { zoom(11.0F); renderTextureOverlay(new ResourceLocation("tam", "textures/blur/sniper.png"), 1.0F); } else {zoom(6.0F);} } if(itemstack == null) {zoom(6.0F);} } else { zoom(1.0F); } } } public void renderTextureOverlay(ResourceLocation s, float f) { Minecraft minecraft = FMLClientHandler.instance().getClient(); ScaledResolution scaledresolution = new ScaledResolution(minecraft.gameSettings, minecraft.displayWidth, minecraft.displayHeight); int i = scaledresolution.getScaledWidth(); int j = scaledresolution.getScaledHeight(); GL11.glEnable(GL11.GL_BLEND); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDepthMask(false); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glColor4f(1.0F, 1.0F, 1.0F, f); GL11.glDisable(GL11.GL_ALPHA_TEST); minecraft.getTextureManager().bindTexture(s); Tessellator tessellator = Tessellator.instance; tessellator.startDrawingQuads(); tessellator.addVertexWithUV(0.0D, j, -90D, 0.0D, 1.0D); tessellator.addVertexWithUV(i, j, -90D, 1.0D, 1.0D); tessellator.addVertexWithUV(i, 0.0D, -90D, 1.0D, 0.0D); tessellator.addVertexWithUV(0.0D, 0.0D, -90D, 0.0D, 0.0D); tessellator.draw(); GL11.glDepthMask(true); GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glEnable(GL11.GL_ALPHA_TEST); GL11.glColor4f(1.0F, 1.0F, 1.0F, f); } public static void zoom(float value){ ObfuscationReflectionHelper.setPrivateValue(EntityRenderer.class, FMLClientHandler.instance().getClient().entityRenderer, value, "cameraZoom"); } }
Merci d’avance.
-
Salut, essaye d’utiliser RenderGameOverlayEvent