diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java index b143a4a87..611b7969f 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java @@ -45,7 +45,7 @@ public class XFactory357 { ).setUnlocalizedName("gun_light_revolver").setTextureName(RefStrings.MODID + ":gun_darter"); ModItems.gun_light_revolver_dani = new ItemGunBaseNT( - new GunConfig().dura(30_000).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + new GunConfig().dura(30_000).draw(20).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) .dmg(10F).delay(16).reload(55).jam(45).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 6).addConfigs(m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express)) @@ -53,8 +53,8 @@ public class XFactory357 { .canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_STANDARD_FIRE).recoil(Lego.LAMBDA_STANDARD_RECOIL)) .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD) .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) - .anim(LAMBDA_ATLAS_ANIMS).orchestra(Orchestras.ORCHESTRA_ATLAS), - new GunConfig().dura(30_000).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .anim(LAMBDA_DANI_ANIMS).orchestra(Orchestras.ORCHESTRA_ATLAS), + new GunConfig().dura(30_000).draw(20).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) .dmg(10F).delay(16).reload(55).jam(45).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) .mag(new MagazineFullReload(1, 6).addConfigs(m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express)) @@ -62,7 +62,7 @@ public class XFactory357 { .canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_STANDARD_FIRE).recoil(Lego.LAMBDA_STANDARD_RECOIL)) .ps(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD) .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) - .anim(LAMBDA_ATLAS_ANIMS).orchestra(Orchestras.ORCHESTRA_ATLAS) + .anim(LAMBDA_DANI_ANIMS).orchestra(Orchestras.ORCHESTRA_ATLAS) ).setUnlocalizedName("gun_light_revolver_dani").setTextureName(RefStrings.MODID + ":gun_darter"); } @@ -97,4 +97,12 @@ public class XFactory357 { return null; }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_DANI_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation().addBus("EQUIP", new BusAnimationSequence().addPos(360 * 3, 0, 0, 1000, IType.SIN_DOWN)); + } + + return LAMBDA_ATLAS_ANIMS.apply(stack, type); + }; } diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index 693c8e20c..4c557405c 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -1,6 +1,7 @@ package com.hbm.main; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; import org.lwjgl.opengl.GLContext; import com.hbm.blocks.ICustomBlockHighlight; @@ -8,6 +9,7 @@ import com.hbm.config.RadiationConfig; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.items.armor.IArmorDisableModel; import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.packet.PermaSyncHandler; import com.hbm.render.item.weapon.sedna.ItemRenderWeaponBase; import com.hbm.render.model.ModelMan; @@ -19,6 +21,7 @@ import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBiped; import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.entity.RenderManager; @@ -56,6 +59,7 @@ public class ModEventHandlerRenderer { EntityPlayer player = event.entityPlayer; RenderPlayer renderer = event.renderer; + ItemStack held = player.getHeldItem(); boolean isManly = PermaSyncHandler.boykissers.contains(player.getEntityId()); @@ -71,6 +75,18 @@ public class ModEventHandlerRenderer { } } + if(held != null) { + IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(held, IItemRenderer.ItemRenderType.EQUIPPED); + if(customRenderer instanceof ItemRenderWeaponBase) { + ItemRenderWeaponBase renderGun = (ItemRenderWeaponBase) customRenderer; + if(renderGun.isAkimbo()) { + partsHidden[EnumPlayerPart.LEFT_ARM.ordinal()] = true; + ModelRenderer box = getBoxFromType(renderer, EnumPlayerPart.LEFT_ARM); + box.isHidden = true; + } + } + } + if(isManly) { return; } @@ -98,8 +114,31 @@ public class ModEventHandlerRenderer { EntityPlayer player = event.entityPlayer; RenderPlayer renderer = event.renderer; + + boolean akimbo = false; + + ItemStack held = player.getHeldItem(); + + if(held != null) { + IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(held, IItemRenderer.ItemRenderType.EQUIPPED); + if(customRenderer instanceof ItemRenderWeaponBase) { + ItemRenderWeaponBase renderGun = (ItemRenderWeaponBase) customRenderer; + if(renderGun.isAkimbo()) { + akimbo = true; + } + } + } boolean isManly = PermaSyncHandler.boykissers.contains(player.getEntityId()); + + if(akimbo) { + ModelBiped biped = renderer.modelBipedMain; + biped.bipedLeftArm.rotateAngleY = 0.1F + biped.bipedHead.rotateAngleY; + if(!isManly) { + biped.bipedLeftArm.isHidden = false; + biped.bipedLeftArm.render(0.0625F); + } + } if(isManly) { if(manlyModel == null) @@ -115,6 +154,7 @@ public class ModEventHandlerRenderer { if(f6 > 1.0F) { f6 = 1.0F; } + manlyModel.render(event.entityPlayer, f7, f6, yawWrapped, yaw, pitch, 0.0625F, renderer); } } @@ -131,6 +171,58 @@ public class ModEventHandlerRenderer { } } } + + @SubscribeEvent + public void onRenderHeldGun(RenderPlayerEvent.Pre event) { + + EntityPlayer player = event.entityPlayer; + RenderPlayer renderer = event.renderer; + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemGunBaseNT) { + renderer.modelBipedMain.aimedBow = true; + renderer.modelArmor.aimedBow = true; + renderer.modelArmorChestplate.aimedBow = true; + } + } + + @SubscribeEvent + public void onRenderAkimbo(RenderPlayerEvent.Specials.Pre event) { + + EntityPlayer player = event.entityPlayer; + RenderPlayer renderer = event.renderer; + ItemStack held = player.getHeldItem(); + if(held == null) return; + + IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(held, IItemRenderer.ItemRenderType.EQUIPPED); + + if(customRenderer instanceof ItemRenderWeaponBase) { + ItemRenderWeaponBase renderWeapon = (ItemRenderWeaponBase) customRenderer; + if(renderWeapon.isAkimbo()) { + GL11.glPushMatrix(); + renderer.modelBipedMain.bipedLeftArm.isHidden = false; + renderer.modelBipedMain.bipedLeftArm.postRender(0.0625F); + //vanilla bullshit + GL11.glTranslatef(-0.0625F, 0.4375F, 0.0625F); + float scale = 0.375F; + GL11.glTranslatef(0.25F, 0.1875F, -0.1875F); + GL11.glScalef(scale, scale, scale); + GL11.glRotatef(60.0F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-90.0F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(20.0F, 0.0F, 0.0F, 1.0F); + // forge bullshit + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glTranslatef(0.0F, -0.3F, 0.0F); + GL11.glScalef(1.5F, 1.5F, 1.5F); + GL11.glRotatef(50.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(335.0F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(-0.9375F, -0.0625F, 0.0F); + renderWeapon.setupThirdPersonAkimbo(held); + renderWeapon.renderEquippedAkimbo(held); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glPopMatrix(); + } + } + } @SubscribeEvent public void onRenderHeldItem(RenderPlayerEvent.Specials.Pre event) { @@ -139,9 +231,7 @@ public class ModEventHandlerRenderer { //RenderPlayer renderer = event.renderer; boolean isManly = PermaSyncHandler.boykissers.contains(player.getEntityId()); - - if(!isManly) - return; + if(!isManly) return; if(manlyModel == null) manlyModel = new ModelMan(); @@ -169,8 +259,8 @@ public class ModEventHandlerRenderer { enumaction = held.getItemUseAction(); } - net.minecraftforge.client.IItemRenderer customRenderer = net.minecraftforge.client.MinecraftForgeClient.getItemRenderer(held, net.minecraftforge.client.IItemRenderer.ItemRenderType.EQUIPPED); - boolean is3D = (customRenderer != null && customRenderer.shouldUseRenderHelper(net.minecraftforge.client.IItemRenderer.ItemRenderType.EQUIPPED, held, net.minecraftforge.client.IItemRenderer.ItemRendererHelper.BLOCK_3D)); + IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(held, IItemRenderer.ItemRenderType.EQUIPPED); + boolean is3D = (customRenderer != null && customRenderer.shouldUseRenderHelper(IItemRenderer.ItemRenderType.EQUIPPED, held, IItemRenderer.ItemRendererHelper.BLOCK_3D)); if(is3D || held.getItem() instanceof ItemBlock && RenderBlocks.renderItemIn3d(Block.getBlockFromItem(held.getItem()).getRenderType())) { f2 = 0.5F; diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java index 402545c56..599f58f83 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java @@ -15,7 +15,7 @@ public class ItemRenderAm180 extends ItemRenderWeaponBase { protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } @Override - protected void setupFirstPerson(ItemStack stack) { + public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); float offset = 0.8F; @@ -101,7 +101,7 @@ public class ItemRenderAm180 extends ItemRenderWeaponBase { } @Override - protected void setupThirdPerson(ItemStack stack) { + public void setupThirdPerson(ItemStack stack) { super.setupThirdPerson(stack); double scale = 1D; GL11.glScaled(scale, scale, scale); @@ -110,7 +110,7 @@ public class ItemRenderAm180 extends ItemRenderWeaponBase { } @Override - protected void setupInv(ItemStack stack) { + public void setupInv(ItemStack stack) { super.setupInv(stack); double scale = 0.75D; GL11.glScaled(scale, scale, scale); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java index 9a939214c..af8f2045b 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java @@ -15,7 +15,7 @@ public class ItemRenderAtlas extends ItemRenderWeaponBase { protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } @Override - protected void setupFirstPerson(ItemStack stack) { + public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); float offset = 0.8F; @@ -96,14 +96,14 @@ public class ItemRenderAtlas extends ItemRenderWeaponBase { } @Override - protected void setupThirdPerson(ItemStack stack) { + public void setupThirdPerson(ItemStack stack) { super.setupThirdPerson(stack); GL11.glTranslated(0, 1, 3); } @Override - protected void setupInv(ItemStack stack) { + public void setupInv(ItemStack stack) { super.setupInv(stack); double scale = 1.125D; GL11.glScaled(scale, scale, scale); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCarbine.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCarbine.java index 8b1c4eb1d..dbf04f6a1 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCarbine.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCarbine.java @@ -15,7 +15,7 @@ public class ItemRenderCarbine extends ItemRenderWeaponBase { protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } @Override - protected void setupFirstPerson(ItemStack stack) { + public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); float offset = 0.8F; @@ -84,7 +84,7 @@ public class ItemRenderCarbine extends ItemRenderWeaponBase { } @Override - protected void setupThirdPerson(ItemStack stack) { + public void setupThirdPerson(ItemStack stack) { super.setupThirdPerson(stack); double scale = 1.375D; GL11.glScaled(scale, scale, scale); @@ -93,7 +93,7 @@ public class ItemRenderCarbine extends ItemRenderWeaponBase { } @Override - protected void setupInv(ItemStack stack) { + public void setupInv(ItemStack stack) { super.setupInv(stack); double scale = 1.375D; GL11.glScaled(scale, scale, scale); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java index ae0fd41a6..42cd24e97 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java @@ -5,9 +5,11 @@ import java.awt.Color; import org.lwjgl.opengl.GL11; import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.mags.IMagazine; import com.hbm.main.ResourceManager; import com.hbm.particle.SpentCasing; import com.hbm.render.anim.HbmAnimations; +import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; @@ -18,7 +20,7 @@ public class ItemRenderCongoLake extends ItemRenderWeaponBase { protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } @Override - protected void setupFirstPerson(ItemStack stack) { + public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); float offset = 0.8F; @@ -80,22 +82,26 @@ public class ItemRenderCongoLake extends ItemRenderWeaponBase { GL11.glPushMatrix(); { - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.casings_tex); - - HbmAnimations.applyRelevantTransformation("Shell"); - - SpentCasing casing = gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getCasing(stack); - int[] colors = casing != null ? casing.getColors() : new int[] { SpentCasing.COLOR_CASE_40MM }; - - Color shellColor = new Color(colors[0]); - GL11.glColor3f(shellColor.getRed() / 255F, shellColor.getGreen() / 255F, shellColor.getBlue() / 255F); - ResourceManager.congolake.renderPart("Shell"); - - Color shellForeColor = new Color(colors.length > 1 ? colors[1] : colors[0]); - GL11.glColor3f(shellForeColor.getRed() / 255F, shellForeColor.getGreen() / 255F, shellForeColor.getBlue() / 255F); - ResourceManager.congolake.renderPart("ShellFore"); - - GL11.glColor3f(1F, 1F, 1F); + IMagazine mag = gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack); + if(gun.getLastAnim(stack, 0) != AnimType.INSPECT || mag.getAmount(stack) > 0) { //omit when inspecting and no shell is loaded + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.casings_tex); + + HbmAnimations.applyRelevantTransformation("Shell"); + + SpentCasing casing = mag.getCasing(stack); + int[] colors = casing != null ? casing.getColors() : new int[] { SpentCasing.COLOR_CASE_40MM }; + + Color shellColor = new Color(colors[0]); + GL11.glColor3f(shellColor.getRed() / 255F, shellColor.getGreen() / 255F, shellColor.getBlue() / 255F); + ResourceManager.congolake.renderPart("Shell"); + + Color shellForeColor = new Color(colors.length > 1 ? colors[1] : colors[0]); + GL11.glColor3f(shellForeColor.getRed() / 255F, shellForeColor.getGreen() / 255F, shellForeColor.getBlue() / 255F); + ResourceManager.congolake.renderPart("ShellFore"); + + GL11.glColor3f(1F, 1F, 1F); + } } GL11.glPopMatrix(); @@ -124,14 +130,14 @@ public class ItemRenderCongoLake extends ItemRenderWeaponBase { } @Override - protected void setupThirdPerson(ItemStack stack) { + public void setupThirdPerson(ItemStack stack) { super.setupThirdPerson(stack); GL11.glTranslated(0, 1, 3); } @Override - protected void setupInv(ItemStack stack) { + public void setupInv(ItemStack stack) { super.setupInv(stack); double scale = 2.5D; GL11.glScaled(scale, scale, scale); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDANI.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDANI.java index 9199ec189..af2507d02 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDANI.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDANI.java @@ -10,12 +10,14 @@ import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; public class ItemRenderDANI extends ItemRenderWeaponBase { + + @Override public boolean isAkimbo() { return true; } @Override protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } @Override - protected void setupFirstPerson(ItemStack stack) { + public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); } @@ -48,9 +50,9 @@ public class ItemRenderDANI extends ItemRenderWeaponBase { GL11.glTranslated(recoil[0], recoil[1], recoil[2]); GL11.glRotated(recoil[2] * 10, 1, 0, 0); - GL11.glTranslated(0, 0, -7); + GL11.glTranslated(0, -2, -2); GL11.glRotated(equip[0], -1, 0, 0); - GL11.glTranslated(0, 0, 7); + GL11.glTranslated(0, 2, 2); GL11.glPushMatrix(); GL11.glTranslated(0, 1.5, 9.25); @@ -106,19 +108,27 @@ public class ItemRenderDANI extends ItemRenderWeaponBase { } @Override - protected void setupThirdPerson(ItemStack stack) { + public void setupThirdPerson(ItemStack stack) { super.setupThirdPerson(stack); GL11.glTranslated(0, 1, 3); - } @Override - protected void setupInv(ItemStack stack) { + public void setupThirdPersonAkimbo(ItemStack stack) { + super.setupThirdPersonAkimbo(stack); + GL11.glTranslated(0, 1, 3); + } + + @Override + public void setupInv(ItemStack stack) { GL11.glScaled(1, 1, -1); GL11.glTranslated(8, 6, 0); - double scale = 1.125D; GL11.glScaled(scale, scale, scale); + } + + @Override + public void renderInv(ItemStack stack) { GL11.glEnable(GL11.GL_LIGHTING); GL11.glShadeModel(GL11.GL_SMOOTH); @@ -149,5 +159,29 @@ public class ItemRenderDANI extends ItemRenderWeaponBase { } @Override - public void renderOther(ItemStack stack, ItemRenderType type) { } + public void renderEquipped(ItemStack stack) { + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.dani_lunar_tex); + ResourceManager.bio_revolver.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void renderEquippedAkimbo(ItemStack stack) { + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.dani_celestial_tex); + ResourceManager.bio_revolver.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.dani_celestial_tex); + ResourceManager.bio_revolver.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } } diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDebug.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDebug.java index ef664863b..f4875de7f 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDebug.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDebug.java @@ -15,7 +15,7 @@ public class ItemRenderDebug extends ItemRenderWeaponBase { protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } @Override - protected void setupFirstPerson(ItemStack stack) { + public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 1); float offset = 0.8F; @@ -96,7 +96,7 @@ public class ItemRenderDebug extends ItemRenderWeaponBase { } @Override - protected void setupThirdPerson(ItemStack stack) { + public void setupThirdPerson(ItemStack stack) { super.setupThirdPerson(stack); GL11.glScaled(0.75, 0.75, 0.75); GL11.glTranslated(0, 1, 3); @@ -104,7 +104,7 @@ public class ItemRenderDebug extends ItemRenderWeaponBase { } @Override - protected void setupInv(ItemStack stack) { + public void setupInv(ItemStack stack) { super.setupInv(stack); double scale = 1.25D; GL11.glScaled(scale, scale, scale); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlaregun.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlaregun.java index 9de213985..3a7e62e71 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlaregun.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlaregun.java @@ -15,7 +15,7 @@ public class ItemRenderFlaregun extends ItemRenderWeaponBase { protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } @Override - protected void setupFirstPerson(ItemStack stack) { + public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); float offset = 0.8F; @@ -81,7 +81,7 @@ public class ItemRenderFlaregun extends ItemRenderWeaponBase { } @Override - protected void setupThirdPerson(ItemStack stack) { + public void setupThirdPerson(ItemStack stack) { super.setupThirdPerson(stack); double scale = 0.5D; GL11.glScaled(scale, scale, scale); @@ -90,7 +90,7 @@ public class ItemRenderFlaregun extends ItemRenderWeaponBase { } @Override - protected void setupInv(ItemStack stack) { + public void setupInv(ItemStack stack) { super.setupInv(stack); double scale = 1D; GL11.glScaled(scale, scale, scale); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderGreasegun.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderGreasegun.java index 58630348f..0f6e044f0 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderGreasegun.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderGreasegun.java @@ -15,7 +15,7 @@ public class ItemRenderGreasegun extends ItemRenderWeaponBase { protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } @Override - protected void setupFirstPerson(ItemStack stack) { + public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); float offset = 0.8F; @@ -112,14 +112,14 @@ public class ItemRenderGreasegun extends ItemRenderWeaponBase { } @Override - protected void setupThirdPerson(ItemStack stack) { + public void setupThirdPerson(ItemStack stack) { super.setupThirdPerson(stack); GL11.glTranslated(0, 1, 3); } @Override - protected void setupInv(ItemStack stack) { + public void setupInv(ItemStack stack) { super.setupInv(stack); double scale = 1.5D; GL11.glScaled(scale, scale, scale); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHeavyRevolver.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHeavyRevolver.java index b01c1c287..740b76577 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHeavyRevolver.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHeavyRevolver.java @@ -15,7 +15,7 @@ public class ItemRenderHeavyRevolver extends ItemRenderWeaponBase { protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } @Override - protected void setupFirstPerson(ItemStack stack) { + public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 1); float offset = 0.8F; @@ -98,7 +98,7 @@ public class ItemRenderHeavyRevolver extends ItemRenderWeaponBase { } @Override - protected void setupThirdPerson(ItemStack stack) { + public void setupThirdPerson(ItemStack stack) { super.setupThirdPerson(stack); GL11.glScaled(0.75, 0.75, 0.75); GL11.glTranslated(0, 1, 3); @@ -106,7 +106,7 @@ public class ItemRenderHeavyRevolver extends ItemRenderWeaponBase { } @Override - protected void setupInv(ItemStack stack) { + public void setupInv(ItemStack stack) { super.setupInv(stack); double scale = 1.25D; GL11.glScaled(scale, scale, scale); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHenry.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHenry.java index 31a4de217..0c89e72f0 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHenry.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHenry.java @@ -15,7 +15,7 @@ public class ItemRenderHenry extends ItemRenderWeaponBase { protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } @Override - protected void setupFirstPerson(ItemStack stack) { + public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); float offset = 0.8F; @@ -121,7 +121,7 @@ public class ItemRenderHenry extends ItemRenderWeaponBase { } @Override - protected void setupThirdPerson(ItemStack stack) { + public void setupThirdPerson(ItemStack stack) { super.setupThirdPerson(stack); double scale = 1.75D; GL11.glScaled(scale, scale, scale); @@ -130,7 +130,7 @@ public class ItemRenderHenry extends ItemRenderWeaponBase { } @Override - protected void setupInv(ItemStack stack) { + public void setupInv(ItemStack stack) { super.setupInv(stack); double scale = 1.5D; GL11.glScaled(scale, scale, scale); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLiberator.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLiberator.java index f3ebf0ed8..7421322f5 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLiberator.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLiberator.java @@ -16,7 +16,7 @@ public class ItemRenderLiberator extends ItemRenderWeaponBase { protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } @Override - protected void setupFirstPerson(ItemStack stack) { + public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); float offset = 0.8F; @@ -120,14 +120,14 @@ public class ItemRenderLiberator extends ItemRenderWeaponBase { } @Override - protected void setupThirdPerson(ItemStack stack) { + public void setupThirdPerson(ItemStack stack) { super.setupThirdPerson(stack); GL11.glTranslated(0, 1, 3); } @Override - protected void setupInv(ItemStack stack) { + public void setupInv(ItemStack stack) { super.setupInv(stack); double scale = 1.5D; GL11.glScaled(scale, scale, scale); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMaresleg.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMaresleg.java index 1423083a5..1d94563bb 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMaresleg.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMaresleg.java @@ -15,7 +15,7 @@ public class ItemRenderMaresleg extends ItemRenderWeaponBase { protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } @Override - protected void setupFirstPerson(ItemStack stack) { + public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); float offset = 0.8F; @@ -95,7 +95,7 @@ public class ItemRenderMaresleg extends ItemRenderWeaponBase { } @Override - protected void setupThirdPerson(ItemStack stack) { + public void setupThirdPerson(ItemStack stack) { super.setupThirdPerson(stack); double scale = 1.75D; GL11.glScaled(scale, scale, scale); @@ -104,7 +104,7 @@ public class ItemRenderMaresleg extends ItemRenderWeaponBase { } @Override - protected void setupInv(ItemStack stack) { + public void setupInv(ItemStack stack) { super.setupInv(stack); double scale = 1.4375D; GL11.glScaled(scale, scale, scale); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPepperbox.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPepperbox.java index 1be000046..903ce4f9f 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPepperbox.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPepperbox.java @@ -15,7 +15,7 @@ public class ItemRenderPepperbox extends ItemRenderWeaponBase { protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } @Override - protected void setupFirstPerson(ItemStack stack) { + public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 1.5); float offset = 0.8F; @@ -97,14 +97,14 @@ public class ItemRenderPepperbox extends ItemRenderWeaponBase { } @Override - protected void setupThirdPerson(ItemStack stack) { + public void setupThirdPerson(ItemStack stack) { super.setupThirdPerson(stack); GL11.glTranslated(0, 1, 3); } @Override - protected void setupInv(ItemStack stack) { + public void setupInv(ItemStack stack) { super.setupInv(stack); double scale = 1.5D; GL11.glScaled(scale, scale, scale); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java index 9638fbd80..7212aa842 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java @@ -31,6 +31,8 @@ public abstract class ItemRenderWeaponBase implements IItemRenderer { public static final ResourceLocation flash_plume = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lilmac_plume.png"); public static float interp; + + public boolean isAkimbo() { return false; } @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { @@ -48,13 +50,18 @@ public abstract class ItemRenderWeaponBase implements IItemRenderer { GL11.glPushMatrix(); switch(type) { case EQUIPPED_FIRST_PERSON: setupFirstPerson(item); renderFirstPerson(item); break; - case EQUIPPED: setupThirdPerson(item); renderOther(item, type); break; - case INVENTORY: setupInv(item); renderOther(item, type); break; - case ENTITY: setupEntity(item); renderOther(item, type); break; + case EQUIPPED: setupThirdPerson(item); renderEquipped(item); break; + case INVENTORY: setupInv(item); renderInv(item); break; + case ENTITY: setupEntity(item); renderEntity(item); break; } GL11.glPopMatrix(); } + public void renderEquipped(ItemStack stack) { renderOther(stack, ItemRenderType.EQUIPPED); } + public void renderEquippedAkimbo(ItemStack stack) { renderOther(stack, ItemRenderType.EQUIPPED); } + public void renderInv(ItemStack stack) { renderOther(stack, ItemRenderType.INVENTORY); } + public void renderEntity(ItemStack stack) { renderOther(stack, ItemRenderType.ENTITY); } + public void setPerspectiveAndRender(ItemStack stack, float interp) { this.interp = interp; @@ -187,7 +194,7 @@ public abstract class ItemRenderWeaponBase implements IItemRenderer { RenderHelper.disableStandardItemLighting(); } - protected void setupFirstPerson(ItemStack stack) { + public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 1); if(Minecraft.getMinecraft().thePlayer.isSneaking()) { @@ -200,7 +207,7 @@ public abstract class ItemRenderWeaponBase implements IItemRenderer { } } - protected void setupThirdPerson(ItemStack stack) { + public void setupThirdPerson(ItemStack stack) { double scale = 0.125D; GL11.glScaled(scale, scale, scale); @@ -212,20 +219,32 @@ public abstract class ItemRenderWeaponBase implements IItemRenderer { } - protected void setupInv(ItemStack stack) { + public void setupThirdPersonAkimbo(ItemStack stack) { + double scale = 0.125D; + GL11.glScaled(scale, scale, scale); + + GL11.glRotatef(15.0F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(12.5F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(10.0F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslated(5, 0, 0); + + } + + public void setupInv(ItemStack stack) { GL11.glScaled(1, 1, -1); GL11.glTranslated(8, 8, 0); GL11.glRotated(225, 0, 0, 1); GL11.glRotated(90, 0, 1, 0); } - protected void setupEntity(ItemStack stack) { + public void setupEntity(ItemStack stack) { double scale = 0.125D; GL11.glScaled(scale, scale, scale); } public abstract void renderFirstPerson(ItemStack stack); - public abstract void renderOther(ItemStack stack, ItemRenderType type); + public void renderOther(ItemStack stack, ItemRenderType type) { } public static void standardAimingTransform(ItemStack stack, double sX, double sY, double sZ, double aX, double aY, double aZ) { float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; diff --git a/src/main/java/com/hbm/render/loader/ModelRendererObj.java b/src/main/java/com/hbm/render/loader/ModelRendererObj.java index 4d916aa86..b7e85a58d 100644 --- a/src/main/java/com/hbm/render/loader/ModelRendererObj.java +++ b/src/main/java/com/hbm/render/loader/ModelRendererObj.java @@ -21,6 +21,8 @@ public class ModelRendererObj { public float offsetX; public float offsetY; public float offsetZ; + + public boolean doRender = true; String[] parts; IModelCustom model; @@ -97,11 +99,13 @@ public class ModelRendererObj { GL11.glScalef(scale, scale, scale); - if(parts.length > 0) - for(String part : parts) - model.renderPart(part); - else - model.renderAll(); + if(doRender) { + if(parts.length > 0) + for(String part : parts) + model.renderPart(part); + else + model.renderAll(); + } GL11.glPopMatrix(); }