From fb797a73c53c01cf7431eab45c7dd6e5ace860fa Mon Sep 17 00:00:00 2001 From: Lizbeth Rika Date: Wed, 18 Feb 2015 17:16:32 +0000 Subject: [PATCH] Tail On! --- .../core/handler/BaubleRenderHandler.java | 50 ++++++++++++++++++ .../vazkii/botania/common/item/ItemMod.java | 3 +- .../armor/terrasteel/ItemTerrasteelHelm.java | 2 + .../item/material/ItemManaResource.java | 4 ++ .../assets/botania/textures/items/tail.png | Bin 0 -> 17951 bytes 5 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/assets/botania/textures/items/tail.png diff --git a/src/main/java/vazkii/botania/client/core/handler/BaubleRenderHandler.java b/src/main/java/vazkii/botania/client/core/handler/BaubleRenderHandler.java index aa68dd462..7d1169802 100644 --- a/src/main/java/vazkii/botania/client/core/handler/BaubleRenderHandler.java +++ b/src/main/java/vazkii/botania/client/core/handler/BaubleRenderHandler.java @@ -28,9 +28,12 @@ import org.lwjgl.opengl.GL11; import vazkii.botania.api.item.IBaubleRender; import vazkii.botania.api.item.IBaubleRender.Helper; import vazkii.botania.api.item.IBaubleRender.RenderType; +import vazkii.botania.common.block.BlockModFlower; +import vazkii.botania.common.block.ModBlocks; import vazkii.botania.common.core.handler.ConfigHandler; import vazkii.botania.common.item.ModItems; import vazkii.botania.common.item.equipment.armor.terrasteel.ItemTerrasteelHelm; +import vazkii.botania.common.item.material.ItemManaResource; import baubles.common.container.InventoryBaubles; import baubles.common.lib.PlayerHandler; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -62,6 +65,8 @@ public final class BaubleRenderHandler { ItemStack helm = player.inventory.armorItemInSlot(3); if(helm != null && helm.getItem() instanceof ItemTerrasteelHelm) ItemTerrasteelHelm.renderOnPlayer(helm, event); + if(event.entityPlayer.getCommandSenderName().equals("Vazkii")) + renderFancyExclusiveDevStuffBecauseImAnEvilDevWhoDoesntCareAboutTheCommunityBooo(event); GL11.glPopMatrix(); } @@ -117,5 +122,50 @@ public final class BaubleRenderHandler { } } } + + private void renderFancyExclusiveDevStuffBecauseImAnEvilDevWhoDoesntCareAboutTheCommunityBooo(RenderPlayerEvent event) { + GL11.glPushMatrix(); + IIcon icon = ((ItemManaResource) ModItems.manaResource).tailIcon; + float f = icon.getMinU(); + float f1 = icon.getMaxU(); + float f2 = icon.getMinV(); + float f3 = icon.getMaxV(); + Helper.translateToHeadLevel(event.entityPlayer); + Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture); + GL11.glPushMatrix(); + GL11.glRotatef(90F, 0F, 1F, 0F); + float t = 0.13F; + GL11.glTranslatef(t, -0.5F, -0.1F); + if(event.entityPlayer.motionY < 0) + GL11.glRotatef((float) event.entityPlayer.motionY * 20F, 1F, 0F, 0F); + + float r = -18F + (float) Math.sin(((float) ClientTickHandler.ticksInGame + event.partialRenderTick) * 0.05F) * 2F; + GL11.glRotatef(r, 0F, 0F, 1F); + float s = 0.9F; + GL11.glScalef(s, s, s); + ItemRenderer.renderItemIn2D(Tessellator.instance, f1, f2, f, f3, icon.getIconWidth(), icon.getIconHeight(), 1F / 16F); + GL11.glRotatef(-r, 0F, 0F, 1F); + GL11.glTranslatef(-t, -0F, 0F); + GL11.glScalef(-1F, 1F, 1F); + GL11.glTranslatef(t, -0F, 0F); + GL11.glRotatef(r, 0F, 0F, 1F); + ItemRenderer.renderItemIn2D(Tessellator.instance, f1, f2, f, f3, icon.getIconWidth(), icon.getIconHeight(), 1F / 16F); + GL11.glPopMatrix(); + + Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture); + icon = ((BlockModFlower) ModBlocks.flower).icons[6]; + f = icon.getMinU(); + f1 = icon.getMaxU(); + f2 = icon.getMinV(); + f3 = icon.getMaxV(); + GL11.glRotatef(180F, 0F, 0F, 1F); + GL11.glRotatef(90F, 0F, 1F, 0F); + GL11.glScalef(0.5F, 0.5F, 0.5F); + GL11.glTranslatef(-0.5F, 0.7F, 0F); + + ItemRenderer.renderItemIn2D(Tessellator.instance, f1, f2, f, f3, icon.getIconWidth(), icon.getIconHeight(), 1F / 16F); + + GL11.glPopMatrix(); + } } diff --git a/src/main/java/vazkii/botania/common/item/ItemMod.java b/src/main/java/vazkii/botania/common/item/ItemMod.java index 4e20174df..efdaae994 100644 --- a/src/main/java/vazkii/botania/common/item/ItemMod.java +++ b/src/main/java/vazkii/botania/common/item/ItemMod.java @@ -13,6 +13,7 @@ package vazkii.botania.common.item; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; import vazkii.botania.client.core.helper.IconHelper; import vazkii.botania.client.lib.LibResources; import vazkii.botania.common.core.BotaniaCreativeTab; @@ -21,7 +22,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class ItemMod extends Item { - + public ItemMod() { super(); setCreativeTab(BotaniaCreativeTab.INSTANCE); diff --git a/src/main/java/vazkii/botania/common/item/equipment/armor/terrasteel/ItemTerrasteelHelm.java b/src/main/java/vazkii/botania/common/item/equipment/armor/terrasteel/ItemTerrasteelHelm.java index 844031b03..fafb55bf5 100644 --- a/src/main/java/vazkii/botania/common/item/equipment/armor/terrasteel/ItemTerrasteelHelm.java +++ b/src/main/java/vazkii/botania/common/item/equipment/armor/terrasteel/ItemTerrasteelHelm.java @@ -111,6 +111,7 @@ public class ItemTerrasteelHelm extends ItemTerrasteelArmor implements IManaDisc @SideOnly(Side.CLIENT) public static void renderOnPlayer(ItemStack stack, RenderPlayerEvent event) { if(hasAnyWill(stack)) { + GL11.glPushMatrix(); float f = willIcon.getMinU(); float f1 = willIcon.getMaxU(); float f2 = willIcon.getMinV(); @@ -122,6 +123,7 @@ public class ItemTerrasteelHelm extends ItemTerrasteelArmor implements IManaDisc GL11.glTranslatef(-0.26F, 0.3F, -0.29F); GL11.glScalef(0.5F, 0.5F, 0.5F); ItemRenderer.renderItemIn2D(Tessellator.instance, f1, f2, f, f3, willIcon.getIconWidth(), willIcon.getIconHeight(), 1F / 16F); + GL11.glPopMatrix(); } } diff --git a/src/main/java/vazkii/botania/common/item/material/ItemManaResource.java b/src/main/java/vazkii/botania/common/item/material/ItemManaResource.java index dfa732306..2ed06a164 100644 --- a/src/main/java/vazkii/botania/common/item/material/ItemManaResource.java +++ b/src/main/java/vazkii/botania/common/item/material/ItemManaResource.java @@ -46,6 +46,8 @@ public class ItemManaResource extends ItemMod implements IFlowerComponent, IElve final int types = 16; IIcon[] icons; + public IIcon tailIcon = null; + public ItemManaResource() { super(); setUnlocalizedName(LibItemNames.MANA_RESOURCE); @@ -112,6 +114,8 @@ public class ItemManaResource extends ItemMod implements IFlowerComponent, IElve icons = new IIcon[types]; for(int i = 0; i < icons.length; i++) icons[i] = IconHelper.forName(par1IconRegister, LibItemNames.MANA_RESOURCE_NAMES[i]); + + tailIcon = IconHelper.forName(par1IconRegister, "tail"); } @Override diff --git a/src/main/resources/assets/botania/textures/items/tail.png b/src/main/resources/assets/botania/textures/items/tail.png new file mode 100644 index 0000000000000000000000000000000000000000..fe8f86466ed5052949506fc79446f9a968785a9c GIT binary patch literal 17951 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 literal 0 HcmV?d00001