From 9e5724fc5fd44d7897e2467b1d356f864600010f Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 16 Nov 2024 20:55:43 +0100 Subject: [PATCH] rather death do us part than shit do its fart --- .../java/com/hbm/crafting/WeaponRecipes.java | 4 - src/main/java/com/hbm/items/ModItems.java | 4 +- .../weapon/sedna/factory/GunFactory.java | 1 + .../sedna/factory/GunFactoryClient.java | 5 ++ .../weapon/sedna/factory/Orchestras.java | 11 +++ .../sedna/factory/XFactoryAccelerator.java | 72 ++++++++++++++- src/main/java/com/hbm/main/ClientProxy.java | 1 - .../particle/ParticleBlackPowderSmoke.java | 2 +- .../item/weapon/sedna/ItemRenderCoilgun.java | 82 ++++++++++++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../assets/hbm/textures/items/ammo.png | Bin 16183 -> 16537 bytes .../items/ammo_standard.coil_ferrouranium.png | Bin 0 -> 264 bytes .../items/ammo_standard.coil_tungsten.png | Bin 0 -> 253 bytes 14 files changed, 177 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCoilgun.java create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.coil_ferrouranium.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.coil_tungsten.png diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 25ca2256a..ad269a269 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -182,10 +182,6 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_remington, 1), new Object[] { "PPM", "S L", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_1, 'S', KEY_SLAB, 'L', KEY_LOG }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_benelli), new Object[] { "HHP", "SSM", "AAP", 'H', ModItems.ingot_dura_steel, 'S', STEEL.pipe(), 'A', AL.pipe(), 'P', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lunatic_marksman), new Object[] { " GN", "SSM", " A", 'G', KEY_ANYPANE, 'N', ModItems.powder_nitan_mix, 'S', BIGMT.plate(), 'M', ModItems.mechanism_special, 'A', ANY_RESISTANTALLOY.plateCast() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_coilgun), new Object[] { "CCC", "SSM", " P", 'C', ModBlocks.capacitor_copper, 'S', BIGMT.plate(), 'M', ModItems.mechanism_special, 'P', ANY_PLASTIC.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_coilgun, 16, 0), new Object[] { " T ", "TST", " T ", 'T', W.ingot(), 'S', BIGMT.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_coilgun, 16, 1), new Object[] { " T ", "TST", " T ", 'T', FERRO.ingot(), 'S', BIGMT.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_coilgun, 16, 2), new Object[] { " T ", "TST", " T ", 'T', RUBBER.ingot(), 'S', ANY_PLASTIC.ingot() }); //TODO: somehow add more variance, 4 gauge is still missing CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_22lr, 16), new Object[] { ModItems.nitra_small }); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 144b20c57..d68300ff1 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1548,7 +1548,6 @@ public class ModItems { public static Item gun_b92; public static Item gun_b92_ammo; public static Item gun_b93; - public static Item gun_coilgun; public static Item gun_xvl1456; public static Item gun_xvl1456_ammo; public static Item gun_osipr; @@ -1623,6 +1622,7 @@ public class ModItems { public static Item gun_tau; public static Item gun_fatman; public static Item gun_lasrifle; + public static Item gun_coilgun; public static Item ammo_standard; @@ -6906,7 +6906,6 @@ public class ModItems { GameRegistry.registerItem(gun_bolt_action_green, gun_bolt_action_green.getUnlocalizedName()); GameRegistry.registerItem(gun_bolt_action_saturnite, gun_bolt_action_saturnite.getUnlocalizedName()); GameRegistry.registerItem(gun_mymy, gun_mymy.getUnlocalizedName()); - GameRegistry.registerItem(gun_coilgun, gun_coilgun.getUnlocalizedName()); GameRegistry.registerItem(gun_xvl1456, gun_xvl1456.getUnlocalizedName()); GameRegistry.registerItem(gun_osipr, gun_osipr.getUnlocalizedName()); GameRegistry.registerItem(gun_immolator, gun_immolator.getUnlocalizedName()); @@ -6972,6 +6971,7 @@ public class ModItems { GameRegistry.registerItem(gun_tau, gun_tau.getUnlocalizedName()); GameRegistry.registerItem(gun_fatman, gun_fatman.getUnlocalizedName()); GameRegistry.registerItem(gun_lasrifle, gun_lasrifle.getUnlocalizedName()); + GameRegistry.registerItem(gun_coilgun, gun_coilgun.getUnlocalizedName()); GameRegistry.registerItem(ammo_standard, ammo_standard.getUnlocalizedName()); 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 85a1d3e3a..b96378128 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 @@ -82,6 +82,7 @@ public class GunFactory { FLAME_DIESEL, FLAME_GAS, FLAME_NAPALM, FLAME_BALEFIRE, CAPACITOR, CAPACITOR_OVERCHARGE, CAPACITOR_BLACKLIGHTNING, TAU_URANIUM, + COIL_TUNGSTEN, COIL_FERROURANIUM, NUKE_STANDARD, NUKE_DEMO, NUKE_HIGH, NUKE_TOTS, NUKE_HIVE, M44_EQUESTRIAN, G12_EQUESTRIAN, BMG50_EQUESTRIAN } 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 037c3db81..915a4ba2d 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 @@ -67,6 +67,7 @@ public class GunFactoryClient { MinecraftForgeClient.registerItemRenderer(ModItems.gun_tau, new ItemRenderTau()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_fatman, new ItemRenderFatMan()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_lasrifle, new ItemRenderLasrifle()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_coilgun, new ItemRenderCoilgun()); //PROJECTILES ammo_debug.setRenderer(LegoClient.RENDER_STANDARD_BULLET); ammo_debug_buckshot.setRenderer(LegoClient.RENDER_STANDARD_BULLET); @@ -146,6 +147,9 @@ public class GunFactoryClient { setRendererBulkBeam(LegoClient.RENDER_TAU, tau_uranium); setRendererBulkBeam(LegoClient.RENDER_TAU_CHARGE, tau_uranium_charge); setRendererBulkBeam(LegoClient.RENDER_LASER, energy_las, energy_las_overcharge); + + setRendererBulk(LegoClient.RENDER_AP_BULLET, coil_tungsten, coil_ferrouranium); + //HUDS ((ItemGunBaseNT) ModItems.gun_debug) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_pepperbox) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); @@ -180,6 +184,7 @@ public class GunFactoryClient { ((ItemGunBaseNT) ModItems.gun_tau) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_fatman) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_lasrifle) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_coilgun) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_light_revolver_dani) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY_MIRROR, LegoClient.HUD_COMPONENT_AMMO_MIRROR); ((ItemGunBaseNT) ModItems.gun_light_revolver_dani) .getConfig(null, 1).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 e44256000..5483e4a68 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 @@ -1054,4 +1054,15 @@ public class Orchestras { if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); } }; + + public static BiConsumer ORCHESTRA_COILGUN = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.RELOAD) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.coilgunReload", 1F, 1F); + } + }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java index 7ceff91f2..34653bd18 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java @@ -2,6 +2,7 @@ package com.hbm.items.weapon.sedna.factory; import java.util.function.BiConsumer; import java.util.function.BiFunction; +import java.util.function.Consumer; import com.hbm.entity.projectile.EntityBulletBeamBase; import com.hbm.items.ModItems; @@ -14,13 +15,19 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.weapon.sedna.mags.MagazineBelt; +import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; +import com.hbm.main.MainRegistry; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; import com.hbm.render.anim.HbmAnimations.AnimType; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; public class XFactoryAccelerator { @@ -29,6 +36,46 @@ public class XFactoryAccelerator { public static BulletConfig tau_uranium; public static BulletConfig tau_uranium_charge; + + public static BulletConfig coil_tungsten; + public static BulletConfig coil_ferrouranium; + + public static Consumer LAMBDA_UPDATE_TUNGSTEN = (entity) -> {breakInPath(entity, 1.25F); }; + public static Consumer LAMBDA_UPDATE_FERRO = (entity) -> { breakInPath(entity, 2.5F); }; + + public static void breakInPath(Entity entity, float threshold) { + + Vec3 vec = Vec3.createVectorHelper(entity.posX - entity.prevPosX, entity.posY - entity.prevPosY, entity.posZ - entity.prevPosZ); + double motion = Math.max(vec.lengthVector(), 0.1); + vec = vec.normalize(); + + for(double d = 0; d < motion; d += 0.5) { + + double dX = entity.posX - vec.xCoord * d; + double dY = entity.posY - vec.yCoord * d; + double dZ = entity.posZ - vec.zCoord * d; + + if(entity.worldObj.isRemote) { + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setString("type", "vanillaExt"); + nbt.setString("mode", "fireworks"); + nbt.setDouble("posX", dX); + nbt.setDouble("posY", dY); + nbt.setDouble("posZ", dZ); + MainRegistry.proxy.effectNT(nbt); + + } else { + int x = (int) Math.floor(dX); + int y = (int) Math.floor(dY); + int z = (int) Math.floor(dZ); + Block b = entity.worldObj.getBlock(x, y, z); + float hardness = b.getBlockHardness(entity.worldObj, x, y, z); + if(b.getMaterial() != Material.air && hardness >= 0 && hardness < threshold) { + entity.worldObj.func_147480_a(x, y, z, false); + } + } + } + } public static void init() { @@ -36,6 +83,11 @@ public class XFactoryAccelerator { .setOnBeamImpact(BulletConfig.LAMBDA_BEAM_HIT); tau_uranium_charge = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloutByPen(false).setSpectral(true) .setOnBeamImpact(BulletConfig.LAMBDA_BEAM_HIT); + + coil_tungsten = new BulletConfig().setItem(EnumAmmo.COIL_TUNGSTEN).setVel(7.5F).setLife(50).setDoesPenetrate(true).setDamageFalloutByPen(false).setSpectral(true) + .setOnUpdate(LAMBDA_UPDATE_TUNGSTEN); + coil_ferrouranium = new BulletConfig().setItem(EnumAmmo.COIL_FERROURANIUM).setVel(7.5F).setLife(50).setDoesPenetrate(true).setDamageFalloutByPen(false).setSpectral(true) + .setOnUpdate(LAMBDA_UPDATE_FERRO); tauChargeMag.addConfigs(tau_uranium_charge); @@ -54,6 +106,17 @@ public class XFactoryAccelerator { .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) .anim(LAMBDA_TAU_ANIMS).orchestra(Orchestras.ORCHESTRA_TAU) ).setUnlocalizedName("gun_tau"); + + ModItems.gun_coilgun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(400).draw(5).inspect(39).crosshair(Crosshair.L_CIRCUMFLEX) + .rec(new Receiver(0) + .dmg(15F).delay(5).reload(20).jam(33).sound("hbm:weapon.coilgunShoot", 1.0F, 1.0F) + .mag(new MagazineSingleReload(0, 1).addConfigs(coil_tungsten, coil_ferrouranium)) + .offset(0.75, -0.0625, -0.1875D) + .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardConfiguration() + .anim(LAMBDA_COILGUN_ANIMS).orchestra(Orchestras.ORCHESTRA_COILGUN) + ).setUnlocalizedName("gun_coilgun"); } public static BiConsumer LAMBDA_TAU_PRIMARY_RELEASE = (stack, ctx) -> { @@ -113,11 +176,18 @@ public class XFactoryAccelerator { case CYCLE_DRY: return new BusAnimation(); case INSPECT: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(2, 0, 0, 150, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) - .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, -360, 500, IType.SIN_DOWN)); + .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, -360 * 3, 500 * 3, IType.SIN_DOWN)); case SPINUP: return new BusAnimation() .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 360 * 6, 3000, IType.SIN_UP).addPos(0, 0, 0, 0).addPos(0, 0, 360 * 40, 500 * 20)); } return null; }; + + public static BiFunction LAMBDA_COILGUN_ANIMS = (stack, type) -> { + if(type == AnimType.EQUIP) return new BusAnimation().addBus("RELOAD", new BusAnimationSequence().addPos(1, 0, 0, 0).addPos(0, 0, 0, 250)); + if(type == AnimType.CYCLE) return new BusAnimation().addBus("RECOIL", new BusAnimationSequence().addPos(ItemGunBaseNT.getIsAiming(stack) ? 0.5 : 1, 0, 0, 100).addPos(0, 0, 0, 200)); + if(type == AnimType.RELOAD) return new BusAnimation().addBus("RELOAD", new BusAnimationSequence().addPos(1, 0, 0, 250).addPos(1, 0, 0, 500).addPos(0, 0, 0, 250)); + return null; + }; } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index ef724a5d6..4a45d4138 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -598,7 +598,6 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_lunatic_marksman, new ItemRenderLunaticSniper()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_benelli, new ItemRenderBenelli()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_uac_pistol, new ItemRenderUACPistol()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_coilgun, new ItemRenderWeaponCoilgun()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_cryocannon, new ItemRenderWeaponCryoCannon()); //multitool MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool()); diff --git a/src/main/java/com/hbm/particle/ParticleBlackPowderSmoke.java b/src/main/java/com/hbm/particle/ParticleBlackPowderSmoke.java index c11b88f57..9469bac57 100644 --- a/src/main/java/com/hbm/particle/ParticleBlackPowderSmoke.java +++ b/src/main/java/com/hbm/particle/ParticleBlackPowderSmoke.java @@ -62,7 +62,7 @@ public class ParticleBlackPowderSmoke extends EntityFXRotating { double ageScaled = (double) (this.particleAge + interp) / (double) this.particleMaxAge; - Color color = Color.getHSBColor(hue / 255F, Math.max(1F - (float) ageScaled * 2F, 0), MathHelper.clamp_float(1.25F - (float) ageScaled * 2F, 0.7F, 1F)); + Color color = Color.getHSBColor(hue / 255F, Math.max(1F - (float) ageScaled * 4F, 0), MathHelper.clamp_float(1.25F - (float) ageScaled * 2F, 0.7F, 1F)); this.particleRed = color.getRed() / 255F; this.particleGreen = color.getGreen() / 255F; this.particleBlue = color.getBlue() / 255F; diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCoilgun.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCoilgun.java new file mode 100644 index 000000000..cc19eaa72 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCoilgun.java @@ -0,0 +1,82 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderCoilgun extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.25F * offset, -1.5F * offset, 2.5F * offset, + 0, -7.5 / 8D, 1); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flaregun_tex); + double scale = 0.75D; + GL11.glScaled(scale, scale, scale); + + GL11.glRotated(-90, 0, 1, 0); + + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + GL11.glTranslated(-1.5 - recoil[0] * 0.5, 0, 0); + GL11.glRotated(recoil[0] * 45, 0, 0, 1); + GL11.glTranslated(1.5, 0, 0); + + double[] reload = HbmAnimations.getRelevantTransformation("RELOAD"); + GL11.glTranslated(-2.5, 0, 0); + GL11.glRotated(reload[0] * -45, 0, 0, 1); + GL11.glTranslated(2.5, 0, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.coilgun_tex); + ResourceManager.coilgun.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 3D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 0.25, 1.25); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 4D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.25, -0.25, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glRotated(-90, 0, 1, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.coilgun_tex); + ResourceManager.coilgun.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index ce4102a81..1f79cde82 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2184,6 +2184,7 @@ item.gun_ks23.name=Samuel die dicke Flinte item.gun_lacunae.name=CZ33 Abaddon item.gun_lacunae_ammo.name=5mm Patrone (LEGACY) item.gun_lag.name=Komisch lange Pistole +item.gun_lasrifle.name=Lasergewehr item.gun_lever_action.name=Mare's Leg (Original) item.gun_lever_action_ammo.name=12x74 Schrotmunition (LEGACY) item.gun_lever_action_dark.name=Mare's Leg (Dunkel) @@ -2252,6 +2253,7 @@ item.gun_stinger.name=FIM-92 Stinger item.gun_stinger_ammo.name=Stinger-Rakete (LEGACY) item.gun_super_shotgun.name=Super Shotgun item.gun_supershotgun.name=Super Shotgun +item.gun_tau.name=Taukanone item.gun_tesla_cannon.name=Teslakanone item.gun_thompson.name=Thompson Maschinenpistole item.gun_uac_pistol.name=UAC .45 Pistole diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 1e5cfe67b..415e68bd4 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2993,6 +2993,7 @@ item.gun_ks23.name=Samuel the Big Shotgun item.gun_lacunae.name=CZ33 Abaddon item.gun_lacunae_ammo.name=5mm Round (LEGACY) item.gun_lag.name=Comically Long Pistol +item.gun_lasrifle.name=Laser Rifle item.gun_lever_action.name=Mare's Leg (Original) item.gun_lever_action_ammo.name=12x74 Buckshot (LEGACY) item.gun_lever_action_dark.name=Mare's Leg (Dark) @@ -3062,6 +3063,7 @@ item.gun_stinger_ammo.name=Stinger Rocket (LEGACY) item.gun_super_shotgun.name=Super Shotgun item.gun_super_shotgun.desc=It's super broken! item.gun_supershotgun.name=Super Shotgun +item.gun_tau.name=Tau Cannon item.gun_tesla_cannon.name=Tesla Cannon item.gun_thompson.name=Thompson Submachine Gun item.gun_uac_pistol.name=UAC .45 Pistol diff --git a/src/main/resources/assets/hbm/textures/items/ammo.png b/src/main/resources/assets/hbm/textures/items/ammo.png index 680cf4113615b99311ea2e7551cc66b71b9ab3ae..a1dd4e7b3444d2b13b5eebd2ed995c614e61f896 100644 GIT binary patch literal 16537 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 EQY(p4Rozsxx?YIaD>p%0 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 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.coil_ferrouranium.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.coil_ferrouranium.png new file mode 100644 index 0000000000000000000000000000000000000000..a8bb6196cf61ab1a4fbc5206db0dcc22e270051d GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf*1>e^a_Kg LtDnm{r-UW|fzN0( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.coil_tungsten.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.coil_tungsten.png new file mode 100644 index 0000000000000000000000000000000000000000..5e6692fb66e3cc85d4c146c2be605d2c6e8e5602 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf&E&WGzss}g%Ae!o?{{@l7{4;E=`*d2D`&NdFk1c|oC7JbWaviRSK>R$KS zLCAAbgUYRKy)%|hYe-?a?z?W@Dyb{Je3J^!HLCpDcf77PjQ5K0CY|csvU7|KP8=WZ zt@cq#?wOLRnK|o}E8nLd9T}VN-?3}_dDecFb*^u~bEcV-E(6`q;OXk;vd$@?2>?p+ BX}16X literal 0 HcmV?d00001