From 0529bd9ae7869da32812966cb59a1fd29cc8677e Mon Sep 17 00:00:00 2001 From: Lizbeth Rika Date: Fri, 30 Jan 2015 13:12:54 +0000 Subject: [PATCH] Added partial ticks to the Lexica Botania's in hand animation. --- .../client/core/handler/ClientTickHandler.java | 8 ++++++++ .../client/render/item/RenderLexicon.java | 16 ++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/vazkii/botania/client/core/handler/ClientTickHandler.java b/src/main/java/vazkii/botania/client/core/handler/ClientTickHandler.java index 51e02c60a..392a7c8c0 100644 --- a/src/main/java/vazkii/botania/client/core/handler/ClientTickHandler.java +++ b/src/main/java/vazkii/botania/client/core/handler/ClientTickHandler.java @@ -27,13 +27,21 @@ import vazkii.botania.common.item.ItemTwigWand; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; +import cpw.mods.fml.common.gameevent.TickEvent.RenderTickEvent; public class ClientTickHandler { public static int ticksWithLexicaOpen = 0; public static int pageFlipTicks = 0; public static int ticksInGame = 0; + public static float partialTicks = 0; + @SubscribeEvent + public void renderTickStart(RenderTickEvent event) { + if(event.phase == Phase.START) + partialTicks = event.renderTickTime; + } + @SubscribeEvent public void clientTickEnd(ClientTickEvent event) { if(event.phase == Phase.END) { diff --git a/src/main/java/vazkii/botania/client/render/item/RenderLexicon.java b/src/main/java/vazkii/botania/client/render/item/RenderLexicon.java index 9a7472225..8932d780e 100644 --- a/src/main/java/vazkii/botania/client/render/item/RenderLexicon.java +++ b/src/main/java/vazkii/botania/client/render/item/RenderLexicon.java @@ -22,6 +22,7 @@ import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; import vazkii.botania.client.core.handler.ClientTickHandler; +import vazkii.botania.client.gui.lexicon.GuiLexicon; import vazkii.botania.client.lib.LibResources; import vazkii.botania.common.item.ItemLexicon; import vazkii.botania.common.item.ModItems; @@ -49,13 +50,24 @@ public class RenderLexicon implements IItemRenderer { float opening = 0F; float pageFlip = 0F; - int ticks = ClientTickHandler.ticksWithLexicaOpen; + float ticks = ClientTickHandler.ticksWithLexicaOpen; + if(ticks > 0 && ticks < 10) { + if(mc.currentScreen instanceof GuiLexicon) + ticks += ClientTickHandler.partialTicks; + else ticks -= ClientTickHandler.partialTicks; + } + GL11.glTranslatef(0.3F + 0.02F * ticks, 0.475F + 0.01F * ticks, -0.2F - 0.01F * ticks); GL11.glRotatef(87.5F + ticks * 5, 0F, 1F, 0F); GL11.glRotatef(ticks * 2.5F, 0F, 0F, 1F); GL11.glScalef(0.9F, 0.9F, 0.9F); opening = ticks / 12F; - pageFlip = ClientTickHandler.pageFlipTicks / 5F; + + float pageFlipTicks = ClientTickHandler.pageFlipTicks; + if(pageFlipTicks > 0) + pageFlipTicks -= ClientTickHandler.partialTicks; + + pageFlip = pageFlipTicks / 5F; model.render(null, 0F, 0F, pageFlip, opening, 0F, 1F / 16F); if(ticks < 3) {