From 9b149f3e3d4481c42abbbdbe5c7b06b9a8f473a1 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 17 Dec 2024 11:37:37 +0100 Subject: [PATCH 1/7] trash incineration --- changelog | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 9 - .../com/hbm/blocks/generic/BlockCrate.java | 20 +- .../com/hbm/blocks/generic/DecoBlockAlt.java | 129 +-- .../hbm/commands/CommandReloadRecipes.java | 7 +- .../java/com/hbm/crafting/WeaponRecipes.java | 1 - .../java/com/hbm/entity/EntityMappings.java | 1 - .../com/hbm/entity/logic/EntityBomber.java | 12 - .../hbm/entity/projectile/EntityRocket.java | 1 + .../entity/projectile/EntityRocketHoming.java | 750 ------------------ .../com/hbm/explosion/ExplosionChaos.java | 5 +- .../hbm/handler/BulletConfigSyncingUtil.java | 12 - .../guncfg/GunRocketHomingFactory.java | 257 ------ .../inventory/recipes/AssemblerRecipes.java | 17 +- .../com/hbm/itempool/ItemPoolsLegacy.java | 2 +- .../com/hbm/itempool/ItemPoolsRedRoom.java | 1 - .../com/hbm/itempool/ItemPoolsSingle.java | 11 +- src/main/java/com/hbm/items/ModItems.java | 11 +- .../java/com/hbm/items/food/ItemNugget.java | 26 - .../com/hbm/items/special/ItemGlitch.java | 2 +- .../com/hbm/items/special/ItemStarterKit.java | 4 +- src/main/java/com/hbm/main/ClientProxy.java | 1 - src/main/java/com/hbm/main/MainRegistry.java | 9 +- src/main/java/com/hbm/main/NEIConfig.java | 3 - .../entity/projectile/RenderBaleflare.java | 37 - .../entity/projectile/RenderBullet.java | 42 - .../entity/projectile/RenderMiniMIRV.java | 37 - .../entity/projectile/RenderMiniNuke.java | 38 - .../render/entity/projectile/RenderMirv.java | 14 +- .../entity/projectile/RenderSRocket.java | 49 -- .../item/weapon/ItemRenderBFLauncher.java | 66 -- .../item/weapon/ItemRenderBaleflare.java | 66 -- .../render/item/weapon/ItemRenderBenelli.java | 117 --- .../item/weapon/ItemRenderCryolator.java | 71 -- .../render/item/weapon/ItemRenderEMPRay.java | 75 -- .../render/item/weapon/ItemRenderFatMan.java | 67 -- .../render/item/weapon/ItemRenderGunAnim.java | 43 - .../item/weapon/ItemRenderImmolator.java | 71 -- .../item/weapon/ItemRenderLunaticSniper.java | 138 ---- .../hbm/render/item/weapon/ItemRenderM2.java | 70 -- .../render/item/weapon/ItemRenderMIRV.java | 66 -- .../item/weapon/ItemRenderMIRVLauncher.java | 67 -- .../hbm/render/item/weapon/ItemRenderMP.java | 73 -- .../render/item/weapon/ItemRenderMP40.java | 76 -- .../item/weapon/ItemRenderMiniNuke.java | 67 -- .../item/weapon/ItemRenderNukeGadget.java | 59 -- .../render/item/weapon/ItemRenderOSIPR.java | 72 -- .../item/weapon/ItemRenderOverkill.java | 271 ------- .../item/weapon/ItemRenderRevolver.java | 81 -- .../item/weapon/ItemRenderRevolverCursed.java | 69 -- .../item/weapon/ItemRenderRevolverGold.java | 69 -- .../weapon/ItemRenderRevolverInverted.java | 117 --- .../item/weapon/ItemRenderRevolverIron.java | 69 -- .../item/weapon/ItemRenderRevolverLead.java | 68 -- .../weapon/ItemRenderRevolverSchrabidium.java | 69 -- .../hbm/render/item/weapon/ItemRenderRpg.java | 102 --- .../render/item/weapon/ItemRenderStinger.java | 84 -- .../item/weapon/ItemRenderUACPistol.java | 109 --- .../hbm/render/item/weapon/ItemRenderUZI.java | 135 ---- .../render/item/weapon/ItemRenderUboinik.java | 75 -- .../item/weapon/ItemRenderWeaponBolter.java | 153 ---- .../ItemRenderWeaponFFNightmareDark.java | 91 --- .../item/weapon/ItemRenderWeaponGlass.java | 178 ----- .../item/weapon/ItemRenderWeaponVortex.java | 90 --- .../render/item/weapon/ItemRenderZOMG.java | 81 -- .../java/com/hbm/render/model/ModelB93.java | 487 ------------ .../com/hbm/render/model/ModelBFLauncher.java | 261 ------ .../com/hbm/render/model/ModelBaleflare.java | 114 --- .../com/hbm/render/model/ModelCalBarrel.java | 108 --- .../hbm/render/model/ModelCalDualStock.java | 243 ------ .../com/hbm/render/model/ModelCalStock.java | 175 ---- .../com/hbm/render/model/ModelCryolator.java | 417 ---------- .../hbm/render/model/ModelDefabricator.java | 231 ------ .../com/hbm/render/model/ModelEMPRay.java | 393 --------- .../com/hbm/render/model/ModelEuthanasia.java | 169 ---- .../com/hbm/render/model/ModelFatman.java | 318 -------- .../com/hbm/render/model/ModelGustav.java | 313 -------- .../java/com/hbm/render/model/ModelHP.java | 194 ----- .../com/hbm/render/model/ModelImmolator.java | 247 ------ .../java/com/hbm/render/model/ModelJack.java | 129 --- .../com/hbm/render/model/ModelLacunae.java | 598 -------------- .../hbm/render/model/ModelLeverAction.java | 233 ------ .../java/com/hbm/render/model/ModelMIRV.java | 95 --- .../hbm/render/model/ModelMIRVLauncher.java | 287 ------- .../java/com/hbm/render/model/ModelMP.java | 234 ------ .../java/com/hbm/render/model/ModelMP40.java | 165 ---- .../com/hbm/render/model/ModelMiniNuke.java | 125 --- .../java/com/hbm/render/model/ModelOSIPR.java | 249 ------ .../java/com/hbm/render/model/ModelPoles.java | 134 ---- .../com/hbm/render/model/ModelRainbow.java | 125 --- .../com/hbm/render/model/ModelSRocket.java | 94 --- .../java/com/hbm/render/model/ModelSpark.java | 189 ----- .../com/hbm/render/model/ModelUboinik.java | 320 -------- .../java/com/hbm/render/model/ModelUzi.java | 420 ---------- .../com/hbm/render/model/ModelUziBarrel.java | 45 -- .../hbm/render/model/ModelUziSilencer.java | 61 -- .../java/com/hbm/render/model/ModelZOMG.java | 255 ------ .../hbm/render/tileentity/RenderBobble.java | 4 +- .../com/hbm/render/tileentity/RenderLoot.java | 11 +- .../render/tileentity/RenderSteelPoles.java | 48 -- .../java/com/hbm/util/AchievementHandler.java | 2 - 101 files changed, 62 insertions(+), 12116 deletions(-) delete mode 100644 src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java delete mode 100644 src/main/java/com/hbm/handler/guncfg/GunRocketHomingFactory.java delete mode 100644 src/main/java/com/hbm/items/food/ItemNugget.java delete mode 100644 src/main/java/com/hbm/render/entity/projectile/RenderBaleflare.java delete mode 100644 src/main/java/com/hbm/render/entity/projectile/RenderMiniMIRV.java delete mode 100644 src/main/java/com/hbm/render/entity/projectile/RenderMiniNuke.java delete mode 100644 src/main/java/com/hbm/render/entity/projectile/RenderSRocket.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderBFLauncher.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderBaleflare.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderCryolator.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderEMPRay.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderFatMan.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderImmolator.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderLunaticSniper.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderM2.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderMIRV.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderMIRVLauncher.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderMP.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderMP40.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderMiniNuke.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderNukeGadget.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderOSIPR.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderRevolver.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverCursed.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverGold.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverInverted.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverIron.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverLead.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverSchrabidium.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderRpg.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderStinger.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderUACPistol.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderUZI.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderUboinik.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponBolter.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFNightmareDark.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponGlass.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponVortex.java delete mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderZOMG.java delete mode 100644 src/main/java/com/hbm/render/model/ModelB93.java delete mode 100644 src/main/java/com/hbm/render/model/ModelBFLauncher.java delete mode 100644 src/main/java/com/hbm/render/model/ModelBaleflare.java delete mode 100644 src/main/java/com/hbm/render/model/ModelCalBarrel.java delete mode 100644 src/main/java/com/hbm/render/model/ModelCalDualStock.java delete mode 100644 src/main/java/com/hbm/render/model/ModelCalStock.java delete mode 100644 src/main/java/com/hbm/render/model/ModelCryolator.java delete mode 100755 src/main/java/com/hbm/render/model/ModelDefabricator.java delete mode 100644 src/main/java/com/hbm/render/model/ModelEMPRay.java delete mode 100644 src/main/java/com/hbm/render/model/ModelEuthanasia.java delete mode 100644 src/main/java/com/hbm/render/model/ModelFatman.java delete mode 100644 src/main/java/com/hbm/render/model/ModelGustav.java delete mode 100644 src/main/java/com/hbm/render/model/ModelHP.java delete mode 100644 src/main/java/com/hbm/render/model/ModelImmolator.java delete mode 100644 src/main/java/com/hbm/render/model/ModelJack.java delete mode 100644 src/main/java/com/hbm/render/model/ModelLacunae.java delete mode 100644 src/main/java/com/hbm/render/model/ModelLeverAction.java delete mode 100644 src/main/java/com/hbm/render/model/ModelMIRV.java delete mode 100644 src/main/java/com/hbm/render/model/ModelMIRVLauncher.java delete mode 100644 src/main/java/com/hbm/render/model/ModelMP.java delete mode 100644 src/main/java/com/hbm/render/model/ModelMP40.java delete mode 100644 src/main/java/com/hbm/render/model/ModelMiniNuke.java delete mode 100644 src/main/java/com/hbm/render/model/ModelOSIPR.java delete mode 100644 src/main/java/com/hbm/render/model/ModelPoles.java delete mode 100644 src/main/java/com/hbm/render/model/ModelRainbow.java delete mode 100644 src/main/java/com/hbm/render/model/ModelSRocket.java delete mode 100644 src/main/java/com/hbm/render/model/ModelSpark.java delete mode 100644 src/main/java/com/hbm/render/model/ModelUboinik.java delete mode 100644 src/main/java/com/hbm/render/model/ModelUzi.java delete mode 100644 src/main/java/com/hbm/render/model/ModelUziBarrel.java delete mode 100644 src/main/java/com/hbm/render/model/ModelUziSilencer.java delete mode 100644 src/main/java/com/hbm/render/model/ModelZOMG.java delete mode 100644 src/main/java/com/hbm/render/tileentity/RenderSteelPoles.java diff --git a/changelog b/changelog index 90f5e2046..4adc7f7d7 100644 --- a/changelog +++ b/changelog @@ -1,6 +1,6 @@ ## Changed * Any bullet that can ricochet (or at least runs the code for it) can now also break glass -* Removed the witch taunter achievement for being unobtainable now +* Removed three old achievements which no longer work due to the gun changes * AJR armor plating now uses niobium instead of saturnite, and yields twice as many items per recipe * Due to the gating change, the saturnite anvil now has a tier equivalent to a bronze anvil diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index d89bba9bf..17183e61f 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1112,9 +1112,6 @@ public class ModBlocks { public static Block rail_large_switch; public static Block rail_large_switch_flipped; - public static Block statue_elb; - public static Block statue_elb_g; - public static Block statue_elb_w; public static Block statue_elb_f; public static Block cheater_virus; @@ -2273,9 +2270,6 @@ public class ModBlocks { volcano_core = new BlockVolcano().setBlockName("volcano_core").setBlockUnbreakable().setResistance(10000.0F).setCreativeTab(MainRegistry.nukeTab).setBlockTextureName(RefStrings.MODID + ":volcano_core"); volcano_rad_core = new BlockVolcano().setBlockName("volcano_rad_core").setBlockUnbreakable().setResistance(10000.0F).setCreativeTab(MainRegistry.nukeTab).setBlockTextureName(RefStrings.MODID + ":volcano_rad_core"); - statue_elb = new DecoBlockAlt(Material.iron).setBlockName("#null").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY); - statue_elb_g = new DecoBlockAlt(Material.iron).setBlockName("#void").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY); - statue_elb_w = new DecoBlockAlt(Material.iron).setBlockName("#ngtv").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY); statue_elb_f = new DecoBlockAlt(Material.iron).setBlockName("#undef").setHardness(Float.POSITIVE_INFINITY).setLightLevel(1.0F).setResistance(Float.POSITIVE_INFINITY); mud_fluid = new MudFluid().setDensity(2500).setViscosity(3000).setLuminosity(5).setTemperature(2773).setUnlocalizedName("mud_fluid"); @@ -3386,9 +3380,6 @@ public class ModBlocks { GameRegistry.registerBlock(crate_jungle, crate_jungle.getUnlocalizedName()); //ElB - GameRegistry.registerBlock(statue_elb, statue_elb.getUnlocalizedName()); - GameRegistry.registerBlock(statue_elb_g, statue_elb_g.getUnlocalizedName()); - GameRegistry.registerBlock(statue_elb_w, statue_elb_w.getUnlocalizedName()); GameRegistry.registerBlock(statue_elb_f, statue_elb_f.getUnlocalizedName()); //Fluids diff --git a/src/main/java/com/hbm/blocks/generic/BlockCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCrate.java index 0ea141491..a951b93e9 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCrate.java @@ -59,19 +59,13 @@ public class BlockCrate extends BlockFalling { BlockCrate.addToListWithWeight(crateList, ModItems.ammo_container, 2); // Weapon Crate - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_revolver, 9); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_revolver_gold, 7); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_revolver_cursed, 7); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_calamity, 3); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_rpg, 7); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_karl, 4); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_panzerschreck, 6); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_hk69, 8); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_mp40, 9); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_uzi_silencer, 5); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_uboinik, 8); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_lever_action, 7); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_bolt_action, 7); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_light_revolver, 10); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_maresleg, 7); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_heavy_revolver, 5); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_greasegun, 5); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_liberator, 2); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_flaregun, 8); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_panzerschreck, 1); // Lead Crate BlockCrate.addToListWithWeight(leadList, ModItems.ingot_uranium, 10); diff --git a/src/main/java/com/hbm/blocks/generic/DecoBlockAlt.java b/src/main/java/com/hbm/blocks/generic/DecoBlockAlt.java index 97bd5d391..980433dc0 100644 --- a/src/main/java/com/hbm/blocks/generic/DecoBlockAlt.java +++ b/src/main/java/com/hbm/blocks/generic/DecoBlockAlt.java @@ -1,14 +1,9 @@ package com.hbm.blocks.generic; -import java.util.ArrayList; - import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.deco.TileEntityDecoBlockAlt; import com.hbm.tileentity.deco.TileEntityDecoBlockAltF; -import com.hbm.tileentity.deco.TileEntityDecoBlockAltG; -import com.hbm.tileentity.deco.TileEntityDecoBlockAltW; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -17,7 +12,6 @@ import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; @@ -34,37 +28,14 @@ public class DecoBlockAlt extends BlockContainer { @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { - //this.blockIcon = iconRegister.registerIcon("stone"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":code"); } @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - if(this == ModBlocks.statue_elb) - return new TileEntityDecoBlockAlt(); - if(this == ModBlocks.statue_elb_g) - return new TileEntityDecoBlockAltG(); - if(this == ModBlocks.statue_elb_w) - return new TileEntityDecoBlockAltW(); - if(this == ModBlocks.statue_elb_f) - return new TileEntityDecoBlockAltF(); + if(this == ModBlocks.statue_elb_f) return new TileEntityDecoBlockAltF(); return null; } - - @Override - public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) - { - ArrayList drops = new ArrayList(); - drops.add(new ItemStack(Item.getItemFromBlock(ModBlocks.statue_elb))); - if (this == ModBlocks.statue_elb_g || this == ModBlocks.statue_elb_f) - { - drops.add(new ItemStack(ModItems.gun_revolver_cursed, 1, 0)); - } - if (this == ModBlocks.statue_elb_w || this == ModBlocks.statue_elb_f) { - drops.add(new ItemStack(ModItems.watch, 1, 0)); - } - return drops; - } @Override public int getRenderType(){ @@ -84,89 +55,33 @@ public class DecoBlockAlt extends BlockContainer { @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { + + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } - if(i == 1) - { + if(i == 1) { world.setBlockMetadataWithNotify(x, y, z, 5, 2); } - if(i == 2) - { + if(i == 2) { world.setBlockMetadataWithNotify(x, y, z, 3, 2); } - if(i == 3) - { + if(i == 3) { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { + if(world.isRemote) { return true; - } else if(!player.isSneaking()) - { - if(player.getCurrentEquippedItem() != null) - { - if(this == ModBlocks.statue_elb) - { - if(player.getCurrentEquippedItem().getItem() == ModItems.gun_revolver_cursed) - { - world.setBlock(x, y, z, ModBlocks.statue_elb_g, world.getBlockMetadata(x, y, z), 2); - - if (!player.capabilities.isCreativeMode) - { - --player.getCurrentEquippedItem().stackSize; - } - return true; - } - - if(player.getCurrentEquippedItem().getItem() == ModItems.watch) - { - world.setBlock(x, y, z, ModBlocks.statue_elb_w, world.getBlockMetadata(x, y, z), 2); - - if (!player.capabilities.isCreativeMode) - { - --player.getCurrentEquippedItem().stackSize; - } - return true; - } - } - if(this == ModBlocks.statue_elb_g) - { - if(player.getCurrentEquippedItem().getItem() == ModItems.watch) - { - world.setBlock(x, y, z, ModBlocks.statue_elb_f, world.getBlockMetadata(x, y, z), 2); - - if (!player.capabilities.isCreativeMode) - { - --player.getCurrentEquippedItem().stackSize; - } - return true; - } - } - if(this == ModBlocks.statue_elb_w) - { - if(player.getCurrentEquippedItem().getItem() == ModItems.gun_revolver_cursed) - { - world.setBlock(x, y, z, ModBlocks.statue_elb_f, world.getBlockMetadata(x, y, z), 2); - - if (!player.capabilities.isCreativeMode) - { - --player.getCurrentEquippedItem().stackSize; - } - return true; - } - } + } else if(!player.isSneaking()) { + + if(player.getCurrentEquippedItem() != null) { boolean cracked = player.getHeldItem().getItem() == ModItems.key_red_cracked; + if((player.getHeldItem().getItem() == ModItems.key_red || cracked)) { if(cracked) player.getHeldItem().stackSize--; - world.func_147480_a(x, y, z, false); - this.dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), 0); + world.func_147480_a(x, y, z, true); return true; } } @@ -175,17 +90,15 @@ public class DecoBlockAlt extends BlockContainer { } @Override - public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) - { - float f = 0.0625F; - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 8*f, 1.0F); - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - float f = 0.0625F; - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 8*f, 1.0F); - return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) { + float f = 0.0625F; + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 8 * f, 1.0F); } + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + float f = 0.0625F; + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 8 * f, 1.0F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } } diff --git a/src/main/java/com/hbm/commands/CommandReloadRecipes.java b/src/main/java/com/hbm/commands/CommandReloadRecipes.java index 6c8c83612..9068adb38 100644 --- a/src/main/java/com/hbm/commands/CommandReloadRecipes.java +++ b/src/main/java/com/hbm/commands/CommandReloadRecipes.java @@ -3,7 +3,6 @@ package com.hbm.commands; import com.hbm.config.ItemPoolConfigJSON; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.loader.SerializableRecipe; -import com.hbm.main.MainRegistry; import com.hbm.util.ChatBuilder; import com.hbm.util.DamageResistanceHandler; @@ -12,10 +11,6 @@ import net.minecraft.command.ICommandSender; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; -import java.io.File; - - - public class CommandReloadRecipes extends CommandBase { @Override @@ -34,7 +29,7 @@ public class CommandReloadRecipes extends CommandBase { SerializableRecipe.initialize(); ItemPoolConfigJSON.initialize(); DamageResistanceHandler.init(); - Fluids.reloadFluids(); + Fluids.reloadFluids(); sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Reload complete :)")); } catch(Exception ex) { diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index bb739955c..1496381ee 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -195,7 +195,6 @@ public class WeaponRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { Fluids.GASOLINE_LEADED.getDict(1000), Items.flint }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { Fluids.BIOFUEL.getDict(1000), Items.flint }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_lemon, 1), new Object[] { ModItems.lemon, ModItems.grenade_strong }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.gun_moist_nugget, 12), new Object[] { Items.bread, Items.wheat, Items.cooked_chicken, Items.egg }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_smart, 4), new Object[] { " A ", "ACA", " A ", 'A', ModItems.grenade_strong, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_mirv, 1), new Object[] { "GGG", "GCG", "GGG", 'G', ModItems.grenade_smart, 'C', ModItems.grenade_generic }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_breach, 1), new Object[] { "G", "G", "P", 'G', ModItems.grenade_smart, 'P', BIGMT.plate() }); diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 76c27234b..6e995ce01 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -109,7 +109,6 @@ public class EntityMappings { addEntity(EntityCloudFleijaRainbow.class, "entity_cloud_rainbow", 1000); addEntity(EntityExplosiveBeam.class, "entity_beam_bomb", 1000); addEntity(EntityAAShell.class, "entity_aa_shell", 1000); - addEntity(EntityRocketHoming.class, "entity_stinger", 1000); addEntity(EntityMissileTest.class, "entity_missile_test_mk2", 1000); addEntity(EntityMissileMicro.class, "entity_missile_micronuclear", 1000); addEntity(EntityCloudSolinium.class, "entity_cloud_rainbow", 1000); diff --git a/src/main/java/com/hbm/entity/logic/EntityBomber.java b/src/main/java/com/hbm/entity/logic/EntityBomber.java index 1fcb7bbb7..911a09e28 100644 --- a/src/main/java/com/hbm/entity/logic/EntityBomber.java +++ b/src/main/java/com/hbm/entity/logic/EntityBomber.java @@ -3,7 +3,6 @@ package com.hbm.entity.logic; import com.hbm.config.GeneralConfig; import com.hbm.entity.projectile.EntityBombletZeta; import com.hbm.entity.projectile.EntityBoxcar; -import com.hbm.entity.projectile.EntityRocketHoming; import com.hbm.explosion.ExplosionChaos; import com.hbm.interfaces.NotableComments; import com.hbm.main.MainRegistry; @@ -65,17 +64,6 @@ public class EntityBomber extends EntityPlaneBase { ExplosionChaos.spawnChlorine(worldObj, this.posX, this.posY - 1F, this.posZ, 10, 0.5, 3); } else if(type == 5) { - worldObj.playSoundEffect((double) (posX + 0.5F), (double) (posY + 0.5F), (double) (posZ + 0.5F), "hbm:weapon.missileTakeOff", 10.0F, 0.9F + rand.nextFloat() * 0.2F); - EntityRocketHoming rocket = new EntityRocketHoming(worldObj); - rocket.setIsCritical(true); - rocket.motionY = -1; - rocket.shootingEntity = this; - rocket.homingRadius = 50; - rocket.homingMod = 5; - rocket.posX = posX + rand.nextDouble() - 0.5; - rocket.posY = posY - rand.nextDouble(); - rocket.posZ = posZ + rand.nextDouble() - 0.5; - worldObj.spawnEntityInWorld(rocket); } else if(type == 6) { worldObj.playSoundEffect((double) (posX + 0.5F), (double) (posY + 0.5F), (double) (posZ + 0.5F), "hbm:weapon.missileTakeOff", 10.0F, 0.9F + rand.nextFloat() * 0.2F); diff --git a/src/main/java/com/hbm/entity/projectile/EntityRocket.java b/src/main/java/com/hbm/entity/projectile/EntityRocket.java index d46c15a82..a573b13dc 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRocket.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRocket.java @@ -24,6 +24,7 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; +// still in use for cluster munitions - somehow! let this fucking class die already public class EntityRocket extends Entity implements IProjectile { private int field_145791_d = -1; diff --git a/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java b/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java deleted file mode 100644 index c035c0833..000000000 --- a/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java +++ /dev/null @@ -1,750 +0,0 @@ -package com.hbm.entity.projectile; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.explosion.ExplosionNukeSmall; -import com.hbm.handler.radiation.ChunkRadiationManager; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.monster.EntitySkeleton; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.play.server.S2BPacketChangeGameState; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityRocketHoming extends Entity implements IProjectile -{ - private int field_145791_d = -1; - private int field_145792_e = -1; - private int field_145789_f = -1; - public double gravity = 0.0D; - private Block field_145790_g; - private int inData; - private boolean inGround; - public int canBePickedUp; - public int arrowShake; - public Entity shootingEntity; - private int ticksInGround; - private int ticksInAir; - private double damage = 2.0D; - private int knockbackStrength; - private float explosionStrength; - - // specifies the type of stinger rocket that was fired - /* 0 = Normal - * 1 = HE - * 2 = Incendiary - * 4 = Nuclear - * 42 = bone-seeking - */ - public int type; - - - public EntityRocketHoming(World p_i1753_1_) - { - super(p_i1753_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - } - - public EntityRocketHoming(World p_i1754_1_, double p_i1754_2_, double p_i1754_4_, double p_i1754_6_) - { - super(p_i1754_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - this.setPosition(p_i1754_2_, p_i1754_4_, p_i1754_6_); - this.yOffset = 0.0F; - } - - public EntityRocketHoming(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_, int rocketType) - { - super(p_i1755_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1755_2_; - this.type = rocketType; - - if (p_i1755_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.posY = p_i1755_2_.posY + p_i1755_2_.getEyeHeight() - 0.10000000149011612D; - double d0 = p_i1755_3_.posX - p_i1755_2_.posX; - double d1 = p_i1755_3_.boundingBox.minY + p_i1755_3_.height / 3.0F - this.posY; - double d2 = p_i1755_3_.posZ - p_i1755_2_.posZ; - double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2); - - if (d3 >= 1.0E-7D) - { - float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; - float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI)); - double d4 = d0 / d3; - double d5 = d2 / d3; - this.setLocationAndAngles(p_i1755_2_.posX + d4, this.posY, p_i1755_2_.posZ + d5, f2, f3); - this.yOffset = 0.0F; - float f4 = (float)d3 * 0.2F; - this.setThrowableHeading(d0, d1 + f4, d2, p_i1755_4_, p_i1755_5_); - } - } - - public EntityRocketHoming(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_, float strength, int type) - { - super(p_i1756_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1756_2_; - this.type = type; - - if (p_i1756_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(p_i1756_2_.posX, p_i1756_2_.posY + p_i1756_2_.getEyeHeight(), p_i1756_2_.posZ, p_i1756_2_.rotationYaw, p_i1756_2_.rotationPitch); - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.posY -= 0.10000000149011612D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.setPosition(this.posX, this.posY, this.posZ); - this.yOffset = 0.0F; - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI)); - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); - this.explosionStrength = strength; - } - - public EntityRocketHoming(World world, int x, int y, int z, double mx, double my, double mz, double grav) { - super(world); - this.posX = x + 0.5F; - this.posY = y + 0.5F; - this.posZ = z + 0.5F; - - this.motionX = mx; - this.motionY = my; - this.motionZ = mz; - - this.gravity = grav; - } - - @Override - protected void entityInit() - { - this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); - } - - /** - * Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction. - */ - @Override - public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_, float p_70186_8_) - { - float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_); - p_70186_1_ /= f2; - p_70186_3_ /= f2; - p_70186_5_ /= f2; - p_70186_1_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_3_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_5_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_1_ *= p_70186_7_; - p_70186_3_ *= p_70186_7_; - p_70186_5_ *= p_70186_7_; - this.motionX = p_70186_1_; - this.motionY = p_70186_3_; - this.motionZ = p_70186_5_; - float f3 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_5_ * p_70186_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70186_1_, p_70186_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70186_3_, f3) * 180.0D / Math.PI); - this.ticksInGround = 0; - } - - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - @Override - @SideOnly(Side.CLIENT) - public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_) - { - this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_); - this.setRotation(p_70056_7_, p_70056_8_); - } - - /** - * Sets the velocity to the args. Args: x, y, z - */ - @Override - @SideOnly(Side.CLIENT) - public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) - { - this.motionX = p_70016_1_; - this.motionY = p_70016_3_; - this.motionZ = p_70016_5_; - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70016_3_, f) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch; - this.prevRotationYaw = this.rotationYaw; - this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); - this.ticksInGround = 0; - } - } - - /** - * Called to update the entity's position/logic. - */ - //@Override - @Override - public void onUpdate() - { - super.onUpdate(); - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - //this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); - } - - Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (block.getMaterial() != Material.air) - { - block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ))) - { - this.inGround = true; - } - } - - if (this.arrowShake > 0) - { - --this.arrowShake; - } - - if (this.inGround) - { - /*int j = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); - if (block == this.field_145790_g && j == this.inData) - { - ++this.ticksInGround; - if (this.ticksInGround == 1200) - { - this.setDead(); - } - } - else - { - this.inGround = false; - this.motionX *= (double)(this.rand.nextFloat() * 0.2F); - this.motionY *= (double)(this.rand.nextFloat() * 0.2F); - this.motionZ *= (double)(this.rand.nextFloat() * 0.2F); - this.ticksInGround = 0; - this.ticksInAir = 0; - }*/ - - - if (!this.worldObj.isRemote) - { - //this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.5F, true); - Explode(this.type, this.explosionStrength); - /*EntityNukeExplosionAdvanced explosion = new EntityNukeExplosionAdvanced(this.worldObj); - explosion.speed = 25; - explosion.coefficient = 5.0F; - explosion.destructionRange = 20; - explosion.posX = this.posX; - explosion.posY = this.posY; - explosion.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(explosion);*/ - } - this.setDead(); - } - else - { - ++this.ticksInAir; - Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false); - vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - - if (movingobjectposition != null) - { - vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord); - } - - Entity entity = null; - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); - double d0 = 0.0D; - int i; - float f1; - - for (i = 0; i < list.size(); ++i) - { - Entity entity1 = (Entity)list.get(i); - - if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) - { - f1 = 0.3F; - AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(f1, f1, f1); - MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); - - if (movingobjectposition1 != null) - { - double d1 = vec31.distanceTo(movingobjectposition1.hitVec); - - if (d1 < d0 || d0 == 0.0D) - { - entity = entity1; - d0 = d1; - } - } - } - } - - - if (entity != null) - { - movingobjectposition = new MovingObjectPosition(entity); - } - - if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) - { - EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit; - - if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer)) - { - movingobjectposition = null; - } - } - - float f2; - float f4; - - if (movingobjectposition != null) - { - if (movingobjectposition.entityHit != null) - { - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - int k = MathHelper.ceiling_double_int(f2 * this.damage); - - if (this.getIsCritical()) - { - k += this.rand.nextInt(k / 2 + 2); - } - - DamageSource damagesource = null; - - if (this.shootingEntity == null) - { - damagesource = DamageSource.causeIndirectMagicDamage(this, this); - } - else - { - damagesource = DamageSource.causeIndirectMagicDamage(this, this); - } - - if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman)) - { - movingobjectposition.entityHit.setFire(5); - } - - if (movingobjectposition.entityHit.attackEntityFrom(damagesource, k)) - { - if (movingobjectposition.entityHit instanceof EntityLivingBase) - { - EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit; - - if (this.knockbackStrength > 0) - { - f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - - if (f4 > 0.0F) - { - movingobjectposition.entityHit.addVelocity(this.motionX * this.knockbackStrength * 0.6000000238418579D / f4, 0.1D, this.motionZ * this.knockbackStrength * 0.6000000238418579D / f4); - } - } - - if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase) - { - EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity); - EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase); - } - - if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP) - { - ((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); - } - } - - if (!(movingobjectposition.entityHit instanceof EntityEnderman)) - { - if (!this.worldObj.isRemote) - { - //this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.5F, true); - Explode(this.type, this.explosionStrength); - } - this.setDead(); - } - } - else - { - if (!this.worldObj.isRemote) - { - //this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.5F, true); - Explode(this.type, this.explosionStrength); - } - this.setDead(); - } - } - else - { - this.field_145791_d = movingobjectposition.blockX; - this.field_145792_e = movingobjectposition.blockY; - this.field_145789_f = movingobjectposition.blockZ; - this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.motionX = ((float)(movingobjectposition.hitVec.xCoord - this.posX)); - this.motionY = ((float)(movingobjectposition.hitVec.yCoord - this.posY)); - this.motionZ = ((float)(movingobjectposition.hitVec.zCoord - this.posZ)); - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - this.posX -= this.motionX / f2 * 0.05000000074505806D; - this.posY -= this.motionY / f2 * 0.05000000074505806D; - this.posZ -= this.motionZ / f2 * 0.05000000074505806D; - this.inGround = true; - this.arrowShake = 7; - this.setIsCritical(false); - - if (this.field_145790_g.getMaterial() != Material.air) - { - this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this); - } - } - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - //for (this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f2) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } - - /*while (this.rotationPitch - this.prevRotationPitch >= 180.0F) - { - this.prevRotationPitch += 360.0F; - } - while (this.rotationYaw - this.prevRotationYaw < -180.0F) - { - this.prevRotationYaw -= 360.0F; - } - while (this.rotationYaw - this.prevRotationYaw >= 180.0F) - { - this.prevRotationYaw += 360.0F; - }*/ - - f1 = 0.05F; - - if (this.isInWater()) - { - for (int l = 0; l < 4; ++l) - { - f4 = 0.25F; - this.worldObj.spawnParticle("bubble", this.posX - this.motionX * f4, this.posY - this.motionY * f4, this.posZ - this.motionZ * f4, this.motionX, this.motionY, this.motionZ); - } - } - - if (this.isWet()) - { - this.extinguish(); - } - - /*this.motionX *= f3; - this.motionY *= f3; - this.motionZ *= f3;*/ - //this.motionY -= gravity; - this.setPosition(this.posX, this.posY, this.posZ); - this.func_145775_I(); - } - - if(!steer()) - lockonTicks = 0; - - if (this.ticksExisted > 250) - this.setDead(); - } - - public int homingRadius = 35; - public int homingMod = 15; - public float acceptance = 120; - int lockonTicks = 0; - boolean hasBeeped = false; - - private boolean steer() { - List all = null; - if(this.type == 42) { - all = worldObj.getEntitiesWithinAABB(EntitySkeleton.class, AxisAlignedBB.getBoundingBox(posX - homingRadius, posY - homingRadius, posZ - homingRadius, posX + homingRadius, posY + homingRadius, posZ + homingRadius)); - } else { - all = worldObj.getEntitiesWithinAABBExcludingEntity(this, AxisAlignedBB.getBoundingBox(posX - homingRadius, posY - homingRadius, posZ - homingRadius, posX + homingRadius, posY + homingRadius, posZ + homingRadius)); - } - - HashMap targetable = new HashMap(); - Vec3 path = Vec3.createVectorHelper(motionX, motionY, motionZ); - double startSpeed = path.lengthVector(); - path.normalize(); - - if(all.isEmpty()) - return false; - - //Iterate through all entities and only allocate ones that can be targeted - for(Entity e : all) { - - if(e == this.shootingEntity) - continue; - - Vec3 rel = Vec3.createVectorHelper(e.posX - posX, e.posY + e.getEyeHeight() - posY, e.posZ - posZ); - double vecProd = rel.xCoord * path.xCoord + rel.yCoord * path.yCoord + rel.zCoord * path.zCoord; - double bot = rel.lengthVector() * path.lengthVector(); - double angle = Math.acos(vecProd / bot) * 180 / Math.PI; - - if(angle <= acceptance); - if(e.height * e.width * e.width >= 0.5D) - if(!Library.isObstructed(worldObj, e.posX, e.posY, e.posZ, posX, posY, posZ)) - targetable.put(e, angle); - } - - if(targetable.isEmpty()) - return false; - - double smallest = Double.POSITIVE_INFINITY; - Entity nearestE = null; - - //Iterate through all entities and choose the one that has the smallest angle - for(Map.Entry entry : targetable.entrySet()) { - if(entry.getValue() < smallest) { - smallest = entry.getValue(); - nearestE = entry.getKey(); - } - } - - if(nearestE == null) - return false; - - Vec3 winVec = Vec3.createVectorHelper(nearestE.posX - posX, nearestE.posY - posY, nearestE.posZ - posZ); - - winVec.normalize(); - - double newX = ((path.xCoord * (smallest * homingMod - 1)) + winVec.xCoord) / (smallest * homingMod); - double newY = ((path.yCoord * (smallest * homingMod - 1)) + winVec.yCoord) / (smallest * homingMod); - double newZ = ((path.zCoord * (smallest * homingMod - 1)) + winVec.zCoord) / (smallest * homingMod); - - Vec3 newPath = Vec3.createVectorHelper(newX, newY, newZ); - newPath.normalize(); - newPath.xCoord *= startSpeed; - newPath.yCoord *= startSpeed; - newPath.zCoord *= startSpeed; - - motionX = newPath.xCoord; - motionY = newPath.yCoord; - motionZ = newPath.zCoord; - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, (float)startSpeed, 0.0F); - - lockonTicks++; - if(lockonTicks == 5 && !hasBeeped) { - if(this.getIsCritical()) - worldObj.playSoundAtEntity(this, "hbm:weapon.stingerLockOn", 10F, 0.75F); - else - worldObj.playSoundAtEntity(this, "hbm:weapon.stingerLockOn", 10F, 1F); - hasBeeped = true; - } - - return true; - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound p_70014_1_) - { - p_70014_1_.setShort("xTile", (short)this.field_145791_d); - p_70014_1_.setShort("yTile", (short)this.field_145792_e); - p_70014_1_.setShort("zTile", (short)this.field_145789_f); - p_70014_1_.setShort("life", (short)this.ticksInGround); - p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145790_g)); - p_70014_1_.setByte("inData", (byte)this.inData); - p_70014_1_.setByte("shake", (byte)this.arrowShake); - p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0)); - p_70014_1_.setByte("pickup", (byte)this.canBePickedUp); - p_70014_1_.setDouble("damage", this.damage); - p_70014_1_.setFloat("strength", (byte)this.explosionStrength); - p_70014_1_.setByte("type", (byte)this.type); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound p_70037_1_) - { - this.field_145791_d = p_70037_1_.getShort("xTile"); - this.field_145792_e = p_70037_1_.getShort("yTile"); - this.field_145789_f = p_70037_1_.getShort("zTile"); - this.ticksInGround = p_70037_1_.getShort("life"); - this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255); - this.inData = p_70037_1_.getByte("inData") & 255; - this.arrowShake = p_70037_1_.getByte("shake") & 255; - this.inGround = p_70037_1_.getByte("inGround") == 1; - this.explosionStrength = p_70037_1_.getFloat("strength"); - this.type = p_70037_1_.getByte("type"); - - if (p_70037_1_.hasKey("damage", 99)) - { - this.damage = p_70037_1_.getDouble("damage"); - } - - if (p_70037_1_.hasKey("pickup", 99)) - { - this.canBePickedUp = p_70037_1_.getByte("pickup"); - } - else if (p_70037_1_.hasKey("player", 99)) - { - this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0; - } - } - - /** - * Called by a player entity when they collide with an entity - */ - @Override - public void onCollideWithPlayer(EntityPlayer p_70100_1_) - { - if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0) - { - boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - - if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_stinger_rocket, 1))) - { - flag = false; - } - - if (flag) - { - p_70100_1_.onItemPickup(this, 1); - this.setDead(); - } - } - } - - /** - * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to - * prevent them from trampling crops - */ - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() - { - return 0.0F; - } - - public void setDamage(double p_70239_1_) - { - this.damage = p_70239_1_; - } - - public double getDamage() - { - return this.damage; - } - - /** - * Sets the amount of knockback the arrow applies when it hits a mob. - */ - public void setKnockbackStrength(int p_70240_1_) - { - this.knockbackStrength = p_70240_1_; - } - - /** - * If returns false, the item will not inflict any damage against entities. - */ - @Override - public boolean canAttackWithItem() - { - return false; - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public void setIsCritical(boolean p_70243_1_) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (p_70243_1_) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 | 1))); - } - else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 & -2))); - } - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public boolean getIsCritical() - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - return (b0 & 1) != 0; - } - - public void Explode(int type, float strength) { - switch(type) { - case 42: ChunkRadiationManager.proxy.incrementRad(worldObj, (int)posX, (int)posY, (int)posZ, 2000); - case 0: ExplosionLarge.explode(worldObj, posX, posY, posZ, strength, true, false, true); break; - case 1: ExplosionLarge.explode(worldObj, posX, posY, posZ, strength * 2, true, false, true); break; - case 2: ExplosionLarge.explodeFire(worldObj, posX, posY, posZ, strength, true, false, false); break; - case 4: - //ExplosionLarge.explode(worldObj, posX, posY, posZ, strength * 3, false, false, true); - ExplosionNukeSmall.explode(worldObj, posX, posY, posZ, ExplosionNukeSmall.PARAMS_MEDIUM); - break; - default: break; - } - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/explosion/ExplosionChaos.java b/src/main/java/com/hbm/explosion/ExplosionChaos.java index ded0a8193..e17620e64 100644 --- a/src/main/java/com/hbm/explosion/ExplosionChaos.java +++ b/src/main/java/com/hbm/explosion/ExplosionChaos.java @@ -751,10 +751,7 @@ public class ExplosionChaos { int Z = zz + z; int ZZ = YY + zz * zz; if (ZZ < r22 + world.rand.nextInt(r22 / 2)) { - if (world.getBlock(X, Y, Z) != Blocks.bedrock && world.getBlock(X, Y, Z) != ModBlocks.statue_elb - && world.getBlock(X, Y, Z) != ModBlocks.statue_elb_g - && world.getBlock(X, Y, Z) != ModBlocks.statue_elb_w - && world.getBlock(X, Y, Z) != ModBlocks.statue_elb_f) + if(world.getBlock(X, Y, Z) != ModBlocks.statue_elb_f) world.setBlock(X, Y, Z, ModBlocks.plasma); } } diff --git a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java index 29aaf510e..d5e3a24d8 100644 --- a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java +++ b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java @@ -228,12 +228,6 @@ public class BulletConfigSyncingUtil { public static int ROCKET_TOXIC_LASER = i++; public static int ROCKET_PHOSPHORUS_LASER = i++; - public static int ROCKET_STINGER = i++; - public static int ROCKET_STINGER_HE = i++; - public static int ROCKET_STINGER_INCENDIARY = i++; - public static int ROCKET_STINGER_NUCLEAR = i++; - public static int ROCKET_STINGER_BONES = i++; - public static int SHELL_NORMAL = i++; public static int SHELL_EXPLOSIVE = i++; public static int SHELL_AP = i++; @@ -348,12 +342,6 @@ public class BulletConfigSyncingUtil { configSet.put(ROCKET_TOXIC, GunRocketFactory.getRocketChlorineConfig()); configSet.put(ROCKET_CANISTER, GunRocketFactory.getRocketCanisterConfig()); configSet.put(ROCKET_ERROR, GunRocketFactory.getRocketErrorConfig()); - - configSet.put(ROCKET_STINGER, GunRocketHomingFactory.getRocketStingerConfig()); - configSet.put(ROCKET_STINGER_HE, GunRocketHomingFactory.getRocketStingerHEConfig()); - configSet.put(ROCKET_STINGER_INCENDIARY, GunRocketHomingFactory.getRocketStingerIncendiaryConfig()); - configSet.put(ROCKET_STINGER_NUCLEAR, GunRocketHomingFactory.getRocketStingerNuclearConfig()); - configSet.put(ROCKET_STINGER_BONES, GunRocketHomingFactory.getRocketStingerBonesConfig()); configSet.put(GRENADE_NORMAL, GunGrenadeFactory.getGrenadeConfig()); configSet.put(GRENADE_HE, GunGrenadeFactory.getGrenadeHEConfig()); diff --git a/src/main/java/com/hbm/handler/guncfg/GunRocketHomingFactory.java b/src/main/java/com/hbm/handler/guncfg/GunRocketHomingFactory.java deleted file mode 100644 index 27603435a..000000000 --- a/src/main/java/com/hbm/handler/guncfg/GunRocketHomingFactory.java +++ /dev/null @@ -1,257 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; - -import com.hbm.entity.projectile.EntityRocketHoming; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.GunConfiguration; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ItemAmmoEnums.AmmoStinger; -import com.hbm.items.ModItems; -import com.hbm.items.weapon.sedna.Crosshair; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import net.minecraft.entity.player.EntityPlayer; - -public class GunRocketHomingFactory { - - public static GunConfiguration getStingerConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 20; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 20; - config.firingDuration = 0; - config.ammoCap = 1; - config.reloadType = GunConfiguration.RELOAD_SINGLE; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_KRUCK; - config.firingSound = "hbm:weapon.rpgShoot"; - config.reloadSound = GunConfiguration.RSOUND_LAUNCHER; - config.reloadSoundEnd = false; - - config.name = "stinger"; - config.manufacturer = EnumGunManufacturer.RAYTHEON; - config.comment.add("Woosh, beep-beep-beep!"); - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_HE); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_NUCLEAR); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_BONES); - config.durability = 250; - - return config; - } - - public static GunConfiguration getSkyStingerConfig() { -GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 20; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 20; - config.firingDuration = 0; - config.ammoCap = 1; - config.reloadType = GunConfiguration.RELOAD_SINGLE; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_KRUCK; - config.firingSound = "hbm:weapon.rpgShoot"; - config.reloadSound = GunConfiguration.RSOUND_LAUNCHER; - config.reloadSoundEnd = false; - - config.name = "stingerOneSky"; - config.manufacturer = EnumGunManufacturer.EQUESTRIA; - config.comment.add("Oh, I get it, because of the...nyeees!"); - config.comment.add("It all makes sense now!"); - config.comment.add(""); - config.comment.add("Rockets travel faster, are Three times stronger"); - config.comment.add("and fires a second rocket for free"); - config.comment.add(""); - config.comment.add("[LEGENDARY WEAPON]"); - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_HE); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_NUCLEAR); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_BONES); - config.durability = 1000; - - return config; - } - - public static BulletConfiguration getRocketStingerConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.STOCK)); - bullet.dmgMin = 20; - bullet.dmgMax = 25; - bullet.explosive = 4F; - bullet.trail = 0; - - bullet.bntUpdate = (bulletnt) -> { - - if(!bulletnt.worldObj.isRemote) { - - EntityPlayer player = bulletnt.worldObj.getClosestPlayerToEntity(bulletnt, -1.0D); - EntityRocketHoming rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.0F, 5.0F, 0); - if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { - EntityRocketHoming rocket2 = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 0); - rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 0); - rocket.setIsCritical(true); - rocket2.setIsCritical(true); - bulletnt.worldObj.spawnEntityInWorld(rocket2); - } - rocket.homingMod = 5; - rocket.homingRadius = 25; - bulletnt.worldObj.spawnEntityInWorld(rocket); - bulletnt.setDead(); - - } - }; - return bullet; - } - - public static BulletConfiguration getRocketStingerHEConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.HE)); - bullet.dmgMin = 30; - bullet.dmgMax = 35; - bullet.explosive = 8F; - bullet.trail = 0; - bullet.wear = 15; - - bullet.bntUpdate = (bulletnt) -> { - - if(!bulletnt.worldObj.isRemote) { - - EntityPlayer player = bulletnt.worldObj.getClosestPlayerToEntity(bulletnt, -1.0D); - EntityRocketHoming rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.0F, 5.0F, 1); - if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { - EntityRocketHoming rocket2 = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 1); - rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 1); - rocket.setIsCritical(true); - rocket2.setIsCritical(true); - bulletnt.worldObj.spawnEntityInWorld(rocket2); - } - rocket.homingMod = 5; - rocket.homingRadius = 25; - bulletnt.worldObj.spawnEntityInWorld(rocket); - bulletnt.setDead(); - - } - }; - return bullet; - } - - public static BulletConfiguration getRocketStingerIncendiaryConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.INCENDIARY)); - bullet.dmgMin = 15; - bullet.dmgMax = 20; - bullet.explosive = 4F; - bullet.trail = 0; - bullet.wear = 12; - - bullet.bntUpdate = (bulletnt) -> { - - if(!bulletnt.worldObj.isRemote) { - - EntityPlayer player = bulletnt.worldObj.getClosestPlayerToEntity(bulletnt, -1.0D); - EntityRocketHoming rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.0F, 5.0F, 2); - if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { - EntityRocketHoming rocket2 = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 2); - rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 2); - rocket.setIsCritical(true); - rocket2.setIsCritical(true); - bulletnt.worldObj.spawnEntityInWorld(rocket2); - } - rocket.homingMod = 5; - rocket.homingRadius = 25; - bulletnt.worldObj.spawnEntityInWorld(rocket); - bulletnt.setDead(); - - } - }; - return bullet; - } - - public static BulletConfiguration getRocketStingerNuclearConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.NUCLEAR)); - bullet.dmgMin = 50; - bullet.dmgMax = 55; - bullet.explosive = 15F; - bullet.trail = 0; - bullet.wear = 30; - - bullet.bntUpdate = (bulletnt) -> { - - if(!bulletnt.worldObj.isRemote) { - - EntityPlayer player = bulletnt.worldObj.getClosestPlayerToEntity(bulletnt, -1.0D); - - if(player.getDistanceToEntity(bulletnt) < 16) { - EntityRocketHoming rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.0F, 5.0F, 4); - if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { - EntityRocketHoming rocket2 = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 4); - rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 4); - rocket.setIsCritical(true); - rocket2.setIsCritical(true); - bulletnt.worldObj.spawnEntityInWorld(rocket2); - } - rocket.homingMod = 5; - rocket.homingRadius = 25; - bulletnt.worldObj.spawnEntityInWorld(rocket); - } - bulletnt.setDead(); - - } - }; - return bullet; - } - - public static BulletConfiguration getRocketStingerBonesConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.BONES)); - bullet.dmgMin = 20; - bullet.dmgMax = 25; - bullet.explosive = 8F; - bullet.trail = 0; - - bullet.bntUpdate = (bulletnt) -> { - - if(!bulletnt.worldObj.isRemote) { - - EntityPlayer player = bulletnt.worldObj.getClosestPlayerToEntity(bulletnt, -1.0D); - - if(player.getDistanceToEntity(bulletnt) < 16) { - EntityRocketHoming rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.0F, 5.0F, 42); - if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { - EntityRocketHoming rocket2 = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 42); - rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 42); - rocket.setIsCritical(true); - rocket2.setIsCritical(true); - bulletnt.worldObj.spawnEntityInWorld(rocket2); - } - rocket.homingMod = 5; - rocket.homingRadius = 25; - bulletnt.worldObj.spawnEntityInWorld(rocket); - } - bulletnt.setDead(); - - } - }; - return bullet; - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 805be6ed7..13f1b5727 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -35,6 +35,7 @@ import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemDrillbit.EnumDrillType; import com.hbm.items.machine.ItemPistons.EnumPistonType; import com.hbm.items.weapon.ItemAmmoHIMARS; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.main.MainRegistry; import cpw.mods.fml.common.Loader; @@ -169,9 +170,6 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.therm_endo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.powder_ice, 32), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.coil_gold, 4), },250); makeRecipe(new ComparableStack(ModBlocks.therm_exo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new OreDictStack(P_RED.dust(), 32), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.coil_gold, 4), },250); makeRecipe(new ComparableStack(ModItems.spawn_chopper, 1), new AStack[] {new ComparableStack(ModItems.chopper_blades, 5), new ComparableStack(ModItems.chopper_gun, 1), new ComparableStack(ModItems.chopper_head, 1), new ComparableStack(ModItems.chopper_tail, 1), new ComparableStack(ModItems.chopper_torso, 1), new ComparableStack(ModItems.chopper_wing, 2), },300); - makeRecipe(new ComparableStack(ModItems.gun_defabricator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(IRON.plate(), 5), new ComparableStack(ModItems.mechanism_special, 3), new ComparableStack(Items.diamond, 1), new ComparableStack(ModItems.plate_dalekanium, 3), },200); - makeRecipe(new ComparableStack(ModItems.gun_osipr_ammo, 24), new AStack[] {new OreDictStack(STEEL.plate(), 2), new OreDictStack(REDSTONE.dust(), 1), new ComparableStack(Items.glowstone_dust, 1), },50); - makeRecipe(new ComparableStack(ModItems.gun_osipr_ammo2, 1), new AStack[] {new OreDictStack(CMB.plate(), 4), new OreDictStack(REDSTONE.dust(), 7), new ComparableStack(ModItems.powder_power, 3), },200); makeRecipe(new ComparableStack(ModItems.grenade_fire, 1), new AStack[] {new ComparableStack(ModItems.grenade_frag, 1), new OreDictStack(P_RED.dust(), 1), new OreDictStack(CU.plate(), 2), },150); makeRecipe(new ComparableStack(ModItems.grenade_shrapnel, 1), new AStack[] {new ComparableStack(ModItems.grenade_frag, 1), new ComparableStack(ModItems.pellet_buckshot, 1), new OreDictStack(STEEL.plate(), 2), },150); makeRecipe(new ComparableStack(ModItems.grenade_cluster, 1), new AStack[] {new ComparableStack(ModItems.grenade_frag, 1), new ComparableStack(ModItems.pellet_cluster, 1), new OreDictStack(STEEL.plate(), 2), },200); @@ -179,7 +177,7 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.grenade_electric, 1), new AStack[] {new ComparableStack(ModItems.grenade_generic, 1), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CAPACITOR.ordinal()), new OreDictStack(GOLD.plate(), 2), },200); makeRecipe(new ComparableStack(ModItems.grenade_pulse, 4), new AStack[] {new OreDictStack(STEEL.plate(), 1), new OreDictStack(IRON.plate(), 3), new OreDictStack(MINGRADE.wireFine(), 6), new ComparableStack(Items.diamond, 1), },300); makeRecipe(new ComparableStack(ModItems.grenade_plasma, 2), new AStack[] {new OreDictStack(STEEL.plate(), 3), new OreDictStack(ALLOY.plate(), 1), new ComparableStack(ModItems.coil_advanced_torus, 1), new ComparableStack(ModItems.cell_deuterium, 1), new ComparableStack(ModItems.cell_tritium, 1), },300); - makeRecipe(new ComparableStack(ModItems.grenade_tau, 2), new AStack[] {new OreDictStack(PB.plate(), 3), new OreDictStack(ALLOY.plate(), 1), new ComparableStack(ModItems.coil_advanced_torus, 1), new ComparableStack(ModItems.gun_xvl1456_ammo, 1), },300); + makeRecipe(new ComparableStack(ModItems.grenade_tau, 2), new AStack[] {new OreDictStack(PB.plate(), 3), new OreDictStack(ALLOY.plate(), 1), new ComparableStack(ModItems.coil_advanced_torus, 1), new ComparableStack(ModItems.ammo_standard, 1, EnumAmmo.TAU_URANIUM), },300); makeRecipe(new ComparableStack(ModItems.grenade_schrabidium, 1), new AStack[] {new ComparableStack(ModItems.grenade_flare, 1), new OreDictStack(SA326.dust(), 1), new OreDictStack(OreDictManager.getReflector(), 2), },300); makeRecipe(new ComparableStack(ModItems.grenade_nuclear, 1), new AStack[] {new OreDictStack(IRON.plate(), 1), new OreDictStack(STEEL.plate(), 1), new OreDictStack(PU239.nugget(), 2), new OreDictStack(MINGRADE.wireFine(), 2), },200); makeRecipe(new ComparableStack(ModItems.grenade_zomg, 1), new AStack[] {new ComparableStack(ModItems.plate_paa, 3), new OreDictStack(OreDictManager.getReflector(), 1), new ComparableStack(ModItems.coil_magnetized_tungsten, 3), new ComparableStack(ModItems.powder_power, 3), },300); @@ -585,17 +583,6 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC) }, 600); - makeRecipe(new ComparableStack(ModItems.gun_zomg, 1), new AStack[] { - new ComparableStack(ModItems.crystal_xen, 2), - new ComparableStack(ModItems.singularity_counter_resonant, 1), - new ComparableStack(ModItems.mechanism_special, 3), - new ComparableStack(ModItems.plate_paa, 12), - new OreDictStack(OreDictManager.getReflector(), 8), - new ComparableStack(ModItems.coil_magnetized_tungsten, 5), - new ComparableStack(ModItems.powder_magic, 4), - new OreDictStack(ASBESTOS.ingot(), 8) - }, 200); - makeRecipe(new ComparableStack(ModItems.ammo_75bolt, 2, ItemAmmoEnums.Ammo75Bolt.STOCK.ordinal()), new AStack[] { new OreDictStack(STEEL.plate(), 4), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 2), diff --git a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java index 22fc4ae6b..f35e2d41c 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java @@ -47,7 +47,7 @@ public class ItemPoolsLegacy { weighted(ModItems.ammo_standard, EnumAmmo.G12_BP.ordinal(), 3, 6, 3), weighted(ModItems.ammo_standard, EnumAmmo.G26_FLARE_SUPPLY.ordinal(), 1, 1, 1), weighted(ModItems.gun_kit_1, 0, 1, 3, 4), - weighted(ModItems.gun_lever_action, 0, 1, 1, 1), + weighted(ModItems.gun_maresleg, 0, 1, 1, 1), weighted(ModItems.casing_9, 0, 4, 10, 3), weighted(ModItems.casing_50, 0, 4, 10, 3), weighted(ModItems.cordite, 0, 4, 6, 5), diff --git a/src/main/java/com/hbm/itempool/ItemPoolsRedRoom.java b/src/main/java/com/hbm/itempool/ItemPoolsRedRoom.java index 7506e218c..7dae73826 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsRedRoom.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsRedRoom.java @@ -37,7 +37,6 @@ public class ItemPoolsRedRoom { weighted(ModItems.flask_infusion, 0, 1, 1, 5), weighted(ModBlocks.boxcar, 0, 1, 1, 5), weighted(ModItems.book_of_, 0, 1, 1, 5), - weighted(ModItems.gun_revolver_pip, 0, 1, 1, 5) }; }}; diff --git a/src/main/java/com/hbm/itempool/ItemPoolsSingle.java b/src/main/java/com/hbm/itempool/ItemPoolsSingle.java index f37e39e4c..8d8e4778b 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsSingle.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsSingle.java @@ -42,9 +42,9 @@ public class ItemPoolsSingle { new ItemPool(POOL_VAULT_RUSTY) {{ this.pool = new WeightedRandomChestContent[] { weighted(Items.gold_ingot, 0, 3, 14, 1), - weighted(ModItems.gun_uac_pistol, 0, 1, 1, 2), + weighted(ModItems.gun_heavy_revolver, 0, 1, 1, 2), weighted(ModItems.pin, 0, 8, 8, 1), - weighted(ModItems.gun_calamity, 0, 1, 1, 1), + weighted(ModItems.gun_am180, 0, 1, 1, 1), weighted(ModItems.bottle_quantum, 0, 1, 3, 1), weighted(ModItems.ingot_advanced_alloy, 0, 4, 12, 1), weighted(ModItems.ammo_standard, EnumAmmo.BMG50_FMJ.ordinal(), 24, 48, 1), @@ -69,7 +69,6 @@ public class ItemPoolsSingle { weighted(ModItems.grenade_smart, 0, 1, 6, 1), weighted(ModItems.powder_yellowcake, 0, 16, 24, 1), weighted(ModItems.gun_uzi, 0, 1, 1, 1), - weighted(ModItems.gun_uzi_silencer, 0, 1, 1, 1), weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 12, 16, 1), weighted(ModItems.circuit, EnumCircuitType.CHIP.ordinal(), 2, 6, 1) }; @@ -89,7 +88,7 @@ public class ItemPoolsSingle { weighted(ModItems.grenade_mirv, 0, 1, 1, 1), weighted(ModItems.powder_yellowcake, 0, 26, 42, 1), weighted(ModItems.ingot_u235, 0, 3, 6, 1), - weighted(ModItems.gun_revolver_pip, 0, 1, 1, 1), + weighted(ModItems.gun_heavy_revolver, 0, 1, 1, 1), weighted(ModItems.circuit, EnumCircuitType.CHIP.ordinal(), 18, 32, 1), weighted(ModItems.circuit, EnumCircuitType.BASIC.ordinal(), 6, 12, 1) }; @@ -99,8 +98,8 @@ public class ItemPoolsSingle { this.pool = new WeightedRandomChestContent[] { weighted(ModItems.ammo_container, 0, 3, 6, 1), weighted(ModItems.ammo_standard, EnumAmmo.NUKE_DEMO.ordinal(), 2, 3, 1), - weighted(ModItems.gun_mirv, 0, 1, 1, 1), - weighted(ModItems.gun_proto, 0, 1, 1, 1), + weighted(ModItems.gun_carbine, 0, 1, 1, 1), + weighted(ModItems.gun_congolake, 0, 1, 1, 1), weighted(ModItems.gun_b92, 0, 1, 1, 1), weighted(ModItems.ingot_combine_steel, 0, 16, 28, 1), weighted(ModItems.man_core, 0, 1, 1, 1), diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 46eb94a54..1b47cb7f2 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1535,8 +1535,6 @@ public class ModItems { public static Item gun_bolt_action_green; public static Item gun_bolt_action_saturnite; public static Item gun_mymy; - public static Item gun_b92; - public static Item gun_b92_ammo; public static Item gun_b93; public static Item gun_xvl1456; public static Item gun_xvl1456_ammo; @@ -1546,9 +1544,6 @@ public class ModItems { public static Item gun_immolator; public static Item gun_immolator_ammo; public static Item gun_cryolator; - public static Item gun_cryocannon; - public static Item gun_cryolator_ammo; - public static Item gun_fireext; public static Item gun_mp; public static Item gun_bolter_digamma; public static Item gun_zomg; @@ -1573,6 +1568,12 @@ public class ModItems { public static Item gun_glass_cannon; public static Item gun_lunatic_marksman; public static Item gun_uac_pistol; + + public static Item gun_b92; + public static Item gun_b92_ammo; + public static Item gun_cryocannon; + public static Item gun_cryolator_ammo; + public static Item gun_fireext; public static Item gun_debug; public static Item ammo_debug; diff --git a/src/main/java/com/hbm/items/food/ItemNugget.java b/src/main/java/com/hbm/items/food/ItemNugget.java deleted file mode 100644 index b6da8bc71..000000000 --- a/src/main/java/com/hbm/items/food/ItemNugget.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.hbm.items.food; - -import java.util.List; - -import com.hbm.items.ModItems; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; - -public class ItemNugget extends ItemFood { - - public ItemNugget(int p_i45340_1_, boolean p_i45340_2_) { - super(p_i45340_1_, p_i45340_2_); - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if (this == ModItems.gun_moist_nugget) { - list.add("A Mosin-Na...no wait, it's"); - list.add("just a moist nugget."); - } - } - -} diff --git a/src/main/java/com/hbm/items/special/ItemGlitch.java b/src/main/java/com/hbm/items/special/ItemGlitch.java index 040fd10d6..077ae4ab0 100644 --- a/src/main/java/com/hbm/items/special/ItemGlitch.java +++ b/src/main/java/com/hbm/items/special/ItemGlitch.java @@ -92,7 +92,7 @@ public class ItemGlitch extends Item implements IBatteryItem { } break; case 13: - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_pip)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_heavy_revolver_lilmac)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.bottle_sparkle)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.geiger_counter)); player.addChatMessage(new ChatComponentText("Have some free stuff. You'll need it for that one cryptic achievement.")); diff --git a/src/main/java/com/hbm/items/special/ItemStarterKit.java b/src/main/java/com/hbm/items/special/ItemStarterKit.java index 67cebf52f..2438f08ec 100644 --- a/src/main/java/com/hbm/items/special/ItemStarterKit.java +++ b/src/main/java/com/hbm/items/special/ItemStarterKit.java @@ -463,9 +463,7 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.euphemium_plate, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.euphemium_legs, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.euphemium_boots, 1)); - player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.statue_elb), 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_cursed, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.watch, 1)); + player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.statue_elb_f), 1)); } if(this == ModItems.hazmat_kit) diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index aab1dbfc6..33f5090d5 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -583,7 +583,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityBobmazon.class, new RenderMinerRocket()); RenderingRegistry.registerEntityRenderingHandler(EntityTom.class, new RenderTom()); RenderingRegistry.registerEntityRenderingHandler(EntityAAShell.class, new RenderMirv()); - RenderingRegistry.registerEntityRenderingHandler(EntityRocketHoming.class, new RenderSRocket()); RenderingRegistry.registerEntityRenderingHandler(EntityChopperMine.class, new RenderChopperMine()); RenderingRegistry.registerEntityRenderingHandler(EntityRubble.class, new RenderRubble()); RenderingRegistry.registerEntityRenderingHandler(EntityShrapnel.class, new RenderShrapnel()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index a7c0c3899..678d607e1 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -168,9 +168,7 @@ public class MainRegistry { public static Achievement achSacrifice; public static Achievement achImpossible; public static Achievement achTOB; - public static Achievement achFreytag; public static Achievement achPotato; - public static Achievement achC44; public static Achievement achC20_5; public static Achievement achFiend; public static Achievement achFiend2; @@ -662,9 +660,7 @@ public class MainRegistry { achImpossible = new Achievement("achievement.impossible", "impossible", 18, 10, ModItems.nothing, null).initIndependentStat().setSpecial().registerStat(); achTOB = new Achievement("achievement.tasteofblood", "tasteofblood", 3, 10, new ItemStack(ModItems.fluid_icon, 1, Fluids.ASCHRAB.getID()), null).initIndependentStat().setSpecial().registerStat(); achGoFish = new Achievement("achievement.goFish", "goFish", 5, 10, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.GOFISH), null).initIndependentStat().setSpecial().registerStat(); - achFreytag = new Achievement("achievement.freytag", "freytag", 0, -4, ModItems.gun_mp40, null).initIndependentStat().setSpecial().registerStat(); achPotato = new Achievement("achievement.potato", "potato", -2, -2, ModItems.battery_potatos, null).initIndependentStat().setSpecial().registerStat(); - achC44 = new Achievement("achievement.c44", "c44", 2, -4, ModItems.gun_revolver_pip, null).initIndependentStat().setSpecial().registerStat(); achC20_5 = new Achievement("achievement.c20_5", "c20_5", 3, 6, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.QUESTIONMARK), null).initIndependentStat().setSpecial().registerStat(); achFiend = new Achievement("achievement.fiend", "fiend", -6, 8, ModItems.shimmer_sledge, null).initIndependentStat().setSpecial().registerStat(); achFiend2 = new Achievement("achievement.fiend2", "fiend2", -4, 9, ModItems.shimmer_axe, null).initIndependentStat().setSpecial().registerStat(); @@ -738,9 +734,7 @@ public class MainRegistry { achImpossible, achTOB, achGoFish, - achFreytag, achPotato, - achC44, achC20_5, achFiend, achFiend2, @@ -1495,6 +1489,9 @@ public class MainRegistry { ignoreMappings.add("hbm:item.clip_euthanasia"); ignoreMappings.add("hbm:item.clip_defabricator"); ignoreMappings.add("hbm:item.ammo_folly_du"); + ignoreMappings.add("hbm:tile.statue_elb"); + ignoreMappings.add("hbm:tile.statue_elb_g"); + ignoreMappings.add("hbm:tile.statue_elb_w"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 3e54951c8..752a4392a 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -50,9 +50,6 @@ public class NEIConfig implements IConfigureNEI { API.hideItem(new ItemStack(ModBlocks.machine_nuke_furnace_on)); API.hideItem(new ItemStack(ModBlocks.machine_rtg_furnace_on)); API.hideItem(new ItemStack(ModBlocks.reinforced_lamp_on)); - API.hideItem(new ItemStack(ModBlocks.statue_elb)); - API.hideItem(new ItemStack(ModBlocks.statue_elb_g)); - API.hideItem(new ItemStack(ModBlocks.statue_elb_w)); API.hideItem(new ItemStack(ModBlocks.statue_elb_f)); API.hideItem(new ItemStack(ModBlocks.cheater_virus)); API.hideItem(new ItemStack(ModBlocks.cheater_virus_seed)); diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderBaleflare.java b/src/main/java/com/hbm/render/entity/projectile/RenderBaleflare.java deleted file mode 100644 index f3c1d9fc9..000000000 --- a/src/main/java/com/hbm/render/entity/projectile/RenderBaleflare.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.hbm.render.entity.projectile; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelBaleflare; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderBaleflare extends Render { - - private ModelBaleflare miniNuke; - - public RenderBaleflare() { - miniNuke = new ModelBaleflare(); - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_ + 180, 0.0F, 0.0F, 1.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/BaleFlare.png")); - miniNuke.renderAll(0.0625F); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return new ResourceLocation(RefStrings.MODID + ":textures/models/BaleFlare.png"); - } -} diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java b/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java index f2cd70fc3..6c57fbd37 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java @@ -11,7 +11,6 @@ import com.hbm.handler.BulletConfiguration; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; -import com.hbm.render.model.ModelBaleflare; import com.hbm.render.model.ModelBullet; import com.hbm.render.util.RenderSparks; import com.hbm.util.Tuple.Pair; @@ -31,11 +30,9 @@ import net.minecraft.util.Vec3; public class RenderBullet extends Render { private ModelBullet bullet; - private ModelBaleflare bf; public RenderBullet() { bullet = new ModelBullet(); - bf = new ModelBaleflare(); } @Override @@ -65,14 +62,10 @@ public class RenderBullet extends Render { case BulletConfiguration.STYLE_PELLET: renderBuckshot(); break; case BulletConfiguration.STYLE_ROCKET: renderRocket(trail); break; case BulletConfiguration.STYLE_GRENADE: renderGrenade(trail); break; - case BulletConfiguration.STYLE_NUKE: renderNuke(0); break; - case BulletConfiguration.STYLE_MIRV: renderNuke(1); break; - case BulletConfiguration.STYLE_BF: renderNuke(2); break; case BulletConfiguration.STYLE_ORB: renderOrb(trail); break; case BulletConfiguration.STYLE_METEOR: renderMeteor(trail); break; case BulletConfiguration.STYLE_APDS: renderAPDS(); break; case BulletConfiguration.STYLE_BLADE: renderBlade(); break; - case BulletConfiguration.STYLE_BARREL: renderNuke(3); break; case BulletConfiguration.STYLE_TAU: renderTau(bullet, trail, f1); break; case BulletConfiguration.STYLE_LEADBURSTER: renderLeadburster(bullet, f1); break; default: renderBullet(trail); break; @@ -185,41 +178,6 @@ public class RenderBullet extends Render { GL11.glShadeModel(GL11.GL_FLAT); } - private void renderNuke(int type) { - - switch(type) { - case 0: - GL11.glScaled(0.5, 0.5, 0.5); - GL11.glRotated(90, 0, 0, 1); - GL11.glRotated(90, 0, 1, 0); - GL11.glShadeModel(GL11.GL_SMOOTH); - bindTexture(ResourceManager.mini_nuke_tex); - ResourceManager.projectiles.renderPart("MiniNuke"); - GL11.glShadeModel(GL11.GL_FLAT); - break; - case 1: - GL11.glScaled(0.5, 0.5, 0.5); - GL11.glRotated(90, 0, 0, 1); - GL11.glRotated(90, 0, 1, 0); - GL11.glShadeModel(GL11.GL_SMOOTH); - bindTexture(ResourceManager.mini_mirv_tex); - ResourceManager.projectiles.renderPart("MiniMIRV"); - GL11.glShadeModel(GL11.GL_FLAT); - break; - case 2: - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/BaleFlare.png")); - bf.renderAll(0.0625F); break; - case 3: - GL11.glRotated(90, 0, 0, 1); - GL11.glRotated(90, 0, 1, 0); - GL11.glTranslated(0, -0.5, 0); - bindTexture(ResourceManager.waste_drum_tex); - ResourceManager.waste_drum.renderAll(); - break; - } - - } - private void renderOrb(int type) { GL11.glEnable(GL11.GL_CULL_FACE); diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderMiniMIRV.java b/src/main/java/com/hbm/render/entity/projectile/RenderMiniMIRV.java deleted file mode 100644 index 6a225cc32..000000000 --- a/src/main/java/com/hbm/render/entity/projectile/RenderMiniMIRV.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.hbm.render.entity.projectile; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelMIRV; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderMiniMIRV extends Render { - - private ModelMIRV miniNuke; - - public RenderMiniMIRV() { - miniNuke = new ModelMIRV(); - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_ + 180, 0.0F, 0.0F, 1.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/Mirv.png")); - miniNuke.renderAll(0.0625F); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return new ResourceLocation(RefStrings.MODID + ":textures/models/Mirv.png"); - } -} diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderMiniNuke.java b/src/main/java/com/hbm/render/entity/projectile/RenderMiniNuke.java deleted file mode 100644 index 6295fb83b..000000000 --- a/src/main/java/com/hbm/render/entity/projectile/RenderMiniNuke.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.hbm.render.entity.projectile; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelMiniNuke; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderMiniNuke extends Render { - - private ModelMiniNuke miniNuke; - - public RenderMiniNuke() { - miniNuke = new ModelMiniNuke(); - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_ + 180, 0.0F, 0.0F, 1.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/MiniNuke.png")); - miniNuke.renderAll(0.0625F); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return new ResourceLocation(RefStrings.MODID + ":textures/models/MiniNuke.png"); - } -} diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderMirv.java b/src/main/java/com/hbm/render/entity/projectile/RenderMirv.java index 810ad9960..7c7e57866 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderMirv.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderMirv.java @@ -25,17 +25,17 @@ public class RenderMirv extends Render { public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - - bindTexture(boyTexture); - boyModel.renderAll(); + GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); + GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + + bindTexture(boyTexture); + boyModel.renderAll(); GL11.glPopMatrix(); } @Override protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return new ResourceLocation(RefStrings.MODID +":textures/models/TheGadget3_.png"); + return new ResourceLocation(RefStrings.MODID + ":textures/models/TheGadget3_.png"); } } diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderSRocket.java b/src/main/java/com/hbm/render/entity/projectile/RenderSRocket.java deleted file mode 100644 index 7ac3f210e..000000000 --- a/src/main/java/com/hbm/render/entity/projectile/RenderSRocket.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.hbm.render.entity.projectile; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.projectile.EntityRocketHoming; -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelSRocket; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderSRocket extends Render { - - private ModelSRocket missile; - - public RenderSRocket() { - missile = new ModelSRocket(); - } - - public void doRender(EntityRocketHoming rocket, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - 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_ + 180, - 0.0F, 0.0F, 1.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - - if(rocket.getIsCritical()) - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/ModelSVTRocket.png")); - else - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/ModelSRocket.png")); - missile.renderAll(0.0625F); - GL11.glPopMatrix(); - } - - @Override - public void doRender(Entity rocket, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { - doRender((EntityRocketHoming)rocket, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return new ResourceLocation(RefStrings.MODID + ":textures/models/ModelSRocket.png"); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderBFLauncher.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderBFLauncher.java deleted file mode 100644 index 5893a0c46..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderBFLauncher.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelBFLauncher; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderBFLauncher implements IItemRenderer { - - protected ModelBFLauncher swordModel; - - public ItemRenderBFLauncher() { - swordModel = new ModelBFLauncher(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/BFLauncher.png")); - GL11.glRotatef(-150.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.8F, -0.1F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/BFLauncher.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderBaleflare.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderBaleflare.java deleted file mode 100644 index 96671ff58..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderBaleflare.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelBaleflare; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderBaleflare implements IItemRenderer { - - protected ModelBaleflare swordModel; - - public ItemRenderBaleflare() { - swordModel = new ModelBaleflare(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/BaleFlare.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/BaleFlare.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java deleted file mode 100644 index c7c3a19d0..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderBenelli implements IItemRenderer -{ - public ItemRenderBenelli() {} - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch (type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: - return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - GL11.glPushMatrix(); - - GL11.glShadeModel(GL11.GL_SMOOTH); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.benelli_tex); - final float scale1 = 0.2F; - final double scale2 = 0.065D; - final double scale3 = 0.52D; - - switch (type) { - case EQUIPPED_FIRST_PERSON:// In hand from POV - GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); - if (player.isSneaking()) { - GL11.glRotatef(25.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-5F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-1.007F, 0F, -2.5F); - } - else { - GL11.glRotatef(-10F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(20.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.5F, -2.5F); - } - - GL11.glScalef(scale1, scale1, scale1); - - HbmAnimations.applyRelevantTransformation("Body"); - ResourceManager.benelli.renderPart("Body"); - - GL11.glPushMatrix(); - - HbmAnimations.applyRelevantTransformation("Bolt"); - ResourceManager.benelli.renderPart("Bolt"); - - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - - HbmAnimations.applyRelevantTransformation("Drum"); - ResourceManager.benelli.renderPart("Drum"); - - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - - HbmAnimations.applyRelevantTransformation("Shell"); - ResourceManager.benelli.renderPart("Shell"); - - GL11.glPopMatrix(); - - break; - case EQUIPPED:// In hand from other's POV - GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-170, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(-0.4F, 0.05F, -0.5F); - GL11.glScaled(scale2 - scale2 * 2, scale2, scale2); - - GL11.glPushMatrix(); - GL11.glPopMatrix(); - break; - case ENTITY:// Dropped entity - GL11.glScaled(0.0625D, 0.0625D, 0.0625D); - break; - case INVENTORY:// Inventory icon - GL11.glScaled(scale3, scale3, -scale3); - GL11.glTranslatef(14.4F, 15.0F, 0.0F); - GL11.glRotatef(270.0F, 10.0F, 0.0F, 0.0F); - GL11.glRotatef(52.5F, 0.0F, 10.0F, 0.0F); - GL11.glRotatef(270.0F, 0.0F, 0.0F, 10.0F); - default: - break; - } - - if(type != ItemRenderType.EQUIPPED_FIRST_PERSON) - ResourceManager.benelli.renderAll(); - GL11.glPopMatrix(); - - } - -} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderCryolator.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderCryolator.java deleted file mode 100644 index ce1505174..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderCryolator.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelCryolator; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderCryolator implements IItemRenderer { - - protected ModelCryolator swordModel; - - public ItemRenderCryolator() { - swordModel = new ModelCryolator(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelCryolator.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - //GL11.glTranslatef(-0.4F, -0.1F, 0.1F); - GL11.glTranslatef(-0.2F, -0.1F, -0.1F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelCryolator.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(1.25F, 1.25F, 1.25F); - GL11.glTranslatef(-0.8F, 0.0F, 0.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderEMPRay.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderEMPRay.java deleted file mode 100644 index cf4889d23..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderEMPRay.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelEMPRay; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderEMPRay implements IItemRenderer { - - protected ModelEMPRay swordModel; - - public ItemRenderEMPRay() { - swordModel = new ModelEMPRay(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - float f = 0; - - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelEMPRay.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glTranslatef(-0.8F, -0.2F, 0.0F); - GL11.glRotatef(-15.0F, 0.0F, 0.0F, 1.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, f); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelEMPRay.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glTranslatef(-1.8F, -0.2F, 0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, f); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderFatMan.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderFatMan.java deleted file mode 100644 index e669de40f..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderFatMan.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelFatman; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderFatMan implements IItemRenderer { - - protected ModelFatman swordModel; - - public ItemRenderFatMan() { - swordModel = new ModelFatman(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/FatmanLauncher.png")); - GL11.glRotatef(-150.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.8F, -0.1F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/FatmanLauncher.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim.java index 77455bf52..055b53708 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim.java @@ -6,8 +6,6 @@ import com.hbm.items.ModItems; import com.hbm.items.weapon.GunB92; import com.hbm.lib.RefStrings; import com.hbm.render.model.ModelB92; -import com.hbm.render.model.ModelB93; -import com.hbm.render.model.ModelLeverAction; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; @@ -16,14 +14,10 @@ import net.minecraftforge.client.IItemRenderer; public class ItemRenderGunAnim implements IItemRenderer { - protected ModelLeverAction flippedGun; protected ModelB92 b92; - protected ModelB93 b93; public ItemRenderGunAnim() { - flippedGun = new ModelLeverAction(); b92 = new ModelB92(); - b93 = new ModelB93(); } @Override @@ -51,24 +45,14 @@ public class ItemRenderGunAnim implements IItemRenderer { GL11.glEnable(GL11.GL_CULL_FACE); - if(item.getItem() == ModItems.gun_lever_action_sonata) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLeverAction.png")); if(item.getItem() == ModItems.gun_b92) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelB92SM.png")); - if(item.getItem() == ModItems.gun_b93) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelB93.png")); GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); GL11.glTranslatef(-0.5F, 0.0F, -0.2F); GL11.glScalef(0.5F, 0.5F, 0.5F); GL11.glScalef(0.5F, 0.5F, 0.5F); GL11.glTranslatef(-0.2F, -0.1F, -0.1F); - - if(item.getItem() == ModItems.gun_lever_action_sonata) { - GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(2.3F, 0.2F, 0.8F); - } if(item.getItem() == ModItems.gun_b92 && GunB92.getRotationFromAnim(item) > 0) { float off = GunB92.getRotationFromAnim(item) * 2; @@ -76,15 +60,8 @@ public class ItemRenderGunAnim implements IItemRenderer { GL11.glTranslatef(off * -0.5F, off * -0.5F, 0.0F); } - if(item.getItem() == ModItems.gun_b93 && GunB92.getRotationFromAnim(item) > 0) { - float off = GunB92.getRotationFromAnim(item) * 2; - GL11.glRotatef(GunB92.getRotationFromAnim(item) * -90, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(off * -0.5F, off * -0.5F, 0.0F); - } if(item.getItem() == ModItems.gun_b92) b92.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunB92.getTransFromAnim(item)); - if(item.getItem() == ModItems.gun_b93) - b93.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunB92.getTransFromAnim(item)); GL11.glPopMatrix(); break; @@ -92,20 +69,8 @@ public class ItemRenderGunAnim implements IItemRenderer { case ENTITY: GL11.glPushMatrix(); GL11.glEnable(GL11.GL_CULL_FACE); - if(item.getItem() == ModItems.gun_lever_action || item.getItem() == ModItems.gun_lever_action_sonata) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLeverAction.png")); - if(item.getItem() == ModItems.gun_bolt_action) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelBoltActionDark.png")); - if(item.getItem() == ModItems.gun_lever_action_dark) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLeverActionDark.png")); - if(item.getItem() == ModItems.gun_bolt_action_green) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelBoltActionGreen.png")); - if(item.getItem() == ModItems.gun_bolt_action_saturnite) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelBoltActionSaturnite.png")); if(item.getItem() == ModItems.gun_b92) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelB92SM.png")); - if(item.getItem() == ModItems.gun_b93) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelB93.png")); GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); @@ -115,16 +80,8 @@ public class ItemRenderGunAnim implements IItemRenderer { GL11.glScalef(0.5F, 0.5F, 0.5F); GL11.glTranslatef(-0.3F, -0.4F, 0.15F); - if(item.getItem() == ModItems.gun_lever_action_sonata) { - GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(25F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(2.3F, 0.2F, 0.8F); - } - if(item.getItem() == ModItems.gun_b92) b92.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunB92.getTransFromAnim(item)); - if(item.getItem() == ModItems.gun_b93) - b93.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunB92.getTransFromAnim(item)); GL11.glPopMatrix(); default: break; } diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderImmolator.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderImmolator.java deleted file mode 100644 index f5d298186..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderImmolator.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelImmolator; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderImmolator implements IItemRenderer { - - protected ModelImmolator swordModel; - - public ItemRenderImmolator() { - swordModel = new ModelImmolator(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelImmolator.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - //GL11.glTranslatef(-0.4F, -0.1F, 0.1F); - GL11.glTranslatef(-0.2F, -0.1F, -0.1F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelImmolator.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(1.25F, 1.25F, 1.25F); - GL11.glTranslatef(-0.8F, 0.0F, 0.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderLunaticSniper.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderLunaticSniper.java deleted file mode 100644 index a5de274b8..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderLunaticSniper.java +++ /dev/null @@ -1,138 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderLunaticSniper implements IItemRenderer { - - public ItemRenderLunaticSniper() { - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: - return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_BOBBING || helper == ItemRendererHelper.ENTITY_ROTATION); - } - - static final String slide = "Slide_Cube.020_Cube.007"; - static final String everythingElse = "Full_Cylinder.007"; - static final String spentShell = "Spent_Casing_Casing"; - static final String fullRound = "Full_Round_Bullet"; - - static final float scale1 = 0.2F; - static final float scale2 = 0.1F; - static final float scale3 = 0.15F; - static final float scale4 = 0.7F; - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); -// double[] eject = HbmAnimations.getRelevantTransformation("EJECT"); - double[] tilt = HbmAnimations.getRelevantTransformation("TILT"); -// double[] insert = HbmAnimations.getRelevantTransformation("INSERT_ROUND"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lunatic_sniper_tex); - - GL11.glShadeModel(GL11.GL_SMOOTH); - - switch (type) { - case EQUIPPED_FIRST_PERSON:// In hand from POV - - if(Minecraft.getMinecraft().thePlayer.isSneaking()) { - GL11.glPopMatrix(); - return; - } - - GL11.glRotatef(-10F, 0F, 1F, 0F); - GL11.glRotatef(-10F, 0F, 0F, 1F); - GL11.glRotatef(90F, 1F, 0F, 0F); - GL11.glRotatef(-58.5F, 0F, 1F, 0F); - GL11.glRotatef(90F, 0F, 0F, 1F); - GL11.glTranslatef(-0.5F, 0F, 0F); - GL11.glScalef(scale1, scale1, scale1); - - /// Begin animations /// - - // Move on recoil - GL11.glTranslated(0, 0, recoil[1] * 10); - GL11.glRotated(recoil[0] * 10, 0, 0, 1); - // Move on reload - GL11.glPushMatrix(); - GL11.glRotated(tilt[0] * 2, 0, 0, 1); - GL11.glRotated(-tilt[1] * 2, 0, 1, 0); - GL11.glTranslated(0, 0, -tilt[1] / 8); - ResourceManager.lunatic_sniper.renderPart(everythingElse); - GL11.glPopMatrix(); - // Release slide - GL11.glPushMatrix(); - GL11.glRotated(tilt[0] * 2, 0, 0, 1); - GL11.glRotated(-tilt[1] * 2, 0, 1, 0); - GL11.glTranslated(0, 0, -tilt[2] * 15); - ResourceManager.lunatic_sniper.renderPart(slide); - GL11.glPopMatrix(); - // Drop in new round - GL11.glPushMatrix(); - GL11.glRotated(tilt[0], 0, 0, 1); - GL11.glTranslated(0, tilt[1], tilt[2]); - ResourceManager.lunatic_sniper.renderPart(fullRound); - GL11.glPopMatrix(); - // Eject casing - GL11.glPushMatrix(); - GL11.glTranslated(0, 2, 0);//FIXME Where on earth is it?! -// ResourceManager.lunatic_sniper.renderPart(spentShell); - GL11.glPopMatrix(); - break; - case EQUIPPED:// In hand from other's POV - GL11.glRotatef(-5F, 0F, 1F, 0F); - GL11.glRotatef(-5F, 0F, 0F, 1F); - GL11.glRotatef(90F, 1F, 0F, 0F); - GL11.glRotatef(-50F, 0F, 1F, 0F); - GL11.glRotatef(90F, 0F, 0F, 1F); - GL11.glTranslatef(-0.05F, -0.2F, -0.75F); - GL11.glScalef(scale2 - scale2 * 2, scale2, scale2); - GL11.glPushMatrix(); -// GL11.glTranslated(eject[0] / 2, 0, -5); -// ResourceManager.lunatic_sniper.renderPart(spentShell); - GL11.glPopMatrix(); - break; - case ENTITY:// Dropped item - GL11.glScalef(scale3, scale3, scale3); - break; - case INVENTORY: - GL11.glTranslatef(10F, 11.5F, 0F); - GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-135F, 1.0F, 0.0F, 0.0F); - GL11.glScalef(-scale4, scale4, scale4); - break; - default: - break; - } - - if(type != ItemRenderType.EQUIPPED_FIRST_PERSON) { - ResourceManager.lunatic_sniper.renderAllExcept(fullRound, spentShell); - } - - GL11.glShadeModel(GL11.GL_FLAT); - GL11.glPopMatrix(); - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderM2.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderM2.java deleted file mode 100644 index b4b01c472..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderM2.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; -import com.hbm.render.item.ItemRenderBase; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; - -public class ItemRenderM2 extends ItemRenderBase { - - public ItemRenderM2() { } - - static final float scale1 = 0.35F, scale2 = 2.25F, scale3 = 0.25F, scale4 = 0.5F; - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) - { - switch (type) { - case ENTITY: - GL11.glTranslated(0, -0.25, 0); - GL11.glRotatef(90, 0, 1, 0); - GL11.glScalef(scale4, scale4, scale4); - break; - case EQUIPPED: - GL11.glScalef(scale1, scale1, -scale1); - GL11.glRotatef(-90, 0, 1, 0); - GL11.glTranslatef(-0.4f, 0.5f, -5); - GL11.glRotatef(30, 1, 0, 0); - break; - case EQUIPPED_FIRST_PERSON: - - if (Minecraft.getMinecraft().thePlayer.isSneaking()) { - GL11.glRotatef(-90, 0, 1, 0); - GL11.glTranslatef(-0.96f, -0.9f, -2); - GL11.glRotatef(-5.75f, 0, 1, 1);// Just of by 0.15 - - /* vvv remove to restore original look vvv */ - GL11.glRotatef(1.9F, 0, 0, 1); - GL11.glTranslatef(0.06F, 0, 0); - GL11.glRotatef(-0.2F, 0, 1, 0); - GL11.glRotatef(1F, 1, 0, 0); - GL11.glTranslatef(0, 1.15F, -1.75F); - - } else { - GL11.glRotatef(-95, 0, 1, 0); - GL11.glTranslatef(0, -1, -3); - } - GL11.glRotatef(25, 1, 0, 0); - - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - GL11.glTranslated(0, 0, recoil[0] * 0.35); - - break; - case INVENTORY: - GL11.glScalef(scale2, scale2, scale2); - GL11.glTranslated(2.75, 5, 0); - GL11.glRotatef(90, 0, 1, 0); - GL11.glRotatef(-45, 1, 0, 0); - GL11.glRotatef(180, 0, 0, 1); - break; - default: break; - } - GL11.glShadeModel(GL11.GL_SMOOTH); - Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.m2_tex); - ResourceManager.m2.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderMIRV.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderMIRV.java deleted file mode 100644 index db3d40b87..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderMIRV.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelMIRV; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderMIRV implements IItemRenderer { - - protected ModelMIRV swordModel; - - public ItemRenderMIRV() { - swordModel = new ModelMIRV(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/Mirv.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/Mirv.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderMIRVLauncher.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderMIRVLauncher.java deleted file mode 100644 index f7d174b2b..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderMIRVLauncher.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelMIRVLauncher; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderMIRVLauncher implements IItemRenderer { - - protected ModelMIRVLauncher swordModel; - - public ItemRenderMIRVLauncher() { - swordModel = new ModelMIRVLauncher(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/MIRVLauncher.png")); - GL11.glRotatef(-150.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.8F, -0.1F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/MIRVLauncher.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderMP.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderMP.java deleted file mode 100644 index 8c957bd95..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderMP.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelMP; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderMP implements IItemRenderer { - - protected ModelMP swordModel; - - public ItemRenderMP() { - swordModel = new ModelMP(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelMP.png")); - - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glTranslatef(1.0F, 0.75F, 0.0F); - GL11.glRotatef(150F, 0.0F, 0.0F, -1.0F); - GL11.glScalef(0.75F, 0.75F, 0.75F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - break; - - case EQUIPPED: - GL11.glTranslatef(0.35F, 0.5F, 0.0F); - GL11.glRotatef(100F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(170F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(15F, 0.0F, 0.0F, -1.0F); - GL11.glScalef(0.75F, 0.75F, 0.75F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - break; - - case ENTITY: - GL11.glTranslatef(0.0F, 1.0F, 0.0F); - GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); - GL11.glScalef(0.75F, 0.75F, 0.75F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - break; - - default: break; - } - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderMP40.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderMP40.java deleted file mode 100644 index 27f454765..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderMP40.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelMP40; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderMP40 implements IItemRenderer { - - protected ModelMP40 swordModel; - - public ItemRenderMP40() { - swordModel = new ModelMP40(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelMP40.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - //GL11.glTranslatef(-0.4F, -0.1F, 0.1F); - GL11.glTranslatef(-0.8F, -0.2F, 0.0F); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelMP40.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glTranslatef(-1.8F, -0.2F, 0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderMiniNuke.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderMiniNuke.java deleted file mode 100644 index 6a5d094dd..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderMiniNuke.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelMiniNuke; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderMiniNuke implements IItemRenderer { - - protected ModelMiniNuke swordModel; - - public ItemRenderMiniNuke() { - swordModel = new ModelMiniNuke(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/MiniNuke.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/MiniNuke.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderNukeGadget.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderNukeGadget.java deleted file mode 100644 index 2b188c95c..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderNukeGadget.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; - -public class ItemRenderNukeGadget implements IItemRenderer { - - private IModelCustom gadgetModel; - private ResourceLocation gadgetTexture; - float f = -1; - - public ItemRenderNukeGadget() { - gadgetModel = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/TheGadget3.obj")); - gadgetTexture = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(gadgetTexture); - //GL11.glRotatef(0.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(15.0F, 0.0F, 0.0F, -1.0F); - GL11.glTranslatef(0.8F, 0.2F, 0.5F); - GL11.glScalef(0.25F, 0.25F, 0.25F); - gadgetModel.renderAll(); - GL11.glPopMatrix(); - default: break; - } - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderOSIPR.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderOSIPR.java deleted file mode 100644 index 9dd1937ae..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderOSIPR.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelOSIPR; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderOSIPR implements IItemRenderer { - - protected ModelOSIPR swordModel; - - public ItemRenderOSIPR() { - swordModel = new ModelOSIPR(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelOSIPR.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glTranslatef(-0.4F, -0.2F, -0.1F); - GL11.glRotatef(-15.0F, 0.0F, 0.0F, 1.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelOSIPR.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - //GL11.glScalef(1.5F, 1.5F, 1.5F); - GL11.glTranslatef(-0.4F, -0.1F, 0.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java deleted file mode 100644 index b2e9e2d6e..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java +++ /dev/null @@ -1,271 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.items.weapon.ItemGunBase; -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelDefabricator; -import com.hbm.render.model.ModelEuthanasia; -import com.hbm.render.model.ModelHP; -import com.hbm.render.model.ModelJack; -import com.hbm.render.model.ModelLacunae; -import com.hbm.render.model.ModelSpark; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderOverkill implements IItemRenderer { - - protected ModelJack powerJack; - protected ModelSpark sparkPlug; - protected ModelHP hppLaserjet; - protected ModelEuthanasia euthanasia; - protected ModelDefabricator defab; - protected ModelLacunae lacunae; - - public ItemRenderOverkill() { - powerJack = new ModelJack(); - sparkPlug = new ModelSpark(); - hppLaserjet = new ModelHP(); - euthanasia = new ModelEuthanasia(); - defab = new ModelDefabricator(); - lacunae = new ModelLacunae(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - float f = 0; - - if((Entity)data[1] instanceof EntityPlayer) - f = ((EntityPlayer)data[1]).getItemInUseDuration(); - - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - - if(item.getItem() == ModItems.gun_jack) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelJack.png")); - if(item.getItem() == ModItems.gun_spark) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelSpark.png")); - if(item.getItem() == ModItems.gun_hp) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelHP.png")); - if(item.getItem() == ModItems.gun_euthanasia) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelEuthanasia.png")); - if(item.getItem() == ModItems.gun_defabricator) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDefabricator.png")); - if(item.getItem() == ModItems.gun_revolver_pip) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPip.png")); - if(item.getItem() == ModItems.gun_revolver_nopip) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipNoScope.png")); - if(item.getItem() == ModItems.gun_revolver_blackjack) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipGrey.png")); - if(item.getItem() == ModItems.gun_revolver_silver) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipSilver.png")); - if(item.getItem() == ModItems.gun_revolver_red) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipRed.png")); - if(item.getItem() == ModItems.gun_lacunae) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeReal.png")); - - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - //GL11.glTranslatef(-0.4F, -0.1F, 0.1F); - GL11.glTranslatef(-0.2F, -0.1F, -0.1F); - - if(item.getItem() == ModItems.gun_defabricator) - GL11.glTranslatef(0, 0.5F, 0.4F); - - if(item.getItem() == ModItems.gun_revolver_pip || - item.getItem() == ModItems.gun_revolver_nopip || - item.getItem() == ModItems.gun_revolver_blackjack || - item.getItem() == ModItems.gun_revolver_silver || - item.getItem() == ModItems.gun_revolver_red) { - GL11.glScalef(0.60F, 0.60F, 0.60F); - GL11.glTranslatef(0.0F, 0.0F, -0.1F); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - } - - if(item.getItem() == ModItems.gun_lacunae) { - GL11.glRotatef(-15.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(180, 0, 1, 0); - GL11.glTranslatef(0.5F, 0.3F, -0.2F); - } - - if(item.getItem() == ModItems.gun_jack) - powerJack.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_spark) - sparkPlug.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_hp) - hppLaserjet.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_euthanasia) - euthanasia.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_defabricator) - defab.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - - if(item.getItem() == ModItems.gun_lacunae) - lacunae.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, ItemGunBase.readNBT(item, "rot")); - - GL11.glPopMatrix(); - break; - case EQUIPPED: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - if(item.getItem() == ModItems.gun_jack) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelJack.png")); - if(item.getItem() == ModItems.gun_spark) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelSpark.png")); - if(item.getItem() == ModItems.gun_hp) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelHP.png")); - if(item.getItem() == ModItems.gun_euthanasia) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelEuthanasia.png")); - if(item.getItem() == ModItems.gun_defabricator) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDefabricator.png")); - if(item.getItem() == ModItems.gun_revolver_pip) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPip.png")); - if(item.getItem() == ModItems.gun_revolver_nopip) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipNoScope.png")); - if(item.getItem() == ModItems.gun_revolver_blackjack) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipGrey.png")); - if(item.getItem() == ModItems.gun_revolver_silver) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipSilver.png")); - if(item.getItem() == ModItems.gun_revolver_red) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipRed.png")); - if(item.getItem() == ModItems.gun_lacunae) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeReal.png")); - - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - //GL11.glScalef(0.75F, 0.75F, 0.75F); - GL11.glTranslatef(-1.4F, 0.0F, 0.0F); - if(item.getItem() == ModItems.gun_jack) - GL11.glTranslatef(0.3F, 0, 0); - if(item.getItem() == ModItems.gun_spark) - GL11.glTranslatef(0.4F, 0, 0); - if(item.getItem() == ModItems.gun_hp) - GL11.glTranslatef(0.5F, 0.2F, 0); - if(item.getItem() == ModItems.gun_defabricator) - GL11.glTranslatef(0.5F, 0.6F, -0.2F); - - if(item.getItem() == ModItems.gun_revolver_pip || - item.getItem() == ModItems.gun_revolver_nopip || - item.getItem() == ModItems.gun_revolver_blackjack || - item.getItem() == ModItems.gun_revolver_silver || - item.getItem() == ModItems.gun_revolver_red) { - GL11.glScalef(0.60F, 0.60F, 0.60F); - GL11.glTranslatef(0.7F, 0.3F, 0.0F); - } - if(item.getItem() == ModItems.gun_lacunae) { - GL11.glRotatef(5.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(185, 0, 1, 0); - GL11.glTranslatef(0.5F, 0.6F, 0.2F); - } - - if(item.getItem() == ModItems.gun_jack) - powerJack.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_spark) - sparkPlug.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_hp) - hppLaserjet.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_euthanasia) - euthanasia.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_defabricator) - defab.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - - if(item.getItem() == ModItems.gun_lacunae) - lacunae.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, f); - - GL11.glPopMatrix(); - break; - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - if(item.getItem() == ModItems.gun_jack) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelJack.png")); - if(item.getItem() == ModItems.gun_spark) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelSpark.png")); - if(item.getItem() == ModItems.gun_hp) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelHP.png")); - if(item.getItem() == ModItems.gun_euthanasia) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelEuthanasia.png")); - if(item.getItem() == ModItems.gun_defabricator) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDefabricator.png")); - if(item.getItem() == ModItems.gun_revolver_pip) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPip.png")); - if(item.getItem() == ModItems.gun_revolver_nopip) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipNoScope.png")); - if(item.getItem() == ModItems.gun_revolver_blackjack) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipGrey.png")); - if(item.getItem() == ModItems.gun_revolver_silver) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipSilver.png")); - if(item.getItem() == ModItems.gun_revolver_red) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipRed.png")); - if(item.getItem() == ModItems.gun_lacunae) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeReal.png")); - - - GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F); - - if(item.getItem() == ModItems.gun_revolver_pip || - item.getItem() == ModItems.gun_revolver_nopip || - item.getItem() == ModItems.gun_revolver_blackjack || - item.getItem() == ModItems.gun_revolver_silver || - item.getItem() == ModItems.gun_revolver_red) { - GL11.glScalef(0.60F, 0.60F, 0.60F); - } - if(item.getItem() == ModItems.gun_calamity) { - GL11.glScalef(0.75F, 0.75F, 0.75F); - } - if(item.getItem() == ModItems.gun_lacunae) { - GL11.glTranslatef(0, -1, 0); - GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); - } - - if(item.getItem() == ModItems.gun_jack) - powerJack.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_spark) - sparkPlug.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_hp) - hppLaserjet.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_euthanasia) - euthanasia.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_defabricator) - defab.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - - if(item.getItem() == ModItems.gun_lacunae) - lacunae.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, f); - - GL11.glPopMatrix(); - break; - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolver.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolver.java deleted file mode 100644 index b7f8ce1c0..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolver.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelRevolver; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRevolver implements IItemRenderer { - - protected ModelRevolver swordModel; - - public ItemRenderRevolver() { - swordModel = new ModelRevolver(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - - if(item.getItem() == ModItems.gun_revolver) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolver.png")); - if(item.getItem() == ModItems.gun_revolver_saturnite) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverSaturnite.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - - //((EntityPlayer)data[1]).isSwingInProgress = false; - - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - if(item.getItem() == ModItems.gun_revolver) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolver.png")); - if(item.getItem() == ModItems.gun_revolver_saturnite) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverSaturnite.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverCursed.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverCursed.java deleted file mode 100644 index 937c936bb..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverCursed.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelGun; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRevolverCursed implements IItemRenderer { - - protected ModelGun swordModel; - - public ItemRenderRevolverCursed() { - swordModel = new ModelGun(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelGun.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelGun.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverGold.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverGold.java deleted file mode 100644 index 76cb564ea..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverGold.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelRevolver; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRevolverGold implements IItemRenderer { - - protected ModelRevolver swordModel; - - public ItemRenderRevolverGold() { - swordModel = new ModelRevolver(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverGold.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverGold.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverInverted.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverInverted.java deleted file mode 100644 index c2f5b537d..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverInverted.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.model.ModelRevolver; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRevolverInverted implements IItemRenderer { - - protected ModelRevolver swordModel; - - public ItemRenderRevolverInverted() { - swordModel = new ModelRevolver(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - boolean inUse = false; - if(data != null && data.length > 1 && data[1] instanceof EntityPlayer) - inUse = (((EntityPlayer)data[1]).getItemInUse() != null && ((EntityPlayer)data[1]).getItemInUse().getItemUseAction() == EnumAction.bow); - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 1.5D; - GL11.glTranslated(0.75, 0.5, 0); - GL11.glScaled(s0, s0, s0); - GL11.glRotated(100, 0, -1, 0); - GL11.glRotated(25, 1, 0, 0); - - if(inUse) { - GL11.glTranslated(-0.4, 0, 0); - GL11.glRotated(198, 0, 1, 0); - GL11.glRotated(-10, 1, 0, 0); - } - - break; - - case EQUIPPED: - - double scale = 1.5D; - GL11.glRotated(195, 0, 1, 0); - GL11.glRotated(-10, 0, 0, 1); - GL11.glRotated(-10, 1, 0, 0); - GL11.glTranslated(-0.5, 0.1, -0.25); - GL11.glScaled(scale, scale, scale); - - if(inUse) { - GL11.glTranslated(-0.05, 0, 0); - GL11.glRotated(-15, 0, 0, 1); - GL11.glRotated(160, 0, 1, 0); - } - - break; - - case ENTITY: - - double s1 = 1D; - GL11.glScaled(s1, s1, s1); - GL11.glRotated(90, 0, 1, 0); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 17D; - GL11.glTranslated(8, 8, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_gun_bright); - ResourceManager.ff_python.renderPart("Body"); - ResourceManager.ff_python.renderPart("Cylinder"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_wood); - ResourceManager.ff_python.renderPart("Grip"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_iron); - ResourceManager.ff_python.renderPart("Hammer"); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverIron.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverIron.java deleted file mode 100644 index a84199cf8..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverIron.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelRevolver; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRevolverIron implements IItemRenderer { - - protected ModelRevolver swordModel; - - public ItemRenderRevolverIron() { - swordModel = new ModelRevolver(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverIron.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverIron.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverLead.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverLead.java deleted file mode 100644 index 6833e5184..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverLead.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelRevolver; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRevolverLead implements IItemRenderer { - - protected ModelRevolver swordModel; - - public ItemRenderRevolverLead() { - swordModel = new ModelRevolver(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverLead.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverLead.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverSchrabidium.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverSchrabidium.java deleted file mode 100644 index 0766c6fb5..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverSchrabidium.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelRevolver; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRevolverSchrabidium implements IItemRenderer { - - protected ModelRevolver swordModel; - - public ItemRenderRevolverSchrabidium() { - swordModel = new ModelRevolver(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverSchrabidium.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverSchrabidium.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRpg.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRpg.java deleted file mode 100644 index 147288168..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRpg.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelGustav; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRpg implements IItemRenderer { - - protected ModelGustav swordModel; - - public ItemRenderRpg() { - swordModel = new ModelGustav(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - if(item.getItem() == ModItems.gun_rpg) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelGustav.png")); - if(item.getItem() == ModItems.gun_karl) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelGustavYellow.png")); - - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glTranslatef(0.4F, -1.0F, -0.7F); - - if(item.getItem() == ModItems.gun_panzerschreck) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - - if(Minecraft.getMinecraft().thePlayer.isSneaking()) - GL11.glTranslatef(-0.2F, -0.3F, -0.5F); - else - GL11.glTranslatef(-0.1F, 0.0F, 0.0F); - } else { - GL11.glTranslatef(0F, -0.1F, -0.4F); - } - - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - - if(item.getItem() == ModItems.gun_rpg) - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_karl) - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - if(item.getItem() == ModItems.gun_rpg) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelGustav.png")); - if(item.getItem() == ModItems.gun_karl) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelGustavYellow.png")); - - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.9F, 0.0F, 0.1F); - - if(item.getItem() == ModItems.gun_panzerschreck) { - GL11.glTranslatef(-0.5F, -0.1F, 0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - } - - if(item.getItem() == ModItems.gun_rpg) - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_karl) - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderStinger.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderStinger.java deleted file mode 100644 index 5e5b5d36d..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderStinger.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.main.ResourceManager; -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderStinger implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - ResourceLocation stingerTex = item.getItem() == ModItems.gun_stinger ? ResourceManager.stinger_tex : ResourceManager.sky_stinger_tex; - Minecraft.getMinecraft().renderEngine.bindTexture(stingerTex); - GL11.glPushMatrix(); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.25D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(-0.5, -0.7, -0.5); - GL11.glRotated(-100, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-170, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(-2F, -3F, 4.0F); - - break; - - case ENTITY: - - double s1 = 0.2D; - GL11.glScaled(s1, s1, s1); - GL11.glTranslatef(0F, -2.5F, 0F); - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.75D; - GL11.glTranslated(4, 11, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glRotated(135, 1, 0, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - ResourceManager.stinger.renderAll(); - GL11.glPopMatrix(); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderUACPistol.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderUACPistol.java deleted file mode 100644 index 2ce940cc0..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderUACPistol.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderUACPistol implements IItemRenderer { - Minecraft mc = Minecraft.getMinecraft(); - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - return type == ItemRenderType.FIRST_PERSON_MAP ? false : true; - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_BOBBING || helper == ItemRendererHelper.ENTITY_ROTATION); - } - - static final String lower = "lower_pistol_0"; - static final String mag = "mag_pistol_0"; - static final String slide = "slide_pistol_0"; - static final String trigger = "trigger_pistol_0"; - static final String hammer = "bool_obj_bool_obj_data.002"; - - static final float scale1 = 0.05F; - static final float scale2 = 0.025F; - static final float scale3 = 0.05F; - static final float scale4 = 0.55F; - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - GL11.glPushMatrix(); - mc.renderEngine.bindTexture(ResourceManager.uac_pistol_tex); - EntityPlayer player = mc.thePlayer; - GL11.glShadeModel(GL11.GL_SMOOTH); - - double[] slideAnim = HbmAnimations.getRelevantTransformation("SLIDE"); - double[] hammerAnim = HbmAnimations.getRelevantTransformation("HAMMER"); - - switch(type) { - case ENTITY:// Dropped item - GL11.glScalef(scale1, scale1, scale1); - break; - case EQUIPPED:// In hand from other's POV - GL11.glScalef(scale2, scale2, scale2); - GL11.glRotatef(90F, 0F, 1F, 0F); - GL11.glRotatef(-45F, 1F, 0F, 0F); - GL11.glTranslatef(0F, -12F, 30F); - - GL11.glPushMatrix(); - ResourceManager.uac_pistol.renderOnly(trigger, mag, lower); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glTranslated(slideAnim[0], slideAnim[1], slideAnim[2] * 2); - ResourceManager.uac_pistol.renderPart(slide); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glRotated(hammerAnim[0], 1F, 0F, 0F); - ResourceManager.uac_pistol.renderPart(hammer); - GL11.glPopMatrix(); - break; - case EQUIPPED_FIRST_PERSON:// In hand from POV - GL11.glScalef(scale3, scale3, scale3); - GL11.glRotatef(90F, 0F, 1F, 0F); - if(player.isSneaking()) { - GL11.glRotatef(-25F, 1F, 0F, 0F); - GL11.glRotatef(-5F, 0F, 1F, 0F); - GL11.glTranslatef(20.15F, 3.5F, 18F); - } else { - GL11.glRotatef(-25F, 1F, 0F, 0F); - GL11.glTranslatef(-3F, -5F, 20F); - } - GL11.glPushMatrix(); - GL11.glTranslated(slideAnim[0], slideAnim[1], slideAnim[2] * 2); - ResourceManager.uac_pistol.renderPart(slide); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glRotated(hammerAnim[0], 1F, 0F, 0F); - ResourceManager.uac_pistol.renderPart(hammer); - GL11.glPopMatrix(); - break; - case INVENTORY: - GL11.glScalef(scale4, scale4, scale4); - GL11.glRotatef(90F, 0F, 1F, 0F); - GL11.glRotatef(150F, 1F, 0F, 0F); - GL11.glTranslatef(0F, -8F, -24F); - break; - default: - break; - } - if(type != ItemRenderType.EQUIPPED_FIRST_PERSON && type != ItemRenderType.EQUIPPED) - ResourceManager.uac_pistol.renderAll(); - else - ResourceManager.uac_pistol.renderOnly(trigger, mag, lower); - GL11.glShadeModel(GL11.GL_FLAT); - GL11.glPopMatrix(); - } - -} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderUZI.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderUZI.java deleted file mode 100644 index 75466cb35..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderUZI.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelUzi; -import com.hbm.render.model.ModelUziBarrel; -import com.hbm.render.model.ModelUziSilencer; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderUZI implements IItemRenderer { - - protected ModelUzi uzi; - protected ModelUziBarrel barrel; - protected ModelUziSilencer silencer; - - public ItemRenderUZI() { - uzi = new ModelUzi(); - barrel = new ModelUziBarrel(); - silencer = new ModelUziSilencer(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glScalef(0.25F, 0.25F, 0.25F); - GL11.glTranslatef(-2.5F, -0.5F, -0.9F); - - GL11.glRotatef(-15.0F, 0.0F, 0.0F, 1.0F); - - if(item.getItem() == ModItems.gun_uzi || item.getItem() == ModItems.gun_uzi_silencer) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUzi.png")); - if(item.getItem() == ModItems.gun_uzi_saturnite || item.getItem() == ModItems.gun_uzi_saturnite_silencer) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziSaturnite.png")); - - uzi.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - - if(item.getItem() == ModItems.gun_uzi || item.getItem() == ModItems.gun_uzi_saturnite) { - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziBarrel.png")); - barrel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - } - - if(item.getItem() == ModItems.gun_uzi_silencer || item.getItem() == ModItems.gun_uzi_saturnite_silencer) { - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziSilencer.png")); - silencer.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - } - - GL11.glPopMatrix(); - break; - case EQUIPPED: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - - GL11.glScalef(0.5F, 0.5F, 0.5F); - - GL11.glTranslatef(0.2F, -0.8F, -1.0F); - - if(item.getItem() == ModItems.gun_uzi || item.getItem() == ModItems.gun_uzi_silencer) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUzi.png")); - if(item.getItem() == ModItems.gun_uzi_saturnite || item.getItem() == ModItems.gun_uzi_saturnite_silencer) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziSaturnite.png")); - uzi.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - - if(item.getItem() == ModItems.gun_uzi || item.getItem() == ModItems.gun_uzi_saturnite) { - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziBarrel.png")); - barrel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - } - - if(item.getItem() == ModItems.gun_uzi_silencer || item.getItem() == ModItems.gun_uzi_saturnite_silencer) { - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziSilencer.png")); - silencer.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - } - - GL11.glPopMatrix(); - break; - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - - GL11.glScalef(0.5F, 0.5F, 0.5F); - - GL11.glTranslatef(0.0F, -1.0F, 0.0F); - - if(item.getItem() == ModItems.gun_uzi || item.getItem() == ModItems.gun_uzi_silencer) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUzi.png")); - if(item.getItem() == ModItems.gun_uzi_saturnite || item.getItem() == ModItems.gun_uzi_saturnite_silencer) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziSaturnite.png")); - uzi.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - - if(item.getItem() == ModItems.gun_uzi || item.getItem() == ModItems.gun_uzi_saturnite) { - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziBarrel.png")); - barrel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - } - - if(item.getItem() == ModItems.gun_uzi_silencer || item.getItem() == ModItems.gun_uzi_saturnite_silencer) { - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziSilencer.png")); - silencer.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - } - - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderUboinik.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderUboinik.java deleted file mode 100644 index 173716ef6..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderUboinik.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelUboinik; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderUboinik implements IItemRenderer { - - protected ModelUboinik swordModel; - - public ItemRenderUboinik() { - swordModel = new ModelUboinik(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUboinik.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - //GL11.glTranslatef(-0.4F, -0.1F, 0.1F); - GL11.glTranslatef(-0.2F, -0.4F, -0.1F); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUboinik.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(0.75F, 0.75F, 0.75F); - GL11.glTranslatef(-1.4F, 0.0F, 0.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponBolter.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponBolter.java deleted file mode 100644 index 0b1da0139..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponBolter.java +++ /dev/null @@ -1,153 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.items.weapon.ItemGunBase; -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponBolter implements IItemRenderer { - - public ItemRenderWeaponBolter() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - if(item.getItem() == ModItems.gun_bolter) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bolter_tex); - if(item.getItem() == ModItems.gun_bolter_digamma) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bolter_digamma_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.25D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(1.25, -0.25, -0.25); - GL11.glRotated(-100, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - GL11.glRotated(recoil[0] * 5, 1, 0, 0); - GL11.glTranslated(0, 0, recoil[0]); - - double[] tilt = HbmAnimations.getRelevantTransformation("TILT"); - GL11.glTranslated(0, tilt[0], 3); - GL11.glRotated(tilt[0] * 35, 1, 0, 0); - GL11.glTranslated(0, 0, -3); - - ResourceManager.bolter.renderPart("Body"); - - double[] mag = HbmAnimations.getRelevantTransformation("MAG"); - GL11.glPushMatrix(); - GL11.glTranslated(0, 0, 5); - GL11.glRotated(mag[0] * 60 * (mag[2] == 1 ? 2.5 : 1), -1, 0, 0); - GL11.glTranslated(0, 0, -5); - ResourceManager.bolter.renderPart("Mag"); - if(mag[2] != 1) ResourceManager.bolter.renderPart("Bullet"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - double[] casing = HbmAnimations.getRelevantTransformation("EJECT"); - GL11.glTranslated(casing[2] * 5, casing[2] * 2, 0); - GL11.glRotated(casing[2] * 60, 1, 0, 0); - ResourceManager.bolter.renderPart("Casing"); - GL11.glPopMatrix(); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-170, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(-2F, -0.9F, -0.75F); - - break; - - case ENTITY: - - double s1 = 0.2D; - GL11.glScaled(s1, s1, s1); - GL11.glTranslated(0, 1, 0); - GL11.glRotatef(90, 0, 1, 0); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 2.5D; - GL11.glTranslated(6, 10, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glRotated(135, 1, 0, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - if(type != ItemRenderType.EQUIPPED_FIRST_PERSON) { - ResourceManager.bolter.renderAll(); - } - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPushMatrix(); - GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); - - FontRenderer font = Minecraft.getMinecraft().fontRenderer; - String s = ((ItemGunBase) item.getItem()).getMag(item) + ""; - float f3 = 0.04F; - GL11.glTranslatef(0.025F - (font.getStringWidth(s) / 2) * 0.04F, 2.11F, 2.91F); - GL11.glScalef(f3, -f3, f3); - GL11.glRotatef(45, 1, 0, 0); - GL11.glNormal3f(0.0F, 0.0F, -1.0F * f3); - font.drawString(s, 0, 0, 0xff0000); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopAttrib(); - GL11.glPopMatrix(); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFNightmareDark.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFNightmareDark.java deleted file mode 100644 index 52f7d4226..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFNightmareDark.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponFFNightmareDark implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.4D; - GL11.glTranslated(0.75, 0.45, 0); - GL11.glScaled(s0, s0, s0); - GL11.glRotated(170, 0, 1, 0); - GL11.glRotated(25, 0, 0, -1); - - break; - - case EQUIPPED: - - double scale = 0.4D; - GL11.glRotated(105, 0, 1, 0); - GL11.glRotated(-10, 1, 0, 0); - GL11.glRotated(10, 0, 0, 1); - GL11.glTranslated(-0.125, 0.1, 0.5); - GL11.glScaled(scale, scale, scale); - - break; - - case ENTITY: - - double s1 = 0.25D; - GL11.glScaled(s1, s1, s1); - GL11.glRotated(90, 0, 1, 0); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 3D; - GL11.glTranslated(10, 9, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glRotated(180, 0, 1, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_nightmare_tex); - ResourceManager.nightmare_dark.renderAll(); - - GL11.glShadeModel(GL11.GL_FLAT); - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponGlass.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponGlass.java deleted file mode 100644 index 418636da7..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponGlass.java +++ /dev/null @@ -1,178 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.handler.BulletConfiguration; -import com.hbm.items.weapon.ItemEnergyGunBase; -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponGlass implements IItemRenderer { - - public ItemRenderWeaponGlass() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_CULL_FACE); - - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.5D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(2.25, 0.0, 0.125); - GL11.glRotatef(-10, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glScaled(-scale, scale, scale); - GL11.glRotatef(20F, -3.0F, -0.75F, -1.0F); - GL11.glRotatef(-170, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30F, 2.0F, -1F, -5.0F); - GL11.glTranslatef(5F, -0.35F, 0.25F); - - break; - - case ENTITY: - - double s1 = 0.5D; - GL11.glScaled(s1, s1, s1); - - break; - - case INVENTORY: - - double s = 1.65D; - GL11.glTranslatef(8F, 8F, 0F); - GL11.glRotated(90, 0, 0, 1); - GL11.glRotated(135, 0, 0, 1); - GL11.glScaled(s, s, s); - - break; - - default: break; - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_TEXTURE_2D); - - GL11.glEnable(GL11.GL_BLEND); - GL11.glAlphaFunc(GL11.GL_GREATER, 0); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glColor4f(0.9F, 1.0F, 1.0F, 0.5F); - GL11.glDepthMask(false); - - ResourceManager.glass_cannon.renderPart("Gun"); - - GL11.glDepthMask(true); - GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - - GL11.glShadeModel(GL11.GL_FLAT); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.glass_cannon_panel_tex); - ResourceManager.glass_cannon.renderPart("Panel"); - - GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_TEXTURE_2D); - - int color = 0xFFFFFF; - double freq = 1; - - if(item.getItem() instanceof ItemEnergyGunBase) { - BulletConfiguration config = ((ItemEnergyGunBase)item.getItem()).getConfig(item); - String name = config.modeName; - switch(name) { - case "weapon.elecGun.glass_cannon.radio": color = 0xaa2200; freq = 0.5; break; - case "weapon.elecGun.glass_cannon.micro": color = 0xdc221f; freq = 1; break; - case "weapon.elecGun.glass_cannon.ir": color = 0xfc3d3a; freq = 1.5; break; - case "weapon.elecGun.glass_cannon.visible": color = 0x8fe325; freq = 2; break; - case "weapon.elecGun.glass_cannon.uv": color = 0x37d5f3; freq = 2.5; break; - case "weapon.elecGun.glass_cannon.xray": color = 0x2542fd; freq = 3; break; - case "weapon.elecGun.glass_cannon.gamma": color = 0xdc20f3; freq = 3.5; break; - } - } - - float px = 0.0625F; - GL11.glTranslatef(-2F, px * 18, -px * 14); - GL11.glRotatef(90, 0, 1, 0); - GL11.glTranslatef(-0.7F, -0.86F, -0.33F); - - Tessellator tess = Tessellator.instance; - tess.startDrawing(GL11.GL_QUADS); - - int sub = 32; - double width = px * 21.25; - double len = width / sub; - double time = System.currentTimeMillis() / -100D; - double amplitude = 0.075; - - tess.setColorOpaque_I(color); - - for(int i = 0; i < sub; i++) { - double h0 = Math.sin(freq * i * 0.5 + time) * amplitude; - double h1 = Math.sin(freq * (i + 1) * 0.5 + time) * amplitude; - tess.addVertex(0, -px * 0.25 + h1, len * (i + 1)); - tess.addVertex(0, px * 0.25 + h1, len * (i + 1)); - tess.addVertex(0, px * 0.25 + h0, len * i); - tess.addVertex(0, -px * 0.25 + h0, len * i); - } - tess.setColorOpaque_F(1F, 1F, 1F); - - tess.draw(); - - GL11.glEnable(GL11.GL_TEXTURE_2D); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopAttrib(); - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponVortex.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponVortex.java deleted file mode 100644 index 80de6557d..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponVortex.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponVortex implements IItemRenderer { - - public ItemRenderWeaponVortex() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.vortex_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.05D; - GL11.glScaled(s0, s0, s0); - GL11.glRotated(25, 0, 0, 1); - GL11.glRotated(-5, 0, 1, 0); - GL11.glTranslated(17, -5, -5); - - break; - - case EQUIPPED: - - double scale = 0.075D; - GL11.glScaled(scale, scale, scale); - GL11.glRotated(-75, 0, 1, 0); - GL11.glRotated(-10, 0, 0, 1); - GL11.glRotated(15, 1, 0, 0); - GL11.glTranslated(7, -4, -6); - - break; - - case ENTITY: - - double s1 = 0.05D; - GL11.glScaled(s1, s1, s1); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 0.3D; - GL11.glTranslated(7, 11, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - ResourceManager.vortex.renderAll(); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderZOMG.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderZOMG.java deleted file mode 100644 index f30dfa967..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderZOMG.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelZOMG; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderZOMG implements IItemRenderer { - - protected ModelZOMG swordModel; - - public ItemRenderZOMG() { - swordModel = new ModelZOMG(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return helper == ItemRendererHelper.ENTITY_BOBBING || helper == ItemRendererHelper.ENTITY_ROTATION; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelZOMG.png")); - GL11.glRotatef(-150.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - GL11.glScalef(0.75F, 0.75F, 0.75F); - GL11.glTranslatef(-0.4F, -0.5F, -0.1F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - - case EQUIPPED: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelZOMG.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - GL11.glTranslatef(-0.4F, -0.1F, -0.1F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelZOMG.png")); - GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - GL11.glTranslatef(0F, -0.5F, 0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/model/ModelB93.java b/src/main/java/com/hbm/render/model/ModelB93.java deleted file mode 100644 index 5b42ca2ef..000000000 --- a/src/main/java/com/hbm/render/model/ModelB93.java +++ /dev/null @@ -1,487 +0,0 @@ -// Date: 26.04.2018 22:13:08 -// 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.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.entity.Entity; - -public class ModelB93 extends ModelBase { - // fields - ModelRenderer Muzzle1; - ModelRenderer Barrel1; - ModelRenderer Barrel2; - ModelRenderer Grip; - ModelRenderer Front1; - ModelRenderer Front2; - ModelRenderer Body; - ModelRenderer Top; - ModelRenderer GripBottom; - ModelRenderer Handle; - ModelRenderer HandleBack; - ModelRenderer Frame1; - ModelRenderer Frame2; - ModelRenderer Frame3; - ModelRenderer Trigger; - ModelRenderer BackPlate1; - ModelRenderer Back; - ModelRenderer BackPlate2; - ModelRenderer Pump1; - ModelRenderer Pump2; - ModelRenderer BodyPlate; - ModelRenderer Muz1; - ModelRenderer Muz2; - ModelRenderer Muz3; - ModelRenderer Damp1; - ModelRenderer Damp2; - ModelRenderer Damp3; - ModelRenderer DampFront; - ModelRenderer EmitterRod; - ModelRenderer EmitterCrystal; - ModelRenderer EmitterClamp1; - ModelRenderer EmitterClamp2; - ModelRenderer EmitterClamp3; - ModelRenderer EmitterClamp4; - ModelRenderer EmitterClamp5; - ModelRenderer EmitterClamp6; - ModelRenderer EmitterClamp7; - ModelRenderer EmitterClamp8; - ModelRenderer PowBox; - ModelRenderer PowPanel; - ModelRenderer Nix1; - ModelRenderer Nix2; - ModelRenderer Nix3; - ModelRenderer Nix11; - ModelRenderer Nix21; - ModelRenderer Nix31; - ModelRenderer Nix12; - ModelRenderer Nix22; - ModelRenderer Nix32; - ModelRenderer Pylon; - ModelRenderer Wire1; - ModelRenderer Wire2; - ModelRenderer Wire3; - ModelRenderer PowPylon; - - public ModelB93() { - textureWidth = 128; - textureHeight = 64; - - Muzzle1 = new ModelRenderer(this, 22, 36); - Muzzle1.addBox(0F, 0F, 0F, 2, 3, 2); - Muzzle1.setRotationPoint(-24F, 0.5F, -1F); - Muzzle1.setTextureSize(64, 32); - Muzzle1.mirror = true; - setRotation(Muzzle1, 0F, 0F, 0F); - Barrel1 = new ModelRenderer(this, 0, 0); - Barrel1.addBox(0F, 0F, 0F, 24, 2, 3); - Barrel1.setRotationPoint(-24F, 1F, -1.5F); - Barrel1.setTextureSize(64, 32); - Barrel1.mirror = true; - setRotation(Barrel1, 0F, 0F, 0F); - Barrel2 = new ModelRenderer(this, 0, 5); - Barrel2.addBox(0F, 0F, 0F, 22, 1, 2); - Barrel2.setRotationPoint(-22F, 0.5F, -1F); - Barrel2.setTextureSize(64, 32); - Barrel2.mirror = true; - setRotation(Barrel2, 0F, 0F, 0F); - Grip = new ModelRenderer(this, 0, 8); - Grip.addBox(0F, 0F, 0F, 20, 3, 4); - Grip.setRotationPoint(-20F, 3F, -2F); - Grip.setTextureSize(64, 32); - Grip.mirror = true; - setRotation(Grip, 0F, 0F, 0F); - Front1 = new ModelRenderer(this, 10, 36); - Front1.addBox(0F, 0F, 0F, 2, 4, 4); - Front1.setRotationPoint(-22F, 0.5F, -2F); - Front1.setTextureSize(64, 32); - Front1.mirror = true; - setRotation(Front1, 0F, 0F, 0F); - Front2 = new ModelRenderer(this, 0, 36); - Front2.addBox(0F, 0F, 0F, 2, 6, 3); - Front2.setRotationPoint(-22F, 0F, -1.5F); - Front2.setTextureSize(64, 32); - Front2.mirror = true; - setRotation(Front2, 0F, 0F, 0F); - Body = new ModelRenderer(this, 0, 15); - Body.addBox(0F, 0F, 0F, 15, 7, 4); - Body.setRotationPoint(0F, 0.5F, -2F); - Body.setTextureSize(64, 32); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - Top = new ModelRenderer(this, 28, 60); - Top.addBox(0F, 0F, 0F, 15, 1, 3); - Top.setRotationPoint(0F, 0F, -1.5F); - Top.setTextureSize(64, 32); - Top.mirror = true; - setRotation(Top, 0F, 0F, 0F); - GripBottom = new ModelRenderer(this, 24, 43); - GripBottom.addBox(0F, 0F, 0F, 18, 1, 2); - GripBottom.setRotationPoint(-18F, 5.5F, -1F); - GripBottom.setTextureSize(64, 32); - GripBottom.mirror = true; - setRotation(GripBottom, 0F, 0F, 0F); - Handle = new ModelRenderer(this, 0, 45); - Handle.addBox(0F, 0F, 0F, 6, 15, 4); - Handle.setRotationPoint(6F, 7F, -2F); - Handle.setTextureSize(64, 32); - Handle.mirror = true; - setRotation(Handle, 0F, 0F, -0.2268928F); - HandleBack = new ModelRenderer(this, 20, 46); - HandleBack.addBox(5.5F, 0F, 0F, 1, 15, 3); - HandleBack.setRotationPoint(6F, 7F, -1.5F); - HandleBack.setTextureSize(64, 32); - HandleBack.mirror = true; - setRotation(HandleBack, 0F, 0F, -0.2268928F); - Frame1 = new ModelRenderer(this, 28, 57); - Frame1.addBox(0F, 0F, 0F, 7, 1, 2); - Frame1.setRotationPoint(0.5F, 11F, -1F); - Frame1.setTextureSize(64, 32); - Frame1.mirror = true; - setRotation(Frame1, 0F, 0F, 0F); - Frame2 = new ModelRenderer(this, 28, 51); - Frame2.addBox(0F, 0F, 0F, 2, 4, 2); - Frame2.setRotationPoint(-2F, 6.5F, -1F); - Frame2.setTextureSize(64, 32); - Frame2.mirror = true; - setRotation(Frame2, 0F, 0F, 0F); - Frame3 = new ModelRenderer(this, 46, 57); - Frame3.addBox(0F, -1F, 0F, 3, 1, 2); - Frame3.setRotationPoint(-2F, 10.5F, -1F); - Frame3.setTextureSize(64, 32); - Frame3.mirror = true; - setRotation(Frame3, 0F, 0F, 0.5235988F); - Trigger = new ModelRenderer(this, 36, 53); - Trigger.addBox(0F, 0F, 0F, 2, 3, 1); - Trigger.setRotationPoint(4F, 7F, -0.5F); - Trigger.setTextureSize(64, 32); - Trigger.mirror = true; - setRotation(Trigger, 0F, 0F, 0.1919862F); - BackPlate1 = new ModelRenderer(this, 56, 53); - BackPlate1.addBox(-1F, 0F, 0F, 1, 4, 3); - BackPlate1.setRotationPoint(15F, 0F, -1.5F); - BackPlate1.setTextureSize(64, 32); - BackPlate1.mirror = true; - setRotation(BackPlate1, 0F, 0F, -0.5235988F); - Back = new ModelRenderer(this, 42, 49); - Back.addBox(0F, 0F, 0F, 2, 4, 4); - Back.setRotationPoint(15F, 3.5F, -2F); - Back.setTextureSize(64, 32); - Back.mirror = true; - setRotation(Back, 0F, 0F, 0F); - BackPlate2 = new ModelRenderer(this, 48, 5); - BackPlate2.addBox(-2F, 0F, 0F, 2, 4, 4); - BackPlate2.setRotationPoint(15F, 0.5F, -2F); - BackPlate2.setTextureSize(64, 32); - BackPlate2.mirror = true; - setRotation(BackPlate2, 0F, 0F, -0.4886922F); - Pump1 = new ModelRenderer(this, 46, 29); - Pump1.addBox(0F, 0F, 0F, 7, 2, 2); - Pump1.setRotationPoint(10F, 1F, -1F); - Pump1.setTextureSize(64, 32); - Pump1.mirror = true; - setRotation(Pump1, 0F, 0F, 0F); - Pump2 = new ModelRenderer(this, 44, 33); - Pump2.addBox(0F, 0F, 0F, 3, 3, 7); - Pump2.setRotationPoint(17F, 0.5F, -3.5F); - Pump2.setTextureSize(64, 32); - Pump2.mirror = true; - setRotation(Pump2, 0F, 0F, 0F); - BodyPlate = new ModelRenderer(this, 0, 26); - BodyPlate.addBox(0F, 0F, 0F, 14, 5, 5); - BodyPlate.setRotationPoint(1.5F, 2F, -2.5F); - BodyPlate.setTextureSize(64, 32); - BodyPlate.mirror = true; - setRotation(BodyPlate, 0F, 0F, 0F); - Muz1 = new ModelRenderer(this, 90, 3); - Muz1.addBox(0F, 0F, 0F, 2, 5, 3); - Muz1.setRotationPoint(-26F, -0.5F, -1.5F); - Muz1.setTextureSize(64, 32); - Muz1.mirror = true; - setRotation(Muz1, 0F, 0F, 0F); - Muz2 = new ModelRenderer(this, 64, 2); - Muz2.addBox(0F, 0F, 0F, 2, 3, 5); - Muz2.setRotationPoint(-26F, 0.5F, -2.5F); - Muz2.setTextureSize(64, 32); - Muz2.mirror = true; - setRotation(Muz2, 0F, 0F, 0F); - Muz3 = new ModelRenderer(this, 78, 3); - Muz3.addBox(0F, 0F, 0F, 2, 4, 4); - Muz3.setRotationPoint(-26F, 0F, -2F); - Muz3.setTextureSize(64, 32); - Muz3.mirror = true; - setRotation(Muz3, 0F, 0F, 0F); - Damp1 = new ModelRenderer(this, 64, 53); - Damp1.addBox(0F, 0F, 0F, 24, 7, 4); - Damp1.setRotationPoint(-50F, -1.5F, -2F); - Damp1.setTextureSize(64, 32); - Damp1.mirror = true; - setRotation(Damp1, 0F, 0F, 0F); - Damp2 = new ModelRenderer(this, 64, 42); - Damp2.addBox(0F, 0F, 0F, 24, 4, 7); - Damp2.setRotationPoint(-50F, 0F, -3.5F); - Damp2.setTextureSize(64, 32); - Damp2.mirror = true; - setRotation(Damp2, 0F, 0F, 0F); - Damp3 = new ModelRenderer(this, 64, 30); - Damp3.addBox(0F, 0F, 0F, 24, 6, 6); - Damp3.setRotationPoint(-50F, -1F, -3F); - Damp3.setTextureSize(64, 32); - Damp3.mirror = true; - setRotation(Damp3, 0F, 0F, 0F); - DampFront = new ModelRenderer(this, 64, 22); - DampFront.addBox(0F, 0F, 0F, 2, 4, 4); - DampFront.setRotationPoint(-51.1F, 0F, -2F); - DampFront.setTextureSize(64, 32); - DampFront.mirror = true; - setRotation(DampFront, 0F, 0F, 0F); - EmitterRod = new ModelRenderer(this, 64, 18); - EmitterRod.addBox(0F, 0F, 0F, 4, 2, 2); - EmitterRod.setRotationPoint(-55F, 1F, -1F); - EmitterRod.setTextureSize(64, 32); - EmitterRod.mirror = true; - setRotation(EmitterRod, 0F, 0F, 0F); - EmitterCrystal = new ModelRenderer(this, 76, 24); - EmitterCrystal.addBox(0F, -1.5F, -1.5F, 3, 3, 3); - EmitterCrystal.setRotationPoint(-57F, 2F, 0F); - EmitterCrystal.setTextureSize(64, 32); - EmitterCrystal.mirror = true; - setRotation(EmitterCrystal, 0.7853982F, 0F, 0F); - EmitterClamp1 = new ModelRenderer(this, 88, 27); - EmitterClamp1.addBox(-5F, 0F, 0F, 5, 2, 1); - EmitterClamp1.setRotationPoint(-50F, 1F, -0.5F); - EmitterClamp1.setTextureSize(64, 32); - EmitterClamp1.mirror = true; - setRotation(EmitterClamp1, 0F, 0F, 1.047198F); - EmitterClamp2 = new ModelRenderer(this, 88, 24); - EmitterClamp2.addBox(-5F, -2F, 0F, 5, 2, 1); - EmitterClamp2.setRotationPoint(-50F, 3F, -0.5F); - EmitterClamp2.setTextureSize(64, 32); - EmitterClamp2.mirror = true; - setRotation(EmitterClamp2, 0F, 0F, -1.047198F); - EmitterClamp3 = new ModelRenderer(this, 100, 27); - EmitterClamp3.addBox(-5F, 0F, 0F, 5, 1, 2); - EmitterClamp3.setRotationPoint(-50F, 1.5F, -1F); - EmitterClamp3.setTextureSize(64, 32); - EmitterClamp3.mirror = true; - setRotation(EmitterClamp3, 0F, -1.047198F, 0F); - EmitterClamp4 = new ModelRenderer(this, 100, 24); - EmitterClamp4.addBox(-5F, 0F, -2F, 5, 1, 2); - EmitterClamp4.setRotationPoint(-50F, 1.5F, 1F); - EmitterClamp4.setTextureSize(64, 32); - EmitterClamp4.mirror = true; - setRotation(EmitterClamp4, 0F, 1.047198F, 0F); - EmitterClamp5 = new ModelRenderer(this, 76, 22); - EmitterClamp5.addBox(-6F, 0F, 0F, 7, 1, 1); - EmitterClamp5.setRotationPoint(-53F, -4F, -0.5F); - EmitterClamp5.setTextureSize(64, 32); - EmitterClamp5.mirror = true; - setRotation(EmitterClamp5, 0F, 0F, -0.5235988F); - EmitterClamp6 = new ModelRenderer(this, 76, 20); - EmitterClamp6.addBox(-6F, -1F, 0F, 7, 1, 1); - EmitterClamp6.setRotationPoint(-53F, 8F, -0.5F); - EmitterClamp6.setTextureSize(64, 32); - EmitterClamp6.mirror = true; - setRotation(EmitterClamp6, 0F, 0F, 0.5235988F); - EmitterClamp7 = new ModelRenderer(this, 92, 22); - EmitterClamp7.addBox(-6F, 0F, 0F, 7, 1, 1); - EmitterClamp7.setRotationPoint(-53F, 1.5F, -6F); - EmitterClamp7.setTextureSize(64, 32); - EmitterClamp7.mirror = true; - setRotation(EmitterClamp7, 0F, 0.5235988F, 0F); - EmitterClamp8 = new ModelRenderer(this, 92, 20); - EmitterClamp8.addBox(-6F, 0F, -1F, 7, 1, 1); - EmitterClamp8.setRotationPoint(-53F, 1.5F, 6F); - EmitterClamp8.setTextureSize(64, 32); - EmitterClamp8.mirror = true; - setRotation(EmitterClamp8, 0F, -0.5235988F, 0F); - PowBox = new ModelRenderer(this, 76, 11); - PowBox.addBox(0F, 0F, 0F, 10, 5, 4); - PowBox.setRotationPoint(4F, 2F, 2.5F); - PowBox.setTextureSize(64, 32); - PowBox.mirror = true; - setRotation(PowBox, 0F, 0F, 0F); - PowPanel = new ModelRenderer(this, 44, 24); - PowPanel.addBox(0F, 0F, 0F, 9, 4, 1); - PowPanel.setRotationPoint(4.5F, 2.5F, 6F); - PowPanel.setTextureSize(64, 32); - PowPanel.mirror = true; - setRotation(PowPanel, 0F, 0F, 0F); - Nix1 = new ModelRenderer(this, 56, 17); - Nix1.addBox(0F, 0F, 0F, 2, 5, 2); - Nix1.setRotationPoint(11F, -3F, 4F); - Nix1.setTextureSize(64, 32); - Nix1.mirror = true; - setRotation(Nix1, 0F, 0F, 0F); - Nix2 = new ModelRenderer(this, 48, 17); - Nix2.addBox(0F, 0F, 0F, 2, 5, 2); - Nix2.setRotationPoint(8F, -3F, 4F); - Nix2.setTextureSize(64, 32); - Nix2.mirror = true; - setRotation(Nix2, 0F, 0F, 0F); - Nix3 = new ModelRenderer(this, 40, 17); - Nix3.addBox(0F, 0F, 0F, 2, 5, 2); - Nix3.setRotationPoint(5F, -3F, 4F); - Nix3.setTextureSize(64, 32); - Nix3.mirror = true; - setRotation(Nix3, 0F, 0F, 0F); - Nix11 = new ModelRenderer(this, 72, 15); - Nix11.addBox(0F, 0F, 0F, 1, 2, 1); - Nix11.setRotationPoint(11.5F, -5F, 4.5F); - Nix11.setTextureSize(64, 32); - Nix11.mirror = true; - setRotation(Nix11, 0F, 0F, 0F); - Nix21 = new ModelRenderer(this, 68, 15); - Nix21.addBox(0F, 0F, 0F, 1, 2, 1); - Nix21.setRotationPoint(8.5F, -5F, 4.5F); - Nix21.setTextureSize(64, 32); - Nix21.mirror = true; - setRotation(Nix21, 0F, 0F, 0F); - Nix31 = new ModelRenderer(this, 64, 15); - Nix31.addBox(0F, 0F, 0F, 1, 2, 1); - Nix31.setRotationPoint(5.5F, -5F, 4.5F); - Nix31.setTextureSize(64, 32); - Nix31.mirror = true; - setRotation(Nix31, 0F, 0F, 0F); - Nix12 = new ModelRenderer(this, 72, 10); - Nix12.addBox(0F, 0F, 0F, 1, 4, 1); - Nix12.setRotationPoint(11.5F, -1.5F, 4.5F); - Nix12.setTextureSize(64, 32); - Nix12.mirror = true; - setRotation(Nix12, 0F, 0F, 0F); - Nix22 = new ModelRenderer(this, 68, 10); - Nix22.addBox(0F, 0F, 0F, 1, 4, 1); - Nix22.setRotationPoint(8.5F, -1.5F, 4.5F); - Nix22.setTextureSize(64, 32); - Nix22.mirror = true; - setRotation(Nix22, 0F, 0F, 0F); - Nix32 = new ModelRenderer(this, 64, 10); - Nix32.addBox(0F, 0F, 0F, 1, 4, 1); - Nix32.setRotationPoint(5.5F, -1.5F, 4.5F); - Nix32.setTextureSize(64, 32); - Nix32.mirror = true; - setRotation(Nix32, 0F, 0F, 0F); - Pylon = new ModelRenderer(this, 114, 24); - Pylon.addBox(0F, 0F, 0F, 2, 2, 4); - Pylon.setRotationPoint(-35F, 1F, 3.5F); - Pylon.setTextureSize(64, 32); - Pylon.mirror = true; - setRotation(Pylon, 0F, 0F, 0F); - Wire1 = new ModelRenderer(this, 82, 0); - Wire1.addBox(0F, 0F, 0F, 20, 0, 3); - Wire1.setRotationPoint(-24F, 7F, 4F); - Wire1.setTextureSize(64, 32); - Wire1.mirror = true; - setRotation(Wire1, 0F, 0F, 0F); - Wire2 = new ModelRenderer(this, 104, 3); - Wire2.addBox(0F, 0F, 0F, 9, 0, 3); - Wire2.setRotationPoint(-4F, 7F, 4F); - Wire2.setTextureSize(64, 32); - Wire2.mirror = true; - setRotation(Wire2, 0F, 0F, -0.4363323F); - Wire3 = new ModelRenderer(this, 100, 6); - Wire3.addBox(-11F, 0F, 0F, 11, 0, 3); - Wire3.setRotationPoint(-24F, 7F, 4F); - Wire3.setTextureSize(64, 32); - Wire3.mirror = true; - setRotation(Wire3, 0F, 0F, 0.4363323F); - PowPylon = new ModelRenderer(this, 108, 17); - PowPylon.addBox(0F, 0F, 0F, 2, 2, 5); - PowPylon.setRotationPoint(2.5F, 3F, 2.5F); - PowPylon.setTextureSize(64, 32); - PowPylon.mirror = true; - setRotation(PowPylon, 0F, 0F, 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); - Muzzle1.render(f5); - Barrel1.render(f5); - Barrel2.render(f5); - Grip.render(f5); - Front1.render(f5); - Front2.render(f5); - Body.render(f5); - Top.render(f5); - GripBottom.render(f5); - Handle.render(f5); - HandleBack.render(f5); - Frame1.render(f5); - Frame2.render(f5); - Frame3.render(f5); - Trigger.render(f5); - BackPlate1.render(f5); - Back.render(f5); - BackPlate2.render(f5); - Pump1.render(f5); - Pump2.render(f5); - BodyPlate.render(f5); - Muz1.render(f5); - Muz2.render(f5); - Muz3.render(f5); - Damp1.render(f5); - Damp2.render(f5); - Damp3.render(f5); - DampFront.render(f5); - EmitterRod.render(f5); - EmitterCrystal.render(f5); - EmitterClamp1.render(f5); - EmitterClamp2.render(f5); - EmitterClamp3.render(f5); - EmitterClamp4.render(f5); - EmitterClamp5.render(f5); - EmitterClamp6.render(f5); - EmitterClamp7.render(f5); - EmitterClamp8.render(f5); - PowBox.render(f5); - PowPanel.render(f5); - Nix11.render(f5); - Nix21.render(f5); - Nix31.render(f5); - Nix12.render(f5); - Nix22.render(f5); - Nix32.render(f5); - GL11.glEnable(GL11.GL_BLEND); - //GL11.glDisable(GL11.GL_ALPHA_TEST); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - Nix1.render(f5); - Nix2.render(f5); - Nix3.render(f5); - GL11.glDisable(GL11.GL_BLEND); - Pylon.render(f5); - Wire1.render(f5); - Wire2.render(f5); - Wire3.render(f5); - PowPylon.render(f5); - } - - public void renderAnim(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, float tran) { - - Pump1.offsetX += tran; - Pump2.offsetX += tran; - - render(entity, f, f1, f2, f3, f4, f5); - - Pump1.offsetX -= tran; - Pump2.offsetX -= tran; - } - - 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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelBFLauncher.java b/src/main/java/com/hbm/render/model/ModelBFLauncher.java deleted file mode 100644 index dadb9847e..000000000 --- a/src/main/java/com/hbm/render/model/ModelBFLauncher.java +++ /dev/null @@ -1,261 +0,0 @@ -// Date: 14.11.2016 11:46:56 -// 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.model; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunBase; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; - -public class ModelBFLauncher extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape27; - ModelRenderer Shape28; - ModelRenderer Shape30; - ModelRenderer Shape31; - ModelRenderer Shape32; - ModelRenderer Shape33; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - ModelRenderer Shape20; - - public ModelBFLauncher() { - textureWidth = 128; - textureHeight = 64; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 40, 2, 4); - Shape1.setRotationPoint(-20F, 0F, 0F); - Shape1.setTextureSize(128, 64); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 6); - Shape2.addBox(0F, 0F, 0F, 6, 2, 2); - Shape2.setRotationPoint(-19F, 2F, 1F); - Shape2.setTextureSize(128, 64); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 10); - Shape3.addBox(0F, 0F, 0F, 1, 4, 1); - Shape3.setRotationPoint(-12F, 2F, 1.5F); - Shape3.setTextureSize(128, 64); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 16, 6); - Shape4.addBox(0F, 0F, 0F, 6, 1, 4); - Shape4.setRotationPoint(-10F, 2F, 0F); - Shape4.setTextureSize(128, 64); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 15); - Shape5.addBox(0F, 0F, 0F, 2, 3, 1); - Shape5.setRotationPoint(-7F, 3F, 1.5F); - Shape5.setTextureSize(128, 64); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 4, 10); - Shape6.addBox(0F, 0F, 0F, 3, 3, 1); - Shape6.setRotationPoint(-10F, 3F, 1.5F); - Shape6.setTextureSize(128, 64); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 12, 10); - Shape7.addBox(-1F, 0F, 0F, 1, 2, 1); - Shape7.setRotationPoint(-7F, 3F, 1.5F); - Shape7.setTextureSize(128, 64); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0.5235988F); - Shape8 = new ModelRenderer(this, 36, 6); - Shape8.addBox(0F, 0F, 0F, 10, 1, 4); - Shape8.setRotationPoint(-3F, 2F, 0F); - Shape8.setTextureSize(128, 64); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 64, 6); - Shape9.addBox(0F, 0F, 0F, 2, 3, 2); - Shape9.setRotationPoint(7F, 2F, 1F); - Shape9.setTextureSize(128, 64); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 88, 0); - Shape10.addBox(0F, 0F, 0F, 3, 4, 4); - Shape10.setRotationPoint(17F, -4F, 0F); - Shape10.setTextureSize(128, 64); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 72, 6); - Shape11.addBox(0F, 0F, 0F, 2, 3, 1); - Shape11.setRotationPoint(18F, -7F, 0F); - Shape11.setTextureSize(128, 64); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 78, 6); - Shape12.addBox(0F, 0F, 0F, 2, 3, 1); - Shape12.setRotationPoint(18F, -7F, 3F); - Shape12.setTextureSize(128, 64); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0F); - Shape27 = new ModelRenderer(this, 18, 27); - Shape27.addBox(0F, 0F, 0F, 2, 5, 1); - Shape27.setRotationPoint(13F, -5F, 1.5F); - Shape27.setTextureSize(128, 64); - Shape27.mirror = true; - setRotation(Shape27, 0F, 0F, 0F); - Shape28 = new ModelRenderer(this, 84, 6); - Shape28.addBox(0F, 0F, 0F, 1, 3, 1); - Shape28.setRotationPoint(16F, -3F, 1.5F); - Shape28.setTextureSize(128, 64); - Shape28.mirror = true; - setRotation(Shape28, 0F, 0F, 0F); - Shape30 = new ModelRenderer(this, 30, 15); - Shape30.addBox(0F, 0F, 0F, 12, 2, 2); - Shape30.setRotationPoint(-7F, -1F, 4F); - Shape30.setTextureSize(128, 64); - Shape30.mirror = true; - setRotation(Shape30, 0F, 0F, 0F); - Shape31 = new ModelRenderer(this, 44, 19); - Shape31.addBox(0F, 0F, 0F, 14, 1, 1); - Shape31.setRotationPoint(5F, -0.5F, 4.5F); - Shape31.setTextureSize(128, 64); - Shape31.mirror = true; - setRotation(Shape31, 0F, 0F, 0F); - Shape32 = new ModelRenderer(this, 12, 27); - Shape32.addBox(0F, 0F, 0F, 1, 1, 1); - Shape32.setRotationPoint(18F, -0.5F, 3.5F); - Shape32.setTextureSize(128, 64); - Shape32.mirror = true; - setRotation(Shape32, 0F, 0F, 0F); - Shape33 = new ModelRenderer(this, 24, 29); - Shape33.addBox(0F, 0F, 0F, 31, 1, 2); - Shape33.setRotationPoint(-18F, -1F, 1F); - Shape33.setTextureSize(128, 64); - Shape33.mirror = true; - setRotation(Shape33, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 0, 34); - Shape13.addBox(0F, 0F, 0F, 22, 5, 3); - Shape13.setRotationPoint(-15F, -6F, 0.5F); - Shape13.setTextureSize(128, 64); - Shape13.mirror = true; - setRotation(Shape13, 0F, 0F, 0F); - Shape14 = new ModelRenderer(this, 0, 42); - Shape14.addBox(0F, 0F, 0F, 22, 3, 5); - Shape14.setRotationPoint(-15F, -5F, -0.5F); - Shape14.setTextureSize(128, 64); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, 0F); - Shape15 = new ModelRenderer(this, 0, 50); - Shape15.addBox(0F, 0F, 0F, 1, 3, 3); - Shape15.setRotationPoint(-16F, -5F, 0.5F); - Shape15.setTextureSize(128, 64); - Shape15.mirror = true; - setRotation(Shape15, 0F, 0F, 0F); - Shape16 = new ModelRenderer(this, 8, 50); - Shape16.addBox(0F, 0F, 0F, 2, 3, 3); - Shape16.setRotationPoint(7F, -5F, 0.5F); - Shape16.setTextureSize(128, 64); - Shape16.mirror = true; - setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 18, 50); - Shape17.addBox(0F, 0F, 0F, 4, 1, 3); - Shape17.setRotationPoint(9F, -2F, 0.5F); - Shape17.setTextureSize(128, 64); - Shape17.mirror = true; - setRotation(Shape17, 0F, 0F, 0F); - Shape18 = new ModelRenderer(this, 32, 50); - Shape18.addBox(0F, 0F, 0F, 4, 1, 3); - Shape18.setRotationPoint(9F, -6F, 0.5F); - Shape18.setTextureSize(128, 64); - Shape18.mirror = true; - setRotation(Shape18, 0F, 0F, 0F); - Shape19 = new ModelRenderer(this, 46, 50); - Shape19.addBox(0F, 0F, 0F, 4, 3, 1); - Shape19.setRotationPoint(9F, -5F, -0.5F); - Shape19.setTextureSize(128, 64); - Shape19.mirror = true; - setRotation(Shape19, 0F, 0F, 0F); - Shape20 = new ModelRenderer(this, 56, 50); - Shape20.addBox(0F, 0F, 0F, 4, 3, 1); - Shape20.setRotationPoint(9F, -5F, 3.5F); - Shape20.setTextureSize(128, 64); - Shape20.mirror = true; - setRotation(Shape20, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ItemStack item) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape2.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape6.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape7.render(f5); - Shape8.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape9.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape27.render(f5); - Shape28.render(f5); - Shape30.render(f5); - Shape31.render(f5); - Shape32.render(f5); - Shape33.render(f5); - - int ammo = ItemGunBase.getMag(item); - if(ammo > 0) { - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - Shape20.render(f5); - } - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - 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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelBaleflare.java b/src/main/java/com/hbm/render/model/ModelBaleflare.java deleted file mode 100644 index 1449240eb..000000000 --- a/src/main/java/com/hbm/render/model/ModelBaleflare.java +++ /dev/null @@ -1,114 +0,0 @@ -// Date: 14.11.2016 12:21:58 -// 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.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelBaleflare extends ModelBase { - // fields - ModelRenderer Shape9; - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - - public ModelBaleflare() { - textureWidth = 128; - textureHeight = 32; - - Shape9 = new ModelRenderer(this, 0, 0); - Shape9.addBox(0F, 0F, 0F, 22, 5, 3); - Shape9.setRotationPoint(-11F, -2.5F, -1.5F); - Shape9.setTextureSize(128, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape1 = new ModelRenderer(this, 0, 8); - Shape1.addBox(0F, 0F, 0F, 22, 3, 5); - Shape1.setRotationPoint(-11F, -1.5F, -2.5F); - Shape1.setTextureSize(128, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 16); - Shape2.addBox(0F, 0F, 0F, 1, 3, 3); - Shape2.setRotationPoint(-12F, -1.5F, -1.5F); - Shape2.setTextureSize(128, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 8, 16); - Shape3.addBox(0F, 0F, 0F, 2, 3, 3); - Shape3.setRotationPoint(11F, -1.5F, -1.5F); - Shape3.setTextureSize(128, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 18, 16); - Shape4.addBox(0F, 0F, 0F, 4, 1, 3); - Shape4.setRotationPoint(13F, 1.5F, -1.5F); - Shape4.setTextureSize(128, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 32, 16); - Shape5.addBox(0F, 0F, 0F, 4, 1, 3); - Shape5.setRotationPoint(13F, -2.5F, -1.5F); - Shape5.setTextureSize(128, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 46, 16); - Shape6.addBox(0F, 0F, 0F, 4, 3, 1); - Shape6.setRotationPoint(13F, -1.5F, -2.5F); - Shape6.setTextureSize(128, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 56, 16); - Shape7.addBox(0F, 0F, 0F, 4, 3, 1); - Shape7.setRotationPoint(13F, -1.5F, 1.5F); - Shape7.setTextureSize(128, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - } - - @Override - 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); - Shape9.render(f5); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - } - - public void renderAll(float f5) { - Shape9.render(f5); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - 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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelCalBarrel.java b/src/main/java/com/hbm/render/model/ModelCalBarrel.java deleted file mode 100644 index 81bf3b31e..000000000 --- a/src/main/java/com/hbm/render/model/ModelCalBarrel.java +++ /dev/null @@ -1,108 +0,0 @@ -// Date: 24.10.2018 09:56:30 -// 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.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelCalBarrel extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - - public ModelCalBarrel() { - textureWidth = 128; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 30, 6, 3); - Shape1.setRotationPoint(-30F, 0F, -1.5F); - Shape1.setTextureSize(128, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 19); - Shape2.addBox(0F, 0F, 0F, 30, 3, 6); - Shape2.setRotationPoint(-30F, 1.5F, -3F); - Shape2.setTextureSize(128, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 9); - Shape3.addBox(0F, 0F, 0F, 30, 5, 5); - Shape3.setRotationPoint(-30F, 0.5F, -2.5F); - Shape3.setTextureSize(128, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 28); - Shape4.addBox(0F, 0F, 0F, 1, 2, 2); - Shape4.setRotationPoint(-30.5F, 0.5F, -1F); - Shape4.setTextureSize(128, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 6, 28); - Shape5.addBox(0F, 0F, 0F, 3, 2, 2); - Shape5.setRotationPoint(-33F, 3.5F, -1F); - Shape5.setTextureSize(128, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 66, 0); - Shape6.addBox(0F, 0F, 0F, 4, 2, 4); - Shape6.setRotationPoint(-20F, -1F, -2F); - Shape6.setTextureSize(128, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 82, 0); - Shape7.addBox(0F, -1F, -4F, 4, 1, 4); - Shape7.setRotationPoint(-20F, -1F, 2F); - Shape7.setTextureSize(128, 32); - Shape7.mirror = true; - setRotation(Shape7, -0.3490659F, 0F, 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); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - } - - public void renderAll(float f5) { - GL11.glPushMatrix(); - GL11.glTranslated(0, 1D/16D * 1, 0); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - GL11.glPopMatrix(); - } - - 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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelCalDualStock.java b/src/main/java/com/hbm/render/model/ModelCalDualStock.java deleted file mode 100644 index a9b94fdfd..000000000 --- a/src/main/java/com/hbm/render/model/ModelCalDualStock.java +++ /dev/null @@ -1,243 +0,0 @@ -// Date: 24.10.2018 10:31:22 -// 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.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelCalDualStock extends ModelBase { - // fields - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - ModelRenderer Shape20; - ModelRenderer Shape21; - ModelRenderer Shape22; - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - - public ModelCalDualStock() { - textureWidth = 64; - textureHeight = 32; - - Shape8 = new ModelRenderer(this, 0, 0); - Shape8.addBox(0F, 0F, 0F, 15, 6, 3); - Shape8.setRotationPoint(0F, 1F, -1.5F); - Shape8.setTextureSize(64, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 0, 9); - Shape9.addBox(0F, 0F, 0F, 6, 1, 2); - Shape9.setRotationPoint(7F, 7F, -1F); - Shape9.setTextureSize(64, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 0, 12); - Shape10.addBox(0F, 0F, 0F, 2, 5, 2); - Shape10.setRotationPoint(10F, 8F, -1F); - Shape10.setTextureSize(64, 32); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, -0.2617994F); - Shape11 = new ModelRenderer(this, 0, 26); - Shape11.addBox(0F, 0F, 0F, 3, 4, 2); - Shape11.setRotationPoint(19F, 3F, -1F); - Shape11.setTextureSize(64, 32); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 0, 22); - Shape12.addBox(-4F, 0F, 0F, 4, 2, 2); - Shape12.setRotationPoint(19F, 3F, -1F); - Shape12.setTextureSize(64, 32); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, -0.1115358F); - Shape13 = new ModelRenderer(this, 10, 28); - Shape13.addBox(-5F, -2F, 0F, 5, 2, 2); - Shape13.setRotationPoint(19F, 7F, -1F); - Shape13.setTextureSize(64, 32); - Shape13.mirror = true; - setRotation(Shape13, 0F, 0F, 0.2617994F); - Shape14 = new ModelRenderer(this, 12, 23); - Shape14.addBox(0F, 0F, 0F, 1, 3, 2); - Shape14.setRotationPoint(22F, 3F, -1F); - Shape14.setTextureSize(64, 32); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, 0.3490659F); - Shape15 = new ModelRenderer(this, 42, 0); - Shape15.addBox(0F, 0F, 0F, 3, 5, 8); - Shape15.setRotationPoint(3F, 4F, -9.5F); - Shape15.setTextureSize(64, 32); - Shape15.mirror = true; - setRotation(Shape15, 0F, 0F, 0F); - Shape16 = new ModelRenderer(this, 36, 0); - Shape16.addBox(0F, 0F, 0F, 2, 1, 1); - Shape16.setRotationPoint(3.5F, 3.5F, -4F); - Shape16.setTextureSize(64, 32); - Shape16.mirror = true; - setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 36, 0); - Shape17.addBox(0F, 0F, 0F, 2, 1, 1); - Shape17.setRotationPoint(3.5F, 2.7F, -3.5F); - Shape17.setTextureSize(64, 32); - Shape17.mirror = true; - setRotation(Shape17, 0F, 0F, 0F); - Shape18 = new ModelRenderer(this, 36, 0); - Shape18.addBox(0F, 0F, 0F, 2, 1, 1); - Shape18.setRotationPoint(3.5F, 2.2F, -2.8F); - Shape18.setTextureSize(64, 32); - Shape18.mirror = true; - setRotation(Shape18, 0F, 0F, 0F); - Shape19 = new ModelRenderer(this, 36, 0); - Shape19.addBox(0F, 0F, 0F, 2, 1, 1); - Shape19.setRotationPoint(3.5F, 1.8F, -2F); - Shape19.setTextureSize(64, 32); - Shape19.mirror = true; - setRotation(Shape19, 0F, 0F, 0F); - Shape20 = new ModelRenderer(this, 16, 9); - Shape20.addBox(0F, 0F, 0F, 6, 1, 4); - Shape20.setRotationPoint(7F, 4F, -2F); - Shape20.setTextureSize(64, 32); - Shape20.mirror = true; - setRotation(Shape20, 0F, 0F, 0F); - Shape21 = new ModelRenderer(this, 8, 12); - Shape21.addBox(0F, 0F, 0F, 2, 1, 1); - Shape21.setRotationPoint(11F, 0F, 0F); - Shape21.setTextureSize(64, 32); - Shape21.mirror = true; - setRotation(Shape21, 0F, 0F, 0F); - Shape22 = new ModelRenderer(this, 8, 14); - Shape22.addBox(0F, 0F, 0F, 2, 1, 2); - Shape22.setRotationPoint(11F, -1F, 0F); - Shape22.setTextureSize(64, 32); - Shape22.mirror = true; - setRotation(Shape22, -0.3490659F, 0F, 0F); - Shape1 = new ModelRenderer(this, 42, 0); - Shape1.addBox(0F, 0F, 0F, 3, 5, 8); - Shape1.setRotationPoint(3F, 4F, 1.5F); - Shape1.setTextureSize(64, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 36, 0); - Shape2.addBox(0F, 0F, 0F, 2, 1, 1); - Shape2.setRotationPoint(3.5F, 3.5F, 3F); - Shape2.setTextureSize(64, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 36, 0); - Shape3.addBox(0F, 0F, 0F, 2, 1, 1); - Shape3.setRotationPoint(3.5F, 2.7F, 2.5F); - Shape3.setTextureSize(64, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 36, 0); - Shape4.addBox(0F, 0F, 0F, 2, 1, 1); - Shape4.setRotationPoint(3.5F, 2.2F, 1.8F); - Shape4.setTextureSize(64, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 36, 0); - Shape5.addBox(0F, 0F, 0F, 2, 1, 1); - Shape5.setRotationPoint(3.5F, 1.8F, 1F); - Shape5.setTextureSize(64, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 18, 17); - Shape6.addBox(0F, 0F, 0F, 1, 5, 6); - Shape6.setRotationPoint(-1F, 1F, -3F); - Shape6.setTextureSize(64, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 32, 13); - Shape7.addBox(0F, 0F, 0F, 1, 4, 15); - Shape7.setRotationPoint(-2F, 2F, -7.5F); - Shape7.setTextureSize(64, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 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); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - Shape22.render(f5); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - } - - public void renderAll(float f5) { - GL11.glPushMatrix(); - GL11.glTranslated(1D/16D * 2, 0, 0); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - Shape22.render(f5); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - GL11.glPopMatrix(); - } - - 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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelCalStock.java b/src/main/java/com/hbm/render/model/ModelCalStock.java deleted file mode 100644 index f6902b24c..000000000 --- a/src/main/java/com/hbm/render/model/ModelCalStock.java +++ /dev/null @@ -1,175 +0,0 @@ -// Date: 24.10.2018 10:23:38 -// 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.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelCalStock extends ModelBase { - // fields - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - ModelRenderer Shape20; - ModelRenderer Shape21; - ModelRenderer Shape22; - - public ModelCalStock() { - textureWidth = 64; - textureHeight = 32; - - Shape8 = new ModelRenderer(this, 0, 0); - Shape8.addBox(0F, 0F, 0F, 15, 6, 3); - Shape8.setRotationPoint(0F, 1F, -1.5F); - Shape8.setTextureSize(64, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 0, 9); - Shape9.addBox(0F, 0F, 0F, 6, 1, 2); - Shape9.setRotationPoint(7F, 7F, -1F); - Shape9.setTextureSize(64, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 0, 12); - Shape10.addBox(0F, 0F, 0F, 2, 5, 2); - Shape10.setRotationPoint(10F, 8F, -1F); - Shape10.setTextureSize(64, 32); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, -0.2617994F); - Shape11 = new ModelRenderer(this, 0, 26); - Shape11.addBox(0F, 0F, 0F, 3, 4, 2); - Shape11.setRotationPoint(19F, 3F, -1F); - Shape11.setTextureSize(64, 32); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 0, 22); - Shape12.addBox(-4F, 0F, 0F, 4, 2, 2); - Shape12.setRotationPoint(19F, 3F, -1F); - Shape12.setTextureSize(64, 32); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, -0.1115358F); - Shape13 = new ModelRenderer(this, 10, 28); - Shape13.addBox(-5F, -2F, 0F, 5, 2, 2); - Shape13.setRotationPoint(19F, 7F, -1F); - Shape13.setTextureSize(64, 32); - Shape13.mirror = true; - setRotation(Shape13, 0F, 0F, 0.2617994F); - Shape14 = new ModelRenderer(this, 12, 23); - Shape14.addBox(0F, 0F, 0F, 1, 3, 2); - Shape14.setRotationPoint(22F, 3F, -1F); - Shape14.setTextureSize(64, 32); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, 0.3490659F); - Shape15 = new ModelRenderer(this, 42, 0); - Shape15.addBox(0F, 0F, 0F, 3, 5, 8); - Shape15.setRotationPoint(3F, 4F, -9.5F); - Shape15.setTextureSize(64, 32); - Shape15.mirror = true; - setRotation(Shape15, 0F, 0F, 0F); - Shape16 = new ModelRenderer(this, 36, 0); - Shape16.addBox(0F, 0F, 0F, 2, 1, 1); - Shape16.setRotationPoint(3.5F, 3.5F, -4F); - Shape16.setTextureSize(64, 32); - Shape16.mirror = true; - setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 36, 0); - Shape17.addBox(0F, 0F, 0F, 2, 1, 1); - Shape17.setRotationPoint(3.5F, 2.7F, -3.5F); - Shape17.setTextureSize(64, 32); - Shape17.mirror = true; - setRotation(Shape17, 0F, 0F, 0F); - Shape18 = new ModelRenderer(this, 36, 0); - Shape18.addBox(0F, 0F, 0F, 2, 1, 1); - Shape18.setRotationPoint(3.5F, 2.2F, -2.8F); - Shape18.setTextureSize(64, 32); - Shape18.mirror = true; - setRotation(Shape18, 0F, 0F, 0F); - Shape19 = new ModelRenderer(this, 36, 0); - Shape19.addBox(0F, 0F, 0F, 2, 1, 1); - Shape19.setRotationPoint(3.5F, 1.8F, -2F); - Shape19.setTextureSize(64, 32); - Shape19.mirror = true; - setRotation(Shape19, 0F, 0F, 0F); - Shape20 = new ModelRenderer(this, 16, 9); - Shape20.addBox(0F, 0F, 0F, 6, 1, 4); - Shape20.setRotationPoint(7F, 4F, -2F); - Shape20.setTextureSize(64, 32); - Shape20.mirror = true; - setRotation(Shape20, 0F, 0F, 0F); - Shape21 = new ModelRenderer(this, 8, 12); - Shape21.addBox(0F, 0F, 0F, 2, 1, 1); - Shape21.setRotationPoint(11F, 0F, 0F); - Shape21.setTextureSize(64, 32); - Shape21.mirror = true; - setRotation(Shape21, 0F, 0F, 0F); - Shape22 = new ModelRenderer(this, 8, 14); - Shape22.addBox(0F, 0F, 0F, 2, 1, 2); - Shape22.setRotationPoint(11F, -1F, 0F); - Shape22.setTextureSize(64, 32); - Shape22.mirror = true; - setRotation(Shape22, -0.3490659F, 0F, 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); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - Shape22.render(f5); - } - - public void renderAll(float f5) { - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - Shape22.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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelCryolator.java b/src/main/java/com/hbm/render/model/ModelCryolator.java deleted file mode 100644 index e73a18fca..000000000 --- a/src/main/java/com/hbm/render/model/ModelCryolator.java +++ /dev/null @@ -1,417 +0,0 @@ -// Date: 26.11.2016 20:13:04 -// 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.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelCryolator extends ModelBase { - // fields - ModelRenderer Body; - ModelRenderer Barrel1; - ModelRenderer Barrel2; - ModelRenderer BarrelBack; - ModelRenderer BarrelNozzle; - ModelRenderer TankF1; - ModelRenderer TankF2; - ModelRenderer TankF3; - ModelRenderer TankB1; - ModelRenderer TankB2; - ModelRenderer TankB3; - ModelRenderer Drum1; - ModelRenderer Drum2; - ModelRenderer BodyBACK; - ModelRenderer PipeLPlate; - ModelRenderer BodyBottom; - ModelRenderer Handle; - ModelRenderer Trigger; - ModelRenderer CoolingBlock; - ModelRenderer BodyCenter; - ModelRenderer PipeRPlate; - ModelRenderer StockTop; - ModelRenderer StockFront; - ModelRenderer StockBack; - ModelRenderer StockBottom; - ModelRenderer PipeLPlateB; - ModelRenderer PipeRPlateB; - ModelRenderer StockConnector; - ModelRenderer PipeTL; - ModelRenderer PipeBL; - ModelRenderer PipeTR; - ModelRenderer PipeBR; - ModelRenderer PipeL; - ModelRenderer PipiR; - ModelRenderer ConnectorFront; - ModelRenderer ConnectorBFront; - ModelRenderer ConnectorBBack; - ModelRenderer Connector; - ModelRenderer ConnectorStrut; - ModelRenderer PipeLarge; - ModelRenderer PipeLargeBack; - ModelRenderer PipiLargeConnector; - ModelRenderer PlateFront; - ModelRenderer ScaffoldFront; - ModelRenderer ScaffoldBottom; - ModelRenderer ScaffoldBack; - - public ModelCryolator() { - textureWidth = 128; - textureHeight = 64; - - Body = new ModelRenderer(this, 0, 6); - Body.addBox(0F, 0F, 0F, 15, 2, 3); - Body.setRotationPoint(-12F, 0F, -1.5F); - Body.setTextureSize(128, 64); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - Barrel1 = new ModelRenderer(this, 0, 57); - Barrel1.addBox(0F, 0F, 0F, 2, 4, 3); - Barrel1.setRotationPoint(-15F, 0F, -1.5F); - Barrel1.setTextureSize(128, 64); - Barrel1.mirror = true; - setRotation(Barrel1, 0F, 0F, 0F); - Barrel2 = new ModelRenderer(this, 10, 57); - Barrel2.addBox(0F, 0F, 0F, 2, 3, 4); - Barrel2.setRotationPoint(-15F, 0.5F, -2F); - Barrel2.setTextureSize(128, 64); - Barrel2.mirror = true; - setRotation(Barrel2, 0F, 0F, 0F); - BarrelBack = new ModelRenderer(this, 0, 51); - BarrelBack.addBox(0F, 0F, 0F, 1, 3, 3); - BarrelBack.setRotationPoint(-13F, 0.5F, -1.5F); - BarrelBack.setTextureSize(128, 64); - BarrelBack.mirror = true; - setRotation(BarrelBack, 0F, 0F, 0F); - BarrelNozzle = new ModelRenderer(this, 0, 49); - BarrelNozzle.addBox(0F, 0F, 0F, 1, 1, 1); - BarrelNozzle.setRotationPoint(-15.5F, 0.5F, -0.5F); - BarrelNozzle.setTextureSize(128, 64); - BarrelNozzle.mirror = true; - setRotation(BarrelNozzle, 0F, 0F, 0F); - TankF1 = new ModelRenderer(this, 22, 55); - TankF1.addBox(0F, 0F, 0F, 4, 5, 4); - TankF1.setRotationPoint(-10.5F, 2F, -2F); - TankF1.setTextureSize(128, 64); - TankF1.mirror = true; - setRotation(TankF1, 0F, 0F, 0F); - TankF2 = new ModelRenderer(this, 38, 56); - TankF2.addBox(0F, 0F, 0F, 6, 4, 4); - TankF2.setRotationPoint(-11.5F, 2.5F, -2F); - TankF2.setTextureSize(128, 64); - TankF2.mirror = true; - setRotation(TankF2, 0F, 0F, 0F); - TankF3 = new ModelRenderer(this, 58, 55); - TankF3.addBox(0F, 0F, 0F, 4, 4, 5); - TankF3.setRotationPoint(-10.5F, 2.5F, -2.5F); - TankF3.setTextureSize(128, 64); - TankF3.mirror = true; - setRotation(TankF3, 0F, 0F, 0F); - TankB1 = new ModelRenderer(this, 8, 52); - TankB1.addBox(0F, 0F, 0F, 4, 2, 3); - TankB1.setRotationPoint(-5F, 3F, -1.5F); - TankB1.setTextureSize(128, 64); - TankB1.mirror = true; - setRotation(TankB1, 0F, 0F, 0F); - TankB2 = new ModelRenderer(this, 0, 42); - TankB2.addBox(0F, 0F, 0F, 2, 4, 3); - TankB2.setRotationPoint(-4F, 2F, -1.5F); - TankB2.setTextureSize(128, 64); - TankB2.mirror = true; - setRotation(TankB2, 0F, 0F, 0F); - TankB3 = new ModelRenderer(this, 0, 36); - TankB3.addBox(0F, 0F, 0F, 2, 2, 4); - TankB3.setRotationPoint(-4F, 3F, -2F); - TankB3.setTextureSize(128, 64); - TankB3.mirror = true; - setRotation(TankB3, 0F, 0F, 0F); - Drum1 = new ModelRenderer(this, 38, 49); - Drum1.addBox(0F, 0F, 0F, 6, 4, 3); - Drum1.setRotationPoint(-2F, 6F, -4F); - Drum1.setTextureSize(128, 64); - Drum1.mirror = true; - setRotation(Drum1, 0F, 0F, 0F); - Drum2 = new ModelRenderer(this, 24, 46); - Drum2.addBox(0F, 0F, 0F, 4, 6, 3); - Drum2.setRotationPoint(-1F, 5F, -4F); - Drum2.setTextureSize(128, 64); - Drum2.mirror = true; - setRotation(Drum2, 0F, 0F, 0F); - BodyBACK = new ModelRenderer(this, 38, 44); - BodyBACK.addBox(0F, 0F, 0F, 7, 2, 3); - BodyBACK.setRotationPoint(3F, 0F, -1.5F); - BodyBACK.setTextureSize(128, 64); - BodyBACK.mirror = true; - setRotation(BodyBACK, 0F, 0F, 0.2617994F); - PipeLPlate = new ModelRenderer(this, 10, 46); - PipeLPlate.addBox(0F, 0F, 0F, 2, 4, 2); - PipeLPlate.setRotationPoint(-1F, 1F, -3F); - PipeLPlate.setTextureSize(128, 64); - PipeLPlate.mirror = true; - setRotation(PipeLPlate, 0F, 0F, 0F); - BodyBottom = new ModelRenderer(this, 26, 41); - BodyBottom.addBox(0F, 0F, 0F, 4, 3, 2); - BodyBottom.setRotationPoint(3F, 2F, -1F); - BodyBottom.setTextureSize(128, 64); - BodyBottom.mirror = true; - setRotation(BodyBottom, 0F, 0F, 0F); - Handle = new ModelRenderer(this, 0, 29); - Handle.addBox(0F, 0F, 0F, 2, 5, 2); - Handle.setRotationPoint(5F, 5F, -1F); - Handle.setTextureSize(128, 64); - Handle.mirror = true; - setRotation(Handle, 0F, 0F, -0.2617994F); - Trigger = new ModelRenderer(this, 10, 43); - Trigger.addBox(0F, 0F, 0F, 3, 2, 1); - Trigger.setRotationPoint(3F, 5F, -0.5F); - Trigger.setTextureSize(128, 64); - Trigger.mirror = true; - setRotation(Trigger, 0F, 0F, 0F); - CoolingBlock = new ModelRenderer(this, 58, 46); - CoolingBlock.addBox(0F, 0F, 0F, 3, 6, 3); - CoolingBlock.setRotationPoint(-1F, 6F, 0.5F); - CoolingBlock.setTextureSize(128, 64); - CoolingBlock.mirror = true; - setRotation(CoolingBlock, 0F, 0F, 0.2617994F); - BodyCenter = new ModelRenderer(this, 12, 33); - BodyCenter.addBox(0F, 0F, 0F, 3, 8, 2); - BodyCenter.setRotationPoint(-0.5F, 2F, -1F); - BodyCenter.setTextureSize(128, 64); - BodyCenter.mirror = true; - setRotation(BodyCenter, 0F, 0F, 0F); - PipeRPlate = new ModelRenderer(this, 0, 21); - PipeRPlate.addBox(0F, 0F, 0F, 2, 6, 2); - PipeRPlate.setRotationPoint(-1F, 1F, 1F); - PipeRPlate.setTextureSize(128, 64); - PipeRPlate.mirror = true; - setRotation(PipeRPlate, 0F, 0F, 0F); - StockTop = new ModelRenderer(this, 38, 39); - StockTop.addBox(0F, 0F, 0F, 6, 2, 3); - StockTop.setRotationPoint(9F, 1.8F, -1.5F); - StockTop.setTextureSize(128, 64); - StockTop.mirror = true; - setRotation(StockTop, 0F, 0F, 0F); - StockFront = new ModelRenderer(this, 30, 34); - StockFront.addBox(0F, 0F, 0F, 2, 5, 2); - StockFront.setRotationPoint(10F, 3F, -1F); - StockFront.setTextureSize(128, 64); - StockFront.mirror = true; - setRotation(StockFront, 0F, 0F, 0F); - StockBack = new ModelRenderer(this, 38, 32); - StockBack.addBox(0F, 0F, 0F, 2, 5, 2); - StockBack.setRotationPoint(13F, 3F, -1F); - StockBack.setTextureSize(128, 64); - StockBack.mirror = true; - setRotation(StockBack, 0F, 0F, 0F); - StockBottom = new ModelRenderer(this, 46, 35); - StockBottom.addBox(0F, 0F, 0F, 1, 2, 2); - StockBottom.setRotationPoint(12F, 6F, -1F); - StockBottom.setTextureSize(128, 64); - StockBottom.mirror = true; - setRotation(StockBottom, 0F, 0F, 0F); - PipeLPlateB = new ModelRenderer(this, 8, 28); - PipeLPlateB.addBox(0F, 0F, 0F, 3, 3, 2); - PipeLPlateB.setRotationPoint(4F, 2F, -3F); - PipeLPlateB.setTextureSize(128, 64); - PipeLPlateB.mirror = true; - setRotation(PipeLPlateB, 0F, 0F, 0F); - PipeRPlateB = new ModelRenderer(this, 8, 23); - PipeRPlateB.addBox(0F, 0F, 0F, 3, 3, 2); - PipeRPlateB.setRotationPoint(4F, 2F, 1F); - PipeRPlateB.setTextureSize(128, 64); - PipeRPlateB.mirror = true; - setRotation(PipeRPlateB, 0F, 0F, 0F); - StockConnector = new ModelRenderer(this, 22, 30); - StockConnector.addBox(0F, -1F, 0F, 5, 1, 3); - StockConnector.setRotationPoint(6F, 5F, -1.5F); - StockConnector.setTextureSize(128, 64); - StockConnector.mirror = true; - setRotation(StockConnector, 0F, 0F, 0.3490659F); - PipeTL = new ModelRenderer(this, 58, 44); - PipeTL.addBox(0F, 0F, 0F, 12, 1, 1); - PipeTL.setRotationPoint(-3F, 2.3F, -2.5F); - PipeTL.setTextureSize(128, 64); - PipeTL.mirror = true; - setRotation(PipeTL, 0F, 0F, 0F); - PipeBL = new ModelRenderer(this, 56, 40); - PipeBL.addBox(0F, 0F, 0F, 10, 1, 1); - PipeBL.setRotationPoint(-1F, 3.7F, -2.5F); - PipeBL.setTextureSize(128, 64); - PipeBL.mirror = true; - setRotation(PipeBL, 0F, 0F, 0F); - PipeTR = new ModelRenderer(this, 56, 42); - PipeTR.addBox(0F, 0F, 0F, 12, 1, 1); - PipeTR.setRotationPoint(-3F, 2.3F, 1.5F); - PipeTR.setTextureSize(128, 64); - PipeTR.mirror = true; - setRotation(PipeTR, 0F, 0F, 0F); - PipeBR = new ModelRenderer(this, 56, 38); - PipeBR.addBox(0F, 0F, 0F, 10, 1, 1); - PipeBR.setRotationPoint(-1F, 3.7F, 1.5F); - PipeBR.setTextureSize(128, 64); - PipeBR.mirror = true; - setRotation(PipeBR, 0F, 0F, 0F); - PipeL = new ModelRenderer(this, 52, 36); - PipeL.addBox(0F, 0F, 0F, 11, 1, 1); - PipeL.setRotationPoint(-13F, 1.5F, -2.5F); - PipeL.setTextureSize(128, 64); - PipeL.mirror = true; - setRotation(PipeL, 0F, 0F, 0F); - PipiR = new ModelRenderer(this, 52, 34); - PipiR.addBox(0F, 0F, 0F, 11, 1, 1); - PipiR.setRotationPoint(-13F, 1.5F, 1.5F); - PipiR.setTextureSize(128, 64); - PipiR.mirror = true; - setRotation(PipiR, 0F, 0F, 0F); - ConnectorFront = new ModelRenderer(this, 0, 17); - ConnectorFront.addBox(0F, 0F, 0F, 3, 3, 1); - ConnectorFront.setRotationPoint(-14.5F, 4F, -0.5F); - ConnectorFront.setTextureSize(128, 64); - ConnectorFront.mirror = true; - setRotation(ConnectorFront, 0F, 0F, 0F); - ConnectorBFront = new ModelRenderer(this, 8, 18); - ConnectorBFront.addBox(0F, 0F, -1F, 1, 4, 1); - ConnectorBFront.setRotationPoint(-14F, 6F, 0.5F); - ConnectorBFront.setTextureSize(128, 64); - ConnectorBFront.mirror = true; - setRotation(ConnectorBFront, -0.7853982F, 0F, 0F); - ConnectorBBack = new ModelRenderer(this, 12, 18); - ConnectorBBack.addBox(0F, 0F, -1F, 1, 4, 1); - ConnectorBBack.setRotationPoint(-3F, 6F, 0.5F); - ConnectorBBack.setTextureSize(128, 64); - ConnectorBBack.mirror = true; - setRotation(ConnectorBBack, -0.7853982F, 0F, 0F); - Connector = new ModelRenderer(this, 18, 26); - Connector.addBox(0F, 3.5F, -1.5F, 12, 2, 2); - Connector.setRotationPoint(-14F, 6F, 0.5F); - Connector.setTextureSize(128, 64); - Connector.mirror = true; - setRotation(Connector, -0.7853982F, 0F, 0F); - ConnectorStrut = new ModelRenderer(this, 18, 24); - ConnectorStrut.addBox(0F, 2F, -1F, 10, 1, 1); - ConnectorStrut.setRotationPoint(-13F, 6F, 0.5F); - ConnectorStrut.setTextureSize(128, 64); - ConnectorStrut.mirror = true; - setRotation(ConnectorStrut, -0.7853982F, 0F, 0F); - PipeLarge = new ModelRenderer(this, 46, 30); - PipeLarge.addBox(0F, 0F, 0F, 8, 2, 2); - PipeLarge.setRotationPoint(-9.5F, 7F, -1F); - PipeLarge.setTextureSize(128, 64); - PipeLarge.mirror = true; - setRotation(PipeLarge, 0F, 0F, 0F); - PipeLargeBack = new ModelRenderer(this, 46, 22); - PipeLargeBack.addBox(0F, 0F, 0F, 2, 7, 1); - PipeLargeBack.setRotationPoint(-4F, 2F, 2F); - PipeLargeBack.setTextureSize(128, 64); - PipeLargeBack.mirror = true; - setRotation(PipeLargeBack, 0F, 0F, 0F); - PipiLargeConnector = new ModelRenderer(this, 40, 23); - PipiLargeConnector.addBox(0F, 0F, 0F, 2, 2, 1); - PipiLargeConnector.setRotationPoint(-4F, 7F, 1F); - PipiLargeConnector.setTextureSize(128, 64); - PipiLargeConnector.mirror = true; - setRotation(PipiLargeConnector, 0F, 0F, 0F); - PlateFront = new ModelRenderer(this, 20, 15); - PlateFront.addBox(0F, 0F, 0F, 1, 4, 5); - PlateFront.setRotationPoint(-13F, 1.5F, -2.5F); - PlateFront.setTextureSize(128, 64); - PlateFront.mirror = true; - setRotation(PlateFront, 0F, 0F, 0.6108652F); - ScaffoldFront = new ModelRenderer(this, 0, 13); - ScaffoldFront.addBox(0F, 0F, 0F, 1, 1, 3); - ScaffoldFront.setRotationPoint(-13F, 7F, -0.5F); - ScaffoldFront.setTextureSize(128, 64); - ScaffoldFront.mirror = true; - setRotation(ScaffoldFront, 0F, 0F, 0F); - ScaffoldBottom = new ModelRenderer(this, 0, 11); - ScaffoldBottom.addBox(0F, 0F, 0F, 8, 1, 1); - ScaffoldBottom.setRotationPoint(-12F, 7F, 1.5F); - ScaffoldBottom.setTextureSize(128, 64); - ScaffoldBottom.mirror = true; - setRotation(ScaffoldBottom, 0F, 0F, 0F); - ScaffoldBack = new ModelRenderer(this, 32, 18); - ScaffoldBack.addBox(0F, 0F, 0F, 1, 5, 1); - ScaffoldBack.setRotationPoint(-5F, 2.5F, 1.5F); - ScaffoldBack.setTextureSize(128, 64); - ScaffoldBack.mirror = true; - setRotation(ScaffoldBack, 0F, 0F, 0F); - } - - @Override - 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); - Body.render(f5); - Barrel1.render(f5); - Barrel2.render(f5); - BarrelBack.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - BarrelNozzle.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - TankF1.render(f5); - TankF2.render(f5); - TankF3.render(f5); - TankB1.render(f5); - TankB2.render(f5); - TankB3.render(f5); - Drum1.render(f5); - Drum2.render(f5); - BodyBACK.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - PipeLPlate.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - BodyBottom.render(f5); - Handle.render(f5); - Trigger.render(f5); - CoolingBlock.render(f5); - BodyCenter.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - PipeRPlate.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - StockTop.render(f5); - StockFront.render(f5); - StockBack.render(f5); - StockBottom.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - PipeLPlateB.render(f5); - PipeRPlateB.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - StockConnector.render(f5); - PipeTL.render(f5); - PipeBL.render(f5); - PipeTR.render(f5); - PipeBR.render(f5); - PipeL.render(f5); - PipiR.render(f5); - ConnectorFront.render(f5); - ConnectorBFront.render(f5); - ConnectorBBack.render(f5); - Connector.render(f5); - ConnectorStrut.render(f5); - PipeLarge.render(f5); - PipeLargeBack.render(f5); - PipiLargeConnector.render(f5); - PlateFront.render(f5); - ScaffoldFront.render(f5); - ScaffoldBottom.render(f5); - ScaffoldBack.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - 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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelDefabricator.java b/src/main/java/com/hbm/render/model/ModelDefabricator.java deleted file mode 100755 index bc156eb79..000000000 --- a/src/main/java/com/hbm/render/model/ModelDefabricator.java +++ /dev/null @@ -1,231 +0,0 @@ -//This File was created with the Minecraft-SMP Modelling Toolbox 2.3.0.0 -// Copyright (C) 2017 Minecraft-SMP.de -// This file is for Flan's Flying Mod Version 4.0.x+ - -// Model: Defabricator -// Model Creator: -// Created on:05.06.2017 - 11:21:40 -// Last changed on: 05.06.2017 - 11:21:40 - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelDefabricator extends ModelBase -{ - int textureX = 128; - int textureY = 64; - ModelRenderer[] modeldefabricatorModel; - - public ModelDefabricator() - { - textureWidth = 128; - textureHeight = 64; - modeldefabricatorModel = new ModelRenderer[40]; - modeldefabricatorModel[0] = new ModelRenderer(this, 1, 1); // Box 0 - modeldefabricatorModel[1] = new ModelRenderer(this, 25, 1); // Box 1 - modeldefabricatorModel[2] = new ModelRenderer(this, 41, 1); // Box 2 - modeldefabricatorModel[3] = new ModelRenderer(this, 57, 1); // Box 3 - modeldefabricatorModel[4] = new ModelRenderer(this, 89, 1); // Box 4 - modeldefabricatorModel[5] = new ModelRenderer(this, 105, 1); // Box 5 - modeldefabricatorModel[6] = new ModelRenderer(this, 1, 9); // Box 6 - modeldefabricatorModel[7] = new ModelRenderer(this, 25, 9); // Box 7 - modeldefabricatorModel[8] = new ModelRenderer(this, 49, 1); // Box 8 - modeldefabricatorModel[9] = new ModelRenderer(this, 57, 9); // Box 9 - modeldefabricatorModel[10] = new ModelRenderer(this, 33, 9); // Box 10 - modeldefabricatorModel[11] = new ModelRenderer(this, 89, 9); // Box 11 - modeldefabricatorModel[12] = new ModelRenderer(this, 113, 9); // Box 12 - modeldefabricatorModel[13] = new ModelRenderer(this, 17, 1); // Box 13 - modeldefabricatorModel[14] = new ModelRenderer(this, 1, 17); // Box 14 - modeldefabricatorModel[15] = new ModelRenderer(this, 17, 17); // Box 15 - modeldefabricatorModel[16] = new ModelRenderer(this, 41, 17); // Box 16 - modeldefabricatorModel[17] = new ModelRenderer(this, 73, 17); // Box 17 - modeldefabricatorModel[18] = new ModelRenderer(this, 97, 17); // Box 18 - modeldefabricatorModel[19] = new ModelRenderer(this, 113, 17); // Box 19 - modeldefabricatorModel[20] = new ModelRenderer(this, 1, 25); // Box 20 - modeldefabricatorModel[21] = new ModelRenderer(this, 9, 25); // Box 21 - modeldefabricatorModel[22] = new ModelRenderer(this, 17, 25); // Box 22 - modeldefabricatorModel[23] = new ModelRenderer(this, 33, 25); // Box 23 - modeldefabricatorModel[24] = new ModelRenderer(this, 49, 25); // Box 24 - modeldefabricatorModel[25] = new ModelRenderer(this, 65, 25); // Box 25 - modeldefabricatorModel[26] = new ModelRenderer(this, 81, 25); // Box 26 - modeldefabricatorModel[27] = new ModelRenderer(this, 97, 1); // Box 27 - modeldefabricatorModel[28] = new ModelRenderer(this, 1, 33); // Box 28 - modeldefabricatorModel[29] = new ModelRenderer(this, 105, 17); // Box 29 - modeldefabricatorModel[30] = new ModelRenderer(this, 89, 25); // Box 30 - modeldefabricatorModel[31] = new ModelRenderer(this, 49, 33); // Box 31 - modeldefabricatorModel[32] = new ModelRenderer(this, 1, 41); // Box 32 - modeldefabricatorModel[33] = new ModelRenderer(this, 89, 25); // Box 33 - modeldefabricatorModel[34] = new ModelRenderer(this, 89, 33); // Box 34 - modeldefabricatorModel[35] = new ModelRenderer(this, 41, 41); // Box 35 - modeldefabricatorModel[36] = new ModelRenderer(this, 105, 25); // Box 36 - modeldefabricatorModel[37] = new ModelRenderer(this, 113, 25); // Box 39 - modeldefabricatorModel[38] = new ModelRenderer(this, 121, 25); // Box 40 - modeldefabricatorModel[39] = new ModelRenderer(this, 57, 41); // Box 41 - - modeldefabricatorModel[0].addBox(0F, 0F, 0F, 5, 2, 3); // Box 0 - modeldefabricatorModel[0].setRotationPoint(0F, 0.5F, -1.5F); - - modeldefabricatorModel[1].addBox(0F, 0F, 0F, 5, 3, 2); // Box 1 - modeldefabricatorModel[1].setRotationPoint(0F, 0F, -1F); - - modeldefabricatorModel[2].addBox(0F, 0F, 0F, 2, 7, 3); // Box 2 - modeldefabricatorModel[2].setRotationPoint(-2F, -2F, -1.5F); - - modeldefabricatorModel[3].addBox(0F, 0F, 0F, 11, 1, 3); // Box 3 - modeldefabricatorModel[3].setRotationPoint(0F, -2F, -1.5F); - - modeldefabricatorModel[4].addBox(0F, 0F, 0F, 1, 3, 3); // Box 4 - modeldefabricatorModel[4].setRotationPoint(10F, -1F, -1.5F); - - modeldefabricatorModel[5].addBox(0F, 0F, 0F, 6, 1, 2); // Box 5 - modeldefabricatorModel[5].setRotationPoint(0F, 4F, -1F); - - modeldefabricatorModel[6].addBox(0F, -1F, 0F, 6, 1, 2); // Box 6 - modeldefabricatorModel[6].setRotationPoint(6F, 5F, -1F); - modeldefabricatorModel[6].rotateAngleZ = -0.61086524F; - - modeldefabricatorModel[7].addBox(0F, 0F, 0F, 1, 2, 2); // Box 7 - modeldefabricatorModel[7].setRotationPoint(5F, 0.5F, -1F); - - modeldefabricatorModel[8].addBox(0F, 0F, 0F, 4, 1, 1); // Box 8 - modeldefabricatorModel[8].setRotationPoint(6F, 1F, -0.5F); - - modeldefabricatorModel[9].addBox(0F, 0F, 0F, 12, 1, 2); // Box 9 - modeldefabricatorModel[9].setRotationPoint(11F, 0F, -1F); - - modeldefabricatorModel[10].addBox(0F, 0F, 0F, 1, 6, 2); // Box 10 - modeldefabricatorModel[10].setRotationPoint(22F, -6F, -1F); - - modeldefabricatorModel[11].addBox(0F, 0F, 0F, 8, 2, 2); // Box 11 - modeldefabricatorModel[11].setRotationPoint(14F, -2.5F, -1F); - - modeldefabricatorModel[12].addBox(0F, 0F, 0F, 3, 1, 1); // Box 12 - modeldefabricatorModel[12].setRotationPoint(11F, -2F, -0.5F); - - modeldefabricatorModel[13].addBox(0F, 0F, 0F, 1, 1, 1); // Box 13 - modeldefabricatorModel[13].setRotationPoint(1F, 3.5F, -0.5F); - - modeldefabricatorModel[14].addBox(0F, 0F, 0F, 5, 1, 2); // Box 14 - modeldefabricatorModel[14].setRotationPoint(13.5F, -4.5F, -1F); - - modeldefabricatorModel[15].addBox(0F, 0F, 0F, 4, 1, 2); // Box 15 - modeldefabricatorModel[15].setRotationPoint(18F, -5F, -1F); - - modeldefabricatorModel[16].addBox(0F, 0F, 0F, 10, 1, 2); // Box 16 - modeldefabricatorModel[16].setRotationPoint(4F, -5F, -1F); - - modeldefabricatorModel[17].addBox(-6F, 0F, 0F, 6, 1, 2); // Box 17 - modeldefabricatorModel[17].setRotationPoint(4F, -5F, -1F); - modeldefabricatorModel[17].rotateAngleZ = -0.52359878F; - - modeldefabricatorModel[18].addBox(0F, 0F, 0F, 1, 3, 3); // Box 18 - modeldefabricatorModel[18].setRotationPoint(22F, -9F, -1.5F); - - modeldefabricatorModel[19].addBox(0F, 0F, 0F, 5, 2, 2); // Box 19 - modeldefabricatorModel[19].setRotationPoint(17F, -8.5F, -1F); - - modeldefabricatorModel[20].addBox(-4F, -3F, 0F, 1, 3, 2); // Box 20 - modeldefabricatorModel[20].setRotationPoint(4F, -5F, -1F); - modeldefabricatorModel[20].rotateAngleZ = -0.52359878F; - - modeldefabricatorModel[21].addBox(-4F, -4F, 0F, 1, 1, 2); // Box 21 - modeldefabricatorModel[21].setRotationPoint(4F, -5F, -1F); - modeldefabricatorModel[21].rotateAngleZ = -0.52359878F; - - modeldefabricatorModel[22].addBox(0F, 0F, 0F, 4, 3, 2); // Box 22 - modeldefabricatorModel[22].setRotationPoint(-6F, 0F, -1F); - - modeldefabricatorModel[23].addBox(0F, 0F, 0F, 4, 2, 3); // Box 23 - modeldefabricatorModel[23].setRotationPoint(-6F, 0.5F, -1.5F); - - modeldefabricatorModel[24].addBox(0F, 0F, 0F, 5, 2, 2); // Box 24 - modeldefabricatorModel[24].setRotationPoint(-11F, 0.5F, -1F); - - modeldefabricatorModel[25].addBox(0F, 0F, 0F, 2, 3, 2); // Box 25 - modeldefabricatorModel[25].setRotationPoint(-10.5F, 0F, -1F); - - modeldefabricatorModel[26].addBox(0F, 0F, 0F, 2, 2, 3); // Box 26 - modeldefabricatorModel[26].setRotationPoint(-10.5F, 0.5F, -1.5F); - - modeldefabricatorModel[27].addBox(0F, -2.5F, -0.5F, 1, 1, 1); // Box 27 - modeldefabricatorModel[27].setRotationPoint(-3F, 1.5F, 0F); - - modeldefabricatorModel[28].addBox(0F, -3F, -0.5F, 20, 1, 1); // Box 28 - modeldefabricatorModel[28].setRotationPoint(-23F, 1.5F, 0F); - - modeldefabricatorModel[29].addBox(0F, -2.5F, -0.5F, 1, 1, 1); // Box 29 - modeldefabricatorModel[29].setRotationPoint(-3F, 1.5F, 0F); - modeldefabricatorModel[29].rotateAngleX = 2.0943951F; - - modeldefabricatorModel[30].addBox(0F, -2.5F, -0.5F, 1, 1, 1); // Box 30 - modeldefabricatorModel[30].setRotationPoint(-3F, 1.5F, 0F); - modeldefabricatorModel[30].rotateAngleX = -2.0943951F; - - modeldefabricatorModel[31].addBox(0F, -3F, -0.5F, 20, 1, 1); // Box 31 - modeldefabricatorModel[31].setRotationPoint(-23F, 1.5F, 0F); - modeldefabricatorModel[31].rotateAngleX = -2.0943951F; - - modeldefabricatorModel[32].addBox(0F, -3F, -0.5F, 20, 1, 1); // Box 32 - modeldefabricatorModel[32].setRotationPoint(-23F, 1.5F, 0F); - modeldefabricatorModel[32].rotateAngleX = 2.0943951F; - - modeldefabricatorModel[33].addBox(0F, -2F, -3F, 2, 1, 6); // Box 33 - modeldefabricatorModel[33].setRotationPoint(-22F, 1.5F, 0F); - modeldefabricatorModel[33].rotateAngleX = 1.04719755F; - - modeldefabricatorModel[34].addBox(0F, -2F, -3F, 2, 1, 6); // Box 34 - modeldefabricatorModel[34].setRotationPoint(-22F, 1.5F, 0F); - modeldefabricatorModel[34].rotateAngleX = -3.14159265F; - - modeldefabricatorModel[35].addBox(0F, -2F, -3F, 2, 1, 6); // Box 35 - modeldefabricatorModel[35].setRotationPoint(-22F, 1.5F, 0F); - modeldefabricatorModel[35].rotateAngleX = -1.04719755F; - - modeldefabricatorModel[36].addBox(0.5F, -2.5F, -0.5F, 1, 1, 1); // Box 36 - modeldefabricatorModel[36].setRotationPoint(-24F, 1.5F, 0F); - - modeldefabricatorModel[37].addBox(0.5F, -2.5F, -0.5F, 1, 1, 1); // Box 39 - modeldefabricatorModel[37].setRotationPoint(-24F, 1.5F, 0F); - modeldefabricatorModel[37].rotateAngleX = 2.0943951F; - - modeldefabricatorModel[38].addBox(0.5F, -2.5F, -0.5F, 1, 1, 1); // Box 40 - modeldefabricatorModel[38].setRotationPoint(-24F, 1.5F, 0F); - modeldefabricatorModel[38].rotateAngleX = -2.0943951F; - - modeldefabricatorModel[39].addBox(0F, 0F, 0F, 13, 0, 1); // Box 41 - modeldefabricatorModel[39].setRotationPoint(5F, -5F, -0.5F); - modeldefabricatorModel[39].rotateAngleZ = 0.17453293F; - - for(int i = 0; i < 40; i++) - { - modeldefabricatorModel[i].setTextureSize(textureX, textureY); - modeldefabricatorModel[i].mirror = true; - } - } - - @Override - 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); - for(int i = 0; i < 40; i++) - { - if(i == 20) - GL11.glDisable(GL11.GL_CULL_FACE); - modeldefabricatorModel[i].render(f5); - if(i == 20) - GL11.glEnable(GL11.GL_CULL_FACE); - } - } - - @Override - 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); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/model/ModelEMPRay.java b/src/main/java/com/hbm/render/model/ModelEMPRay.java deleted file mode 100644 index 54f8d321f..000000000 --- a/src/main/java/com/hbm/render/model/ModelEMPRay.java +++ /dev/null @@ -1,393 +0,0 @@ -// Date: 07.11.2016 21:36:37 -// 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.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelEMPRay extends ModelBase -{ - //fields - ModelRenderer Body; - ModelRenderer BodyConnector; - ModelRenderer BodyFront; - ModelRenderer BodyPlateLeft; - ModelRenderer BodyPlateRight; - ModelRenderer BodyPlateBottom; - ModelRenderer Rib1; - ModelRenderer Rib2; - ModelRenderer Rib3; - ModelRenderer Rib4; - ModelRenderer Rib5; - ModelRenderer Rib6; - ModelRenderer Rib7; - ModelRenderer Stock; - ModelRenderer StockBottom; - ModelRenderer StockPlate; - ModelRenderer CrankPivot; - ModelRenderer CrankPlate; - ModelRenderer CrankHandleBase; - ModelRenderer CrankHandle; - ModelRenderer HandlePivot; - ModelRenderer HandleLeft; - ModelRenderer HandleRight; - ModelRenderer Handle; - ModelRenderer ShieldTop; - ModelRenderer ShieldBottom; - ModelRenderer Battery; - ModelRenderer BatteryTop; - ModelRenderer BatteryBottom; - ModelRenderer Wire; - ModelRenderer SpindelPivot; - ModelRenderer SpindelBase1; - ModelRenderer Coil1; - ModelRenderer SpindelTip1; - ModelRenderer SpindelBase2; - ModelRenderer Coil2; - ModelRenderer SpindelTip2; - ModelRenderer SpindelBase3; - ModelRenderer Coil3; - ModelRenderer SpindelTip3; - ModelRenderer WireRight; - ModelRenderer WireLeft; - - public ModelEMPRay() - { - textureWidth = 256; - textureHeight = 128; - - Body = new ModelRenderer(this, 0, 96); - Body.addBox(0F, 0F, 0F, 20, 16, 16); - Body.setRotationPoint(0F, 0F, -8F); - Body.setTextureSize(64, 32); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - BodyConnector = new ModelRenderer(this, 0, 80); - BodyConnector.addBox(0F, 0F, 0F, 15, 8, 8); - BodyConnector.setRotationPoint(-15F, 0F, -4F); - BodyConnector.setTextureSize(64, 32); - BodyConnector.mirror = true; - setRotation(BodyConnector, 0F, 0F, 0F); - BodyFront = new ModelRenderer(this, 72, 96); - BodyFront.addBox(0F, 0F, 0F, 5, 16, 16); - BodyFront.setRotationPoint(-20F, 0F, -8F); - BodyFront.setTextureSize(64, 32); - BodyFront.mirror = true; - setRotation(BodyFront, 0F, 0F, 0F); - BodyPlateLeft = new ModelRenderer(this, 46, 84); - BodyPlateLeft.addBox(-16F, 0F, 0F, 16, 8, 4); - BodyPlateLeft.setRotationPoint(0F, 0F, -8F); - BodyPlateLeft.setTextureSize(64, 32); - BodyPlateLeft.mirror = true; - setRotation(BodyPlateLeft, 0F, 0.2617994F, 0F); - BodyPlateRight = new ModelRenderer(this, 86, 84); - BodyPlateRight.addBox(-16F, 0F, -4F, 16, 8, 4); - BodyPlateRight.setRotationPoint(0F, 0F, 8F); - BodyPlateRight.setTextureSize(64, 32); - BodyPlateRight.mirror = true; - setRotation(BodyPlateRight, 0F, -0.2617994F, 0F); - BodyPlateBottom = new ModelRenderer(this, 0, 65); - BodyPlateBottom.addBox(-18F, -7F, 0F, 18, 7, 8); - BodyPlateBottom.setRotationPoint(0F, 16F, -4F); - BodyPlateBottom.setTextureSize(64, 32); - BodyPlateBottom.mirror = true; - setRotation(BodyPlateBottom, 0F, 0F, 0.4886922F); - Rib1 = new ModelRenderer(this, 240, 0); - Rib1.addBox(0F, 0F, 0F, 0, 8, 8); - Rib1.setRotationPoint(-13.5F, 8F, -4F); - Rib1.setTextureSize(64, 32); - Rib1.mirror = true; - setRotation(Rib1, 0F, 0F, 0F); - Rib2 = new ModelRenderer(this, 222, 0); - Rib2.addBox(0F, 0F, 0F, 0, 8, 9); - Rib2.setRotationPoint(-11.5F, 8F, -4.5F); - Rib2.setTextureSize(64, 32); - Rib2.mirror = true; - setRotation(Rib2, 0F, 0F, 0F); - Rib3 = new ModelRenderer(this, 202, 0); - Rib3.addBox(0F, 0F, 0F, 0, 8, 10); - Rib3.setRotationPoint(-9.5F, 8F, -5F); - Rib3.setTextureSize(64, 32); - Rib3.mirror = true; - setRotation(Rib3, 0F, 0F, 0F); - Rib4 = new ModelRenderer(this, 180, 0); - Rib4.addBox(0F, 0F, 0F, 0, 8, 11); - Rib4.setRotationPoint(-7.5F, 8F, -5.5F); - Rib4.setTextureSize(64, 32); - Rib4.mirror = true; - setRotation(Rib4, 0F, 0F, 0F); - Rib5 = new ModelRenderer(this, 156, 0); - Rib5.addBox(0F, 0F, 0F, 0, 8, 12); - Rib5.setRotationPoint(-5.5F, 8F, -6F); - Rib5.setTextureSize(64, 32); - Rib5.mirror = true; - setRotation(Rib5, 0F, 0F, 0F); - Rib6 = new ModelRenderer(this, 130, 0); - Rib6.addBox(0F, 0F, 0F, 0, 8, 13); - Rib6.setRotationPoint(-3.5F, 8F, -6.5F); - Rib6.setTextureSize(64, 32); - Rib6.mirror = true; - setRotation(Rib6, 0F, 0F, 0F); - Rib7 = new ModelRenderer(this, 102, 0); - Rib7.addBox(0F, 0F, 0F, 0, 8, 14); - Rib7.setRotationPoint(-1.5F, 8F, -7F); - Rib7.setTextureSize(64, 32); - Rib7.mirror = true; - setRotation(Rib7, 0F, 0F, 0F); - Stock = new ModelRenderer(this, 114, 116); - Stock.addBox(0F, 0F, 0F, 25, 6, 6); - Stock.setRotationPoint(20F, 10F, -3F); - Stock.setTextureSize(64, 32); - Stock.mirror = true; - setRotation(Stock, 0F, 0F, 0F); - StockBottom = new ModelRenderer(this, 114, 104); - StockBottom.addBox(0F, 0F, 0F, 4, 6, 6); - StockBottom.setRotationPoint(41F, 16F, -3F); - StockBottom.setTextureSize(64, 32); - StockBottom.mirror = true; - setRotation(StockBottom, 0F, 0F, 0F); - StockPlate = new ModelRenderer(this, 134, 92); - StockPlate.addBox(0F, -18F, 0F, 6, 18, 6); - StockPlate.setRotationPoint(41F, 22F, -3F); - StockPlate.setTextureSize(64, 32); - StockPlate.mirror = true; - setRotation(StockPlate, 0F, 0F, -1.22173F); - CrankPivot = new ModelRenderer(this, 0, 63); - CrankPivot.addBox(0F, -0.5F, -0.5F, 3, 1, 1); - CrankPivot.setRotationPoint(20F, 2F, 0F); - CrankPivot.setTextureSize(64, 32); - CrankPivot.mirror = true; - setRotation(CrankPivot, -0.4363323F, 0F, 0F); - CrankPlate = new ModelRenderer(this, 0, 55); - CrankPlate.addBox(0F, -1F, -1F, 1, 6, 2); - CrankPlate.setRotationPoint(21.5F, 2F, 0F); - CrankPlate.setTextureSize(64, 32); - CrankPlate.mirror = true; - setRotation(CrankPlate, -0.4363323F, 0F, 0F); - CrankHandleBase = new ModelRenderer(this, 0, 53); - CrankHandleBase.addBox(0F, 3.5F, -0.5F, 2, 1, 1); - CrankHandleBase.setRotationPoint(22F, 2F, 0F); - CrankHandleBase.setTextureSize(64, 32); - CrankHandleBase.mirror = true; - setRotation(CrankHandleBase, -0.4363323F, 0F, 0F); - CrankHandle = new ModelRenderer(this, 0, 49); - CrankHandle.addBox(0F, 3F, -1F, 6, 2, 2); - CrankHandle.setRotationPoint(24F, 2F, 0F); - CrankHandle.setTextureSize(64, 32); - CrankHandle.mirror = true; - setRotation(CrankHandle, -0.4363323F, 0F, 0F); - HandlePivot = new ModelRenderer(this, 52, 60); - HandlePivot.addBox(-1F, -1F, 0F, 2, 2, 22); - HandlePivot.setRotationPoint(7F, 7F, -11F); - HandlePivot.setTextureSize(64, 32); - HandlePivot.mirror = true; - setRotation(HandlePivot, 0F, 0F, 0.4363323F); - HandleLeft = new ModelRenderer(this, 100, 67); - HandleLeft.addBox(-1.5F, -14F, 0F, 3, 16, 1); - HandleLeft.setRotationPoint(7F, 7F, -9.5F); - HandleLeft.setTextureSize(64, 32); - HandleLeft.mirror = true; - setRotation(HandleLeft, 0F, 0F, 0.4363323F); - HandleRight = new ModelRenderer(this, 108, 67); - HandleRight.addBox(-1.5F, -14F, 0F, 3, 16, 1); - HandleRight.setRotationPoint(7F, 7F, 8.5F); - HandleRight.setTextureSize(64, 32); - HandleRight.mirror = true; - setRotation(HandleRight, 0F, 0F, 0.4363323F); - Handle = new ModelRenderer(this, 52, 31); - Handle.addBox(-2.5F, -19F, 0F, 5, 5, 24); - Handle.setRotationPoint(7F, 7F, -12F); - Handle.setTextureSize(64, 32); - Handle.mirror = true; - setRotation(Handle, 0F, 0F, 0.4363323F); - ShieldTop = new ModelRenderer(this, 64, 0); - ShieldTop.addBox(0F, 0F, 0F, 0, 12, 18); - ShieldTop.setRotationPoint(-11F, -14F, -9F); - ShieldTop.setTextureSize(64, 32); - ShieldTop.mirror = true; - setRotation(ShieldTop, 0F, 0F, 0F); - ShieldBottom = new ModelRenderer(this, 36, 0); - ShieldBottom.addBox(0F, 0F, 0F, 0, 9, 14); - ShieldBottom.setRotationPoint(-11F, -2F, -7F); - ShieldBottom.setTextureSize(64, 32); - ShieldBottom.mirror = true; - setRotation(ShieldBottom, 0F, 0F, -0.6981317F); - Battery = new ModelRenderer(this, 10, 56); - Battery.addBox(0F, 0F, 0F, 4, 6, 3); - Battery.setRotationPoint(13F, 6F, -11F); - Battery.setTextureSize(64, 32); - Battery.mirror = true; - setRotation(Battery, 0F, 0F, 0F); - BatteryTop = new ModelRenderer(this, 24, 60); - BatteryTop.addBox(0F, 0F, 0F, 5, 1, 4); - BatteryTop.setRotationPoint(12.5F, 5F, -11.5F); - BatteryTop.setTextureSize(64, 32); - BatteryTop.mirror = true; - setRotation(BatteryTop, 0F, 0F, 0F); - BatteryBottom = new ModelRenderer(this, 24, 55); - BatteryBottom.addBox(0F, 0F, 0F, 5, 1, 4); - BatteryBottom.setRotationPoint(12.5F, 12F, -11.5F); - BatteryBottom.setTextureSize(64, 32); - BatteryBottom.mirror = true; - setRotation(BatteryBottom, 0F, 0F, 0F); - Wire = new ModelRenderer(this, 0, 44); - Wire.addBox(0F, -4F, 0F, 2, 4, 1); - Wire.setRotationPoint(14F, 5F, -10F); - Wire.setTextureSize(64, 32); - Wire.mirror = true; - setRotation(Wire, -0.5235988F, 0F, 0F); - SpindelPivot = new ModelRenderer(this, 0, 36); - SpindelPivot.addBox(0F, 0F, 0F, 4, 3, 3); - SpindelPivot.setRotationPoint(-24F, 8.5F, -1.5F); - SpindelPivot.setTextureSize(64, 32); - SpindelPivot.mirror = true; - setRotation(SpindelPivot, 0F, 0F, 0F); - SpindelBase1 = new ModelRenderer(this, 0, 27); - SpindelBase1.addBox(0F, -5F, -1F, 2, 5, 2); - SpindelBase1.setRotationPoint(-23F, 10F, 0F); - SpindelBase1.setTextureSize(64, 32); - SpindelBase1.mirror = true; - setRotation(SpindelBase1, 0F, 0F, 0F); - Coil1 = new ModelRenderer(this, 0, 17); - Coil1.addBox(0F, -6F, -2F, 12, 4, 4); - Coil1.setRotationPoint(-35F, 10F, 0F); - Coil1.setTextureSize(64, 32); - Coil1.mirror = true; - setRotation(Coil1, 0F, 0F, 0F); - SpindelTip1 = new ModelRenderer(this, 0, 11); - SpindelTip1.addBox(0F, -5F, -1F, 1, 2, 2); - SpindelTip1.setRotationPoint(-36F, 10F, 0F); - SpindelTip1.setTextureSize(64, 32); - SpindelTip1.mirror = true; - setRotation(SpindelTip1, 0F, 0F, 0F); - SpindelBase2 = new ModelRenderer(this, 0, 27); - SpindelBase2.addBox(0F, -5F, -1F, 2, 5, 2); - SpindelBase2.setRotationPoint(-23F, 10F, 0F); - SpindelBase2.setTextureSize(64, 32); - SpindelBase2.mirror = true; - setRotation(SpindelBase2, 2.094395F, 0F, 0F); - Coil2 = new ModelRenderer(this, 0, 17); - Coil2.addBox(0F, -6F, -2F, 12, 4, 4); - Coil2.setRotationPoint(-35F, 10F, 0F); - Coil2.setTextureSize(64, 32); - Coil2.mirror = true; - setRotation(Coil2, 2.094395F, 0F, 0F); - SpindelTip2 = new ModelRenderer(this, 0, 11); - SpindelTip2.addBox(0F, -5F, -1F, 1, 2, 2); - SpindelTip2.setRotationPoint(-36F, 10F, 0F); - SpindelTip2.setTextureSize(64, 32); - SpindelTip2.mirror = true; - setRotation(SpindelTip2, 2.094395F, 0F, 0F); - SpindelBase3 = new ModelRenderer(this, 0, 27); - SpindelBase3.addBox(0F, -5F, -1F, 2, 5, 2); - SpindelBase3.setRotationPoint(-23F, 10F, 0F); - SpindelBase3.setTextureSize(64, 32); - SpindelBase3.mirror = true; - setRotation(SpindelBase3, -2.094395F, 0F, 0F); - Coil3 = new ModelRenderer(this, 0, 17); - Coil3.addBox(0F, -6F, -2F, 12, 4, 4); - Coil3.setRotationPoint(-35F, 10F, 0F); - Coil3.setTextureSize(64, 32); - Coil3.mirror = true; - setRotation(Coil3, -2.094395F, 0F, 0F); - SpindelTip3 = new ModelRenderer(this, 0, 11); - SpindelTip3.addBox(0F, -5F, -1F, 1, 2, 2); - SpindelTip3.setRotationPoint(-36F, 10F, 0F); - SpindelTip3.setTextureSize(64, 32); - SpindelTip3.mirror = true; - setRotation(SpindelTip3, -2.094395F, 0F, 0F); - WireRight = new ModelRenderer(this, 0, 2); - WireRight.addBox(0F, 0F, 0F, 15, 1, 1); - WireRight.setRotationPoint(-15F, 13F, 4F); - WireRight.setTextureSize(64, 32); - WireRight.mirror = true; - setRotation(WireRight, 0F, 0F, 0F); - WireLeft = new ModelRenderer(this, 0, 0); - WireLeft.addBox(0F, 0F, 0F, 15, 1, 1); - WireLeft.setRotationPoint(-15F, 13F, -5F); - WireLeft.setTextureSize(64, 32); - WireLeft.mirror = true; - setRotation(WireLeft, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, float rot) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Body.render(f5); - BodyConnector.render(f5); - BodyFront.render(f5); - BodyPlateLeft.render(f5); - BodyPlateRight.render(f5); - BodyPlateBottom.render(f5); - Rib1.render(f5); - Rib2.render(f5); - Rib3.render(f5); - Rib4.render(f5); - Rib5.render(f5); - Rib6.render(f5); - Rib7.render(f5); - Stock.render(f5); - StockBottom.render(f5); - StockPlate.render(f5); - CrankPivot.render(f5); - CrankPlate.render(f5); - CrankHandleBase.render(f5); - CrankHandle.render(f5); - HandlePivot.render(f5); - HandleLeft.render(f5); - HandleRight.render(f5); - Handle.render(f5); - ShieldTop.render(f5); - ShieldBottom.render(f5); - Battery.render(f5); - BatteryTop.render(f5); - BatteryBottom.render(f5); - Wire.render(f5); - SpindelPivot.render(f5); - SpindelBase1.rotateAngleX += rot; - Coil1.rotateAngleX += rot; - SpindelTip1.rotateAngleX += rot; - SpindelBase2.rotateAngleX += rot; - Coil2.rotateAngleX += rot; - SpindelTip2.rotateAngleX += rot; - SpindelBase3.rotateAngleX += rot; - Coil3.rotateAngleX += rot; - SpindelTip3.rotateAngleX += rot; - SpindelBase1.render(f5); - Coil1.render(f5); - SpindelTip1.render(f5); - SpindelBase2.render(f5); - Coil2.render(f5); - SpindelTip2.render(f5); - SpindelBase3.render(f5); - Coil3.render(f5); - SpindelTip3.render(f5); - WireRight.render(f5); - WireLeft.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelEuthanasia.java b/src/main/java/com/hbm/render/model/ModelEuthanasia.java deleted file mode 100644 index 5d55bbabb..000000000 --- a/src/main/java/com/hbm/render/model/ModelEuthanasia.java +++ /dev/null @@ -1,169 +0,0 @@ -// Date: 21.02.2017 21:26:09 -// 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.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelEuthanasia extends ModelBase -{ - //fields - ModelRenderer Barrel; - ModelRenderer Tank; - ModelRenderer ConnectorBF; - ModelRenderer ConnectorBB; - ModelRenderer ConnectorBeam; - ModelRenderer ConnectorTF; - ModelRenderer ConnectorTB; - ModelRenderer Body; - ModelRenderer Plate; - ModelRenderer Beam; - ModelRenderer Stock; - ModelRenderer StockBack; - ModelRenderer StockPlate; - ModelRenderer Handle; - ModelRenderer Trigger; - - public ModelEuthanasia() - { - textureWidth = 64; - textureHeight = 64; - - Barrel = new ModelRenderer(this, 0, 0); - Barrel.addBox(0F, 0F, 0F, 18, 3, 3); - Barrel.setRotationPoint(-11F, 0.5F, -1.5F); - Barrel.setTextureSize(64, 64); - Barrel.mirror = true; - setRotation(Barrel, 0F, 0F, 0F); - Tank = new ModelRenderer(this, 0, 6); - Tank.addBox(0F, 0F, 0F, 9, 5, 5); - Tank.setRotationPoint(-3F, -0.5F, -2.5F); - Tank.setTextureSize(64, 64); - Tank.mirror = true; - setRotation(Tank, 0F, 0F, 0F); - ConnectorBF = new ModelRenderer(this, 52, 0); - ConnectorBF.addBox(0F, 0F, 0F, 2, 8, 4); - ConnectorBF.setRotationPoint(-6F, 0F, -2F); - ConnectorBF.setTextureSize(64, 64); - ConnectorBF.mirror = true; - setRotation(ConnectorBF, 0F, 0F, 0F); - ConnectorBB = new ModelRenderer(this, 28, 6); - ConnectorBB.addBox(0F, 0F, 0F, 2, 8, 4); - ConnectorBB.setRotationPoint(7F, 0F, -2F); - ConnectorBB.setTextureSize(64, 64); - ConnectorBB.mirror = true; - setRotation(ConnectorBB, 0F, 0F, 0F); - ConnectorBeam = new ModelRenderer(this, 0, 18); - ConnectorBeam.addBox(0F, 0F, 0F, 11, 2, 4); - ConnectorBeam.setRotationPoint(-4F, 6F, -2F); - ConnectorBeam.setTextureSize(64, 64); - ConnectorBeam.mirror = true; - setRotation(ConnectorBeam, 0F, 0F, 0F); - ConnectorTF = new ModelRenderer(this, 40, 12); - ConnectorTF.addBox(0F, 0F, 0F, 2, 8, 4); - ConnectorTF.setRotationPoint(-9F, -4F, -2F); - ConnectorTF.setTextureSize(64, 64); - ConnectorTF.mirror = true; - setRotation(ConnectorTF, 0F, 0F, 0F); - ConnectorTB = new ModelRenderer(this, 52, 12); - ConnectorTB.addBox(0F, 0F, 0F, 2, 8, 4); - ConnectorTB.setRotationPoint(9F, -4F, -2F); - ConnectorTB.setTextureSize(64, 64); - ConnectorTB.mirror = true; - setRotation(ConnectorTB, 0F, 0F, 0F); - Body = new ModelRenderer(this, 0, 24); - Body.addBox(0F, 0F, 0F, 4, 5, 4); - Body.setRotationPoint(11F, -1F, -2F); - Body.setTextureSize(64, 64); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - Plate = new ModelRenderer(this, 16, 24); - Plate.addBox(0F, 0F, 0F, 5, 3, 4); - Plate.setRotationPoint(11F, -4F, -2F); - Plate.setTextureSize(64, 64); - Plate.mirror = true; - setRotation(Plate, 0F, 0F, 0.6457718F); - Beam = new ModelRenderer(this, 0, 33); - Beam.addBox(0F, 0F, 0F, 16, 1, 1); - Beam.setRotationPoint(-7F, -3.5F, -0.5F); - Beam.setTextureSize(64, 64); - Beam.mirror = true; - setRotation(Beam, 0F, 0F, 0F); - Stock = new ModelRenderer(this, 0, 35); - Stock.addBox(0F, 0F, 0F, 10, 2, 2); - Stock.setRotationPoint(15F, 1F, -1F); - Stock.setTextureSize(64, 64); - Stock.mirror = true; - setRotation(Stock, 0F, 0F, 0F); - StockBack = new ModelRenderer(this, 0, 39); - StockBack.addBox(0F, 0F, 0F, 1, 4, 2); - StockBack.setRotationPoint(24F, 3F, -1F); - StockBack.setTextureSize(64, 64); - StockBack.mirror = true; - setRotation(StockBack, 0F, 0F, 0F); - StockPlate = new ModelRenderer(this, 6, 39); - StockPlate.addBox(0F, -5F, 0F, 1, 5, 2); - StockPlate.setRotationPoint(24F, 7F, -1F); - StockPlate.setTextureSize(64, 64); - StockPlate.mirror = true; - setRotation(StockPlate, 0F, 0F, -0.2094395F); - Handle = new ModelRenderer(this, 12, 39); - Handle.addBox(0F, 0F, 0F, 2, 6, 2); - Handle.setRotationPoint(13F, 4F, -1F); - Handle.setTextureSize(64, 64); - Handle.mirror = true; - setRotation(Handle, 0F, 0F, -0.2094395F); - Trigger = new ModelRenderer(this, 20, 39); - Trigger.addBox(0F, 0F, 0F, 1, 4, 2); - Trigger.setRotationPoint(12F, 4F, -1F); - Trigger.setTextureSize(64, 64); - Trigger.mirror = true; - setRotation(Trigger, 0F, 0F, 0F); - } - - @Override -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); - Barrel.render(f5); - Tank.render(f5); - ConnectorBF.render(f5); - ConnectorBB.render(f5); - ConnectorBeam.render(f5); - ConnectorTF.render(f5); - ConnectorTB.render(f5); - Body.render(f5); - Plate.render(f5); - Beam.render(f5); - Stock.render(f5); - StockBack.render(f5); - StockPlate.render(f5); - Handle.render(f5); - Trigger.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelFatman.java b/src/main/java/com/hbm/render/model/ModelFatman.java deleted file mode 100644 index fc65ff140..000000000 --- a/src/main/java/com/hbm/render/model/ModelFatman.java +++ /dev/null @@ -1,318 +0,0 @@ -// Date: 26.01.2016 14:54:33 -// 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.model; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunBase; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; - -public class ModelFatman extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - ModelRenderer Shape20; - ModelRenderer Shape21; - ModelRenderer Shape22; - ModelRenderer Shape23; - ModelRenderer Shape24; - ModelRenderer Shape25; - ModelRenderer Shape26; - ModelRenderer Shape27; - ModelRenderer Shape28; - ModelRenderer Shape29; - ModelRenderer Shape30; - ModelRenderer Shape31; - ModelRenderer Shape32; - ModelRenderer Shape33; - - public ModelFatman() { - textureWidth = 128; - textureHeight = 64; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 40, 2, 4); - Shape1.setRotationPoint(-20F, 0F, 0F); - Shape1.setTextureSize(128, 64); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 6); - Shape2.addBox(0F, 0F, 0F, 6, 2, 2); - Shape2.setRotationPoint(-19F, 2F, 1F); - Shape2.setTextureSize(128, 64); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 10); - Shape3.addBox(0F, 0F, 0F, 1, 4, 1); - Shape3.setRotationPoint(-12F, 2F, 1.5F); - Shape3.setTextureSize(128, 64); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 16, 6); - Shape4.addBox(0F, 0F, 0F, 6, 1, 4); - Shape4.setRotationPoint(-10F, 2F, 0F); - Shape4.setTextureSize(128, 64); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 15); - Shape5.addBox(0F, 0F, 0F, 2, 3, 1); - Shape5.setRotationPoint(-7F, 3F, 1.5F); - Shape5.setTextureSize(128, 64); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 4, 10); - Shape6.addBox(0F, 0F, 0F, 3, 3, 1); - Shape6.setRotationPoint(-10F, 3F, 1.5F); - Shape6.setTextureSize(128, 64); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 12, 10); - Shape7.addBox(-1F, 0F, 0F, 1, 2, 1); - Shape7.setRotationPoint(-7F, 3F, 1.5F); - Shape7.setTextureSize(128, 64); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0.5235988F); - Shape8 = new ModelRenderer(this, 36, 6); - Shape8.addBox(0F, 0F, 0F, 10, 1, 4); - Shape8.setRotationPoint(-3F, 2F, 0F); - Shape8.setTextureSize(128, 64); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 64, 6); - Shape9.addBox(0F, 0F, 0F, 2, 3, 2); - Shape9.setRotationPoint(7F, 2F, 1F); - Shape9.setTextureSize(128, 64); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 88, 0); - Shape10.addBox(0F, 0F, 0F, 3, 4, 4); - Shape10.setRotationPoint(17F, -4F, 0F); - Shape10.setTextureSize(128, 64); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 72, 6); - Shape11.addBox(0F, 0F, 0F, 2, 3, 1); - Shape11.setRotationPoint(18F, -7F, 0F); - Shape11.setTextureSize(128, 64); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 78, 6); - Shape12.addBox(0F, 0F, 0F, 2, 3, 1); - Shape12.setRotationPoint(18F, -7F, 3F); - Shape12.setTextureSize(128, 64); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 0, 19); - Shape13.addBox(0F, -4F, 0F, 22, 4, 0); - Shape13.setRotationPoint(-17F, 0F, 1F); - Shape13.setTextureSize(128, 64); - Shape13.mirror = true; - setRotation(Shape13, 0.4363323F, 0F, 0F); - Shape14 = new ModelRenderer(this, 16, 11); - Shape14.addBox(0F, 0F, 0F, 33, 1, 1); - Shape14.setRotationPoint(-17F, -4F, -1F); - Shape14.setTextureSize(128, 64); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, 0F); - Shape15 = new ModelRenderer(this, 0, 23); - Shape15.addBox(0F, -4F, 0F, 22, 4, 0); - Shape15.setRotationPoint(-17F, 0F, 3F); - Shape15.setTextureSize(128, 64); - Shape15.mirror = true; - setRotation(Shape15, -0.4363323F, 0F, 0F); - Shape16 = new ModelRenderer(this, 16, 13); - Shape16.addBox(0F, 0F, 0F, 33, 1, 1); - Shape16.setRotationPoint(-17F, -4F, 4F); - Shape16.setTextureSize(128, 64); - Shape16.mirror = true; - setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 44, 25); - Shape17.addBox(0F, -4F, 0F, 8, 4, 0); - Shape17.setRotationPoint(8F, 0F, 1F); - Shape17.setTextureSize(128, 64); - Shape17.mirror = true; - setRotation(Shape17, 0.4363323F, 0F, 0F); - Shape18 = new ModelRenderer(this, 44, 21); - Shape18.addBox(0F, -4F, 0F, 8, 4, 0); - Shape18.setRotationPoint(8F, 0F, 3F); - Shape18.setTextureSize(128, 64); - Shape18.mirror = true; - setRotation(Shape18, -0.4363323F, 0F, 0F); - Shape19 = new ModelRenderer(this, 0, 37); - Shape19.addBox(0F, 0F, 0F, 5, 4, 2); - Shape19.setRotationPoint(5F, -6F, 1F); - Shape19.setTextureSize(128, 64); - Shape19.mirror = true; - setRotation(Shape19, 0F, 0F, 0F); - Shape20 = new ModelRenderer(this, 0, 31); - Shape20.addBox(0F, 0F, 0F, 5, 2, 4); - Shape20.setRotationPoint(5F, -5F, 0F); - Shape20.setTextureSize(128, 64); - Shape20.mirror = true; - setRotation(Shape20, 0F, 0F, 0F); - Shape21 = new ModelRenderer(this, 0, 27); - Shape21.addBox(0F, 0F, 0F, 1, 2, 2); - Shape21.setRotationPoint(4F, -5F, 1F); - Shape21.setTextureSize(128, 64); - Shape21.mirror = true; - setRotation(Shape21, 0F, 0F, 0F); - Shape22 = new ModelRenderer(this, 6, 27); - Shape22.addBox(0F, 0F, 0F, 1, 2, 2); - Shape22.setRotationPoint(10F, -5F, 1F); - Shape22.setTextureSize(128, 64); - Shape22.mirror = true; - setRotation(Shape22, 0F, 0F, 0F); - Shape23 = new ModelRenderer(this, 8, 43); - Shape23.addBox(0F, 0F, 0F, 2, 2, 1); - Shape23.setRotationPoint(11F, -5F, 0F); - Shape23.setTextureSize(128, 64); - Shape23.mirror = true; - setRotation(Shape23, 0F, 0F, 0F); - Shape24 = new ModelRenderer(this, 8, 46); - Shape24.addBox(0F, 0F, 0F, 2, 2, 1); - Shape24.setRotationPoint(11F, -5F, 3F); - Shape24.setTextureSize(128, 64); - Shape24.mirror = true; - setRotation(Shape24, 0F, 0F, 0F); - Shape25 = new ModelRenderer(this, 0, 43); - Shape25.addBox(0F, 0F, 0F, 2, 1, 2); - Shape25.setRotationPoint(11F, -6F, 1F); - Shape25.setTextureSize(128, 64); - Shape25.mirror = true; - setRotation(Shape25, 0F, 0F, 0F); - Shape26 = new ModelRenderer(this, 0, 46); - Shape26.addBox(0F, 0F, 0F, 2, 1, 2); - Shape26.setRotationPoint(11F, -3F, 1F); - Shape26.setTextureSize(128, 64); - Shape26.mirror = true; - setRotation(Shape26, 0F, 0F, 0F); - Shape27 = new ModelRenderer(this, 18, 27); - Shape27.addBox(0F, 0F, 0F, 2, 5, 1); - Shape27.setRotationPoint(13F, -5F, 1.5F); - Shape27.setTextureSize(128, 64); - Shape27.mirror = true; - setRotation(Shape27, 0F, 0F, 0F); - Shape28 = new ModelRenderer(this, 84, 6); - Shape28.addBox(0F, 0F, 0F, 1, 3, 1); - Shape28.setRotationPoint(16F, -3F, 1.5F); - Shape28.setTextureSize(128, 64); - Shape28.mirror = true; - setRotation(Shape28, 0F, 0F, 0F); - Shape29 = new ModelRenderer(this, 6, 15); - Shape29.addBox(0F, 0F, 0F, 10, 2, 2); - Shape29.setRotationPoint(3F, -2F, 1F); - Shape29.setTextureSize(128, 64); - Shape29.mirror = true; - setRotation(Shape29, 0F, 0F, 0F); - Shape30 = new ModelRenderer(this, 30, 15); - Shape30.addBox(0F, 0F, 0F, 12, 2, 2); - Shape30.setRotationPoint(-7F, -1F, 4F); - Shape30.setTextureSize(128, 64); - Shape30.mirror = true; - setRotation(Shape30, 0F, 0F, 0F); - Shape31 = new ModelRenderer(this, 44, 19); - Shape31.addBox(0F, 0F, 0F, 14, 1, 1); - Shape31.setRotationPoint(5F, -0.5F, 4.5F); - Shape31.setTextureSize(128, 64); - Shape31.mirror = true; - setRotation(Shape31, 0F, 0F, 0F); - Shape32 = new ModelRenderer(this, 12, 27); - Shape32.addBox(0F, 0F, 0F, 1, 1, 1); - Shape32.setRotationPoint(18F, -0.5F, 3.5F); - Shape32.setTextureSize(128, 64); - Shape32.mirror = true; - setRotation(Shape32, 0F, 0F, 0F); - Shape33 = new ModelRenderer(this, 24, 29); - Shape33.addBox(0F, 0F, 0F, 21, 1, 2); - Shape33.setRotationPoint(-18F, -1F, 1F); - Shape33.setTextureSize(128, 64); - Shape33.mirror = true; - setRotation(Shape33, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ItemStack item) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape2.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape6.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape7.render(f5); - Shape8.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape9.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - - int ammo = ItemGunBase.getMag(item); - if(ammo > 0) { - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - Shape22.render(f5); - Shape23.render(f5); - Shape24.render(f5); - Shape25.render(f5); - Shape26.render(f5); - } - - Shape27.render(f5); - Shape28.render(f5); - Shape29.render(f5); - Shape30.render(f5); - Shape31.render(f5); - Shape32.render(f5); - Shape33.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - 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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelGustav.java b/src/main/java/com/hbm/render/model/ModelGustav.java deleted file mode 100644 index 43fcd28bc..000000000 --- a/src/main/java/com/hbm/render/model/ModelGustav.java +++ /dev/null @@ -1,313 +0,0 @@ -// Date: 21.01.2019 10:38:11 -// 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.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelGustav extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - ModelRenderer Shape20; - ModelRenderer Shape21; - ModelRenderer Shape22; - ModelRenderer Shape23; - ModelRenderer Shape24; - ModelRenderer Shape25; - ModelRenderer Shape26; - ModelRenderer Shape27; - ModelRenderer Shape28; - ModelRenderer Shape29; - ModelRenderer Shape30; - ModelRenderer Shape31; - ModelRenderer Shape32; - ModelRenderer Shape33; - ModelRenderer Shape34; - - public ModelGustav() { - textureWidth = 128; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 40, 1, 3); - Shape1.setRotationPoint(-30F, 0F, -1.5F); - Shape1.setTextureSize(128, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 4); - Shape2.addBox(0F, 0F, 0F, 40, 1, 1); - Shape2.setRotationPoint(-30F, -0.5F, -2F); - Shape2.setTextureSize(128, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 6); - Shape3.addBox(0F, 0F, 0F, 40, 1, 1); - Shape3.setRotationPoint(-30F, -0.5F, 1F); - Shape3.setTextureSize(128, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 8); - Shape4.addBox(0F, 0F, 0F, 40, 3, 1); - Shape4.setRotationPoint(-30F, -3F, -2.5F); - Shape4.setTextureSize(128, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 12); - Shape5.addBox(0F, 0F, 0F, 40, 3, 1); - Shape5.setRotationPoint(-30F, -3F, 1.5F); - Shape5.setTextureSize(128, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 0, 16); - Shape6.addBox(0F, 0F, 0F, 40, 1, 1); - Shape6.setRotationPoint(-30F, -3.5F, -2F); - Shape6.setTextureSize(128, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 0, 18); - Shape7.addBox(0F, 0F, 0F, 40, 1, 1); - Shape7.setRotationPoint(-30F, -3.5F, 1F); - Shape7.setTextureSize(128, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 0, 20); - Shape8.addBox(0F, 0F, 0F, 40, 1, 3); - Shape8.setRotationPoint(-30F, -4F, -1.5F); - Shape8.setTextureSize(128, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 0, 24); - Shape9.addBox(0F, 0F, 0F, 2, 5, 1); - Shape9.setRotationPoint(-23F, 1F, -0.5F); - Shape9.setTextureSize(128, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 6, 24); - Shape10.addBox(0F, 0F, 0F, 4, 1, 1); - Shape10.setRotationPoint(-16F, 1F, -0.5F); - Shape10.setTextureSize(128, 32); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 6, 26); - Shape11.addBox(0F, 0F, 0F, 2, 4, 1); - Shape11.setRotationPoint(-14F, 2F, -0.5F); - Shape11.setTextureSize(128, 32); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 16, 24); - Shape12.addBox(0F, 0F, 0F, 2, 1, 1); - Shape12.setRotationPoint(-16F, 2F, -0.5F); - Shape12.setTextureSize(128, 32); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 22, 24); - Shape13.addBox(0F, 0F, 0F, 7, 1, 1); - Shape13.setRotationPoint(-4F, -7F, -0.5F); - Shape13.setTextureSize(128, 32); - Shape13.mirror = true; - setRotation(Shape13, 0F, 0F, 0F); - Shape14 = new ModelRenderer(this, 38, 24); - Shape14.addBox(0F, 0F, 0F, 5, 1, 1); - Shape14.setRotationPoint(3F, -7F, -0.5F); - Shape14.setTextureSize(128, 32); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, 0.6108652F); - Shape15 = new ModelRenderer(this, 50, 24); - Shape15.addBox(-5F, 0F, 0F, 5, 1, 1); - Shape15.setRotationPoint(-4F, -7F, -0.5F); - Shape15.setTextureSize(128, 32); - Shape15.mirror = true; - setRotation(Shape15, 0F, 0F, -0.6108652F); - Shape16 = new ModelRenderer(this, 104, 0); - Shape16.addBox(0F, 0F, 0F, 7, 5, 5); - Shape16.setRotationPoint(10F, -4F, -2.5F); - Shape16.setTextureSize(128, 32); - Shape16.mirror = true; - setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 86, 0); - Shape17.addBox(0F, 0F, 0F, 3, 3, 2); - Shape17.setRotationPoint(17F, -3F, -1F); - Shape17.setTextureSize(128, 32); - Shape17.mirror = true; - setRotation(Shape17, 0F, 0F, 0F); - Shape18 = new ModelRenderer(this, 82, 5); - Shape18.addBox(0F, 0F, 0F, 3, 2, 3); - Shape18.setRotationPoint(17F, -2.5F, -1.5F); - Shape18.setTextureSize(128, 32); - Shape18.mirror = true; - setRotation(Shape18, 0F, 0F, 0F); - Shape19 = new ModelRenderer(this, 82, 10); - Shape19.addBox(0F, 0F, 0F, 4, 4, 3); - Shape19.setRotationPoint(20F, -3.5F, -1.5F); - Shape19.setTextureSize(128, 32); - Shape19.mirror = true; - setRotation(Shape19, 0F, 0F, 0F); - Shape20 = new ModelRenderer(this, 96, 10); - Shape20.addBox(0F, 0F, 0F, 4, 3, 4); - Shape20.setRotationPoint(20F, -3F, -2F); - Shape20.setTextureSize(128, 32); - Shape20.mirror = true; - setRotation(Shape20, 0F, 0F, 0F); - Shape21 = new ModelRenderer(this, 112, 10); - Shape21.addBox(0F, 0F, 0F, 4, 5, 4); - Shape21.setRotationPoint(24F, -4F, -2F); - Shape21.setTextureSize(128, 32); - Shape21.mirror = true; - setRotation(Shape21, 0F, 0F, 0F); - Shape22 = new ModelRenderer(this, 86, 17); - Shape22.addBox(0F, 0F, 0F, 4, 4, 5); - Shape22.setRotationPoint(24F, -3.5F, -2.5F); - Shape22.setTextureSize(128, 32); - Shape22.mirror = true; - setRotation(Shape22, 0F, 0F, 0F); - Shape23 = new ModelRenderer(this, 96, 0); - Shape23.addBox(0F, 0F, 0F, 2, 5, 2); - Shape23.setRotationPoint(-4F, 1F, -1F); - Shape23.setTextureSize(128, 32); - Shape23.mirror = true; - setRotation(Shape23, 0F, 0F, 0F); - Shape24 = new ModelRenderer(this, 104, 17); - Shape24.addBox(0F, 0F, 0F, 1, 5, 1); - Shape24.setRotationPoint(-3.5F, 6F, -0.5F); - Shape24.setTextureSize(128, 32); - Shape24.mirror = true; - setRotation(Shape24, 0F, 0F, 0F); - Shape25 = new ModelRenderer(this, 96, 7); - Shape25.addBox(0F, 0F, 0F, 2, 1, 2); - Shape25.setRotationPoint(-4F, 11F, -1F); - Shape25.setTextureSize(128, 32); - Shape25.mirror = true; - setRotation(Shape25, 0F, 0F, 0F); - Shape26 = new ModelRenderer(this, 120, 19); - Shape26.addBox(0F, 0F, 0F, 2, 5, 2); - Shape26.setRotationPoint(-1.5F, 1F, -1F); - Shape26.setTextureSize(128, 32); - Shape26.mirror = true; - setRotation(Shape26, 0F, 0F, 0F); - Shape27 = new ModelRenderer(this, 114, 19); - Shape27.addBox(-1F, -6F, 0F, 1, 6, 2); - Shape27.setRotationPoint(0.5F, 6F, -1F); - Shape27.setTextureSize(128, 32); - Shape27.mirror = true; - setRotation(Shape27, 0F, 0F, 0.2617994F); - Shape28 = new ModelRenderer(this, 12, 26); - Shape28.addBox(0F, 0F, 0F, 5, 2, 2); - Shape28.setRotationPoint(11F, -2.5F, -4.5F); - Shape28.setTextureSize(128, 32); - Shape28.mirror = true; - setRotation(Shape28, 0F, 0F, 0F); - Shape29 = new ModelRenderer(this, 26, 26); - Shape29.addBox(0F, 0F, 0F, 2, 2, 2); - Shape29.setRotationPoint(-18F, -3F, -4.5F); - Shape29.setTextureSize(128, 32); - Shape29.mirror = true; - setRotation(Shape29, 0F, 0F, 0F); - Shape30 = new ModelRenderer(this, 12, 30); - Shape30.addBox(0F, 0F, 0F, 5, 1, 1); - Shape30.setRotationPoint(-21F, -1F, -3.5F); - Shape30.setTextureSize(128, 32); - Shape30.mirror = true; - setRotation(Shape30, 0F, 0F, 0F); - Shape31 = new ModelRenderer(this, 62, 24); - Shape31.addBox(0F, 0F, 0F, 7, 1, 1); - Shape31.setRotationPoint(-21F, -3.5F, -5.5F); - Shape31.setTextureSize(128, 32); - Shape31.mirror = true; - setRotation(Shape31, 0F, 0F, 0F); - Shape32 = new ModelRenderer(this, 34, 26); - Shape32.addBox(0F, 0F, 0F, 1, 2, 2); - Shape32.setRotationPoint(-14F, -4F, -6F); - Shape32.setTextureSize(128, 32); - Shape32.mirror = true; - setRotation(Shape32, 0F, 0F, 0F); - Shape33 = new ModelRenderer(this, 40, 26); - Shape33.addBox(0F, -2F, 0F, 1, 2, 2); - Shape33.setRotationPoint(-13F, -2F, -6F); - Shape33.setTextureSize(128, 32); - Shape33.mirror = true; - setRotation(Shape33, 0F, 0F, -0.4363323F); - Shape34 = new ModelRenderer(this, 78, 24); - Shape34.addBox(0F, 0F, 0F, 3, 1, 1); - Shape34.setRotationPoint(-29F, -2F, -3F); - Shape34.setTextureSize(128, 32); - Shape34.mirror = true; - setRotation(Shape34, 0F, 0F, 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); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - Shape22.render(f5); - Shape23.render(f5); - Shape24.render(f5); - Shape25.render(f5); - Shape26.render(f5); - Shape27.render(f5); - Shape28.render(f5); - Shape29.render(f5); - Shape30.render(f5); - Shape31.render(f5); - Shape32.render(f5); - Shape33.render(f5); - Shape34.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - } - - 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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelHP.java b/src/main/java/com/hbm/render/model/ModelHP.java deleted file mode 100644 index dcdf2ec40..000000000 --- a/src/main/java/com/hbm/render/model/ModelHP.java +++ /dev/null @@ -1,194 +0,0 @@ -// Date: 21.02.2017 20:44:50 -// 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.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.entity.Entity; - -public class ModelHP extends ModelBase -{ - //fields - ModelRenderer Printer; - ModelRenderer Hatch; - ModelRenderer Display; - ModelRenderer Stock; - ModelRenderer StockBottom; - ModelRenderer StockPlate; - ModelRenderer Barrel; - ModelRenderer Lens1; - ModelRenderer Lens2; - ModelRenderer Lens3; - ModelRenderer Beam; - ModelRenderer Handle; - ModelRenderer Dot; - ModelRenderer Back; - ModelRenderer BackShaft; - ModelRenderer Muzzle; - ModelRenderer BarrelPlate; - - public ModelHP() - { - textureWidth = 64; - textureHeight = 64; - - Printer = new ModelRenderer(this, 0, 0); - Printer.addBox(0F, 0F, 0F, 12, 9, 6); - Printer.setRotationPoint(-6F, -3F, -3F); - Printer.setTextureSize(64, 64); - Printer.mirror = true; - setRotation(Printer, 0F, 0F, 0F); - Hatch = new ModelRenderer(this, 0, 15); - Hatch.addBox(0F, 0F, 0F, 6, 5, 1); - Hatch.setRotationPoint(-3F, -1F, -3F); - Hatch.setTextureSize(64, 64); - Hatch.mirror = true; - setRotation(Hatch, 0F, 0F, 0F); - Display = new ModelRenderer(this, 14, 15); - Display.addBox(0F, -2F, 0F, 2, 2, 1); - Display.setRotationPoint(3.5F, 0F, -3F); - Display.setTextureSize(64, 64); - Display.mirror = true; - setRotation(Display, 0.7853982F, 0F, 0F); - Stock = new ModelRenderer(this, 0, 21); - Stock.addBox(0F, 0F, 0F, 12, 3, 2); - Stock.setRotationPoint(6F, 0F, -1F); - Stock.setTextureSize(64, 64); - Stock.mirror = true; - setRotation(Stock, 0F, 0F, 0F); - StockBottom = new ModelRenderer(this, 20, 15); - StockBottom.addBox(0F, 0F, 0F, 3, 3, 2); - StockBottom.setRotationPoint(15F, 3F, -1F); - StockBottom.setTextureSize(64, 64); - StockBottom.mirror = true; - setRotation(StockBottom, 0F, 0F, 0F); - StockPlate = new ModelRenderer(this, 0, 26); - StockPlate.addBox(-8F, -3F, 0F, 8, 3, 2); - StockPlate.setRotationPoint(15F, 6F, -1F); - StockPlate.setTextureSize(64, 64); - StockPlate.mirror = true; - setRotation(StockPlate, 0F, 0F, 0.3839724F); - Barrel = new ModelRenderer(this, 0, 31); - Barrel.addBox(0F, 0F, 0F, 15, 2, 2); - Barrel.setRotationPoint(-21F, 0F, -1F); - Barrel.setTextureSize(64, 64); - Barrel.mirror = true; - setRotation(Barrel, 0F, 0F, 0F); - Lens1 = new ModelRenderer(this, 0, 35); - Lens1.addBox(0F, 0F, 0F, 1, 3, 3); - Lens1.setRotationPoint(-19F, -3F, -1.5F); - Lens1.setTextureSize(64, 64); - Lens1.mirror = true; - setRotation(Lens1, 0F, 0F, 0F); - Lens2 = new ModelRenderer(this, 8, 35); - Lens2.addBox(0F, 0F, 0F, 1, 4, 4); - Lens2.setRotationPoint(-16F, -3.5F, -2F); - Lens2.setTextureSize(64, 64); - Lens2.mirror = true; - setRotation(Lens2, 0F, 0F, 0F); - Lens3 = new ModelRenderer(this, 0, 41); - Lens3.addBox(0F, 0F, 0F, 1, 3, 3); - Lens3.setRotationPoint(-13F, -3F, -1.466667F); - Lens3.setTextureSize(64, 64); - Lens3.mirror = true; - setRotation(Lens3, 0F, 0F, 0F); - Beam = new ModelRenderer(this, 0, 47); - Beam.addBox(0F, 0F, 0F, 12, 1, 1); - Beam.setRotationPoint(-18F, -2F, -0.5F); - Beam.setTextureSize(64, 64); - Beam.mirror = true; - setRotation(Beam, 0F, 0F, 0F); - Handle = new ModelRenderer(this, 18, 35); - Handle.addBox(0F, 0F, 0F, 2, 6, 1); - Handle.setRotationPoint(-16F, 2F, -0.5F); - Handle.setTextureSize(64, 64); - Handle.mirror = true; - setRotation(Handle, 0F, 0F, -0.1745329F); - Dot = new ModelRenderer(this, 0, 49); - Dot.addBox(0F, 0F, 0F, 2, 1, 1); - Dot.setRotationPoint(-20F, 2F, -0.5F); - Dot.setTextureSize(64, 64); - Dot.mirror = true; - setRotation(Dot, 0F, 0F, 0F); - Back = new ModelRenderer(this, 0, 51); - Back.addBox(-1F, -3F, 0F, 1, 3, 2); - Back.setRotationPoint(7F, 0F, -1F); - Back.setTextureSize(64, 64); - Back.mirror = true; - setRotation(Back, 0F, 0F, -0.3490659F); - BackShaft = new ModelRenderer(this, 0, 56); - BackShaft.addBox(0F, 0F, 0F, 4, 1, 1); - BackShaft.setRotationPoint(6F, -1F, -0.5F); - BackShaft.setTextureSize(64, 64); - BackShaft.mirror = true; - setRotation(BackShaft, 0F, 0F, 0F); - Muzzle = new ModelRenderer(this, 0, 58); - Muzzle.addBox(0F, 0F, 0F, 1, 2, 2); - Muzzle.setRotationPoint(-6.5F, -2.5F, -1F); - Muzzle.setTextureSize(64, 64); - Muzzle.mirror = true; - setRotation(Muzzle, 0F, 0F, 0F); - BarrelPlate = new ModelRenderer(this, 6, 58); - BarrelPlate.addBox(-4F, -2F, 0F, 4, 2, 1); - BarrelPlate.setRotationPoint(-6F, 4F, -0.5F); - BarrelPlate.setTextureSize(64, 64); - BarrelPlate.mirror = true; - setRotation(BarrelPlate, 0F, 0F, 0.5235988F); - } - - @Override -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); - Printer.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Hatch.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Display.render(f5); - Stock.render(f5); - StockBottom.render(f5); - StockPlate.render(f5); - Barrel.render(f5); - GL11.glEnable(GL11.GL_BLEND); - //GL11.glDisable(GL11.GL_ALPHA_TEST); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - Lens1.render(f5); - Lens2.render(f5); - Lens3.render(f5); - Beam.render(f5); - GL11.glDisable(GL11.GL_BLEND); - Handle.render(f5); - Dot.render(f5); - Back.render(f5); - BackShaft.render(f5); - Muzzle.render(f5); - BarrelPlate.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelImmolator.java b/src/main/java/com/hbm/render/model/ModelImmolator.java deleted file mode 100644 index c94ca7deb..000000000 --- a/src/main/java/com/hbm/render/model/ModelImmolator.java +++ /dev/null @@ -1,247 +0,0 @@ -// Date: 22.11.2016 22:40:09 -// 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.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelImmolator extends ModelBase { - // fields - ModelRenderer CylinderBase; - ModelRenderer CylinderFront; - ModelRenderer PipeBBase; - ModelRenderer PipeB; - ModelRenderer TipBase; - ModelRenderer PipeL; - ModelRenderer PipeLFront; - ModelRenderer TipFront; - ModelRenderer ChamberH; - ModelRenderer ChamberW; - ModelRenderer PipeTBack; - ModelRenderer PipeTBase; - ModelRenderer PipeT; - ModelRenderer PipeTFront; - ModelRenderer Body; - ModelRenderer Tank; - ModelRenderer HandleBase; - ModelRenderer HandleBar; - ModelRenderer HandleGrip; - ModelRenderer BodyPlate; - ModelRenderer ValveFront; - ModelRenderer ValveCenter; - ModelRenderer Stock; - ModelRenderer LatchBase; - ModelRenderer LatchHandle; - ModelRenderer ValveBack; - - public ModelImmolator() { - textureWidth = 64; - textureHeight = 32; - - CylinderBase = new ModelRenderer(this, 0, 0); - CylinderBase.addBox(0F, 0F, 0F, 2, 4, 4); - CylinderBase.setRotationPoint(0F, 0F, -2F); - CylinderBase.setTextureSize(64, 32); - CylinderBase.mirror = true; - setRotation(CylinderBase, 0F, 0F, 0F); - CylinderFront = new ModelRenderer(this, 0, 8); - CylinderFront.addBox(0F, 0F, 0F, 1, 3, 3); - CylinderFront.setRotationPoint(-1F, 0.5F, -1.5F); - CylinderFront.setTextureSize(64, 32); - CylinderFront.mirror = true; - setRotation(CylinderFront, 0F, 0F, 0F); - PipeBBase = new ModelRenderer(this, 0, 14); - PipeBBase.addBox(0F, 0F, 0F, 2, 2, 2); - PipeBBase.setRotationPoint(-2F, 2F, 0F); - PipeBBase.setTextureSize(64, 32); - PipeBBase.mirror = true; - setRotation(PipeBBase, 0F, 0F, 0F); - PipeB = new ModelRenderer(this, 0, 18); - PipeB.addBox(0F, 0F, 0F, 8, 1, 1); - PipeB.setRotationPoint(-10F, 2.5F, 0.5F); - PipeB.setTextureSize(64, 32); - PipeB.mirror = true; - setRotation(PipeB, 0F, 0F, 0F); - TipBase = new ModelRenderer(this, 8, 8); - TipBase.addBox(0F, 0F, 0F, 2, 2, 2); - TipBase.setRotationPoint(-12F, 1.5F, -0.5F); - TipBase.setTextureSize(64, 32); - TipBase.mirror = true; - setRotation(TipBase, 0F, 0F, 0F); - PipeL = new ModelRenderer(this, 0, 20); - PipeL.addBox(0F, 0F, 0F, 7, 1, 1); - PipeL.setRotationPoint(-7F, 2.5F, -1.5F); - PipeL.setTextureSize(64, 32); - PipeL.mirror = true; - setRotation(PipeL, 0F, 0F, 0F); - PipeLFront = new ModelRenderer(this, 0, 22); - PipeLFront.addBox(-4F, 0F, 0F, 4, 1, 1); - PipeLFront.setRotationPoint(-7F, 2.5F, -1.5F); - PipeLFront.setTextureSize(64, 32); - PipeLFront.mirror = true; - setRotation(PipeLFront, 0F, 0.4363323F, 0F); - TipFront = new ModelRenderer(this, 8, 12); - TipFront.addBox(0F, 0F, 0F, 2, 1, 1); - TipFront.setRotationPoint(-14F, 2F, 0F); - TipFront.setTextureSize(64, 32); - TipFront.mirror = true; - setRotation(TipFront, 0F, 0F, 0F); - ChamberH = new ModelRenderer(this, 24, 0); - ChamberH.addBox(0F, 0F, 0F, 4, 5, 4); - ChamberH.setRotationPoint(2F, -0.5F, -2F); - ChamberH.setTextureSize(64, 32); - ChamberH.mirror = true; - setRotation(ChamberH, 0F, 0F, 0F); - ChamberW = new ModelRenderer(this, 40, 0); - ChamberW.addBox(0F, 0F, 0F, 4, 4, 5); - ChamberW.setRotationPoint(2F, 0F, -2.5F); - ChamberW.setTextureSize(64, 32); - ChamberW.mirror = true; - setRotation(ChamberW, 0F, 0F, 0F); - PipeTBack = new ModelRenderer(this, 0, 24); - PipeTBack.addBox(0F, 0F, 0F, 6, 1, 1); - PipeTBack.setRotationPoint(0F, -2F, 2.5F); - PipeTBack.setTextureSize(64, 32); - PipeTBack.mirror = true; - setRotation(PipeTBack, -0.4363323F, 0F, 0F); - PipeTBase = new ModelRenderer(this, 8, 14); - PipeTBase.addBox(0F, 1F, 0F, 1, 2, 1); - PipeTBase.setRotationPoint(1F, -2F, 2.5F); - PipeTBase.setTextureSize(64, 32); - PipeTBase.mirror = true; - setRotation(PipeTBase, -0.4363323F, 0F, 0F); - PipeT = new ModelRenderer(this, 0, 26); - PipeT.addBox(-9F, 0F, 0F, 9, 1, 1); - PipeT.setRotationPoint(0F, -2F, 2.5F); - PipeT.setTextureSize(64, 32); - PipeT.mirror = true; - setRotation(PipeT, -0.4363323F, -0.296706F, -0.4014257F); - PipeTFront = new ModelRenderer(this, 0, 28); - PipeTFront.addBox(0F, 0F, 0F, 3, 1, 1); - PipeTFront.setRotationPoint(-10F, 1.5F, 0F); - PipeTFront.setTextureSize(64, 32); - PipeTFront.mirror = true; - setRotation(PipeTFront, 0F, 0F, 0F); - Body = new ModelRenderer(this, 24, 9); - Body.addBox(0F, 0F, 0F, 10, 4, 4); - Body.setRotationPoint(6F, 0.5F, -1.5F); - Body.setTextureSize(64, 32); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - Tank = new ModelRenderer(this, 12, 0); - Tank.addBox(0F, 0F, 0F, 3, 3, 2); - Tank.setRotationPoint(6F, 1F, -3F); - Tank.setTextureSize(64, 32); - Tank.mirror = true; - setRotation(Tank, 0F, 0F, 0F); - HandleBase = new ModelRenderer(this, 24, 17); - HandleBase.addBox(0F, 0F, 0F, 2, 2, 1); - HandleBase.setRotationPoint(4F, 1F, -3F); - HandleBase.setTextureSize(64, 32); - HandleBase.mirror = true; - setRotation(HandleBase, 0F, 0F, 0F); - HandleBar = new ModelRenderer(this, 30, 17); - HandleBar.addBox(0F, 0F, 0F, 1, 1, 2); - HandleBar.setRotationPoint(4.5F, 1.5F, -5F); - HandleBar.setTextureSize(64, 32); - HandleBar.mirror = true; - setRotation(HandleBar, 0F, 0F, 0F); - HandleGrip = new ModelRenderer(this, 36, 17); - HandleGrip.addBox(0F, 0F, -2F, 1, 1, 2); - HandleGrip.setRotationPoint(4.5F, 1.5F, -5F); - HandleGrip.setTextureSize(64, 32); - HandleGrip.mirror = true; - setRotation(HandleGrip, 0F, -0.3490659F, 0F); - BodyPlate = new ModelRenderer(this, 24, 20); - BodyPlate.addBox(0F, 0F, 0F, 10, 1, 2); - BodyPlate.setRotationPoint(6F, 0F, 0F); - BodyPlate.setTextureSize(64, 32); - BodyPlate.mirror = true; - setRotation(BodyPlate, 0F, 0F, 0F); - ValveFront = new ModelRenderer(this, 0, 30); - ValveFront.addBox(0F, 0F, 0F, 1, 1, 1); - ValveFront.setRotationPoint(8F, -0.5F, 0.5F); - ValveFront.setTextureSize(64, 32); - ValveFront.mirror = true; - setRotation(ValveFront, 0F, 0F, 0F); - ValveCenter = new ModelRenderer(this, 4, 30); - ValveCenter.addBox(0F, 0F, 0F, 1, 1, 1); - ValveCenter.setRotationPoint(11F, -0.5F, 0.5F); - ValveCenter.setTextureSize(64, 32); - ValveCenter.mirror = true; - setRotation(ValveCenter, 0F, 0F, 0F); - Stock = new ModelRenderer(this, 24, 23); - Stock.addBox(0F, 0F, 0F, 2, 4, 2); - Stock.setRotationPoint(16F, 0.5F, 0F); - Stock.setTextureSize(64, 32); - Stock.mirror = true; - setRotation(Stock, 0F, 0F, 0F); - LatchBase = new ModelRenderer(this, 8, 28); - LatchBase.addBox(0F, 0F, 0F, 2, 1, 1); - LatchBase.setRotationPoint(16F, 0.5F, 2F); - LatchBase.setTextureSize(64, 32); - LatchBase.mirror = true; - setRotation(LatchBase, 0F, 0F, 0F); - LatchHandle = new ModelRenderer(this, 32, 23); - LatchHandle.addBox(0F, 0F, 0F, 2, 3, 1); - LatchHandle.setRotationPoint(16F, 0.5F, 3F); - LatchHandle.setTextureSize(64, 32); - LatchHandle.mirror = true; - setRotation(LatchHandle, 0F, 0F, 0F); - ValveBack = new ModelRenderer(this, 8, 30); - ValveBack.addBox(0F, 0F, 0F, 1, 1, 1); - ValveBack.setRotationPoint(17.5F, 1F, 0.5F); - ValveBack.setTextureSize(64, 32); - ValveBack.mirror = true; - setRotation(ValveBack, 0F, 0F, 0F); - } - - @Override - 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); - CylinderBase.render(f5); - CylinderFront.render(f5); - PipeBBase.render(f5); - PipeB.render(f5); - TipBase.render(f5); - PipeL.render(f5); - PipeLFront.render(f5); - TipFront.render(f5); - ChamberH.render(f5); - ChamberW.render(f5); - PipeTBack.render(f5); - PipeTBase.render(f5); - PipeT.render(f5); - PipeTFront.render(f5); - Body.render(f5); - Tank.render(f5); - HandleBase.render(f5); - HandleBar.render(f5); - HandleGrip.render(f5); - BodyPlate.render(f5); - ValveFront.render(f5); - ValveCenter.render(f5); - Stock.render(f5); - LatchBase.render(f5); - LatchHandle.render(f5); - ValveBack.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - 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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelJack.java b/src/main/java/com/hbm/render/model/ModelJack.java deleted file mode 100644 index c0621d054..000000000 --- a/src/main/java/com/hbm/render/model/ModelJack.java +++ /dev/null @@ -1,129 +0,0 @@ -// Date: 14.02.2017 18:33:04 -// 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.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelJack extends ModelBase -{ - //fields - ModelRenderer BarrelBR; - ModelRenderer BarrelBL; - ModelRenderer BarrelTR; - ModelRenderer BarrelTL; - ModelRenderer Body; - ModelRenderer Back; - ModelRenderer Plate; - ModelRenderer StockMain; - ModelRenderer StockBottom; - ModelRenderer StockPlate; - - public ModelJack() - { - textureWidth = 64; - textureHeight = 64; - - BarrelBR = new ModelRenderer(this, 0, 6); - BarrelBR.addBox(0F, 0F, 0F, 21, 3, 3); - BarrelBR.setRotationPoint(-18F, 0F, 0.2F); - BarrelBR.setTextureSize(64, 64); - BarrelBR.mirror = true; - setRotation(BarrelBR, 0F, 0F, 0F); - BarrelBL = new ModelRenderer(this, 0, 0); - BarrelBL.addBox(0F, 0F, 0F, 21, 3, 3); - BarrelBL.setRotationPoint(-18F, 0F, -3.2F); - BarrelBL.setTextureSize(64, 64); - BarrelBL.mirror = true; - setRotation(BarrelBL, 0F, 0F, 0F); - BarrelTR = new ModelRenderer(this, 0, 12); - BarrelTR.addBox(0F, 0F, 0F, 21, 3, 3); - BarrelTR.setRotationPoint(-18F, -3.2F, 0.2F); - BarrelTR.setTextureSize(64, 64); - BarrelTR.mirror = true; - setRotation(BarrelTR, 0F, 0F, 0F); - BarrelTL = new ModelRenderer(this, 0, 18); - BarrelTL.addBox(0F, 0F, 0F, 21, 3, 3); - BarrelTL.setRotationPoint(-18F, -3.2F, -3.2F); - BarrelTL.setTextureSize(64, 64); - BarrelTL.mirror = true; - setRotation(BarrelTL, 0F, 0F, 0F); - Body = new ModelRenderer(this, 0, 24); - Body.addBox(0F, 0F, 0F, 15, 7, 4); - Body.setRotationPoint(-9F, -2F, -2F); - Body.setTextureSize(64, 64); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - Back = new ModelRenderer(this, 38, 24); - Back.addBox(0F, 0F, 0F, 3, 5, 3); - Back.setRotationPoint(6F, 0F, -1.5F); - Back.setTextureSize(64, 64); - Back.mirror = true; - setRotation(Back, 0F, 0F, 0F); - Plate = new ModelRenderer(this, 0, 35); - Plate.addBox(0F, 0F, 0F, 4, 2, 3); - Plate.setRotationPoint(6F, -2F, -1.5F); - Plate.setTextureSize(64, 64); - Plate.mirror = true; - setRotation(Plate, 0F, 0F, 0.4363323F); - StockMain = new ModelRenderer(this, 0, 40); - StockMain.addBox(0F, 0F, 0F, 13, 3, 3); - StockMain.setRotationPoint(9F, 2F, -1.5F); - StockMain.setTextureSize(64, 64); - StockMain.mirror = true; - setRotation(StockMain, 0F, 0F, 0F); - StockBottom = new ModelRenderer(this, 0, 46); - StockBottom.addBox(0F, 0F, 0F, 6, 3, 3); - StockBottom.setRotationPoint(16F, 5F, -1.5F); - StockBottom.setTextureSize(64, 64); - StockBottom.mirror = true; - setRotation(StockBottom, 0F, 0F, 0F); - StockPlate = new ModelRenderer(this, 18, 46); - StockPlate.addBox(-8F, -3F, 0F, 8, 3, 3); - StockPlate.setRotationPoint(16F, 8F, -1.5F); - StockPlate.setTextureSize(64, 64); - StockPlate.mirror = true; - setRotation(StockPlate, 0F, 0F, 0.4014257F); - } - - @Override -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); - BarrelBR.render(f5); - BarrelBL.render(f5); - BarrelTR.render(f5); - BarrelTL.render(f5); - Body.render(f5); - Back.render(f5); - Plate.render(f5); - StockMain.render(f5); - StockBottom.render(f5); - StockPlate.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelLacunae.java b/src/main/java/com/hbm/render/model/ModelLacunae.java deleted file mode 100644 index ba9c0a519..000000000 --- a/src/main/java/com/hbm/render/model/ModelLacunae.java +++ /dev/null @@ -1,598 +0,0 @@ -// Date: 30.12.2018 13:53:06 -// 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.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelLacunae extends ModelBase { - // fields - ModelRenderer FrontP1; - ModelRenderer FrontP2; - ModelRenderer FrontP3; - ModelRenderer Barrel1; - ModelRenderer Barrel2; - ModelRenderer Barrel3; - ModelRenderer Barrel4; - ModelRenderer Barrel5; - ModelRenderer Barrel6; - ModelRenderer Brace1; - ModelRenderer Brace2; - ModelRenderer Brace3; - ModelRenderer Brace4; - ModelRenderer Brace5; - ModelRenderer Brace6; - ModelRenderer Brace7; - ModelRenderer Brace8; - ModelRenderer Brace9; - ModelRenderer Brace10; - ModelRenderer Brace11; - ModelRenderer Brace12; - ModelRenderer Disc1; - ModelRenderer Disc2; - ModelRenderer Disc3; - ModelRenderer Disc4; - ModelRenderer Disc5; - ModelRenderer Disc6; - ModelRenderer Disc7; - ModelRenderer Disc8; - ModelRenderer BodyF1; - ModelRenderer BodyF2; - ModelRenderer BodyF3; - ModelRenderer BodyR1; - ModelRenderer BodyR2; - ModelRenderer BodyL1; - ModelRenderer BodyL2; - ModelRenderer BackP1; - ModelRenderer BackP2; - ModelRenderer BackP3; - ModelRenderer Block; - ModelRenderer AchsleF; - ModelRenderer Drum1; - ModelRenderer Drum2; - ModelRenderer DrumT; - ModelRenderer StickBase; - ModelRenderer Stick; - ModelRenderer AchsleB; - ModelRenderer Motor1; - ModelRenderer Motor2; - ModelRenderer Pipe1; - ModelRenderer Frame1; - ModelRenderer Frame2; - ModelRenderer Frame3; - ModelRenderer Frame4; - ModelRenderer Grip; - ModelRenderer Pipe2; - ModelRenderer PipeT; - ModelRenderer Pipe3; - ModelRenderer Pipe4; - ModelRenderer AmmoFrame; - ModelRenderer ClampB; - ModelRenderer ClampF; - ModelRenderer AmmoBox; - - public ModelLacunae() { - textureWidth = 128; - textureHeight = 128; - - FrontP1 = new ModelRenderer(this, 0, 52); - FrontP1.addBox(0F, 0F, 0F, 3, 8, 4); - FrontP1.setRotationPoint(-2F, 0F, -2F); - FrontP1.setTextureSize(128, 128); - FrontP1.mirror = true; - setRotation(FrontP1, 0F, 0F, 0F); - FrontP2 = new ModelRenderer(this, 14, 52); - FrontP2.addBox(0F, 0F, 0F, 3, 4, 8); - FrontP2.setRotationPoint(-2F, 2F, -4F); - FrontP2.setTextureSize(128, 128); - FrontP2.mirror = true; - setRotation(FrontP2, 0F, 0F, 0F); - FrontP3 = new ModelRenderer(this, 0, 38); - FrontP3.addBox(0F, 0F, 0F, 3, 7, 7); - FrontP3.setRotationPoint(-2F, 0.5F, -3.5F); - FrontP3.setTextureSize(128, 128); - FrontP3.mirror = true; - setRotation(FrontP3, 0F, 0F, 0F); - Barrel1 = new ModelRenderer(this, 64, 62); - Barrel1.addBox(0F, -2.5F, -0.5F, 31, 1, 1); - Barrel1.setRotationPoint(1F, 4F, 0F); - Barrel1.setTextureSize(128, 128); - Barrel1.mirror = true; - setRotation(Barrel1, 0F, 0F, 0F); - Barrel2 = new ModelRenderer(this, 64, 62); - Barrel2.addBox(0F, -2.5F, -0.5F, 31, 1, 1); - Barrel2.setRotationPoint(1F, 4F, 0F); - Barrel2.setTextureSize(128, 128); - Barrel2.mirror = true; - setRotation(Barrel2, 0.6457718F, 0F, 0F); - Barrel3 = new ModelRenderer(this, 64, 62); - Barrel3.addBox(0F, -2.5F, -0.5F, 31, 1, 1); - Barrel3.setRotationPoint(1F, 4F, 0F); - Barrel3.setTextureSize(128, 128); - Barrel3.mirror = true; - setRotation(Barrel3, 2.268928F, 0F, 0F); - Barrel4 = new ModelRenderer(this, 64, 62); - Barrel4.addBox(0F, -2.5F, -0.5F, 31, 1, 1); - Barrel4.setRotationPoint(1F, 4F, 0F); - Barrel4.setTextureSize(128, 128); - Barrel4.mirror = true; - setRotation(Barrel4, 2.9147F, 0F, 0F); - Barrel5 = new ModelRenderer(this, 64, 62); - Barrel5.addBox(0F, -2.5F, -0.5F, 31, 1, 1); - Barrel5.setRotationPoint(1F, 4F, 0F); - Barrel5.setTextureSize(128, 128); - Barrel5.mirror = true; - setRotation(Barrel5, -1.919862F, 0F, 0F); - Barrel6 = new ModelRenderer(this, 64, 62); - Barrel6.addBox(0F, -2.5F, -0.5F, 31, 1, 1); - Barrel6.setRotationPoint(1F, 4F, 0F); - Barrel6.setTextureSize(128, 128); - Barrel6.mirror = true; - setRotation(Barrel6, -1.27409F, 0F, 0F); - Brace1 = new ModelRenderer(this, 20, 48); - Brace1.addBox(0F, -3F, -1F, 5, 2, 2); - Brace1.setRotationPoint(25F, 4F, 0F); - Brace1.setTextureSize(128, 128); - Brace1.mirror = true; - setRotation(Brace1, 0F, 0F, 0F); - Brace2 = new ModelRenderer(this, 20, 48); - Brace2.addBox(0F, -3F, -1F, 5, 2, 2); - Brace2.setRotationPoint(25F, 4F, 0F); - Brace2.setTextureSize(128, 128); - Brace2.mirror = true; - setRotation(Brace2, 0.6457718F, 0F, 0F); - Brace3 = new ModelRenderer(this, 20, 44); - Brace3.addBox(0F, -3F, -1F, 5, 2, 2); - Brace3.setRotationPoint(4F, 4F, 0F); - Brace3.setTextureSize(128, 128); - Brace3.mirror = true; - setRotation(Brace3, 2.268928F, 0F, 0F); - Brace4 = new ModelRenderer(this, 20, 44); - Brace4.addBox(0F, -3F, -1F, 5, 2, 2); - Brace4.setRotationPoint(4F, 4F, 0F); - Brace4.setTextureSize(128, 128); - Brace4.mirror = true; - setRotation(Brace4, 2.9147F, 0F, 0F); - Brace5 = new ModelRenderer(this, 20, 44); - Brace5.addBox(0F, -3F, -1F, 5, 2, 2); - Brace5.setRotationPoint(4F, 4F, 0F); - Brace5.setTextureSize(128, 128); - Brace5.mirror = true; - setRotation(Brace5, -1.919862F, 0F, 0F); - Brace6 = new ModelRenderer(this, 20, 44); - Brace6.addBox(0F, -3F, -1F, 5, 2, 2); - Brace6.setRotationPoint(4F, 4F, 0F); - Brace6.setTextureSize(128, 128); - Brace6.mirror = true; - setRotation(Brace6, -1.27409F, 0F, 0F); - Brace7 = new ModelRenderer(this, 20, 44); - Brace7.addBox(0F, -3F, -1F, 5, 2, 2); - Brace7.setRotationPoint(4F, 4F, 0F); - Brace7.setTextureSize(128, 128); - Brace7.mirror = true; - setRotation(Brace7, 0F, 0F, 0F); - Brace8 = new ModelRenderer(this, 20, 44); - Brace8.addBox(0F, -3F, -1F, 5, 2, 2); - Brace8.setRotationPoint(4F, 4F, 0F); - Brace8.setTextureSize(128, 128); - Brace8.mirror = true; - setRotation(Brace8, 0.6457718F, 0F, 0F); - Brace9 = new ModelRenderer(this, 20, 48); - Brace9.addBox(0F, -3F, -1F, 5, 2, 2); - Brace9.setRotationPoint(25F, 4F, 0F); - Brace9.setTextureSize(128, 128); - Brace9.mirror = true; - setRotation(Brace9, 2.268928F, 0F, 0F); - Brace10 = new ModelRenderer(this, 20, 48); - Brace10.addBox(0F, -3F, -1F, 5, 2, 2); - Brace10.setRotationPoint(25F, 4F, 0F); - Brace10.setTextureSize(128, 128); - Brace10.mirror = true; - setRotation(Brace10, 2.9147F, 0F, 0F); - Brace11 = new ModelRenderer(this, 20, 48); - Brace11.addBox(0F, -3F, -1F, 5, 2, 2); - Brace11.setRotationPoint(25F, 4F, 0F); - Brace11.setTextureSize(128, 128); - Brace11.mirror = true; - setRotation(Brace11, -1.919862F, 0F, 0F); - Brace12 = new ModelRenderer(this, 20, 48); - Brace12.addBox(0F, -3F, -1F, 5, 2, 2); - Brace12.setRotationPoint(25F, 4F, 0F); - Brace12.setTextureSize(128, 128); - Brace12.mirror = true; - setRotation(Brace12, -1.27409F, 0F, 0F); - Disc1 = new ModelRenderer(this, 36, 54); - Disc1.addBox(0F, -3.5F, -1.5F, 2, 7, 3); - Disc1.setRotationPoint(15F, 4F, 0F); - Disc1.setTextureSize(128, 128); - Disc1.mirror = true; - setRotation(Disc1, 0F, 0F, 0F); - Disc2 = new ModelRenderer(this, 46, 54); - Disc2.addBox(0F, -3.5F, -1.5F, 2, 7, 3); - Disc2.setRotationPoint(15F, 4F, 0F); - Disc2.setTextureSize(128, 128); - Disc2.mirror = true; - setRotation(Disc2, 0.7853982F, 0F, 0F); - Disc3 = new ModelRenderer(this, 36, 44); - Disc3.addBox(0F, -3.5F, -1.5F, 2, 7, 3); - Disc3.setRotationPoint(15F, 4F, 0F); - Disc3.setTextureSize(128, 128); - Disc3.mirror = true; - setRotation(Disc3, 1.570796F, 0F, 0F); - Disc4 = new ModelRenderer(this, 46, 44); - Disc4.addBox(0F, -3.5F, -1.5F, 2, 7, 3); - Disc4.setRotationPoint(15F, 4F, 0F); - Disc4.setTextureSize(128, 128); - Disc4.mirror = true; - setRotation(Disc4, 2.356194F, 0F, 0F); - Disc5 = new ModelRenderer(this, 56, 54); - Disc5.addBox(0F, -3.5F, -1.5F, 1, 7, 3); - Disc5.setRotationPoint(2F, 4F, 0F); - Disc5.setTextureSize(128, 128); - Disc5.mirror = true; - setRotation(Disc5, 0F, 0F, 0F); - Disc6 = new ModelRenderer(this, 56, 44); - Disc6.addBox(0F, -3.5F, -1.5F, 1, 7, 3); - Disc6.setRotationPoint(2F, 4F, 0F); - Disc6.setTextureSize(128, 128); - Disc6.mirror = true; - setRotation(Disc6, 1.570796F, 0F, 0F); - Disc7 = new ModelRenderer(this, 64, 52); - Disc7.addBox(0F, -3.5F, -1.5F, 1, 7, 3); - Disc7.setRotationPoint(2F, 4F, 0F); - Disc7.setTextureSize(128, 128); - Disc7.mirror = true; - setRotation(Disc7, 0.7853982F, 0F, 0F); - Disc8 = new ModelRenderer(this, 72, 52); - Disc8.addBox(0F, -3.5F, -1.5F, 1, 7, 3); - Disc8.setRotationPoint(2F, 4F, 0F); - Disc8.setTextureSize(128, 128); - Disc8.mirror = true; - setRotation(Disc8, 2.356194F, 0F, 0F); - BodyF1 = new ModelRenderer(this, 80, 48); - BodyF1.addBox(0F, 0F, 0F, 7, 10, 4); - BodyF1.setRotationPoint(-9F, -1F, -2F); - BodyF1.setTextureSize(128, 128); - BodyF1.mirror = true; - setRotation(BodyF1, 0F, 0F, 0F); - BodyF2 = new ModelRenderer(this, 64, 34); - BodyF2.addBox(0F, 0F, 0F, 7, 4, 10); - BodyF2.setRotationPoint(-9F, 2F, -5F); - BodyF2.setTextureSize(128, 128); - BodyF2.mirror = true; - setRotation(BodyF2, 0F, 0F, 0F); - BodyF3 = new ModelRenderer(this, 98, 32); - BodyF3.addBox(0F, 0F, 0F, 7, 8, 8); - BodyF3.setRotationPoint(-9F, 0F, -4F); - BodyF3.setTextureSize(128, 128); - BodyF3.mirror = true; - setRotation(BodyF3, 0F, 0F, 0F); - BodyR1 = new ModelRenderer(this, 102, 55); - BodyR1.addBox(0F, 0F, 0F, 8, 4, 3); - BodyR1.setRotationPoint(-9.5F, 4.5F, -6F); - BodyR1.setTextureSize(128, 128); - BodyR1.mirror = true; - setRotation(BodyR1, 0F, 0F, 0F); - BodyR2 = new ModelRenderer(this, 102, 48); - BodyR2.addBox(0F, 0F, 0F, 8, 3, 4); - BodyR2.setRotationPoint(-9.5F, 5F, -6.5F); - BodyR2.setTextureSize(128, 128); - BodyR2.mirror = true; - setRotation(BodyR2, 0F, 0F, 0F); - BodyL1 = new ModelRenderer(this, 106, 17); - BodyL1.addBox(0F, 0F, 0F, 8, 4, 3); - BodyL1.setRotationPoint(-9.5F, 4.5F, 3F); - BodyL1.setTextureSize(128, 128); - BodyL1.mirror = true; - setRotation(BodyL1, 0F, 0F, 0F); - BodyL2 = new ModelRenderer(this, 104, 10); - BodyL2.addBox(0F, 0F, 0F, 8, 3, 4); - BodyL2.setRotationPoint(-9.5F, 5F, 2.5F); - BodyL2.setTextureSize(128, 128); - BodyL2.mirror = true; - setRotation(BodyL2, 0F, 0F, 0F); - BackP1 = new ModelRenderer(this, 54, 32); - BackP1.addBox(0F, 0F, 0F, 1, 8, 4); - BackP1.setRotationPoint(-10F, 0F, -2F); - BackP1.setTextureSize(128, 128); - BackP1.mirror = true; - setRotation(BackP1, 0F, 0F, 0F); - BackP2 = new ModelRenderer(this, 36, 32); - BackP2.addBox(0F, 0F, 0F, 1, 4, 8); - BackP2.setRotationPoint(-10F, 2F, -4F); - BackP2.setTextureSize(128, 128); - BackP2.mirror = true; - setRotation(BackP2, 0F, 0F, 0F); - BackP3 = new ModelRenderer(this, 20, 30); - BackP3.addBox(0F, 0F, 0F, 1, 7, 7); - BackP3.setRotationPoint(-10F, 0.5F, -3.5F); - BackP3.setTextureSize(128, 128); - BackP3.mirror = true; - setRotation(BackP3, 0F, 0F, 0F); - Block = new ModelRenderer(this, 98, 64); - Block.addBox(0F, 0F, 0F, 5, 9, 10); - Block.setRotationPoint(-27F, -1F, -5F); - Block.setTextureSize(128, 128); - Block.mirror = true; - setRotation(Block, 0F, 0F, 0F); - AchsleF = new ModelRenderer(this, 0, 34); - AchsleF.addBox(0F, 0F, 0F, 1, 2, 2); - AchsleF.setRotationPoint(-22F, 3F, -1F); - AchsleF.setTextureSize(128, 128); - AchsleF.mirror = true; - setRotation(AchsleF, 0F, 0F, 0F); - Drum1 = new ModelRenderer(this, 100, 24); - Drum1.addBox(0F, 0F, 0F, 11, 5, 3); - Drum1.setRotationPoint(-21F, 1.5F, -1.5F); - Drum1.setTextureSize(128, 128); - Drum1.mirror = true; - setRotation(Drum1, 0F, 0F, 0F); - Drum2 = new ModelRenderer(this, 96, 2); - Drum2.addBox(0F, 0F, 0F, 11, 3, 5); - Drum2.setRotationPoint(-21F, 2.5F, -2.5F); - Drum2.setTextureSize(128, 128); - Drum2.mirror = true; - setRotation(Drum2, 0F, 0F, 0F); - DrumT = new ModelRenderer(this, 34, 26); - DrumT.addBox(0F, 0F, 0F, 12, 1, 5); - DrumT.setRotationPoint(-22F, 0F, -2.5F); - DrumT.setTextureSize(128, 128); - DrumT.mirror = true; - setRotation(DrumT, 0F, 0F, 0F); - StickBase = new ModelRenderer(this, 6, 33); - StickBase.addBox(0F, 0F, 0F, 3, 2, 3); - StickBase.setRotationPoint(-26F, -3F, -1.5F); - StickBase.setTextureSize(128, 128); - StickBase.mirror = true; - setRotation(StickBase, 0F, 0F, 0F); - Stick = new ModelRenderer(this, 28, 72); - Stick.addBox(0F, -7F, 0F, 2, 7, 2); - Stick.setRotationPoint(-25.5F, -3F, -1F); - Stick.setTextureSize(128, 128); - Stick.mirror = true; - setRotation(Stick, 0F, 0F, 0.5235988F); - AchsleB = new ModelRenderer(this, 56, 66); - AchsleB.addBox(0F, 0F, 0F, 3, 2, 2); - AchsleB.setRotationPoint(-30F, 3F, -1F); - AchsleB.setTextureSize(128, 128); - AchsleB.mirror = true; - setRotation(AchsleB, 0F, 0F, 0F); - Motor1 = new ModelRenderer(this, 80, 66); - Motor1.addBox(0F, 0F, 0F, 5, 6, 4); - Motor1.setRotationPoint(-35F, 1F, -2F); - Motor1.setTextureSize(128, 128); - Motor1.mirror = true; - setRotation(Motor1, 0F, 0F, 0F); - Motor2 = new ModelRenderer(this, 76, 76); - Motor2.addBox(0F, 0F, 0F, 5, 4, 6); - Motor2.setRotationPoint(-35F, 2F, -3F); - Motor2.setTextureSize(128, 128); - Motor2.mirror = true; - setRotation(Motor2, 0F, 0F, 0F); - Pipe1 = new ModelRenderer(this, 62, 64); - Pipe1.addBox(0F, 0F, 0F, 16, 1, 1); - Pipe1.setRotationPoint(-23F, -1F, -6F); - Pipe1.setTextureSize(128, 128); - Pipe1.mirror = true; - setRotation(Pipe1, 0F, 0F, 0.2617994F); - Frame1 = new ModelRenderer(this, 0, 103); - Frame1.addBox(0F, 0F, 0F, 1, 1, 11); - Frame1.setRotationPoint(-1F, -2F, -5.5F); - Frame1.setTextureSize(128, 128); - Frame1.mirror = true; - setRotation(Frame1, 0F, 0F, 0F); - Frame2 = new ModelRenderer(this, 24, 73); - Frame2.addBox(0F, 0F, 0F, 1, 5, 1); - Frame2.setRotationPoint(-1F, -1.5F, -6F); - Frame2.setTextureSize(128, 128); - Frame2.mirror = true; - setRotation(Frame2, 0F, 0F, 0F); - Frame3 = new ModelRenderer(this, 28, 70); - Frame3.addBox(0F, 0F, 0F, 6, 1, 1); - Frame3.setRotationPoint(-6.5F, 3F, -6F); - Frame3.setTextureSize(128, 128); - Frame3.mirror = true; - setRotation(Frame3, 0F, 0F, 0F); - Frame4 = new ModelRenderer(this, 52, 66); - Frame4.addBox(0F, 0F, 0F, 1, 3, 1); - Frame4.setRotationPoint(-1F, -1.5F, 5F); - Frame4.setTextureSize(128, 128); - Frame4.mirror = true; - setRotation(Frame4, 0F, 0F, 0F); - Grip = new ModelRenderer(this, 0, 95); - Grip.addBox(0F, 0F, 0F, 2, 2, 6); - Grip.setRotationPoint(-3F, 0F, 5F); - Grip.setTextureSize(128, 128); - Grip.mirror = true; - setRotation(Grip, 0F, 0F, 0F); - Pipe2 = new ModelRenderer(this, 28, 68); - Pipe2.addBox(-11F, 0F, 0F, 11, 1, 1); - Pipe2.setRotationPoint(-26F, -1F, -6F); - Pipe2.setTextureSize(128, 128); - Pipe2.mirror = true; - setRotation(Pipe2, 0F, 0F, -0.6108652F); - PipeT = new ModelRenderer(this, 0, 84); - PipeT.addBox(0F, 0F, 0F, 1, 1, 10); - PipeT.setRotationPoint(-34.5F, 4.5F, -5F); - PipeT.setTextureSize(128, 128); - PipeT.mirror = true; - setRotation(PipeT, 0F, 0F, 0F); - Pipe3 = new ModelRenderer(this, 28, 66); - Pipe3.addBox(-11F, 0F, 0F, 11, 1, 1); - Pipe3.setRotationPoint(-26F, -1F, 5F); - Pipe3.setTextureSize(128, 128); - Pipe3.mirror = true; - setRotation(Pipe3, 0F, 0F, -0.6108652F); - Pipe4 = new ModelRenderer(this, 28, 64); - Pipe4.addBox(0F, 0F, 0F, 16, 1, 1); - Pipe4.setRotationPoint(-23F, -1F, 5F); - Pipe4.setTextureSize(128, 128); - Pipe4.mirror = true; - setRotation(Pipe4, 0F, 0F, 0.2617994F); - AmmoFrame = new ModelRenderer(this, 0, 0); - AmmoFrame.addBox(0F, 0F, 0F, 10, 12, 12); - AmmoFrame.setRotationPoint(-21F, 9F, -6F); - AmmoFrame.setTextureSize(128, 128); - AmmoFrame.mirror = true; - setRotation(AmmoFrame, 0F, 0F, 0F); - ClampB = new ModelRenderer(this, 0, 73); - ClampB.addBox(0F, 0F, 0F, 4, 3, 8); - ClampB.setRotationPoint(-25F, 8F, -4F); - ClampB.setTextureSize(128, 128); - ClampB.mirror = true; - setRotation(ClampB, 0F, 0F, 0F); - ClampF = new ModelRenderer(this, 0, 64); - ClampF.addBox(0F, 0F, 0F, 8, 3, 6); - ClampF.setRotationPoint(-11F, 9F, -3F); - ClampF.setTextureSize(128, 128); - ClampF.mirror = true; - setRotation(ClampF, 0F, 0F, 0F); - AmmoBox = new ModelRenderer(this, 44, 0); - AmmoBox.addBox(0F, 0F, 0F, 9, 11, 11); - AmmoBox.setRotationPoint(-20.5F, 9.5F, -5.5F); - AmmoBox.setTextureSize(128, 128); - AmmoBox.mirror = true; - setRotation(AmmoBox, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, float rot) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - - rot *= Math.PI / 180F; - - Barrel1.rotateAngleX += rot; - Barrel2.rotateAngleX += rot; - Barrel3.rotateAngleX += rot; - Barrel4.rotateAngleX += rot; - Barrel5.rotateAngleX += rot; - Barrel6.rotateAngleX += rot; - Brace1.rotateAngleX += rot; - Brace2.rotateAngleX += rot; - Brace3.rotateAngleX += rot; - Brace4.rotateAngleX += rot; - Brace5.rotateAngleX += rot; - Brace6.rotateAngleX += rot; - Brace7.rotateAngleX += rot; - Brace8.rotateAngleX += rot; - Brace9.rotateAngleX += rot; - Brace10.rotateAngleX += rot; - Brace11.rotateAngleX += rot; - Brace12.rotateAngleX += rot; - Disc1.rotateAngleX += rot; - Disc2.rotateAngleX += rot; - Disc3.rotateAngleX += rot; - Disc4.rotateAngleX += rot; - Disc5.rotateAngleX += rot; - Disc6.rotateAngleX += rot; - Disc7.rotateAngleX += rot; - Disc8.rotateAngleX += rot; - - FrontP1.render(f5); - FrontP2.render(f5); - FrontP3.render(f5); - Barrel1.render(f5); - Barrel2.render(f5); - Barrel3.render(f5); - Barrel4.render(f5); - Barrel5.render(f5); - Barrel6.render(f5); - Brace1.render(f5); - Brace2.render(f5); - Brace3.render(f5); - Brace4.render(f5); - Brace5.render(f5); - Brace6.render(f5); - Brace7.render(f5); - Brace8.render(f5); - Brace9.render(f5); - Brace10.render(f5); - Brace11.render(f5); - Brace12.render(f5); - Disc1.render(f5); - Disc2.render(f5); - Disc3.render(f5); - Disc4.render(f5); - Disc5.render(f5); - Disc6.render(f5); - Disc7.render(f5); - Disc8.render(f5); - BodyF1.render(f5); - BodyF2.render(f5); - BodyF3.render(f5); - BodyR1.render(f5); - BodyR2.render(f5); - BodyL1.render(f5); - BodyL2.render(f5); - BackP1.render(f5); - BackP2.render(f5); - BackP3.render(f5); - Block.render(f5); - AchsleF.render(f5); - Drum1.render(f5); - Drum2.render(f5); - DrumT.render(f5); - StickBase.render(f5); - Stick.render(f5); - AchsleB.render(f5); - Motor1.render(f5); - Motor2.render(f5); - Pipe1.render(f5); - Frame1.render(f5); - Frame2.render(f5); - Frame3.render(f5); - Frame4.render(f5); - Grip.render(f5); - Pipe2.render(f5); - PipeT.render(f5); - Pipe3.render(f5); - Pipe4.render(f5); - AmmoFrame.render(f5); - ClampB.render(f5); - ClampF.render(f5); - AmmoBox.render(f5); - - Barrel1.rotateAngleX -= rot; - Barrel2.rotateAngleX -= rot; - Barrel3.rotateAngleX -= rot; - Barrel4.rotateAngleX -= rot; - Barrel5.rotateAngleX -= rot; - Barrel6.rotateAngleX -= rot; - Brace1.rotateAngleX -= rot; - Brace2.rotateAngleX -= rot; - Brace3.rotateAngleX -= rot; - Brace4.rotateAngleX -= rot; - Brace5.rotateAngleX -= rot; - Brace6.rotateAngleX -= rot; - Brace7.rotateAngleX -= rot; - Brace8.rotateAngleX -= rot; - Brace9.rotateAngleX -= rot; - Brace10.rotateAngleX -= rot; - Brace11.rotateAngleX -= rot; - Brace12.rotateAngleX -= rot; - Disc1.rotateAngleX -= rot; - Disc2.rotateAngleX -= rot; - Disc3.rotateAngleX -= rot; - Disc4.rotateAngleX -= rot; - Disc5.rotateAngleX -= rot; - Disc6.rotateAngleX -= rot; - Disc7.rotateAngleX -= rot; - Disc8.rotateAngleX -= rot; - } - - 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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelLeverAction.java b/src/main/java/com/hbm/render/model/ModelLeverAction.java deleted file mode 100644 index c45cc2986..000000000 --- a/src/main/java/com/hbm/render/model/ModelLeverAction.java +++ /dev/null @@ -1,233 +0,0 @@ -// Date: 13.01.2018 16:04:59 -// 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.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelLeverAction extends ModelBase { - // fields - ModelRenderer Barrel1; - ModelRenderer Barrel2; - ModelRenderer Barrel3; - ModelRenderer Barrel4; - ModelRenderer Grip; - ModelRenderer Front1; - ModelRenderer Front2; - ModelRenderer BodyFront; - ModelRenderer BodyTop; - ModelRenderer BodyMain; - ModelRenderer BodyPlate; - ModelRenderer HandleMain; - ModelRenderer HandleBottom; - ModelRenderer HandleBack; - ModelRenderer LeverFront; - ModelRenderer LeverBottom; - ModelRenderer LeverMid; - ModelRenderer LeverFrontPlate; - ModelRenderer LeverBackBottom; - ModelRenderer Trigger; - ModelRenderer LeverBackTop; - ModelRenderer LeverBack; - - public ModelLeverAction() { - textureWidth = 128; - textureHeight = 64; - - Barrel1 = new ModelRenderer(this, 0, 0); - Barrel1.addBox(0F, 0F, 0F, 60, 3, 2); - Barrel1.setRotationPoint(-60F, 1.5F, -1F); - Barrel1.setTextureSize(64, 32); - Barrel1.mirror = true; - setRotation(Barrel1, 0F, 0F, 0F); - Barrel2 = new ModelRenderer(this, 0, 5); - Barrel2.addBox(0F, 0F, 0F, 60, 2, 3); - Barrel2.setRotationPoint(-60F, 2F, -1.5F); - Barrel2.setTextureSize(64, 32); - Barrel2.mirror = true; - setRotation(Barrel2, 0F, 0F, 0F); - Barrel3 = new ModelRenderer(this, 0, 10); - Barrel3.addBox(0F, 0F, 0F, 10, 2, 3); - Barrel3.setRotationPoint(-46F, 6F, -1.5F); - Barrel3.setTextureSize(64, 32); - Barrel3.mirror = true; - setRotation(Barrel3, 0F, 0F, 0F); - Barrel4 = new ModelRenderer(this, 26, 10); - Barrel4.addBox(0F, 0F, 0F, 10, 3, 2); - Barrel4.setRotationPoint(-46F, 5.5F, -1F); - Barrel4.setTextureSize(64, 32); - Barrel4.mirror = true; - setRotation(Barrel4, 0F, 0F, 0F); - Grip = new ModelRenderer(this, 0, 15); - Grip.addBox(0F, 0F, 0F, 36, 6, 4); - Grip.setRotationPoint(-36F, 3F, -2F); - Grip.setTextureSize(64, 32); - Grip.mirror = true; - setRotation(Grip, 0F, 0F, 0F); - Front1 = new ModelRenderer(this, 50, 10); - Front1.addBox(0F, 0F, 0F, 3, 2, 1); - Front1.setRotationPoint(-50F, 4.5F, -0.5F); - Front1.setTextureSize(64, 32); - Front1.mirror = true; - setRotation(Front1, 0F, 0F, 0F); - Front2 = new ModelRenderer(this, 58, 10); - Front2.addBox(0F, 0F, 0F, 3, 1, 2); - Front2.setRotationPoint(-50F, 6.5F, -1F); - Front2.setTextureSize(64, 32); - Front2.mirror = true; - setRotation(Front2, 0F, 0F, 0F); - BodyFront = new ModelRenderer(this, 0, 25); - BodyFront.addBox(0F, 0F, 0F, 3, 8, 4); - BodyFront.setRotationPoint(0F, 1.5F, -2F); - BodyFront.setTextureSize(64, 32); - BodyFront.mirror = true; - setRotation(BodyFront, 0F, 0F, 0F); - BodyTop = new ModelRenderer(this, 14, 25); - BodyTop.addBox(0F, 0F, 0F, 3, 1, 3); - BodyTop.setRotationPoint(0F, 1F, -1.5F); - BodyTop.setTextureSize(64, 32); - BodyTop.mirror = true; - setRotation(BodyTop, 0F, 0F, 0F); - BodyMain = new ModelRenderer(this, 0, 37); - BodyMain.addBox(0F, 0F, 0F, 12, 7, 4); - BodyMain.setRotationPoint(3F, 2.5F, -2F); - BodyMain.setTextureSize(64, 32); - BodyMain.mirror = true; - setRotation(BodyMain, 0F, 0F, 0F); - BodyPlate = new ModelRenderer(this, 26, 25); - BodyPlate.addBox(0F, 0F, 0F, 10, 2, 3); - BodyPlate.setRotationPoint(3F, 1F, -1.5F); - BodyPlate.setTextureSize(64, 32); - BodyPlate.mirror = true; - setRotation(BodyPlate, 0F, 0F, 0.1570796F); - HandleMain = new ModelRenderer(this, 0, 48); - HandleMain.addBox(0F, 0F, 0F, 18, 5, 4); - HandleMain.setRotationPoint(15F, 4F, -2F); - HandleMain.setTextureSize(128, 64); - HandleMain.mirror = true; - setRotation(HandleMain, 0F, 0F, 0.4363323F); - HandleBottom = new ModelRenderer(this, 0, 57); - HandleBottom.addBox(4F, 4.5F, 0F, 13, 1, 4); - HandleBottom.setRotationPoint(15F, 4F, -2F); - HandleBottom.setTextureSize(128, 64); - HandleBottom.mirror = true; - setRotation(HandleBottom, 0F, 0F, 0.4363323F); - HandleBack = new ModelRenderer(this, 34, 57); - HandleBack.addBox(17.5F, 0.5F, 0F, 1, 4, 3); - HandleBack.setRotationPoint(15F, 4F, -1.5F); - HandleBack.setTextureSize(128, 64); - HandleBack.mirror = true; - setRotation(HandleBack, 0F, 0F, 0.4363323F); - LeverFront = new ModelRenderer(this, 62, 30); - LeverFront.addBox(-1F, 0F, 0F, 2, 4, 2); - LeverFront.setRotationPoint(7F, 9F, -1F); - LeverFront.setTextureSize(128, 64); - LeverFront.mirror = true; - setRotation(LeverFront, 0F, 0F, 0F); - LeverBottom = new ModelRenderer(this, 70, 30); - LeverBottom.addBox(0F, 4F, 0F, 6, 1, 2); - LeverBottom.setRotationPoint(7F, 9F, -1F); - LeverBottom.setTextureSize(128, 64); - LeverBottom.mirror = true; - setRotation(LeverBottom, 0F, 0F, 0F); - LeverMid = new ModelRenderer(this, 62, 36); - LeverMid.addBox(6F, 0F, 0F, 1, 5, 2); - LeverMid.setRotationPoint(7F, 9F, -1F); - LeverMid.setTextureSize(128, 64); - LeverMid.mirror = true; - setRotation(LeverMid, 0F, 0F, 0F); - LeverFrontPlate = new ModelRenderer(this, 68, 39); - LeverFrontPlate.addBox(7F, -1.5F, 0F, 9, 1, 2); - LeverFrontPlate.setRotationPoint(7F, 9F, -1F); - LeverFrontPlate.setTextureSize(128, 64); - LeverFrontPlate.mirror = true; - setRotation(LeverFrontPlate, 0F, 0F, 0.7853982F); - LeverBackBottom = new ModelRenderer(this, 70, 33); - LeverBackBottom.addBox(12F, 10F, 0F, 6, 1, 2); - LeverBackBottom.setRotationPoint(7F, 9F, -1F); - LeverBackBottom.setTextureSize(128, 64); - LeverBackBottom.mirror = true; - setRotation(LeverBackBottom, 0F, 0F, 0F); - Trigger = new ModelRenderer(this, 88, 30); - Trigger.addBox(-1F, 0F, 0F, 1, 3, 1); - Trigger.setRotationPoint(12.5F, 9F, -0.5F); - Trigger.setTextureSize(128, 64); - Trigger.mirror = true; - setRotation(Trigger, 0F, 0F, 0.3490659F); - LeverBackTop = new ModelRenderer(this, 68, 36); - LeverBackTop.addBox(8F, -2F, 0F, 11, 1, 2); - LeverBackTop.setRotationPoint(7F, 9F, -1F); - LeverBackTop.setTextureSize(128, 64); - LeverBackTop.mirror = true; - setRotation(LeverBackTop, 0F, 0F, 0.4363323F); - LeverBack = new ModelRenderer(this, 62, 43); - LeverBack.addBox(17F, 6F, 0F, 1, 4, 2); - LeverBack.setRotationPoint(7F, 9F, -1F); - LeverBack.setTextureSize(128, 64); - LeverBack.mirror = true; - setRotation(LeverBack, 0F, 0F, 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); - Barrel1.render(f5); - Barrel2.render(f5); - Barrel3.render(f5); - Barrel4.render(f5); - Grip.render(f5); - Front1.render(f5); - Front2.render(f5); - BodyFront.render(f5); - BodyTop.render(f5); - BodyMain.render(f5); - BodyPlate.render(f5); - HandleMain.render(f5); - HandleBottom.render(f5); - HandleBack.render(f5); - LeverFront.render(f5); - LeverBottom.render(f5); - LeverMid.render(f5); - LeverFrontPlate.render(f5); - LeverBackBottom.render(f5); - Trigger.render(f5); - LeverBackTop.render(f5); - LeverBack.render(f5); - } - - public void renderAnim(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, float anim) { - LeverFront.rotateAngleZ += anim; - LeverBottom.rotateAngleZ += anim; - LeverMid.rotateAngleZ += anim; - LeverFrontPlate.rotateAngleZ += anim; - LeverBackBottom.rotateAngleZ += anim; - LeverBackTop.rotateAngleZ += anim; - LeverBack.rotateAngleZ += anim; - - render(entity, f, f1, f2, f3, f4, f5); - - setRotation(LeverFront, 0F, 0F, 0F); - setRotation(LeverBottom, 0F, 0F, 0F); - setRotation(LeverMid, 0F, 0F, 0F); - setRotation(LeverFrontPlate, 0F, 0F, 0.7853982F); - setRotation(LeverBackBottom, 0F, 0F, 0F); - setRotation(LeverBackTop, 0F, 0F, 0.4363323F); - setRotation(LeverBack, 0F, 0F, 0F); - } - - 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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelMIRV.java b/src/main/java/com/hbm/render/model/ModelMIRV.java deleted file mode 100644 index 69cbe99e5..000000000 --- a/src/main/java/com/hbm/render/model/ModelMIRV.java +++ /dev/null @@ -1,95 +0,0 @@ -// Date: 13.11.2016 12:38:48 -// 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.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelMIRV extends ModelBase -{ - //fields - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - - public ModelMIRV() - { - textureWidth = 64; - textureHeight = 32; - - Shape9 = new ModelRenderer(this, 0, 0); - Shape9.addBox(0F, 0F, 0F, 10, 4, 2); - Shape9.setRotationPoint(-3F, -2F, -1F); - Shape9.setTextureSize(64, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 0, 6); - Shape10.addBox(0F, 0F, 0F, 10, 2, 4); - Shape10.setRotationPoint(-3F, -1F, -2F); - Shape10.setTextureSize(64, 32); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 0, 12); - Shape11.addBox(0F, 0F, 0F, 10, 3, 3); - Shape11.setRotationPoint(-3F, -1.5F, -1.5F); - Shape11.setTextureSize(64, 32); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 0, 18); - Shape12.addBox(0F, 0F, 0F, 4, 1, 1); - Shape12.setRotationPoint(0F, -3F, -1F); - Shape12.setTextureSize(64, 32); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0F); - } - - public void renderAll(float f5) - { - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape12.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - } - - @Override -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); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape12.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelMIRVLauncher.java b/src/main/java/com/hbm/render/model/ModelMIRVLauncher.java deleted file mode 100644 index a6dad112d..000000000 --- a/src/main/java/com/hbm/render/model/ModelMIRVLauncher.java +++ /dev/null @@ -1,287 +0,0 @@ -// Date: 13.11.2016 12:34:14 -// 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.model; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunBase; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; - -public class ModelMIRVLauncher extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape27; - ModelRenderer Shape28; - ModelRenderer Shape29; - ModelRenderer Shape30; - ModelRenderer Shape31; - ModelRenderer Shape32; - ModelRenderer Shape33; - ModelRenderer Shape19; - ModelRenderer Shape20; - ModelRenderer Shape21; - ModelRenderer Shape22; - - public ModelMIRVLauncher() { - textureWidth = 128; - textureHeight = 64; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 40, 2, 4); - Shape1.setRotationPoint(-20F, 0F, 0F); - Shape1.setTextureSize(128, 64); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 6); - Shape2.addBox(0F, 0F, 0F, 6, 2, 2); - Shape2.setRotationPoint(-19F, 2F, 1F); - Shape2.setTextureSize(128, 64); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 10); - Shape3.addBox(0F, 0F, 0F, 1, 4, 1); - Shape3.setRotationPoint(-12F, 2F, 1.5F); - Shape3.setTextureSize(128, 64); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 16, 6); - Shape4.addBox(0F, 0F, 0F, 6, 1, 4); - Shape4.setRotationPoint(-10F, 2F, 0F); - Shape4.setTextureSize(128, 64); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 15); - Shape5.addBox(0F, 0F, 0F, 2, 3, 1); - Shape5.setRotationPoint(-7F, 3F, 1.5F); - Shape5.setTextureSize(128, 64); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 4, 10); - Shape6.addBox(0F, 0F, 0F, 3, 3, 1); - Shape6.setRotationPoint(-10F, 3F, 1.5F); - Shape6.setTextureSize(128, 64); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 12, 10); - Shape7.addBox(-1F, 0F, 0F, 1, 2, 1); - Shape7.setRotationPoint(-7F, 3F, 1.5F); - Shape7.setTextureSize(128, 64); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0.5235988F); - Shape8 = new ModelRenderer(this, 36, 6); - Shape8.addBox(0F, 0F, 0F, 10, 1, 4); - Shape8.setRotationPoint(-3F, 2F, 0F); - Shape8.setTextureSize(128, 64); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 64, 6); - Shape9.addBox(0F, 0F, 0F, 2, 3, 2); - Shape9.setRotationPoint(7F, 2F, 1F); - Shape9.setTextureSize(128, 64); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 88, 0); - Shape10.addBox(0F, 0F, 0F, 3, 4, 4); - Shape10.setRotationPoint(17F, -4F, 0F); - Shape10.setTextureSize(128, 64); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 72, 6); - Shape11.addBox(0F, 0F, 0F, 2, 3, 1); - Shape11.setRotationPoint(18F, -7F, 0F); - Shape11.setTextureSize(128, 64); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 78, 6); - Shape12.addBox(0F, 0F, 0F, 2, 3, 1); - Shape12.setRotationPoint(18F, -7F, 3F); - Shape12.setTextureSize(128, 64); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 0, 19); - Shape13.addBox(0F, -4F, 0F, 22, 4, 0); - Shape13.setRotationPoint(-17F, 0F, 1F); - Shape13.setTextureSize(128, 64); - Shape13.mirror = true; - setRotation(Shape13, 0.4363323F, 0F, 0F); - Shape14 = new ModelRenderer(this, 16, 11); - Shape14.addBox(0F, 0F, 0F, 33, 1, 1); - Shape14.setRotationPoint(-17F, -4F, -1F); - Shape14.setTextureSize(128, 64); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, 0F); - Shape15 = new ModelRenderer(this, 0, 23); - Shape15.addBox(0F, -4F, 0F, 22, 4, 0); - Shape15.setRotationPoint(-17F, 0F, 3F); - Shape15.setTextureSize(128, 64); - Shape15.mirror = true; - setRotation(Shape15, -0.4363323F, 0F, 0F); - Shape16 = new ModelRenderer(this, 16, 13); - Shape16.addBox(0F, 0F, 0F, 33, 1, 1); - Shape16.setRotationPoint(-17F, -4F, 4F); - Shape16.setTextureSize(128, 64); - Shape16.mirror = true; - setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 44, 25); - Shape17.addBox(0F, -4F, 0F, 8, 4, 0); - Shape17.setRotationPoint(8F, 0F, 1F); - Shape17.setTextureSize(128, 64); - Shape17.mirror = true; - setRotation(Shape17, 0.4363323F, 0F, 0F); - Shape18 = new ModelRenderer(this, 44, 21); - Shape18.addBox(0F, -4F, 0F, 8, 4, 0); - Shape18.setRotationPoint(8F, 0F, 3F); - Shape18.setTextureSize(128, 64); - Shape18.mirror = true; - setRotation(Shape18, -0.4363323F, 0F, 0F); - Shape27 = new ModelRenderer(this, 18, 27); - Shape27.addBox(0F, 0F, 0F, 2, 5, 1); - Shape27.setRotationPoint(13F, -5F, 1.5F); - Shape27.setTextureSize(128, 64); - Shape27.mirror = true; - setRotation(Shape27, 0F, 0F, 0F); - Shape28 = new ModelRenderer(this, 84, 6); - Shape28.addBox(0F, 0F, 0F, 1, 3, 1); - Shape28.setRotationPoint(16F, -3F, 1.5F); - Shape28.setTextureSize(128, 64); - Shape28.mirror = true; - setRotation(Shape28, 0F, 0F, 0F); - Shape29 = new ModelRenderer(this, 6, 15); - Shape29.addBox(0F, 0F, 0F, 10, 2, 2); - Shape29.setRotationPoint(3F, -2F, 1F); - Shape29.setTextureSize(128, 64); - Shape29.mirror = true; - setRotation(Shape29, 0F, 0F, 0F); - Shape30 = new ModelRenderer(this, 30, 15); - Shape30.addBox(0F, 0F, 0F, 12, 2, 2); - Shape30.setRotationPoint(-7F, -1F, 4F); - Shape30.setTextureSize(128, 64); - Shape30.mirror = true; - setRotation(Shape30, 0F, 0F, 0F); - Shape31 = new ModelRenderer(this, 44, 19); - Shape31.addBox(0F, 0F, 0F, 14, 1, 1); - Shape31.setRotationPoint(5F, -0.5F, 4.5F); - Shape31.setTextureSize(128, 64); - Shape31.mirror = true; - setRotation(Shape31, 0F, 0F, 0F); - Shape32 = new ModelRenderer(this, 12, 27); - Shape32.addBox(0F, 0F, 0F, 1, 1, 1); - Shape32.setRotationPoint(18F, -0.5F, 3.5F); - Shape32.setTextureSize(128, 64); - Shape32.mirror = true; - setRotation(Shape32, 0F, 0F, 0F); - Shape33 = new ModelRenderer(this, 24, 29); - Shape33.addBox(0F, 0F, 0F, 21, 1, 2); - Shape33.setRotationPoint(-18F, -1F, 1F); - Shape33.setTextureSize(128, 64); - Shape33.mirror = true; - setRotation(Shape33, 0F, 0F, 0F); - Shape19 = new ModelRenderer(this, 0, 33); - Shape19.addBox(0F, 0F, 0F, 10, 4, 2); - Shape19.setRotationPoint(-9F, -5F, 1F); - Shape19.setTextureSize(128, 64); - Shape19.mirror = true; - setRotation(Shape19, 0F, 0F, 0F); - Shape20 = new ModelRenderer(this, 0, 39); - Shape20.addBox(0F, 0F, 0F, 10, 2, 4); - Shape20.setRotationPoint(-9F, -4F, 0F); - Shape20.setTextureSize(128, 64); - Shape20.mirror = true; - setRotation(Shape20, 0F, 0F, 0F); - Shape21 = new ModelRenderer(this, 0, 45); - Shape21.addBox(0F, 0F, 0F, 10, 3, 3); - Shape21.setRotationPoint(-9F, -4.5F, 0.5F); - Shape21.setTextureSize(128, 64); - Shape21.mirror = true; - setRotation(Shape21, 0F, 0F, 0F); - Shape22 = new ModelRenderer(this, 0, 51); - Shape22.addBox(0F, 0F, 0F, 4, 1, 1); - Shape22.setRotationPoint(-6F, -6F, 1F); - Shape22.setTextureSize(128, 64); - Shape22.mirror = true; - setRotation(Shape22, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ItemStack item) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape2.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape6.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape7.render(f5); - Shape8.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape9.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape27.render(f5); - Shape28.render(f5); - Shape29.render(f5); - Shape30.render(f5); - Shape31.render(f5); - Shape32.render(f5); - Shape33.render(f5); - - int ammo = ItemGunBase.getMag(item); - if(ammo > 0) { - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape22.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - } - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - 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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelMP.java b/src/main/java/com/hbm/render/model/ModelMP.java deleted file mode 100644 index b9c8c4ebf..000000000 --- a/src/main/java/com/hbm/render/model/ModelMP.java +++ /dev/null @@ -1,234 +0,0 @@ -// Date: 29.08.2016 12:31:19 -// 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.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelMP extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - ModelRenderer Shape20; - ModelRenderer Shape21; - ModelRenderer Shape22; - ModelRenderer Shape23; - ModelRenderer Shape24; - ModelRenderer Shape25; - - public ModelMP() { - textureWidth = 128; - textureHeight = 64; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 3, 6, 1); - Shape1.setRotationPoint(-25F, -3F, -2F); - Shape1.setTextureSize(128, 64); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 8, 0); - Shape2.addBox(0F, 0F, 0F, 3, 6, 1); - Shape2.setRotationPoint(-25F, -3F, 2F); - Shape2.setTextureSize(128, 64); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 8); - Shape3.addBox(0F, 0F, 0F, 2, 3, 3); - Shape3.setRotationPoint(-24F, 0F, -1F); - Shape3.setTextureSize(128, 64); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 14); - Shape4.addBox(0F, 0F, 0F, 20, 3, 1); - Shape4.setRotationPoint(-22F, -3F, -2F); - Shape4.setTextureSize(128, 64); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 18); - Shape5.addBox(0F, 0F, 0F, 20, 3, 1); - Shape5.setRotationPoint(-22F, -3F, 2F); - Shape5.setTextureSize(128, 64); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 0, 22); - Shape6.addBox(0F, 0F, 0F, 24, 1, 3); - Shape6.setRotationPoint(-24F, -1F, -1F); - Shape6.setTextureSize(128, 64); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 0, 26); - Shape7.addBox(0F, 0F, 0F, 26, 4, 5); - Shape7.setRotationPoint(-25F, 3F, -2F); - Shape7.setTextureSize(128, 64); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 16, 0); - Shape8.addBox(0F, 0F, 0F, 3, 6, 1); - Shape8.setRotationPoint(-2F, -3F, -2F); - Shape8.setTextureSize(128, 64); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 24, 0); - Shape9.addBox(0F, 0F, 0F, 3, 6, 1); - Shape9.setRotationPoint(-2F, -3F, 2F); - Shape9.setTextureSize(128, 64); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 90, 22); - Shape10.addBox(0F, 0F, 0F, 11, 3, 3); - Shape10.setRotationPoint(-2F, 0F, -1F); - Shape10.setTextureSize(128, 64); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 19, 38); - Shape11.addBox(0F, 0F, 0F, 26, 1, 4); - Shape11.setRotationPoint(-25F, 7F, -1.5F); - Shape11.setTextureSize(128, 64); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 78, 35); - Shape12.addBox(0F, 0F, 0F, 20, 5, 5); - Shape12.setRotationPoint(-25F, 8F, -2F); - Shape12.setTextureSize(128, 64); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 54, 45); - Shape13.addBox(0F, 0F, 0F, 32, 2, 5); - Shape13.setRotationPoint(-5F, 8F, -2F); - Shape13.setTextureSize(128, 64); - Shape13.mirror = true; - setRotation(Shape13, 0F, 0F, 0F); - Shape14 = new ModelRenderer(this, 108, 28); - Shape14.addBox(0F, -6F, 0F, 8, 6, 1); - Shape14.setRotationPoint(1F, 8F, -2F); - Shape14.setTextureSize(128, 64); - Shape14.mirror = true; - setRotation(Shape14, -0.0872665F, 0F, 0F); - Shape15 = new ModelRenderer(this, 84, 52); - Shape15.addBox(0F, 0F, 0F, 18, 9, 3); - Shape15.setRotationPoint(9F, -1F, -1F); - Shape15.setTextureSize(128, 64); - Shape15.mirror = true; - setRotation(Shape15, 0F, 0F, 0F); - Shape16 = new ModelRenderer(this, 0, 43); - Shape16.addBox(0F, -9F, 0F, 18, 9, 1); - Shape16.setRotationPoint(9F, 8F, -2F); - Shape16.setTextureSize(128, 64); - Shape16.mirror = true; - setRotation(Shape16, -0.0872665F, 0F, 0F); - Shape17 = new ModelRenderer(this, 90, 28); - Shape17.addBox(0F, -6F, -1F, 8, 6, 1); - Shape17.setRotationPoint(1F, 8F, 3F); - Shape17.setTextureSize(128, 64); - Shape17.mirror = true; - setRotation(Shape17, 0.0872665F, 0F, 0F); - Shape18 = new ModelRenderer(this, 46, 54); - Shape18.addBox(0F, -9F, -1F, 18, 9, 1); - Shape18.setRotationPoint(9F, 8F, 3F); - Shape18.setTextureSize(128, 64); - Shape18.mirror = true; - setRotation(Shape18, 0.0872665F, 0F, 0F); - Shape19 = new ModelRenderer(this, 0, 35); - Shape19.addBox(0F, -3F, 0F, 4, 3, 5); - Shape19.setRotationPoint(-5F, 13F, -2F); - Shape19.setTextureSize(128, 64); - Shape19.mirror = true; - setRotation(Shape19, 0F, 0F, -0.8726646F); - Shape20 = new ModelRenderer(this, 0, 53); - Shape20.addBox(0F, 0F, 0F, 18, 6, 5); - Shape20.setRotationPoint(9F, 10F, -2F); - Shape20.setTextureSize(128, 64); - Shape20.mirror = true; - setRotation(Shape20, 0F, 0F, 0F); - Shape21 = new ModelRenderer(this, 42, 16); - Shape21.addBox(0F, 0F, 0F, 3, 5, 1); - Shape21.setRotationPoint(1F, 10F, 0F); - Shape21.setTextureSize(128, 64); - Shape21.mirror = true; - setRotation(Shape21, 0F, 0F, 0F); - Shape22 = new ModelRenderer(this, 62, 27); - Shape22.addBox(0F, 0F, 0F, 11, 1, 3); - Shape22.setRotationPoint(-2F, 15F, -1F); - Shape22.setTextureSize(128, 64); - Shape22.mirror = true; - setRotation(Shape22, 0F, 0F, 0F); - Shape23 = new ModelRenderer(this, 62, 31); - Shape23.addBox(-6F, -1F, 0F, 6, 1, 3); - Shape23.setRotationPoint(-2F, 16F, -1F); - Shape23.setTextureSize(128, 64); - Shape23.mirror = true; - setRotation(Shape23, 0F, 0F, 0.5235988F); - Shape24 = new ModelRenderer(this, 20, 10); - Shape24.addBox(0F, 0F, 0F, 2, 1, 3); - Shape24.setRotationPoint(-21F, -2F, -1F); - Shape24.setTextureSize(128, 64); - Shape24.mirror = true; - setRotation(Shape24, 0F, 0F, 0F); - Shape25 = new ModelRenderer(this, 10, 10); - Shape25.addBox(0F, 0F, 0F, 2, 1, 3); - Shape25.setRotationPoint(-5F, -2F, -1F); - Shape25.setTextureSize(128, 64); - Shape25.mirror = true; - setRotation(Shape25, 0F, 0F, 0F); - } - - @Override - 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); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - Shape22.render(f5); - Shape23.render(f5); - Shape24.render(f5); - Shape25.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelMP40.java b/src/main/java/com/hbm/render/model/ModelMP40.java deleted file mode 100644 index ccd31ff80..000000000 --- a/src/main/java/com/hbm/render/model/ModelMP40.java +++ /dev/null @@ -1,165 +0,0 @@ -// Date: 03.11.2016 19:00:33 -// 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.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelMP40 extends ModelBase { - // fields - ModelRenderer Body; - ModelRenderer Barrel; - ModelRenderer Scope; - ModelRenderer ClipPivot; - ModelRenderer ClipPivotBack; - ModelRenderer Clip; - ModelRenderer BarrelBottom; - ModelRenderer BodyStock; - ModelRenderer BodyStockBottom; - ModelRenderer BodyBack; - ModelRenderer Handle; - ModelRenderer TriggerFrame; - ModelRenderer Trigger; - ModelRenderer Bar; - ModelRenderer BarFront; - - public ModelMP40() { - textureWidth = 128; - textureHeight = 64; - - Body = new ModelRenderer(this, 0, 0); - Body.addBox(0F, 0F, 0F, 40, 4, 4); - Body.setRotationPoint(-10F, 0F, -2F); - Body.setTextureSize(128, 64); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - Barrel = new ModelRenderer(this, 88, 0); - Barrel.addBox(0F, 0F, 0F, 17, 2, 2); - Barrel.setRotationPoint(-27F, 1F, -1F); - Barrel.setTextureSize(128, 64); - Barrel.mirror = true; - setRotation(Barrel, 0F, 0F, 0F); - Scope = new ModelRenderer(this, 88, 4); - Scope.addBox(0F, 0F, 0F, 2, 3, 2); - Scope.setRotationPoint(-25F, -2F, -1F); - Scope.setTextureSize(128, 64); - Scope.mirror = true; - setRotation(Scope, 0F, 0F, 0F); - ClipPivot = new ModelRenderer(this, 0, 17); - ClipPivot.addBox(0F, 0F, 0F, 4, 5, 3); - ClipPivot.setRotationPoint(-3F, 4F, -1.5F); - ClipPivot.setTextureSize(128, 64); - ClipPivot.mirror = true; - setRotation(ClipPivot, 0F, 0F, 0F); - ClipPivotBack = new ModelRenderer(this, 14, 17); - ClipPivotBack.addBox(0F, 0F, 0F, 3, 3, 3); - ClipPivotBack.setRotationPoint(1F, 4F, -1.5F); - ClipPivotBack.setTextureSize(128, 64); - ClipPivotBack.mirror = true; - setRotation(ClipPivotBack, 0F, 0F, 0F); - Clip = new ModelRenderer(this, 0, 25); - Clip.addBox(0F, 0F, 0F, 3, 18, 2); - Clip.setRotationPoint(-2.5F, 9F, -1F); - Clip.setTextureSize(128, 64); - Clip.mirror = true; - setRotation(Clip, 0F, 0F, 0F); - BarrelBottom = new ModelRenderer(this, 96, 4); - BarrelBottom.addBox(0F, 0F, 0F, 14, 1, 1); - BarrelBottom.setRotationPoint(-24F, 2.5F, -0.5F); - BarrelBottom.setTextureSize(128, 64); - BarrelBottom.mirror = true; - setRotation(BarrelBottom, 0F, 0F, 0F); - BodyStock = new ModelRenderer(this, 0, 8); - BodyStock.addBox(0F, 0F, 0F, 26, 4, 5); - BodyStock.setRotationPoint(4F, 3F, -2.5F); - BodyStock.setTextureSize(128, 64); - BodyStock.mirror = true; - setRotation(BodyStock, 0F, 0F, 0F); - BodyStockBottom = new ModelRenderer(this, 62, 11); - BodyStockBottom.addBox(0F, 0F, 0F, 26, 3, 3); - BodyStockBottom.setRotationPoint(4F, 7F, -1.5F); - BodyStockBottom.setTextureSize(128, 64); - BodyStockBottom.mirror = true; - setRotation(BodyStockBottom, 0F, 0F, 0F); - BodyBack = new ModelRenderer(this, 10, 25); - BodyBack.addBox(0F, 0F, 0F, 7, 7, 3); - BodyBack.setRotationPoint(30F, 0F, -1.5F); - BodyBack.setTextureSize(128, 64); - BodyBack.mirror = true; - setRotation(BodyBack, 0F, 0F, 0.7853982F); - Handle = new ModelRenderer(this, 30, 17); - Handle.addBox(0F, 0F, 0F, 4, 10, 3); - Handle.setRotationPoint(27F, 10F, -1.5F); - Handle.setTextureSize(128, 64); - Handle.mirror = true; - setRotation(Handle, 0F, 0F, -0.4363323F); - TriggerFrame = new ModelRenderer(this, 44, 17); - TriggerFrame.addBox(0F, 0F, 0F, 6, 4, 2); - TriggerFrame.setRotationPoint(23F, 10F, -1F); - TriggerFrame.setTextureSize(128, 64); - TriggerFrame.mirror = true; - setRotation(TriggerFrame, 0F, 0F, 0F); - Trigger = new ModelRenderer(this, 26, 17); - Trigger.addBox(-1F, 0F, 0F, 1, 3, 1); - Trigger.setRotationPoint(27F, 10F, -0.5F); - Trigger.setTextureSize(128, 64); - Trigger.mirror = true; - setRotation(Trigger, 0F, 0F, 0.4363323F); - Bar = new ModelRenderer(this, 60, 17); - Bar.addBox(0F, 0F, 0F, 23, 1, 1); - Bar.setRotationPoint(7F, 7.5F, -3F); - Bar.setTextureSize(128, 64); - Bar.mirror = true; - setRotation(Bar, 0F, 0F, 0F); - BarFront = new ModelRenderer(this, 0, 45); - BarFront.addBox(-2.5F, -0.5F, 0F, 5, 1, 1); - BarFront.setRotationPoint(7F, 8F, -3F); - BarFront.setTextureSize(128, 64); - BarFront.mirror = true; - setRotation(BarFront, 0F, 0F, 0.7853982F); - } - - @Override - 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); - Body.render(f5); - Barrel.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Scope.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - ClipPivot.render(f5); - ClipPivotBack.render(f5); - Clip.render(f5); - BarrelBottom.render(f5); - BodyStock.render(f5); - BodyStockBottom.render(f5); - BodyBack.render(f5); - Handle.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - TriggerFrame.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Trigger.render(f5); - Bar.render(f5); - BarFront.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - 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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelMiniNuke.java b/src/main/java/com/hbm/render/model/ModelMiniNuke.java deleted file mode 100644 index 04deee6a8..000000000 --- a/src/main/java/com/hbm/render/model/ModelMiniNuke.java +++ /dev/null @@ -1,125 +0,0 @@ -// Date: 26.01.2016 16:09:23 -// 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.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelMiniNuke extends ModelBase -{ - //fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - - public ModelMiniNuke() - { - textureWidth = 64; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 5, 4, 2); - Shape1.setRotationPoint(-2F, -2F, -1F); - Shape1.setTextureSize(64, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 6); - Shape2.addBox(0F, 0F, 0F, 5, 2, 4); - Shape2.setRotationPoint(-2F, -1F, -2F); - Shape2.setTextureSize(64, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 58, 0); - Shape3.addBox(0F, 0F, 0F, 1, 2, 2); - Shape3.setRotationPoint(-3F, -1F, -1F); - Shape3.setTextureSize(64, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 52, 0); - Shape4.addBox(0F, 0F, 0F, 1, 2, 2); - Shape4.setRotationPoint(3F, -1F, -1F); - Shape4.setTextureSize(64, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 46, 0); - Shape5.addBox(0F, 0F, 0F, 2, 2, 1); - Shape5.setRotationPoint(4F, -1F, -2F); - Shape5.setTextureSize(64, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 40, 0); - Shape6.addBox(0F, 0F, 0F, 2, 2, 1); - Shape6.setRotationPoint(4F, -1F, 1F); - Shape6.setTextureSize(64, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 24, 0); - Shape7.addBox(0F, 0F, 0F, 2, 1, 2); - Shape7.setRotationPoint(4F, -2F, -1F); - Shape7.setTextureSize(64, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 32, 0); - Shape8.addBox(0F, 0F, 0F, 2, 1, 2); - Shape8.setRotationPoint(4F, 1F, -1F); - Shape8.setTextureSize(64, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - } - - @Override -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); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - } - - public void renderAll(float f5) - { - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelOSIPR.java b/src/main/java/com/hbm/render/model/ModelOSIPR.java deleted file mode 100644 index f63c32e50..000000000 --- a/src/main/java/com/hbm/render/model/ModelOSIPR.java +++ /dev/null @@ -1,249 +0,0 @@ -// Date: 29.08.2016 09:41:02 -// 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.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelOSIPR extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - ModelRenderer Shape20; - ModelRenderer Shape21; - ModelRenderer Shape22; - ModelRenderer Shape23; - - public ModelOSIPR() { - textureWidth = 64; - textureHeight = 64; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 8, 3, 3); - Shape1.setRotationPoint(0F, 0F, -0.5F); - Shape1.setTextureSize(64, 64); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 6); - Shape2.addBox(0F, 0F, 0F, 11, 2, 2); - Shape2.setRotationPoint(8F, 0F, 0F); - Shape2.setTextureSize(64, 64); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 10); - Shape3.addBox(0F, 0F, 0F, 2, 3, 2); - Shape3.setRotationPoint(17F, 2F, 0F); - Shape3.setTextureSize(64, 64); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 15); - Shape4.addBox(-5F, -3F, 0F, 5, 3, 2); - Shape4.setRotationPoint(17F, 5F, 0F); - Shape4.setTextureSize(64, 64); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0.4363323F); - Shape5 = new ModelRenderer(this, 8, 10); - Shape5.addBox(-8F, -1F, 0F, 3, 1, 2); - Shape5.setRotationPoint(17F, 5F, 0F); - Shape5.setTextureSize(64, 64); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0.4363323F); - Shape6 = new ModelRenderer(this, 30, 0); - Shape6.addBox(0F, 0F, 0F, 10, 2, 2); - Shape6.setRotationPoint(-10F, 0.5F, 0F); - Shape6.setTextureSize(64, 64); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 54, 0); - Shape7.addBox(0F, 0F, 0F, 3, 2, 1); - Shape7.setRotationPoint(-13F, 0.5F, 0.5F); - Shape7.setTextureSize(64, 64); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 30, 4); - Shape8.addBox(0F, 0F, 0F, 10, 3, 3); - Shape8.setRotationPoint(-16F, 2F, -0.5F); - Shape8.setTextureSize(64, 64); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 30, 10); - Shape9.addBox(0F, 0F, 0F, 3, 1, 3); - Shape9.setRotationPoint(-19F, 4F, -0.5F); - Shape9.setTextureSize(64, 64); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 42, 10); - Shape10.addBox(0F, 0F, 0F, 3, 1, 3); - Shape10.setRotationPoint(-19F, 2F, -0.5F); - Shape10.setTextureSize(64, 64); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 0, 20); - Shape11.addBox(0F, 0F, 0F, 1, 1, 2); - Shape11.setRotationPoint(8F, -1F, 0F); - Shape11.setTextureSize(64, 64); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 30, 14); - Shape12.addBox(0F, 0F, 0F, 7, 3, 2); - Shape12.setRotationPoint(0F, 3F, 0F); - Shape12.setTextureSize(64, 64); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 30, 19); - Shape13.addBox(0F, -2F, 0F, 5, 2, 2); - Shape13.setRotationPoint(7F, 6F, 0F); - Shape13.setTextureSize(64, 64); - Shape13.mirror = true; - setRotation(Shape13, 0F, 0F, -0.9599311F); - Shape14 = new ModelRenderer(this, 30, 23); - Shape14.addBox(0F, 0F, 0F, 2, 5, 1); - Shape14.setRotationPoint(5F, 6F, 0.5F); - Shape14.setTextureSize(64, 64); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, -0.3490659F); - Shape15 = new ModelRenderer(this, 0, 23); - Shape15.addBox(0F, 0F, 0F, 7, 2, 1); - Shape15.setRotationPoint(-6F, 5F, 0.5F); - Shape15.setTextureSize(64, 64); - Shape15.mirror = true; - setRotation(Shape15, 0F, 0F, 0F); - Shape16 = new ModelRenderer(this, 0, 26); - Shape16.addBox(0F, 0F, 0F, 8, 1, 2); - Shape16.setRotationPoint(-6F, 7F, 0F); - Shape16.setTextureSize(64, 64); - Shape16.mirror = true; - setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 0, 29); - Shape17.addBox(0F, 0F, 0F, 3, 6, 6); - Shape17.setRotationPoint(-9F, 9F, -3F); - Shape17.setTextureSize(64, 64); - Shape17.mirror = true; - setRotation(Shape17, 0.6108652F, 0F, 0F); - Shape18 = new ModelRenderer(this, 0, 41); - Shape18.addBox(0F, 0F, 0F, 3, 6, 7); - Shape18.setRotationPoint(-9F, 8F, -4F); - Shape18.setTextureSize(64, 64); - Shape18.mirror = true; - setRotation(Shape18, 0F, 0F, 0F); - Shape19 = new ModelRenderer(this, 30, 29); - Shape19.addBox(0F, 1F, 6F, 2, 4, 3); - Shape19.setRotationPoint(-8.5F, 9F, -3F); - Shape19.setTextureSize(64, 64); - Shape19.mirror = true; - setRotation(Shape19, 0.6108652F, 0F, 0F); - Shape20 = new ModelRenderer(this, 30, 36); - Shape20.addBox(0F, 0F, 0F, 1, 6, 3); - Shape20.setRotationPoint(-8F, 1F, 3F); - Shape20.setTextureSize(64, 64); - Shape20.mirror = true; - setRotation(Shape20, 0F, 0F, 0F); - Shape21 = new ModelRenderer(this, 30, 45); - Shape21.addBox(0F, -3F, 0F, 1, 5, 4); - Shape21.setRotationPoint(-8F, 2F, 3F); - Shape21.setTextureSize(64, 64); - Shape21.mirror = true; - setRotation(Shape21, 0.9599311F, 0F, 0F); - Shape22 = new ModelRenderer(this, 0, 54); - Shape22.addBox(0F, 0F, 0F, 2, 2, 2); - Shape22.setRotationPoint(-11F, 7F, 0F); - Shape22.setTextureSize(64, 64); - Shape22.mirror = true; - setRotation(Shape22, 0F, 0F, 0F); - Shape23 = new ModelRenderer(this, 0, 58); - Shape23.addBox(-7F, -2F, 0F, 7, 2, 2); - Shape23.setRotationPoint(-11F, 9F, 0F); - Shape23.setTextureSize(64, 64); - Shape23.mirror = true; - setRotation(Shape23, 0F, 0F, 0.148353F); - } - - @Override - 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); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - Shape22.render(f5); - Shape23.render(f5); - } - - public void renderAll(float f5) { - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - Shape22.render(f5); - Shape23.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - 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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelPoles.java b/src/main/java/com/hbm/render/model/ModelPoles.java deleted file mode 100644 index 8c18b69ed..000000000 --- a/src/main/java/com/hbm/render/model/ModelPoles.java +++ /dev/null @@ -1,134 +0,0 @@ -// Date: 04.10.2015 20:54:36 -// 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.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelPoles extends ModelBase -{ - //fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - - public ModelPoles() - { - textureWidth = 64; - textureHeight = 64; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 2, 16, 2); - Shape1.setRotationPoint(-1F, 8F, 4F); - Shape1.setTextureSize(64, 64); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 0); - Shape2.addBox(0F, 0F, 0F, 2, 16, 2); - Shape2.setRotationPoint(4F, 8F, -6F); - Shape2.setTextureSize(64, 64); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 0); - Shape3.addBox(0F, 0F, 0F, 2, 16, 2); - Shape3.setRotationPoint(-6F, 8F, -6F); - Shape3.setTextureSize(64, 64); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 41); - Shape4.addBox(0F, -1F, 0F, 13, 1, 1); - Shape4.setRotationPoint(-4F, 21F, -5.5F); - Shape4.setTextureSize(64, 64); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, -0.7853982F); - Shape5 = new ModelRenderer(this, 0, 41); - Shape5.addBox(0F, 0F, 0F, 13, 1, 1); - Shape5.setRotationPoint(4F, 21F, -5.5F); - Shape5.setTextureSize(64, 64); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, -2.356194F); - Shape6 = new ModelRenderer(this, 0, 18); - Shape6.addBox(0F, -1F, 0F, 1, 1, 15); - Shape6.setRotationPoint(-5.533333F, 21F, -4F); - Shape6.setTextureSize(64, 64); - Shape6.mirror = true; - setRotation(Shape6, 0.7853982F, 0.4886922F, 0F); - Shape7 = new ModelRenderer(this, 0, 18); - Shape7.addBox(0F, 0F, 0F, 1, 1, 15); - Shape7.setRotationPoint(-5.5F, 12F, -4F); - Shape7.setTextureSize(64, 64); - Shape7.mirror = true; - setRotation(Shape7, -0.7853982F, 0.4886922F, 0F); - Shape8 = new ModelRenderer(this, 0, 18); - Shape8.addBox(-1F, 0F, 0F, 1, 1, 15); - Shape8.setRotationPoint(5.5F, 12F, -4F); - Shape8.setTextureSize(64, 64); - Shape8.mirror = true; - setRotation(Shape8, -0.7853982F, -0.4886922F, 0F); - Shape9 = new ModelRenderer(this, 0, 18); - Shape9.addBox(-1F, -1F, 0F, 1, 1, 15); - Shape9.setRotationPoint(5.5F, 21F, -4F); - Shape9.setTextureSize(64, 64); - Shape9.mirror = true; - setRotation(Shape9, 0.7853982F, -0.4886922F, 0F); - } - - @Override -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); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void renderModel(float f) - { - Shape1.render(f); - Shape2.render(f); - Shape3.render(f); - Shape4.render(f); - Shape5.render(f); - Shape6.render(f); - Shape7.render(f); - Shape8.render(f); - Shape9.render(f); - } - - @Override -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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelRainbow.java b/src/main/java/com/hbm/render/model/ModelRainbow.java deleted file mode 100644 index f9d1a6ed0..000000000 --- a/src/main/java/com/hbm/render/model/ModelRainbow.java +++ /dev/null @@ -1,125 +0,0 @@ -// Date: 30.07.2016 17:36:41 -// 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.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelRainbow extends ModelBase -{ - //fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - - public ModelRainbow() - { - textureWidth = 32; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 8, 2, 2); - Shape1.setRotationPoint(-4F, -1F, 1F); - Shape1.setTextureSize(32, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 16); - Shape2.addBox(0F, 0F, 0F, 8, 1, 1); - Shape2.setRotationPoint(-5F, -4F, -1F); - Shape2.setTextureSize(32, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 4); - Shape3.addBox(0F, 0F, 0F, 6, 1, 1); - Shape3.setRotationPoint(-1F, -1F, -2F); - Shape3.setTextureSize(32, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 6); - Shape4.addBox(0F, 0F, 0F, 8, 1, 1); - Shape4.setRotationPoint(-6F, 2F, -1F); - Shape4.setTextureSize(32, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 14); - Shape5.addBox(0F, 0F, 0F, 6, 1, 1); - Shape5.setRotationPoint(-3F, -3F, 2F); - Shape5.setTextureSize(32, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 0, 12); - Shape6.addBox(0F, 0F, 0F, 8, 1, 1); - Shape6.setRotationPoint(-3F, -4F, 4F); - Shape6.setTextureSize(32, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 0, 10); - Shape7.addBox(0F, 0F, 0F, 7, 1, 1); - Shape7.setRotationPoint(-6F, 0F, 5F); - Shape7.setTextureSize(32, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 0, 8); - Shape8.addBox(0F, 0F, 0F, 6, 1, 1); - Shape8.setRotationPoint(-2F, 2F, 3F); - Shape8.setTextureSize(32, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - } - - @Override -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); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -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) - { - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelSRocket.java b/src/main/java/com/hbm/render/model/ModelSRocket.java deleted file mode 100644 index 6185db735..000000000 --- a/src/main/java/com/hbm/render/model/ModelSRocket.java +++ /dev/null @@ -1,94 +0,0 @@ -// Date: 23.02.2018 15:06:23 -// 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.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelSRocket extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - - public ModelSRocket() { - textureWidth = 64; - textureHeight = 16; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 24, 2, 2); - Shape1.setRotationPoint(-12F, -1F, -1F); - Shape1.setTextureSize(64, 16); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 4); - Shape2.addBox(0F, 0F, 0F, 1, 6, 0); - Shape2.setRotationPoint(7F, -3F, 0F); - Shape2.setTextureSize(64, 16); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 2, 4); - Shape3.addBox(0F, 0F, 0F, 1, 0, 6); - Shape3.setRotationPoint(7F, 0F, -3F); - Shape3.setTextureSize(64, 16); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 16, 4); - Shape4.addBox(0F, 0F, 0F, 1, 4, 0); - Shape4.setRotationPoint(-10F, -2F, 0F); - Shape4.setTextureSize(64, 16); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 10); - Shape5.addBox(0F, 0F, 0F, 1, 0, 4); - Shape5.setRotationPoint(-10F, 0F, -2F); - Shape5.setTextureSize(64, 16); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 18, 4); - Shape6.addBox(0F, 0F, 0F, 2, 3, 3); - Shape6.setRotationPoint(9F, -1.5F, -1.5F); - Shape6.setTextureSize(64, 16); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 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); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.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) { - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelSpark.java b/src/main/java/com/hbm/render/model/ModelSpark.java deleted file mode 100644 index 9125c0944..000000000 --- a/src/main/java/com/hbm/render/model/ModelSpark.java +++ /dev/null @@ -1,189 +0,0 @@ -// Date: 14.02.2017 20:27:10 -// 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.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelSpark extends ModelBase -{ - //fields - ModelRenderer BarrelMain; - ModelRenderer BarrelSide; - ModelRenderer PlateFront; - ModelRenderer Sight; - ModelRenderer Grip; - ModelRenderer Cell1; - ModelRenderer Cell2; - ModelRenderer Cell3; - ModelRenderer Cell4; - ModelRenderer Cell5; - ModelRenderer Cell8; - ModelRenderer Cell7; - ModelRenderer Cell6; - ModelRenderer PlateBack; - ModelRenderer Body; - ModelRenderer Handle1; - ModelRenderer Handle2; - - public ModelSpark() - { - textureWidth = 64; - textureHeight = 64; - - BarrelMain = new ModelRenderer(this, 0, 0); - BarrelMain.addBox(0F, 0F, 0F, 18, 6, 6); - BarrelMain.setRotationPoint(-18F, 0F, -3F); - BarrelMain.setTextureSize(64, 64); - BarrelMain.mirror = true; - setRotation(BarrelMain, 0F, 0F, 0F); - BarrelSide = new ModelRenderer(this, 0, 12); - BarrelSide.addBox(0F, -3F, -3F, 14, 6, 6); - BarrelSide.setRotationPoint(-14F, 3F, 0F); - BarrelSide.setTextureSize(64, 64); - BarrelSide.mirror = true; - setRotation(BarrelSide, 0.7853982F, 0F, 0F); - PlateFront = new ModelRenderer(this, 40, 12); - PlateFront.addBox(0F, 0F, 0F, 2, 8, 8); - PlateFront.setRotationPoint(0F, -1F, -4F); - PlateFront.setTextureSize(64, 64); - PlateFront.mirror = true; - setRotation(PlateFront, 0F, 0F, 0F); - Sight = new ModelRenderer(this, 48, 0); - Sight.addBox(0F, 0F, 0F, 1, 4, 2); - Sight.setRotationPoint(-16F, -4F, -1F); - Sight.setTextureSize(64, 64); - Sight.mirror = true; - setRotation(Sight, 0F, 0F, 0F); - Grip = new ModelRenderer(this, 0, 24); - Grip.addBox(0F, 0F, 0F, 12, 2, 2); - Grip.setRotationPoint(-10F, 5F, -6F); - Grip.setTextureSize(64, 64); - Grip.mirror = true; - setRotation(Grip, 0F, 0F, 0F); - Cell1 = new ModelRenderer(this, 0, 28); - Cell1.addBox(0F, -3.5F, -1F, 3, 2, 2); - Cell1.setRotationPoint(2F, 3F, 0F); - Cell1.setTextureSize(64, 64); - Cell1.mirror = true; - setRotation(Cell1, 0F, 0F, 0F); - Cell2 = new ModelRenderer(this, 0, 32); - Cell2.addBox(0F, -3.5F, -1F, 3, 2, 2); - Cell2.setRotationPoint(2F, 3F, 0F); - Cell2.setTextureSize(64, 64); - Cell2.mirror = true; - setRotation(Cell2, 0.7853982F, 0F, 0F); - Cell3 = new ModelRenderer(this, 0, 36); - Cell3.addBox(0F, -3.5F, -1F, 3, 2, 2); - Cell3.setRotationPoint(2F, 3F, 0F); - Cell3.setTextureSize(64, 64); - Cell3.mirror = true; - setRotation(Cell3, 1.570796F, 0F, 0F); - Cell4 = new ModelRenderer(this, 0, 40); - Cell4.addBox(0F, -3.5F, -1F, 3, 2, 2); - Cell4.setRotationPoint(2F, 3F, 0F); - Cell4.setTextureSize(64, 64); - Cell4.mirror = true; - setRotation(Cell4, 2.356194F, 0F, 0F); - Cell5 = new ModelRenderer(this, 0, 44); - Cell5.addBox(0F, -3.5F, -1F, 3, 2, 2); - Cell5.setRotationPoint(2F, 3F, 0F); - Cell5.setTextureSize(64, 64); - Cell5.mirror = true; - setRotation(Cell5, 3.141593F, 0F, 0F); - Cell8 = new ModelRenderer(this, 0, 48); - Cell8.addBox(0F, -3.5F, -1F, 3, 2, 2); - Cell8.setRotationPoint(2F, 3F, 0F); - Cell8.setTextureSize(64, 64); - Cell8.mirror = true; - setRotation(Cell8, -0.7853982F, 0F, 0F); - Cell7 = new ModelRenderer(this, 0, 52); - Cell7.addBox(0F, -3.5F, -1F, 3, 2, 2); - Cell7.setRotationPoint(2F, 3F, 0F); - Cell7.setTextureSize(64, 64); - Cell7.mirror = true; - setRotation(Cell7, -1.570796F, 0F, 0F); - Cell6 = new ModelRenderer(this, 0, 56); - Cell6.addBox(0F, -3.5F, -1F, 3, 2, 2); - Cell6.setRotationPoint(2F, 3F, 0F); - Cell6.setTextureSize(64, 64); - Cell6.mirror = true; - setRotation(Cell6, -2.356194F, 0F, 0F); - PlateBack = new ModelRenderer(this, 10, 28); - PlateBack.addBox(0F, 0F, 0F, 2, 8, 8); - PlateBack.setRotationPoint(5F, -1F, -4F); - PlateBack.setTextureSize(64, 64); - PlateBack.mirror = true; - setRotation(PlateBack, 0F, 0F, 0F); - Body = new ModelRenderer(this, 10, 44); - Body.addBox(0F, 0F, 0F, 8, 6, 4); - Body.setRotationPoint(7F, 1F, -2F); - Body.setTextureSize(64, 64); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - Handle1 = new ModelRenderer(this, 10, 54); - Handle1.addBox(0F, 0F, 0F, 2, 2, 2); - Handle1.setRotationPoint(15F, 4F, -1F); - Handle1.setTextureSize(64, 64); - Handle1.mirror = true; - setRotation(Handle1, 0F, 0F, 0F); - Handle2 = new ModelRenderer(this, 18, 54); - Handle2.addBox(0F, 0F, 0F, 1, 4, 1); - Handle2.setRotationPoint(17F, 2F, -0.5F); - Handle2.setTextureSize(64, 64); - Handle2.mirror = true; - setRotation(Handle2, 0F, 0F, 0F); - } - - @Override -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); - BarrelMain.render(f5); - BarrelSide.render(f5); - PlateFront.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Sight.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Grip.render(f5); - Cell1.render(f5); - Cell2.render(f5); - Cell3.render(f5); - Cell4.render(f5); - Cell5.render(f5); - Cell8.render(f5); - Cell7.render(f5); - Cell6.render(f5); - PlateBack.render(f5); - Body.render(f5); - Handle1.render(f5); - Handle2.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelUboinik.java b/src/main/java/com/hbm/render/model/ModelUboinik.java deleted file mode 100644 index 17125c06c..000000000 --- a/src/main/java/com/hbm/render/model/ModelUboinik.java +++ /dev/null @@ -1,320 +0,0 @@ -// Date: 03.12.2016 21:30:48 -// 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.model; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunBase; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; - -public class ModelUboinik extends ModelBase { - // fields - ModelRenderer Barrel; - ModelRenderer ConnectorFront; - ModelRenderer ConnectorBack; - ModelRenderer Grip; - ModelRenderer Coil; - ModelRenderer FrontBase; - ModelRenderer FrontTip; - ModelRenderer DrumCenter; - ModelRenderer DrumBack; - ModelRenderer DrumBottom; - ModelRenderer Shell1; - ModelRenderer Shell2; - ModelRenderer Shell3; - ModelRenderer Shell4; - ModelRenderer Shell5; - ModelRenderer Shell6; - ModelRenderer Clip1; - ModelRenderer Clip2; - ModelRenderer Clip3; - ModelRenderer ChamberBack; - ModelRenderer ChamberBackConnector; - ModelRenderer ChamberTop; - ModelRenderer Chamber; - ModelRenderer Stock; - ModelRenderer TriggerFrame; - ModelRenderer Trigger; - ModelRenderer Handle; - ModelRenderer StockBottom; - - public ModelUboinik() { - textureWidth = 64; - textureHeight = 64; - - Barrel = new ModelRenderer(this, 0, 11); - Barrel.addBox(0F, 0F, 0F, 24, 2, 2); - Barrel.setRotationPoint(-24F, 0F, -1F); - Barrel.setTextureSize(64, 64); - Barrel.mirror = true; - setRotation(Barrel, 0F, 0F, 0F); - ConnectorFront = new ModelRenderer(this, 0, 53); - ConnectorFront.addBox(0F, 0F, 0F, 1, 8, 3); - ConnectorFront.setRotationPoint(-16F, -0.5F, -1.5F); - ConnectorFront.setTextureSize(64, 64); - ConnectorFront.mirror = true; - setRotation(ConnectorFront, 0F, 0F, 0F); - ConnectorBack = new ModelRenderer(this, 8, 53); - ConnectorBack.addBox(0F, 0F, 0F, 1, 8, 3); - ConnectorBack.setRotationPoint(0F, -0.5F, -1.5F); - ConnectorBack.setTextureSize(64, 64); - ConnectorBack.mirror = true; - setRotation(ConnectorBack, 0F, 0F, 0F); - Grip = new ModelRenderer(this, 16, 57); - Grip.addBox(0F, 0F, 0F, 15, 4, 3); - Grip.setRotationPoint(-15F, 3.5F, -1.5F); - Grip.setTextureSize(64, 64); - Grip.mirror = true; - setRotation(Grip, 0F, 0F, 0F); - Coil = new ModelRenderer(this, 16, 51); - Coil.addBox(0F, 0F, 0F, 15, 3, 3); - Coil.setRotationPoint(-15F, -0.5F, -1.5F); - Coil.setTextureSize(64, 64); - Coil.mirror = true; - setRotation(Coil, 0F, 0F, 0F); - FrontBase = new ModelRenderer(this, 0, 49); - FrontBase.addBox(0F, 0F, 0F, 1, 2, 2); - FrontBase.setRotationPoint(-17F, 4.5F, -1F); - FrontBase.setTextureSize(64, 64); - FrontBase.mirror = true; - setRotation(FrontBase, 0F, 0F, 0F); - FrontTip = new ModelRenderer(this, 6, 51); - FrontTip.addBox(0F, 0F, 0F, 4, 1, 1); - FrontTip.setRotationPoint(-21F, 5F, -0.5F); - FrontTip.setTextureSize(64, 64); - FrontTip.mirror = true; - setRotation(FrontTip, 0F, 0F, 0F); - DrumCenter = new ModelRenderer(this, 6, 49); - DrumCenter.addBox(0F, 0F, 0F, 6, 1, 1); - DrumCenter.setRotationPoint(1F, 3F, -0.5F); - DrumCenter.setTextureSize(64, 64); - DrumCenter.mirror = true; - setRotation(DrumCenter, 0F, 0F, 0F); - DrumBack = new ModelRenderer(this, 0, 40); - DrumBack.addBox(0F, 0F, 0F, 1, 7, 2); - DrumBack.setRotationPoint(7F, 1F, -1F); - DrumBack.setTextureSize(64, 64); - DrumBack.mirror = true; - setRotation(DrumBack, 0F, 0F, 0F); - DrumBottom = new ModelRenderer(this, 6, 46); - DrumBottom.addBox(0F, 0F, 0F, 7, 1, 2); - DrumBottom.setRotationPoint(0F, 7.5F, -1F); - DrumBottom.setTextureSize(64, 64); - DrumBottom.mirror = true; - setRotation(DrumBottom, 0F, 0F, 0F); - Shell1 = new ModelRenderer(this, 0, 34); - Shell1.addBox(0F, -3.5F, -1F, 5, 2, 2); - Shell1.setRotationPoint(1.5F, 3.5F, 0F); - Shell1.setTextureSize(64, 64); - Shell1.mirror = true; - setRotation(Shell1, 1.047198F, 0F, 0F); - Shell2 = new ModelRenderer(this, 0, 34); - Shell2.addBox(0F, -3.5F, -1F, 5, 2, 2); - Shell2.setRotationPoint(1.5F, 3.5F, 0F); - Shell2.setTextureSize(64, 64); - Shell2.mirror = true; - setRotation(Shell2, 2.094395F, 0F, 0F); - Shell3 = new ModelRenderer(this, 0, 34); - Shell3.addBox(0F, -3.5F, -1F, 5, 2, 2); - Shell3.setRotationPoint(1.5F, 3.5F, 0F); - Shell3.setTextureSize(64, 64); - Shell3.mirror = true; - setRotation(Shell3, 3.141593F, 0F, 0F); - Shell4 = new ModelRenderer(this, 0, 34); - Shell4.addBox(0F, -3.5F, -1F, 5, 2, 2); - Shell4.setRotationPoint(1.5F, 3.5F, 0F); - Shell4.setTextureSize(64, 64); - Shell4.mirror = true; - setRotation(Shell4, -2.094395F, 0F, 0F); - Shell5 = new ModelRenderer(this, 0, 34); - Shell5.addBox(0F, -3.5F, -1F, 5, 2, 2); - Shell5.setRotationPoint(1.5F, 3.5F, 0F); - Shell5.setTextureSize(64, 64); - Shell5.mirror = true; - setRotation(Shell5, -1.047198F, 0F, 0F); - Shell6 = new ModelRenderer(this, 0, 34); - Shell6.addBox(0F, -3.5F, -1F, 5, 2, 2); - Shell6.setRotationPoint(1.5F, 3.5F, 0F); - Shell6.setTextureSize(64, 64); - Shell6.mirror = true; - setRotation(Shell6, 0F, 0F, 0F); - Clip1 = new ModelRenderer(this, 6, 42); - Clip1.addBox(0F, -1.5F, -0.5F, 2, 3, 1); - Clip1.setRotationPoint(4F, 3.5F, 0F); - Clip1.setTextureSize(64, 64); - Clip1.mirror = true; - setRotation(Clip1, 0F, 0F, 0F); - Clip2 = new ModelRenderer(this, 6, 42); - Clip2.addBox(0F, -1.5F, -0.5F, 2, 3, 1); - Clip2.setRotationPoint(4F, 3.5F, 0F); - Clip2.setTextureSize(64, 64); - Clip2.mirror = true; - setRotation(Clip2, 1.047198F, 0F, 0F); - Clip3 = new ModelRenderer(this, 6, 42); - Clip3.addBox(0F, -1.5F, -0.5F, 2, 3, 1); - Clip3.setRotationPoint(4F, 3.5F, 0F); - Clip3.setTextureSize(64, 64); - Clip3.mirror = true; - setRotation(Clip3, 2.094395F, 0F, 0F); - ChamberBack = new ModelRenderer(this, 0, 28); - ChamberBack.addBox(0F, 0F, 0F, 8, 2, 2); - ChamberBack.setRotationPoint(8F, 1F, -1F); - ChamberBack.setTextureSize(64, 64); - ChamberBack.mirror = true; - setRotation(ChamberBack, 0F, 0F, 0F); - ChamberBackConnector = new ModelRenderer(this, 12, 43); - ChamberBackConnector.addBox(0F, 0F, 0F, 4, 1, 2); - ChamberBackConnector.setRotationPoint(12F, 0F, -1F); - ChamberBackConnector.setTextureSize(64, 64); - ChamberBackConnector.mirror = true; - setRotation(ChamberBackConnector, 0F, 0F, 0F); - ChamberTop = new ModelRenderer(this, 0, 25); - ChamberTop.addBox(0F, 0F, 0F, 9, 1, 2); - ChamberTop.setRotationPoint(7F, -1F, -1F); - ChamberTop.setTextureSize(64, 64); - ChamberTop.mirror = true; - setRotation(ChamberTop, 0F, 0F, 0F); - Chamber = new ModelRenderer(this, 0, 20); - Chamber.addBox(0F, 0F, 0F, 6, 2, 3); - Chamber.setRotationPoint(1F, -1F, -1.5F); - Chamber.setTextureSize(64, 64); - Chamber.mirror = true; - setRotation(Chamber, 0F, 0F, 0F); - Stock = new ModelRenderer(this, 0, 15); - Stock.addBox(0F, 0F, 0F, 23, 3, 2); - Stock.setRotationPoint(13F, 3F, -1F); - Stock.setTextureSize(64, 64); - Stock.mirror = true; - setRotation(Stock, 0F, 0F, 0F); - TriggerFrame = new ModelRenderer(this, 24, 45); - TriggerFrame.addBox(0F, 0F, 0F, 5, 5, 1); - TriggerFrame.setRotationPoint(8F, 3F, -0.5F); - TriggerFrame.setTextureSize(64, 64); - TriggerFrame.mirror = true; - setRotation(TriggerFrame, 0F, 0F, 0F); - Trigger = new ModelRenderer(this, 36, 46); - Trigger.addBox(-1F, 0F, 0F, 1, 4, 1); - Trigger.setRotationPoint(12.5F, 3F, -0.5F); - Trigger.setTextureSize(64, 64); - Trigger.mirror = true; - setRotation(Trigger, 0F, 0F, 0.4363323F); - Handle = new ModelRenderer(this, 40, 43); - Handle.addBox(0F, 0F, 0F, 3, 6, 2); - Handle.setRotationPoint(13F, 6F, -1F); - Handle.setTextureSize(64, 64); - Handle.mirror = true; - setRotation(Handle, 0F, 0F, -0.1745329F); - StockBottom = new ModelRenderer(this, 26, 36); - StockBottom.addBox(0F, 0F, 0F, 10, 5, 2); - StockBottom.setRotationPoint(26F, 6F, -1F); - StockBottom.setTextureSize(64, 64); - StockBottom.mirror = true; - setRotation(StockBottom, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ItemStack item) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Barrel.render(f5); - ConnectorFront.render(f5); - ConnectorBack.render(f5); - Grip.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Coil.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - FrontBase.render(f5); - FrontTip.render(f5); - DrumCenter.render(f5); - DrumBack.render(f5); - DrumBottom.render(f5); - - int ammo = ItemGunBase.getMag(item); - - if(ammo > 5) - Shell5.render(f5); - if(ammo > 4) - Shell4.render(f5); - if(ammo > 3) - Shell3.render(f5); - if(ammo > 2) - Shell2.render(f5); - if(ammo > 1) - Shell1.render(f5); - if(ammo > 0) - Shell6.render(f5); - - Clip1.render(f5); - Clip2.render(f5); - Clip3.render(f5); - ChamberBack.render(f5); - ChamberBackConnector.render(f5); - ChamberTop.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Chamber.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Stock.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - TriggerFrame.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Trigger.render(f5); - Handle.render(f5); - StockBottom.render(f5); - } - - public void renderDud(float f5) { - Barrel.render(f5); - ConnectorFront.render(f5); - ConnectorBack.render(f5); - Grip.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Coil.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - FrontBase.render(f5); - FrontTip.render(f5); - DrumCenter.render(f5); - DrumBack.render(f5); - DrumBottom.render(f5); - Shell5.render(f5); - Shell4.render(f5); - Shell3.render(f5); - Shell2.render(f5); - Shell1.render(f5); - Shell6.render(f5); - Clip1.render(f5); - Clip2.render(f5); - Clip3.render(f5); - ChamberBack.render(f5); - ChamberBackConnector.render(f5); - ChamberTop.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Chamber.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Stock.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - TriggerFrame.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Trigger.render(f5); - Handle.render(f5); - StockBottom.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - 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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelUzi.java b/src/main/java/com/hbm/render/model/ModelUzi.java deleted file mode 100644 index 473dd6fe1..000000000 --- a/src/main/java/com/hbm/render/model/ModelUzi.java +++ /dev/null @@ -1,420 +0,0 @@ -// Date: 22.07.2018 14:18:53 -// 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.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelUzi extends ModelBase { - // fields - ModelRenderer BodyBack; - ModelRenderer BodyBottom; - ModelRenderer BodySide; - ModelRenderer Ejector; - ModelRenderer BodyFront; - ModelRenderer GripFront; - ModelRenderer StockFront; - ModelRenderer StockPlate; - ModelRenderer HandleBase; - ModelRenderer Handle; - ModelRenderer HandleBack; - ModelRenderer HandleBottom; - ModelRenderer HandlePlate; - ModelRenderer HandleTop; - ModelRenderer Muzzle1; - ModelRenderer Muzzle2; - ModelRenderer StockBack; - ModelRenderer StockPlate1; - ModelRenderer Stock1; - ModelRenderer Stock2; - ModelRenderer Stcok3; - ModelRenderer Stock4; - ModelRenderer Hump1; - ModelRenderer Hump2; - ModelRenderer Hump3; - ModelRenderer Hump4; - ModelRenderer Hump5; - ModelRenderer Hump6; - ModelRenderer SightBack; - ModelRenderer Sight1; - ModelRenderer Sight2; - ModelRenderer Hump7; - ModelRenderer Hump8; - ModelRenderer Hump9; - ModelRenderer Hump10; - ModelRenderer Hump11; - ModelRenderer Hump12; - ModelRenderer Sight3; - ModelRenderer SightFront; - ModelRenderer Knob1; - ModelRenderer Knob2; - ModelRenderer Bolt1; - ModelRenderer Bolt2; - ModelRenderer Mag; - ModelRenderer Trigger; - ModelRenderer Frame1; - ModelRenderer Frame2; - - public ModelUzi() { - textureWidth = 128; - textureHeight = 64; - - BodyBack = new ModelRenderer(this, 0, 0); - BodyBack.addBox(0F, 0F, 0F, 14, 6, 4); - BodyBack.setRotationPoint(0F, 0F, 0F); - BodyBack.setTextureSize(128, 64); - BodyBack.mirror = true; - setRotation(BodyBack, 0F, 0F, 0F); - BodyBottom = new ModelRenderer(this, 82, 0); - BodyBottom.addBox(0F, 0F, 0F, 6, 3, 4); - BodyBottom.setRotationPoint(-6F, 3F, 0F); - BodyBottom.setTextureSize(128, 64); - BodyBottom.mirror = true; - setRotation(BodyBottom, 0F, 0F, 0F); - BodySide = new ModelRenderer(this, 102, 0); - BodySide.addBox(0F, 0F, 0F, 6, 3, 2); - BodySide.setRotationPoint(-6F, 0F, 0F); - BodySide.setTextureSize(128, 64); - BodySide.mirror = true; - setRotation(BodySide, 0F, 0F, 0F); - Ejector = new ModelRenderer(this, 102, 5); - Ejector.addBox(0F, 0F, 0F, 6, 3, 2); - Ejector.setRotationPoint(-6F, 0.5F, 1.5F); - Ejector.setTextureSize(128, 64); - Ejector.mirror = true; - setRotation(Ejector, 0F, 0F, 0F); - BodyFront = new ModelRenderer(this, 36, 0); - BodyFront.addBox(0F, 0F, 0F, 19, 6, 4); - BodyFront.setRotationPoint(-25F, 0F, 0F); - BodyFront.setTextureSize(128, 64); - BodyFront.mirror = true; - setRotation(BodyFront, 0F, 0F, 0F); - GripFront = new ModelRenderer(this, 0, 10); - GripFront.addBox(0F, 0F, 0F, 14, 5, 5); - GripFront.setRotationPoint(-24.5F, 1.5F, -0.5F); - GripFront.setTextureSize(128, 64); - GripFront.mirror = true; - setRotation(GripFront, 0F, 0F, 0F); - StockFront = new ModelRenderer(this, 38, 10); - StockFront.addBox(0F, 0F, 0F, 14, 3, 4); - StockFront.setRotationPoint(3F, 6F, 0F); - StockFront.setTextureSize(128, 64); - StockFront.mirror = true; - setRotation(StockFront, 0F, 0F, 0F); - StockPlate = new ModelRenderer(this, 118, 0); - StockPlate.addBox(0F, -4F, 0F, 1, 4, 4); - StockPlate.setRotationPoint(3F, 9F, 0F); - StockPlate.setTextureSize(128, 64); - StockPlate.mirror = true; - setRotation(StockPlate, 0F, 0F, -0.3490659F); - HandleBase = new ModelRenderer(this, 0, 20); - HandleBase.addBox(0F, 0F, 0F, 12, 3, 5); - HandleBase.setRotationPoint(-10F, 4F, -0.5F); - HandleBase.setTextureSize(128, 64); - HandleBase.mirror = true; - setRotation(HandleBase, 0F, 0F, 0F); - Handle = new ModelRenderer(this, 0, 28); - Handle.addBox(0F, 0F, 0F, 4, 10, 3); - Handle.setRotationPoint(-5F, 7F, 0.5F); - Handle.setTextureSize(128, 64); - Handle.mirror = true; - setRotation(Handle, 0F, 0F, 0F); - HandleBack = new ModelRenderer(this, 14, 28); - HandleBack.addBox(0F, 0F, 0F, 2, 4, 3); - HandleBack.setRotationPoint(-1F, 11F, 0.5F); - HandleBack.setTextureSize(128, 64); - HandleBack.mirror = true; - setRotation(HandleBack, 0F, 0F, 0F); - HandleBottom = new ModelRenderer(this, 14, 35); - HandleBottom.addBox(-2F, 0F, 0F, 2, 3, 3); - HandleBottom.setRotationPoint(1F, 15F, 0.5F); - HandleBottom.setTextureSize(128, 64); - HandleBottom.mirror = true; - setRotation(HandleBottom, 0F, 0F, 0.7853982F); - HandlePlate = new ModelRenderer(this, 24, 28); - HandlePlate.addBox(-2F, -3F, 0F, 2, 3, 3); - HandlePlate.setRotationPoint(1F, 11F, 0.5F); - HandlePlate.setTextureSize(128, 64); - HandlePlate.mirror = true; - setRotation(HandlePlate, 0F, 0F, -0.4886922F); - HandleTop = new ModelRenderer(this, 24, 34); - HandleTop.addBox(-2F, 0F, 0F, 2, 3, 3); - HandleTop.setRotationPoint(1F, 7F, 0.5F); - HandleTop.setTextureSize(128, 64); - HandleTop.mirror = true; - setRotation(HandleTop, 0F, 0F, 0.5235988F); - Muzzle1 = new ModelRenderer(this, 82, 12); - Muzzle1.addBox(0F, 0F, 0F, 3, 3, 2); - Muzzle1.setRotationPoint(-28F, 1.5F, 1F); - Muzzle1.setTextureSize(128, 64); - Muzzle1.mirror = true; - setRotation(Muzzle1, 0F, 0F, 0F); - Muzzle2 = new ModelRenderer(this, 82, 7); - Muzzle2.addBox(0F, 0F, 0F, 3, 2, 3); - Muzzle2.setRotationPoint(-28F, 2F, 0.5F); - Muzzle2.setTextureSize(128, 64); - Muzzle2.mirror = true; - setRotation(Muzzle2, 0F, 0F, 0F); - StockBack = new ModelRenderer(this, 34, 20); - StockBack.addBox(0F, 0F, 0F, 1, 11, 3); - StockBack.setRotationPoint(14F, 7F, 0.5F); - StockBack.setTextureSize(128, 64); - StockBack.mirror = true; - setRotation(StockBack, 0F, 0F, 0F); - StockPlate1 = new ModelRenderer(this, 42, 17); - StockPlate1.addBox(-1F, -11F, 0F, 1, 11, 3); - StockPlate1.setRotationPoint(15F, 18F, 0.5F); - StockPlate1.setTextureSize(128, 64); - StockPlate1.mirror = true; - setRotation(StockPlate1, 0F, 0F, 0.0959931F); - Stock1 = new ModelRenderer(this, 50, 17); - Stock1.addBox(-1F, -3F, 0F, 1, 3, 4); - Stock1.setRotationPoint(17F, 6F, 0F); - Stock1.setTextureSize(128, 64); - Stock1.mirror = true; - setRotation(Stock1, 0F, 0F, -0.3490659F); - Stock2 = new ModelRenderer(this, 60, 17); - Stock2.addBox(0F, -3F, 0F, 1, 3, 4); - Stock2.setRotationPoint(14F, 6F, 0F); - Stock2.setTextureSize(128, 64); - Stock2.mirror = true; - setRotation(Stock2, 0F, 0F, 0.3490659F); - Stcok3 = new ModelRenderer(this, 50, 24); - Stcok3.addBox(0F, 0F, 0F, 1, 3, 4); - Stcok3.setRotationPoint(15F, 3F, 0F); - Stcok3.setTextureSize(128, 64); - Stcok3.mirror = true; - setRotation(Stcok3, 0F, 0F, 0F); - Stock4 = new ModelRenderer(this, 60, 24); - Stock4.addBox(0F, 0F, 0F, 2, 5, 3); - Stock4.setRotationPoint(13.5F, 1.5F, 0.5F); - Stock4.setTextureSize(128, 64); - Stock4.mirror = true; - setRotation(Stock4, 0F, 0F, 0F); - Hump1 = new ModelRenderer(this, 74, 10); - Hump1.addBox(-2F, -3F, 0F, 2, 3, 1); - Hump1.setRotationPoint(14F, 0F, 0F); - Hump1.setTextureSize(128, 64); - Hump1.mirror = true; - setRotation(Hump1, 0F, 0F, -0.2617994F); - Hump2 = new ModelRenderer(this, 74, 14); - Hump2.addBox(0F, -3F, 0F, 2, 3, 1); - Hump2.setRotationPoint(10F, 0F, 0F); - Hump2.setTextureSize(128, 64); - Hump2.mirror = true; - setRotation(Hump2, 0F, 0F, 0.2617994F); - Hump3 = new ModelRenderer(this, 74, 18); - Hump3.addBox(0F, 0F, 0F, 2, 1, 1); - Hump3.setRotationPoint(11F, -3F, 0F); - Hump3.setTextureSize(128, 64); - Hump3.mirror = true; - setRotation(Hump3, 0F, 0F, 0F); - Hump4 = new ModelRenderer(this, 70, 20); - Hump4.addBox(-2F, -3F, 0F, 2, 3, 1); - Hump4.setRotationPoint(14F, 0F, 3F); - Hump4.setTextureSize(128, 64); - Hump4.mirror = true; - setRotation(Hump4, 0F, 0F, -0.2617994F); - Hump5 = new ModelRenderer(this, 70, 24); - Hump5.addBox(0F, -3F, 0F, 2, 3, 1); - Hump5.setRotationPoint(10F, 0F, 3F); - Hump5.setTextureSize(128, 64); - Hump5.mirror = true; - setRotation(Hump5, 0F, 0F, 0.2617994F); - Hump6 = new ModelRenderer(this, 70, 28); - Hump6.addBox(0F, 0F, 0F, 2, 1, 1); - Hump6.setRotationPoint(11F, -3F, 3F); - Hump6.setTextureSize(128, 64); - Hump6.mirror = true; - setRotation(Hump6, 0F, 0F, 0F); - SightBack = new ModelRenderer(this, 80, 17); - SightBack.addBox(0F, 0F, 0F, 1, 1, 1); - SightBack.setRotationPoint(11.5F, -2F, 1.5F); - SightBack.setTextureSize(128, 64); - SightBack.mirror = true; - setRotation(SightBack, 0F, 0F, 0F); - Sight1 = new ModelRenderer(this, 80, 19); - Sight1.addBox(0F, 0F, 0F, 1, 1, 1); - Sight1.setRotationPoint(11.5F, -1F, 1.5F); - Sight1.setTextureSize(128, 64); - Sight1.mirror = true; - setRotation(Sight1, 0F, 0F, 0F); - Sight2 = new ModelRenderer(this, 84, 17); - Sight2.addBox(0F, 0F, 0F, 2, 1, 2); - Sight2.setRotationPoint(11F, -0.5F, 1F); - Sight2.setTextureSize(128, 64); - Sight2.mirror = true; - setRotation(Sight2, 0F, 0F, 0F); - Hump7 = new ModelRenderer(this, 94, 7); - Hump7.addBox(-2F, -3F, 0F, 2, 3, 1); - Hump7.setRotationPoint(-21F, 0F, 0F); - Hump7.setTextureSize(128, 64); - Hump7.mirror = true; - setRotation(Hump7, 0F, 0F, -0.2617994F); - Hump8 = new ModelRenderer(this, 94, 11); - Hump8.addBox(0F, -3F, 0F, 2, 3, 1); - Hump8.setRotationPoint(-25F, 0F, 0F); - Hump8.setTextureSize(128, 64); - Hump8.mirror = true; - setRotation(Hump8, 0F, 0F, 0.2617994F); - Hump9 = new ModelRenderer(this, 94, 15); - Hump9.addBox(0F, 0F, 0F, 2, 1, 1); - Hump9.setRotationPoint(-24F, -3F, 0F); - Hump9.setTextureSize(128, 64); - Hump9.mirror = true; - setRotation(Hump9, 0F, 0F, 0F); - Hump10 = new ModelRenderer(this, 100, 10); - Hump10.addBox(-2F, -3F, 0F, 2, 3, 1); - Hump10.setRotationPoint(-21F, 0F, 3F); - Hump10.setTextureSize(128, 64); - Hump10.mirror = true; - setRotation(Hump10, 0F, 0F, -0.2617994F); - Hump11 = new ModelRenderer(this, 100, 14); - Hump11.addBox(0F, -3F, 0F, 2, 3, 1); - Hump11.setRotationPoint(-25F, 0F, 3F); - Hump11.setTextureSize(128, 64); - Hump11.mirror = true; - setRotation(Hump11, 0F, 0F, 0.2617994F); - Hump12 = new ModelRenderer(this, 100, 18); - Hump12.addBox(0F, 0F, 0F, 2, 1, 1); - Hump12.setRotationPoint(-24F, -3F, 3F); - Hump12.setTextureSize(128, 64); - Hump12.mirror = true; - setRotation(Hump12, 0F, 0F, 0F); - Sight3 = new ModelRenderer(this, 34, 34); - Sight3.addBox(0F, 0F, 0F, 2, 1, 2); - Sight3.setRotationPoint(-24F, -0.5F, 1F); - Sight3.setTextureSize(128, 64); - Sight3.mirror = true; - setRotation(Sight3, 0F, 0F, 0F); - SightFront = new ModelRenderer(this, 34, 37); - SightFront.addBox(0F, 0F, 0F, 1, 2, 0); - SightFront.setRotationPoint(-23.5F, -1.5F, 2F); - SightFront.setTextureSize(128, 64); - SightFront.mirror = true; - setRotation(SightFront, 0F, 0F, 0F); - Knob1 = new ModelRenderer(this, 42, 31); - Knob1.addBox(0F, 0F, 0F, 2, 2, 2); - Knob1.setRotationPoint(-15F, -2F, 1F); - Knob1.setTextureSize(128, 64); - Knob1.mirror = true; - setRotation(Knob1, 0F, 0F, 0F); - Knob2 = new ModelRenderer(this, 50, 31); - Knob2.addBox(-1F, 0F, -1F, 2, 2, 2); - Knob2.setRotationPoint(-14F, -2F, 2F); - Knob2.setTextureSize(128, 64); - Knob2.mirror = true; - setRotation(Knob2, 0F, 0.7853982F, 0F); - Bolt1 = new ModelRenderer(this, 42, 35); - Bolt1.addBox(0F, 0F, 0F, 1, 1, 1); - Bolt1.setRotationPoint(11.5F, -2F, -0.5F); - Bolt1.setTextureSize(128, 64); - Bolt1.mirror = true; - setRotation(Bolt1, 0F, 0F, 0F); - Bolt2 = new ModelRenderer(this, 46, 35); - Bolt2.addBox(0F, 0F, 0F, 1, 1, 1); - Bolt2.setRotationPoint(11.5F, -2F, 3.5F); - Bolt2.setTextureSize(128, 64); - Bolt2.mirror = true; - setRotation(Bolt2, 0F, 0F, 0F); - Mag = new ModelRenderer(this, 118, 8); - Mag.addBox(0F, 0F, 0F, 3, 10, 2); - Mag.setRotationPoint(-4.5F, 17F, 1F); - Mag.setTextureSize(128, 64); - Mag.mirror = true; - setRotation(Mag, 0F, 0F, 0F); - Trigger = new ModelRenderer(this, 0, 41); - Trigger.addBox(-1F, 0F, 0F, 1, 3, 1); - Trigger.setRotationPoint(-6F, 7F, 1.5F); - Trigger.setTextureSize(128, 64); - Trigger.mirror = true; - setRotation(Trigger, 0F, 0F, 0.3490659F); - Frame1 = new ModelRenderer(this, 4, 41); - Frame1.addBox(0F, 0F, 0F, 3, 4, 2); - Frame1.setRotationPoint(-10F, 7F, 1F); - Frame1.setTextureSize(128, 64); - Frame1.mirror = true; - setRotation(Frame1, 0F, 0F, 0F); - Frame2 = new ModelRenderer(this, 14, 41); - Frame2.addBox(0F, -1F, 0F, 3, 1, 2); - Frame2.setRotationPoint(-7F, 11F, 1F); - Frame2.setTextureSize(128, 64); - Frame2.mirror = true; - setRotation(Frame2, 0F, 0F, -0.4363323F); - } - - 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); - GL11.glDisable(GL11.GL_CULL_FACE); - BodyBack.render(f5); - BodyBottom.render(f5); - BodySide.render(f5); - Ejector.render(f5); - BodyFront.render(f5); - GripFront.render(f5); - StockFront.render(f5); - StockPlate.render(f5); - HandleBase.render(f5); - Handle.render(f5); - HandleBack.render(f5); - HandleBottom.render(f5); - HandlePlate.render(f5); - HandleTop.render(f5); - Muzzle1.render(f5); - Muzzle2.render(f5); - StockBack.render(f5); - StockPlate1.render(f5); - Stock1.render(f5); - Stock2.render(f5); - Stcok3.render(f5); - Stock4.render(f5); - Hump1.render(f5); - Hump2.render(f5); - Hump3.render(f5); - Hump4.render(f5); - Hump5.render(f5); - Hump6.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - SightBack.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Sight1.render(f5); - Sight2.render(f5); - Hump7.render(f5); - Hump8.render(f5); - Hump9.render(f5); - Hump10.render(f5); - Hump11.render(f5); - Hump12.render(f5); - Sight3.render(f5); - SightFront.render(f5); - Knob1.render(f5); - Knob2.render(f5); - Bolt1.render(f5); - Bolt2.render(f5); - Mag.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Trigger.render(f5); - Frame1.render(f5); - Frame2.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - } - - 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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelUziBarrel.java b/src/main/java/com/hbm/render/model/ModelUziBarrel.java deleted file mode 100644 index c699eb13d..000000000 --- a/src/main/java/com/hbm/render/model/ModelUziBarrel.java +++ /dev/null @@ -1,45 +0,0 @@ -// Date: 22.07.2018 14:26:58 -// 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.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelUziBarrel extends ModelBase { - // fields - ModelRenderer Barrel; - - public ModelUziBarrel() { - textureWidth = 32; - textureHeight = 32; - - Barrel = new ModelRenderer(this, 0, 0); - Barrel.addBox(0F, 0F, 0F, 12, 2, 2); - Barrel.setRotationPoint(-40F, 2F, 1F); - Barrel.setTextureSize(32, 32); - Barrel.mirror = true; - setRotation(Barrel, 0F, 0F, 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); - Barrel.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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelUziSilencer.java b/src/main/java/com/hbm/render/model/ModelUziSilencer.java deleted file mode 100644 index 5066db4c4..000000000 --- a/src/main/java/com/hbm/render/model/ModelUziSilencer.java +++ /dev/null @@ -1,61 +0,0 @@ -// Date: 22.07.2018 14:32:28 -// 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.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelUziSilencer extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - - public ModelUziSilencer() { - textureWidth = 128; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 32, 5, 3); - Shape1.setRotationPoint(-60F, 0.5F, 0.5F); - Shape1.setTextureSize(128, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 8); - Shape2.addBox(0F, 0F, 0F, 32, 3, 5); - Shape2.setRotationPoint(-60F, 1.5F, -0.5F); - Shape2.setTextureSize(128, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 16); - Shape3.addBox(0F, 0F, 0F, 32, 4, 4); - Shape3.setRotationPoint(-60F, 1F, 0F); - Shape3.setTextureSize(128, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 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); - Shape1.render(f5); - Shape2.render(f5); - Shape3.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); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelZOMG.java b/src/main/java/com/hbm/render/model/ModelZOMG.java deleted file mode 100644 index 9d338ad96..000000000 --- a/src/main/java/com/hbm/render/model/ModelZOMG.java +++ /dev/null @@ -1,255 +0,0 @@ -// Date: 14.08.2016 18:55:34 -// 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.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelZOMG extends ModelBase { - // fields - ModelRenderer Body; - ModelRenderer BodyFront; - ModelRenderer BodyFrontPlate; - ModelRenderer PipeLeft; - ModelRenderer PipeRight; - ModelRenderer PipeBottom; - ModelRenderer Head; - ModelRenderer HeadBottom; - ModelRenderer HeadBottomPlate; - ModelRenderer BodyTop; - ModelRenderer BodyCenter; - ModelRenderer BodyBack; - ModelRenderer BodyBackPlate; - ModelRenderer StockTop; - ModelRenderer StockBack; - ModelRenderer StockBackPlate; - ModelRenderer Handle; - ModelRenderer PistonBack; - ModelRenderer PistonFront; - ModelRenderer BarrelVertical; - ModelRenderer BarrelHorizontal; - ModelRenderer BarrelCenter; - ModelRenderer HandleBack; - ModelRenderer BarrelPipe; - ModelRenderer PistonPivot; - ModelRenderer Scope; - ModelRenderer ScopePivot; - - public ModelZOMG() { - textureWidth = 128; - textureHeight = 64; - - Body = new ModelRenderer(this, 0, 0); - Body.addBox(0F, 0F, 0F, 12, 5, 4); - Body.setRotationPoint(-6F, 0F, 0F); - Body.setTextureSize(128, 64); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - BodyFront = new ModelRenderer(this, 32, 14); - BodyFront.addBox(0F, 0F, 0F, 1, 4, 4); - BodyFront.setRotationPoint(-7F, 0F, 0F); - BodyFront.setTextureSize(128, 64); - BodyFront.mirror = true; - setRotation(BodyFront, 0F, 0F, 0F); - BodyFrontPlate = new ModelRenderer(this, 46, 6); - BodyFrontPlate.addBox(-2F, -1F, 0F, 2, 1, 4); - BodyFrontPlate.setRotationPoint(-6F, 5F, 0F); - BodyFrontPlate.setTextureSize(128, 64); - BodyFrontPlate.mirror = true; - setRotation(BodyFrontPlate, 0F, 0F, 0.6981317F); - PipeLeft = new ModelRenderer(this, 0, 29); - PipeLeft.addBox(0F, 0F, 0F, 6, 1, 1); - PipeLeft.setRotationPoint(-13F, 0.5F, 0.5F); - PipeLeft.setTextureSize(128, 64); - PipeLeft.mirror = true; - setRotation(PipeLeft, 0F, 0F, 0F); - PipeRight = new ModelRenderer(this, 14, 29); - PipeRight.addBox(0F, 0F, 0F, 6, 1, 1); - PipeRight.setRotationPoint(-13F, 0.5F, 2.5F); - PipeRight.setTextureSize(128, 64); - PipeRight.mirror = true; - setRotation(PipeRight, 0F, 0F, 0F); - PipeBottom = new ModelRenderer(this, 14, 25); - PipeBottom.addBox(0F, 0F, 0F, 6, 2, 2); - PipeBottom.setRotationPoint(-13F, 2F, 1F); - PipeBottom.setTextureSize(128, 64); - PipeBottom.mirror = true; - setRotation(PipeBottom, 0F, 0F, 0F); - Head = new ModelRenderer(this, 32, 0); - Head.addBox(0F, 0F, 0F, 3, 4, 4); - Head.setRotationPoint(-16F, 0F, 0F); - Head.setTextureSize(128, 64); - Head.mirror = true; - setRotation(Head, 0F, 0F, 0F); - HeadBottom = new ModelRenderer(this, 46, 0); - HeadBottom.addBox(0F, 0F, 0F, 2, 2, 4); - HeadBottom.setRotationPoint(-15F, 4F, 0F); - HeadBottom.setTextureSize(128, 64); - HeadBottom.mirror = true; - setRotation(HeadBottom, 0F, 0F, 0F); - HeadBottomPlate = new ModelRenderer(this, 32, 8); - HeadBottomPlate.addBox(0F, 0F, 0F, 1, 2, 4); - HeadBottomPlate.setRotationPoint(-16F, 4F, 0F); - HeadBottomPlate.setTextureSize(128, 64); - HeadBottomPlate.mirror = true; - setRotation(HeadBottomPlate, 0F, 0F, -0.4363323F); - BodyTop = new ModelRenderer(this, 0, 17); - BodyTop.addBox(0F, 0F, 0F, 10, 1, 3); - BodyTop.setRotationPoint(-5F, -0.5F, 0.5F); - BodyTop.setTextureSize(128, 64); - BodyTop.mirror = true; - setRotation(BodyTop, 0F, 0F, 0F); - BodyCenter = new ModelRenderer(this, 0, 9); - BodyCenter.addBox(0F, 0F, 0F, 11, 3, 5); - BodyCenter.setRotationPoint(-5.5F, 1F, -0.5F); - BodyCenter.setTextureSize(128, 64); - BodyCenter.mirror = true; - setRotation(BodyCenter, 0F, 0F, 0F); - BodyBack = new ModelRenderer(this, 42, 11); - BodyBack.addBox(0F, 0F, 0F, 1, 3, 4); - BodyBack.setRotationPoint(6F, 2F, 0F); - BodyBack.setTextureSize(128, 64); - BodyBack.mirror = true; - setRotation(BodyBack, 0F, 0F, 0F); - BodyBackPlate = new ModelRenderer(this, 58, 0); - BodyBackPlate.addBox(-1F, -3F, 0F, 1, 4, 2); - BodyBackPlate.setRotationPoint(7F, 2F, 1F); - BodyBackPlate.setTextureSize(128, 64); - BodyBackPlate.mirror = true; - setRotation(BodyBackPlate, 0F, 0F, -0.4363323F); - StockTop = new ModelRenderer(this, 0, 21); - StockTop.addBox(0F, 0F, 0F, 8, 2, 2); - StockTop.setRotationPoint(7F, 3F, 1F); - StockTop.setTextureSize(128, 64); - StockTop.mirror = true; - setRotation(StockTop, 0F, 0F, 0F); - StockBack = new ModelRenderer(this, 20, 21); - StockBack.addBox(0F, 0F, 0F, 4, 2, 2); - StockBack.setRotationPoint(11F, 5F, 1F); - StockBack.setTextureSize(128, 64); - StockBack.mirror = true; - setRotation(StockBack, 0F, 0F, 0F); - StockBackPlate = new ModelRenderer(this, 0, 25); - StockBackPlate.addBox(-5F, -2F, 0F, 5, 2, 2); - StockBackPlate.setRotationPoint(11F, 7F, 1F); - StockBackPlate.setTextureSize(128, 64); - StockBackPlate.mirror = true; - setRotation(StockBackPlate, 0F, 0F, 0.418879F); - Handle = new ModelRenderer(this, 64, 8); - Handle.addBox(0F, 0F, 0F, 2, 4, 2); - Handle.setRotationPoint(-4F, 5F, 1F); - Handle.setTextureSize(128, 64); - Handle.mirror = true; - setRotation(Handle, 0F, 0F, 0F); - PistonBack = new ModelRenderer(this, 30, 26); - PistonBack.addBox(0F, -4F, 0F, 2, 4, 2); - PistonBack.setRotationPoint(1F, 4F, -0.5F); - PistonBack.setTextureSize(128, 64); - PistonBack.mirror = true; - setRotation(PistonBack, 0.7853982F, 0F, 0F); - PistonFront = new ModelRenderer(this, 52, 11); - PistonFront.addBox(0F, -4F, 0F, 2, 4, 2); - PistonFront.setRotationPoint(-3F, 4F, -0.5F); - PistonFront.setTextureSize(128, 64); - PistonFront.mirror = true; - setRotation(PistonFront, 0.7853982F, 0F, 0F); - BarrelVertical = new ModelRenderer(this, 38, 22); - BarrelVertical.addBox(0F, 0F, 0F, 8, 3, 2); - BarrelVertical.setRotationPoint(-4F, 1F, 5F); - BarrelVertical.setTextureSize(128, 64); - BarrelVertical.mirror = true; - setRotation(BarrelVertical, 0F, 0F, 0F); - BarrelHorizontal = new ModelRenderer(this, 38, 27); - BarrelHorizontal.addBox(0F, 0F, 0F, 8, 2, 3); - BarrelHorizontal.setRotationPoint(-4F, 1.5F, 4.5F); - BarrelHorizontal.setTextureSize(128, 64); - BarrelHorizontal.mirror = true; - setRotation(BarrelHorizontal, 0F, 0F, 0F); - BarrelCenter = new ModelRenderer(this, 64, 0); - BarrelCenter.addBox(0F, 0F, 0F, 10, 2, 2); - BarrelCenter.setRotationPoint(-5F, 1.5F, 5F); - BarrelCenter.setTextureSize(128, 64); - BarrelCenter.mirror = true; - setRotation(BarrelCenter, 0F, 0F, 0F); - HandleBack = new ModelRenderer(this, 60, 8); - HandleBack.addBox(0F, 0F, 0F, 1, 4, 1); - HandleBack.setRotationPoint(-2.5F, 5F, 1.5F); - HandleBack.setTextureSize(128, 64); - HandleBack.mirror = true; - setRotation(HandleBack, 0F, 0F, 0F); - BarrelPipe = new ModelRenderer(this, 64, 4); - BarrelPipe.addBox(-10F, 0F, -1F, 10, 1, 1); - BarrelPipe.setRotationPoint(-5F, 2F, 6.5F); - BarrelPipe.setTextureSize(128, 64); - BarrelPipe.mirror = true; - setRotation(BarrelPipe, 0F, -0.2602503F, 0F); - PistonPivot = new ModelRenderer(this, 60, 14); - PistonPivot.addBox(0F, -2F, 0.5F, 7, 2, 1); - PistonPivot.setRotationPoint(-3.5F, 4F, -0.5F); - PistonPivot.setTextureSize(128, 64); - PistonPivot.mirror = true; - setRotation(PistonPivot, 0.7853982F, 0F, 0F); - Scope = new ModelRenderer(this, 48, 18); - Scope.addBox(0F, 0F, 0F, 6, 2, 2); - Scope.setRotationPoint(-3F, -3F, 1F); - Scope.setTextureSize(128, 64); - Scope.mirror = true; - setRotation(Scope, 0F, 0F, 0F); - ScopePivot = new ModelRenderer(this, 58, 6); - ScopePivot.addBox(0F, 0F, 0F, 4, 1, 1); - ScopePivot.setRotationPoint(-2F, -1F, 1.5F); - ScopePivot.setTextureSize(128, 64); - ScopePivot.mirror = true; - setRotation(ScopePivot, 0F, 0F, 0F); - } - - @Override - 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); - Body.render(f5); - BodyFront.render(f5); - BodyFrontPlate.render(f5); - PipeLeft.render(f5); - PipeRight.render(f5); - PipeBottom.render(f5); - Head.render(f5); - HeadBottom.render(f5); - HeadBottomPlate.render(f5); - BodyTop.render(f5); - BodyCenter.render(f5); - BodyBack.render(f5); - BodyBackPlate.render(f5); - StockTop.render(f5); - StockBack.render(f5); - StockBackPlate.render(f5); - Handle.render(f5); - PistonBack.render(f5); - PistonFront.render(f5); - BarrelVertical.render(f5); - BarrelHorizontal.render(f5); - BarrelCenter.render(f5); - HandleBack.render(f5); - BarrelPipe.render(f5); - PistonPivot.render(f5); - Scope.render(f5); - ScopePivot.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - 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); - } - -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderBobble.java b/src/main/java/com/hbm/render/tileentity/RenderBobble.java index fc5332997..d5039e39b 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBobble.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBobble.java @@ -8,7 +8,6 @@ import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; -import com.hbm.render.model.ModelUboinik; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; @@ -380,7 +379,6 @@ public class RenderBobble extends TileEntitySpecialRenderer { bobble.renderPart("Drillgon"); } - private ModelUboinik shotgun = new ModelUboinik(); private ResourceLocation shot_tex = new ResourceLocation(RefStrings.MODID +":textures/models/ModelUboinik.png"); /* @@ -451,7 +449,7 @@ public class RenderBobble extends TileEntitySpecialRenderer { GL11.glRotated(-60, 0, 1, 0); GL11.glTranslated(-0.2, 0, 0); GL11.glScaled(0.5, 0.5, 0.5); - shotgun.renderDud(0.0625F); + //shotgun.renderDud(0.0625F); break; case MELLOW: GL11.glEnable(GL11.GL_BLEND); diff --git a/src/main/java/com/hbm/render/tileentity/RenderLoot.java b/src/main/java/com/hbm/render/tileentity/RenderLoot.java index ec6c89bc5..301c8ebf1 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLoot.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLoot.java @@ -7,7 +7,6 @@ import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.items.ModItems; import com.hbm.items.armor.ArmorTrenchmaster; import com.hbm.main.ResourceManager; -import com.hbm.render.model.ModelLeverAction; import com.hbm.util.Tuple.Quartet; import net.minecraft.client.Minecraft; @@ -42,7 +41,7 @@ public class RenderLoot extends TileEntitySpecialRenderer { if(stack.getItem() == ModItems.ammo_nuke) { renderNuke(); - } else if(stack.getItem() == ModItems.gun_lever_action) { + } else if(stack.getItem() == ModItems.gun_maresleg) { renderShotgun(); } else if(stack.getItem() instanceof ArmorTrenchmaster) { @@ -117,7 +116,6 @@ public class RenderLoot extends TileEntitySpecialRenderer { GL11.glShadeModel(GL11.GL_FLAT); } - protected ModelLeverAction shotgun; private void renderShotgun() { GL11.glScaled(0.5, 0.5, 0.5); @@ -127,11 +125,8 @@ public class RenderLoot extends TileEntitySpecialRenderer { GL11.glRotated(90, 0, 1, 0); GL11.glEnable(GL12.GL_RESCALE_NORMAL); - bindTexture(ResourceManager.ff_wood); - ResourceManager.ff_maresleg.renderPart("Grip"); - bindTexture(ResourceManager.ff_gun_bright); - ResourceManager.ff_maresleg.renderPart("Gun"); - ResourceManager.ff_maresleg.renderPart("Lever"); + bindTexture(ResourceManager.maresleg_tex); + ResourceManager.maresleg.renderAll(); GL11.glDisable(GL12.GL_RESCALE_NORMAL); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderSteelPoles.java b/src/main/java/com/hbm/render/tileentity/RenderSteelPoles.java deleted file mode 100644 index 475bdcf9c..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderSteelPoles.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelPoles; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -public class RenderSteelPoles extends TileEntitySpecialRenderer { - - private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/Poles.png"); - - private ModelPoles model; - - public RenderSteelPoles() { - this.model = new ModelPoles(); - } - - @Override - public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); - GL11.glRotatef(180, 0F, 0F, 1F); - - switch(tileentity.getBlockMetadata()) - { - case 4: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 2: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } - - this.bindTexture(texture); - - GL11.glPushMatrix(); - this.model.renderModel(0.0625F); - GL11.glPopMatrix(); - GL11.glPopMatrix(); - } - -} diff --git a/src/main/java/com/hbm/util/AchievementHandler.java b/src/main/java/com/hbm/util/AchievementHandler.java index 50303ac08..6d74191c8 100644 --- a/src/main/java/com/hbm/util/AchievementHandler.java +++ b/src/main/java/com/hbm/util/AchievementHandler.java @@ -16,11 +16,9 @@ public class AchievementHandler { public static HashMap craftingAchievements = new HashMap(); public static void register() { - craftingAchievements.put(new ComparableStack(ModItems.gun_mp40), MainRegistry.achFreytag); craftingAchievements.put(new ComparableStack(ModItems.piston_selenium), MainRegistry.achSelenium); craftingAchievements.put(new ComparableStack(ModItems.gun_b92), MainRegistry.achSelenium); craftingAchievements.put(new ComparableStack(ModItems.battery_potatos), MainRegistry.achPotato); - craftingAchievements.put(new ComparableStack(ModItems.gun_revolver_pip), MainRegistry.achC44); craftingAchievements.put(new ComparableStack(ModBlocks.machine_press), MainRegistry.achBurnerPress); craftingAchievements.put(new ComparableStack(ModItems.rbmk_fuel_empty), MainRegistry.achRBMK); craftingAchievements.put(new ComparableStack(ModBlocks.machine_chemplant), MainRegistry.achChemplant); From bfdc145eb04157b37fc084e0715c9d6de796b979 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 17 Dec 2024 16:51:02 +0100 Subject: [PATCH 2/7] smonking that fentanyl --- changelog | 6 ++-- .../hbm/items/weapon/sedna/BulletConfig.java | 5 ++- .../sedna/DamageSourceSednaNoAttacker.java | 21 ++++++++++++ .../sedna/DamageSourceSednaWithAttacker.java | 32 +++++++++++++++++++ .../weapon/sedna/factory/ConfettiUtil.java | 6 ++-- .../hbm/items/weapon/sedna/factory/Lego.java | 2 +- .../weapon/sedna/factory/XFactory40mm.java | 2 +- .../weapon/sedna/factory/XFactoryEnergy.java | 2 +- .../weapon/sedna/factory/XFactoryRocket.java | 2 +- .../com/hbm/render/tileentity/RenderLoot.java | 4 +-- .../com/hbm/util/DamageResistanceHandler.java | 11 +++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 18 +++++++++++ src/main/resources/assets/hbm/lang/en_US.lang | 18 +++++++++++ 13 files changed, 116 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaNoAttacker.java create mode 100644 src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaWithAttacker.java diff --git a/changelog b/changelog index 4adc7f7d7..c4cb01488 100644 --- a/changelog +++ b/changelog @@ -8,6 +8,8 @@ * Fixed 9mm soft points being called ".9mm" * Fixed missing localization for the hard plastic autogen material * Fixed the fat mine's crafting recipe still using the deprecated ammo item -* Removed legacy ammo items from all remaining item pools +* Removed legacy ammo items and guns from all remaining item pools * Fixed the rubber grip not having a recipe -* Fixed the coilgun and bolter not being classified correctly \ No newline at end of file +* Fixed the coilgun and bolter not being classified correctly +* Fixed new death messages not working +* Fixed none of the armors having fall resistance \ No newline at end of file diff --git a/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java b/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java index d0f860c98..2f5325075 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java +++ b/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java @@ -26,7 +26,6 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; -import net.minecraft.util.EntityDamageSourceIndirect; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.WorldServer; @@ -145,8 +144,8 @@ public class BulletConfig implements Cloneable { DamageSource dmg; - if(shooter != null) dmg = new EntityDamageSourceIndirect(dmgClass.name(), projectile, shooter); - else dmg = new DamageSource(dmgClass.name()); + if(shooter != null) dmg = new DamageSourceSednaWithAttacker(dmgClass.name(), projectile, shooter); + else dmg = new DamageSourceSednaNoAttacker(dmgClass.name()); switch(dmgClass) { case PHYSICAL: dmg.setProjectile(); break; diff --git a/src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaNoAttacker.java b/src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaNoAttacker.java new file mode 100644 index 000000000..889583f0d --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaNoAttacker.java @@ -0,0 +1,21 @@ +package com.hbm.items.weapon.sedna; + +import java.util.Locale; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.DamageSource; +import net.minecraft.util.IChatComponent; + +public class DamageSourceSednaNoAttacker extends DamageSource { + + public DamageSourceSednaNoAttacker(String type) { + super(type.toLowerCase(Locale.US)); + } + + @Override + public IChatComponent func_151519_b(EntityLivingBase died) { + IChatComponent diedName = died.func_145748_c_(); + return new ChatComponentTranslation("death.sedna." + this.damageType, diedName); + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaWithAttacker.java b/src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaWithAttacker.java new file mode 100644 index 000000000..e63ab3097 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaWithAttacker.java @@ -0,0 +1,32 @@ +package com.hbm.items.weapon.sedna; + +import java.util.Locale; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.IChatComponent; + +public class DamageSourceSednaWithAttacker extends DamageSourceSednaNoAttacker { + + public Entity projectile; + public Entity shooter; + + public DamageSourceSednaWithAttacker(String type, Entity projectile, Entity shooter) { + super(type.toLowerCase(Locale.US)); + this.projectile = projectile; + this.shooter = shooter; + } + + @Override public Entity getSourceOfDamage() { return this.projectile; } //what even uses this, except for the wackass "shot by bullet" death messages? + @Override public Entity getEntity() { return this.shooter; } + + @Override + public IChatComponent func_151519_b(EntityLivingBase died) { + IChatComponent diedName = died.func_145748_c_(); + IChatComponent shooterName = shooter != null ? shooter.func_145748_c_() : new ChatComponentText("Unknown").setChatStyle(new ChatStyle().setObfuscated(true)); + return new ChatComponentTranslation("death.sedna." + this.damageType + ".attacker", diedName, shooterName); + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/ConfettiUtil.java b/src/main/java/com/hbm/items/weapon/sedna/factory/ConfettiUtil.java index 78f42363a..7bf6381df 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/ConfettiUtil.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/ConfettiUtil.java @@ -1,5 +1,7 @@ package com.hbm.items.weapon.sedna.factory; +import java.util.Locale; + import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.helper.AshesCreator; @@ -16,8 +18,8 @@ public class ConfettiUtil { public static void decideConfetti(EntityLivingBase entity, DamageSource source) { if(entity.isEntityAlive()) return; - if(source.damageType.equals(DamageClass.LASER.name())) pulverize(entity); - if(source.damageType.equals(DamageClass.ELECTRIC.name())) pulverize(entity); + if(source.damageType.equals(DamageClass.LASER.name().toLowerCase(Locale.US))) pulverize(entity); + if(source.damageType.equals(DamageClass.ELECTRIC.name().toLowerCase(Locale.US))) pulverize(entity); if(source.isExplosion()) gib(entity); if(source.isFireDamage()) cremate(entity); } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java index d8226936d..1613291de 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java @@ -272,7 +272,7 @@ public class Lego { public static void standardExplode(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, float range) { standardExplode(bullet, mop, range, 1F); } public static void standardExplode(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, float range, float damageMod) { - ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, range); + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, range, bullet.getThrower()); vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage * damageMod).setupPiercing(bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent)); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F)); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java index 59568effd..b814c14c4 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java @@ -80,7 +80,7 @@ public class XFactory40mm { }; public static BiConsumer LAMBDA_STANDARD_EXPLODE_DEMO = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; - ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5F); + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5F, bullet.getThrower()); vnt.setBlockAllocator(new BlockAllocatorStandard()); vnt.setBlockProcessor(new BlockProcessorStandard()); vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage)); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java index 8280ee681..02a18afd0 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java @@ -63,7 +63,7 @@ public class XFactoryEnergy { mop.hitVec.zCoord += dir.offsetZ * 0.5; } - ExplosionVNT vnt = new ExplosionVNT(beam.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 2F); + ExplosionVNT vnt = new ExplosionVNT(beam.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 2F, beam.getThrower()); vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, beam.damage).setDamageClass(beam.config.dmgClass)); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.explode(); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java index d0bc0683c..5cb0217f7 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java @@ -95,7 +95,7 @@ public class XFactoryRocket { }; public static BiConsumer LAMBDA_STANDARD_EXPLODE_DEMO = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; - ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5F); + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5F, bullet.getThrower()); vnt.setBlockAllocator(new BlockAllocatorStandard()); vnt.setBlockProcessor(new BlockProcessorStandard()); vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage)); diff --git a/src/main/java/com/hbm/render/tileentity/RenderLoot.java b/src/main/java/com/hbm/render/tileentity/RenderLoot.java index 301c8ebf1..2a325e92e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLoot.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLoot.java @@ -118,8 +118,8 @@ public class RenderLoot extends TileEntitySpecialRenderer { private void renderShotgun() { - GL11.glScaled(0.5, 0.5, 0.5); - GL11.glTranslated(1, 0, 0); + GL11.glScaled(0.125, 0.125, 0.125); + GL11.glTranslated(3, 0, 0); GL11.glRotated(25, 0, 1, 0); GL11.glRotated(90, 1, 0, 0); GL11.glRotated(90, 0, 1, 0); diff --git a/src/main/java/com/hbm/util/DamageResistanceHandler.java b/src/main/java/com/hbm/util/DamageResistanceHandler.java index 2e58a5b1c..d9b169377 100644 --- a/src/main/java/com/hbm/util/DamageResistanceHandler.java +++ b/src/main/java/com/hbm/util/DamageResistanceHandler.java @@ -84,6 +84,7 @@ public class DamageResistanceHandler { registerSet(ModItems.steamsuit_helmet, ModItems.steamsuit_plate, ModItems.steamsuit_legs, ModItems.steamsuit_boots, new ResistanceStats() .addCategory(CATEGORY_PROJECTILE, 2F, 0.15F) .addCategory(CATEGORY_FIRE, 0.5F, 0.25F) + .addExact(DamageSource.fall.damageType, 5F, 0.25F) .setOther(0F, 0.1F)); registerSet(ModItems.dieselsuit_helmet, ModItems.dieselsuit_plate, ModItems.dieselsuit_legs, ModItems.dieselsuit_boots, new ResistanceStats() .addCategory(CATEGORY_PROJECTILE, 1F, 0.15F) @@ -94,48 +95,57 @@ public class DamageResistanceHandler { .addCategory(CATEGORY_PROJECTILE, 2F, 0.15F) .addCategory(CATEGORY_FIRE, 0.5F, 0.35F) .addCategory(CATEGORY_EXPLOSION, 5F, 0.25F) + .addExact(DamageSource.fall.damageType, 0F, 1F) .setOther(0F, 0.1F)); registerSet(ModItems.ajr_helmet, ModItems.ajr_plate, ModItems.ajr_legs, ModItems.ajr_boots, new ResistanceStats() .addCategory(CATEGORY_PROJECTILE, 4F, 0.15F) .addCategory(CATEGORY_FIRE, 0.5F, 0.35F) .addCategory(CATEGORY_EXPLOSION, 7.5F, 0.25F) + .addExact(DamageSource.fall.damageType, 0F, 1F) .setOther(0F, 0.15F)); registerSet(ModItems.ajro_helmet, ModItems.ajro_plate, ModItems.ajro_legs, ModItems.ajro_boots, new ResistanceStats() .addCategory(CATEGORY_PROJECTILE, 4F, 0.15F) .addCategory(CATEGORY_FIRE, 0.5F, 0.35F) .addCategory(CATEGORY_EXPLOSION, 7.5F, 0.25F) + .addExact(DamageSource.fall.damageType, 0F, 1F) .setOther(0F, 0.15F)); registerSet(ModItems.rpa_helmet, ModItems.rpa_plate, ModItems.rpa_legs, ModItems.rpa_boots, new ResistanceStats() .addCategory(CATEGORY_PROJECTILE, 20F, 0.65F) .addCategory(CATEGORY_FIRE, 10F, 0.75F) .addCategory(CATEGORY_EXPLOSION, 15F, 0.25F) .addExact(DamageClass.LASER.name(), 10F, 0.75F) + .addExact(DamageSource.fall.damageType, 0F, 1F) .setOther(10F, 0.15F)); ResistanceStats bj = new ResistanceStats() .addCategory(CATEGORY_PROJECTILE, 5F, 0.5F) .addCategory(CATEGORY_FIRE, 2.5F, 0.5F) .addCategory(CATEGORY_EXPLOSION, 10F, 0.25F) + .addExact(DamageSource.fall.damageType, 0F, 1F) .setOther(2F, 0.15F); registerSet(ModItems.bj_helmet, ModItems.bj_plate, ModItems.bj_legs, ModItems.bj_boots, bj); registerSet(ModItems.bj_helmet, ModItems.bj_plate_jetpack, ModItems.bj_legs, ModItems.bj_boots, bj); registerSet(ModItems.envsuit_helmet, ModItems.envsuit_plate, ModItems.envsuit_legs, ModItems.envsuit_boots, new ResistanceStats() .addCategory(CATEGORY_FIRE, 2F, 0.75F) .addExact(DamageSource.drown.damageType, 0F, 1F) + .addExact(DamageSource.fall.damageType, 5F, 0.75F) .setOther(0F, 0.1F)); registerSet(ModItems.hev_helmet, ModItems.hev_plate, ModItems.hev_legs, ModItems.hev_boots, new ResistanceStats() .addCategory(CATEGORY_PROJECTILE, 2F, 0.25F) .addCategory(CATEGORY_FIRE, 0.5F, 0.5F) .addCategory(CATEGORY_EXPLOSION, 5F, 0.25F) .addExact(DamageSource.onFire.damageType, 0F, 1F) + .addExact(DamageSource.fall.damageType, 10F, 0F) .setOther(2F, 0.25F)); registerSet(ModItems.bismuth_helmet, ModItems.bismuth_plate, ModItems.bismuth_legs, ModItems.bismuth_boots, new ResistanceStats() .addCategory(CATEGORY_PROJECTILE, 2F, 0.15F) .addCategory(CATEGORY_FIRE, 5F, 0.5F) .addCategory(CATEGORY_EXPLOSION, 5F, 0.25F) + .addExact(DamageSource.fall.damageType, 0F, 1F) .setOther(2F, 0.25F)); registerSet(ModItems.fau_helmet, ModItems.fau_plate, ModItems.fau_legs, ModItems.fau_boots, new ResistanceStats() .addCategory(CATEGORY_EXPLOSION, 50F, 0.95F) .addExact(DamageClass.LASER.name(), 25F, 0.95F) + .addExact(DamageSource.fall.damageType, 0F, 1F) .setOther(100F, 0.99F)); registerSet(ModItems.dns_helmet, ModItems.dns_plate, ModItems.dns_legs, ModItems.dns_boots, new ResistanceStats() .addCategory(CATEGORY_EXPLOSION, 100F, 0.99F) @@ -145,6 +155,7 @@ public class DamageResistanceHandler { .addCategory(CATEGORY_FIRE, 5F, 0.5F) .addCategory(CATEGORY_EXPLOSION, 5F, 0.25F) .addExact(DamageClass.LASER.name(), 15F, 0.9F) + .addExact(DamageSource.fall.damageType, 10F, 0.5F) .setOther(5F, 0.25F)); registerSet(ModItems.hazmat_helmet, ModItems.hazmat_plate, ModItems.hazmat_legs, ModItems.hazmat_boots, new ResistanceStats()); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 1426e3ab0..f86673b35 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -482,6 +482,7 @@ damage.category.EXPL=Explosion damage.category.FIRE=Feuer damage.category.PROJ=Projektil damage.exact.drown=Ertrinken +damage.exact.fall=Fallschaden damage.exact.LASER=Laser damage.exact.onFire=Nachbrennen damage.other=Andere @@ -543,6 +544,23 @@ death.attack.tau=%1$s wurde von %2$s mit negativ geladenen Tauonen durchsiebt. death.attack.tauBlast=%1$s lud die XVL1456 zu lange auf und wurde in Stücke gerissen. death.attack.teleporter=%1$s wurde ins Nichts teleportiert. +death.sedna.electric=%1$s wurde frittiert. +death.sedna.electric.attacker=%1$s wurde von %2$s frittiert. +death.sedna.explosive=%1$s wurde gesprengt. +death.sedna.explosive.attacker=%1$s wurde von %2$s gesprengt. +death.sedna.fire=%1$s wurde eingeäschert. +death.sedna.fire.attacker=%1$s wurde von %2$s eingeäschert. +death.sedna.laser=%1$s wurde pulverisiert. +death.sedna.laser.attacker=%1$s wurde von %2$s pulverisiert. +death.sedna.microwave=%1$s wurde gekocht. +death.sedna.microwave.attacker=%1$s wurde von %2$s gekocht. +death.sedna.subatomic=%1$s wurde atomisiert. +death.sedna.subatomic.attacker=%1$s wurde von %2$s atomisiert. +death.sedna.other=%1$s wurde getötet. +death.sedna.other.attacker=%1$s wurde von %2$s getötet. +death.sedna.physical=%1$s wurde erschossen. +death.sedna.physical.attacker=%1$s wurde von %2$s erschossen. + desc.item.rtgHeat=Hitzelevel: %s desc.gui.rtgBFurnace.desc=Benötigt mindestens 15 Hitze um zu starten$Je mehr Hitze, desto schneller der Vorgang$Hitze über dem maximalen Level hat keinen Effekt$Gold-198 kann zu Quecksilber zerfallen desc.gui.rtgBFurnace.heat=§eHitzelevel: %s diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 295d181a2..588c144e2 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -898,6 +898,7 @@ damage.category.EXPL=Explosion damage.category.FIRE=Fire damage.category.PROJ=Projectile damage.exact.drown=Drowning +damage.exact.fall=Fall damage damage.exact.LASER=Laser damage.exact.onFire=Afterburn damage.other=Other @@ -960,6 +961,23 @@ death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. death.attack.teleporter=%1$s was teleported into nothingness. +death.sedna.electric=%1$s was fried. +death.sedna.electric.attacker=%1$s was fried by %2$s. +death.sedna.explosive=%1$s was blown up. +death.sedna.explosive.attacker=%1$s was blown up by %2$s. +death.sedna.fire=%1$s was incinerated. +death.sedna.fire.attacker=%1$s was incinerated by %2$s. +death.sedna.laser=%1$s was pulverized. +death.sedna.laser.attacker=%1$s was pulverized by %2$s. +death.sedna.microwave=%1$s was microwaved. +death.sedna.microwave.attacker=%1$s was microwaved by %2$s. +death.sedna.subatomic=%1$s was atomized. +death.sedna.subatomic.attacker=%1$s was atomized by %2$s. +death.sedna.other=%1$s was killed. +death.sedna.other.attacker=%1$s was killed by %2$s. +death.sedna.physical=%1$s was shot. +death.sedna.physical.attacker=%1$s was shot by %2$s. + desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. From d1d20ec4bb0bbbc020abf24551149b72d1a614a8 Mon Sep 17 00:00:00 2001 From: Night Heron Date: Wed, 18 Dec 2024 00:43:26 +0800 Subject: [PATCH 3/7] Add files via upload --- src/main/resources/assets/hbm/lang/zh_CN.lang | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 5b39f611b..2ed9cba00 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -4785,6 +4785,7 @@ item.part_receiver_light.name=轻型%s机匣 item.part_stock.name=%s枪托 item.plate_gunmetal.name=青铜板 item.plate_weaponsteel.name=武器级钢板 +tile.machine_pyrooven.name=热解炉 itemGroup.tabBlocks=HBM 矿石和方块 itemGroup.tabConsumable=HBM 食物和装备 From 1930670e5ff3f685d49403d7aabcfdf1fc6003d7 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 18 Dec 2024 16:37:11 +0100 Subject: [PATCH 4/7] pins and needles --- changelog | 8 +++-- .../java/com/hbm/inventory/material/Mats.java | 2 +- src/main/java/com/hbm/items/ModItems.java | 4 +-- .../com/hbm/items/tool/ItemSurveyScanner.java | 35 +++++++------------ .../weapon/sedna/factory/XFactory22lr.java | 4 +-- .../weapon/sedna/factory/XFactory357.java | 6 ++-- .../weapon/sedna/factory/XFactory44.java | 6 ++-- .../weapon/sedna/factory/XFactory50.java | 6 ++-- .../weapon/sedna/factory/XFactory556mm.java | 4 +-- .../weapon/sedna/factory/XFactory762mm.java | 6 ++-- .../weapon/sedna/factory/XFactory9mm.java | 4 +-- .../weapon/sedna/factory/XFactoryFolly.java | 6 +++- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + 14 files changed, 47 insertions(+), 46 deletions(-) diff --git a/changelog b/changelog index c4cb01488..4c6ac8353 100644 --- a/changelog +++ b/changelog @@ -6,10 +6,14 @@ ## Fixed * Fixed 9mm soft points being called ".9mm" -* Fixed missing localization for the hard plastic autogen material +* Fixed missing localization for the hard plastic and PVC autogen materials * Fixed the fat mine's crafting recipe still using the deprecated ammo item * Removed legacy ammo items and guns from all remaining item pools * Fixed the rubber grip not having a recipe * Fixed the coilgun and bolter not being classified correctly * Fixed new death messages not working -* Fixed none of the armors having fall resistance \ No newline at end of file +* Fixed none of the armors having fall resistance +* Fixed survey scanners not picking up nether depth rock +* Fixed FMJ, AP and DU rounds not having damage threshold negation, making them worse against most armored targets compared to JHP +* Fixed autgen items made from unsmeltable materials being smeltable in the crucible +* Fixed 240mm shells not being visible in creative \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index 122b660cb..dea1696ba 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -208,7 +208,7 @@ public class Mats { String materialName = name.substring(prefix.length()); NTMMaterial material = matByName.get(materialName); - if(material != null) { + if(material != null && (material.smeltable == SmeltingBehavior.SMELTABLE || material.smeltable == SmeltingBehavior.ADDITIVE)) { list.add(new MaterialStack(material, prefixEntry.getValue().q(1))); break outer; } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 1b47cb7f2..fac873ebd 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3983,7 +3983,7 @@ public class ModItems { ammo_22lr = new ItemAmmo(Ammo22LR.class).setUnlocalizedName("ammo_22lr"); ammo_rocket = new ItemAmmo(AmmoRocket.class).setUnlocalizedName("ammo_rocket"); ammo_grenade = new ItemAmmo(AmmoGrenade.class).setUnlocalizedName("ammo_grenade"); - ammo_shell = new ItemAmmo(Ammo240Shell.class).setUnlocalizedName("ammo_shell"); + ammo_shell = (ItemEnumMulti) new ItemAmmo(Ammo240Shell.class).setCreativeTab(MainRegistry.weaponTab).setUnlocalizedName("ammo_shell"); ammo_dgk = new ItemCustomLore().setUnlocalizedName("ammo_dgk").setCreativeTab(MainRegistry.weaponTab); ammo_nuke = new ItemAmmo(AmmoFatman.class).setUnlocalizedName("ammo_nuke"); ammo_fuel = new ItemAmmo(AmmoFlamethrower.class).setUnlocalizedName("ammo_fuel"); @@ -4071,7 +4071,7 @@ public class ModItems { gun_defabricator_ammo = new Item().setUnlocalizedName("gun_defabricator_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_defabricator_ammo"); gun_defabricator = new Item().setUnlocalizedName("gun_defabricator").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_defabricator"); gun_vortex = new Item().setUnlocalizedName("gun_vortex").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_vortex"); - gun_super_shotgun = new Item().setUnlocalizedName("gun_super_shotgun").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_super_shotgun"); + gun_super_shotgun = new Item().setUnlocalizedName("gun_super_shotgun").setMaxStackSize(1).setFull3D().setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_super_shotgun"); gun_moist_nugget = new Item().setUnlocalizedName("gun_moist_nugget").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_moist_nugget"); gun_darter = new Item().setFull3D().setUnlocalizedName("gun_darter").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_darter"); gun_glass_cannon = new Item().setFull3D().setUnlocalizedName("gun_glass_cannon").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_darter"); diff --git a/src/main/java/com/hbm/items/tool/ItemSurveyScanner.java b/src/main/java/com/hbm/items/tool/ItemSurveyScanner.java index 0e3517671..e4906b2ea 100644 --- a/src/main/java/com/hbm/items/tool/ItemSurveyScanner.java +++ b/src/main/java/com/hbm/items/tool/ItemSurveyScanner.java @@ -37,16 +37,13 @@ public class ItemSurveyScanner extends Item { Block block = world.getBlock(x + a * 5, i, z + b * 5); - if(block == ModBlocks.ore_oil) - hasOil = true; - else if(block == ModBlocks.ore_coltan) - hasColtan = true; - else if(block == ModBlocks.stone_depth) - hasDepth = true; - else if(block == ModBlocks.stone_gneiss) - hasSchist = true; - else if(block == ModBlocks.ore_australium) - hasAussie = true; + //wow, this sucks! + if(block == ModBlocks.ore_oil) hasOil = true; + else if(block == ModBlocks.ore_coltan) hasColtan = true; + else if(block == ModBlocks.stone_depth) hasDepth = true; + else if(block == ModBlocks.stone_depth_nether) hasDepth = true; + else if(block == ModBlocks.stone_gneiss) hasSchist = true; + else if(block == ModBlocks.ore_australium) hasAussie = true; } Block block = world.getBlock(x + a * 2, 0, z + b * 2); @@ -57,18 +54,12 @@ public class ItemSurveyScanner extends Item { } } - if(hasOil) - player.addChatComponentMessage(new ChatComponentText("Found OIL!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.BLACK))); - if(hasColtan) - player.addChatComponentMessage(new ChatComponentText("Found COLTAN!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GOLD))); - if(hasDepth) - player.addChatComponentMessage(new ChatComponentText("Found DEPTH ROCK!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GRAY))); - if(hasSchist) - player.addChatComponentMessage(new ChatComponentText("Found SCHIST!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.DARK_AQUA))); - if(hasAussie) - player.addChatComponentMessage(new ChatComponentText("Found AUSTRALIUM!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); - if(tile != null && tile.resource != null) - player.addChatComponentMessage(new ChatComponentText("Found BEDROCK ORE for " + tile.resource.getDisplayName() + "!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + if(hasOil) player.addChatComponentMessage(new ChatComponentText("Found OIL!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.BLACK))); + if(hasColtan) player.addChatComponentMessage(new ChatComponentText("Found COLTAN!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GOLD))); + if(hasDepth) player.addChatComponentMessage(new ChatComponentText("Found DEPTH ROCK!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GRAY))); + if(hasSchist) player.addChatComponentMessage(new ChatComponentText("Found SCHIST!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.DARK_AQUA))); + if(hasAussie) player.addChatComponentMessage(new ChatComponentText("Found AUSTRALIUM!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); + if(tile != null && tile.resource != null) player.addChatComponentMessage(new ChatComponentText("Found BEDROCK ORE for " + tile.resource.getDisplayName() + "!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); } player.swingItem(); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java index 9c1a3106b..9055e7eed 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java @@ -35,11 +35,11 @@ public class XFactory22lr { SpentCasing casing22 = new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(0.5F); p22_sp = new BulletConfig().setItem(EnumAmmo.P22_SP).setKnockback(0F) .setCasing(casing22.clone().register("p22")); - p22_fmj = new BulletConfig().setItem(EnumAmmo.P22_FMJ).setKnockback(0F).setDamage(0.8F).setArmorPiercing(0.1F) + p22_fmj = new BulletConfig().setItem(EnumAmmo.P22_FMJ).setKnockback(0F).setDamage(0.8F).setThresholdNegation(1F).setArmorPiercing(0.1F) .setCasing(casing22.clone().register("p22fmj")); p22_jhp = new BulletConfig().setItem(EnumAmmo.P22_JHP).setKnockback(0F).setDamage(1.5F).setArmorPiercing(-0.25F) .setCasing(casing22.clone().register("p22jhp")); - p22_ap = new BulletConfig().setItem(EnumAmmo.P22_AP).setKnockback(0F).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setArmorPiercing(0.15F) + p22_ap = new BulletConfig().setItem(EnumAmmo.P22_AP).setKnockback(0F).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(2.5F).setArmorPiercing(0.15F) .setCasing(casing22.clone().setColor(SpentCasing.COLOR_CASE_44).register("p22ap")); ModItems.gun_am180 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() 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 6d10b86be..c59cb42d8 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 @@ -32,10 +32,10 @@ public class XFactory357 { public static void init() { m357_bp = new BulletConfig().setItem(EnumAmmo.M357_BP).setDamage(0.5F).setBlackPowder(true); m357_sp = new BulletConfig().setItem(EnumAmmo.M357_SP); - m357_fmj = new BulletConfig().setItem(EnumAmmo.M357_FMJ).setDamage(0.8F).setArmorPiercing(0.1F); + m357_fmj = new BulletConfig().setItem(EnumAmmo.M357_FMJ).setDamage(0.8F).setThresholdNegation(2F).setArmorPiercing(0.1F); m357_jhp = new BulletConfig().setItem(EnumAmmo.M357_JHP).setDamage(1.5F).setArmorPiercing(-0.25F); - m357_ap = new BulletConfig().setItem(EnumAmmo.M357_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setArmorPiercing(0.15F); - m357_express = new BulletConfig().setItem(EnumAmmo.M357_EXPRESS).setDoesPenetrate(true).setDamage(1.5F).setArmorPiercing(0.1F).setWear(1.5F); + m357_ap = new BulletConfig().setItem(EnumAmmo.M357_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(5F).setArmorPiercing(0.15F); + m357_express = new BulletConfig().setItem(EnumAmmo.M357_EXPRESS).setDoesPenetrate(true).setDamage(1.5F).setThresholdNegation(2F).setArmorPiercing(0.1F).setWear(1.5F); ModItems.gun_light_revolver = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(300).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java index 0135faf4a..afdb0be1d 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java @@ -45,13 +45,13 @@ public class XFactory44 { .setCasing(casing44.clone().register("m44bp")); m44_sp = new BulletConfig().setItem(EnumAmmo.M44_SP) .setCasing(casing44.clone().register("m44")); - m44_fmj = new BulletConfig().setItem(EnumAmmo.M44_FMJ).setDamage(0.8F).setArmorPiercing(0.1F) + m44_fmj = new BulletConfig().setItem(EnumAmmo.M44_FMJ).setDamage(0.8F).setThresholdNegation(3F).setArmorPiercing(0.1F) .setCasing(casing44.clone().register("m44fmj")); m44_jhp = new BulletConfig().setItem(EnumAmmo.M44_JHP).setDamage(1.5F).setArmorPiercing(-0.25F) .setCasing(casing44.clone().register("m44jhp")); - m44_ap = new BulletConfig().setItem(EnumAmmo.M44_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setArmorPiercing(0.15F) + m44_ap = new BulletConfig().setItem(EnumAmmo.M44_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(7.5F).setArmorPiercing(0.15F) .setCasing(casing44.clone().setColor(SpentCasing.COLOR_CASE_44).register("m44ap")); - m44_express = new BulletConfig().setItem(EnumAmmo.M44_EXPRESS).setDoesPenetrate(true).setDamage(1.5F).setArmorPiercing(0.1F).setWear(1.5F) + m44_express = new BulletConfig().setItem(EnumAmmo.M44_EXPRESS).setDoesPenetrate(true).setDamage(1.5F).setThresholdNegation(3F).setArmorPiercing(0.1F).setWear(1.5F) .setCasing(casing44.clone().register("m44express")); m44_equestrian = new BulletConfig().setItem(EnumAmmoSecret.M44_EQUESTRIAN).setDamage(0F) .setCasing(casing44.clone().setColor(SpentCasing.COLOR_CASE_EQUESTRIAN).register("m44equestrian")); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java index d43305281..5552e958a 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java @@ -34,13 +34,13 @@ public class XFactory50 { SpentCasing casing762 = new SpentCasing(CasingType.BOTTLENECK).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(1.5F); bmg50_sp = new BulletConfig().setItem(EnumAmmo.BMG50_SP) .setCasing(casing762.clone().register("bmg50")); - bmg50_fmj = new BulletConfig().setItem(EnumAmmo.BMG50_FMJ).setDamage(0.8F).setArmorPiercing(0.1F) + bmg50_fmj = new BulletConfig().setItem(EnumAmmo.BMG50_FMJ).setDamage(0.8F).setThresholdNegation(7F).setArmorPiercing(0.1F) .setCasing(casing762.clone().register("bmg50fmj")); bmg50_jhp = new BulletConfig().setItem(EnumAmmo.BMG50_JHP).setDamage(1.5F).setArmorPiercing(-0.25F) .setCasing(casing762.clone().register("bmg50jhp")); - bmg50_ap = new BulletConfig().setItem(EnumAmmo.BMG50_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setArmorPiercing(0.15F) + bmg50_ap = new BulletConfig().setItem(EnumAmmo.BMG50_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(17.5F).setArmorPiercing(0.15F) .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50ap")); - bmg50_du = new BulletConfig().setItem(EnumAmmo.BMG50_DU).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(2.5F).setArmorPiercing(0.25F) + bmg50_du = new BulletConfig().setItem(EnumAmmo.BMG50_DU).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(2.5F).setThresholdNegation(21F).setArmorPiercing(0.25F) .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50du")); ModItems.gun_m2 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java index fa055c59e..f84d10c1c 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java @@ -41,11 +41,11 @@ public class XFactory556mm { SpentCasing casing556 = new SpentCasing(CasingType.BOTTLENECK).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(0.8F); r556_sp = new BulletConfig().setItem(EnumAmmo.R556_SP) .setCasing(casing556.clone().register("r556")); - r556_fmj = new BulletConfig().setItem(EnumAmmo.R556_FMJ).setDamage(0.8F).setArmorPiercing(0.1F) + r556_fmj = new BulletConfig().setItem(EnumAmmo.R556_FMJ).setDamage(0.8F).setThresholdNegation(4F).setArmorPiercing(0.1F) .setCasing(casing556.clone().register("r556fmj")); r556_jhp = new BulletConfig().setItem(EnumAmmo.R556_JHP).setDamage(1.5F).setArmorPiercing(-0.25F) .setCasing(casing556.clone().register("r556jhp")); - r556_ap = new BulletConfig().setItem(EnumAmmo.R556_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setArmorPiercing(0.15F) + r556_ap = new BulletConfig().setItem(EnumAmmo.R556_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(10F).setArmorPiercing(0.15F) .setCasing(casing556.clone().setColor(SpentCasing.COLOR_CASE_44).register("r556ap")); ModItems.gun_g3 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java index d977e1064..f72d23aa4 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java @@ -41,13 +41,13 @@ public class XFactory762mm { SpentCasing casing762 = new SpentCasing(CasingType.BOTTLENECK).setColor(SpentCasing.COLOR_CASE_BRASS); r762_sp = new BulletConfig().setItem(EnumAmmo.R762_SP) .setCasing(casing762.clone().register("r762")); - r762_fmj = new BulletConfig().setItem(EnumAmmo.R762_FMJ).setDamage(0.8F).setArmorPiercing(0.1F) + r762_fmj = new BulletConfig().setItem(EnumAmmo.R762_FMJ).setDamage(0.8F).setThresholdNegation(5F).setArmorPiercing(0.1F) .setCasing(casing762.clone().register("r762fmj")); r762_jhp = new BulletConfig().setItem(EnumAmmo.R762_JHP).setDamage(1.5F).setArmorPiercing(-0.25F) .setCasing(casing762.clone().register("r762jhp")); - r762_ap = new BulletConfig().setItem(EnumAmmo.R762_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setArmorPiercing(0.15F) + r762_ap = new BulletConfig().setItem(EnumAmmo.R762_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(12.5F).setArmorPiercing(0.15F) .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("r762ap")); - r762_du = new BulletConfig().setItem(EnumAmmo.R762_DU).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(2.5F).setArmorPiercing(0.25F) + r762_du = new BulletConfig().setItem(EnumAmmo.R762_DU).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(2.5F).setThresholdNegation(15F).setArmorPiercing(0.25F) .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("r762du")); energy_lacunae = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setupDamageClass(DamageClass.LASER).setBeam().setReloadCount(40).setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java index e72cadf2d..177a36afd 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java @@ -36,11 +36,11 @@ public class XFactory9mm { SpentCasing casing9 = new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(1F, 1F, 0.75F); p9_sp = new BulletConfig().setItem(EnumAmmo.P9_SP) .setCasing(casing9.clone().register("p9")); - p9_fmj = new BulletConfig().setItem(EnumAmmo.P9_FMJ).setDamage(0.8F).setArmorPiercing(0.1F) + p9_fmj = new BulletConfig().setItem(EnumAmmo.P9_FMJ).setDamage(0.8F).setThresholdNegation(2F).setArmorPiercing(0.1F) .setCasing(casing9.clone().register("p9fmj")); p9_jhp = new BulletConfig().setItem(EnumAmmo.P9_JHP).setDamage(1.5F).setArmorPiercing(-0.25F) .setCasing(casing9.clone().register("p9jhp")); - p9_ap = new BulletConfig().setItem(EnumAmmo.P9_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setArmorPiercing(0.15F) + p9_ap = new BulletConfig().setItem(EnumAmmo.P9_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(5F).setArmorPiercing(0.15F) .setCasing(casing9.clone().setColor(SpentCasing.COLOR_CASE_44).register("p9ap")); ModItems.gun_greasegun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java index a063c3cc5..41caa05c7 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java @@ -35,6 +35,7 @@ import com.hbm.util.DamageResistanceHandler.DamageClass; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -79,7 +80,10 @@ public class XFactoryFolly { for(int ix = x - 1; ix <= x + 1; ix++) for(int iy = y - 1; iy <= y + 1; iy++) for(int iz = z - 1; iz <= z + 1; iz++) { if(iy > 0 && iy < 256) beam.worldObj.setBlock(ix, iy, iz, Blocks.air); AxisAlignedBB aabb = AxisAlignedBB.getBoundingBox(ix - 1, iy - 1, iz - 1, ix + 2, iy + 2, iz + 2); - for(Entity e : entities) if(e != beam.thrower && e.boundingBox.intersectsWith(aabb)) EntityDamageUtil.attackEntityFromIgnoreIFrame(e, beam.config.getDamage(beam, beam.thrower, beam.config.dmgClass), beam.damage); + for(Entity e : entities) if(e != beam.thrower && e.boundingBox.intersectsWith(aabb)) { + if(e instanceof EntityLivingBase) EntityDamageUtil.attackEntityFromNT((EntityLivingBase) e, beam.config.getDamage(beam, beam.thrower, beam.config.dmgClass), beam.damage, true, false, 0D, 100F, 0.99F); + else EntityDamageUtil.attackEntityFromIgnoreIFrame(e, beam.config.getDamage(beam, beam.thrower, beam.config.dmgClass), beam.damage); + } } } }; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index f86673b35..093a5ac05 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -907,6 +907,7 @@ hbmmat.plutoniumrg=Reaktorfähiges Plutonium hbmmat.polonium210=Polonium-210 hbmmat.polycarbonate=Hartplastik hbmmat.polymer=Polymer +hbmmat.pvc=Polyvinylchlorid hbmmat.radium226=Radium-226 hbmmat.rareearth=Seltenerden hbmmat.redphosphorus=Roter Phosphor diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 588c144e2..9198b725a 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1629,6 +1629,7 @@ hbmmat.plutoniumrg=Reactor-Grade Plutonium hbmmat.polonium210=Polonium-210 hbmmat.polycarbonate=Hard Plastic hbmmat.polymer=Polymer +hbmmat.pvc=PVC hbmmat.radium226=Radium-226 hbmmat.rareearth=Rare Earth hbmmat.redphosphorus=Red Phosphorus From 340de0493624901f7c86d95b061fb81792af3350 Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 20 Dec 2024 21:46:50 +0100 Subject: [PATCH 5/7] tweaks --- changelog | 9 ++- gradle.properties | 2 +- .../java/com/hbm/entity/EntityMappings.java | 1 + .../projectile/EntityArtilleryRocket.java | 4 +- .../hbm/entity/projectile/EntityBoxcar.java | 2 +- .../hbm/entity/projectile/EntityTorpedo.java | 50 ++++++++++++++ .../weapon/sedna/factory/XFactory12ga.java | 10 +-- .../weapon/sedna/factory/XFactory9mm.java | 2 +- src/main/java/com/hbm/main/MainRegistry.java | 6 +- .../java/com/hbm/main/ResourceManager.java | 2 + .../entity/projectile/RenderBoxcar.java | 67 ++++++++++--------- .../com/hbm/render/util/RenderInfoSystem.java | 5 +- .../turret/TileEntityTurretHIMARS.java | 2 +- .../com/hbm/util/DamageResistanceHandler.java | 2 +- 14 files changed, 116 insertions(+), 48 deletions(-) create mode 100644 src/main/java/com/hbm/entity/projectile/EntityTorpedo.java diff --git a/changelog b/changelog index 4c6ac8353..ca9f03dff 100644 --- a/changelog +++ b/changelog @@ -3,6 +3,9 @@ * Removed three old achievements which no longer work due to the gun changes * AJR armor plating now uses niobium instead of saturnite, and yields twice as many items per recipe * Due to the gating change, the saturnite anvil now has a tier equivalent to a bronze anvil +* Doubled the liberator's base damage to be on-par with the lever action shotgun in order to offset its poor performance due to the reload speed +* All non black powder shotgun shells now have some amount of damage threshold negation in order to not immediately become useless when used against early power armor + * Obviously shot will always fare worse against higher tier armor, in those cases either use flechettes, slugs, any of the high tier rounds or a different caliber entirely ## Fixed * Fixed 9mm soft points being called ".9mm" @@ -16,4 +19,8 @@ * Fixed survey scanners not picking up nether depth rock * Fixed FMJ, AP and DU rounds not having damage threshold negation, making them worse against most armored targets compared to JHP * Fixed autgen items made from unsmeltable materials being smeltable in the crucible -* Fixed 240mm shells not being visible in creative \ No newline at end of file +* Fixed 240mm shells not being visible in creative +* Fixed JHP's negative armor piercing value not being counted right, breaking the "armor is worth more" system +* Fixed the second UZI dealing more damage than it should +* Potentially fixed an issue where artillery rockets would sometimes get stuck mid-air +* Fixed the artillery rocket turret's grace range not being 250 as advertised \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index bee7541d3..c9c8d0ddc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=5091 +mod_build_number=5180 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 6e995ce01..2acf95a34 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -103,6 +103,7 @@ public class EntityMappings { addEntity(EntityVortex.class, "entity_vortex", 250); addEntity(EntityMeteor.class, "entity_meteor", 250); addEntity(EntityBoxcar.class, "entity_boxcar", 1000); + addEntity(EntityTorpedo.class, "entity_torpedo", 1000); addEntity(EntityMissileTaint.class, "entity_missile_taint", 1000); addEntity(EntityGrenadeGascan.class, "entity_grenade_gascan", 1000); addEntity(EntityNukeExplosionMK5.class, "entity_nuke_mk5", 1000); diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java index 0115dbef3..1a04f5a2f 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java @@ -97,13 +97,13 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu if(!worldObj.isRemote) { - if(this.targetEntity == null) { + /*if(this.targetEntity == null) { Vec3 delta = Vec3.createVectorHelper(this.lastTargetPos.xCoord - this.posX, this.lastTargetPos.yCoord - this.posY, this.lastTargetPos.zCoord - this.posZ); if(delta.lengthVector() <= 15D) { this.targeting = null; this.steering = null; } - } + }*/ if(this.targeting != null && this.targetEntity != null) this.targeting.recalculateTargetPosition(this, this.targetEntity); if(this.steering != null) this.steering.adjustCourse(this, 25D, 15D); diff --git a/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java b/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java index 8871bd430..2df7eb030 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java @@ -52,7 +52,7 @@ public class EntityBoxcar extends EntityThrowable { } if(!worldObj.isRemote) - worldObj.setBlock((int) (this.posX - 0.5), (int) (this.posY + 0.5), (int) (this.posZ - 0.5), ModBlocks.boxcar); + worldObj.setBlock((int) Math.floor(this.posX), (int) Math.floor(this.posY + 0.5), (int) Math.floor(this.posZ), ModBlocks.boxcar); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityTorpedo.java b/src/main/java/com/hbm/entity/projectile/EntityTorpedo.java new file mode 100644 index 000000000..9d459200d --- /dev/null +++ b/src/main/java/com/hbm/entity/projectile/EntityTorpedo.java @@ -0,0 +1,50 @@ +package com.hbm.entity.projectile; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.particle.helper.ExplosionCreator; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.projectile.EntityThrowable; +import net.minecraft.init.Blocks; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; + +public class EntityTorpedo extends EntityThrowable { + + public EntityTorpedo(World world) { + super(world); + this.ignoreFrustumCheck = true; + this.isImmuneToFire = true; + } + + @Override + public void onUpdate() { + + this.lastTickPosX = this.prevPosX = posX; + this.lastTickPosY = this.prevPosY = posY; + this.lastTickPosZ = this.prevPosZ = posZ; + + this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ); + + this.motionY -= 0.03; + if(motionY < -1.5) motionY = -1.5; + + if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air) { + this.setDead(); + ExplosionCreator.composeEffectStandard(worldObj, posX, posY + 1, posZ); + ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 20F); + vnt.makeStandard(); + vnt.explode(); + } + } + + @Override + protected void onImpact(MovingObjectPosition p_70184_1_) { } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double distance) { + return distance < 25000; + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java index 47932b03c..7452523f6 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java @@ -55,10 +55,10 @@ public class XFactory12ga { g12_bp = new BulletConfig().setItem(EnumAmmo.G12_BP).setBlackPowder(true).setProjectiles(8).setDamage(0.5F/8F).setSpread(0.05F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP")); g12_bp_magnum = new BulletConfig().setItem(EnumAmmo.G12_BP_MAGNUM).setBlackPowder(true).setProjectiles(4).setDamage(0.5F/4F).setSpread(0.05F).setRicochetAngle(25).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP_MAGNUM")); g12_bp_slug = new BulletConfig().setItem(EnumAmmo.G12_BP_SLUG).setBlackPowder(true).setDamage(0.5F).setSpread(0.01F).setRicochetAngle(5).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP_SLUG")); - g12 = new BulletConfig().setItem(EnumAmmo.G12).setProjectiles(8).setDamage(1F/8F).setSpread(0.05F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xB52B2B, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA")); - g12_slug = new BulletConfig().setItem(EnumAmmo.G12_SLUG).setSpread(0.0F).setRicochetAngle(25).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x393939, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_SLUG")); - g12_flechette = new BulletConfig().setItem(EnumAmmo.G12_FLECHETTE).setProjectiles(8).setDamage(1F/8F).setThresholdNegation(5F).setArmorPiercing(0.2F).setSpread(0.025F).setRicochetAngle(5).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x3C80F0, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_FLECHETTE")); - g12_magnum = new BulletConfig().setItem(EnumAmmo.G12_MAGNUM).setProjectiles(4).setDamage(2F/4F).setSpread(0.015F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x278400, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_MAGNUM")); + g12 = new BulletConfig().setItem(EnumAmmo.G12).setProjectiles(8).setDamage(1F/8F).setSpread(0.05F).setRicochetAngle(15).setThresholdNegation(2F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xB52B2B, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA")); + g12_slug = new BulletConfig().setItem(EnumAmmo.G12_SLUG).setSpread(0.0F).setRicochetAngle(25).setThresholdNegation(4F).setArmorPiercing(0.15F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x393939, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_SLUG")); + g12_flechette = new BulletConfig().setItem(EnumAmmo.G12_FLECHETTE).setProjectiles(8).setDamage(1F/8F).setThresholdNegation(5F).setThresholdNegation(3F).setArmorPiercing(0.2F).setSpread(0.025F).setRicochetAngle(5).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x3C80F0, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_FLECHETTE")); + g12_magnum = new BulletConfig().setItem(EnumAmmo.G12_MAGNUM).setProjectiles(4).setDamage(2F/4F).setSpread(0.015F).setRicochetAngle(15).setThresholdNegation(4F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x278400, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_MAGNUM")); g12_explosive = new BulletConfig().setItem(EnumAmmo.G12_EXPLOSIVE).setDamage(2.5F).setOnImpact(LAMBDA_STANDARD_EXPLODE).setSpread(0F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xDA4127, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_EXPLOSIVE")); g12_phosphorus = new BulletConfig().setItem(EnumAmmo.G12_PHOSPHORUS).setProjectiles(8).setDamage(1F/8F).setSpread(0.015F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x910001, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_PHOSPHORUS")) .setOnImpact((bullet, mop) -> { if(mop.entityHit != null && mop.entityHit instanceof EntityLivingBase) { HbmLivingProps data = HbmLivingProps.getData((EntityLivingBase) mop.entityHit); if(data.phosphorus < 300) data.phosphorus = 300; } }); @@ -111,7 +111,7 @@ public class XFactory12ga { ModItems.gun_liberator = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(200).draw(20).inspect(21).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(8F).delay(20).rounds(4).reload(25, 15, 7, 0).jam(45).sound("hbm:weapon.fire.shotgunAlt", 1.0F, 1.0F) + .dmg(16F).delay(20).rounds(4).reload(25, 15, 7, 0).jam(45).sound("hbm:weapon.fire.shotgunAlt", 1.0F, 1.0F) .mag(new MagazineSingleReload(0, 4).addConfigs(all)) .offset(0.75, -0.0625, -0.1875) .setupStandardFire().recoil(LAMBDA_RECOIL_LIBERATOR)) diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java index 177a36afd..36fd8780d 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java @@ -87,7 +87,7 @@ public class XFactory9mm { .anim(LAMBDA_UZI_ANIMS).orchestra(Orchestras.ORCHESTRA_UZI_AKIMBO), new GunConfig().dura(3_000).draw(15).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) - .dmg(7.5F).delay(2).dry(25).auto(true).spread(0.005F).reload(55).jam(50).sound("hbm:weapon.fire.uzi", 1.0F, 1.0F) + .dmg(3F).delay(2).dry(25).auto(true).spread(0.005F).reload(55).jam(50).sound("hbm:weapon.fire.uzi", 1.0F, 1.0F) .mag(new MagazineFullReload(1, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap)) .offset(1, -0.0625 * 2.5, -0.375D) .setupStandardFire().recoil(LAMBDA_RECOIL_UZI)) diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 678d607e1..677dcd0d6 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1489,9 +1489,9 @@ public class MainRegistry { ignoreMappings.add("hbm:item.clip_euthanasia"); ignoreMappings.add("hbm:item.clip_defabricator"); ignoreMappings.add("hbm:item.ammo_folly_du"); - ignoreMappings.add("hbm:tile.statue_elb"); - ignoreMappings.add("hbm:tile.statue_elb_g"); - ignoreMappings.add("hbm:tile.statue_elb_w"); + ignoreMappings.add("hbm:tile.#null"); + ignoreMappings.add("hbm:tile.#void"); + ignoreMappings.add("hbm:tile.#ngtv"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 17af73b0a..87b6df678 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1117,6 +1117,7 @@ public class ResourceManager { public static final IModelCustom boxcar = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/boxcar.obj")); public static final IModelCustom duchessgambit = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/duchessgambit.obj")); public static final IModelCustom building = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/building.obj")); + public static final IModelCustom torpedo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/torpedo.obj")); public static final IModelCustom rpc = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rpc.obj")); public static final IModelCustom tom_main = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/tom_main.obj")); public static final IModelCustom tom_flame = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/tom_flame.hmf")); @@ -1240,6 +1241,7 @@ public class ResourceManager { public static final ResourceLocation boxcar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/boxcar.png"); public static final ResourceLocation duchessgambit_tex = new ResourceLocation(RefStrings.MODID, "textures/models/duchessgambit.png"); public static final ResourceLocation building_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/building.png"); + public static final ResourceLocation torpedo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/torpedo.png"); public static final ResourceLocation rpc_tex = new ResourceLocation(RefStrings.MODID, "textures/models/rpc.png"); public static final ResourceLocation tom_main_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tom_main.png"); public static final ResourceLocation tom_flame_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tom_flame.png"); diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderBoxcar.java b/src/main/java/com/hbm/render/entity/projectile/RenderBoxcar.java index 275a6083d..2840cf000 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderBoxcar.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderBoxcar.java @@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.entity.projectile.EntityBoxcar; import com.hbm.entity.projectile.EntityBuilding; import com.hbm.entity.projectile.EntityDuchessGambit; +import com.hbm.entity.projectile.EntityTorpedo; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -14,42 +15,48 @@ import net.minecraft.util.ResourceLocation; public class RenderBoxcar extends Render { @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - - if(p_76986_1_ instanceof EntityBoxcar) { - GL11.glTranslatef(0, 0, -1.5F); - GL11.glRotated(180, 0, 0, 1); - GL11.glRotated(90, 1, 0, 0); - - bindTexture(ResourceManager.boxcar_tex); - ResourceManager.boxcar.renderAll(); - } - - if(p_76986_1_ instanceof EntityDuchessGambit) { - GL11.glTranslatef(0, 0, -1.0F); - - bindTexture(ResourceManager.duchessgambit_tex); - ResourceManager.duchessgambit.renderAll(); - } - - if(p_76986_1_ instanceof EntityBuilding) { - GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.building_tex); - ResourceManager.building.renderAll(); - GL11.glEnable(GL11.GL_CULL_FACE); - } - + GL11.glTranslated(x, y, z); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_LIGHTING); + + if(entity instanceof EntityBoxcar) { + GL11.glTranslatef(0, 0, -1.5F); + GL11.glRotated(180, 0, 0, 1); + GL11.glRotated(90, 1, 0, 0); + + bindTexture(ResourceManager.boxcar_tex); + ResourceManager.boxcar.renderAll(); + } + + if(entity instanceof EntityDuchessGambit) { + GL11.glTranslatef(0, 0, -1.0F); + + bindTexture(ResourceManager.duchessgambit_tex); + ResourceManager.duchessgambit.renderAll(); + } + + if(entity instanceof EntityBuilding) { + GL11.glDisable(GL11.GL_CULL_FACE); + bindTexture(ResourceManager.building_tex); + ResourceManager.building.renderAll(); + GL11.glEnable(GL11.GL_CULL_FACE); + } + + if(entity instanceof EntityTorpedo) { + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.torpedo_tex); + ResourceManager.torpedo.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + GL11.glPopMatrix(); } @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + protected ResourceLocation getEntityTexture(Entity entity) { return ResourceManager.boxcar_tex; } diff --git a/src/main/java/com/hbm/render/util/RenderInfoSystem.java b/src/main/java/com/hbm/render/util/RenderInfoSystem.java index a578f110a..28a775097 100644 --- a/src/main/java/com/hbm/render/util/RenderInfoSystem.java +++ b/src/main/java/com/hbm/render/util/RenderInfoSystem.java @@ -49,8 +49,9 @@ public class RenderInfoSystem { if(event.type != ElementType.CROSSHAIRS) return; - - //this.messages.put(-666, new InfoEntry("Your arteries are bad cable management, rip them out deluxe edition", 666_666)); + + //this.messages.put(-666, new InfoEntry(Minecraft.getMinecraft().theWorld.getCelestialAngle(0) + "", 666_666)); + //this.messages.put(-665, new InfoEntry(Minecraft.getMinecraft().theWorld.getCurrentMoonPhaseFactor() + "", 666_666)); if(this.messages.isEmpty()) return; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java index 85027c114..728fa523e 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java @@ -92,7 +92,7 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem @Override public double getDecetorGrace() { - return 32D; + return 250D; } @Override diff --git a/src/main/java/com/hbm/util/DamageResistanceHandler.java b/src/main/java/com/hbm/util/DamageResistanceHandler.java index d9b169377..dc5efea0f 100644 --- a/src/main/java/com/hbm/util/DamageResistanceHandler.java +++ b/src/main/java/com/hbm/util/DamageResistanceHandler.java @@ -300,7 +300,7 @@ public class DamageResistanceHandler { dt = Math.max(0F, dt - pierceDT); if(dt >= amount) return 0F; amount -= dt; - dr *= MathHelper.clamp_float(1F - pierce, 0F, 1F); + dr *= MathHelper.clamp_float(1F - pierce, 0F, 2F /* we allow up to -1 armor piercing, which can double effective armor values */); return amount *= (1F - dr); } From 10f62b88e17322cf5d58d739d128aab3d82acff9 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 22 Dec 2024 00:41:10 +0100 Subject: [PATCH 6/7] the malicious gigglefish from the silly dimension --- changelog | 1 + .../com/hbm/entity/logic/EntityPlaneBase.java | 95 ++++++++++++++---- .../hbm/entity/projectile/EntityBoxcar.java | 15 +++ .../projectile/EntityDuchessGambit.java | 80 ++++++++------- .../hbm/entity/projectile/EntityTorpedo.java | 32 ++++-- .../inventory/recipes/PedestalRecipes.java | 93 +++++++++++++++++ .../recipes/loader/SerializableRecipe.java | 1 + src/main/java/com/hbm/items/ModItems.java | 5 + .../sedna/factory/GunFactoryClient.java | 8 +- .../weapon/sedna/factory/Orchestras.java | 6 ++ .../weapon/sedna/factory/XFactory12ga.java | 27 +++-- .../weapon/sedna/factory/XFactory44.java | 45 ++++++++- src/main/java/com/hbm/main/ClientProxy.java | 6 ++ .../java/com/hbm/main/ResourceManager.java | 1 + .../entity/projectile/RenderBoxcar.java | 5 +- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../hbm/textures/gui/guide_pedestal.png | Bin 0 -> 1707 bytes .../assets/hbm/textures/items/clay_tablet.png | Bin 0 -> 227 bytes .../assets/hbm/textures/items/motor_dnt.png | Bin 374 -> 0 bytes .../assets/hbm/textures/models/BFLauncher.png | Bin 1227 -> 0 bytes .../assets/hbm/textures/models/BaleFlare.png | Bin 670 -> 0 bytes .../hbm/textures/models/FatmanLauncher.png | Bin 1442 -> 0 bytes .../assets/hbm/textures/models/ModelB92.png | Bin 1711 -> 0 bytes .../hbm/textures/models/ModelB92Dark.png | Bin 1680 -> 0 bytes .../assets/hbm/textures/models/ModelB93.png | Bin 3194 -> 0 bytes .../hbm/textures/models/ModelCryolator.png | Bin 2822 -> 0 bytes .../hbm/textures/models/ModelDefabricator.png | Bin 1479 -> 0 bytes .../hbm/textures/models/ModelEMPRay.png | Bin 3943 -> 0 bytes .../hbm/textures/models/ModelEuthanasia.png | Bin 1668 -> 0 bytes .../hbm/textures/models/ModelGustav.png | Bin 1435 -> 0 bytes .../hbm/textures/models/ModelGustavYellow.png | Bin 1557 -> 0 bytes .../assets/hbm/textures/models/ModelHP.png | Bin 1208 -> 0 bytes .../hbm/textures/models/ModelImmolator.png | Bin 1115 -> 0 bytes .../assets/hbm/textures/models/ModelJack.png | Bin 1255 -> 0 bytes .../hbm/textures/models/ModelLacunae.png | Bin 2856 -> 0 bytes .../textures/models/ModelLacunaeAvenger.png | Bin 2844 -> 0 bytes .../hbm/textures/models/ModelLacunaeReal.png | Bin 2854 -> 0 bytes .../assets/hbm/textures/models/ModelMP.png | Bin 1578 -> 0 bytes .../assets/hbm/textures/models/ModelMP40.png | Bin 1979 -> 0 bytes .../hbm/textures/models/ModelMP_alt.png | Bin 1295 -> 0 bytes .../hbm/textures/models/ModelNightmare.png | Bin 757 -> 0 bytes .../hbm/textures/models/ModelNightmare2.png | Bin 945 -> 0 bytes .../assets/hbm/textures/models/ModelOSIPR.png | Bin 1255 -> 0 bytes .../assets/hbm/textures/models/ModelSpark.png | Bin 1518 -> 0 bytes .../hbm/textures/models/ModelUboinik.png | Bin 1738 -> 0 bytes .../assets/hbm/textures/models/ModelUzi.png | Bin 1507 -> 0 bytes .../hbm/textures/models/ModelUziBarrel.png | Bin 248 -> 0 bytes .../hbm/textures/models/ModelUziSaturnite.png | Bin 1620 -> 0 bytes .../hbm/textures/models/ModelUziSilencer.png | Bin 305 -> 0 bytes .../assets/hbm/textures/models/ModelZOMG.png | Bin 1348 -> 0 bytes .../assets/hbm/textures/models/missilePad.png | Bin 2161 -> 0 bytes .../models/weapons/bolter_digamma.png | Bin 2316 -> 0 bytes .../hbm/textures/models/weapons/ff/mg42.png | Bin 645 -> 0 bytes .../textures/models/weapons/ff/nightmare.png | Bin 327 -> 0 bytes .../models/weapons/ff/nightmare_orig.png | Bin 289 -> 0 bytes .../hbm/textures/models/weapons/ff/rem700.png | Bin 3493 -> 0 bytes .../textures/models/weapons/ff/rem700poly.png | Bin 240 -> 0 bytes .../textures/models/weapons/ff/rem700sat.png | Bin 252 -> 0 bytes .../models/weapons/flechette_barrel.png | Bin 308 -> 0 bytes .../models/weapons/flechette_base.png | Bin 195 -> 0 bytes .../models/weapons/flechette_body.png | Bin 501 -> 0 bytes .../models/weapons/flechette_chamber.png | Bin 332 -> 0 bytes .../models/weapons/flechette_drum.png | Bin 182 -> 0 bytes .../models/weapons/flechette_gren_tube.png | Bin 314 -> 0 bytes .../models/weapons/flechette_grenades.png | Bin 159 -> 0 bytes .../models/weapons/flechette_pivot.png | Bin 156 -> 0 bytes .../models/weapons/flechette_stock.png | Bin 141 -> 0 bytes .../textures/models/weapons/flechette_top.png | Bin 271 -> 0 bytes .../models/weapons/flechette_trigger.png | Bin 102 -> 0 bytes .../models/weapons/glass_cannon_panel.png | Bin 183 -> 0 bytes .../hbm/textures/models/weapons/hk69.png | Bin 528 -> 0 bytes .../hbm/textures/models/weapons/lent_gun.png | Bin 4915 -> 0 bytes .../models/weapons/lunatic_sniper.png | Bin 377 -> 0 bytes .../hbm/textures/models/weapons/novac.png | Bin 4594 -> 0 bytes .../models/weapons/pistol_texture.png | Bin 320 -> 0 bytes .../hbm/textures/models/weapons/protege.png | Bin 0 -> 4537 bytes .../hbm/textures/models/weapons/red_key.png | Bin 5624 -> 0 bytes .../hbm/textures/models/weapons/remington.png | Bin 10514 -> 0 bytes .../hbm/textures/models/weapons/sauergun.png | Bin 945 -> 0 bytes .../textures/models/weapons/sky_stinger.png | Bin 1550 -> 0 bytes .../hbm/textures/models/weapons/thompson.png | Bin 242951 -> 0 bytes .../hbm/textures/models/weapons/torpedo.png | Bin 831 -> 632 bytes .../hbm/textures/models/weapons/vortex.png | Bin 228728 -> 0 bytes 84 files changed, 343 insertions(+), 79 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java create mode 100644 src/main/resources/assets/hbm/textures/gui/guide_pedestal.png create mode 100644 src/main/resources/assets/hbm/textures/items/clay_tablet.png delete mode 100644 src/main/resources/assets/hbm/textures/items/motor_dnt.png delete mode 100644 src/main/resources/assets/hbm/textures/models/BFLauncher.png delete mode 100644 src/main/resources/assets/hbm/textures/models/BaleFlare.png delete mode 100644 src/main/resources/assets/hbm/textures/models/FatmanLauncher.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelB92.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelB92Dark.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelB93.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelCryolator.png delete mode 100755 src/main/resources/assets/hbm/textures/models/ModelDefabricator.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelEMPRay.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelEuthanasia.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelGustav.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelGustavYellow.png delete mode 100755 src/main/resources/assets/hbm/textures/models/ModelHP.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelImmolator.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelJack.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelLacunae.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelLacunaeAvenger.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelLacunaeReal.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelMP.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelMP40.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelMP_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelNightmare.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelNightmare2.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelOSIPR.png delete mode 100755 src/main/resources/assets/hbm/textures/models/ModelSpark.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelUboinik.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelUzi.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelUziBarrel.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelUziSaturnite.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelUziSilencer.png delete mode 100644 src/main/resources/assets/hbm/textures/models/ModelZOMG.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missilePad.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/bolter_digamma.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/ff/mg42.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/ff/nightmare.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/ff/nightmare_orig.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/ff/rem700.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/ff/rem700poly.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/ff/rem700sat.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/flechette_barrel.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/flechette_base.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/flechette_body.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/flechette_chamber.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/flechette_drum.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/flechette_gren_tube.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/flechette_grenades.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/flechette_pivot.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/flechette_stock.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/flechette_top.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/flechette_trigger.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/glass_cannon_panel.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/hk69.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/lent_gun.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/lunatic_sniper.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/novac.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/pistol_texture.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/protege.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/red_key.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/remington.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/sauergun.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/sky_stinger.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/thompson.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/vortex.png diff --git a/changelog b/changelog index ca9f03dff..0e5beef67 100644 --- a/changelog +++ b/changelog @@ -6,6 +6,7 @@ * Doubled the liberator's base damage to be on-par with the lever action shotgun in order to offset its poor performance due to the reload speed * All non black powder shotgun shells now have some amount of damage threshold negation in order to not immediately become useless when used against early power armor * Obviously shot will always fare worse against higher tier armor, in those cases either use flechettes, slugs, any of the high tier rounds or a different caliber entirely +* Bombers and cargo planes now use interpolation, making their movement smoother and fixing potential desyncs due to TPS ## Fixed * Fixed 9mm soft points being called ".9mm" diff --git a/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java b/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java index d34fec111..ebb1accb2 100644 --- a/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java +++ b/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java @@ -22,6 +22,19 @@ import net.minecraftforge.common.ForgeChunkManager.Ticket; import net.minecraftforge.common.ForgeChunkManager.Type; public abstract class EntityPlaneBase extends Entity implements IChunkLoader { + + protected int turnProgress; + protected double syncPosX; + protected double syncPosY; + protected double syncPosZ; + protected double syncYaw; + protected double syncPitch; + @SideOnly(Side.CLIENT) + protected double velocityX; + @SideOnly(Side.CLIENT) + protected double velocityY; + @SideOnly(Side.CLIENT) + protected double velocityZ; private Ticket loaderTicket; private List loadedChunks = new ArrayList(); @@ -72,37 +85,57 @@ public abstract class EntityPlaneBase extends Entity implements IChunkLoader { @Override public void onUpdate() { - - this.lastTickPosX = this.prevPosX = posX; - this.lastTickPosY = this.prevPosY = posY; - this.lastTickPosZ = this.prevPosZ = posZ; - this.setPosition(posX + motionX, posY + motionY, posZ + motionZ); if(!worldObj.isRemote) { this.dataWatcher.updateObject(17, health); } else { health = this.dataWatcher.getWatchableObjectFloat(17); } - - this.rotation(); - - if(this.health <= 0) { - motionY -= 0.025; + + if(worldObj.isRemote) { - for(int i = 0; i < 10; i++) ParticleUtil.spawnGasFlame(this.worldObj, this.posX + rand.nextGaussian() * 0.5 - motionX * 2, this.posY + rand.nextGaussian() * 0.5 - motionY * 2, this.posZ + rand.nextGaussian() * 0.5 - motionZ * 2, 0.0, 0.1, 0.0); - - if((!worldObj.getBlock((int) posX, (int) posY, (int) posZ).isAir(worldObj, (int) posX, (int) posY, (int) posZ) || posY < 0) && !worldObj.isRemote) { - this.setDead(); - new ExplosionVNT(worldObj, posX, posY, posZ, 15F).makeStandard().explode(); - worldObj.playSoundEffect(posX, posY, posZ, "hbm:entity.planeCrash", 25.0F, 1.0F); - return; + this.lastTickPosX = this.posX; + this.lastTickPosY = this.posY; + this.lastTickPosZ = this.posZ; + if(this.turnProgress > 0) { + double interpX = this.posX + (this.syncPosX - this.posX) / (double) this.turnProgress; + double interpY = this.posY + (this.syncPosY - this.posY) / (double) this.turnProgress; + double interpZ = this.posZ + (this.syncPosZ - this.posZ) / (double) this.turnProgress; + double d = MathHelper.wrapAngleTo180_double(this.syncYaw - (double) this.rotationYaw); + this.rotationYaw = (float) ((double) this.rotationYaw + d / (double) this.turnProgress); + this.rotationPitch = (float)((double)this.rotationPitch + (this.syncPitch - (double)this.rotationPitch) / (double)this.turnProgress); + --this.turnProgress; + this.setPosition(interpX, interpY, interpZ); + } else { + this.setPosition(this.posX, this.posY, this.posZ); } + } else { - this.motionY = 0F; + this.lastTickPosX = this.prevPosX = posX; + this.lastTickPosY = this.prevPosY = posY; + this.lastTickPosZ = this.prevPosZ = posZ; + this.setPosition(posX + motionX, posY + motionY, posZ + motionZ); + + this.rotation(); + + if(this.health <= 0) { + motionY -= 0.025; + + for(int i = 0; i < 10; i++) ParticleUtil.spawnGasFlame(this.worldObj, this.posX + rand.nextGaussian() * 0.5 - motionX * 2, this.posY + rand.nextGaussian() * 0.5 - motionY * 2, this.posZ + rand.nextGaussian() * 0.5 - motionZ * 2, 0.0, 0.1, 0.0); + + if((!worldObj.getBlock((int) posX, (int) posY, (int) posZ).isAir(worldObj, (int) posX, (int) posY, (int) posZ) || posY < 0)) { + this.setDead(); + new ExplosionVNT(worldObj, posX, posY, posZ, 15F).makeStandard().explode(); + worldObj.playSoundEffect(posX, posY, posZ, "hbm:entity.planeCrash", 25.0F, 1.0F); + return; + } + } else { + this.motionY = 0F; + } + + if(this.ticksExisted > timer) this.setDead(); + loadNeighboringChunks((int)Math.floor(posX / 16D), (int)Math.floor(posZ / 16D)); } - - if(this.ticksExisted > timer) this.setDead(); - if(!worldObj.isRemote) loadNeighboringChunks((int)Math.floor(posX / 16D), (int)Math.floor(posZ / 16D)); } protected void rotation() { @@ -113,6 +146,26 @@ public abstract class EntityPlaneBase extends Entity implements IChunkLoader { while(this.rotationYaw - this.prevRotationYaw < -180.0F) this.prevRotationYaw -= 360.0F; while(this.rotationYaw - this.prevRotationYaw >= 180.0F) this.prevRotationYaw += 360.0F; } + + @SideOnly(Side.CLIENT) + public void setVelocity(double velX, double velY, double velZ) { + this.velocityX = this.motionX = velX; + this.velocityY = this.motionY = velY; + this.velocityZ = this.motionZ = velZ; + } + + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double x, double y, double z, float yaw, float pitch, int theNumberThree) { + this.syncPosX = x; + this.syncPosY = y; + this.syncPosZ = z; + this.syncYaw = yaw; + this.syncPitch = pitch; + this.turnProgress = theNumberThree; + this.motionX = this.velocityX; + this.motionY = this.velocityY; + this.motionZ = this.velocityZ; + } @Override public void setDead() { diff --git a/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java b/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java index 2df7eb030..7baf2de1f 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java @@ -5,12 +5,16 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.ExplosionLarge; import com.hbm.lib.ModDamageSource; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -26,6 +30,17 @@ public class EntityBoxcar extends EntityThrowable { @Override public void onUpdate() { + if(!worldObj.isRemote && this.ticksExisted == 1) { + for(int i = 0; i < 50; i++) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "bf"); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, + posX + (rand.nextDouble() - 0.5) * 3, + posY + (rand.nextDouble() - 0.5) * 15, + posZ + (rand.nextDouble() - 0.5) * 3), + new TargetPoint(dimension, posX, posY, posZ, 150)); + } + } this.lastTickPosX = this.prevPosX = posX; this.lastTickPosY = this.prevPosY = posY; diff --git a/src/main/java/com/hbm/entity/projectile/EntityDuchessGambit.java b/src/main/java/com/hbm/entity/projectile/EntityDuchessGambit.java index 7e717bc29..57cae2213 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityDuchessGambit.java +++ b/src/main/java/com/hbm/entity/projectile/EntityDuchessGambit.java @@ -5,12 +5,16 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.ExplosionLarge; import com.hbm.lib.ModDamageSource; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -26,52 +30,54 @@ public class EntityDuchessGambit extends EntityThrowable { @Override public void onUpdate() { + if(!worldObj.isRemote && this.ticksExisted == 1) { + for(int i = 0; i < 50; i++) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "bf"); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, + posX + (rand.nextDouble() - 0.5) * 5, + posY + (rand.nextDouble() - 0.5) * 7, + posZ + (rand.nextDouble() - 0.5) * 20), + new TargetPoint(dimension, posX, posY, posZ, 150)); + } + } + this.lastTickPosX = this.prevPosX = posX; this.lastTickPosY = this.prevPosY = posY; this.lastTickPosZ = this.prevPosZ = posZ; this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ); - /*this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ;*/ - this.motionY -= 0.03; if(motionY < -1.5) motionY = -1.5; - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) - { - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:alarm.gambit", 10000.0F, 1F); - this.setDead(); - - List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 5, posY - 2, posZ - 9, posX + 5, posY + 2, posZ + 9)); - - for(Entity e : list) { - e.attackEntityFrom(ModDamageSource.boat, 1000); - } - - if(!worldObj.isRemote) { - ExplosionLarge.explode(worldObj, posX, posY, posZ - 6, 2, true, false, false); - ExplosionLarge.explode(worldObj, posX, posY, posZ - 3, 2, true, false, false); - ExplosionLarge.explode(worldObj, posX, posY, posZ, 2, true, false, false); - ExplosionLarge.explode(worldObj, posX, posY, posZ + 3, 2, true, false, false); - ExplosionLarge.explode(worldObj, posX, posY, posZ + 6, 2, true, false, false); - - worldObj.setBlock((int)(this.posX - 0.5), (int)(this.posY + 0.5), (int)(this.posZ - 0.5), ModBlocks.boat); - } - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 3); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2.5); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1.5); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1); - } - } + + if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air) { + this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:alarm.gambit", 10000.0F, 1F); + this.setDead(); + + List list = (List) worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 5, posY - 2, posZ - 9, posX + 5, posY + 2, posZ + 9)); + + for(Entity e : list) { + e.attackEntityFrom(ModDamageSource.boat, 1000); + } + + if(!worldObj.isRemote) { + ExplosionLarge.explode(worldObj, posX, posY, posZ - 6, 2, true, false, false); + ExplosionLarge.explode(worldObj, posX, posY, posZ - 3, 2, true, false, false); + ExplosionLarge.explode(worldObj, posX, posY, posZ, 2, true, false, false); + ExplosionLarge.explode(worldObj, posX, posY, posZ + 3, 2, true, false, false); + ExplosionLarge.explode(worldObj, posX, posY, posZ + 6, 2, true, false, false); + + worldObj.setBlock((int) (this.posX - 0.5), (int) (this.posY + 0.5), (int) (this.posZ - 0.5), ModBlocks.boat); + } + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 3); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2.5); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1.5); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1); + } + } @Override protected void onImpact(MovingObjectPosition p_70184_1_) { diff --git a/src/main/java/com/hbm/entity/projectile/EntityTorpedo.java b/src/main/java/com/hbm/entity/projectile/EntityTorpedo.java index 9d459200d..ddd1dc760 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityTorpedo.java +++ b/src/main/java/com/hbm/entity/projectile/EntityTorpedo.java @@ -1,12 +1,16 @@ package com.hbm.entity.projectile; import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.helper.ExplosionCreator; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -21,21 +25,35 @@ public class EntityTorpedo extends EntityThrowable { @Override public void onUpdate() { + if(!worldObj.isRemote && this.ticksExisted == 1) { + for(int i = 0; i < 15; i++) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "bf"); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, + posX + (rand.nextDouble() - 0.5) * 2, + posY + (rand.nextDouble() - 0.5) * 1, + posZ + (rand.nextDouble() - 0.5) * 2), + new TargetPoint(dimension, posX, posY, posZ, 150)); + } + } + this.lastTickPosX = this.prevPosX = posX; this.lastTickPosY = this.prevPosY = posY; this.lastTickPosZ = this.prevPosZ = posZ; this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ); - this.motionY -= 0.03; - if(motionY < -1.5) motionY = -1.5; + this.motionY -= 0.04; + if(motionY < -2.5) motionY = -2.5; if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air) { - this.setDead(); - ExplosionCreator.composeEffectStandard(worldObj, posX, posY + 1, posZ); - ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 20F); - vnt.makeStandard(); - vnt.explode(); + if(!worldObj.isRemote) { + this.setDead(); + ExplosionCreator.composeEffectStandard(worldObj, posX, posY + 1, posZ); + ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 20F); + vnt.makeStandard(); + vnt.explode(); + } } } diff --git a/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java b/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java new file mode 100644 index 000000000..b91856a80 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java @@ -0,0 +1,93 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; + +import net.minecraft.item.ItemStack; + +public class PedestalRecipes extends SerializableRecipe { + + public static List recipes = new ArrayList(); + + @Override + public void registerDefaults() { + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_light_revolver_dani), + null, null, null, + null, new ComparableStack(ModItems.gun_light_revolver), null, + null, null, null)); + } + + @Override + public String getFileName() { + return "hbmPedestal.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = (JsonObject) recipe; + + ItemStack output = this.readItemStack(obj.get("output").getAsJsonArray()); + JsonArray inputArray = obj.get("input").getAsJsonArray(); + AStack[] input = new AStack[9]; + + for(int i = 0; i < 9; i++) { + JsonElement element = inputArray.get(i); + if(element.isJsonNull()) { + input[i] = null; + } else { + input[i] = this.readAStack(element.getAsJsonArray()); + } + } + + this.recipes.add(new PedestalRecipe(output, input)); + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + PedestalRecipe rec = (PedestalRecipe) recipe; + + writer.name("output"); + this.writeItemStack(rec.output, writer); + + writer.name("input").beginArray(); + for(int i = 0; i < rec.input.length; i++) { + if(rec.input[i] == null) { + writer.nullValue(); + } else { + this.writeAStack(rec.input[i], writer); + } + } + writer.endArray(); + } + + public static class PedestalRecipe { + public ItemStack output; + public AStack[] input; + + public PedestalRecipe(ItemStack output, AStack... input) { + this.output = output; + this.input = input; + } + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index 5edad0845..de9283804 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -75,6 +75,7 @@ public abstract class SerializableRecipe { recipeHandlers.add(new ExposureChamberRecipes()); recipeHandlers.add(new AmmoPressRecipes()); recipeHandlers.add(new AssemblerRecipes()); + recipeHandlers.add(new PedestalRecipes()); recipeHandlers.add(new MatDistribution()); recipeHandlers.add(new CustomMachineRecipes()); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index fac873ebd..dc05a705e 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1590,6 +1590,7 @@ public class ModItems { public static Item gun_flaregun; public static Item gun_heavy_revolver; public static Item gun_heavy_revolver_lilmac; + public static Item gun_heavy_revolver_protege; public static Item gun_carbine; public static Item gun_am180; public static Item gun_liberator; @@ -2313,6 +2314,7 @@ public class ModItems { public static Item book_lore; public static Item holotape_image; public static Item holotape_damaged; + public static Item clay_tablet; public static Item polaroid; public static Item glitch; @@ -5217,6 +5219,7 @@ public class ModItems { book_lore = new ItemBookLore().setUnlocalizedName("book_lore").setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_pages"); holotape_image = new ItemHolotapeImage().setUnlocalizedName("holotape_image").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape"); holotape_damaged = new Item().setUnlocalizedName("holotape_damaged").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape_damaged"); + clay_tablet = new Item().setUnlocalizedName("clay_tablet").setCreativeTab(null).setTextureName(RefStrings.MODID + ":clay_tablet"); polaroid = new ItemPolaroid().setUnlocalizedName("polaroid").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":polaroid_" + MainRegistry.polaroidID); glitch = new ItemGlitch().setUnlocalizedName("glitch").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glitch_" + MainRegistry.polaroidID); @@ -6809,6 +6812,7 @@ public class ModItems { GameRegistry.registerItem(gun_flaregun, gun_flaregun.getUnlocalizedName()); GameRegistry.registerItem(gun_heavy_revolver, gun_heavy_revolver.getUnlocalizedName()); GameRegistry.registerItem(gun_heavy_revolver_lilmac, gun_heavy_revolver_lilmac.getUnlocalizedName()); + GameRegistry.registerItem(gun_heavy_revolver_protege, gun_heavy_revolver_protege.getUnlocalizedName()); GameRegistry.registerItem(gun_carbine, gun_carbine.getUnlocalizedName()); GameRegistry.registerItem(gun_am180, gun_am180.getUnlocalizedName()); GameRegistry.registerItem(gun_liberator, gun_liberator.getUnlocalizedName()); @@ -7582,6 +7586,7 @@ public class ModItems { GameRegistry.registerItem(book_lore, book_lore.getUnlocalizedName()); GameRegistry.registerItem(holotape_image, holotape_image.getUnlocalizedName()); GameRegistry.registerItem(holotape_damaged, holotape_damaged.getUnlocalizedName()); + GameRegistry.registerItem(clay_tablet, clay_tablet.getUnlocalizedName()); //Technical Items GameRegistry.registerItem(b_smoke1, b_smoke1.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java index a6d1fd2fd..d2377a9dd 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -48,6 +48,7 @@ public class GunFactoryClient { MinecraftForgeClient.registerItemRenderer(ModItems.gun_flaregun, new ItemRenderFlaregun()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_heavy_revolver, new ItemRenderHeavyRevolver(ResourceManager.heavy_revolver_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_heavy_revolver_lilmac, new ItemRenderHeavyRevolver(ResourceManager.lilmac_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_heavy_revolver_protege, new ItemRenderHeavyRevolver(ResourceManager.heavy_revolver_protege_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_carbine, new ItemRenderCarbine()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_am180, new ItemRenderAm180()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_liberator, new ItemRenderLiberator()); @@ -101,7 +102,8 @@ public class GunFactoryClient { m44_jhp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); m44_ap.setRenderer(LegoClient.RENDER_AP_BULLET); m44_express.setRenderer(LegoClient.RENDER_EXPRESS_BULLET); - m44_equestrian.setRenderer(LegoClient.RENDER_LEGENDARY_BULLET); + m44_equestrian_pip.setRenderer(LegoClient.RENDER_LEGENDARY_BULLET); + m44_equestrian_mn7.setRenderer(LegoClient.RENDER_LEGENDARY_BULLET); p22_sp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); p22_fmj.setRenderer(LegoClient.RENDER_STANDARD_BULLET); @@ -144,7 +146,8 @@ public class GunFactoryClient { g12_explosive.setRenderer(LegoClient.RENDER_EXPRESS_BULLET); g12_phosphorus.setRenderer(LegoClient.RENDER_AP_BULLET); //g12_anthrax.setRenderer(LegoClient.RENDER_STANDARD_BULLET); - g12_equestrian.setRenderer(LegoClient.RENDER_LEGENDARY_BULLET); + g12_equestrian_bj.setRenderer(LegoClient.RENDER_LEGENDARY_BULLET); + g12_equestrian_tkr.setRenderer(LegoClient.RENDER_LEGENDARY_BULLET); g26_flare.setRenderer(LegoClient.RENDER_FLARE); g26_flare_supply.setRenderer(LegoClient.RENDER_FLARE_SUPPLY); @@ -185,6 +188,7 @@ public class GunFactoryClient { ((ItemGunBaseNT) ModItems.gun_flaregun) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_heavy_revolver) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_heavy_revolver_lilmac) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_heavy_revolver_protege) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_carbine) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_am180) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_liberator) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java index 8349ae7a4..6768da3e8 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java @@ -874,6 +874,12 @@ public class Orchestras { AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + if(type == AnimType.CYCLE) { + if(timer == 0 && ctx.config.getReceivers(stack)[0].getMagazine(stack).getType(stack, null) == XFactory12ga.g12_equestrian_bj) { + ItemGunBaseNT.setTimer(stack, 0, 20); + } + } + if(type == AnimType.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java index 7452523f6..5ad1fbd0d 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java @@ -4,6 +4,7 @@ import java.util.function.BiConsumer; import java.util.function.BiFunction; import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.entity.projectile.EntityDuchessGambit; import com.hbm.extprop.HbmLivingProps; import com.hbm.items.ModItems; import com.hbm.items.weapon.sedna.BulletConfig; @@ -44,12 +45,23 @@ public class XFactory12ga { public static BulletConfig g12_explosive; public static BulletConfig g12_phosphorus; public static BulletConfig g12_anthrax; - public static BulletConfig g12_equestrian; + public static BulletConfig g12_equestrian_bj; + public static BulletConfig g12_equestrian_tkr; public static BiConsumer LAMBDA_STANDARD_EXPLODE = (bullet, mop) -> { Lego.standardExplode(bullet, mop, 2F); bullet.setDead(); }; + public static BiConsumer LAMBDA_BOAT = (bullet, mop) -> { + EntityDuchessGambit pippo = new EntityDuchessGambit(bullet.worldObj); + pippo.posX = mop.hitVec.xCoord; + pippo.posY = mop.hitVec.yCoord + 50; + pippo.posZ = mop.hitVec.zCoord;; + bullet.worldObj.spawnEntityInWorld(pippo); + bullet.worldObj.playSoundEffect(pippo.posX, pippo.posY + 50, pippo.posZ, "hbm:weapon.boat", 100F, 1F); + bullet.setDead(); + }; + public static void init() { g12_bp = new BulletConfig().setItem(EnumAmmo.G12_BP).setBlackPowder(true).setProjectiles(8).setDamage(0.5F/8F).setSpread(0.05F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP")); @@ -63,7 +75,8 @@ public class XFactory12ga { g12_phosphorus = new BulletConfig().setItem(EnumAmmo.G12_PHOSPHORUS).setProjectiles(8).setDamage(1F/8F).setSpread(0.015F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x910001, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_PHOSPHORUS")) .setOnImpact((bullet, mop) -> { if(mop.entityHit != null && mop.entityHit instanceof EntityLivingBase) { HbmLivingProps data = HbmLivingProps.getData((EntityLivingBase) mop.entityHit); if(data.phosphorus < 300) data.phosphorus = 300; } }); //g12_anthrax = new BulletConfig().setItem(EnumAmmo.G12_ANTHRAX).setProjectiles(8).setDamage(1F/8F).setSpread(0.015F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x749300, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_ANTHRAX")); - g12_equestrian = new BulletConfig().setItem(EnumAmmoSecret.G12_EQUESTRIAN).setDamage(0F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_EQUESTRIAN, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12gaEquestrian")); + g12_equestrian_bj = new BulletConfig().setItem(EnumAmmoSecret.G12_EQUESTRIAN).setDamage(0F).setOnImpact(LAMBDA_BOAT).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_EQUESTRIAN, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12gaEquestrianBJ")); + g12_equestrian_tkr = new BulletConfig().setItem(EnumAmmoSecret.G12_EQUESTRIAN).setDamage(0F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_EQUESTRIAN, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12gaEquestrianTKR")); BulletConfig[] all = new BulletConfig[] {g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus}; @@ -101,7 +114,7 @@ public class XFactory12ga { .dura(0).draw(5).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) .dmg(32F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F) - .mag(new MagazineSingleReload(0, 6).addConfigs(all)) + .mag(new MagazineSingleReload(0, 6).addConfigs(g12_equestrian_tkr, g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus)) .offset(0.75, -0.0625, -0.1875) .canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_NOWEAR_FIRE).recoil(LAMBDA_RECOIL_MARESLEG)) .setupStandardConfiguration() @@ -144,7 +157,7 @@ public class XFactory12ga { .dura(5_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) .dmg(64F).delay(1).auto(true).dryfireAfterAuto(true).reload(44).jam(19).sound("hbm:weapon.fire.shotgunAuto", 1.0F, 1.0F) - .mag(new MagazineFullReload(0, 100).addConfigs(g12_equestrian, g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus)) + .mag(new MagazineFullReload(0, 100).addConfigs(g12_equestrian_bj, g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus)) .offset(0.75, -0.125, -0.25) .setupStandardFire().recoil(LAMBDA_RECOIL_SEXY)) .setupStandardConfiguration() @@ -253,11 +266,13 @@ public class XFactory12ga { .addBus("SIGHT", new BusAnimationSequence().addPos(35, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) .addBus("LEVER", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(-85, 0, 0, 200).addPos(0, 0, 0, 200)) .addBus("HAMMER", new BusAnimationSequence().addPos(30, 0, 0, 50).addPos(30, 0, 0, 550).addPos(0, 0, 0, 200)) - .addBus("FLIP", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(360, 0, 0, 400)); + .addBus("FLIP", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(360, 0, 0, 400)) + .addBus("SHELL", new BusAnimationSequence().addPos(-20, 0, 0, 0)); //gets rid of the shell in the barrel during cycling case CYCLE_DRY: return new BusAnimation() .addBus("LEVER", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(-90, 0, 0, 200).addPos(0, 0, 0, 200)) .addBus("HAMMER", new BusAnimationSequence().addPos(30, 0, 0, 50).addPos(30, 0, 0, 550).addPos(0, 0, 0, 200)) - .addBus("FLIP", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(360, 0, 0, 400)); + .addBus("FLIP", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(360, 0, 0, 400)) + .addBus("SHELL", new BusAnimationSequence().addPos(-20, 0, 0, 0)); case JAMMED: return new BusAnimation() .addBus("LIFT", new BusAnimationSequence().addPos(30, 0, 0, 0).addPos(30, 0, 0, 250).addPos(0, 0, 0, 400, IType.SIN_FULL)) .addBus("LEVER", new BusAnimationSequence().addPos(-85, 0, 0, 0).addPos(-15, 0, 0, 200).addPos(-15, 0, 0, 650).addPos(-85, 0, 0, 200).addPos(-15, 0, 0, 200).addPos(-15, 0, 0, 200).addPos(-85, 0, 0, 200).addPos(0, 0, 0, 200)) diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java index afdb0be1d..7cc8d57ec 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java @@ -3,6 +3,9 @@ package com.hbm.items.weapon.sedna.factory; import java.util.function.BiConsumer; import java.util.function.BiFunction; +import com.hbm.entity.projectile.EntityBoxcar; +import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.entity.projectile.EntityTorpedo; import com.hbm.items.ModItems; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.Crosshair; @@ -25,6 +28,7 @@ import com.hbm.render.anim.BusAnimationKeyframe.IType; import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.ResourceLocation; public class XFactory44 { @@ -37,7 +41,28 @@ public class XFactory44 { public static BulletConfig m44_jhp; public static BulletConfig m44_ap; public static BulletConfig m44_express; - public static BulletConfig m44_equestrian; + public static BulletConfig m44_equestrian_pip; + public static BulletConfig m44_equestrian_mn7; + + public static BiConsumer LAMBDA_BOXCAR = (bullet, mop) -> { + EntityBoxcar pippo = new EntityBoxcar(bullet.worldObj); + pippo.posX = mop.hitVec.xCoord; + pippo.posY = mop.hitVec.yCoord + 50; + pippo.posZ = mop.hitVec.zCoord;; + bullet.worldObj.spawnEntityInWorld(pippo); + bullet.worldObj.playSoundEffect(pippo.posX, pippo.posY + 50, pippo.posZ, "hbm:alarm.trainHorn", 100F, 1F); + bullet.setDead(); + }; + + public static BiConsumer LAMBDA_TORPEDO = (bullet, mop) -> { + EntityTorpedo pippo = new EntityTorpedo(bullet.worldObj); + pippo.posX = mop.hitVec.xCoord; + pippo.posY = mop.hitVec.yCoord + 50; + pippo.posZ = mop.hitVec.zCoord;; + bullet.worldObj.spawnEntityInWorld(pippo); + //bullet.worldObj.playSoundEffect(pippo.posX, pippo.posY + 50, pippo.posZ, "hbm:alarm.trainHorn", 100F, 1F); + bullet.setDead(); + }; public static void init() { SpentCasing casing44 = new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setupSmoke(1F, 0.5D, 60, 20); @@ -53,8 +78,10 @@ public class XFactory44 { .setCasing(casing44.clone().setColor(SpentCasing.COLOR_CASE_44).register("m44ap")); m44_express = new BulletConfig().setItem(EnumAmmo.M44_EXPRESS).setDoesPenetrate(true).setDamage(1.5F).setThresholdNegation(3F).setArmorPiercing(0.1F).setWear(1.5F) .setCasing(casing44.clone().register("m44express")); - m44_equestrian = new BulletConfig().setItem(EnumAmmoSecret.M44_EQUESTRIAN).setDamage(0F) - .setCasing(casing44.clone().setColor(SpentCasing.COLOR_CASE_EQUESTRIAN).register("m44equestrian")); + m44_equestrian_pip = new BulletConfig().setItem(EnumAmmoSecret.M44_EQUESTRIAN).setDamage(0F).setOnImpact(LAMBDA_BOXCAR) + .setCasing(casing44.clone().setColor(SpentCasing.COLOR_CASE_EQUESTRIAN).register("m44equestrianPip")); + m44_equestrian_mn7 = new BulletConfig().setItem(EnumAmmoSecret.M44_EQUESTRIAN).setDamage(0F).setOnImpact(LAMBDA_TORPEDO) + .setCasing(casing44.clone().setColor(SpentCasing.COLOR_CASE_EQUESTRIAN).register("m44equestrianMn7")); ModItems.gun_henry = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(300).draw(15).inspect(23).reloadSequential(true).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) @@ -81,12 +108,22 @@ public class XFactory44 { .dura(31_000).draw(10).inspect(23).crosshair(Crosshair.L_CLASSIC).scopeTexture(scope_lilmac).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) .dmg(30F).delay(14).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 1.0F) - .mag(new MagazineFullReload(0, 6).addConfigs(m44_equestrian, m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express)) + .mag(new MagazineFullReload(0, 6).addConfigs(m44_equestrian_pip, m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express)) .offset(0.75, -0.0625, -0.3125D) .setupStandardFire().recoil(LAMBDA_RECOIL_NOPIP)) .setupStandardConfiguration() .anim(LAMBDA_LILMAC_ANIMS).orchestra(Orchestras.ORCHESTRA_NOPIP) ).setUnlocalizedName("gun_heavy_revolver_lilmac"); + ModItems.gun_heavy_revolver_protege = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() + .dura(31_000).draw(10).inspect(23).crosshair(Crosshair.L_CLASSIC).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(30F).delay(14).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 0.8F) + .mag(new MagazineFullReload(0, 6).addConfigs(m44_equestrian_mn7, m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express)) + .offset(0.75, -0.0625, -0.3125D) + .setupStandardFire().recoil(LAMBDA_RECOIL_NOPIP)) + .setupStandardConfiguration() + .anim(LAMBDA_LILMAC_ANIMS).orchestra(Orchestras.ORCHESTRA_NOPIP) + ).setUnlocalizedName("gun_heavy_revolver_protege"); ModItems.gun_hangman = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() .dura(600).draw(10).inspect(31).inspectCancel(false).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 33f5090d5..36b899380 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -575,6 +575,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityBoxcar.class, new RenderBoxcar()); RenderingRegistry.registerEntityRenderingHandler(EntityDuchessGambit.class, new RenderBoxcar()); RenderingRegistry.registerEntityRenderingHandler(EntityBuilding.class, new RenderBoxcar()); + RenderingRegistry.registerEntityRenderingHandler(EntityTorpedo.class, new RenderBoxcar()); RenderingRegistry.registerEntityRenderingHandler(EntityBomber.class, new RenderBomber()); RenderingRegistry.registerEntityRenderingHandler(EntityC130.class, new RenderC130()); RenderingRegistry.registerEntityRenderingHandler(EntityBurningFOEQ.class, new RenderFOEQ()); @@ -1567,6 +1568,11 @@ public class ClientProxy extends ServerProxy { Minecraft.getMinecraft().effectRenderer.addEffect(cloud); } + if("bf".equals(type)) { + ParticleMukeCloud cloud = new ParticleMukeCloudBF(man, world, x, y, z, 0, 0, 0); + Minecraft.getMinecraft().effectRenderer.addEffect(cloud); + } + if("haze".equals(type)) { ParticleHaze fog = new ParticleHaze(man, world, x, y, z); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 87b6df678..719b3a74e 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -987,6 +987,7 @@ public class ResourceManager { public static final ResourceLocation maresleg_broken_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/maresleg_broken.png"); public static final ResourceLocation flaregun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flaregun.png"); public static final ResourceLocation heavy_revolver_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/heavy_revolver.png"); + public static final ResourceLocation heavy_revolver_protege_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/protege.png"); public static final ResourceLocation lilmac_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lilmac.png"); public static final ResourceLocation lilmac_scope_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lilmac_scope.png"); public static final ResourceLocation carbine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/huntsman.png"); diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderBoxcar.java b/src/main/java/com/hbm/render/entity/projectile/RenderBoxcar.java index 2840cf000..ca4dfe348 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderBoxcar.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderBoxcar.java @@ -46,6 +46,8 @@ public class RenderBoxcar extends Render { } if(entity instanceof EntityTorpedo) { + float f = entity.ticksExisted + f1; + GL11.glRotatef(Math.min(85, f * 3), 1, 0, 0); GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.torpedo_tex); ResourceManager.torpedo.renderAll(); @@ -59,5 +61,4 @@ public class RenderBoxcar extends Render { protected ResourceLocation getEntityTexture(Entity entity) { return ResourceManager.boxcar_tex; } - -} \ No newline at end of file +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 093a5ac05..08c9f7719 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2223,6 +2223,7 @@ item.gun_greasegun.name=Grease Gun item.gun_hangman.name=Hangman item.gun_heavy_revolver.name=Schwerer Revolver item.gun_heavy_revolver_lilmac.name=Little Macintosh +item.gun_heavy_revolver_protege.name=Protège item.gun_henry.name=Repetiergewehr item.gun_hk69.name=Granatenpistole item.gun_hp.name=HPP Lazerjet diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 9198b725a..c74efefc5 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3032,6 +3032,7 @@ item.gun_greasegun.name=Grease Gun item.gun_hangman.name=Hangman item.gun_heavy_revolver.name=Heavy Revolver item.gun_heavy_revolver_lilmac.name=Little Macintosh +item.gun_heavy_revolver_protege.name=Protège item.gun_henry.name=Lever Action Rifle item.gun_hk69.name=Grenade Pistol item.gun_hp.name=HPP Lazerjet diff --git a/src/main/resources/assets/hbm/textures/gui/guide_pedestal.png b/src/main/resources/assets/hbm/textures/gui/guide_pedestal.png new file mode 100644 index 0000000000000000000000000000000000000000..57c5c39bcedd3f1180161e520413e415c32ccfe0 GIT binary patch literal 1707 zcmdT^`9BnR82--Xs%WDen`3PeS=Tmg<(Qcc8B9|`CBtk<2d!L9)Ev^bB;n(j5RqI< z7`d-Tt|`YbIg_R^m~o66_ZYKkf7yRwpI@H$m-l$y_xZdLCr=#TqM)Gw0N8@HJ?aPm zWFv$CIhhS|^Uw9#Ab7xGtdraZ?#OwD10Zt&dlchz>&eV8!@tKy4SYhL%*JA8%tFTy zU*YOrj;6uj(4idrBly?{oLX8+;KNN`P$a@6hB)VjqZ?kouhMB&qRS7=Nm!)MlY7-Q zT~okJ2A#93K@oOx*IL_{D#ARGW0+Zz8(y*XHJQ^z!IWqlH$stxHLe1&Xi+_=Nb7JG%vac37mcwXZ%f_TUGtkLe~p8M`$t3pQ){} z9(8*}x~c$mHl(_x{zA*3mXeccRc(ShLfcEd?DIuVN1~;3qxjz_6p?`UoJY!&4HX=8 zTCdd8gyk-&53-|(8aIe9w9?s1*F6VtuN!-g4`f~u2!bxj zhF>f(Lf3Ij%;cu84Q{q_7mDx%N?f5|TJ|)$sjw{>3-c=3o8BS0H7Xr6V+|$hs=!A~ ze+V~vZzGOcY05^#VELBhh+xqBCx#$YhL3Cm<`2?ZwOuK3^@P86KUy&gHD=zkoA_c+ z$6LArPiOp+{62;}P+sNQRYi!KFVeaDUiJg~g#7>Ec3TV9n^T*kWvTDaqyfNmDHX z?O}_%&_gJiu$E?!*RQ=VnyHixYuW`o9S`BPFKIDd$~gIJe)3>*pHstBSj1hl!@sLO zH4ZT~fue1)`lsk0mD2ft2s^b?CZMJok)b2XK&>ETg0%Eh6+&yM=1^TB40RYQcRoZS zCx)x_JCNNt>DhpaN8P={oeZ{1?)TwSbIXWsM8XV zd^f^^>f-|Iv<;f`SInO-)%ve4qRq3y(kTs8mqK`l8rr5?w0wG6R%ZfbqO~P4uYeQ0 zx<>>8A>+-N4K~J`bl)M)Rx+NB zDT<6YK5gfF`p|9vSfpHK=DQ{}v>t)9EMTPKzEl`waZi{Nwg;vZAiCz8J%$K*-Wly* z-beyhmrs4maIEGah}+_BLi$`jD}9+0`#RbgXsXsL_WjNQ#okKQS^0$t9z&P)v){CU z@|s4YAo}A%BlN<+Hk5@3xna0xmRI+`HY_&?L*HZDyB%jgwURvHSl&#^s=cm5mCQDt z`fUFb>?-=K83edE0NVDNI8Kn1t5{fUUExI8_~ZWdT H#Jm3hW0V95 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/clay_tablet.png b/src/main/resources/assets/hbm/textures/items/clay_tablet.png new file mode 100644 index 0000000000000000000000000000000000000000..640d51e220841cd9c74beef64abc1ba2a0ca2c20 GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfvgqso^2fr$E~o6Mer?spHsi;ZqtcR+5)u*-7ew#utz~XqyJi)mcyQR& z0|p|88B#-edCWFRSS2`>+nw3Adwc!?LnHaSQ!Qc}^0f8B4Hn++JFS+oajtsaA!hlb ztUq!}Kl2@t(*9r&5O&$+YR|F#Ks%Z@%~I=n%foY_8bg=d#Wzp$P!BsZp>1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/motor_dnt.png b/src/main/resources/assets/hbm/textures/items/motor_dnt.png deleted file mode 100644 index 73e4c1e5b6400b31ca8f3a4f07851e1555683154..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374 zcmV-+0g3*JP)8`5*uj24t41V$dbY7z(Q!j(JbO-K@bGN$)Q8> zW4L4qZVuUkDCbZUS`)+;2jA(qlp)L0=hqK9j8fg_sunTp zE?ptWvkWm901(G9!F|9}^QM9rbz2ljtJMPFV!sc-=q23G$GH Uv1>=PSO5S307*qoM6N<$f&@mK8UO$Q diff --git a/src/main/resources/assets/hbm/textures/models/BFLauncher.png b/src/main/resources/assets/hbm/textures/models/BFLauncher.png deleted file mode 100644 index b1f69982c9586c5ef095be7326534f095787cf1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1227 zcmV;+1T_1JP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1UE@UK~#8N?V2%8 z96=C8IRFU>64FXY1RTI}U=bscAR%!FA`&j*E7*xc2X^GpvNPwt&zj$^zba~~haQ+^ zW_SLRzUZ#5?y2soZDtV%k?ZU0_1t8k6|SzX)-5vk4t-;hxMquNYL&R3*^wRkTf-Q# zSh7RUWbPgM#v*ae7TMG)*w5|l?c`@%1;Ihqodm{^#o`O2Pv+jCZ!8kmY>`c^g8j7m zPC`8VImkjQ_`~j#xp(Lri^MfsWK*le{Y(x6_Xqy)@UXtWzwh+#?(T}vhK+Xiqfd)3 zf3nSS$j5{jamDgyChnzGb_C62YqToci;p?>?UCCjKA4J0jN@-D#<^=^{JsEK1hlj5 zW$Bq7ekxfElnpnN9S&r}uO?eNlet&P_Q#}IcSFsNv$AG-!+INUL)s7{e%kcu;dRVF zDI0DkCW5lzSCg%s$=s{N{rSYT2y^-C3vHiliZ%#7C^)nkBii=(?Zber+kpXE_r>^4 zd)e@-$=1$f?p5M`v!p@K*(qCQzAU`};{M})InUoBe!ZHV#bL|LpIVZ+A#Bi01^Q>3 z&qN>kKc_gqRoPm7!ak7nvZ+VLD)^lN)em9gP`tKqNY*Swe>00+WoQA=51*1neNy(7 zm{44!HdKfOAodJ>qQwTjL|OMuK=J+j^8SfxHWuoSPw$?nW>Y~o!0)U6O**~@Y!keH z{Q3IfiE1{!t7OHI*&ut2s4-OmAURBGmh8+%F}YBd_{?UH6%i&KS3iZm4Q~xx&o4;~ z=J0xlva3I{*>tfF@D^YZpbdGu@3Z~VdG=T_7haM`&hxfDf4?^D<-tM-A%qY@2(e7~ zRmr*=_%+MAVjp4RV*xPvQ8q00ohe6me8S!Ngb-}W*DMu%^|X5+F!EdLpCggm_5hG$7|^9*V+2?+i7V-M@L74 z+L((q{1^oL>ho&TKRi4f)W%$_!M=qp#$vTvt)cV3=OuycBZ))Wn2R<17&LZaS=eGM zm@pN}c<1d2tm;!t$6~#ov!}7^e0W1I)fdvo?0rCm<2ODh^uVC0?!hD}LzeZm_iqETwao84@$5;hmE@Ia>{r>o-{#XP> zA>r|b&?g+?%V6INp%6j{A%qY@2qA=+0|y8H0RLi92jT^@mjD0&07*qoM6N<$f&c&j p9dt!lbWLw$Wo!UcWn*Y=WiL*3Yh`jTLPktsb#7y5Wpc&8Z+4CoNhtsT diff --git a/src/main/resources/assets/hbm/textures/models/BaleFlare.png b/src/main/resources/assets/hbm/textures/models/BaleFlare.png deleted file mode 100644 index f75ae16be4a846ae047bfd0a15edd610582512b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 670 zcmV;P0%84$P)E)RTYE~jnhZpj=&Vd!>5N(1^}nuPhpM4?8|JgcDrA@V2WXSJ_P_6V>%$u z!s7!e1O*6&76idp;^SpWKFF;-v*IK)Lq#l}Y--iTX zJI{T z#?GQB8~_|&9pmZ#35(AQ0Kj6g2oH6dq~#9@-s6~mn1?dp@M{Zt2(&-0wRZ6Z^f&)+ zkWyki9(N{Z69B8lrVt`@3S2DfZtDnn9j&#aPO%?)7tnG%-kSrfX&M0Jy@WM3v3$L*CBk`o$pMN#wtWY?n-v<#p+-vAFwqS37<7`+Wxh^Z7ES4~N6r zdP=FaFcMGWoA&KmYZuqc<{DAo)Ll{~y36-EOy0qnmEv zpWfq##bblFlXYtqDP{6m-$C+o3n7xukgtQZbBMe*2LakJ@-jkMlOQyDeno=iF2-glKIT*gog)psg41 zU&pPntD`KcCS^!RJg`~}5<&Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1rkX_K~#8N?U*r- zBsCC)_ctMe(+M3~1R5djNoX^Ez($+w4B)9g*=@Vrp5DESJUl#1wIU;uL64!HcWSjo6(Hye5 zWSgFe;Rnq5B5}+Sv1=Es=kf9J>U-P;lY`j23YtSU7e5$tV)y}bzDOK%MC{rH>lux` z3UTvqL7ZB{H+xPDKVZ%miDQn4UAx5fTpdl^H~i)0WqN*oK4?EZJvE^Yo9t@Gn2}hO zs>=`goG?dRu_`lZEu-QV43mv9s%$Mj=h)^WFHd~16q6YJA6uH|+NAmW0nj0kU3C}J zbA9wy>M%%j50h;UMEBWbV`pM`mu!7X8k>81cI*|a=?&{P-G;JZjwspv`sg~=L?yb1 ziHVTtKAUXpObqW5*XM~F5&G)q3w2MnBpZYn95~c9N7VWF%cBXid4ML!<_F`8cF}z{ z+1QyF-X*R#OB!^{E^(OK<^O&F;`-xy)z5DcAFpTE;ova0PcO+@5Ee*NL-E<-Gbu*# z#}xaIDjRD~SO=2c7WE%X9r)FN(+^?cP`tLVNvt+vylmPyZK%h1ANhOsIEMTl=l&R% z`LmcgdmKZ4k8{7uwn1yd7YH3Y0E*Klc>io;RQH%UdmKZ4k8{7roe~@U9w+~tJsSfy zZqs_ug0v7^qjWXm0m$fWjE^gy$9jzX(dT`9tk}o~4!b_s1CdROhy=6MaOn+0f#SiQy-M zzJLGv=_~bY5H|jgUp{%Io(%J2Az6f_?V(c z?*L%)wCSVLrjJVfvSepA$;ZeNpV_$FBBG?@>X*=_d-x{+(zQD(^x;Yi zMMO71yal5CfLub^GbNuR=B!&lhd>9=?cP@XL;JOj+A7-AB~en@T#R!Lfcm*@F5bt6 z9sM^6-ms-hf2*VK+|q9Yv|avOm-oRqg`tf@eaUhp=G0QjL>qN4;di-DWgUP7e><>I zJ;e=PTG=zDI7iG|CHi^^qAm6*3~VZ^i-C>zge*lJfC~^eXNeLU4~@j0TE^SJ<)KeO1p2wCF2 z1ib^GvPk&h{(eHT+1wNDN_;#3N`4gGi%|z)VUS!T8KSA#SZxPD$_|Lgk`K|{k}@JB zX;d7#I0szsNUSH^^TL!}ny#hfaN~vqbmAM-Lw^DBd_dap+={Ecp=KMNzDR-M8ONfBpP^LW%2N zW&BxSc(HaonMiha03e36cs~d_7<3nF!$0Vh-1xS8f?IueMuG>KVXlM7LD2k#eilQirq9}@@D2k#eilQirq9|^SySsk@3@Ea7zIxln00000 wNkvXXu0mjf0000PbVXQnO>bmnYyebcV`y$=FHUu9WpXb@VRUU_ZXI*GC@K=Z*8l(j diff --git a/src/main/resources/assets/hbm/textures/models/ModelB92.png b/src/main/resources/assets/hbm/textures/models/ModelB92.png deleted file mode 100644 index 86dbc299458dd79c8d29b2c5a0c05561e44892b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1711 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 diff --git a/src/main/resources/assets/hbm/textures/models/ModelB93.png b/src/main/resources/assets/hbm/textures/models/ModelB93.png deleted file mode 100644 index 0861b9bfc7ae66f48bf7f8d26894a78747057ef3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3194 zcmV-=42AQFP)3ALIGd{X==SM#y*^WOjcjn%6?`Y|p0|O!)4&&<8t04fm-`gu@ z@_8JL#W0i4<5{7AebK1$oWSX+o{oRr(t>a}jO*90hv0xGCr^r}OH0=HFA4>`|LBn; z{bt0>={H5Ae}fwie*EQ@dY(H75G9QjMsqX1oSVacr`?%`Xg~ex zE9{F#eP1sK#?tsnu~;m<;QGS`VCiFme9r56DIcrGcIxNnx-xySShU?oJy4F6n91h> zK>7UK5QOfw4M;}V8_mriW9(ooraUKbda9@6Z+!B}rWW^&K%*r*_u)4a6VzG#DIBcEsk|5I&Ow$AatBrJYI2^Xl zc}bAz2;`vziNC(}me?1K0w^^IZyY-&fHk}0hhKaV`0ofx0=TMxk&%&_-dHM?5&-Jv z`Vj*I8~38BbA#;K5>$0Tq8<`p#|8i}K0Ypv964e=>~DVfA^179yNPbH8-NWFf4{d^ z0I;bHk}wBjF+7@|$G7(Eu~c0>BnwAiDuCK+r2^>Kj|!lBkR^a>^^cE_mnCL7V*o(r z+(lpgmzNfOjep}Gf2=D51TF#O3FG2;b#)a05Dtf->pFP7uInYtMs%4>MsVhnCzX#c zBa_JpnLhTp7h0WYGAkK2F#0J2s$RR&`1;*)Kfmxhex<1C-~$5#f*W;&moHz|g#jwT;NW0c6Lam_wTgac zYUqN{*KGiET@nO6xqh%^+`uzu&IkbDE3=mETN$05og$aZ0RVEj9A;)_eBYyu0jgC2 z1n$ypX7Cj~JUlESkq8XKKsK8VojrS2=(-NmG;#UzWlII{l^oRXyhDc$*%%8bWgbj1I!o@QyH0I=fmD&X|NR1N8VFHc2WwHy%k5yJbm3&fF@H2*7N0^?T z{;v0J1cPig8zQMNJUlG2*=&ebWM^lm;N`@`M5wc~Q&4FbMhWx$=U<;9(*)8)B@zh%pk!iI6D@-# zzLNe`NdP|4qobptbUMAM^VzBaNf#&kB%95K&i(9nLIZI2$G;E&aQRQaEQ^V!rlxEX zU~+OY#8lN*gq0yHY6ieI0jy}kXGN~hQGyyU?wFTGl$ zQLK1BP_5vOjt<|8iu!Y=;mp9rJ(W)IY6k!VC(oZh zckJ8R+G>j)x*;`mL5%$6SDs=yHFQC&m!-hI>cwM3AwHOH0Xa`4

iA-X$yB?U_kKp<>h6B!(r^+z1yNu z^(!Y?#IN5?zPeXAbp8X8U&=w#b!d77rn#2#ChPv8^B)KR_~_ElH*)q^Dja3_mYeD8 z7b*z>I5SQ>9!ESLM@vhK%}C@>N`OX%W&I#??xHUV;1?^V0dxIN*PZn~ZRAig$FoAA zB$d5m_iig^k<+LWJXEgYk z<#aJRrbJcB0&+_q3ql1X5(&#Y0M@(-x)!xlTP~Ng+P547$SNS2ObXL9K_S~hp@3*K zisw@gvADPhRhzEsc=+&P2v`&CnyF*OG+h%mV(T`6+lw!h`Rw$POEvIP0kgBSN`0^L z82GW0+sFoROV{G{)J6dmr+$Fi2B=2moH%hpQN)Nv<1(hN&d+OQKj6q~Ud(4%i4N&Ckz6H9nP`adk;D@j6b&$EOwUg%URq zsLmCPL?R`g01qn3@rCnqbGX#j24Lf*RL&T+utR8)dwP0o_te$ZCEOUHTHU%;;2y;H z2`|@8o_Juxf~NCIL93ohTIqaelIm3D>kiFngQi@#rFL;#YHP#k>1jMG6p)#o#-;Xl zpo(;_J9q9_D>a!+ie0;QA)n7%Rxf=g{}K(UB}u^5WQB7VDPPl*Jm24wuvF)z!->tY1j z5;*7u53i3b5G}CA7*0kT8F+?a1pal9WHKqp8{jUWn+l-K7bgTYL0;h3Q;ny(o=m4I zWyUCx0Dj}~K<(clY$W7|l1L}ja#f`;u2Av{B<8pxlXq0htA;u9`T z;M~4r<@IeG-YDnOp-Aom$+X#>12(EN&Wx8zZpRL(F@pFRZuoH}(% zaNSSu4)6~~l>;97C8+dbOG}GYpG+o&Oh>lDlP6Cq`5D^=zP$jin=8oOLz#{)2AL~RL1TvY7pqs5!B{;?X zd2AraSb!?_&*K9@#{+z+fWE#y!6#cjcS3)Ezi>OR1seS-+g67L*tyA#vt@YE1~KV7 zs2%EJ1oGFdYYo};+d+BIc<7MeXXVTAo9NKp-7Waov}e%W-7Ns%-o1O4PCWOc9|*%- z!QcLF|E>>hNYPmG29?t$m;A9vS^t+~_|c0NavOo@+`_-|^_(QCJWqaO{a$eN0_1qJ z8=V*UL(z4;WX!(4KEcO$@7;H-ojam`@7;IA@Bi>;#~Y)~DX%Y;?7$9BH&8Xf)g)Sa zjkmP41OPD16{{|ycxO-k;^+=4L!fa0mF|}%fU4b3T_qqjar*RWK}@rqQrjv)T>?Q| zm5|OSH&WJl|DK$(qyTS|Z3MpCNMlhyFK~$==K^?1H@D8Hx)_0c4DtfxuqYpg zq=X!$G)>d0nB;LG{pp`sU6Dp?_8X=g3Qi(D8!@50qop g`<1YIWdY0hKlkUY4r}|=$N&HU07*qoM6N<$g8vF4M*si- diff --git a/src/main/resources/assets/hbm/textures/models/ModelCryolator.png b/src/main/resources/assets/hbm/textures/models/ModelCryolator.png deleted file mode 100644 index 89d71fb71f297cef03031d7b6921ee37d3b53dfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2822 zcmV+h3;FbkP)=nJ<01~^2wi`p5~t&C-&%fc~4K4^fcf9?|XU%V#J6MBSwrEF=E7s(OuB^f#W#B zbzPXI3Dozj zLZOrQh|wYR=6_NLF+#J*fYuE(0yjI?%jJ$WK;e@S0RW$VR=@t|zkD2zVT3e<$_FTXG9pUl8dld{;K|x^yg&VwHa~Y# z$%yBF_V1Vp+CZcR=%jAXnM8(VS&$hBfbUOGNjQ_q2+mydb0@|4kN>3s!0iuDi1(+z z(g0v}?M2)3ixEa70~m%8kXBWgX4|&lnu4zk;tV8@Ei5ef>kyL3WJoj6Sl!(GT{*v@ zfga^}jP|f24M1w0kk99}_uf4#)+eQ*S4$KMhCW&$7lw(37C)&RSMmYqNqNNVE+CHogGn*fy) z$kV$N9jsR#W5caWYAfyGw@=|)Zv&f8KgaQJ4`9QsHf+zO6QbWtU})e8tYm%qrE+bT zf0ph+hyl)}Pm2w=+IHTaOu<`++nWGgw)qhqxEyK@Im#T<JXn z+45lY(u(0@xO=~Krn`H;-cl~WO6n+;YnY!qDX4EHb$t5SCZ4Q4$Kb#rJXw1V0DgaP z;854+4)n9*?*!s$QqMI0*TNSX5O(<5fgBy=^LcGzVnV3CLueO7Xlms#PW-`vLjVwB zh;D}7ZzlW$B0hni+lj*`e?#Cnj-VPttM{cy;N!)AXaF!jcT%jby?7Z7)ch7eU~F*U z5QYYNFf`EPGX>$)cY1OA!xLg?pr>mSNC5_r!Ou0S(v6Oe3d-m`eE86J3Msx<NlE~<2d5l zwQG^zGxGM*rAuh_Z_l4Uf8dz1Weq@>n3xdq=UyC?%I$;^8qFo@{Cn@76_3AO^BH1s zaZy~qeqE_`c%Rx_F6W=)=E(Crn5G#RqiSfo@AW1_zkB~d;DvIzoN!&&U+@7ucqI?M zc;Soy>RN|OIG22aoIhxUbULj$jw58hgZFvMH2_d|NM&t6?Li|xpa=u6UcK7zCENXS zxDgr=lq6ck5FG23ZF6w(!Wr@F-^?P`0IlP-*C^~;B$@Itb+S8jsAvOVzm7ZJ)6yn z8#iuf0FcdQ1*y(tGKtyQS$~{fd~R;ezj!AmpqazRLB!{MYI)Q^eU5ZGtrZFd0fc=3 zd5kmw^+`L(V+V!!fV3)DWi#oR#<*Ps!U>#K6GdF&zx?kSCMG6cN`6>#aH;2-V8gBY z2_oK?HGs+=P`x)5z&y``Wmy3~fR8OME{cP~1p3U(jQ=9EYRB`ufbHXdLxkE(tXHba zNPx6RznKV_05T)}WC-~ntU~W?Em@>mOzL?aK7Lt5%49|adD;N*R_$@q$#bTNGAU6SfX_i5=bC_P zfT;2PtPuhXpt6yKix545}Y)Bbb0CLl>BO(2iU63;aO z9rN+|`T2br9q8P_;|`!<7y;++&wskTqX)@Fr$(WiEX`57m(^-jc%BG(>7M7|Xm9YI zu_jQX?a4-cK++0wxm;k$IIRe#FMdvHgT%N z2T6x&Q^*+m7yeg2rBbP-b%5wouXJQVtIMlKc;AbGJIoW zV;CD7L#0yjwLmvOnFxvkSH-zpP85qpUj?=}^@c$T#7d zV`gSX0Wu5!8qQ?@DwfW5+-j8Lw&i5rmCvRP}z23vhV!}k>;jZq|xfPi-cGMs1eWrauy5- zmV#x8PbQO?o}L!6Pry|#g^#q(!1Fw$QYjRRMZe}SJUkro=6BmE)jAB04uRHMfDCJ|&lDwRseln~^soE!?y&dzGGA3`AFHOuTZ zTmIG!(7B4Ilq;oZ7Zw&YzO;(t(W6I!B~v_yp!(rC@eRZ9iC?Kynr2*Ff~sr7!^2IlkJ2=%vUOA`J4P5G251%uv0lNX2 zfq<|hN4WydIF0^}kJDJAXQ=M4awhjP^j1~5%qV0kXs0hK69a07iScHl?Q*b6<;qUn zZfqGNJB^Lz(#+{=7R5w8qt*NGXXrfluUZ>VefdXhMr0~8Q=Cor;m5S_lI|rR$9VPl YKOg4PClQ{hg#Z8m07*qoM6N<$g2@hMnE(I) diff --git a/src/main/resources/assets/hbm/textures/models/ModelDefabricator.png b/src/main/resources/assets/hbm/textures/models/ModelDefabricator.png deleted file mode 100755 index 5752d9cb0b2e4474540ddfa23efedec892cadd5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1479 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 KKBwaK{C@y9P?8S- diff --git a/src/main/resources/assets/hbm/textures/models/ModelEuthanasia.png b/src/main/resources/assets/hbm/textures/models/ModelEuthanasia.png deleted file mode 100644 index 9c3a2960dc9f1aeb8c6669d6e674f085e046ae6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1668 zcmV-~27CF5P)LwK0V5KY=zDE1mk z5^$jS4+sQ8YDlwqDAds1h7f~8LkRU^N~TVs;KfTrGB~frf_Epl4$oiZbh^`z_bmH4 z@dt$NzIP|-d*7dTCqTi>%#56yo0C+xm5VSpHz%)LxguMwR@&cIE<)9QWr(6kMo}bh z+_)j<=jU_Jbk&LwBGbq@Hre}_*6~-7m&r9pJauGbw17i$~ zvCMN#UA{W;NZa7-`{tDo>@^D0MxRInVA`>meuhm zWe%oEb>ldO5CU{paT2QA&p5qY#~i{i%uE&uZfa`E*zWqik2sFu`+g&;+t0Xu-b)Zd z;Khp<4gdr}kYUzDcRQVq0|1>)2c1p_0PuKeNp^+6nD2vMzn*sPUcD;Ed>>p0{Bw8+ zo+KE%bO~KWLOe+j&CbfM5cuiYGw1Eww?>sGL{TI;=je1gn3$N5dwYACF=gWig=->u zj6nkM+-$Q-<4Kaa2qsz?JkL8ZuP=m1B}~sGEz&hY2w|B3*M*c4uIBkw8cz~*lLVt0 zvnJYU!{mo_Q=&e`2_OlMa-Nee(MS_$vQ(I8Mc|x+G1f@zC#aL4zQ;TPLi8@iz*YNJ zX#Gxr%}ej@?mDJ^&!0c95ItITuS?Y0B}_wmw_^caKZx;@EPl)~4OlQ50* z7{h;YjISi^P!Tl!=;=^CyPcGx(4?UG9 zrg)Oz(e^feymc!>1AzPAeh<8U1KhlZhrj)rKA0y79LGt=skExh+CDsrA_)K=K70U> z*Brf0{paWBC1Whr1iFv#Btd+*0e^BC@!>|!yFc3A2Im|Pwzl$~|Co8aev@l^u(buw zd2hTH8G;~?MbbZMkeQh#+U*LFGVf0=qbvUH4Lbhd+wC@Rr8V@#zNWq3fg4Yb2U@H`Kjo115zZ`e@D36?Rff|&O_51jMLyUAyTp-61IT#6b{9({oM>Mh(zENcW;; zA6zBwpVrY=8FCX~%DnU~tSUM9d4V+#C_+(tl}*gL8=XzUr~yDWX)zr%d=AnFj+eu$ ztE-Zn7aft;sjE(p&KK*{*Vot2Oe01Bv*)f;fBN*PLyYxvt*oq^SrkZTo_>L$)gaxE zj*c=On^d2q7sqibQR;Vaa4{NdIfZv@1i54@+pPgLDG)y>tCe(4|dv-}h5` ztJO*qsHTs%2Sx3*K%MQWbBBKZ#c8+O)>EE4ckY~-bE}GhSA*w0CrIs+{?byJ(e1d^ zYRT#8Y3nAX5CXHav&I*#t*s5EFUb8US#|IQOy?lWST;Kv1I4ztT@7v_rpadXgoxi3(BdGEDi^REMzG)K}dNh?Y z_tMs5^H=^7AG#d9F%3|C-!S{ZCL~hE?a*mKlNkDF(5MeM#rIvHU;Gd5`{nnIj14{j O0000 diff --git a/src/main/resources/assets/hbm/textures/models/ModelGustav.png b/src/main/resources/assets/hbm/textures/models/ModelGustav.png deleted file mode 100644 index 7644f473f9fa4a441cc9317e738cb720e3694149..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1435 zcmV;M1!Ve(P)N2bZe?^J zG%hhNHDpIvQUCx28A(JzRCr$Pn!#=yMG%JfIehiS2W)|i500fESrI}81+bDRjwJ^P zBqRhUE^y+=W9AWf1Dbrj^-pRl)idMW0md-D^lN&ms%v`cuj!q&cjNK(?HA?cx7Um1 z>tC8_9QfcX#i+**q&_57t^$;j6GnVy8&*0ep-%>j>=cx ze_9xeI&b-GdK>EwkjG@q=2;mlBq(-?p4kvwM0ihZmac~vKV6l>!^86VH_GzKpL+-3 zVP*a-?*KL60X+FxV=RR{KvvEQ)+~Yj*xWsM!5=+2>k%9JsBxeKZHWwd+S&3s$`<38 z&$upP-2w8LjM=Nabi;hjA zx9qj>4y^`YUTgrK+u9f0I8^NDj7m}~hWERF1-stIJxQyW0Sw}?JIN7d^s z$&-DyLj>k2=O|l@V?N`q0sKW+;1H+8Az=JNiR_WlpZ#GbEBsQJy#!|WrLl#jh_Uh9 z!kX}N&{bodTi83O0pdj?CAw!8Cz9{~v;$ZlsBlRutYSc*(^&oSs)65Nl|24DwRzXj}06*#kNEb-!fa5Nb@ zcwdZ#7S@E;Bf&Kv8?>-@c!&)!*Sp0WBp-#9!1pCN{8%|PmTxE~Qfs0CE}xzEh~3X! zcYr-fzPTH~Q@&PA^hd@9i2m&^5V~Rx?pp9{-qIVC8v1*He*M1SL;fLOD<=9QM;l=3 zw}AVSd~-Db3(X3@6vl4>E%Dvl!-KQhC`#YOQn za|d5LPc((G0cbR@_xcX7C&@=aO^-o%u`^~kJ3A|$W^SUDOLqN*(ae3UJHdXmGBzO* zTFfxE14OiP$^Nf202hvVIggC~IPal1fbNSr`|s$oSy&HKcL1$H0#Bt)-(uYX_M?@t zg7wnCqQ5Ult>fo&_8C2O2Z+BV$QZ@Pw*3|$F1!I+1)VGZ93&rgWE|HkA0oq{29Oq} z?8P8ijn_lO8yQge^9nmL$v|0G( z;NYPCTQuX4&!%r~?_QPXFP{~TevB_`fY=0C14wwq*9%R6t|JY^xC8jOx&yQVBZvI9 zhMHJl91HKyr~17ua*Dl`2Z4t~W?p88%!{H!=7_BZfNFxQ0pdr1m2(ujPShqc#&w?^ z@yCcUscgdW@o{E_9yz!04l1H@M@Seu?a;EX*urb&Y3?=@ zs78Q3LA2Yn&FSfB?O4R;$a&Tj7T&=>Nzlw4)&}^8A#vjl&}slgMeM8r)CB5A&nUbo zzXXQf=Et74{1y8`;>HGO+1b_+IeXe6eu?Ipi4W!X;(D7Od)o3>{9S160QmGG1tpNT pi8axR{}wW#MKy!xiX~&S`3oTzqb_k7qCWrt002ovPDHLkV1koRs09E3 diff --git a/src/main/resources/assets/hbm/textures/models/ModelGustavYellow.png b/src/main/resources/assets/hbm/textures/models/ModelGustavYellow.png deleted file mode 100644 index f35253ad762880221f8043276ff2fbdb0f064c85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1557 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 diff --git a/src/main/resources/assets/hbm/textures/models/ModelJack.png b/src/main/resources/assets/hbm/textures/models/ModelJack.png deleted file mode 100644 index 68ee9308817eb25e4c16300957e2d22c3dc7ff47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1255 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1XM{xK~#8N?U*rd z6G0G#)1*$Ff*=%{`~V~h3KWVosZ#NWDAQ6>@+%`9yz_kM`DxGgozG6N?@6P1J3Bi& zZ+C46E*y7vcb)9^_IAy~U%p>Z-fEyzJ!FyiA+8htuq~ zJh)qJHwwHIYP9yN)aj7;zpg(76_)ue&_v!;=4H%nYNOgu`)a)(27Z)&&y|CZ805Z{{kE|nI6t7@cGP1uV($0@o;MTeCDLDcIQV+0Jq@ceIB0c z@GSwVCGO&V9-iy))$aUg36O{TArQ-)^eqAMaMi5sUkCXepr+EpIRKx}ob+j}JkNz| zAMKYp=}X3R0m5Mzu_65|kQP5g!Q+v^-vFjmIyT{j(DGk=h%Jg08|U{s_FCa9J{Y}=SNF~ zi=$zWWeyzQ65-;g>9Nd#fJlx~5hlhvW?(gq=6R&bx!5Y=6(7bR#czBMJyHE}w$Ko=CV72{Lkgr-5 znino8MYcpcM@g0&UqNlZ738Z%gfIv3XKOvrWVo~uTkN(_>{U1 zYW(`T{$hslSDC}Zn}GY+z4Mbf07w2|Q{nT0MEk$xD||jU`xoG!Tex0BD_%=Z3y9mrYRPHg z_qUH7rf=ewhcm9FrvVp-`Oj4=UQ15{e#6cgyNB1((*VN!*2NjS&m4G;eNE2EYU{TF z8uA8*#I)jY{ila>k72&wn}#=y7#EhjHOKlY`TxO1xwx7h4c4oc*M(Qw+kqPU@#$UP zpgg>$M+3p~bJjf=ykU8GO^-&a-W+xJhCZii01x;0(6~zU@OaBAtw(F#tHh zf_ZRp@dwCDiRDQ@;uZh^002ovPDHLkV1fVu0338hSaeNqWMymsRApmmZe=e{b!%mE RFHLV`Wo$}eV`~u=)|E2)dldix diff --git a/src/main/resources/assets/hbm/textures/models/ModelLacunae.png b/src/main/resources/assets/hbm/textures/models/ModelLacunae.png deleted file mode 100644 index 40981f04b35be35944603252590e7f4436549ada..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2856 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 Z4g8d4@kOKh@(0O}1yCfb`xb$b@gKugXj=dP diff --git a/src/main/resources/assets/hbm/textures/models/ModelLacunaeReal.png b/src/main/resources/assets/hbm/textures/models/ModelLacunaeReal.png deleted file mode 100644 index 05736d9807aa822f0d1fcfd162627fe2fc8780b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2854 zcmeHI>o=4O7k}n4!(5n#bfT9PLuQ6SF2`kv2Q$nxlU#CJWQNkDrVI^<%0up|2^Er> zR4O4(G0JU-P8ZcsN}QM+ky;Ar7>9WI@cses=W~90?Y-CDYwZvFxArB+$Jh#i^*iN*=!Dn!(#dRtRjF;-^XMng@x_ra{0Sg zA>i|4qNAf@Vq*5~ixUV$dxd;~Xn%ZseB6=P!^abnlaF(@!M?uPK|yEI)6;Wua>QbB zVPRouX{kgasi>%sN~P`X?cLqoE4}=Se;N3{7|@x7b5>RW5czrgFaNUv_|K_rS|JZ3 zWQH690DQ-)BG!?&!YfG~5hGaSAG1evI3g|z5Jp5F6j>aM5*gT9SXunK+bekG;;5cv z(cN|=hEJAga0l%Ok35*L#UzL-=p&$O&$)#^upW@1SsPlH`7>X=#Ro#p>$TI>Fr<*%byl&L=dh_i)&Qo8N}9cqd-@md>aruu zBMRMG(bov;33LENO9A!f0d(!NDsc1E)CN?jE;^bm3Bo2ut5D&z{YM z)LW(rzvN5nKm1X0GdkL3*TQ1&Tne?QG9$zyMY;6RG34%@vx4rQKZC4Mc3KBMuX#U< z7_6U|otW4-G7(KH^Lt2XBH9d@f)$Sw&n;rD3l4|`X~XE^$mAArf!Z518F%xIe}mvd zL;aIs-C(4MrmuB|1WpU{O0*TlV8Vd^9xlem%y1WS2fkJf-{9b%DjkKkYN>|T#}^X} zG?{3!D=Mw(=)eTn%}a?4%Aq*??5uXC$3anNryJ~Oc4gtG(Hyfp=xn+m%khjkCIBhC z5{l6;EeUfp_>o%|p8KRXbbb4EofLmUcvf~(t9sAEz+QWWvSr@YNFhT!2=WVu>_;JK zPnq|KeSY9Gs)D>4?YwAjE*Z>l<2_v~X>!m-$^x))!PtONSd!IQRlR3(^Zom}cpqFg zQq*#h)NRRAz7;yikFT*dRtULN%f?WCm$pPNo&N%j>0dSovuJ_G9QMUX?%y%=)d`14uaGnlr>U$Pp?r%JY9z3# z9ChCTT z(kA8gru9UqP||d49l}bX>om`h?+d{WO_8D>Ge{3uIT@t*ETF&uOq(t=+HaVdp}253 zc6y`z|w){d!D zo_ANT%H(ZtU(?IAc_?)^hB@Y@ctq@D-vQHXOzqW`c`1to(U-*6qJ~3#zz+U*2r;=8 zhbCTO7?&kt)4|cN1w`UDNN@-gd*V$INE}>}?q%}O1}o4-$?7~H)3``>#Gu|M3T%?$ z0XdtEcAoEO_}FC*lQInby#*9OXm}+-GVa0tYV%p^X32EG%^Rskn7cU1J=Iws#>OL! zBf0V+|KyILYNSkmvePM_Ao=LBa4N9f6!D{_!TNeW?Y{a044voPaol;s`=O!ov6M@k z(=Dxssa?Bg-c|7(-BnyLwuD=t)(tbcVrKSTB35;q#r$vr*(TyRgZydU7&5pb`;e2x`!eVr?C!o=;9z zS5HowT)={t@fS4}*Bf3LW1f%UFIdMup90Yu-<+P)rgt)iZ_{ zSe<|yaJeSa{m>JmF-KHVpCjszkZpK5Q)$<21Sa+AA}TJR7+A_Rf(Fa;T zx*wg$2A^6!B<=;DaNk zYP;lF=5nf_4gT)Gw#{~_nwIie`?`bsN&| xwqkq~{>x6ul=dut{-mj-2$27i#bK0ksqImp-y%nSz+vTg0W5|$y~drF_FvzOY{>us diff --git a/src/main/resources/assets/hbm/textures/models/ModelMP.png b/src/main/resources/assets/hbm/textures/models/ModelMP.png deleted file mode 100644 index a094364f6af5b37065909af72ba2c3c87d56aa4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1578 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 SuQWTgNFOZZ8?gK(_gesJjA^d` diff --git a/src/main/resources/assets/hbm/textures/models/ModelNightmare.png b/src/main/resources/assets/hbm/textures/models/ModelNightmare.png deleted file mode 100644 index f3186dd4827a9e31087fa4cb22274970df3cdb4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 757 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0$oW&K~!i%?N>W) z!ax-C5on;I;si($MQCVfK#HI+O^OuhQs)X0b;@+PM9SRF(LCN*ljk-6d}Mp1$?p5? z?wj@68!}=v8Wq#&)cBO&l=N_k`FvjS9YUVx#cH)Gv<0zdiasof)I8C~9K+$ToG;b) z>2`qVkJtMj+kk7LPI%maI^m>Gmt_#H;=##eVpN}}pM3(zRH2bR>>IEyxm+$w(pJCb z#r){Ar%!5vCY`eZ%tO0guZ!7iX2e`*;fpzpu^#vkSL|CKF|D8Ua0SS@Y(eYGGTan48E!xh;4D){~7t`yD9VC!R!286Rk z5qzqAwcv|6jPVuJ;wgw@Qed3q7!Oxqb3wF{8xdO{b2L~ei@|XQ7mJ0p^rv!2#sTK2 zF9I>$K=co8!1Kec2}G-XwCeXUe+GzAQefSws>AduG{`xH*w>$n)a0o<&B zw*>mkr7vZpAFntt`r?&nivbjVh@O5iSh$-N#0{tuul{{v)mFbPR)>?4j|7XwhfP0j zw0pf?(eL-|=+Xz)+3NSH%3C1Dqpfr7u7Y2HZh)@IVjv!yfDaRVWSy;kpUOUJF|W?1 z&ps|bzMW|O1`s@=pu5@yeK%5eD-gxDO1uKE0q)uDc6+sJ@ZUo3Mvzw(hz}%u=zDte zpyEMycL4YwAxYcA%>a%$$X`eLiwW_%UsE=?DZo=536*Rr==e#-5-<5&hG5aYy_70zOOyc0{|pR0*2s~Fbs7Z$93Ci zG}1*;Aj`6b9OvxpOe>|}I1cC^0A{n9RX$DAR$WmPX;Tk?7kYW!R;G7I00@GhR{9o9 zr_)x0UW?5*v!D9RGDn=Ao@!D=XsxSGu^M-hBm!7@fbaX-d}*4dfZ;JfaIyNJdJDJkQ}c z4m{7(0N{BZ?(Xgc0MNDz!%*Mf-&@}uhM_hm2LRgS$K$brvyubsn&7f*@!dy5vb_89;4xS(dGGRF=TXNM7b`ZSZZ;1)nU6 z2yLN};{0?v6(rjg^OaJV&1Rh^z3mywTQ)mU7=4Z3RMw=;5HnJ}_8IFc_`a{X5(;@_ z2(9QQ9zd%}hZKdT@p!BOAj>ig1_K-%9JH>SX$-ZKE*=Kgc>w8nd&l;w5Xp=jz|r$;FT5d?vzEN`6=yncT9DE`H@O;BP~cR2(4==%BXn|^+NhV7SSS)Ir8pDi8V6iKVk^YuQLm+gna$Ijm6J!9+C zS%R6E@XJRW$Kt)?{(pfRZL9Ah)>Wks7(o!=_V#w|&F?cKC=OGY;FpxeVgV^79LH(B zQhs(M(2S99@%82-(`hVagalS}jZoFQ!=Jc0K7d(WOdd-m+vvorh!r&4|U T8?KLW00000NkvXXu0mjfJ;upd diff --git a/src/main/resources/assets/hbm/textures/models/ModelOSIPR.png b/src/main/resources/assets/hbm/textures/models/ModelOSIPR.png deleted file mode 100644 index f8f8b637b6fd6d8516b3b09348d41e361ee2caf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1255 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1XD>wK~#8N?N~8x z+%OQluNW|5z>WboZd~~f=~B8&8z4nqkSZ@olSkwic}ZSz!4NaT+#V&7ccdhrJ-}j@ zyUQhKN$H^5IqvVj?r(3u?4{j?zPWkXUtfP7wA;`uQw7y_+t>8C1MB64;e@IAS;R%7 zom072~2Kv1GEu{Y}e7pX$K^vWsmux4@~eA_abg9?lP6j@CTS9DNTD4});}S@2W#lXn|> zjIi6#EL#UB>|~c{fXG2)L%SX0aXhBE#5_dw@$qpWt#S0_B$wx7E;9g|`@P#8Y}Re) zNG94o9@AWI9wN|7xJ(vK$_Yd=(f09}<`U(&ySv*%ILxB;BjC?EHm&EG;Um=MS7D6? zfQ$&0yv%Czi;%mv5QY!pbY*>~Kqm?jnJGfG`9%N;KiQTioP##+L?8?&$=_*H# zJcQv@Ad)#@N?+)G;KI-%$Pt$?r7wCmKv&tXt;oq{>hR$dDhOp{!VDs1d(?#P7=b@qesE#Fy(wWNeM%fu^w=ukQNP}1%6v; zu8vh2(DXW0Kx9SO$-;)ua~NuexB$jWHY2W^YXC%f47G*6`{VaN!`*>*$|Bc12NA{w zq-8TDA;xk!HSk&zj2T`IzPNO>$70YdQw{x^s3xTMugfI#h2>vb?!)tkFD_}fPkA;) z8cmd7%<%Gvgx!XYgx!W_nPP1227m~NO1lj`=a*)=S%~yzZa{=?0YpS03^#?=!A&~l zHg!Qd%^&{`PP$hEumQfTB*F|c;x4(-tVDmSCuBK39y}tV-3@wkeIBx)5O#z}f zZNF9SlQ497Kx0AB8|*#_L;avdT^Kq*%<)a0vQgC7#0`iIpgRlCbK<8oU^DOr&^3vR zZ2*TwxX1>SHbJ@PHo$AR)a<1RY8O>*+&II2)A#iAaQT)qp-&cbWZmEitG8X#yvoj%=f2XDRs@jB`% za(MZ8^9|4=0PVIv7SL{ARD+ywY=RSxP2lv`3lI@u+0bq?b$BeMa$X%oqJ&&Y&O6@m zny}mb2N+Aq;fyS6qyPW_07*qoM6N<$f&c&j9dt!lbWLw$Wo!UcWn*Y=WiL*3Yh`jT RO>bmnY)?~3P*O~}J{+JgMpXa+ diff --git a/src/main/resources/assets/hbm/textures/models/ModelSpark.png b/src/main/resources/assets/hbm/textures/models/ModelSpark.png deleted file mode 100755 index fd6c47beeef97ab390fa231f0388ab72a6eb8162..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1518 zcmVjY#FIC&2iMbj z*@GN(4`lUjVm2OJO?D5&gYn?Wi)Rz$0&yi9ux?pp(M=$g)h$~{OQAD|pNHX1r?2zc znQ03h;B$F1Z)RTSz2Ber`@J`nAYfu*f^=O+I2?w(1b}cj3;^J-^K}4V7zPZ(fGo>p zB>>2>Y~5qO&es7zDwUE%?+O5#rqRa6M%8 z-Q7?W1&X4S*`bro9=8wh;_QS2Aj@)v2R$wJ4*+62oSh>8z~Be~ps)8l0AQ%yyu5l~ zmgy(k=D}LhEFT`0FPYEr&kOJW;$vSvVPIf@05jeIfUT`9PwfZ;p`c(7f&I{wxcn$N z(||fPKs*2e@d5P`cnx4lmzM;{j$}#t+9gv0vvY*)$H3G7%saeF^4aHrPv0+>Ci@MC zc4}%AdoKZ+rV&sY0Ixovt>Q zs@~s*?Z@REwjcZ9#@Ch4fBt>ll4=$q=CnR|can02eRQqPSAcW9*?`4E%>%V_Ri$@4?LB2{5<29o}M0Z z>R2PNMx#GP^h!JM#{sbU?N_Gvf0%R~qqD4xEv{xVnU;?+fCk0^_RY{BQIgVPj{2jW z*xbznZ+A(;Isrk|fYK~*e+ipUwt@Rgs9GmL*LCQ+Zf%DL1icpP{}K5#}>gwN8MhX{2cyMWa!QMx!ko`tp=CU@eI>MoLMD zs7^poO~7>=z~|*o-}*3W?IZ)0dAS>2zj(vatb6k}r4L{I(mKEM;JWl^{5Ao=g}c+P z+YVGNaBu#mWG?};<98lhx6Uuzowf$T4VDRP?&bj;&iO3*Tg*}a)sJX%HxIlw48VQ9 z&BxsFDp_4UFfCw%@M!!t`O|Ti(h%I<`8 z&dyHP+gnGC?>K;Us#*t_r;kJ;!U14rzy|B6smljA{Yk-Y*G?U`KO_3k;dofgQGbdE zi#e)Rr>ZKcs!EYag!m4ss!DBbZGl-21RA&=psFhAx{hcx+VCl|nRt!^M4hw$R}eTp zukIDkK0xI3ve~Ru&D*y=b?yrQ=FAX@L?}oD(Xf31pfr^gi^ayi67Mh5!Hn07*qoM6N<$f^PxV-v9sr diff --git a/src/main/resources/assets/hbm/textures/models/ModelUboinik.png b/src/main/resources/assets/hbm/textures/models/ModelUboinik.png deleted file mode 100644 index 9d8fd122b2b76549bb26aaf1861090e9cfa81075..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1738 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 diff --git a/src/main/resources/assets/hbm/textures/models/ModelUziBarrel.png b/src/main/resources/assets/hbm/textures/models/ModelUziBarrel.png deleted file mode 100644 index 110ebd5d4bbb4e5ae39366006c8a9c9b80d9af5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!V5X;wV@QPi+ld=_4;XN;*m52YxVYiJg^SCw zO=}$HZf?oA_pD~k*8Z8TyWO|1el`2;w^_w+@3w1QXI*=zbVG;BH4%l+k;2)W#SJ0{ zzPPg*L^|L58NoNn^m>| diff --git a/src/main/resources/assets/hbm/textures/models/ModelUziSaturnite.png b/src/main/resources/assets/hbm/textures/models/ModelUziSaturnite.png deleted file mode 100644 index f2d727f69e7e230342de8c3ca6ec2238679eda47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1620 zcmV-a2CMmrP)Kp76o#J;&LFEsm!RlSbZM7PnbS4Mt;x{k&;aRhK!Ic{ zu30j)9lBg^%>f5=Xn@=n;N0zipmXO;MTcZ4I;4)5z@|KSU>w)7BUdFpY6?Quv2&2e2&`}gk7(xwh8Q^wYjW2|Nfe;Wz5e!P~ zCnnECqgcLkhb-^Ci`Cxq~7GQok4gO(>qqpmGdPa1>6gTQ1U8>oI^1vK^DRVjae@dBF7CbU{D008Lq zdJxAky#N0=^*Y-aZOR37JDtQ0bUPh@e&5{6ty`Hc!$%!O$ZY?H)0mP4ZRUni1YofW zDZi}BZ0i6p?=Ffcf!@Bp`UZywfk}Q{nOb41>$3axE5P-tO=urYDJ><h z{dXdxD1v6Q2><|b9D@)7+U>TL`q{$^0;H&MWojA=9blU z3C-q60e<{|`*-&X4Sfo?cO|*H zR@W!Tj57M>mV{n!bl;y($Us!zsT4^j;a!W#MUx6J{P&-H4dX$m6WAZ?^m^lS)OP|O zl8vFRFQXk3Mi-C^HR}P~Kj$6g_p$u1ZOB9kG&RtTtZz%pGPDW56CjTBeO5ur%62+u z!5}9p?oAYtlC36yrGWv)Za_CS_WOBVgLM!% zMB6%iTm+wWCFGH5d`+2Bug3t&=WA-B%5*~)NlTm1x9ijsURBm02cy>;N5n3lCi2vW zJ6v&aG|@Js8|l%jck;`dmjNz=m6cIBvHv&SkFUvqS3H$X9c=?~Ag1=I0L6njWym@Q zhnC<6NR$DoiBLv6HrOiwz*x58xcK0!ZO?*5)F#Q+4fN&B%iz(gcT#-^xK;w~*hf1y zOc=f2pH72cmwCwq4lgcTPPfbaZEi_p>QwisijvZ-Ss6KHU`0^{s2V?+K(*>^uvG@z zeY>e$m3Gxp%A_Wso}|IowvPgvjNH5#9OE|;$Wu?N<-YnoDaQRjUQ6{pqT=%M zvT(igKqJ*prUhocq4xGJtZm4t?H!(!Xv>F$R7RT;0ju1yBz(>WDs(KYa{f zbIUq6p<)4jLioza)t&4KP^IB34gvwp4^0-$&?XwBOe*kRTulbN#nLAUHX^RWbe=71 z8!~l^r|yUI23AZz4Ft&EUsKoMCx2P>)PQ+UL^18YQp>v9x0+@cQB5&V53ieOWBmltMl?MR;06u2i zsa63}$a;}N8C$V`dM4klJP7tr&!qb9y;C;;KMG)rgN)+<4I5Y;v*C;3M*;Bmj(7`} ztV?TyBl6i$tpYH$!(Sf2=2}k9)Q-d;Y5xpS|0|QU|4LDl^BSw3jZQ9-w(~+gsmBuXasS zG4)-n-1At&bJjA?iI2b6#>*NdIO<(wRS@Go5M!GEd*upU3w5oww!{q`&Dm9gwlCMc zmg~M~*smR)IBhiu%dl4Cmw-8ulNTR50FmSyJIP>lv?CY-uH|_e*R4 zPF`M~cR{W?FUxc5oSW|43zpa~UlMgLXY1OD|LuPAACMK?AaP%p$?W!lOHmHD_TP^v zWxOctXU{e9&%6_hKiW1}DkUuDo6Z6BBM{iVD|VRrbk`*96Cj?atDnm{r-UW|@OgNk diff --git a/src/main/resources/assets/hbm/textures/models/ModelZOMG.png b/src/main/resources/assets/hbm/textures/models/ModelZOMG.png deleted file mode 100644 index 941fae77b6d109ee289687d4f3a5d5daac3964bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1348 zcmV-K1-tr*P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1hz>;K~#8N?U_AN zBu5a1F~DJC7Y7Fi2SY?CaIi4Asg9r<$lg1w&LAD4wXgMF$0NI{e`W`X*?C_?MrKuI zRTuTLyN8*J%IoXv@bdC9$a@T5N0ipar5liq^%(O0^&#qlSpe2!>pPz?^hlknt zQqc$$$rf?96v>BWZvjX!Hm3q`A-&DCE_-rYtUUp+E)0bL(_OtqG_AcSpW*4CM||$;eRcma?Z6T4^oZ)+d?G_*0cYS?5KHAs(_tfF)>S~KWT_6g>Rs0Y^ZLfiAL3kao z7Xd_#l|8@~ixa0NNj$P4qXl_JqBj zeF6O6Km>+eTx5yf628^%g{fjtLAarhQ^J4AmIBas5Nyu)_WS4IuRp#t$9sa~x^C#> zl<;2QpnLzaiB=z2DgcO&B4G0kF1U)JRS@Xol=A`yi$7kEPsKVY@6$o*&=kXa4A14? zfU#p1z}MeC4S#+Y9)`HKnKq$)`<`XJJ^xfdNQNU48Gn3@bx?JjQ%BUdbv~y};L*-- zk=`o+UnngZa#T?8Dn9Q&E2;=+yFebd1cY(wi2An9=d_8f-$d5`+tt3jyqv^FtTxl$ z{8j*u?;pHf$7>t@r=p60whQEOOF$T>j;L?zd`_F#S^&8F{R!Z02`?KHh`w}EjNc(41rUY^r} z(>g%K-e&qyIA#H~_TCad1z_N?dhcuR^LDG>eeHwsax)-2!`TNr(drXl{{D6N{Oy<7 z9&}xdA*VOaWrE)&?{UZI!&d#ERSTf?glY8&2>j{mzeR_Ax`$y5IlXZ%6L2Ulcr6H~ z9gGS9-v2FIqqP^0wWhCq$aT&h92(3IR=$q)#$jA;TyJeYjOksJ-z$VFy1Zg86V{L* zZaC!HmU+J$m;2!YXw7x6xR>WKJeLi7&_OQUQTV@IpWYSgYg&EKQoQso4{1>oKb zzuNeDLfqJnj z<}zUk3F`;Qp>fRneGG!)&UO#u@N8W1-k)v5J5nFxihJU5+BmPy)x0{_=K&Q|&zLq+ z@A~>A&>R(NEm$rSdO$b`B(K=VeB8&puQkuT#()HZ=~p|%93Dl7-y)#r%FtJ1<%JJ| z|6~he_ecsLgb+dqA%qY@2qAbmnYyebcV`y$=FHUu9WpXcCPfbTs G#$#4S5{B#m diff --git a/src/main/resources/assets/hbm/textures/models/missilePad.png b/src/main/resources/assets/hbm/textures/models/missilePad.png deleted file mode 100644 index 03a80eeb378e16df4399f7e6c93c985045074f96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2161 zcmbtW`#Teg8(*EtD9k0dMsrX3PEBei&e=vd)flBA%Z#BBGf6Z~%V{R&7R6R_DLIF^ z-@dg}G$WTTm=r?DWpr|FY`*$FJ>$}d^eTFF{Kf35MF{PfnLwBd1)i3lhSG4 zZ7%c+z*4cO9Y(Zdnj%~~_x}jF1+{DEuH);ER3&zXQ1B0ZnI9U$7rJvNv`-1)CD}v3 zrnuGl`R|KUK`tu<_M61cs`5EgAwO<4+LG`DaiV%PGQ~829Ts>LH9yka9Jf5v=atF7 zO*(8q3q9~y;oGO@*M~Sq!@D!*_>dxnT$0cGQ|V4=`r=`J+~u5rg&$QQA382Fj>T`p zto}3JR%0Az*%pkR9Po@*|2+M!1ZMXWIim}Tl7Lk1M)?k}UA4G%$!iw|F zJW1VPK{_;iO_Tl5#teF!16Vc?Z~MZ$Jz|&zdN6ZVo7oYZ=K{iH)5t_kt*m? zSIqMSbG@?^PSl^YQpSOmvBnbVpiWWFH#I)rlvK;>@5iTNz&sUI;HQt)(ff=+xYUW) z2nSV#-KAsh{CDfEoj4!C9TVMgw4Z8ljShP08+3BGqJ^Bxu)2SKT}lWmbdtE|3q$S1 z3K^A5(DsOVU0V$t*f6ujP`J773lRSpjHXY=2ft6D+ zssa^DRAq;z<3YMKRnfh|UKexMP|sbH{uECbR9^w30NuVMCIdr7I2I|t8l|#*%%s^m zhL@`H4SkDuk@i-M>l##-*`5C1j7$(?S;$Ozenm2Y&5h2mul4AuYq&Cb#m6*hLHsix zn$g+)$5MY?{r=m+y*{79)!p?=*S%4 z%{8)N&L4jfd;4q;v&TdT)>jucLHEBz1vNfUQfrq99668dU(epHt;zusRep`%SR^26Pingz)^^(N#jD%x*i5R+3yXy z2EA39CXFpii2US+1K7MQ>RXs<(*({^D3-(VhZue)NjpawLNC7Dn?YF8J@ftN6QRiB zofxm~*J2~&lr|$ctbEiH9ZCS}X$E}-PZjWjFO@V}Rr2Ln%57w{-*mGVYNHYd?hC@s znt&+q%jb;d4dy2df$iL9qgDm6iem{inJq&S!oHf@dCN5mYAVF7CJ`FUTY&d;TNwVz6A7RD~`F%UjI|E1b`wk>?$ce^vM>P8M8xrTWuY=$A@b{5w8rZ>umiwGC` z&o3%X42ElSpeT(8kvmk?5^|l0Y=flM73cPYQzB)>76f+o&SfyTwuMIF1r>gY!{bR`=CIv}TNLi^@@6ls$qL1#~-ryq!Q+_7D ztyqla#aaYH{>*|d;+PNg|AHBXxlwAgI!;6{GAd(I-UjpaX8O`8gViS^-UhL1t(5;g z92_qzTAcC@?>qY`Jzm$0c-0lJKvQKngA#@w z5YT=G*n%#XyMqOV^wLfH3or;fHO}9%ldjrOrk#qsnzBMKPIJy}y1!bGay>inURZ6& zF@_u2Ro__4D9OjMRQCE|5;NIk83LQFO&JnX%e%oj{xA}h;`th{TTlNJ@5kc diff --git a/src/main/resources/assets/hbm/textures/models/weapons/bolter_digamma.png b/src/main/resources/assets/hbm/textures/models/weapons/bolter_digamma.png deleted file mode 100644 index 75f234d43a95a95ab55dd8166f19ccdb75ab2233..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2316 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 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/ff/nightmare.png b/src/main/resources/assets/hbm/textures/models/weapons/ff/nightmare.png deleted file mode 100644 index a3cbdbe61eacdd5fcb26454cff1079fa70a09c6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!8@KVjv*HQb0-<{H8}{likk}cDJpJkVJ>LT z)$B11U$FTxmrUcNbKE(;9yv=MGRYk{wPrKWIA@+8OuO?Z%`~t-D5$*UTIIaMn{__d z%JZ#TFFQ9{H*1Ia6LMOy+9B#~vyz-eN za>~In;nmKw|938^y=2lV?#d{*eTM3T*##fmZ{#JU<&^hx$xT?QeKamxZhbBDA07|Y U_3BkFKz}lLy85}Sb4q9e009+xm;e9( diff --git a/src/main/resources/assets/hbm/textures/models/weapons/ff/nightmare_orig.png b/src/main/resources/assets/hbm/textures/models/weapons/ff/nightmare_orig.png deleted file mode 100644 index b89b0683c85df93381f0631a17913139dd4a205a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!EK%{jv*HQOZy%9nhXS7+mA`VIK?7#XN7h( z^SX=7U&3q|roU)gB3_Vs=LBOFr~Mg`gA5lxT)GhcN&V+!$z+X(d&OUO8qPa4>F?ET zI$i4{+e{>CaucSVcZj|ILZN?O|BWeguSHFHQMtGEuwYT$osX{Xx5`cs^NtG*jT5nO zmeP6Gu;s=TbDgt$XKt)t_>I$M!ei$AS{#)bng)QK)#qoqjYg3>P7(8A5T-G@yGywp7r*TyP diff --git a/src/main/resources/assets/hbm/textures/models/weapons/ff/rem700.png b/src/main/resources/assets/hbm/textures/models/weapons/ff/rem700.png deleted file mode 100644 index a7868015e06d392ab50219dd7fc801390afaf837..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3493 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 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/ff/rem700sat.png b/src/main/resources/assets/hbm/textures/models/weapons/ff/rem700sat.png deleted file mode 100644 index 3b8d9521542809b9e699a7dafe6380995eb2f7ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!HJ$Ojv*HQ$vW|~4>2%rpSGuU(}9G$yGjGZ zgc6!AxiE|HW*HuGxWvJx(3HV&mo24KS63G(x8RKD5e6|0UgmCb{WgQ7vdpL@t?yRZ;LL!$TYvma_;-} z>$cXK|J=!U`o$jcs7aRm=FhHti{1P`F7viZgV+UhJcWP54I`6u&!6h2{2iDw7=3>- z99I0X+TQB?1ojLy2ktc|r<~NXXXISKY68PgnR(=$qVGQ6zw{5w6#jsDZtD&v-&uG3 o>ifWdq8<#o3p`20n(_}AZ}v()WqDoJ5A-&Jr>mdKI;Vst0Fv8qH~;_u diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flechette_base.png b/src/main/resources/assets/hbm/textures/models/weapons/flechette_base.png deleted file mode 100644 index 5b1c03e7bcd365817b563276422d6a4000c1c1e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@~b>u977^n zlM^Ho4rC!TVXf77PrJ-ixQt$~x2nbOnQ_tDnm{r-UW|ZK+4` diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flechette_body.png b/src/main/resources/assets/hbm/textures/models/weapons/flechette_body.png deleted file mode 100644 index dfa1525d9e9d28240ff2f2adc7caeb0a9da89ddd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 501 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#X#z`(f1)5S5Q zV$R!JhJJ?)BpL#nCcLQK6|#bv**!hsq21etQ=+RxPP^T&X5XOv^z?hhd*_Z{e%rZJ zHje-BwK}7RC|SvGucwM>%Rd`fVG zPlxGhmIEpTy}S04{J-=0?{{bv%@0*OaQ+SZil|hkA4%$wsZ0i)B!<&pCL3Gv!`nQ) R(}D5G;OXk;vd$@?2>^9gsGa}- diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flechette_chamber.png b/src/main/resources/assets/hbm/textures/models/weapons/flechette_chamber.png deleted file mode 100644 index be140fef46c878d3becb2a8f2d67317b883b8841..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=EX7WqAsj$Z!;#X#z`)4t>Eakt zG3V{fja-KeL>S_i)<1cqkjM8g^#3Wxf(cxuFRqKE&wV@TR)_nEyD^gvi$Hz zQO7>9N%{gOOqL*8kQ|(Eqbv_@8?|4z`tAu47v^= z!D9?t7<@1OXY7A%Tix?2yn!);QHuEjlZoqlrfk1e&qDSy@i=f_kZ2HFu+q-q;_U>N zBXzq^TS??jzjJQQOqK7~p2vs$=K@I^GFVpH^PRn={VqPH*L?>QPXg5RUYL<=3s^H? hh8ZGRk5xe>bK5a_vyK**j<0@ z4f_P^gcS@aN(~H5910B#cNy6>tdCyd$JqDUC%0*m?SppyGHI{$dVf+0?F{-@tN#X%-B}?LQq|@$}!z?FV0}D==f8Y!*!1bdU&hh{2ihHW^gcRZm9SuO!U5-m1D6l1V0M!= xc*Wr6#k*jOnd}DviBhOgLm+#PRl*fUhUnYenlf_zFM&2Nc)I$ztaD0e0suS?HxU2; diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flechette_pivot.png b/src/main/resources/assets/hbm/textures/models/weapons/flechette_pivot.png deleted file mode 100644 index 03f921e8d24b40d981e15bc328f4f78be9351ae7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@`F8H977^n z-(EH3V^HK_c4Yrp@c++>7a9(a3O26`niv=$qB&<)>)ZFK$+uNK-=OZbM=V#1#0OESO`njxgN@xNANV+kk diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flechette_stock.png b/src/main/resources/assets/hbm/textures/models/weapons/flechette_stock.png deleted file mode 100644 index c395eabd20d83922b86d14f28fb20a08cee53371..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!3HGD8EPYe6icy_X9x!n)NrJ90QoMSE{-7{ zoyk|GP5XJCf%RRV6welxTJLWLi@FUjUU5@8u!1?_MXqAetmFg<7DanVN! diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flechette_top.png b/src/main/resources/assets/hbm/textures/models/weapons/flechette_top.png deleted file mode 100644 index d2b1cc2b23eb696454468b27955ecc9d517fd927..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^4M1$b!3HF6eks}qq*#ibJVQ8upoSx*1IRz->Eakt zG3V_qN4|prA`XE^{Cdv5sb@_)cI{A%)YUDH)#oLpJcP~vKexU6wqf1h3+>Y{|NQut zJ#p6Szh*yf`<6yL@{Z7FJR)2Fm*I?gS?d1XdUF^GnL3JDa}LbuJisZS-eAFagj2x} zBxuZ*cjC3%hshr=fW&tk)J|CWf7Z|XIF3k7{gw?JaCMtG?@U|kNo qLG4u0GfFHd1`0dO0eXRfL22G48TqrT-~7D?;(5CIxvXFVdQ&MBb@0682PCIA2c diff --git a/src/main/resources/assets/hbm/textures/models/weapons/glass_cannon_panel.png b/src/main/resources/assets/hbm/textures/models/weapons/glass_cannon_panel.png deleted file mode 100644 index a1e40ff71fe14ef46224d2e090c0d80fa134ca38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^0YEIm!VDx|d|UnmNHG=%xjQkeJ16rJ$YDu$^mSxl z*x1kgCy^D%7Y*~UCfeJVaJR*x382Ao> zFr%o3R|8N`+tbA{#Nu>vLWmNVff2`U0oE4D5T{NiEgr2*7sjc9!tTCH4!CG7FAz^; YXxhwZvC(*C8BiO8r>mdKI;Vst0O}kz$N&HU diff --git a/src/main/resources/assets/hbm/textures/models/weapons/hk69.png b/src/main/resources/assets/hbm/textures/models/weapons/hk69.png deleted file mode 100644 index 41b98d1cb1265323e7d20a1e59f4c44e1c2a55e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmV+r0`L8aP)8i6T zQN)=rYJm)Iqy3Wl^7HxqD9n_gFIW_X9kR)GyY1cQlYII9!gsNV`(_dMO*po|Ek#k- z)oR7{di}Li%{Jq+74I#TA^?@DE}*;s(n=`@bb0A`!=mvWyEv5X^VE=Ahx9hH5=L?f0Ax%@_IHs;^;y5NvQ;ad}cDo-R zSo1u$#u$<$0U${dj4`BX3V<<&zR#bnhcNke_>7mutsUpAdg*tS+fwS*VJ%r@gemSr}IB7lcJ-WPw?$9*%~jDG`6oW%Vk SxZ&&o0000+85_XoVjV4vitu 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 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lunatic_sniper.png b/src/main/resources/assets/hbm/textures/models/weapons/lunatic_sniper.png deleted file mode 100644 index f67942de0f6c406143181b9d16a5ff92aa9be8d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 377 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 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/pistol_texture.png b/src/main/resources/assets/hbm/textures/models/weapons/pistol_texture.png deleted file mode 100644 index 926d076b97a91b07c831a742631487f9b7fa8a41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 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 U&MTr@(EtDd07*qoM6N<$f;SD5kpKVy diff --git a/src/main/resources/assets/hbm/textures/models/weapons/sauergun.png b/src/main/resources/assets/hbm/textures/models/weapons/sauergun.png deleted file mode 100644 index 7b06753afa1d0a053b51d757b0923c74255d588a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 945 zcmV;i15W&jP);Ml&0-J;0E0jRgFpZ{S(HY%c>=FuCPxec0bmeF&~A?K=E+*rLjbS_ z!2J%VKSSrc!xr5c)i^pcoVv*tDwWXbbjF`gPEMq^ zbJrkPmNh=$-rinJR?a$64_ZcddMNU`~CHU($|lgieIu9bAw=6mQkrxe9a4*&87jw;GZ0kZ#-+z zjMH-RU@!>%8eB&p01N^NYz;9}tJS8;_VMxY)a21==WuIl%h$ZD)oO9~k({}nKKh-6 z%${C9kpO5oNBHt<80h;Z_f2G2^hffnB=czMX%~bLm5N+w7X)3{*Cy(6 zldSY0v=0xFy}QFB(?nr-U&deG+~BlWL^qScTXFi+J>MS{c0OzICar>{RD{!FaT$k+ zrFnNi$*dGk>jHkc20=z|wW|TeoAL!EhCmNXX$>-~LePaS*{6?5qdW*nZ4HasX63P7 zcSlPL!n=))xj*=17`o^ChK@v#|!pG}tZ+~?=ZCQtmwRtze z#+7#4&_Q-MxhuMuc0nLDxYwZA`%ijIR9O)S04strx>N$&N>l`{DlVp75co?~L%Sf5 z8Vmvf0JJN!K^KSEQrv0z=5W(VKDGt|z#x#oAP@isfdmGD05Aw7FbD*IK_KBj*2DRp TnUuVE00000NkvXXu0mjfWr(B| diff --git a/src/main/resources/assets/hbm/textures/models/weapons/sky_stinger.png b/src/main/resources/assets/hbm/textures/models/weapons/sky_stinger.png deleted file mode 100644 index 2424f2a56ae644bcb75d5b3e10f74000e31772b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1550 zcmZuxdpML?82?-*%x7G7?dQHT4RV`t8I1eNWEd0EkSE3L>q!m(gK5+Il`T7m=R1n)p^0BEiNKe7;T97GQYAqO&| z@v)^R*roKMUMwY=ajsJa4*(df1D=Ti*-=1tAGj$4zJgO-au*56>HwG^@m#3)cX5t) zcKMzeDZAB7kB9{nEnrpY#=JW03^Rji`{h!fAAq?d=mgW$(kYB%0HDz;Hw72Oep3KI zp#6QkL$afmFQ96~L@n}jPFf8KTrl}XD)VY}s5Kv_w4@VF4j*H$xDKpyE9Tnp%WT)2 zurIk4;&VzCTBGj$A5tcp9D5cM)>NE4yu_AQ?vb+0N(wAopTy);gj<=S9-5JaSye_y zSV^9h%@Dra9wI1ZYji&nD(R?(6}e&z%8H81OZe5V6_7q*CWwq%%7@BR8t~?uFMY4> zE+Pl@K?b7++FGhRU0Hwby1F|g)S^mk67q#)pSLZDwgE5oS4=80r|x2|pTutI?^o6eg^N)5GUm`dn38-xk(d=Q1$E`cfak2T%4CvJpWHmD0#b95FU+FK2Mh z7H0n1M_lq5QByeS$1NTJz%F0W&rt*w!P$=SSxOHPt0K@|vZ~qhrqC#1&5a&zKY$Hk znVaX$BxL;7o$SrNZc4PB z{a?7zgQR%vTAO`7TkUvKXNmIMrjUf4U9`7tcTDk}d|@KOoe7e}WgT58CYNEXBdXvUPk31L+?P4<+774vJ@9_zSraef^+bb+uu=y1yE=pedMb*a}xTd)CGgS{XV&dyL$*X$y4zt)~k(RxK1e;i- zIWU$8=0L1dJpD9pt`c)#>`1cr6+KM6FOvsj(cttj%$&uxt-*EE!m9FZwabML$Pz$E zl)ui&|DE*$4Yx}Duq$1|OH6W&Gk-oiS%aH6$YA7(`F%ny(}mNQDoR_fI;LGdn9J&90cF@9kK3T8`8qnhiyI6AQIs<0Iv8P rY!NxY_^|NIO_U!qLhZB{`}j86EZ5618g*?L{yzbKGR;Roie~={T>P^Z diff --git a/src/main/resources/assets/hbm/textures/models/weapons/thompson.png b/src/main/resources/assets/hbm/textures/models/weapons/thompson.png deleted file mode 100644 index 8ecdedaac70771946ac3a40b9ffb8d9b5303754c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242951 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�%$*gHg- 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 KZK*$cCI1Hz7fX5o diff --git a/src/main/resources/assets/hbm/textures/models/weapons/torpedo.png b/src/main/resources/assets/hbm/textures/models/weapons/torpedo.png index f7100bbf597183f5599deb10ec833a210793ada4..4c0c7abf8afb5b1164dbb1cbc4fe78502eb3d615 100644 GIT binary patch delta 591 zcmV-V0cY1N*Vu zhQ!wXf%^Uc-8$cN|A2*sj8%vBgd&CriKRLallcYi0KVqZ*a_lO=yC6}Shl~DzI=M@ zTr5XuL2GTb)=_=z+lQC-vb+WWjI$9QKh5y{bJ_Ou!Ew3x@_%d2_lddq(*A6-Gepg? z2eOZ|o3Mx-%+7!(&*s4x7O{i*e2(dK8jN8PJNSAr#mU=n42vj0T<>VD?Y~OozR~s; z_CXT`h=E@Qp8U|jxds5tp6eDX&j(IzdkC6XRTZkL8Y-8qrE@v2R;wZM*lOa?q*4k> zsiAVYci5jt7JmSuN2kG;jJJqIQEc?zym%;)*MCXS#57F-?BVsD0T#21IM4Gt>z)4%H?c>a zJ@L1paZwa&Rb4@qQY<8ZgR7o;NPiRm9-0^+NfH=ikmtEI#;p6U zb%xSJ0cfHCG*JMW*g=vc>$Waj9h%rdpFvJ^G!#EoOz{X87Ukpv`V4RI`Szg20=UP`lfF_DS6MNuntoQ5CL;+}`05nkmnkWEG z6o4iQKu8k>pos#|L=T~F=H?tt^l*4w-Z{l~r#Q`VnkWEG^iaQ_2mp)4!g~vXCVKdj dYt}STfE)NyU9gM}&T9Yw002ovPDHLkV1gFgB1!-N delta 792 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%0D@-==gieMiXW8KxBW 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

Kd6;mf-L>t$BBT7U2_* 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

MfO?P(h25H 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

8Ngw3;*mHxy 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

g%H+z z6@7gKK0}Z;sKGF~`s{d*76Ys~rw(pM(CavPV@D4|Wc}i!%Mm})l0WM9$mkJm#Th_{ z<~;KH7|Wit4TXr%qiU1qO&&n! zNVw(*AHbj=Pso9}+ea#4Ufa&AqCX^{qk@_^l?iC4+x&*5b$2wzz>FSwv66gvpd0U= z+9WJb@G7>gy@Uq?TI~#M39q#vh~!9Mhyq3W9-&+e`pZ^41e7;;NQs#@_6f z0ZT_Xp!>UFN{3QKF=@f;{NJ8+E2z{PXR(0_R-=q5!F!AQ1xI|Gs2>3YwIUBd>55Zv zP^xfbBpjJBd5I9?6EJ~4LWp~^tt<|Mof+@^@R%`2MT^%(^q3HMeLcL5msns&ZFgcK zTgS2%%Xb2bONNIUm-eVP!!QAag7pcrM*z_U%#5Iw=IQu)bF)YknHfkxxW+@2a^^hg zZbaYmW}6x4a7XrkkA-F64T5cA1b^YCk~R?oWR6hltbMEXh6D)cn>EiJZr~2<_Y)UH9HMTryhP0 zTFJ@v@RsY2_yg@;V4}TgdmMP-5>(~W2fj_JKQ8pT zjSNaWEEb-k{rmj*<$3(;fBfHw|I^?5AAe~U$)EqT|4H~?e&>Hp4Wix6iLN1Jp2z={ zY@UDe)88wi?j&e%rD^3h?XT zKs2Gj88IXAt(KNY&L#n!E-3C`-PJG|+7^2oc*TgPgU-7B-q`I(bApq4 z&rphkv@2xhboJQloU3(q!IOj$?OZW=^^ybZAV{~7uO%j)-uv}FpFGF!{LbHv&jJ1U z@%(sxJU^Zv&yQc?$BA1L-}8qR?EUsX_w)K)YkTzlznZ#P8XCF7J7dkM%R($It)#cz!%To*$1_ zp?^pv^DVyiA+J@a+B&MbyyuC|&%|%>8V~(U52+lF-eY`E1z+CtSwH6feC%g^s^p@4 z}&ddBW@X*w_BM3cTeJuiNwE`SJXCe*8i{qUR<3bF4JK z54`B_^W&HC`h1^0(=!kK`SJXCe*AI-^ykO( Date: Mon, 23 Dec 2024 01:01:29 +0100 Subject: [PATCH 7/7] return the slab, or suffer my curse --- changelog | 4 +- .../com/hbm/blocks/generic/BlockPedestal.java | 72 +++++++++ .../inventory/gui/GUIScreenClayTablet.java | 141 ++++++++++++++++++ .../inventory/recipes/AmmoPressRecipes.java | 6 +- .../inventory/recipes/PedestalRecipes.java | 70 ++++++++- src/main/java/com/hbm/items/ModItems.java | 2 +- .../hbm/items/armor/ArmorTrenchmaster.java | 6 +- .../com/hbm/items/special/ItemClayTablet.java | 39 +++++ .../weapon/sedna/factory/XFactory12ga.java | 2 +- .../java/com/hbm/main/ModEventHandler.java | 5 +- .../com/hbm/render/util/RenderInfoSystem.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../hbm/textures/gui/guide_pedestal.png | Bin 1707 -> 3793 bytes 14 files changed, 334 insertions(+), 17 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/gui/GUIScreenClayTablet.java create mode 100644 src/main/java/com/hbm/items/special/ItemClayTablet.java diff --git a/changelog b/changelog index 0e5beef67..b57ae1165 100644 --- a/changelog +++ b/changelog @@ -7,6 +7,7 @@ * All non black powder shotgun shells now have some amount of damage threshold negation in order to not immediately become useless when used against early power armor * Obviously shot will always fare worse against higher tier armor, in those cases either use flechettes, slugs, any of the high tier rounds or a different caliber entirely * Bombers and cargo planes now use interpolation, making their movement smoother and fixing potential desyncs due to TPS +* Trenchmaster armor no longer displays benefits that no longer exist ## Fixed * Fixed 9mm soft points being called ".9mm" @@ -24,4 +25,5 @@ * Fixed JHP's negative armor piercing value not being counted right, breaking the "armor is worth more" system * Fixed the second UZI dealing more damage than it should * Potentially fixed an issue where artillery rockets would sometimes get stuck mid-air -* Fixed the artillery rocket turret's grace range not being 250 as advertised \ No newline at end of file +* Fixed the artillery rocket turret's grace range not being 250 as advertised +* Fixed black powder shotshells using smokeless powder instead of smokeful powder \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/generic/BlockPedestal.java b/src/main/java/com/hbm/blocks/generic/BlockPedestal.java index 9f4ace30b..6ca0a2586 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockPedestal.java +++ b/src/main/java/com/hbm/blocks/generic/BlockPedestal.java @@ -1,6 +1,10 @@ package com.hbm.blocks.generic; +import com.hbm.inventory.recipes.PedestalRecipes; +import com.hbm.inventory.recipes.PedestalRecipes.PedestalRecipe; import com.hbm.lib.RefStrings; +import com.hbm.particle.helper.ExplosionSmallCreator; +import com.hbm.util.Compat; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; @@ -20,6 +24,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class BlockPedestal extends BlockContainer { @@ -108,6 +113,73 @@ public class BlockPedestal extends BlockContainer { super.breakBlock(world, x, y, z, block, meta); } + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block b) { + if(!world.isRemote) { + if(world.isBlockIndirectlyGettingPowered(x, y, z)) { + + TileEntityPedestal nw = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.NORTH.offsetX * 2 + ForgeDirection.WEST.offsetX * 2, y, z + ForgeDirection.NORTH.offsetZ * 2 + ForgeDirection.WEST.offsetZ * 2)); + TileEntityPedestal n = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.NORTH.offsetX * 3, y, z + ForgeDirection.NORTH.offsetZ * 3)); + TileEntityPedestal ne = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.NORTH.offsetX * 2 + ForgeDirection.EAST.offsetX * 2, y, z + ForgeDirection.NORTH.offsetZ * 2 + ForgeDirection.EAST.offsetZ * 2)); + TileEntityPedestal w = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.WEST.offsetX * 3, y, z + ForgeDirection.WEST.offsetZ * 3)); + TileEntityPedestal center = (TileEntityPedestal) world.getTileEntity(x, y, z); + TileEntityPedestal e = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.EAST.offsetX * 3, y, z + ForgeDirection.EAST.offsetZ * 3)); + TileEntityPedestal sw = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.SOUTH.offsetX * 2 + ForgeDirection.WEST.offsetX * 2, y, z + ForgeDirection.SOUTH.offsetZ * 2 + ForgeDirection.WEST.offsetZ * 2)); + TileEntityPedestal s = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.SOUTH.offsetX * 3, y, z + ForgeDirection.SOUTH.offsetZ * 3)); + TileEntityPedestal se = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.SOUTH.offsetX * 2 + ForgeDirection.EAST.offsetX * 2, y, z + ForgeDirection.SOUTH.offsetZ * 2 + ForgeDirection.EAST.offsetZ * 2)); + + TileEntityPedestal[] tileArray = new TileEntityPedestal[] {nw, n, ne, w, center, e, sw, s, se}; + + outer: for(PedestalRecipe recipe : PedestalRecipes.recipes) { + + if(recipe.extra == recipe.extra.FULL_MOON) { + if(world.getCelestialAngle(0) < 0.35 || world.getCelestialAngle(0) > 0.65) continue; + if(world.getMoonPhase() != 0) continue; + } + + if(recipe.extra == recipe.extra.NEW_MOON) { + if(world.getCelestialAngle(0) < 0.35 || world.getCelestialAngle(0) > 0.65) continue; + if(world.getMoonPhase() != 4) continue; + } + + if(recipe.extra == recipe.extra.SUN) { + if(world.getCelestialAngle(0) > 0.15 || world.getCelestialAngle(0) < 0.85) continue; + } + + for(int i = 0; i < 9; i++) { + ItemStack pedestal = tileArray[i] != null ? tileArray[i].item : null; + if(pedestal == null && recipe.input[i] != null) continue outer; + if(pedestal != null && recipe.input[i] == null) continue outer; + if(pedestal == null && recipe.input[i] == null) continue; + + if(!recipe.input[i].matchesRecipe(pedestal, true) || recipe.input[i].stacksize != pedestal.stackSize) continue outer; + } + + for(int i = 0; i < 9; i++) { + if(i == 4) continue; + ItemStack pedestal = tileArray[i] != null ? tileArray[i].item : null; + if(pedestal == null && recipe.input[i] == null) continue; + tileArray[i].item = null; + tileArray[i].markDirty(); + world.markBlockForUpdate(tileArray[i].xCoord, tileArray[i].yCoord, tileArray[i].zCoord); + } + + center.item = recipe.output.copy(); + center.markDirty(); + world.markBlockForUpdate(x, y, z); + ExplosionSmallCreator.composeEffect(world, x + 0.5, y + 1.5, z + 0.5, 10, 2.5F, 1F); + + return; + } + } + } + } + + public static TileEntityPedestal castOrNull(TileEntity tile) { + if(tile instanceof TileEntityPedestal) return (TileEntityPedestal) tile; + return null; + } + public static class TileEntityPedestal extends TileEntity { public ItemStack item; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenClayTablet.java b/src/main/java/com/hbm/inventory/gui/GUIScreenClayTablet.java new file mode 100644 index 000000000..0038befa3 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenClayTablet.java @@ -0,0 +1,141 @@ +package com.hbm.inventory.gui; + +import java.util.List; +import java.util.Random; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.recipes.PedestalRecipes; +import com.hbm.inventory.recipes.PedestalRecipes.PedestalRecipe; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class GUIScreenClayTablet extends GuiScreen { + + protected int xSize = 142; + protected int ySize = 84; + protected int guiLeft; + protected int guiTop; + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/guide_pedestal.png"); + + public GUIScreenClayTablet() { } + + public void initGui() { + super.initGui(); + this.guiLeft = (this.width - this.xSize) / 2; + this.guiTop = (this.height - this.ySize) / 2; + } + + public void drawScreen(int mouseX, int mouseY, float f) { + this.drawDefaultBackground(); + this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(mouseX, mouseY); + GL11.glEnable(GL11.GL_LIGHTING); + } + + protected void drawGuiContainerForegroundLayer(int i, int j) { } + + protected void drawGuiContainerBackgroundLayer(float f, int i, int j) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + + if(player.getHeldItem() != null && player.getHeldItem().hasTagCompound() && player.getHeldItem().stackTagCompound.hasKey("tabletSeed") && !PedestalRecipes.recipes.isEmpty()) { + Random rand = new Random(player.getHeldItem().stackTagCompound.getLong("tabletSeed")); + PedestalRecipe recipe = PedestalRecipes.recipes.get(rand.nextInt(PedestalRecipes.recipes.size())); + + if(recipe.extra == recipe.extra.FULL_MOON) drawTexturedModalRect(guiLeft + 120, guiTop + 62, 142, 32, 16, 16); + if(recipe.extra == recipe.extra.NEW_MOON) drawTexturedModalRect(guiLeft + 120, guiTop + 62, 142, 48, 16, 16); + if(recipe.extra == recipe.extra.SUN) drawTexturedModalRect(guiLeft + 120, guiTop + 62, 142, 64, 16, 16); + + for(int l = 0; l < 3; l++) { + for(int r = 0; r < 3; r++) { + if(rand.nextBoolean()) { + drawTexturedModalRect(guiLeft + 7 + r * 27, guiTop + 7 + l * 27, 142, 16, 16, 16); + } else { + + AStack ingredient = recipe.input[r + l * 3]; + + if(ingredient == null) { + drawTexturedModalRect(guiLeft + 7 + r * 27, guiTop + 7 + l * 27, 142, 0, 16, 16); + continue; + } + + List inputs = ingredient.extractForNEI(); + ItemStack input = inputs.size() <= 0 ? new ItemStack(ModItems.nothing) : inputs.get((int) (Math.abs(System.currentTimeMillis() / 1000) % inputs.size())); + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + RenderHelper.enableGUIStandardItemLighting(); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + + FontRenderer font = null; + if(input != null) font = input.getItem().getFontRenderer(recipe.output); + if(font == null) font = fontRendererObj; + + itemRender.zLevel = 300.0F; + itemRender.renderItemAndEffectIntoGUI(font, this.mc.getTextureManager(), input, guiLeft + 7 + r * 27, guiTop + 7 + l * 27); + itemRender.renderItemOverlayIntoGUI(font, this.mc.getTextureManager(), input, guiLeft + 7 + r * 27, guiTop + 7 + l * 27, input.stackSize > 1 ? (input.stackSize + "") : null); + itemRender.zLevel = 0.0F; + + GL11.glDisable(GL11.GL_LIGHTING); + this.mc.getTextureManager().bindTexture(texture); + this.zLevel = 300.0F; + } + } + } + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + RenderHelper.enableGUIStandardItemLighting(); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + + FontRenderer font = null; + if(recipe.output != null) font = recipe.output.getItem().getFontRenderer(recipe.output); + if(font == null) font = fontRendererObj; + + itemRender.zLevel = 300.0F; + itemRender.renderItemAndEffectIntoGUI(font, this.mc.getTextureManager(), recipe.output, guiLeft + xSize / 2 - 8, guiTop - 20); + itemRender.renderItemOverlayIntoGUI(font, this.mc.getTextureManager(), recipe.output, guiLeft + xSize / 2 - 8, guiTop - 20, recipe.output.stackSize > 1 ? (recipe.output.stackSize + "") : null); + itemRender.zLevel = 0.0F; + + GL11.glDisable(GL11.GL_LIGHTING); + + this.mc.getTextureManager().bindTexture(texture); + this.zLevel = 300.0F; + + GL11.glDisable(GL11.GL_DEPTH_TEST); + String label = recipe.output.getDisplayName(); + font.drawString(label, guiLeft + (xSize - font.getStringWidth(label)) / 2, guiTop - 30, 0xffffff); + + } else { + + for(int l = 0; l < 3; l++) { + for(int r = 0; r < 3; r++) { + drawTexturedModalRect(guiLeft + 7 + r * 27, guiTop + 7 + l * 27, 142, 16, 16, 16); + } + } + } + } + + @Override + protected void keyTyped(char c, int key) { + if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + this.mc.thePlayer.closeScreen(); + } + } + + @Override public boolean doesGuiPauseGame() { return false; } +} diff --git a/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java b/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java index eca9aac34..28d02f393 100644 --- a/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java @@ -197,15 +197,15 @@ public class AmmoPressRecipes extends SerializableRecipe { recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G12_BP, 6), null, nugget.copy(6), null, - null, smokeless, null, + null, smokeful, null, null, bpShell, null)); recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G12_BP_MAGNUM, 6), null, nugget.copy(8), null, - null, smokeless, null, + null, smokeful, null, null, bpShell, null)); recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G12_BP_SLUG, 6), null, lead, null, - null, smokeless, null, + null, smokeful, null, null, bpShell, null)); recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G12, 6), diff --git a/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java b/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java index b91856a80..fcbfb1934 100644 --- a/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java @@ -4,15 +4,22 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import static com.hbm.inventory.OreDictManager.*; + import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemEnums.EnumSecretType; +import com.hbm.items.food.ItemConserve.EnumFoodType; import com.hbm.items.ModItems; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class PedestalRecipes extends SerializableRecipe { @@ -23,9 +30,47 @@ public class PedestalRecipes extends SerializableRecipe { public void registerDefaults() { recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_light_revolver_dani), - null, null, null, - null, new ComparableStack(ModItems.gun_light_revolver), null, - null, null, null)); + null, new OreDictStack(PB.plate()), null, + new OreDictStack(GOLD.plate()), new ComparableStack(ModItems.gun_light_revolver), new OreDictStack(GOLD.plate()), + null, new OreDictStack(PB.plate()), null)); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_maresleg_broken), + new ComparableStack(ModBlocks.barbed_wire), new OreDictStack(WEAPONSTEEL.plate()), new ComparableStack(ModBlocks.barbed_wire), + new OreDictStack(WEAPONSTEEL.plate()), new ComparableStack(ModItems.gun_maresleg), new OreDictStack(WEAPONSTEEL.plate()), + new ComparableStack(ModBlocks.barbed_wire), new OreDictStack(WEAPONSTEEL.plate()), new ComparableStack(ModBlocks.barbed_wire))); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_heavy_revolver_lilmac), + new OreDictStack(WEAPONSTEEL.plate()), new OreDictStack(DIAMOND.gem()), new OreDictStack(WEAPONSTEEL.plate()), + new ComparableStack(ModItems.powder_magic), new ComparableStack(ModItems.gun_heavy_revolver), null, + null, new OreDictStack(BONE.grip()), new ComparableStack(Items.apple, 3))); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_heavy_revolver_protege), + new ComparableStack(ModBlocks.chain, 16), new OreDictStack(CINNABAR.gem()), new ComparableStack(ModBlocks.chain, 16), + new ComparableStack(ModItems.scrap_nuclear), new ComparableStack(ModItems.gun_heavy_revolver), new ComparableStack(ModItems.scrap_nuclear), + new ComparableStack(ModBlocks.chain, 16), new OreDictStack(CINNABAR.gem()), new ComparableStack(ModBlocks.chain, 16))); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_flamer_daybreaker), + new OreDictStack(GOLD.plateCast()), new ComparableStack(ModItems.canned_conserve, 1, EnumFoodType.JIZZ), new OreDictStack(GOLD.plateCast()), + new OreDictStack(P_WHITE.ingot()), new ComparableStack(ModItems.gun_flamer), new OreDictStack(P_WHITE.ingot()), + new OreDictStack(GOLD.plateCast()), new ComparableStack(ModItems.stick_dynamite), new OreDictStack(GOLD.plateCast())) + .extra(PedestalExtraCondition.SUN)); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_autoshotgun_sexy), + new ComparableStack(ModItems.bolt_spike, 16), new OreDictStack(STAR.ingot(), 4), new ComparableStack(ModItems.bolt_spike, 16), + new ComparableStack(ModItems.card_qos), new ComparableStack(ModItems.gun_autoshotgun), new ComparableStack(ModItems.card_aos), + new ComparableStack(ModItems.bolt_spike, 16), new OreDictStack(STAR.ingot(), 4), new ComparableStack(ModItems.bolt_spike, 16))); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_minigun_lacunae), + null, new ComparableStack(ModItems.powder_magic, 4), null, + new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), new ComparableStack(ModItems.gun_minigun), new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), + null, new ComparableStack(ModItems.powder_magic, 4), null) + .extra(PedestalExtraCondition.FULL_MOON)); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_folly), + new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), new ComparableStack(ModItems.item_secret, 2, EnumSecretType.CONTROLLER), new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), + new OreDictStack(BSCCO.ingot(), 16), new OreDictStack(STAR.block(), 64), new OreDictStack(BSCCO.ingot(), 16), + new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), new ComparableStack(ModItems.item_secret, 2, EnumSecretType.CONTROLLER), new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL)) + .extra(PedestalExtraCondition.FULL_MOON)); } @Override @@ -60,7 +105,12 @@ public class PedestalRecipes extends SerializableRecipe { } } - this.recipes.add(new PedestalRecipe(output, input)); + PedestalRecipe rec = new PedestalRecipe(output, input); + if(obj.has("extra")) { + rec.extra = PedestalExtraCondition.valueOf(obj.get("extra").getAsString()); + } + + this.recipes.add(rec); } @Override @@ -79,15 +129,27 @@ public class PedestalRecipes extends SerializableRecipe { } } writer.endArray(); + + writer.name("extra").value(rec.extra.name()); + } + + public static enum PedestalExtraCondition { + NONE, FULL_MOON, NEW_MOON, SUN } public static class PedestalRecipe { public ItemStack output; public AStack[] input; + public PedestalExtraCondition extra = PedestalExtraCondition.NONE; public PedestalRecipe(ItemStack output, AStack... input) { this.output = output; this.input = input; } + + public PedestalRecipe extra(PedestalExtraCondition extra) { + this.extra = extra; + return this; + } } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index dc05a705e..122914125 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -5219,7 +5219,7 @@ public class ModItems { book_lore = new ItemBookLore().setUnlocalizedName("book_lore").setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_pages"); holotape_image = new ItemHolotapeImage().setUnlocalizedName("holotape_image").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape"); holotape_damaged = new Item().setUnlocalizedName("holotape_damaged").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape_damaged"); - clay_tablet = new Item().setUnlocalizedName("clay_tablet").setCreativeTab(null).setTextureName(RefStrings.MODID + ":clay_tablet"); + clay_tablet = new ItemClayTablet().setUnlocalizedName("clay_tablet").setCreativeTab(null).setTextureName(RefStrings.MODID + ":clay_tablet"); polaroid = new ItemPolaroid().setUnlocalizedName("polaroid").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":polaroid_" + MainRegistry.polaroidID); glitch = new ItemGlitch().setUnlocalizedName("glitch").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glitch_" + MainRegistry.polaroidID); diff --git a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java index 4967059fc..415da3813 100644 --- a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java +++ b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.extprop.HbmPlayerProps; import com.hbm.render.model.ModelArmorTrenchmaster; -import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -12,7 +11,6 @@ import net.minecraft.client.model.ModelBiped; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.event.entity.living.LivingAttackEvent; import net.minecraftforge.event.entity.living.LivingHurtEvent; @@ -44,8 +42,8 @@ public class ArmorTrenchmaster extends ArmorFSB { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { super.addInformation(stack, player, list, ext); - list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.fasterReload")); - list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.moreAmmo")); + //list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.fasterReload")); + //list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.moreAmmo")); } @Override diff --git a/src/main/java/com/hbm/items/special/ItemClayTablet.java b/src/main/java/com/hbm/items/special/ItemClayTablet.java new file mode 100644 index 000000000..c41a8a1d9 --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemClayTablet.java @@ -0,0 +1,39 @@ +package com.hbm.items.special; + +import com.hbm.inventory.gui.GUIScreenClayTablet; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IGUIProvider; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class ItemClayTablet extends Item implements IGUIProvider { + + public ItemClayTablet() { + this.setMaxDamage(0); + this.setMaxStackSize(1); + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + if(!world.isRemote && !stack.hasTagCompound()) { + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setLong("tabletSeed", player.getRNG().nextLong()); + } + if(world.isRemote) player.openGui(MainRegistry.instance, 0, world, 0, 0, 0); + return stack; + } + + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } + + @Override @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIScreenClayTablet(); + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java index 5ad1fbd0d..b1aa0cf24 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java @@ -102,7 +102,7 @@ public class XFactory12ga { .anim(LAMBDA_MARESLEG_SHORT_ANIMS).orchestra(Orchestras.ORCHESTRA_MARESLEG_AKIMBO), new GunConfig().dura(600).draw(5).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(12F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F) + .dmg(16F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F) .mag(new MagazineSingleReload(1, 6).addConfigs(all)) .offset(0.75, -0.0625, -0.1875) .setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG)) diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index e69a50c59..699707de6 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -852,7 +852,8 @@ public class ModEventHandler { if(servo != null && servo.getItem() == ModItems.ballistic_gauntlet) { - BulletConfiguration firedConfig = null; + //TODO: fix this shit + /*BulletConfig firedConfig = null; for(Integer config : HbmCollection.g12) { BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(config); @@ -876,7 +877,7 @@ public class ModEventHandler { } player.worldObj.playSoundAtEntity(player, "hbm:weapon.shotgunShoot", 1.0F, 1.0F); - } + }*/ } } } diff --git a/src/main/java/com/hbm/render/util/RenderInfoSystem.java b/src/main/java/com/hbm/render/util/RenderInfoSystem.java index 28a775097..773c5e618 100644 --- a/src/main/java/com/hbm/render/util/RenderInfoSystem.java +++ b/src/main/java/com/hbm/render/util/RenderInfoSystem.java @@ -51,7 +51,7 @@ public class RenderInfoSystem { return; //this.messages.put(-666, new InfoEntry(Minecraft.getMinecraft().theWorld.getCelestialAngle(0) + "", 666_666)); - //this.messages.put(-665, new InfoEntry(Minecraft.getMinecraft().theWorld.getCurrentMoonPhaseFactor() + "", 666_666)); + //this.messages.put(-665, new InfoEntry(Minecraft.getMinecraft().theWorld.getMoonPhase() + "", 666_666)); if(this.messages.isEmpty()) return; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 08c9f7719..57070d426 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1782,6 +1782,7 @@ item.cladding_lead.name=Bleibeschläge item.cladding_obsidian.name=Obsidianhaut item.cladding_paint.name=Bleifarbe item.cladding_rubber.name=Gummibeschlag +item.clay_tablet.name=Tontafel item.clip_bf.name=BF-Geschosse im Doppelpack item.clip_bolt_action.name=12x74 Brenneke-Patronenbox item.clip_cryolator.name=Großer Kryogentank diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c74efefc5..0acb14598 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2555,6 +2555,7 @@ item.cladding_lead.name=Lead Cladding item.cladding_obsidian.name=Obsidian Skin item.cladding_paint.name=Lead Paint item.cladding_rubber.name=Rubber Cladding +item.clay_tablet.name=Clay Tablet item.clip_bf.name=BF-Shell Double Pack item.clip_bolt_action.name=Box of 12x74 Slugs item.clip_cryolator.name=Tank of Cryolator Fuel diff --git a/src/main/resources/assets/hbm/textures/gui/guide_pedestal.png b/src/main/resources/assets/hbm/textures/gui/guide_pedestal.png index 57c5c39bcedd3f1180161e520413e415c32ccfe0..1e939e6c6182f7d4223b8f526f8194aa279c88f6 100644 GIT binary patch delta 3718 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