Код:
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();
}
}
}
}
}
P.S.Вопросы пишите(код неважно откуда)