From 475197c2f5cb124c95cca7ea7ca80e8d3cfcae4d Mon Sep 17 00:00:00 2001 From: Lizbeth Rika Date: Fri, 29 Aug 2014 03:02:56 +0100 Subject: [PATCH] Fancy fancy new wings. --- .../core/handler/JibrilRenderHandler.java | 74 ---------- .../core/handler/TiaraWingRenderHandler.java | 137 ++++++++++++++++++ .../client/core/proxy/ClientProxy.java | 4 +- .../equipment/bauble/ItemFlightTiara.java | 28 +++- resources/assets/botania/lang/en_US.lang | 10 ++ .../botania/textures/items/flightTiara2.png | Bin 3068 -> 3232 bytes .../botania/textures/items/flightTiara3.png | Bin 0 -> 2941 bytes .../botania/textures/items/flightTiara4.png | Bin 0 -> 3389 bytes .../botania/textures/items/flightTiara5.png | Bin 0 -> 3311 bytes .../botania/textures/items/flightTiara6.png | Bin 0 -> 3130 bytes .../botania/textures/items/flightTiara7.png | Bin 0 -> 333 bytes 11 files changed, 170 insertions(+), 83 deletions(-) delete mode 100644 MODSRC/vazkii/botania/client/core/handler/JibrilRenderHandler.java create mode 100644 MODSRC/vazkii/botania/client/core/handler/TiaraWingRenderHandler.java create mode 100644 resources/assets/botania/textures/items/flightTiara3.png create mode 100644 resources/assets/botania/textures/items/flightTiara4.png create mode 100644 resources/assets/botania/textures/items/flightTiara5.png create mode 100644 resources/assets/botania/textures/items/flightTiara6.png create mode 100644 resources/assets/botania/textures/items/flightTiara7.png diff --git a/MODSRC/vazkii/botania/client/core/handler/JibrilRenderHandler.java b/MODSRC/vazkii/botania/client/core/handler/JibrilRenderHandler.java deleted file mode 100644 index 73f36eedb..000000000 --- a/MODSRC/vazkii/botania/client/core/handler/JibrilRenderHandler.java +++ /dev/null @@ -1,74 +0,0 @@ -/** - * This class was created by . It's distributed as - * part of the Botania Mod. Get the Source Code in github: - * https://github.com/Vazkii/Botania - * - * Botania is Open Source and distributed under a - * Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License - * (http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_GB) - * - * File Created @ [Aug 27, 2014, 8:55:00 PM (GMT)] - */ -package vazkii.botania.client.core.handler; - -import org.lwjgl.opengl.GL11; - -import baubles.common.container.InventoryBaubles; -import baubles.common.lib.PlayerHandler; -import vazkii.botania.common.block.BlockModFlower; -import vazkii.botania.common.item.equipment.bauble.ItemFlightTiara; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.ItemRenderer; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.util.IIcon; -import net.minecraftforge.client.event.RenderPlayerEvent; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; - -public final class JibrilRenderHandler { - - @SubscribeEvent - public void onPlayerRender(RenderPlayerEvent.Specials.Post event) { - InventoryBaubles inv = PlayerHandler.getPlayerBaubles(event.entityPlayer); - if(inv.getStackInSlot(0) != null && inv.getStackInSlot(0).getItem() instanceof ItemFlightTiara) { - GL11.glPushMatrix(); - IIcon icon = event.entityPlayer.worldObj.provider.isHellWorld ? ItemFlightTiara.iconDemonWings : ItemFlightTiara.iconWings; - Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture); - - boolean flying = event.entityPlayer.capabilities.isFlying; - - float rz = 120F; - float rx = 20F + (float) ((Math.sin((double) event.entityPlayer.ticksExisted * (flying ? 0.4F : 0.2F)) + 0.5F) * (flying ? 30F : 5F)); - float d = 0F; - float h = 0.4F; - float i = 0.15F; - - float f = icon.getMinU(); - float f1 = icon.getMaxU(); - float f2 = icon.getMinV(); - float f3 = icon.getMaxV(); - - if(event.entityPlayer.isSneaking()) - GL11.glRotatef(28.64789F, 1.0F, 0.0F, 0.0F); - - GL11.glTranslatef(-d, h, i); - GL11.glRotatef(rz, 0F, 0F, 1F); - GL11.glRotatef(rx, 1F, 0F, 0F); - ItemRenderer.renderItemIn2D(Tessellator.instance, f1, f2, f, f3, icon.getIconWidth(), icon.getIconHeight(), 1F / 32F); - GL11.glRotatef(-rx, 1F, 0F, 0F); - GL11.glRotatef(-rz, 0F, 0F, 1F); - - GL11.glScalef(-1F, 1F, 1F); - GL11.glRotatef(rz, 0F, 0F, 1F); - GL11.glRotatef(rx, 1F, 0F, 0F); - ItemRenderer.renderItemIn2D(Tessellator.instance, f1, f2, f, f3, icon.getIconWidth(), icon.getIconHeight(), 1F / 32F); - GL11.glRotatef(-rx, 1F, 0F, 0F); - GL11.glRotatef(-rz, 0F, 0F, 1F); - GL11.glTranslatef(d, 0F, 0F); - - - GL11.glColor3f(1F, 1F, 1F); - GL11.glPopMatrix(); - } - } -} diff --git a/MODSRC/vazkii/botania/client/core/handler/TiaraWingRenderHandler.java b/MODSRC/vazkii/botania/client/core/handler/TiaraWingRenderHandler.java new file mode 100644 index 000000000..b14cacf7b --- /dev/null +++ b/MODSRC/vazkii/botania/client/core/handler/TiaraWingRenderHandler.java @@ -0,0 +1,137 @@ +/** + * This class was created by . It's distributed as + * part of the Botania Mod. Get the Source Code in github: + * https://github.com/Vazkii/Botania + * + * Botania is Open Source and distributed under a + * Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License + * (http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_GB) + * + * File Created @ [Aug 27, 2014, 8:55:00 PM (GMT)] + */ +package vazkii.botania.client.core.handler; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.ItemRenderer; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.util.IIcon; +import net.minecraftforge.client.event.RenderPlayerEvent; + +import org.lwjgl.opengl.GL11; + +import vazkii.botania.common.item.equipment.bauble.ItemFlightTiara; +import baubles.common.container.InventoryBaubles; +import baubles.common.lib.PlayerHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public final class TiaraWingRenderHandler { + + @SubscribeEvent + public void onPlayerRender(RenderPlayerEvent.Specials.Post event) { + InventoryBaubles inv = PlayerHandler.getPlayerBaubles(event.entityPlayer); + if(inv.getStackInSlot(0) != null && inv.getStackInSlot(0).getItem() instanceof ItemFlightTiara) { + int meta = inv.getStackInSlot(0).getItemDamage(); + if(meta > 0 && meta <= ItemFlightTiara.wingIcons.length) { + IIcon icon = ItemFlightTiara.wingIcons[meta - 1]; + Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture); + + boolean flying = event.entityPlayer.capabilities.isFlying; + + float rz = 120F; + float rx = 20F + (float) ((Math.sin((double) event.entityPlayer.ticksExisted * (flying ? 0.4F : 0.2F)) + 0.5F) * (flying ? 30F : 5F)); + float ry = 0F; + float h = 0.2F; + float i = 0.15F; + float s = 1F; + + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + + switch(meta) { + case 1 : { // Jibril + h = 0.4F; + break; + } + case 2 : { // Sephiroth + s = 1.3F; + break; + } + case 3 : { // Cirno + h = -0.1F; + rz = 0F; + rx = 0F; + i = 0.3F; + break; + } + case 4 : { // Fire + int light = 15728880; + int lightmapX = light % 65536; + int lightmapY = light / 65536; + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lightmapX, lightmapY); + break; + } + case 5 : { // Kuroyukihime + h = 0.8F; + rz = 180F; + ry = -rx; + rx = 0F; + s = 2F; + break; + } + case 6 : { // Random Devil + rz = 150F; + break; + } + case 7 : { // Lyfa + h = -0.1F; + rz = 0F; + ry = -rx; + rx = 0F; + GL11.glColor4f(1F, 1F, 1F, 0.5F + (float) Math.cos((double) event.entityPlayer.ticksExisted * 0.3F) * 0.2F); + break; + } + } + + float f = icon.getMinU(); + float f1 = icon.getMaxU(); + float f2 = icon.getMinV(); + float f3 = icon.getMaxV(); + float sr = 1F / s; + + if(event.entityPlayer.isSneaking()) + GL11.glRotatef(28.64789F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslatef(0F, h, i); + + GL11.glRotatef(rz, 0F, 0F, 1F); + GL11.glRotatef(rx, 1F, 0F, 0F); + GL11.glRotatef(ry, 0F, 1F, 0F); + GL11.glScalef(s, s, s); + ItemRenderer.renderItemIn2D(Tessellator.instance, f1, f2, f, f3, icon.getIconWidth(), icon.getIconHeight(), 1F / 32F); + GL11.glScalef(sr, sr, sr); + GL11.glRotatef(-ry, 0F, 1F, 0F); + GL11.glRotatef(-rx, 1F, 0F, 0F); + GL11.glRotatef(-rz, 0F, 0F, 1F); + + if(meta != 2) { // Sephiroth + GL11.glScalef(-1F, 1F, 1F); + GL11.glRotatef(rz, 0F, 0F, 1F); + GL11.glRotatef(rx, 1F, 0F, 0F); + GL11.glRotatef(ry, 0F, 1F, 0F); + GL11.glScalef(s, s, s); + ItemRenderer.renderItemIn2D(Tessellator.instance, f1, f2, f, f3, icon.getIconWidth(), icon.getIconHeight(), 1F / 32F); + GL11.glScalef(sr, sr, sr); + GL11.glRotatef(-ry, 1F, 0F, 0F); + GL11.glRotatef(-rx, 1F, 0F, 0F); + GL11.glRotatef(-rz, 0F, 0F, 1F); + } + + GL11.glColor3f(1F, 1F, 1F); + GL11.glPopMatrix(); + } + } + } +} diff --git a/MODSRC/vazkii/botania/client/core/proxy/ClientProxy.java b/MODSRC/vazkii/botania/client/core/proxy/ClientProxy.java index f03327915..c3048ee4d 100644 --- a/MODSRC/vazkii/botania/client/core/proxy/ClientProxy.java +++ b/MODSRC/vazkii/botania/client/core/proxy/ClientProxy.java @@ -28,7 +28,7 @@ import vazkii.botania.client.core.handler.BotaniaPlayerController; import vazkii.botania.client.core.handler.BoundTileRenderer; import vazkii.botania.client.core.handler.ClientTickHandler; import vazkii.botania.client.core.handler.HUDHandler; -import vazkii.botania.client.core.handler.JibrilRenderHandler; +import vazkii.botania.client.core.handler.TiaraWingRenderHandler; import vazkii.botania.client.core.handler.LightningHandler; import vazkii.botania.client.core.handler.TooltipHandler; import vazkii.botania.client.core.helper.ShaderHelper; @@ -104,7 +104,7 @@ public class ClientProxy extends CommonProxy { if(ConfigHandler.boundBlockWireframe) MinecraftForge.EVENT_BUS.register(new BoundTileRenderer()); MinecraftForge.EVENT_BUS.register(new TooltipHandler()); - MinecraftForge.EVENT_BUS.register(new JibrilRenderHandler()); + MinecraftForge.EVENT_BUS.register(new TiaraWingRenderHandler()); if(ConfigHandler.versionCheckEnabled) new VersionChecker().init(); diff --git a/MODSRC/vazkii/botania/common/item/equipment/bauble/ItemFlightTiara.java b/MODSRC/vazkii/botania/common/item/equipment/bauble/ItemFlightTiara.java index 380b23bd4..4f94f74a0 100644 --- a/MODSRC/vazkii/botania/common/item/equipment/bauble/ItemFlightTiara.java +++ b/MODSRC/vazkii/botania/common/item/equipment/bauble/ItemFlightTiara.java @@ -15,9 +15,12 @@ import java.util.ArrayList; import java.util.List; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; import vazkii.botania.api.mana.IManaUsingItem; @@ -38,15 +41,14 @@ public class ItemFlightTiara extends ItemBauble implements IManaUsingItem { public static List playersWithFlight = new ArrayList(); private static final int COST = 50; - @SideOnly(Side.CLIENT) - public static IIcon iconWings; - @SideOnly(Side.CLIENT) - public static IIcon iconDemonWings; - + public static IIcon[] wingIcons; + private static final int WING_TYPES = 7; + public ItemFlightTiara() { super(LibItemNames.FLIGHT_TIARA); MinecraftForge.EVENT_BUS.register(this); FMLCommonHandler.instance().bus().register(this); + setHasSubtypes(true); } @Override @@ -58,8 +60,20 @@ public class ItemFlightTiara extends ItemBauble implements IManaUsingItem { @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister par1IconRegister) { itemIcon = IconHelper.forItem(par1IconRegister, this, 0); - iconWings = IconHelper.forItem(par1IconRegister, this, 1); - iconDemonWings = IconHelper.forItem(par1IconRegister, this, 2); + wingIcons = new IIcon[WING_TYPES]; + for(int i = 0; i < WING_TYPES; i++) + wingIcons[i] = IconHelper.forItem(par1IconRegister, this, i + 1); + } + + @Override + public void getSubItems(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < WING_TYPES + 1; i++) + list.add(new ItemStack(item, 1, i)); + } + + @Override + public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) { + par3List.add(StatCollector.translateToLocal("botania.wings" + par1ItemStack.getItemDamage())); } @SubscribeEvent diff --git a/resources/assets/botania/lang/en_US.lang b/resources/assets/botania/lang/en_US.lang index 655791b52..4e5353fce 100644 --- a/resources/assets/botania/lang/en_US.lang +++ b/resources/assets/botania/lang/en_US.lang @@ -76,6 +76,16 @@ botania.rank3=&aA botania.rank4=&dS botania.rank5=&6SS +# WINGS +botania.wings0=No Wings +botania.wings1=Wings: Flügel +botania.wings2=Wings: One-Winged Angel +botania.wings3=Wings: Ice Fairy +botania.wings4=Wings: Firelord +botania.wings5=Wings: Black Snow Princess +botania.wings6=Wings: Lord of the Pit +botania.wings7=Wings: Sylph + # ROMAN NUMERALS botania.roman1=I botania.roman2=II diff --git a/resources/assets/botania/textures/items/flightTiara2.png b/resources/assets/botania/textures/items/flightTiara2.png index d66e4e9d7758b0c3a43f40c8e128efea117b4d52..b67419be8b3096b0296a95ea0a93d35eba1ba0e4 100644 GIT binary patch delta 491 zcmVXzAb`=maK)FMulvg(l1BeL6y^XIjA0mjKiG0P z%QEV^4t?LlIk$g`#}e9g9kMK=d7i%mMHK)fNrEs8SKy^V%k`TjFB9OLLy{ybmD1*U z_V2-OT<-hcE09MHTZVcU_%Gn(oC7n%T8qB#VXehDjz5&{y1X<%;z2}+qR5Ybt_gk< zm!c@>^?Jb=vntg&2O`4hbb>L4nR<0Z8f7G+`J9v~6SS%U)(P*emxF`g}eyj-z*8 zVw9#Snx^4k&*9I^6-7bs_Z!w)D5W5V$>$et0VQ9bPL^d!%O7tPMTp~g8z}i&I{Df1 hJSPCC>zbwiX8?DdGhECq9XbF2002ovPDHLkV1g%T;{pHx delta 326 zcmV-M0lEI58T=QpzzTmSNklU5Jmq4BwKPxL&FU?Q7AdZmV1zt;S`iP z0pc3aS@IN?x3Xm%2N7$3g&6brGv78j=iv48`o*_;-X8%lOe57LAI56i7Jc7io@W3+ zeH9{vfKn>dthF%4pzAuU>l)tIXP^|~rL_hCD5bD03z!+hG*W*S_`E+{3esA`81n|s z{j5HN#ULqVSQo>UQefuKEi-di;G7E}V+^E}kWz-{oDM)ghjf-PEOndec9!xmjl|3c zSZuwBnX?F8vkuFAj+)+yj3D Y0GOMnprxLrq5uE@07*qoM6N<$f(nF}Q~&?~ diff --git a/resources/assets/botania/textures/items/flightTiara3.png b/resources/assets/botania/textures/items/flightTiara3.png new file mode 100644 index 0000000000000000000000000000000000000000..b0e90c962a9d4ac5bac527c4f650c6baa872bc7f GIT binary patch literal 2941 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 literal 0 HcmV?d00001 diff --git a/resources/assets/botania/textures/items/flightTiara4.png b/resources/assets/botania/textures/items/flightTiara4.png new file mode 100644 index 0000000000000000000000000000000000000000..d6d295ecfb7408f3e8d49c3244198a05e7a30b6e GIT binary patch literal 3389 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 T!s44~00000NkvXXu0mjf9ko)O literal 0 HcmV?d00001 diff --git a/resources/assets/botania/textures/items/flightTiara5.png b/resources/assets/botania/textures/items/flightTiara5.png new file mode 100644 index 0000000000000000000000000000000000000000..06ba461e0a4f76f7df61552a8ad5cbb3c1b0efe9 GIT binary patch literal 3311 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 U=4XIOYXATM07*qoM6N<$f+V5Iw*UYD literal 0 HcmV?d00001 diff --git a/resources/assets/botania/textures/items/flightTiara7.png b/resources/assets/botania/textures/items/flightTiara7.png new file mode 100644 index 0000000000000000000000000000000000000000..aa830f664f6c70e5be8ed78b486ec7ef919048b6 GIT binary patch literal 333 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}c0*}aI1_r*vAk26?e?&q9iy!t)x7$D3zfgF*C13FE6!3!9>qM z&*=BV<;Q?(_IbKEhFJKoy||J0kbyvJBEQ2)A)mt>KCH6N0WKj1EUqpm)ztKNIiLR~ z887tzl4oGa&nGI3bK7ILpFF5>_`4Wy^T(e%&opPxOu1?7dAV28=z)gz)n#*qt}xt* zYq#h*&NO}MqWuaNsUFSM&;Qm+Qy>wHxtVX^MU5xPWK7oujes#6w;A zPJ)LS%oAl6=qb$KaQk)Am*qNksk{&8KW36V$>>`0WMY-rkp}LI8}_^s3FBGg_Dk%L Z_$iiFQ-_A#n}9xH@O1TaS?83{1OQcwdg1^8 literal 0 HcmV?d00001