Слив кода.Рендер тела

1,683
2
Код:
private static final Minecraft mc = Minecraft.getMinecraft();
    private boolean isBodyFixed;
@SubscribeEvent
    public void renderEntityLivingPost(RenderPlayerEvent.Post event) {
        Entity playerClient = FMLClientHandler.instance().getClientPlayerEntity();
        boolean hasGun = event.entityPlayer.getHeldItem() != null && event.entityPlayer.getHeldItem().getItem() instanceof ItemGun;
        boolean isOtherPlayer = !(playerClient instanceof EntityPlayerSP) && playerClient instanceof EntityOtherPlayerMP;
        boolean isClientPlayer = playerClient instanceof EntityPlayerSP && !(playerClient instanceof EntityOtherPlayerMP);
        if (hasGun && (isClientPlayer || isOtherPlayer)) {
            event.renderer.modelBipedMain.bipedLeftArm.isHidden = false;
            event.renderer.modelBipedMain.bipedRightArm.isHidden = false;
        }

    }

    @SubscribeEvent
    public void renderEntityLivingPre(net.minecraftforge.client.event.RenderLivingEvent.Pre event) {
        if (event.renderer instanceof RenderPlayer) {
            RenderPlayer player_renders = (RenderPlayer) event.renderer;
            boolean hasGun = event.entity.getHeldItem() != null && event.entity.getHeldItem().getItem() instanceof ItemGun;
            if (event.entity.isSneaking() && event.entity.height == 1.8F && hasGun) {
                player_renders.modelBipedMain.aimedBow = true;
            }
            if (event.entity instanceof EntityOtherPlayerMP && !(event.entity instanceof EntityPlayerSP)) {
                player_renders.modelBipedMain.bipedHead.isHidden = false;
                player_renders.modelBipedMain.bipedHeadwear.isHidden = false;
            } else if (event.entity instanceof EntityPlayerSP) {
                if (FMLClientHandler.instance().getClient().gameSettings.thirdPersonView == 0 && !FMLClientHandler.instance().isGUIOpen(GuiContainerCreative.class) /*&& !FMLClientHandler.instance().isGUIOpen(PlayerInventory.class) inventory*/ && !FMLClientHandler.instance().isGUIOpen(GuiInventory.class)) {
                    player_renders.modelBipedMain.bipedHead.isHidden = true;
                    player_renders.modelBipedMain.bipedHeadwear.isHidden = true;
                } else {
                    player_renders.modelBipedMain.bipedHead.isHidden = false;
                    player_renders.modelBipedMain.bipedHeadwear.isHidden = false;
                }
            }
        }
    }

    @SubscribeEvent
    public void renderHandEvent(RenderHandEvent event) {
        if (mc.currentScreen != null) {
            event.setCanceled(true);
        } else {
            if (!mc.gameSettings.hideGUI) {
                EntityClientPlayerMP player = mc.thePlayer;
                if (player instanceof EntityPlayerSP) {
                    Render render = RenderManager.instance.getEntityRenderObject(player);
                    RenderPlayer render_player = (RenderPlayer) render;
                    if (FMLClientHandler.instance().getClient().gameSettings.thirdPersonView != 0) {
                        isBodyFixed = true;
                    }
                    if (FMLClientHandler.instance().getClient().gameSettings.thirdPersonView == 0 && isBodyFixed) {
                        GL11.glPushMatrix();
                        mc.renderEngine.bindTexture(((EntityPlayerSP) player).getLocationSkin());
                        FMLClientHandler.instance().getClient().entityRenderer.enableLightmap(0.0D);
                        GL11.glRotatef(-player.rotationYaw, 0.0F, 1.0F, 0.0F);
                        float var2 = mc.gameSettings.fovSetting / 440.0F;
                        GL11.glTranslatef(-0.1F, -(11.85F - var2 - (mc.thePlayer.rotationPitch / 180.0F - 0.05F)), -0.35F);
                        GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F);
                        GL11.glScalef(0.9375F, 0.9375F, 0.9375F);
                        GL11.glTranslatef(0.0F, -12.0F, 0.0F);
                        GL11.glTranslatef(0.125F, -0.9F, -0.1F);
                        GL11.glEnable(2903);
                        GL11.glTranslatef(0.0F, 0.75F, 0.01F);
                        GL11.glScalef(1.0F, 1.0F, 1.0F);
                        GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F);
                        GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F);
                        double pos_x = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double) event.partialTicks;
                        double pos_y = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double) event.partialTicks;
                        double pos_z = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double) event.partialTicks;
                        GL11.glRotatef(player.rotationYaw, 0.0F, 1.0F, 0.0F);
                        if (player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemGun) {
                            render_player.modelBipedMain.bipedLeftArm.isHidden = true;
                            render_player.modelBipedMain.bipedRightArm.isHidden = true;
                        } else {
                            render_player.modelBipedMain.bipedLeftArm.isHidden = false;
                            render_player.modelBipedMain.bipedRightArm.isHidden = false;
                            event.setCanceled(true);
                        }

                        int i = mc.theWorld.getLightBrightnessForSkyBlocks(MathHelper.floor_double(player.posX), MathHelper.floor_double(player.posY), MathHelper.floor_double(player.posZ), 0);
                        int j = i % 65536;
                        int k = i / 65536;
                        OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) j / 1.0F, (float) k / 1.0F);
                        render_player.doRender(player, pos_x - RenderManager.renderPosX, pos_y - RenderManager.renderPosY, pos_z - RenderManager.renderPosZ, 0.0F, event.partialTicks);
                        FMLClientHandler.instance().getClient().entityRenderer.disableLightmap(0.0D);
                        GL11.glPopMatrix();
                    }
                }
            }
        }
    }
ItemGun-предмет,при которым руки не будут рендерится(у меня руки заменяются другими руками).Метод renderEntityLivingPre для фикса у других игроков.Смарт мувинги работают!!!
P.S.Вопросы пишите(код неважно откуда)
 
Назад
Сверху