mirror of
https://github.com/GTNewHorizons/Botania.git
synced 2026-11-13 16:54:06 +00:00
Render ALL the baubles!
This commit is contained in:
1 parent
9e4f2df4ea
commit
fb884fb225
20 files changed
+317
-11
No files matched your search
@@ -57,8 +57,12 @@ public final class BaubleRenderHandler {
|
||||
private void dispatchRenders(InventoryBaubles inv, RenderPlayerEvent event, RenderType type) {
|
||||
for(int i = 0; i < inv.getSizeInventory(); i++) {
|
||||
ItemStack stack = inv.getStackInSlot(i);
|
||||
if(stack != null && stack.getItem() instanceof IBaubleRender)
|
||||
if(stack != null && stack.getItem() instanceof IBaubleRender) {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glColor4f(1F, 1F, 1F, 1F);
|
||||
((IBaubleRender) stack.getItem()).onPlayerBaubleRender(stack, event, type);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -95,6 +95,9 @@ public final class LibResources {
|
||||
public static final String MODEL_TINY_POTATO = PREFIX_MODEL + "tinyPotato.png";
|
||||
public static final String MODEL_SPAWNER_CLAW = PREFIX_MODEL + "spawnerClaw.png";
|
||||
public static final String MODEL_BREWERY = PREFIX_MODEL + "brewery.png";
|
||||
public static final String MODEL_TRAVEL_BELT = PREFIX_MODEL + "travelBelt.png";
|
||||
public static final String MODEL_SUPER_TRAVEL_BELT = PREFIX_MODEL + "superTravelBelt.png";
|
||||
public static final String MODEL_KNOCKBACK_BELT = PREFIX_MODEL + "knockbackBelt.png";
|
||||
|
||||
public static final String MODEL_CAPE = "/assets/botania/textures/model/cape.png";
|
||||
|
||||
|
||||
@@ -14,7 +14,14 @@ package vazkii.botania.common.item.equipment.bauble;
|
||||
import java.awt.Color;
|
||||
import java.util.List;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
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.IIconRegister;
|
||||
import net.minecraft.client.renderer.texture.TextureMap;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@@ -27,11 +34,14 @@ import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.StatCollector;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.event.RenderPlayerEvent;
|
||||
import baubles.api.BaubleType;
|
||||
import vazkii.botania.api.BotaniaAPI;
|
||||
import vazkii.botania.api.brew.Brew;
|
||||
import vazkii.botania.api.brew.IBrewContainer;
|
||||
import vazkii.botania.api.brew.IBrewItem;
|
||||
import vazkii.botania.api.item.IBaubleRender;
|
||||
import vazkii.botania.api.item.IBaubleRender.Helper;
|
||||
import vazkii.botania.api.mana.IManaUsingItem;
|
||||
import vazkii.botania.api.mana.ManaItemHandler;
|
||||
import vazkii.botania.client.core.handler.ClientTickHandler;
|
||||
@@ -41,7 +51,7 @@ import vazkii.botania.common.item.ModItems;
|
||||
import vazkii.botania.common.item.brew.ItemBrewBase;
|
||||
import vazkii.botania.common.lib.LibItemNames;
|
||||
|
||||
public class ItemBloodPendant extends ItemBauble implements IBrewContainer, IBrewItem, IManaUsingItem {
|
||||
public class ItemBloodPendant extends ItemBauble implements IBrewContainer, IBrewItem, IManaUsingItem, IBaubleRender {
|
||||
|
||||
private static final String TAG_BREW_KEY = "brewKey";
|
||||
|
||||
@@ -64,8 +74,8 @@ public class ItemBloodPendant extends ItemBauble implements IBrewContainer, IBre
|
||||
|
||||
@Override
|
||||
public void registerIcons(IIconRegister par1IconRegister) {
|
||||
icons = new IIcon[2];
|
||||
for(int i = 0; i < 2; i++)
|
||||
icons = new IIcon[4];
|
||||
for(int i = 0; i < 4; i++)
|
||||
icons[i] = IconHelper.forItem(par1IconRegister, this, i);
|
||||
}
|
||||
|
||||
@@ -177,4 +187,32 @@ public class ItemBloodPendant extends ItemBauble implements IBrewContainer, IBre
|
||||
return getBrew(stack) != BotaniaAPI.fallbackBrew;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerBaubleRender(ItemStack stack, RenderPlayerEvent event, RenderType type) {
|
||||
if(type == RenderType.BODY) {
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture);
|
||||
Helper.rotateIfSneaking(event.entityPlayer);
|
||||
boolean armor = event.entityPlayer.getCurrentArmor(2) != null;
|
||||
GL11.glRotatef(180F, 1F, 0F, 0F);
|
||||
GL11.glTranslatef(-0.26F, -0.4F, armor ? 0.2F : 0.15F);
|
||||
GL11.glScalef(0.5F, 0.5F, 0.5F);
|
||||
|
||||
for(int i = 2; i < 4; i++) {
|
||||
IIcon icon = icons[i];
|
||||
float f = icon.getMinU();
|
||||
float f1 = icon.getMaxU();
|
||||
float f2 = icon.getMinV();
|
||||
float f3 = icon.getMaxV();
|
||||
ItemRenderer.renderItemIn2D(Tessellator.instance, f1, f2, f, f3, icon.getIconWidth(), icon.getIconHeight(), 1F / 32F);
|
||||
|
||||
Color color = new Color(getColorFromItemStack(stack, 1));
|
||||
GL11.glColor3ub((byte) color.getRed(), (byte) color.getGreen(), (byte) color.getBlue());
|
||||
int light = 15728880;
|
||||
int lightmapX = light % 65536;
|
||||
int lightmapY = light / 65536;
|
||||
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lightmapX, lightmapY);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -13,14 +13,24 @@ package vazkii.botania.common.item.equipment.bauble;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
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.entity.EntityLiving;
|
||||
import net.minecraft.entity.monster.EntityCreeper;
|
||||
import net.minecraft.entity.monster.IMob;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraftforge.client.event.RenderPlayerEvent;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.entity.living.LivingHurtEvent;
|
||||
import vazkii.botania.api.item.IBaubleRender;
|
||||
import vazkii.botania.api.item.IBaubleRender.Helper;
|
||||
import vazkii.botania.api.item.IBaubleRender.RenderType;
|
||||
import vazkii.botania.api.mana.IManaUsingItem;
|
||||
import vazkii.botania.api.mana.ManaItemHandler;
|
||||
import vazkii.botania.common.Botania;
|
||||
@@ -31,8 +41,10 @@ import baubles.api.BaubleType;
|
||||
import baubles.common.lib.PlayerHandler;
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import cpw.mods.fml.relauncher.ReflectionHelper;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
public class ItemDivaCharm extends ItemBauble implements IManaUsingItem {
|
||||
public class ItemDivaCharm extends ItemBauble implements IManaUsingItem, IBaubleRender {
|
||||
|
||||
public ItemDivaCharm() {
|
||||
super(LibItemNames.DIVA_CHARM);
|
||||
@@ -83,5 +95,24 @@ public class ItemDivaCharm extends ItemBauble implements IManaUsingItem {
|
||||
public boolean usesMana(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void onPlayerBaubleRender(ItemStack stack, RenderPlayerEvent event, RenderType type) {
|
||||
if(type == RenderType.HEAD) {
|
||||
float f = itemIcon.getMinU();
|
||||
float f1 = itemIcon.getMaxU();
|
||||
float f2 = itemIcon.getMinV();
|
||||
float f3 = itemIcon.getMaxV();
|
||||
boolean armor = event.entityPlayer.getCurrentArmor(3) != null;
|
||||
Helper.translateToHeadLevel(event.entityPlayer);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture);
|
||||
GL11.glRotatef(90F, 0F, 1F, 0F);
|
||||
GL11.glRotatef(180F, 1F, 0F, 0F);
|
||||
GL11.glTranslatef(-0.4F, 0.1F, armor ? -0.35F : -0.3F);
|
||||
GL11.glScalef(0.5F, 0.5F, 0.5F);
|
||||
ItemRenderer.renderItemIn2D(Tessellator.instance, f1, f2, f, f3, itemIcon.getIconWidth(), itemIcon.getIconHeight(), 1F / 16F);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -11,20 +11,32 @@
|
||||
*/
|
||||
package vazkii.botania.common.item.equipment.bauble;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
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.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.potion.Potion;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.util.ChatComponentTranslation;
|
||||
import net.minecraftforge.client.event.RenderPlayerEvent;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.entity.living.LivingDeathEvent;
|
||||
import vazkii.botania.api.item.IBaubleRender;
|
||||
import vazkii.botania.api.item.IBaubleRender.Helper;
|
||||
import vazkii.botania.api.item.IBaubleRender.RenderType;
|
||||
import vazkii.botania.common.lib.LibItemNames;
|
||||
import baubles.api.BaubleType;
|
||||
import baubles.common.lib.PlayerHandler;
|
||||
import cpw.mods.fml.common.eventhandler.EventPriority;
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
public class ItemGoldenLaurel extends ItemBauble {
|
||||
public class ItemGoldenLaurel extends ItemBauble implements IBaubleRender {
|
||||
|
||||
public ItemGoldenLaurel() {
|
||||
super(LibItemNames.GOLDEN_LAUREL);
|
||||
@@ -52,4 +64,27 @@ public class ItemGoldenLaurel extends ItemBauble {
|
||||
public BaubleType getBaubleType(ItemStack itemstack) {
|
||||
return BaubleType.AMULET;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void onPlayerBaubleRender(ItemStack stack, RenderPlayerEvent event, RenderType type) {
|
||||
if(type == RenderType.HEAD) {
|
||||
float f = itemIcon.getMinU();
|
||||
float f1 = itemIcon.getMaxU();
|
||||
float f2 = itemIcon.getMinV();
|
||||
float f3 = itemIcon.getMaxV();
|
||||
boolean armor = event.entityPlayer.getCurrentArmor(3) != null;
|
||||
Helper.translateToHeadLevel(event.entityPlayer);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture);
|
||||
GL11.glRotatef(180F, 0F, 0F, 1F);
|
||||
GL11.glRotatef(90F, 0F, 1F, 0F);
|
||||
GL11.glRotatef(-100F, 1F, 0F, 0F);
|
||||
GL11.glTranslatef(-0.5F, -0.55F, 0.3F);
|
||||
if(armor) {
|
||||
GL11.glScalef(1.1F, 1.1F, 1F);
|
||||
GL11.glTranslatef(-0.05F, -0.1F, 0F);
|
||||
}
|
||||
ItemRenderer.renderItemIn2D(Tessellator.instance, f1, f2, f, f3, itemIcon.getIconWidth(), itemIcon.getIconHeight(), 1F / 32F);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,24 +11,42 @@
|
||||
*/
|
||||
package vazkii.botania.common.item.equipment.bauble;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.material.Material;
|
||||
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.IIconRegister;
|
||||
import net.minecraft.client.renderer.texture.TextureMap;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ChunkCoordinates;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.event.RenderPlayerEvent;
|
||||
import vazkii.botania.api.item.IBaubleRender;
|
||||
import vazkii.botania.api.item.IBaubleRender.Helper;
|
||||
import vazkii.botania.api.item.IBaubleRender.RenderType;
|
||||
import vazkii.botania.client.core.helper.IconHelper;
|
||||
import vazkii.botania.common.lib.LibItemNames;
|
||||
import baubles.api.BaubleType;
|
||||
|
||||
public class ItemIcePendant extends ItemBauble {
|
||||
public class ItemIcePendant extends ItemBauble implements IBaubleRender {
|
||||
|
||||
IIcon gemIcon;
|
||||
public static Map<String, List<IceRemover>> playerIceBlocks = new HashMap();
|
||||
|
||||
public ItemIcePendant() {
|
||||
@@ -40,6 +58,12 @@ public class ItemIcePendant extends ItemBauble {
|
||||
return BaubleType.AMULET;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerIcons(IIconRegister par1IconRegister) {
|
||||
super.registerIcons(par1IconRegister);
|
||||
gemIcon = IconHelper.forItem(par1IconRegister, this, "Gem");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWornTick(ItemStack stack, EntityLivingBase entity) {
|
||||
super.onWornTick(stack, entity);
|
||||
@@ -91,6 +115,25 @@ public class ItemIcePendant extends ItemBauble {
|
||||
ice.tick(player.worldObj, removers);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerBaubleRender(ItemStack stack, RenderPlayerEvent event, RenderType type) {
|
||||
if(type == RenderType.BODY) {
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture);
|
||||
Helper.rotateIfSneaking(event.entityPlayer);
|
||||
boolean armor = event.entityPlayer.getCurrentArmor(2) != null;
|
||||
GL11.glRotatef(180F, 1F, 0F, 0F);
|
||||
GL11.glTranslatef(-0.36F, -0.3F, armor ? 0.2F : 0.15F);
|
||||
GL11.glRotatef(-45F, 0F, 0F, 1F);
|
||||
GL11.glScalef(0.5F, 0.5F, 0.5F);
|
||||
|
||||
float f = gemIcon.getMinU();
|
||||
float f1 = gemIcon.getMaxU();
|
||||
float f2 = gemIcon.getMinV();
|
||||
float f3 = gemIcon.getMaxV();
|
||||
ItemRenderer.renderItemIn2D(Tessellator.instance, f1, f2, f, f3, gemIcon.getIconWidth(), gemIcon.getIconHeight(), 1F / 32F);
|
||||
}
|
||||
}
|
||||
|
||||
class IceRemover {
|
||||
|
||||
int time = 30;
|
||||
|
||||
@@ -13,16 +13,32 @@ package vazkii.botania.common.item.equipment.bauble;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.ModelBiped;
|
||||
import net.minecraft.entity.SharedMonsterAttributes;
|
||||
import net.minecraft.entity.ai.attributes.AttributeModifier;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.client.event.RenderPlayerEvent;
|
||||
import vazkii.botania.api.item.IBaubleRender;
|
||||
import vazkii.botania.api.item.IBaubleRender.Helper;
|
||||
import vazkii.botania.api.item.IBaubleRender.RenderType;
|
||||
import vazkii.botania.client.lib.LibResources;
|
||||
import vazkii.botania.common.lib.LibItemNames;
|
||||
import baubles.api.BaubleType;
|
||||
|
||||
import com.google.common.collect.Multimap;
|
||||
|
||||
public class ItemKnockbackBelt extends ItemBaubleModifier {
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
public class ItemKnockbackBelt extends ItemBaubleModifier implements IBaubleRender {
|
||||
|
||||
private static final ResourceLocation texture = new ResourceLocation(LibResources.MODEL_KNOCKBACK_BELT);
|
||||
private static final ModelBiped model = new ModelBiped();
|
||||
|
||||
public ItemKnockbackBelt() {
|
||||
super(LibItemNames.KNOCKBACK_BELT);
|
||||
}
|
||||
@@ -36,5 +52,20 @@ public class ItemKnockbackBelt extends ItemBaubleModifier {
|
||||
void fillModifiers(Multimap<String, AttributeModifier> attributes) {
|
||||
attributes.put(SharedMonsterAttributes.knockbackResistance.getAttributeUnlocalizedName(), new AttributeModifier(new UUID(2745708 /** Random number **/, 43743), "Bauble modifier", 1, 0));
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void onPlayerBaubleRender(ItemStack stack, RenderPlayerEvent event, RenderType type) {
|
||||
if(type == RenderType.BODY) {
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(texture);
|
||||
Helper.rotateIfSneaking(event.entityPlayer);
|
||||
boolean armor = event.entityPlayer.getCurrentArmor(1) != null;
|
||||
GL11.glTranslatef(0F, 0.1F, 0F);
|
||||
|
||||
float s = (armor ? 1.3F : 1.05F) / 16F;
|
||||
GL11.glScalef(s, s, s);
|
||||
model.bipedBody.render(1F);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -11,13 +11,27 @@
|
||||
*/
|
||||
package vazkii.botania.common.item.equipment.bauble;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.ItemRenderer;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.client.renderer.texture.TextureMap;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraftforge.client.event.RenderPlayerEvent;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import vazkii.botania.api.item.IBaubleRender;
|
||||
import vazkii.botania.client.core.helper.IconHelper;
|
||||
import vazkii.botania.common.lib.LibItemNames;
|
||||
import baubles.api.BaubleType;
|
||||
|
||||
public class ItemLavaPendant extends ItemBauble {
|
||||
public class ItemLavaPendant extends ItemBauble implements IBaubleRender {
|
||||
|
||||
IIcon gemIcon;
|
||||
|
||||
public ItemLavaPendant() {
|
||||
super(LibItemNames.LAVA_PENDANT);
|
||||
}
|
||||
@@ -33,4 +47,29 @@ public class ItemLavaPendant extends ItemBauble {
|
||||
return BaubleType.AMULET;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerIcons(IIconRegister par1IconRegister) {
|
||||
super.registerIcons(par1IconRegister);
|
||||
gemIcon = IconHelper.forItem(par1IconRegister, this, "Gem");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerBaubleRender(ItemStack stack, RenderPlayerEvent event, RenderType type) {
|
||||
if(type == RenderType.BODY) {
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture);
|
||||
Helper.rotateIfSneaking(event.entityPlayer);
|
||||
boolean armor = event.entityPlayer.getCurrentArmor(2) != null;
|
||||
GL11.glRotatef(180F, 1F, 0F, 0F);
|
||||
GL11.glTranslatef(-0.36F, -0.24F, armor ? 0.2F : 0.15F);
|
||||
GL11.glRotatef(-45F, 0F, 0F, 1F);
|
||||
GL11.glScalef(0.5F, 0.5F, 0.5F);
|
||||
|
||||
float f = gemIcon.getMinU();
|
||||
float f1 = gemIcon.getMaxU();
|
||||
float f2 = gemIcon.getMinV();
|
||||
float f3 = gemIcon.getMaxV();
|
||||
ItemRenderer.renderItemIn2D(Tessellator.instance, f1, f2, f, f3, gemIcon.getIconWidth(), gemIcon.getIconHeight(), 1F / 32F);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+41
-1
@@ -11,16 +11,31 @@
|
||||
*/
|
||||
package vazkii.botania.common.item.equipment.bauble;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.ItemRenderer;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.client.renderer.texture.TextureMap;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraftforge.client.event.RenderPlayerEvent;
|
||||
import vazkii.botania.api.item.IBaubleRender;
|
||||
import vazkii.botania.api.item.IBaubleRender.Helper;
|
||||
import vazkii.botania.api.item.IBaubleRender.RenderType;
|
||||
import vazkii.botania.client.core.helper.IconHelper;
|
||||
import vazkii.botania.common.lib.LibItemNames;
|
||||
import vazkii.botania.common.lib.LibObfuscation;
|
||||
import baubles.api.BaubleType;
|
||||
import cpw.mods.fml.relauncher.ReflectionHelper;
|
||||
|
||||
public class ItemSuperLavaPendant extends ItemBauble {
|
||||
public class ItemSuperLavaPendant extends ItemBauble implements IBaubleRender {
|
||||
|
||||
IIcon gemIcon;
|
||||
|
||||
public ItemSuperLavaPendant() {
|
||||
super(LibItemNames.SUPER_LAVA_PENDANT);
|
||||
}
|
||||
@@ -43,4 +58,29 @@ public class ItemSuperLavaPendant extends ItemBauble {
|
||||
public BaubleType getBaubleType(ItemStack itemstack) {
|
||||
return BaubleType.AMULET;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerIcons(IIconRegister par1IconRegister) {
|
||||
super.registerIcons(par1IconRegister);
|
||||
gemIcon = IconHelper.forItem(par1IconRegister, this, "Gem");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerBaubleRender(ItemStack stack, RenderPlayerEvent event, RenderType type) {
|
||||
if(type == RenderType.BODY) {
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture);
|
||||
Helper.rotateIfSneaking(event.entityPlayer);
|
||||
boolean armor = event.entityPlayer.getCurrentArmor(2) != null;
|
||||
GL11.glRotatef(180F, 1F, 0F, 0F);
|
||||
GL11.glTranslatef(-0.36F, -0.24F, armor ? 0.2F : 0.15F);
|
||||
GL11.glRotatef(-45F, 0F, 0F, 1F);
|
||||
GL11.glScalef(0.5F, 0.5F, 0.5F);
|
||||
|
||||
float f = gemIcon.getMinU();
|
||||
float f1 = gemIcon.getMaxU();
|
||||
float f2 = gemIcon.getMinV();
|
||||
float f3 = gemIcon.getMaxV();
|
||||
ItemRenderer.renderItemIn2D(Tessellator.instance, f1, f2, f, f3, gemIcon.getIconWidth(), gemIcon.getIconHeight(), 1F / 32F);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,11 +11,20 @@
|
||||
*/
|
||||
package vazkii.botania.common.item.equipment.bauble;
|
||||
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import vazkii.botania.client.lib.LibResources;
|
||||
import vazkii.botania.common.lib.LibItemNames;
|
||||
|
||||
public class ItemSuperTravelBelt extends ItemTravelBelt {
|
||||
|
||||
private static final ResourceLocation texture = new ResourceLocation(LibResources.MODEL_SUPER_TRAVEL_BELT);
|
||||
|
||||
public ItemSuperTravelBelt() {
|
||||
super(LibItemNames.SUPER_TRAVEL_BELT, 0.085F, 0.3F, 4F);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getRenderTexture() {
|
||||
return texture;
|
||||
}
|
||||
}
|
||||
@@ -11,19 +11,32 @@
|
||||
*/
|
||||
package vazkii.botania.common.item.equipment.bauble;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.ModelBiped;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.client.event.RenderPlayerEvent;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.entity.living.LivingEvent.LivingJumpEvent;
|
||||
import vazkii.botania.api.item.IBaubleRender;
|
||||
import vazkii.botania.client.lib.LibResources;
|
||||
import vazkii.botania.common.lib.LibItemNames;
|
||||
import baubles.api.BaubleType;
|
||||
import baubles.common.lib.PlayerHandler;
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
public class ItemTravelBelt extends ItemBauble {
|
||||
public class ItemTravelBelt extends ItemBauble implements IBaubleRender {
|
||||
|
||||
private static final ResourceLocation texture = new ResourceLocation(LibResources.MODEL_TRAVEL_BELT);
|
||||
private static final ModelBiped model = new ModelBiped();
|
||||
|
||||
final float speed;
|
||||
final float jump;
|
||||
final float fallBuffer;
|
||||
@@ -84,4 +97,24 @@ public class ItemTravelBelt extends ItemBauble {
|
||||
player.stepHeight = 0.5F;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
ResourceLocation getRenderTexture() {
|
||||
return texture;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void onPlayerBaubleRender(ItemStack stack, RenderPlayerEvent event, RenderType type) {
|
||||
if(type == RenderType.BODY) {
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(getRenderTexture());
|
||||
Helper.rotateIfSneaking(event.entityPlayer);
|
||||
boolean armor = event.entityPlayer.getCurrentArmor(1) != null;
|
||||
GL11.glTranslatef(0F, 0.1F, 0F);
|
||||
|
||||
float s = (armor ? 1.3F : 1.05F) / 16F;
|
||||
GL11.glScalef(s, s, s);
|
||||
model.bipedBody.render(1F);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user