diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 8ea52e93e..8e24b7c5a 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -489,6 +489,7 @@ item.gun_revolver_schrabidium.name=Schrabidiumrevolver item.gun_revolver_cursed.name=Verfluchte Pistole item.gun_fatman.name=M42 Nukleares Katapult "Fat Man" item.gun_xvl1456.name=XVL1456 Tau-Kanone Prototyp +item.gun_osipr.name=Standartausrüstung für Sicherheitskräfte item.gun_revolver_iron_ammo.name=Patrone item.gun_revolver_ammo.name=Bleipatrone @@ -497,6 +498,8 @@ item.gun_revolver_schrabidium_ammo.name=Schrabidiumpatrone item.gun_revolver_cursed_ammo.name=Stahlpatrone item.gun_fatman_ammo.name=Miniatombombe item.gun_xvl1456_ammo.name=Kiste mit erschöpftem Uran-235 +item.gun_osipr_ammo.name=Dunker Energiepuls-Plug +item.gun_osipr_ammo2.name=Combine Ball tile.block_schrabidium.name=Schrabidiumblock item.plate_gold.name=Goldplatte @@ -533,6 +536,14 @@ item.sphere_steel.name=Stahlhohlkugel item.pedestal_steel.name=Stahlsockel item.dysfunctional_reactor.name=Funktionsunfähiger Atomreaktor +item.combine_scrap.name=CMB Schrott +item.chopper_head.name=Jagdschrauber Cockpit +item.chopper_gun.name=Pulskanone +item.chopper_torso.name=Jagdschrauber Rumpf +item.chopper_tail.name=Jagdschrauber Heck +item.chopper_wing.name=Jagdschrauber Seitentragfläche +item.chopper_blades.name=Jagdschrauber Rotorblätter + item.igniter.name=Zünder item.watch.name=Zerbrochene Taschenuhr item.apple_euphemium.name=Euphemiumapfel diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index db71ee205..3bb1e66fa 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -489,6 +489,7 @@ item.gun_revolver_schrabidium.name=Schrabidium Revolver item.gun_revolver_cursed.name=Cursed Revolver item.gun_fatman.name=M42 Nuclear Catapult "Fat Man" item.gun_xvl1456.name=XVL1456 Tau Cannon Prototype +item.gun_osipr.name=Overwatch Standard Issue Pulse Rifle item.gun_revolver_iron_ammo.name=Bullet item.gun_revolver_ammo.name=Lead Bullet @@ -497,6 +498,8 @@ item.gun_revolver_schrabidium_ammo.name=Schrabidium Bullet item.gun_revolver_cursed_ammo.name=Steel Bullet item.gun_fatman_ammo.name=Mini Nuke item.gun_xvl1456_ammo.name=Depleted Uranium-235 Box +item.gun_osipr_ammo.name=Dark Energy Pulse Plug +item.gun_osipr_ammo2.name=Combine Ball tile.block_schrabidium.name=Block of Schrabidium item.plate_gold.name=Gold Plate @@ -533,6 +536,14 @@ item.sphere_steel.name=Steel Sphere item.pedestal_steel.name=Steel Pedestal item.dysfunctional_reactor.name=Dysfunctional Nuclear Reactor +item.combine_scrap.name=CMB Scrap Metal +item.chopper_head.name=Hunter Chopper Cockpit +item.chopper_gun.name=Emplacement Gun +item.chopper_torso.name=Hunter Chopper Body +item.chopper_tail.name=Hunter Chopper Tail +item.chopper_wing.name=Hunter Chopper Wing +item.chopper_blades.name=Hunter Chopper Rotor Blades + item.igniter.name=Igniter item.watch.name=Broken Pocket Watch item.apple_euphemium.name=Euphemium Apple diff --git a/assets/hbm/textures/items/gun_osipr.png b/assets/hbm/textures/items/gun_osipr.png new file mode 100644 index 000000000..f45a4069d Binary files /dev/null and b/assets/hbm/textures/items/gun_osipr.png differ diff --git a/assets/hbm/textures/items/gun_osipr_ammo.png b/assets/hbm/textures/items/gun_osipr_ammo.png new file mode 100644 index 000000000..24e644f44 Binary files /dev/null and b/assets/hbm/textures/items/gun_osipr_ammo.png differ diff --git a/assets/hbm/textures/items/gun_osipr_ammo2.png b/assets/hbm/textures/items/gun_osipr_ammo2.png new file mode 100644 index 000000000..313abf556 Binary files /dev/null and b/assets/hbm/textures/items/gun_osipr_ammo2.png differ diff --git a/com/hbm/entity/EntityHunterChopper.java b/com/hbm/entity/EntityHunterChopper.java index 3b295eca1..8ed9f59df 100644 --- a/com/hbm/entity/EntityHunterChopper.java +++ b/com/hbm/entity/EntityHunterChopper.java @@ -3,6 +3,7 @@ package com.hbm.entity; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; +import com.hbm.main.MainRegistry; import com.hbm.particles.EntitySmokeFX; import cpw.mods.fml.relauncher.Side; @@ -60,14 +61,14 @@ public class EntityHunterChopper extends EntityFlying implements IMob, IBossDisp * Called when the entity is attacked. */ public boolean attackEntityFrom(DamageSource source, float amount) { - if (this.isEntityInvulnerable() || !(source.isExplosion() || ModDamageSource.getIsTau(source) || (ModDamageSource.getIsEmplacer(source) && source.getEntity() != this))) { + if (this.isEntityInvulnerable() || !(source.isExplosion() || ModDamageSource.getIsTau(source) || (ModDamageSource.getIsEmplacer(source) && source.getSourceOfDamage() != this))) { return false; } else if(amount >= this.getHealth()) { this.initDeath(); return false; } - if(rand.nextInt(20) == 0) + if(rand.nextInt(15) == 0) { if(!worldObj.isRemote) { @@ -83,7 +84,7 @@ public class EntityHunterChopper extends EntityFlying implements IMob, IBossDisp for (int i = 0; i < 8; i++) if(this.worldObj.isRemote) - worldObj.spawnParticle("fireworksSpark", this.posX, this.posY, this.posZ, d0 * i, d1 * i, d2 * i); + worldObj.spawnParticle("fireworksSpark", this.posX, this.posY, this.posZ, d0 * i * 0.25, d1 * i * 0.25, d2 * i * 0.25); } return super.attackEntityFrom(source, amount); @@ -92,11 +93,13 @@ public class EntityHunterChopper extends EntityFlying implements IMob, IBossDisp protected void entityInit() { super.entityInit(); this.dataWatcher.addObject(16, Byte.valueOf((byte) 0)); + this.dataWatcher.addObject(17, Float.valueOf((float) 0)); + this.dataWatcher.addObject(18, Float.valueOf((float) 0)); } protected void applyEntityAttributes() { super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(1000.0D); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(1500.0D); } protected void updateEntityActionState() { @@ -177,7 +180,6 @@ public class EntityHunterChopper extends EntityFlying implements IMob, IBossDisp ++this.attackCounter; if (attackCounter >= 200) { attackCounter -= 200; - System.out.println(this.targetedEntity.toString()); } if (this.attackCounter % 2 == 0 && attackCounter >= 120) { @@ -251,7 +253,7 @@ public class EntityHunterChopper extends EntityFlying implements IMob, IBossDisp this.motionZ *= 1.2; } - if(rand.nextInt(30) == 0) + if(rand.nextInt(20) == 0) { this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 5F, true); } @@ -262,18 +264,53 @@ public class EntityHunterChopper extends EntityFlying implements IMob, IBossDisp { this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 15F, true); this.dropItems(); - this.setDead(); + this.setDead(); } } - float f3 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - if(this.rotationYaw - (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI) >= 10) - this.prevRotationYaw = this.rotationYaw -= 10; - if(this.rotationYaw - (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI) <= -10) - this.prevRotationYaw = this.rotationYaw += 10; - if(this.rotationYaw - (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI) < 10 && this.rotationYaw - (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI) > 10) - this.prevRotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(this.motionY, f3) * 180.0D / Math.PI); + if (this.targetedEntity == null) { + float f3 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + if (this.rotationYaw - (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI) >= 10) + this.prevRotationYaw = this.rotationYaw -= 10; + if (this.rotationYaw - (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI) <= -10) + this.prevRotationYaw = this.rotationYaw += 10; + if (this.rotationYaw - (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI) < 10 + && this.rotationYaw - (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI) > 10) + this.prevRotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(this.motionY, f3) * 180.0D / Math.PI); + } else { + float f3 = MathHelper.sqrt_double((this.posX - targetedEntity.posX) * (this.posX - targetedEntity.posX) + + (this.posZ - targetedEntity.posZ) * (this.posZ - targetedEntity.posZ)); + if (this.rotationYaw - (float) (Math.atan2(this.posX - targetedEntity.posX, this.posZ - targetedEntity.posZ) * 180.0D / Math.PI) >= 10) + this.prevRotationYaw = this.rotationYaw -= 10; + if (this.rotationYaw + - (float) (Math.atan2(this.posX - targetedEntity.posX, this.posZ - targetedEntity.posZ) * 180.0D / Math.PI) <= -10) + this.prevRotationYaw = this.rotationYaw += 10; + if (this.rotationYaw - (float) (Math.atan2(this.posX - targetedEntity.posX, this.posZ - targetedEntity.posZ) * 180.0D / Math.PI) < 10 && this.rotationYaw - (float) (Math.atan2(this.posX - targetedEntity.posX, this.posZ - targetedEntity.posZ) * 180.0D / Math.PI) > 10) + this.rotationYaw = (float) (Math.atan2(this.posX - targetedEntity.posX, this.posZ - targetedEntity.posZ) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(this.motionY, f3) * 180.0D / Math.PI); + + double d8 = 2.0D; + Vec3 vec3 = this.getLook(1.0F); + double xStart = this.posX + vec3.xCoord * d8; + double yStart = this.posY - 0.5; + double zStart = this.posZ + vec3.zCoord * d8; + double d5 = this.targetedEntity.posX - xStart; + double d6 = this.targetedEntity.boundingBox.minY + (double) (this.targetedEntity.height / 2.0F) - yStart; + double d7 = this.targetedEntity.posZ - zStart; + + this.setYaw(-((float) (Math.atan2(d5, d7) * 180.0D / Math.PI) + 90)); + f3 = MathHelper.sqrt_double(d5 * d5 + d7 * d7); + this.setPitch((float) (Math.atan2(d6, f3) * 180.0D / Math.PI)); + } + + if(rotationPitch <= 330 && rotationPitch >= 30) + { + if(rotationPitch < 180) + rotationPitch = 30; + if(rotationPitch >= 180) + rotationPitch = 330; + } } /** @@ -297,11 +334,11 @@ public class EntityHunterChopper extends EntityFlying implements IMob, IBossDisp } protected String getHurtSound() { - return "none"; + return null; } protected String getDeathSound() { - return "none"; + return null; } /** @@ -393,4 +430,20 @@ public class EntityHunterChopper extends EntityFlying implements IMob, IBossDisp else this.dropItem(ModItems.wire_magnetized_tungsten, 1); } + + public void setYaw(float f) { + this.dataWatcher.updateObject(17, Float.valueOf((float) f)); + } + + public void setPitch(float f) { + this.dataWatcher.updateObject(18, Float.valueOf((float) f)); + } + + public float getYaw() { + return this.dataWatcher.getWatchableObjectFloat(17); + } + + public float getPitch() { + return this.dataWatcher.getWatchableObjectFloat(18); + } } diff --git a/com/hbm/items/ArmorModel.java b/com/hbm/items/ArmorModel.java index 86766bf44..53dc1d746 100644 --- a/com/hbm/items/ArmorModel.java +++ b/com/hbm/items/ArmorModel.java @@ -111,7 +111,7 @@ public class ArmorModel extends ItemArmor { return "hbm:textures/models/CapeRadiation.png"; } if (stack.getItem() == ModItems.cape_gasmask) { - return "hbm:textures/models/CapeGasmask.png"; + return "hbm:textures/models/CapeGasMask.png"; } if (stack.getItem() == ModItems.cape_schrabidium) { return "hbm:textures/models/CapeSchrabidium.png"; diff --git a/com/hbm/items/GunOSIPR.java b/com/hbm/items/GunOSIPR.java new file mode 100644 index 000000000..e2b3da913 --- /dev/null +++ b/com/hbm/items/GunOSIPR.java @@ -0,0 +1,94 @@ +package com.hbm.items; + +import java.util.List; +import java.util.Random; + +import com.hbm.entity.EntityBullet; +import com.hbm.entity.EntityMiniNuke; +import com.hbm.lib.ModDamageSource; + +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumAction; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.player.ArrowLooseEvent; +import net.minecraftforge.event.entity.player.ArrowNockEvent; + +public class GunOSIPR extends Item { + + Random rand = new Random(); + + public GunOSIPR() + { + this.maxStackSize = 1; + this.setMaxDamage(2500); + } + + @Override + public EnumAction getItemUseAction(ItemStack par1ItemStack) { + return EnumAction.bow; + } + + public int getMaxItemUseDuration(ItemStack p_77626_1_) { + return 72000; + } + + @Override + public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { + ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); + { + p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); + } + + return p_77659_1_; + } + + public void onUsingTick(ItemStack stack, EntityPlayer player, int count) + { + World world = player.worldObj; + + if (!player.isSneaking()) { + boolean flag = player.capabilities.isCreativeMode + || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; + if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_osipr_ammo)) && count % 3 == 0) { + + EntityBullet entityarrow = new EntityBullet(world, player, 3.0F, 35, 45, false, "chopper"); + entityarrow.setDamage(35 + rand.nextInt(45 - 35)); + + world.playSoundAtEntity(player, "random.explode", 1.0F, 1.5F + (rand.nextFloat() * 0.5F)); + + if (flag) { + entityarrow.canBePickedUp = 2; + } else { + player.inventory.consumeInventoryItem(ModItems.gun_osipr_ammo); + } + + if (!world.isRemote) { + world.spawnEntityInWorld(entityarrow); + } + } + } + } + + @Override + public int getItemEnchantability() { + return 0; + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + + list.add("Hold right mouse button"); + list.add("to shoot,"); + list.add("sneak to shoot a"); + list.add("dark energy ball!"); + } + +} diff --git a/com/hbm/items/GunXVL1456.java b/com/hbm/items/GunXVL1456.java index 98e9a8386..b09f093a9 100644 --- a/com/hbm/items/GunXVL1456.java +++ b/com/hbm/items/GunXVL1456.java @@ -155,7 +155,7 @@ public class GunXVL1456 extends Item { @Override public int getItemEnchantability() { - return 1; + return 0; } @Override diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index 37c578b0d..f15f16916 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -357,6 +357,9 @@ public class ModItems { public static Item gun_fatman_ammo; public static Item gun_xvl1456; public static Item gun_xvl1456_ammo; + public static Item gun_osipr; + public static Item gun_osipr_ammo; + public static Item gun_osipr_ammo2; public static Item gun_waluigi; public static Item grenade_generic; @@ -886,6 +889,9 @@ public class ModItems { gun_fatman = new GunFatman().setMaxDamage(5000).setUnlocalizedName("gun_fatman").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":gun_fatman"); gun_xvl1456_ammo = new Item().setUnlocalizedName("gun_xvl1456_ammo").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":gun_xvl1456_ammo"); gun_xvl1456 = new GunXVL1456().setUnlocalizedName("gun_xvl1456").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":gun_xvl1456"); + gun_osipr_ammo = new Item().setUnlocalizedName("gun_osipr_ammo").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":gun_osipr_ammo"); + gun_osipr_ammo2 = new Item().setUnlocalizedName("gun_osipr_ammo2").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":gun_osipr_ammo2"); + gun_osipr = new GunOSIPR().setUnlocalizedName("gun_osipr").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":gun_osipr"); grenade_generic = new ItemGrenade().setUnlocalizedName("grenade_generic").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":grenade_generic"); grenade_strong = new ItemGrenade().setUnlocalizedName("grenade_strong").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":grenade_strong"); @@ -1457,6 +1463,9 @@ public class ModItems { GameRegistry.registerItem(gun_fatman_ammo, gun_fatman_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_xvl1456, gun_xvl1456.getUnlocalizedName()); GameRegistry.registerItem(gun_xvl1456_ammo, gun_xvl1456_ammo.getUnlocalizedName()); + GameRegistry.registerItem(gun_osipr, gun_osipr.getUnlocalizedName()); + GameRegistry.registerItem(gun_osipr_ammo, gun_osipr_ammo.getUnlocalizedName()); + GameRegistry.registerItem(gun_osipr_ammo2, gun_osipr_ammo2.getUnlocalizedName()); //Grenades GameRegistry.registerItem(grenade_generic, grenade_generic.getUnlocalizedName()); diff --git a/com/hbm/render/ModelHunterChopper.java b/com/hbm/render/ModelHunterChopper.java new file mode 100644 index 000000000..a99641bde --- /dev/null +++ b/com/hbm/render/ModelHunterChopper.java @@ -0,0 +1,505 @@ +// Date: 25.07.2016 14:23:39 +// Template version 1.1 +// Java generated by Techne +// Keep in mind that you still need to fill in some blanks +// - ZeuX + +package com.hbm.render; + +import com.hbm.entity.EntityHunterChopper; +import com.hbm.main.MainRegistry; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +public class ModelHunterChopper extends ModelBase { + // fields + ModelRenderer RotorPivotStem; + ModelRenderer RotorPivotTop; + ModelRenderer RotorPivotPlate; + ModelRenderer TorsoBaseCenter; + ModelRenderer TorsoPlateLeft; + ModelRenderer TorsoBaseBottom; + ModelRenderer TorsoPlateRight; + ModelRenderer TorsoPlateBottom; + ModelRenderer WingLeftPlate; + ModelRenderer WingRightPlate; + ModelRenderer WingLeft; + ModelRenderer WingLeftFront; + ModelRenderer WingLeftTip; + ModelRenderer WingRight; + ModelRenderer WingRightFront; + ModelRenderer WingRightTip; + ModelRenderer TorsoBaseBack; + ModelRenderer TorsoBoxBottom; + ModelRenderer TorsoPlateBack; + ModelRenderer TorsoBoxBack; + ModelRenderer TorsoPlateLeftBack; + ModelRenderer TorsoPlateRightBack; + ModelRenderer TailFrontBase; + ModelRenderer TailFrontPlate; + ModelRenderer TailBackBase; + ModelRenderer TailRotorFront; + ModelRenderer TailRotorTop; + ModelRenderer TailRotorBack; + ModelRenderer TailRotorBottom; + ModelRenderer TailRotorBlades; + ModelRenderer TailRotorPivot; + ModelRenderer HeadNeck; + ModelRenderer HeadBack; + ModelRenderer HeadBase; + ModelRenderer HeadTop; + ModelRenderer HeadFront; + ModelRenderer HeadLeft; + ModelRenderer HeadRight; + ModelRenderer HeadFrontTop; + ModelRenderer TorsoRotorBottom; + ModelRenderer TorsoRotorFront; + ModelRenderer TorsoRotorBack; + ModelRenderer TorsoRotorBlades; + ModelRenderer TorsoRotorPivot; + ModelRenderer RotorBlades; + ModelRenderer Antenna1; + ModelRenderer Antenna2; + ModelRenderer GunPivot; + ModelRenderer GunBarrel; + ModelRenderer GunBack; + + public ModelHunterChopper() { + textureWidth = 256; + textureHeight = 128; + + RotorPivotStem = new ModelRenderer(this, 40, 22); + RotorPivotStem.addBox(0F, 0F, 0F, 1, 4, 1); + RotorPivotStem.setRotationPoint(-0.5F, 0F, -0.5F); + RotorPivotStem.setTextureSize(256, 128); + RotorPivotStem.mirror = true; + setRotation(RotorPivotStem, 0F, 0F, 0F); + RotorPivotTop = new ModelRenderer(this, 40, 27); + RotorPivotTop.addBox(0F, 0F, 0F, 3, 1, 3); + RotorPivotTop.setRotationPoint(-1.5F, -1F, -1.5F); + RotorPivotTop.setTextureSize(256, 128); + RotorPivotTop.mirror = true; + setRotation(RotorPivotTop, 0F, 0F, 0F); + RotorPivotPlate = new ModelRenderer(this, 40, 31); + RotorPivotPlate.addBox(0F, 0F, 0F, 6, 1, 6); + RotorPivotPlate.setRotationPoint(-3F, 1.5F, -3F); + RotorPivotPlate.setTextureSize(256, 128); + RotorPivotPlate.mirror = true; + setRotation(RotorPivotPlate, 0F, 0F, 0F); + TorsoBaseCenter = new ModelRenderer(this, 70, 0); + TorsoBaseCenter.addBox(0F, 0F, 0F, 14, 4, 2); + TorsoBaseCenter.setRotationPoint(-8F, 4F, -1F); + TorsoBaseCenter.setTextureSize(256, 128); + TorsoBaseCenter.mirror = true; + setRotation(TorsoBaseCenter, 0F, 0F, 0F); + TorsoPlateLeft = new ModelRenderer(this, 70, 6); + TorsoPlateLeft.addBox(0F, -4F, 0F, 14, 4, 1); + TorsoPlateLeft.setRotationPoint(-8F, 8F, -2F); + TorsoPlateLeft.setTextureSize(256, 128); + TorsoPlateLeft.mirror = true; + setRotation(TorsoPlateLeft, -0.2268928F, 0F, 0F); + TorsoBaseBottom = new ModelRenderer(this, 70, 11); + TorsoBaseBottom.addBox(0F, 0F, 0F, 7, 2, 4); + TorsoBaseBottom.setRotationPoint(-4F, 8F, -2F); + TorsoBaseBottom.setTextureSize(256, 128); + TorsoBaseBottom.mirror = true; + setRotation(TorsoBaseBottom, 0F, 0F, 0F); + TorsoPlateRight = new ModelRenderer(this, 70, 17); + TorsoPlateRight.addBox(0F, -4F, -1F, 14, 4, 1); + TorsoPlateRight.setRotationPoint(-8F, 8F, 2F); + TorsoPlateRight.setTextureSize(256, 128); + TorsoPlateRight.mirror = true; + setRotation(TorsoPlateRight, 0.2268928F, 0F, 0F); + TorsoPlateBottom = new ModelRenderer(this, 70, 22); + TorsoPlateBottom.addBox(-5F, -2F, 0F, 5, 2, 4); + TorsoPlateBottom.setRotationPoint(-4F, 10F, -2F); + TorsoPlateBottom.setTextureSize(256, 128); + TorsoPlateBottom.mirror = true; + setRotation(TorsoPlateBottom, 0F, 0F, 0.2094395F); + WingLeftPlate = new ModelRenderer(this, 110, 0); + WingLeftPlate.addBox(0F, -3F, 0F, 9, 3, 1); + WingLeftPlate.setRotationPoint(-8F, 9F, -3F); + WingLeftPlate.setTextureSize(256, 128); + WingLeftPlate.mirror = true; + setRotation(WingLeftPlate, -0.2268928F, 0F, 0F); + WingRightPlate = new ModelRenderer(this, 130, 0); + WingRightPlate.addBox(0F, -3F, 0F, 9, 3, 1); + WingRightPlate.setRotationPoint(-8F, 9F, 2F); + WingRightPlate.setTextureSize(256, 128); + WingRightPlate.mirror = true; + setRotation(WingRightPlate, 0.2268928F, 0F, 0F); + WingLeft = new ModelRenderer(this, 110, 4); + WingLeft.addBox(0F, 0F, 0F, 3, 1, 6); + WingLeft.setRotationPoint(-3F, 10F, -8F); + WingLeft.setTextureSize(256, 128); + WingLeft.mirror = true; + setRotation(WingLeft, 0.3490659F, 0F, 0F); + WingLeftFront = new ModelRenderer(this, 110, 11); + WingLeftFront.addBox(0F, 0F, 0F, 2, 1, 7); + WingLeftFront.setRotationPoint(-3F, 10F, -8F); + WingLeftFront.setTextureSize(256, 128); + WingLeftFront.mirror = true; + setRotation(WingLeftFront, 0.3490659F, -0.3490659F, -0.1745329F); + WingLeftTip = new ModelRenderer(this, 110, 19); + WingLeftTip.addBox(0F, 0F, 0F, 5, 2, 1); + WingLeftTip.setRotationPoint(-4F, 9F, -8F); + WingLeftTip.setTextureSize(256, 128); + WingLeftTip.mirror = true; + setRotation(WingLeftTip, 0F, 0F, 0F); + WingRight = new ModelRenderer(this, 130, 4); + WingRight.addBox(0F, 0F, -6F, 3, 1, 6); + WingRight.setRotationPoint(-3F, 10F, 8F); + WingRight.setTextureSize(256, 128); + WingRight.mirror = true; + setRotation(WingRight, -0.3490659F, 0F, 0F); + WingRightFront = new ModelRenderer(this, 130, 11); + WingRightFront.addBox(0F, 0F, -7F, 2, 1, 7); + WingRightFront.setRotationPoint(-3F, 10F, 8F); + WingRightFront.setTextureSize(256, 128); + WingRightFront.mirror = true; + setRotation(WingRightFront, -0.3490659F, 0.3490659F, -0.1745329F); + WingRightTip = new ModelRenderer(this, 130, 19); + WingRightTip.addBox(0F, 0F, 0F, 5, 2, 1); + WingRightTip.setRotationPoint(-4F, 9F, 7F); + WingRightTip.setTextureSize(256, 128); + WingRightTip.mirror = true; + setRotation(WingRightTip, 0F, 0F, 0F); + TorsoBaseBack = new ModelRenderer(this, 70, 28); + TorsoBaseBack.addBox(0F, 0F, 0F, 3, 2, 3); + TorsoBaseBack.setRotationPoint(3F, 7.5F, -1.5F); + TorsoBaseBack.setTextureSize(256, 128); + TorsoBaseBack.mirror = true; + setRotation(TorsoBaseBack, 0F, 0F, 0F); + TorsoBoxBottom = new ModelRenderer(this, 70, 33); + TorsoBoxBottom.addBox(0F, -2F, 0F, 7, 2, 2); + TorsoBoxBottom.setRotationPoint(-3F, 10F, -1F); + TorsoBoxBottom.setTextureSize(256, 128); + TorsoBoxBottom.mirror = true; + setRotation(TorsoBoxBottom, 0F, 0F, 0.1570796F); + TorsoPlateBack = new ModelRenderer(this, 70, 37); + TorsoPlateBack.addBox(0F, 0F, 0F, 3, 1, 2); + TorsoPlateBack.setRotationPoint(6F, 4F, -1F); + TorsoPlateBack.setTextureSize(256, 128); + TorsoPlateBack.mirror = true; + setRotation(TorsoPlateBack, 0F, 0F, 0.2268928F); + TorsoBoxBack = new ModelRenderer(this, 70, 40); + TorsoBoxBack.addBox(0F, 0F, 0F, 2, 4, 2); + TorsoBoxBack.setRotationPoint(6F, 5F, -1F); + TorsoBoxBack.setTextureSize(256, 128); + TorsoBoxBack.mirror = true; + setRotation(TorsoBoxBack, 0F, 0F, 0F); + TorsoPlateLeftBack = new ModelRenderer(this, 70, 46); + TorsoPlateLeftBack.addBox(0F, -4F, -1F, 3, 4, 1); + TorsoPlateLeftBack.setRotationPoint(6F, 8.5F, -1F); + TorsoPlateLeftBack.setTextureSize(256, 128); + TorsoPlateLeftBack.mirror = true; + setRotation(TorsoPlateLeftBack, -0.2268928F, 0F, 0F); + TorsoPlateRightBack = new ModelRenderer(this, 70, 51); + TorsoPlateRightBack.addBox(0F, -4F, 0F, 3, 4, 1); + TorsoPlateRightBack.setRotationPoint(6F, 8.5F, 1F); + TorsoPlateRightBack.setTextureSize(256, 128); + TorsoPlateRightBack.mirror = true; + setRotation(TorsoPlateRightBack, 0.2268928F, 0F, 0F); + TailFrontBase = new ModelRenderer(this, 24, 54); + TailFrontBase.addBox(0F, 0F, 0F, 5, 2, 2); + TailFrontBase.setRotationPoint(8F, 6F, -1F); + TailFrontBase.setTextureSize(256, 128); + TailFrontBase.mirror = true; + setRotation(TailFrontBase, 0F, 0F, 0F); + TailFrontPlate = new ModelRenderer(this, 24, 58); + TailFrontPlate.addBox(-5F, 0F, 0F, 5, 1, 2); + TailFrontPlate.setRotationPoint(13F, 6F, -1F); + TailFrontPlate.setTextureSize(256, 128); + TailFrontPlate.mirror = true; + setRotation(TailFrontPlate, 0F, 0F, 0.2268928F); + TailBackBase = new ModelRenderer(this, 24, 61); + TailBackBase.addBox(0F, 0F, 0F, 4, 2, 1); + TailBackBase.setRotationPoint(13F, 6F, -0.5F); + TailBackBase.setTextureSize(256, 128); + TailBackBase.mirror = true; + setRotation(TailBackBase, 0F, 0F, 0F); + TailRotorFront = new ModelRenderer(this, 24, 64); + TailRotorFront.addBox(0F, 0F, 0F, 1, 3, 1); + TailRotorFront.setRotationPoint(15.5F, 8F, -0.5F); + TailRotorFront.setTextureSize(256, 128); + TailRotorFront.mirror = true; + setRotation(TailRotorFront, 0F, 0F, -0.2268928F); + TailRotorTop = new ModelRenderer(this, 24, 68); + TailRotorTop.addBox(0F, 0F, 0F, 3, 1, 1); + TailRotorTop.setRotationPoint(17F, 6F, -0.5F); + TailRotorTop.setTextureSize(256, 128); + TailRotorTop.mirror = true; + setRotation(TailRotorTop, 0F, 0F, 0F); + TailRotorBack = new ModelRenderer(this, 24, 70); + TailRotorBack.addBox(0F, 0F, 0F, 1, 4, 1); + TailRotorBack.setRotationPoint(20F, 6F, -0.5F); + TailRotorBack.setTextureSize(256, 128); + TailRotorBack.mirror = true; + setRotation(TailRotorBack, 0F, 0F, 0F); + TailRotorBottom = new ModelRenderer(this, 24, 75); + TailRotorBottom.addBox(0F, 0F, 0F, 3, 1, 1); + TailRotorBottom.setRotationPoint(18F, 10F, -0.5F); + TailRotorBottom.setTextureSize(256, 128); + TailRotorBottom.mirror = true; + setRotation(TailRotorBottom, 0F, 0F, 0F); + TailRotorBlades = new ModelRenderer(this, 120, 120); + TailRotorBlades.addBox(0F, 0F, 0F, 3, 3, 0); + TailRotorBlades.setRotationPoint(17F, 7F, 0F); + TailRotorBlades.setTextureSize(256, 128); + TailRotorBlades.mirror = true; + setRotation(TailRotorBlades, 0F, 0F, 0F); + TailRotorPivot = new ModelRenderer(this, 24, 77); + TailRotorPivot.addBox(0F, 0F, 0F, 1, 2, 1); + TailRotorPivot.setRotationPoint(18F, 8F, -0.5F); + TailRotorPivot.setTextureSize(256, 128); + TailRotorPivot.mirror = true; + setRotation(TailRotorPivot, 0F, 0F, 0F); + HeadNeck = new ModelRenderer(this, 0, 40); + HeadNeck.addBox(-1F, 0F, 0F, 1, 6, 3); + HeadNeck.setRotationPoint(-7F, 4F, -1.5F); + HeadNeck.setTextureSize(256, 128); + HeadNeck.mirror = true; + setRotation(HeadNeck, 0F, 0F, 0.2268928F); + HeadBack = new ModelRenderer(this, 0, 49); + HeadBack.addBox(0F, 0F, 0F, 1, 7, 4); + HeadBack.setRotationPoint(-8.5F, 3.5F, -2F); + HeadBack.setTextureSize(256, 128); + HeadBack.mirror = true; + setRotation(HeadBack, 0F, 0F, 0.2268928F); + HeadBase = new ModelRenderer(this, 0, 60); + HeadBase.addBox(-2F, 1F, 0F, 2, 6, 4); + HeadBase.setRotationPoint(-8.5F, 3.5F, -2F); + HeadBase.setTextureSize(256, 128); + HeadBase.mirror = true; + setRotation(HeadBase, 0F, 0F, 0.2268928F); + HeadTop = new ModelRenderer(this, 0, 70); + HeadTop.addBox(-2F, 0F, 0F, 2, 2, 4); + HeadTop.setRotationPoint(-8.5F, 3.5F, -2F); + HeadTop.setTextureSize(256, 128); + HeadTop.mirror = true; + setRotation(HeadTop, 0F, 0F, -0.2268928F); + HeadFront = new ModelRenderer(this, 0, 76); + HeadFront.addBox(0F, 0F, 0F, 2, 4, 2); + HeadFront.setRotationPoint(-13F, 5F, -1F); + HeadFront.setTextureSize(256, 128); + HeadFront.mirror = true; + setRotation(HeadFront, 0F, 0F, 0F); + HeadLeft = new ModelRenderer(this, 0, 82); + HeadLeft.addBox(-3F, 0F, 0F, 3, 4, 1); + HeadLeft.setRotationPoint(-10F, 5F, -2F); + HeadLeft.setTextureSize(256, 128); + HeadLeft.mirror = true; + setRotation(HeadLeft, 0F, 0.3490659F, 0F); + HeadRight = new ModelRenderer(this, 0, 87); + HeadRight.addBox(-3F, 0F, -1F, 3, 4, 1); + HeadRight.setRotationPoint(-10F, 5F, 2F); + HeadRight.setTextureSize(256, 128); + HeadRight.mirror = true; + setRotation(HeadRight, 0F, -0.3490659F, 0F); + HeadFrontTop = new ModelRenderer(this, 0, 92); + HeadFrontTop.addBox(-3F, 0F, 0F, 3, 1, 2); + HeadFrontTop.setRotationPoint(-10.5F, 4F, -1F); + HeadFrontTop.setTextureSize(256, 128); + HeadFrontTop.mirror = true; + setRotation(HeadFrontTop, 0F, 0F, -0.3490659F); + TorsoRotorBottom = new ModelRenderer(this, 0, 0); + TorsoRotorBottom.addBox(0F, 0F, 0F, 3, 1, 1); + TorsoRotorBottom.setRotationPoint(-7F, 11.5F, -0.5F); + TorsoRotorBottom.setTextureSize(256, 128); + TorsoRotorBottom.mirror = true; + setRotation(TorsoRotorBottom, 0F, 0F, 0F); + TorsoRotorFront = new ModelRenderer(this, 0, 2); + TorsoRotorFront.addBox(0F, 0F, 0F, 1, 3, 1); + TorsoRotorFront.setRotationPoint(-8F, 9F, -0.5F); + TorsoRotorFront.setTextureSize(256, 128); + TorsoRotorFront.mirror = true; + setRotation(TorsoRotorFront, 0F, 0F, 0F); + TorsoRotorBack = new ModelRenderer(this, 0, 6); + TorsoRotorBack.addBox(0F, 0F, 0F, 1, 2, 1); + TorsoRotorBack.setRotationPoint(-4F, 10F, -0.5F); + TorsoRotorBack.setTextureSize(256, 128); + TorsoRotorBack.mirror = true; + setRotation(TorsoRotorBack, 0F, 0F, 0F); + TorsoRotorBlades = new ModelRenderer(this, 112, 120); + TorsoRotorBlades.addBox(0F, 0F, 0F, 3, 3, 0); + TorsoRotorBlades.setRotationPoint(-7F, 8.5F, 0F); + TorsoRotorBlades.setTextureSize(256, 128); + TorsoRotorBlades.mirror = true; + setRotation(TorsoRotorBlades, 0F, 0F, 0F); + TorsoRotorPivot = new ModelRenderer(this, 0, 9); + TorsoRotorPivot.addBox(0F, 0F, 0F, 1, 2, 1); + TorsoRotorPivot.setRotationPoint(-6F, 8.5F, -0.5F); + TorsoRotorPivot.setTextureSize(256, 128); + TorsoRotorPivot.mirror = true; + setRotation(TorsoRotorPivot, 0F, 0F, 0F); + RotorBlades = new ModelRenderer(this, 76, 68); + RotorBlades.addBox(-30F, 0F, -30F, 60, 0, 60); + RotorBlades.setRotationPoint(0F, 1.5F, 0F); + RotorBlades.setTextureSize(256, 128); + RotorBlades.mirror = true; + setRotation(RotorBlades, 0F, 0F, 0F); + Antenna1 = new ModelRenderer(this, 0, 95); + Antenna1.addBox(0F, 0F, 0F, 4, 1, 1); + Antenna1.setRotationPoint(-14F, 4F, 0.5F); + Antenna1.setTextureSize(256, 128); + Antenna1.mirror = true; + setRotation(Antenna1, 0F, 0F, 0F); + Antenna2 = new ModelRenderer(this, 0, 97); + Antenna2.addBox(0F, 0F, 0F, 2, 1, 1); + Antenna2.setRotationPoint(-15F, 7F, 0F); + Antenna2.setTextureSize(256, 128); + Antenna2.mirror = true; + setRotation(Antenna2, 0F, 0F, 0F); + GunPivot = new ModelRenderer(this, 0, 106); + GunPivot.addBox(0F, 0F, 0F, 1, 2, 2); + GunPivot.setRotationPoint(-11F, 10F, -1F); + GunPivot.setTextureSize(256, 128); + GunPivot.mirror = true; + setRotation(GunPivot, 0F, 0F, 0F); + GunBarrel = new ModelRenderer(this, 0, 110); + GunBarrel.addBox(-6F, 0F, -0.5F, 6, 1, 1); + GunBarrel.setRotationPoint(-10.5F, 11.5F, 0F); + GunBarrel.setTextureSize(256, 128); + GunBarrel.mirror = true; + setRotation(GunBarrel, 0F, MainRegistry.x, 0F); + GunBack = new ModelRenderer(this, 0, 112); + GunBack.addBox(0F, -1F, -1F, 2, 2, 2); + GunBack.setRotationPoint(-10.5F, 12F, 0F); + GunBack.setTextureSize(256, 128); + GunBack.mirror = true; + setRotation(GunBack, 0F, MainRegistry.x, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + RotorPivotStem.render(f5); + RotorPivotTop.render(f5); + RotorPivotPlate.render(f5); + TorsoBaseCenter.render(f5); + TorsoPlateLeft.render(f5); + TorsoBaseBottom.render(f5); + TorsoPlateRight.render(f5); + TorsoPlateBottom.render(f5); + WingLeftPlate.render(f5); + WingRightPlate.render(f5); + WingLeft.render(f5); + WingLeftFront.render(f5); + WingLeftTip.render(f5); + WingRight.render(f5); + WingRightFront.render(f5); + WingRightTip.render(f5); + TorsoBaseBack.render(f5); + TorsoBoxBottom.render(f5); + TorsoPlateBack.render(f5); + TorsoBoxBack.render(f5); + TorsoPlateLeftBack.render(f5); + TorsoPlateRightBack.render(f5); + TailFrontBase.render(f5); + TailFrontPlate.render(f5); + TailBackBase.render(f5); + TailRotorFront.render(f5); + TailRotorTop.render(f5); + TailRotorBack.render(f5); + TailRotorBottom.render(f5); + TailRotorBlades.render(f5); + TailRotorPivot.render(f5); + HeadNeck.render(f5); + HeadBack.render(f5); + HeadBase.render(f5); + HeadTop.render(f5); + HeadFront.render(f5); + HeadLeft.render(f5); + HeadRight.render(f5); + HeadFrontTop.render(f5); + TorsoRotorBottom.render(f5); + TorsoRotorFront.render(f5); + TorsoRotorBack.render(f5); + TorsoRotorBlades.render(f5); + TorsoRotorPivot.render(f5); + RotorBlades.render(f5); + Antenna1.render(f5); + Antenna2.render(f5); + GunPivot.render(f5); + GunBarrel.render(f5); + GunBack.render(f5); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + } + + public void renderAll(float f5) { + RotorPivotStem.render(f5); + RotorPivotTop.render(f5); + RotorPivotPlate.render(f5); + TorsoBaseCenter.render(f5); + TorsoPlateLeft.render(f5); + TorsoBaseBottom.render(f5); + TorsoPlateRight.render(f5); + TorsoPlateBottom.render(f5); + WingLeftPlate.render(f5); + WingRightPlate.render(f5); + WingLeft.render(f5); + WingLeftFront.render(f5); + WingLeftTip.render(f5); + WingRight.render(f5); + WingRightFront.render(f5); + WingRightTip.render(f5); + TorsoBaseBack.render(f5); + TorsoBoxBottom.render(f5); + TorsoPlateBack.render(f5); + TorsoBoxBack.render(f5); + TorsoPlateLeftBack.render(f5); + TorsoPlateRightBack.render(f5); + TailFrontBase.render(f5); + TailFrontPlate.render(f5); + TailBackBase.render(f5); + TailRotorFront.render(f5); + TailRotorTop.render(f5); + TailRotorBack.render(f5); + TailRotorBottom.render(f5); + TailRotorBlades.render(f5); + TailRotorPivot.render(f5); + HeadNeck.render(f5); + HeadBack.render(f5); + HeadBase.render(f5); + HeadTop.render(f5); + HeadFront.render(f5); + HeadLeft.render(f5); + HeadRight.render(f5); + HeadFrontTop.render(f5); + TorsoRotorBottom.render(f5); + TorsoRotorFront.render(f5); + TorsoRotorBack.render(f5); + TorsoRotorBlades.render(f5); + TorsoRotorPivot.render(f5); + RotorBlades.render(f5); + Antenna1.render(f5); + Antenna2.render(f5); + GunPivot.render(f5); + GunBarrel.render(f5); + GunBack.render(f5); + } + + public void setGunRotations(EntityHunterChopper rocket, float yaw, float pitch) { + //setRotation(GunBarrel, 0F, rocket.gunYaw - yaw, rocket.gunPitch - pitch); + //setRotation(GunBack, 0F, rocket.gunYaw - yaw, rocket.gunPitch - pitch); + //setRotation(GunBarrel, 0F, 0 - yaw, 0 - pitch); + //setRotation(GunBack, 0F, 0 - yaw, 0 - pitch); + //setRotation(GunBarrel, 0F, rocket.gunYaw, rocket.gunPitch); + //setRotation(GunBack, 0F, rocket.gunYaw, rocket.gunPitch); + setRotation(GunBarrel, 0F, (rocket.getYaw() - yaw) / (180F / (float)Math.PI), (rocket.getPitch() - pitch) / (180F / (float)Math.PI)); + setRotation(GunBack, 0F, (rocket.getYaw() - yaw) / (180F / (float)Math.PI), (rocket.getPitch() - pitch) / (180F / (float)Math.PI)); + System.out.println(rocket.getYaw()); + } + +} diff --git a/com/hbm/render/RenderHunterChopper.java b/com/hbm/render/RenderHunterChopper.java index bb29bbc53..869c5740c 100644 --- a/com/hbm/render/RenderHunterChopper.java +++ b/com/hbm/render/RenderHunterChopper.java @@ -2,6 +2,7 @@ package com.hbm.render; import org.lwjgl.opengl.GL11; +import com.hbm.entity.EntityHunterChopper; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; @@ -10,11 +11,13 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; public class RenderHunterChopper extends Render { - + ProtoCopter mine; + ModelHunterChopper mine2; public RenderHunterChopper() { mine = new ProtoCopter(); + mine2 = new ModelHunterChopper(); } @Override @@ -23,14 +26,19 @@ public class RenderHunterChopper extends Render { GL11.glPushMatrix(); GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); GL11.glTranslatef(0.0625F * 0, 0.0625F * 32, 0.0625F * 0); + GL11.glTranslatef(0.0625F * 0, 0.0625F * 12, 0.0625F * 0); GL11.glScalef(4F, 4F, 4F); GL11.glRotatef(180, 1, 0, 0); - GL11.glRotatef(rocket.prevRotationYaw + (rocket.rotationYaw - rocket.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(rocket.prevRotationPitch + (rocket.rotationPitch - rocket.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + + float yaw = rocket.prevRotationYaw + (rocket.rotationYaw - rocket.prevRotationYaw) * p_76986_9_ - 90.0F; + float pitch = rocket.prevRotationPitch + (rocket.rotationPitch - rocket.prevRotationPitch) * p_76986_9_; bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/TheGadget3_.png")); - mine.renderAll(0.0625F); + if(rocket instanceof EntityHunterChopper) + mine2.setGunRotations((EntityHunterChopper)rocket, yaw, pitch); + + mine2.renderAll(0.0625F); GL11.glPopMatrix(); }