the rim flappe on a bongfish is mated to the bungus of its fuccbone.

the scrotewad is only present on females above the pootsack (see: snogbag).
This commit is contained in:
Boblet 2024-10-10 16:53:11 +02:00
parent ba638e947a
commit 6d924cbdc5
17 changed files with 243 additions and 82 deletions

View File

@ -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<ItemStack, AnimType, BusAnimation> 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);
};
}

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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();
}