From bbf48864fa4894352964f28be11d6686d49052ad Mon Sep 17 00:00:00 2001 From: Vixid <52578495+Vixid1@users.noreply.github.com> Date: Fri, 21 Oct 2022 07:10:32 +0100 Subject: Entity Scale and Party and Guild chat social options (#363) 363/merge --- .../miscfeatures/entityviewer/EntityViewer.java | 63 ++++++++++++++++++++-- 1 file changed, 60 insertions(+), 3 deletions(-) (limited to 'src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewer.java') diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewer.java index 367d62d3..2f091304 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewer.java @@ -27,8 +27,10 @@ import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.inventory.GuiInventory; import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.boss.EntityDragon; import net.minecraft.entity.boss.EntityWither; @@ -63,6 +65,7 @@ import net.minecraft.entity.passive.EntitySquid; import net.minecraft.entity.passive.EntityVillager; import net.minecraft.entity.passive.EntityWolf; import net.minecraft.util.ResourceLocation; +import org.lwjgl.input.Keyboard; import java.io.IOException; import java.io.InputStreamReader; @@ -224,9 +227,23 @@ public class EntityViewer extends GuiScreen { float bottomOffset = 0F; EntityLivingBase stack = entity; while (true) { - + if (stack instanceof EntityDragon) { + if (Keyboard.isKeyDown(Keyboard.KEY_SPACE)) { + scale = 35; + bottomOffset = 0F; + } + else { + scale = 10; + bottomOffset = 2F; + } + } else if (stack instanceof EntityWither) { + scale = 20; + } else if (stack instanceof EntityGhast) { + scale = 8; + bottomOffset = 4F; + } stack.ticksExisted = Minecraft.getMinecraft().thePlayer.ticksExisted; - GuiInventory.drawEntityOnScreen( + drawEntityOnScreen( posX, (int) (posY - bottomOffset * scale), scale, @@ -242,4 +259,44 @@ public class EntityViewer extends GuiScreen { } } + + // Need this to flip the ender dragon and make it follow mouse correctly + public static void drawEntityOnScreen(int posX, int posY, int scale, float mouseX, float mouseY, EntityLivingBase ent) { + GlStateManager.enableColorMaterial(); + GlStateManager.pushMatrix(); + GlStateManager.translate((float)posX, (float)posY, 50.0F); + GlStateManager.scale((float)(-scale), (float)scale, (float)scale); + GlStateManager.rotate(180.0F, 0.0F, 0.0F, 1.0F); + float f = ent.renderYawOffset; + float g = ent.rotationYaw; + float h = ent.rotationPitch; + float i = ent.prevRotationYawHead; + float j = ent.rotationYawHead; + GlStateManager.rotate(135.0F, 0.0F, 1.0F, 0.0F); + RenderHelper.enableStandardItemLighting(); + GlStateManager.rotate((ent instanceof EntityDragon) ? 45.0F : -135.0F, 0.0F, 1.0F, 0.0F); + GlStateManager.rotate((ent instanceof EntityDragon) ? ((float)Math.atan(mouseY / 40.0F)) * 20.0F : -((float)Math.atan(mouseY / 40.0F)) * 20.0F, 1.0F, 0.0F, 0.0F); + ent.renderYawOffset = (float)Math.atan(mouseX / 40.0F) * 20.0F; + ent.rotationYaw = (float)Math.atan(mouseX / 40.0F) * 40.0F; + ent.rotationPitch = -((float)Math.atan(mouseY / 40.0F)) * 20.0F; + ent.rotationYawHead = ent.rotationYaw; + ent.prevRotationYawHead = ent.rotationYaw; + GlStateManager.translate(0.0F, 0.0F, 0.0F); + RenderManager renderManager = Minecraft.getMinecraft().getRenderManager(); + renderManager.setPlayerViewY(180.0F); + renderManager.setRenderShadow(false); + renderManager.renderEntityWithPosYaw(ent, 0.0D, 0.0D, 0.0D, 0.0F, 1.0F); + renderManager.setRenderShadow(true); + ent.renderYawOffset = f; + ent.rotationYaw = g; + ent.rotationPitch = h; + ent.prevRotationYawHead = i; + ent.rotationYawHead = j; + GlStateManager.popMatrix(); + RenderHelper.disableStandardItemLighting(); + GlStateManager.disableRescaleNormal(); + GlStateManager.setActiveTexture(OpenGlHelper.lightmapTexUnit); + GlStateManager.disableTexture2D(); + GlStateManager.setActiveTexture(OpenGlHelper.defaultTexUnit); + } } -- cgit