public class YourFMLEventHandler {
private static final Logger logger = LogManager.getLogger();
private static final ResourceLocation locationRainPng = new ResourceLocation("textures/environment/rain.png");
private static final ResourceLocation locationSnowPng = new ResourceLocation("textures/environment/snow.png");
public static boolean anaglyphEnable;
/** Anaglyph field (0=R, 1=GB) */
public static int anaglyphField;
/** A reference to the Minecraft object. */
private Minecraft mc;
private float farPlaneDistance;
/** Entity renderer update count */
private int rendererUpdateCount;
/** Pointed entity */
private Entity pointedEntity;
private MouseFilter mouseFilterXAxis = new MouseFilter();
private MouseFilter mouseFilterYAxis = new MouseFilter();
/** Mouse filter dummy 1 */
private MouseFilter mouseFilterDummy1 = new MouseFilter();
/** Mouse filter dummy 2 */
private MouseFilter mouseFilterDummy2 = new MouseFilter();
/** Mouse filter dummy 3 */
private MouseFilter mouseFilterDummy3 = new MouseFilter();
/** Mouse filter dummy 4 */
private MouseFilter mouseFilterDummy4 = new MouseFilter();
private float thirdPersonDistance = 4.0F;
/** Third person distance temp */
private float thirdPersonDistanceTemp = 4.0F;
private float debugCamYaw;
private float prevDebugCamYaw;
private float debugCamPitch;
private float prevDebugCamPitch;
/** Smooth cam yaw */
private float smoothCamYaw;
/** Smooth cam pitch */
private float smoothCamPitch;
/** Smooth cam filter X */
private float smoothCamFilterX;
/** Smooth cam filter Y */
private float smoothCamFilterY;
/** Smooth cam partial ticks */
private float smoothCamPartialTicks;
private float debugCamFOV;
private float prevDebugCamFOV;
private float camRoll;
private float prevCamRoll;
/**
* The texture id of the blocklight/skylight texture used for lighting effects
*/
//private final DynamicTexture lightmapTexture;
/**
* Colors computed in updateLightmap() and loaded into the lightmap emptyTexture
*/
/** FOV modifier hand */
private float fovModifierHand;
/** FOV modifier hand prev */
private float fovModifierHandPrev;
/** FOV multiplier temp */
private float fovMultiplierTemp;
private float bossColorModifier;
private float bossColorModifierPrev;
/** Cloud fog mode */
private boolean cloudFog;
//private final IResourceManager resourceManager;
public ShaderGroup theShaderGroup;
private static final ResourceLocation[] shaderResourceLocations = new ResourceLocation[] {new ResourceLocation("shaders/post/notch.json"), new ResourceLocation("shaders/post/fxaa.json"), new ResourceLocation("shaders/post/art.json"), new ResourceLocation("shaders/post/bumpy.json"), new ResourceLocation("shaders/post/blobs2.json"), new ResourceLocation("shaders/post/pencil.json"), new ResourceLocation("shaders/post/color_convolve.json"), new ResourceLocation("shaders/post/deconverge.json"), new ResourceLocation("shaders/post/flip.json"), new ResourceLocation("shaders/post/invert.json"), new ResourceLocation("shaders/post/ntsc.json"), new ResourceLocation("shaders/post/outline.json"), new ResourceLocation("shaders/post/phosphor.json"), new ResourceLocation("shaders/post/scan_pincushion.json"), new ResourceLocation("shaders/post/sobel.json"), new ResourceLocation("shaders/post/bits.json"), new ResourceLocation("shaders/post/desaturate.json"), new ResourceLocation("shaders/post/green.json"), new ResourceLocation("shaders/post/blur.json"), new ResourceLocation("shaders/post/wobble.json"), new ResourceLocation("shaders/post/blobs.json"), new ResourceLocation("shaders/post/antialias.json")};
public static final int shaderCount = shaderResourceLocations.length;
private int shaderIndex;
private double cameraZoom;
private double cameraYaw;
private double cameraPitch;
/** Previous frame time in milliseconds */
private long prevFrameTime;
/** End time of last render (ns) */
private long renderEndNanoTime;
/**
* Is set, updateCameraAndRender() calls updateLightmap(); set by updateTorchFlicker()
*/
private boolean lightmapUpdateNeeded;
/** Torch flicker X */
float torchFlickerX;
/** Torch flicker DX */
float torchFlickerDX;
/** Torch flicker Y */
float torchFlickerY;
/** Torch flicker DY */
float torchFlickerDY;
private Random random;
/** Rain sound counter */
private int rainSoundCounter;
/** Rain X coords */
float[] rainXCoords;
/** Rain Y coords */
float[] rainYCoords;
/** Fog color buffer */
FloatBuffer fogColorBuffer;
/** red component of the fog color */
float fogColorRed;
/** green component of the fog color */
float fogColorGreen;
/** blue component of the fog color */
float fogColorBlue;
/** Fog color 2 */
private float fogColor2;
/** Fog color 1 */
private float fogColor1;
Minecraft p_i45076_1_;
IResourceManager p_i45076_2_;
/**
* Debug view direction (0=OFF, 1=Front, 2=Right, 3=Back, 4=Left, 5=TiltLeft, 6=TiltRight)
*/
public int debugViewDirection;
private static final String __OBFID = "CL_00000947";
//bicause i no need err
private int p_78476_2_;
private float p_78476_1_;
private IResourceManager resourceManager;
/**
* Colors computed in updateLightmap() and loaded into the lightmap emptyTexture
*/
private int[] lightmapColors;
private ResourceLocation locationLightMap;
public ItemRenderer itemRenderer;
private MapItemRenderer theMapItemRenderer;
/**
* The texture id of the blocklight/skylight texture used for lighting effects
*/
private DynamicTexture lightmapTexture;
public void hzm(Minecraft p_i45076_1_, IResourceManager p_i45076_2_){
this.shaderIndex = shaderCount;
this.cameraZoom = 1.0D;
this.prevFrameTime = Minecraft.getSystemTime();
this.random = new Random();
this.fogColorBuffer = GLAllocation.createDirectFloatBuffer(16);
this.mc = p_i45076_1_;
this.resourceManager = p_i45076_2_;
this.theMapItemRenderer = new MapItemRenderer(p_i45076_1_.getTextureManager());
this.itemRenderer = new ItemRenderer(p_i45076_1_);
this.lightmapTexture = new DynamicTexture(16, 16);
this.locationLightMap = p_i45076_1_.getTextureManager().getDynamicTextureLocation("lightMap", this.lightmapTexture);
this.lightmapColors = this.lightmapTexture.getTextureData();
this.theShaderGroup = null;
}
private float getFOVModifier(float p_78481_1_, boolean p_78481_2_)
{
if (this.debugViewDirection > 0)
{
return 90.0F;
}
else
{
EntityPlayer var3 = (EntityPlayer)this.mc.renderViewEntity;
float var4 = 70.0F;
if (p_78481_2_)
{
var4 = this.mc.gameSettings.fovSetting;
var4 *= this.fovModifierHandPrev + (this.fovModifierHand - this.fovModifierHandPrev) * p_78481_1_;
}
if (var3.getHealth() <= 0.0F)
{
float var5 = (float)var3.deathTime + p_78481_1_;
var4 /= (1.0F - 500.0F / (var5 + 500.0F)) * 2.0F + 1.0F;
}
Block var6 = ActiveRenderInfo.getBlockAtEntityViewpoint(this.mc.theWorld, var3, p_78481_1_);
if (var6.getMaterial() == Material.water)
{
var4 = var4 * 60.0F / 70.0F;
}
return var4 + this.prevDebugCamFOV + (this.debugCamFOV - this.prevDebugCamFOV) * p_78481_1_;
}
}
private void hurtCameraEffect(float p_78482_1_)
{
EntityLivingBase var2 = this.mc.renderViewEntity;
float var3 = (float)var2.hurtTime - p_78482_1_;
float var4;
if (var2.getHealth() <= 0.0F)
{
var4 = (float)var2.deathTime + p_78482_1_;
GL11.glRotatef(40.0F - 8000.0F / (var4 + 200.0F), 0.0F, 0.0F, 1.0F);
}
if (var3 >= 0.0F)
{
var3 /= (float)var2.maxHurtTime;
var3 = MathHelper.sin(var3 * var3 * var3 * var3 * (float)Math.PI);
var4 = var2.attackedAtYaw;
GL11.glRotatef(-var4, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(-var3 * 14.0F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(var4, 0.0F, 1.0F, 0.0F);
}
}
/**
* Setups all the GL settings for view bobbing. Args: partialTickTime
*/
private void setupViewBobbing(float p_78475_1_)
{
if (this.mc.renderViewEntity instanceof EntityPlayer)
{
EntityPlayer var2 = (EntityPlayer)this.mc.renderViewEntity;
float var3 = var2.distanceWalkedModified - var2.prevDistanceWalkedModified;
float var4 = -(var2.distanceWalkedModified + var3 * p_78475_1_);
float var5 = var2.prevCameraYaw + (var2.cameraYaw - var2.prevCameraYaw) * p_78475_1_;
float var6 = var2.prevCameraPitch + (var2.cameraPitch - var2.prevCameraPitch) * p_78475_1_;
GL11.glTranslatef(MathHelper.sin(var4 * (float)Math.PI) * var5 * 0.5F, -Math.abs(MathHelper.cos(var4 * (float)Math.PI) * var5), 0.0F);
GL11.glRotatef(MathHelper.sin(var4 * (float)Math.PI) * var5 * 3.0F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(Math.abs(MathHelper.cos(var4 * (float)Math.PI - 0.2F) * var5) * 5.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotatef(var6, 1.0F, 0.0F, 0.0F);
}
}
/**
* Disable secondary texture unit used by lightmap
*/
public void disableLightmap(double p_78483_1_)
{
OpenGlHelper.setActiveTexture(OpenGlHelper.lightmapTexUnit);
GL11.glDisable(GL11.GL_TEXTURE_2D);
OpenGlHelper.setActiveTexture(OpenGlHelper.defaultTexUnit);
}
/**
* Enable lightmap in secondary texture unit
*/
public void enableLightmap(double p_78463_1_)
{
OpenGlHelper.setActiveTexture(OpenGlHelper.lightmapTexUnit);
GL11.glMatrixMode(GL11.GL_TEXTURE);
GL11.glLoadIdentity();
float var3 = 0.00390625F;
GL11.glScalef(var3, var3, var3);
GL11.glTranslatef(8.0F, 8.0F, 8.0F);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
this.mc.getTextureManager().bindTexture(this.locationLightMap);
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL11.GL_CLAMP);
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL11.GL_CLAMP);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glEnable(GL11.GL_TEXTURE_2D);
OpenGlHelper.setActiveTexture(OpenGlHelper.defaultTexUnit);
}
public MapItemRenderer getMapItemRenderer()
{
return this.theMapItemRenderer;
}
@SubscribeEvent
private void ScndHnd(RenderHandEvent e) {
if (this.debugViewDirection <= 0)
{
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
float var3 = 0.07F;
if (this.mc.gameSettings.anaglyph)
{
GL11.glTranslatef((float)(-(p_78476_2_ * 2 - 1)) * var3, 0.0F, 0.0F);
}
if (this.cameraZoom != 1.0D)
{
GL11.glTranslatef((float)this.cameraYaw, (float)(-this.cameraPitch), 0.0F);
GL11.glScaled(this.cameraZoom, this.cameraZoom, 1.0D);
}
Project.gluPerspective(this.getFOVModifier(p_78476_1_, false), (float)this.mc.displayWidth / (float)this.mc.displayHeight, 0.05F, this.farPlaneDistance * 2.0F);
if (this.mc.playerController.enableEverythingIsScrewedUpMode())
{
float var4 = 0.6666667F;
GL11.glScalef(1.0F, var4, 1.0F);
}
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glLoadIdentity();
if (this.mc.gameSettings.anaglyph)
{
GL11.glTranslatef((float)(p_78476_2_ * 2 - 1) * 0.1F, 0.0F, 0.0F);
}
GL11.glPushMatrix();
this.hurtCameraEffect(p_78476_1_);
if (this.mc.gameSettings.viewBobbing)
{
this.setupViewBobbing(p_78476_1_);
}
if (this.mc.gameSettings.thirdPersonView == 0 && !this.mc.renderViewEntity.isPlayerSleeping() && !this.mc.gameSettings.hideGUI && !this.mc.playerController.enableEverythingIsScrewedUpMode())
{
this.enableLightmap((double)p_78476_1_);
this.itemRenderer.renderItemInFirstPerson(p_78476_1_);
this.disableLightmap((double)p_78476_1_);
}
GL11.glPopMatrix();
if (this.mc.gameSettings.thirdPersonView == 0 && !this.mc.renderViewEntity.isPlayerSleeping())
{
this.itemRenderer.renderOverlays(p_78476_1_);
this.hurtCameraEffect(p_78476_1_);
}
if (this.mc.gameSettings.viewBobbing)
{
this.setupViewBobbing(p_78476_1_);
}
}
}
}