From 17de40d7b2549d429f7a3196fda2b00506b2f159 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 9 May 2025 14:52:10 +0200 Subject: [PATCH] kill all zebras --- changelog | 1 + .../standard/BlockMutatorBalefire.java | 23 +++++ .../weapon/sedna/factory/GunFactory.java | 3 +- .../sedna/factory/GunFactoryClient.java | 1 + .../weapon/sedna/factory/LegoClient.java | 13 +++ .../sedna/factory/XFactoryCatapult.java | 33 ++++++- .../java/com/hbm/main/ResourceManager.java | 1 + .../item/weapon/sedna/ItemRenderFatMan.java | 74 +++++++++++++- .../hbm/render/util/RenderMiscEffects.java | 93 +++++++++--------- src/main/resources/assets/hbm/lang/de_DE.lang | 4 + src/main/resources/assets/hbm/lang/en_US.lang | 4 + .../textures/items/ammo_standard.ct_hook.png | Bin 191 -> 239 bytes .../items/ammo_standard.ct_mortar.png | Bin 195 -> 314 bytes .../items/ammo_standard.ct_mortar_charge.png | Bin 0 -> 465 bytes .../items/ammo_standard.ct_rocket.png | Bin 178 -> 175 bytes .../items/ammo_standard.nuke_balefire.png | Bin 0 -> 562 bytes .../assets/hbm/textures/items/biomass_alt.png | Bin 525 -> 0 bytes .../assets/hbm/textures/items/gun_bf_ammo.png | Bin 549 -> 0 bytes .../hbm/textures/items/gun_cryolator_ammo.png | Bin 249 -> 0 bytes .../textures/models/weapons/benelli_tex.png | Bin 1499 -> 0 bytes .../models/weapons/fatman_balefire.png | Bin 900 -> 873 bytes .../hbm/textures/models/weapons/pch.png | Bin 333 -> 0 bytes 22 files changed, 194 insertions(+), 56 deletions(-) create mode 100644 src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBalefire.java create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.ct_mortar_charge.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_balefire.png delete mode 100755 src/main/resources/assets/hbm/textures/items/biomass_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_bf_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_cryolator_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/benelli_tex.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/pch.png diff --git a/changelog b/changelog index 6c02bce7b..d62a70591 100644 --- a/changelog +++ b/changelog @@ -12,6 +12,7 @@ * This means that reading the fill state of multiple batteries over the same channel should result the combined fill state of all batteries * Halved base spread of the .22 SMG * Certain secret guns now have a proper way of being obtained +* Demolition mini nukes now create fire again ## Fixed * Fixed RoR controller having the wrong recipe \ No newline at end of file diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBalefire.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBalefire.java new file mode 100644 index 000000000..4560852e0 --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBalefire.java @@ -0,0 +1,23 @@ +package com.hbm.explosion.vanillant.standard; + +import com.hbm.blocks.ModBlocks; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IBlockMutator; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; + +public class BlockMutatorBalefire implements IBlockMutator { + + @Override public void mutatePre(ExplosionVNT explosion, Block block, int meta, int x, int y, int z) { } + + @Override + public void mutatePost(ExplosionVNT explosion, int x, int y, int z) { + + Block block = explosion.world.getBlock(x, y, z); + Block block1 = explosion.world.getBlock(x, y - 1, z); + if(block.getMaterial() == Material.air && block1.func_149730_j() && explosion.world.rand.nextInt(3) == 0) { + explosion.world.setBlock(x, y, z, ModBlocks.balefire); + } + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java index f12233377..98b4f09e8 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java @@ -101,6 +101,7 @@ public class GunFactory { R762_HE, BMG50_HE, G10_EXPLOSIVE, P45_SP, P45_FMJ, P45_JHP, P45_AP, P45_DU, CT_HOOK, CT_MORTAR, CT_MORTAR_CHARGE, + NUKE_BALEFIRE, //ONLY ADD NEW ENTRIES AT THE BOTTOM TO AVOID SHIFTING! ; @@ -126,7 +127,7 @@ public class GunFactory { CAPACITOR, CAPACITOR_OVERCHARGE, CAPACITOR_IR, TAU_URANIUM, COIL_TUNGSTEN, COIL_FERROURANIUM, - NUKE_STANDARD, NUKE_DEMO, NUKE_HIGH, NUKE_TOTS, NUKE_HIVE, + NUKE_STANDARD, NUKE_DEMO, NUKE_HIGH, NUKE_TOTS, NUKE_HIVE, NUKE_BALEFIRE, CT_HOOK, CT_MORTAR, CT_MORTAR_CHARGE, }; 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 e568369a9..4576cf7a0 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 @@ -203,6 +203,7 @@ public class GunFactoryClient { setRendererBulk(LegoClient.RENDER_NUKE, nuke_standard, nuke_demo, nuke_high); nuke_tots.setRenderer(LegoClient.RENDER_GRENADE); nuke_hive.setRenderer(LegoClient.RENDER_HIVE); + nuke_balefire.setRenderer(LegoClient.RENDER_NUKE_BALEFIRE); setRendererBulkBeam(LegoClient.RENDER_LIGHTNING, energy_tesla, energy_tesla_overcharge, energy_tesla_ir); setRendererBulkBeam(LegoClient.RENDER_LIGHTNING_SUB, energy_tesla_ir_sub); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java index f3d2e68a5..ac476aa60 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java @@ -12,6 +12,7 @@ import com.hbm.items.weapon.sedna.hud.HUDComponentDurabilityBar; import com.hbm.items.weapon.sedna.impl.ItemGunChargeThrower; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; +import com.hbm.render.item.weapon.sedna.ItemRenderFatMan; import com.hbm.render.tileentity.RenderArcFurnace; import com.hbm.render.util.BeamPronter; import com.hbm.render.util.BeamPronter.EnumBeamType; @@ -435,6 +436,18 @@ public class LegoClient { GL11.glPopMatrix(); }; + public static BiConsumer RENDER_NUKE_BALEFIRE = (bullet, interp) -> { + + GL11.glPushMatrix(); + GL11.glScalef(0.125F, 0.125F, 0.125F); + GL11.glRotated(-90, 0, 1, 0); + GL11.glTranslatef(0, -1, 1F); + GL11.glShadeModel(GL11.GL_SMOOTH); + ItemRenderFatMan.renderBalefire(interp); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + }; + public static BiConsumer RENDER_HIVE = (bullet, interp) -> { GL11.glPushMatrix(); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java index 0617d33b7..42d957506 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java @@ -8,6 +8,8 @@ import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorBalefire; +import com.hbm.explosion.vanillant.standard.BlockMutatorFire; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; @@ -44,6 +46,7 @@ public class XFactoryCatapult { public static BulletConfig nuke_high; public static BulletConfig nuke_tots; public static BulletConfig nuke_hive; + public static BulletConfig nuke_balefire; public static BiConsumer LAMBDA_NUKE_STANDARD = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return; @@ -64,9 +67,9 @@ public class XFactoryCatapult { if(bullet.isDead) return; bullet.setDead(); - ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 10); + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 15); vnt.setBlockAllocator(new BlockAllocatorStandard(64)); - vnt.setBlockProcessor(new BlockProcessorStandard()); + vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorFire())); vnt.setEntityProcessor(new EntityProcessorCrossSmooth(2, bullet.damage).withRangeMod(1.5F)); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.explode(); @@ -83,6 +86,27 @@ public class XFactoryCatapult { spawnMush(bullet, mop); }; + public static BiConsumer LAMBDA_NUKE_BALEFIRE = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return; + if(bullet.isDead) return; + bullet.setDead(); + + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 10); + vnt.setBlockAllocator(new BlockAllocatorStandard(64)); + vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorBalefire())); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(2, bullet.damage).withRangeMod(1.5F)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.explode(); + + incrementRad(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 1.5F); + + bullet.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "muke"); + data.setBoolean("balefire", true); + PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord), new TargetPoint(bullet.dimension, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 250)); + }; + public static void incrementRad(World world, double posX, double posY, double posZ, float mult) { for(int i = -2; i <= 2; i++) { for(int j = -2; j <= 2; j++) { if(Math.abs(i) + Math.abs(j) < 4) { @@ -136,12 +160,13 @@ public class XFactoryCatapult { nuke_high = new BulletConfig().setItem(EnumAmmo.NUKE_HIGH).setLife(300).setVel(3F).setGrav(0.025F).setOnImpact(LAMBDA_NUKE_HIGH); nuke_tots = new BulletConfig().setItem(EnumAmmo.NUKE_TOTS).setProjectiles(8).setLife(300).setVel(3F).setGrav(0.025F).setSpread(0.1F).setDamage(0.35F).setOnImpact(LAMBDA_NUKE_TINYTOT); nuke_hive = new BulletConfig().setItem(EnumAmmo.NUKE_HIVE).setProjectiles(12).setLife(300).setVel(1F).setGrav(0.025F).setSpread(0.15F).setDamage(0.25F).setOnImpact(LAMBDA_NUKE_HIVE); + nuke_balefire = new BulletConfig().setItem(EnumAmmo.NUKE_BALEFIRE).setDamage(2.5F).setLife(300).setVel(3F).setGrav(0.025F).setOnImpact(LAMBDA_NUKE_BALEFIRE); ModItems.gun_fatman = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() - .dura(300).draw(20).inspect(30).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false) + .dura(300).draw(20).inspect(30).reloadChangeType(true).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false) .rec(new Receiver(0) .dmg(100F).spreadHipfire(0F).delay(10).reload(57).jam(40).sound("hbm:weapon.fire.fatman", 1.0F, 1.0F) - .mag(new MagazineSingleReload(0, 1).addConfigs(nuke_standard, nuke_demo, nuke_high, nuke_tots, nuke_hive)) + .mag(new MagazineSingleReload(0, 1).addConfigs(nuke_standard, nuke_demo, nuke_high, nuke_tots, nuke_hive, nuke_balefire)) .offset(1, -0.0625 * 1.5, -0.1875D).offsetScoped(1, -0.0625 * 1.5, -0.125D) .setupStandardFire().recoil(LAMBDA_RECOIL_FATMAN)) .setupStandardConfiguration() diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 7fbac54ce..07de3e21c 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1011,6 +1011,7 @@ public class ResourceManager { public static final ResourceLocation tau_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tau.png"); public static final ResourceLocation fatman_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/fatman.png"); public static final ResourceLocation fatman_mininuke_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/fatman_mininuke.png"); + public static final ResourceLocation fatman_balefire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/fatman_balefire.png"); public static final ResourceLocation lasrifle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lasrifle.png"); public static final ResourceLocation lasrifle_mods_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lasrifle_mods.png"); public static final ResourceLocation hangman_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/hangman.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java index 100cb62e9..67ad4ba90 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java @@ -3,8 +3,10 @@ package com.hbm.render.item.weapon.sedna; import org.lwjgl.opengl.GL11; import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.factory.XFactoryCatapult; import com.hbm.main.ResourceManager; import com.hbm.render.anim.HbmAnimations; +import com.hbm.render.util.RenderMiscEffects; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; @@ -34,7 +36,7 @@ public class ItemRenderFatMan extends ItemRenderWeaponBase { @Override public void renderFirstPerson(ItemStack stack) { - + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_tex); double scale = 0.5D; @@ -81,10 +83,9 @@ public class ItemRenderFatMan extends ItemRenderWeaponBase { GL11.glPopMatrix(); if(isLoaded || nuke[0] != 0 || nuke[1] != 0 || nuke[2] != 0) { - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_mininuke_tex); GL11.glPushMatrix(); GL11.glTranslated(nuke[0], nuke[1], nuke[2]); - ResourceManager.fatman.renderPart("MiniNuke"); + renderNuke(gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getType(stack, null)); GL11.glPopMatrix(); } @@ -132,8 +133,71 @@ public class ItemRenderFatMan extends ItemRenderWeaponBase { ResourceManager.fatman.renderPart("Lid"); if(!isLoaded) GL11.glTranslated(0, 0, 3); ResourceManager.fatman.renderPart("Piston"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_mininuke_tex); - if(isLoaded) ResourceManager.fatman.renderPart("MiniNuke"); + if(isLoaded) renderNuke(gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getType(stack, null)); GL11.glShadeModel(GL11.GL_FLAT); } + + public void renderNuke(Object type) { + if(type == XFactoryCatapult.nuke_balefire) { + renderBalefire(interp); + } else { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_mininuke_tex); + ResourceManager.fatman.renderPart("MiniNuke"); + } + } + + public static void renderBalefire(float interp) { + + Minecraft mc = Minecraft.getMinecraft(); + mc.renderEngine.bindTexture(ResourceManager.fatman_balefire_tex); + ResourceManager.fatman.renderPart("MiniNuke"); + mc.renderEngine.bindTexture(RenderMiscEffects.glintBF); + mc.entityRenderer.disableLightmap(interp); + + float scale = 2F; + float r = 0F; + float g = 0.8F; + float b = 0.15F; + float speed = -6; + float glintColor = 0.76F; + int layers = 3; + + GL11.glPushMatrix(); + float offset = mc.thePlayer.ticksExisted + interp; + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(1F, 1F, 1F, 1F); + GL11.glDepthFunc(GL11.GL_EQUAL); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); + GL11.glDepthMask(false); + + for(int k = 0; k < layers; ++k) { + + GL11.glColor4f(r * glintColor, g * glintColor, b * glintColor, 1.0F); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + + float movement = offset * (0.001F + (float) k * 0.003F) * speed; + + GL11.glScalef(scale, scale, scale); + GL11.glRotatef(30.0F - k * 60.0F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(0F, movement, 0F); + + GL11.glMatrixMode(GL11.GL_MODELVIEW); + + ResourceManager.fatman.renderPart("MiniNuke"); + } + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glDepthMask(true); + GL11.glLoadIdentity(); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthFunc(GL11.GL_LEQUAL); + GL11.glPopMatrix(); + + mc.entityRenderer.enableLightmap(interp); + } } diff --git a/src/main/java/com/hbm/render/util/RenderMiscEffects.java b/src/main/java/com/hbm/render/util/RenderMiscEffects.java index 037b7e45e..7e944e084 100644 --- a/src/main/java/com/hbm/render/util/RenderMiscEffects.java +++ b/src/main/java/com/hbm/render/util/RenderMiscEffects.java @@ -10,60 +10,61 @@ import net.minecraft.world.World; import net.minecraftforge.client.model.IModelCustom; public class RenderMiscEffects { - + public static ResourceLocation glint = new ResourceLocation(RefStrings.MODID + ":textures/misc/glint.png"); - + public static ResourceLocation glintBF = new ResourceLocation(RefStrings.MODID + ":textures/misc/glintBF.png"); + public static void renderClassicGlint(World world, float interpol, IModelCustom model, String part, float colorMod, float r, float g, float b, float speed, float scale) { - GL11.glPushMatrix(); - float offset = Minecraft.getMinecraft().thePlayer.ticksExisted + interpol; - GL11.glEnable(GL11.GL_BLEND); - float color = colorMod; - GL11.glColor4f(color, color, color, 1.0F); - GL11.glDepthFunc(GL11.GL_EQUAL); - GL11.glDepthMask(false); + GL11.glPushMatrix(); + float offset = Minecraft.getMinecraft().thePlayer.ticksExisted + interpol; + GL11.glEnable(GL11.GL_BLEND); + float color = colorMod; + GL11.glColor4f(color, color, color, 1.0F); + GL11.glDepthFunc(GL11.GL_EQUAL); + GL11.glDepthMask(false); - for (int k = 0; k < 2; ++k) { - - GL11.glDisable(GL11.GL_LIGHTING); - - float glintColor = 0.76F; - - GL11.glColor4f(r * glintColor, g * glintColor, b * glintColor, 1.0F); - GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); - GL11.glMatrixMode(GL11.GL_TEXTURE); - GL11.glLoadIdentity(); - - float movement = offset * (0.001F + (float)k * 0.003F) * speed; - - GL11.glScalef(scale, scale, scale); - GL11.glRotatef(30.0F - (float)k * 60.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.0F, movement, 0.0F); - - GL11.glMatrixMode(GL11.GL_MODELVIEW); - - if("all".equals(part)) - model.renderAll(); - else - model.renderPart(part); - } + for(int k = 0; k < 2; ++k) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glMatrixMode(GL11.GL_TEXTURE); - GL11.glDepthMask(true); - GL11.glLoadIdentity(); - GL11.glMatrixMode(GL11.GL_MODELVIEW); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDepthFunc(GL11.GL_LEQUAL); - GL11.glPopMatrix(); - } + GL11.glDisable(GL11.GL_LIGHTING); + + float glintColor = 0.76F; + + GL11.glColor4f(r * glintColor, g * glintColor, b * glintColor, 1.0F); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + + float movement = offset * (0.001F + (float) k * 0.003F) * speed; + + GL11.glScalef(scale, scale, scale); + GL11.glRotatef(30.0F - (float) k * 60.0F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(0.0F, movement, 0.0F); + + GL11.glMatrixMode(GL11.GL_MODELVIEW); + + if("all".equals(part)) + model.renderAll(); + else + model.renderPart(part); + } + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glDepthMask(true); + GL11.glLoadIdentity(); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthFunc(GL11.GL_LEQUAL); + GL11.glPopMatrix(); + } public static void renderClassicGlint(World world, float interpol, IModelCustom model, String part, float r, float g, float b, float speed, float scale) { renderClassicGlint(world, interpol, model, part, 0.5F, r, g, b, speed, scale); - } + } public static void renderClassicGlint(World world, float interpol, IModelCustom model, String part) { - renderClassicGlint(world, interpol, model, part, 0.5F, 0.25F, 0.8F, 20.0F, 1F/3F); - } + renderClassicGlint(world, interpol, model, part, 0.5F, 0.25F, 0.8F, 20.0F, 1F / 3F); + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 5643c75cb..5c4eb045f 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1072,6 +1072,9 @@ item.ammo_standard.capacitor_ir.name=Capacitor (niedrige Wellenlänge) item.ammo_standard.capacitor_overcharge.name=Kondensator (Überladung) item.ammo_standard.coil_ferrouranium.name=Ferrourankugel item.ammo_standard.coil_tungsten.name=Wolframkugel +item.ammo_standard.ct_hook.name=Enterhaken +item.ammo_standard.ct_mortar.name=Sprengladung +item.ammo_standard.ct_mortar_charge.name=Geballte Ladung item.ammo_standard.flame_balefire.name=Flammenwerferbrennstoff, Balefire item.ammo_standard.flame_diesel.name=Flammenwerferbrennstoff, Diesel item.ammo_standard.flame_gas.name=Flammenwerferbrennstoff, Gas @@ -2071,6 +2074,7 @@ item.gun_b92.name=§9B92 Energiepistole§r item.gun_b92_ammo.name=§9B92-Energiezelle§r item.gun_bolter.name=Boltergewehr item.gun_carbine.name=Karabiner +item.gun_charge_thrower.name=Ladungswerfer item.gun_chemthrower.name=Chemowerfer item.gun_coilgun.name=Gaußpistole item.gun_cryocannon.name=Kyro-Kanone diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 725b7c61a..8128b5cfb 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1797,6 +1797,9 @@ item.ammo_standard.capacitor_ir.name=Capacitor (Low Wavelength) item.ammo_standard.capacitor_overcharge.name=Capacitor (Overcharge) item.ammo_standard.coil_ferrouranium.name=Coilgun Ferrouranium Ball item.ammo_standard.coil_tungsten.name=Coilgun Tungsten Ball +item.ammo_standard.ct_hook.name=Grappling Hook +item.ammo_standard.ct_mortar.name=Demolition Charge +item.ammo_standard.ct_mortar_charge.name=Heavy Demolition Charge item.ammo_standard.flame_balefire.name=Flamer Fuel, Balefire item.ammo_standard.flame_diesel.name=Flamer Fuel, Diesel item.ammo_standard.flame_gas.name=Flamer Fuel, Gas @@ -2882,6 +2885,7 @@ item.gun_b92.name=§9B92 Energy Pistol§r item.gun_b92_ammo.name=§9B92 Energy Cell§r item.gun_bolter.name=Bolter item.gun_carbine.name=Carbine +item.gun_charge_thrower.name=Charge Thrower item.gun_chemthrower.name=Chemthrower item.gun_coilgun.name=Coilgun item.gun_congolake.name=Congo Lake diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.ct_hook.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.ct_hook.png index 3cd514abeaeff534a9dedaf49557269ff2554ddc..de59811d7857106f973fa8a773e1b90291646f04 100644 GIT binary patch delta 195 zcmV;!06hP{0q+5jG=HW^L_t(Ijm43%6~iD5M9-N-y=!_#(I^__MsZI~uTA78_&JV^ zahhDm6aOO#;NO{g#ZpQDK&=(3+Pw<^Fta$qEhOWc=tzcvvyhBY!N*)A!`%S@B7%9I zky5&!y}|plnFYxxrF6S_T@}o1a(C2Pu`J8w!<(SBzK@8&%sk-kP}TdL?7#6Kikx$t xNyZlRmWT*M1SB_ZSa2nIBj)5#-K(iO?q)fJ+rG z(OTkBn$um002ovPDHLkV1oAi BJUjpZ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.ct_mortar.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.ct_mortar.png index f123c98ed5fe0f8d52c58a008a4ec4a8996d6569..148c63268cc23dfd8a9ebd7642be98efe45d57b6 100644 GIT binary patch delta 271 zcmV+q0r39A0lET^G=K3)L_t(IjjfR}Y63wNhQHk-1PoU4iUl!6PN49bG#1`K7|0nc zasmr4F<_a_VjByEP6xW*y06VkU zC5X>B8V~)@L;Laf@B>Bv@=m;i#k};7yJpM!eGRQ+Cs!jJAd7jKJrACIzy7RH)o6?; zHH`E1@r{TeB3OI>O{n;sx#(%naM;EaWN<9mi~a;1c*Uy2Ao3vT_WND_JR0g VzZXKwpa1{>00>D%PDHLkV1hH6e>4C9 delta 151 zcmV;I0BHZZ0>c52G=F+YL_t(Ijir*y6~G_}1TmFuX_U5|nUi^_;bX#4*>O-sOabTs zx*SxqVY@-H?d=Z0JGBD2qHtxL>unLhW0gU+5da9u$s{!xO(dHQTa$Ezb>?9LAj;2o zu$qjps=5~GGug1JZvCat5O>-eUA0-AudsX=1Bh(W*$Q@&Y0eMI zNJiK$eF5-sS7Ug5gx&Rm)l%Rtxf}EHv+T@6-qCAvh9Yc5z0(K0e`> ze7074%-Vj*M>0Y&Ukt$^L6EEV@EL-SHusrYn8sW4tYEvwvKnE#YSSO@GsD`$Cz26( z24^A-z|Hj)-kN7N=}2WA{rdQ1uKiMbGjM;rkK>(V82kZ&5NsmEdWS+^6~Kj!J!@=o z)I7d9y+SD!ieUkyvW{uSdWWbF)G6kR*6iYp>0g{&A|i+gp65l5Nh<4TrIc=z!OzbC zD5bQBXr+{P-RLomr0JlceoLaOv{53WgE(FP5%|7u0UF>NR%WJs9}o5z00000NkvXX Hu0mjfCq&D( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.ct_rocket.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.ct_rocket.png index 4c6ca590ae6120a14351682ed4dfa9d7180d5f91..a68e433f676844d9ef191826bf293ad3b5b463dd 100644 GIT binary patch delta 130 zcmV-|0Db?m0j~j&G<#-AL_t(Ijm^=)5x^h_1i;hED2>vtGxN(Z2_TqH_^HS0An=OV delta 133 zcmV;00DAwg0kQ#*G=6DGL_t(Ijjhqa4Zt7>1<;R^F&d+>nZ1<6w1Pm(i39&d0r;bs zd5XyFWXBBv06GX+vxY^4_TvH2MP5TyWIM1TstQ$gq2T~zVOwwsc!s0v9RGOQNovy( nlD@ZxqyY~p0ntm^$mhBM-AX$QShirh00000NkvXXu0mjfisU*H diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_balefire.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_balefire.png new file mode 100644 index 0000000000000000000000000000000000000000..1f4f3649019d06e027ace5fdd3afc84306c641a6 GIT binary patch literal 562 zcmV-20?qx2P)`)QG!9~zfLH!#Xf+!u-iXwKfiN?glwuz0&OB0g!u2ZXl`~yAH<=%5H zhkGt;dnoOi@dp!9HfuDj4T>d`S9iX*@S@SEY}U^I2dC%v%0OQSXD4^!p%;gAQ?g;s z{X)#D&BDEm5{tzoolXOgNF)pJ9yi_}Pa8ow}6yVXlx$u95wd!Q=1~pFB+XLSsuDiA2PCa&AOU zO^wpeeiRgJZ0b~KD0K|2pRw^Ooju*G+A9pYLR2@Z==v^vJ|DSU4psALc>PY+WD$!x zRVh-EG$tmi-;ACX=C1DByg4{ex0iFUriU&2Rb0>*O+;-bpAB z9#5U0zw(PH!Mc35C8xG07*qoM6N<$f;;{J AUH||9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/biomass_alt.png b/src/main/resources/assets/hbm/textures/items/biomass_alt.png deleted file mode 100755 index 3e0eee5eb63ef896f9d3eec141c7807bcd4f7ca7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 525 zcmV+o0`mQdP)PTLF#MZz`bLc~EelO?55f`S(jh?f)k z0|f87^42@`PK>Ul=t6IziwYbeD`aHo$Y7g}o%Lg58`EQ_v$u<6xH|JrpS$<{em@V- z1MdsxA=fN|2*PS6od&8;Y{F;~xLqoRWYKcR-UwD^5RNVf9w*!}6`UckN?~a*xg-gD zGmN+SxvzM6pU)wsAvmBy1Ti)**D6_7c&po)92sOU_K8%sNJr;I{9QJ7VkPb$su&&_MSHeR_1ABP9^S*uX83ND@dpD$wQt1VW$R$z z@1cJ|5xsqVywpAtC|tmI$;Ic540|m)qy1rCzld_g;B^Pshz)mQ6OTP0R@bPh`Oa4iAT2&EY&dO9g?!DBDTzsAvlK-nbZS932#U8w#I1rL zh!h7Got(r?Hy1&77jeqqq7I4E6cH99YzfY^}GV*-h-QO7BI*ucExxP!TKRPd~jTN#}VJ=+She;Am+Oz{` z`d_#QQkWi!ViLRt+qQpyaP{GWJhgZd%dByb!w8aibgAwv^WyUg`>ia6RGQ6xg{O}{ zu>E`*Aq3@eSy7MQ&dCEu0}7@^iHjtdMI*{kc35|}_*!XD{keguB`8|6%%7VFpx5i+ zIF8iKaD;RwONK)zCj*I|H<@A(*Nm|U{RnVCg2Md!)0 zS3rCm;<($hcS^E1Xp@?ZvUKePLbV9#aUz6>X$4N-xI!dk5XgY=`yz&6>^-DoxAIa` nC7v%)RgImI$J;%I^dI0CxDmE=yipnl00000NkvXXu0mjfyT$U; diff --git a/src/main/resources/assets/hbm/textures/items/gun_cryolator_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_cryolator_ammo.png deleted file mode 100644 index 11a1af457af0d5518c1552da72659b1eb12502e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfwY1Q6G=C`*Q{_<^bln`_;m-PP+;St2@Qu71ok>@zZp_4*qz1v@*Dfj z1Cak4=wllNldy`G;b5b0tZ3mtbc{!N13kflHa*N z@$iJg9o*+SS46yT$k)7Eb4O}Jze*%u66(f|Me diff --git a/src/main/resources/assets/hbm/textures/models/weapons/benelli_tex.png b/src/main/resources/assets/hbm/textures/models/weapons/benelli_tex.png deleted file mode 100644 index 2381fab496721827d1231c85015bf1e0710656fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1499 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 CXNcwi delta 861 zcmaFK*1|r)q~6-o#WAE}&fB?$*|!};j?eGXd@Ha+HTc>rhXo53UI-QfE#o+yB3R zj{^k`_XrE_t^4T|U;o?l`u+Ng)7RTiI@W3H(b4fqDL(V|>P?4!G(7g~ZuUk63#UoD)pKXL?4BpE@|4y^ms|HdoC{iJB*pH?6L{*nPQRn$ zR931?lXC0k9h{p*%xyorvK+j4DDsWgb(il(Z%uEoeQ$OLV*Uy1^mf+!i}%(RESVE| z_EKcz+7s3JbMsfR2<%bU>AG{%#nAV;LIwYdQ(7C1ZWbFMo^f6Zs{ zW0mtBcQxx(r8t#e1cnCCy^ydK(2+s)2CA_7sr`2=G9D{BvVlBW5Ai8b$s`ls==rPW zoPWM{Zrt_XyDh%_h<$&5YG+VZ?uK=**Ea1;+UfA8`d8h-Uv-KBi+}+nxM<3)9kWUr z<6}EHqP6zlEAv!vVsrP5y>9Jk+W5f3VDnUO6YqOVW1Ke>SY3Y*`@OSczhv&r-QGLP zxV~LIXxjMW@KJYh*?K`cw4Ut{GsSyg7ri;0=Lw#`|#GR*5@j#;$j{M4Ch zO3y1|uV;Upa8NL*?3vCM-r~NySFPWxHGWKRTsB?j^p?3BpIO>H(+!)oY?iU4q>P~6 z&K~W_vB`hp`ljwsdwcosmD>LEGjFPuOaDlBnQUtGY}U)-ollB-g=9GwhE***#`ErX zhQ|wce?HxP`T>iS6|ac8a>&hm`O_q$W(_zURP3EC^6T7`BR`Ip$b2#0$ky+3`@c=r f?ERX+VE@T4e^!gz>t)Yb1|aZs^>bP0l+XkK{CJ$? diff --git a/src/main/resources/assets/hbm/textures/models/weapons/pch.png b/src/main/resources/assets/hbm/textures/models/weapons/pch.png deleted file mode 100644 index 97b11c5afac2cc8b1f66e55612d6c15ea8c1e816..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 333 zcmV-T0kZyyP)rv}t1rtU-g^K5GXns^yR{ZtYaHuu1H4N3xpNNAIWRMb=mADVpp*h|!N9A8 zM$C+76V_S~eG4Qah)DcBFwZl*_we5TS^}*#lv4Zbfj=-%RTY4rC1{%F0m3;406R!@ z1I!F&-Wvxa$L7acbOUu=pPrKEB)