From 1e1e2a51c9e4a82edd4268547a3e8246a8efe7d8 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 1 Feb 2023 14:00:19 +0100 Subject: [PATCH] honestly quite incredible --- .../java/com/hbm/crafting/WeaponRecipes.java | 2 +- .../com/hbm/handler/BulletConfiguration.java | 8 +++ .../hbm/handler/guncfg/Gun12GaugeFactory.java | 20 +++---- .../hbm/handler/guncfg/Gun4GaugeFactory.java | 49 +++++++++++++++--- .../com/hbm/handler/guncfg/Gun9mmFactory.java | 5 +- .../hbm/inventory/recipes/PressRecipes.java | 2 +- .../java/com/hbm/items/ItemAmmoEnums.java | 6 +-- src/main/java/com/hbm/items/ModItems.java | 8 +-- .../java/com/hbm/particle/SpentCasing.java | 3 ++ .../assets/hbm/textures/items/ammo_45.png | Bin 0 -> 1936 bytes .../assets/hbm/textures/items/ammo_45_ap.png | Bin 0 -> 1911 bytes .../assets/hbm/textures/items/ammo_45_du.png | Bin 0 -> 1992 bytes .../assets/hbm/textures/items/ammo_762.png | Bin 0 -> 1953 bytes .../assets/hbm/textures/items/ammo_762_ap.png | Bin 0 -> 1964 bytes .../hbm/textures/items/ammo_762_blank.png | Bin 0 -> 302 bytes .../assets/hbm/textures/items/ammo_762_du.png | Bin 0 -> 2062 bytes .../textures/items/ammo_762_phosphorus.png | Bin 0 -> 2130 bytes .../hbm/textures/items/ammo_762_tracer.png | Bin 0 -> 341 bytes .../assets/hbm/textures/items/ammo_luna.png | Bin 0 -> 1967 bytes .../textures/items/ammo_luna_explosive.png | Bin 0 -> 5457 bytes .../textures/items/ammo_luna_incendiary.png | Bin 0 -> 5394 bytes .../assets/hbm/textures/items/assembly_45.png | Bin 0 -> 2006 bytes .../hbm/textures/items/assembly_762.png | Bin 0 -> 2180 bytes .../hbm/textures/items/assembly_lacunae.png | Bin 282 -> 410 bytes .../hbm/textures/items/assembly_luna.png | Bin 0 -> 2259 bytes .../assets/hbm/textures/items/gun_fireext.png | Bin 0 -> 281 bytes .../hbm/textures/items/singularity_micro.png | Bin 0 -> 251 bytes .../assets/hbm/textures/items/source.png | Bin 287 -> 0 bytes .../hbm/textures/items/source.png.mcmeta | 5 -- 29 files changed, 75 insertions(+), 33 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_45.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_45_ap.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_45_du.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_762.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_762_ap.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_762_blank.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_762_du.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_762_phosphorus.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_762_tracer.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_luna.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_luna_explosive.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_luna_incendiary.png create mode 100644 src/main/resources/assets/hbm/textures/items/assembly_45.png create mode 100644 src/main/resources/assets/hbm/textures/items/assembly_762.png create mode 100644 src/main/resources/assets/hbm/textures/items/assembly_luna.png create mode 100644 src/main/resources/assets/hbm/textures/items/gun_fireext.png create mode 100644 src/main/resources/assets/hbm/textures/items/singularity_micro.png delete mode 100644 src/main/resources/assets/hbm/textures/items/source.png delete mode 100644 src/main/resources/assets/hbm/textures/items/source.png.mcmeta diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 926f0f483..18dc7368f 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -206,7 +206,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.NERF), new Object[] { "I", "I", 'I', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_45, 32), " I", "GC", " P", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_44, 'P', ModItems.primer_44); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_308, 32), " I", "GC", " P", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_9); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_luna_sniper, 4), new Object[] { " B ", "GCG", "GPG", 'B', ModItems.billet_u238, 'G', ModItems.powder_nitan_mix, 'C', ModItems.casing_50, 'P', ModItems.powder_power}); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_luna, 4), new Object[] { " B ", "GCG", "GPG", 'B', ModItems.billet_u238, 'G', ModItems.powder_nitan_mix, 'C', ModItems.casing_50, 'P', ModItems.powder_power}); //Folly shells CraftingManager.addRecipeAuto(new ItemStack(ModItems.folly_bullet, 1), new Object[] { " S ", "STS", "SMS", 'S', STAR.ingot(), 'T', ModItems.powder_magic, 'M', ModBlocks.block_meteor }); diff --git a/src/main/java/com/hbm/handler/BulletConfiguration.java b/src/main/java/com/hbm/handler/BulletConfiguration.java index 95115b66c..2118dab84 100644 --- a/src/main/java/com/hbm/handler/BulletConfiguration.java +++ b/src/main/java/com/hbm/handler/BulletConfiguration.java @@ -185,6 +185,14 @@ public class BulletConfiguration implements Cloneable { this.doesRicochet = false; this.doesPenetrate = false; this.vPFX = "greendust"; + + if(this.spentCasing != null) { + this.spentCasing = this.spentCasing.clone(); + int[] colors = this.spentCasing.getColors(); + colors[colors.length - 1] = 0x659750; // <- standard chlorophyte coloring in last place + //this.spentCasing.setColor(colors); //it's a reference type, dummy + } + return this; } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index 976a6a26f..d36f06468 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -29,15 +29,15 @@ import net.minecraft.util.Vec3; public class Gun12GaugeFactory { - private static final CasingEjector CASING_SPAS, CASING_SPAS_ALT, CASING_BENELLI, CASING_UBOINIK, CASING_SSG; + private static final CasingEjector EJECTOR_SPAS, EJECTOR_SPAS_ALT, EJECTOR_BENELLI, EJECTOR_UBOINIK, EJECTOR_SSG; private static final SpentCasing CASING12GAUGE; static { - CASING_SPAS = new CasingEjector().setMotion(Vec3.createVectorHelper(-0.4, 0.1, 0)).setOffset(Vec3.createVectorHelper(-0.35, 0, 0.5)).setAngleRange(0.01F, 0.03F).setDelay(10); - CASING_SPAS_ALT = new CasingEjector().setMotion(Vec3.createVectorHelper(-0.4, 0.1, 0)).setOffset(Vec3.createVectorHelper(-0.35, 0, 0.5)).setAngleRange(0.01F, 0.03F).setDelay(10).setAmount(2); - CASING_BENELLI = new CasingEjector().setMotion(Vec3.createVectorHelper(-0.4, 0.1, 0)).setOffset(Vec3.createVectorHelper(-0.3, 1, 0)).setAngleRange(0.01F, 0.03F); - CASING_UBOINIK = new CasingEjector().setMotion(Vec3.createVectorHelper(-0.4, 0.1, 0)).setOffset(Vec3.createVectorHelper(-0.35, -0.3, 0.5)).setAngleRange(0.01F, 0.03F); - CASING_SSG = new CasingEjector().setMotion(Vec3.createVectorHelper(0.2, 0, -0.2)).setOffset(Vec3.createVectorHelper(0.8, 0, 0)).setAngleRange(0.05F, 0.02F).setDelay(20).setAmount(2); + EJECTOR_SPAS = new CasingEjector().setMotion(Vec3.createVectorHelper(-0.4, 0.1, 0)).setOffset(Vec3.createVectorHelper(-0.35, 0, 0.5)).setAngleRange(0.01F, 0.03F).setDelay(10); + EJECTOR_SPAS_ALT = new CasingEjector().setMotion(Vec3.createVectorHelper(-0.4, 0.1, 0)).setOffset(Vec3.createVectorHelper(-0.35, 0, 0.5)).setAngleRange(0.01F, 0.03F).setDelay(10).setAmount(2); + EJECTOR_BENELLI = new CasingEjector().setMotion(Vec3.createVectorHelper(-0.4, 0.1, 0)).setOffset(Vec3.createVectorHelper(-0.3, 1, 0)).setAngleRange(0.01F, 0.03F); + EJECTOR_UBOINIK = new CasingEjector().setMotion(Vec3.createVectorHelper(-0.4, 0.1, 0)).setOffset(Vec3.createVectorHelper(-0.35, -0.3, 0.5)).setAngleRange(0.01F, 0.03F); + EJECTOR_SSG = new CasingEjector().setMotion(Vec3.createVectorHelper(0.2, 0, -0.2)).setOffset(Vec3.createVectorHelper(0.8, 0, 0)).setAngleRange(0.05F, 0.02F).setDelay(20).setAmount(2); CASING12GAUGE = new SpentCasing(CasingType.SHOTGUN).setScale(1.5F).setBounceMotion(0.05F, 0.02F); } @@ -83,7 +83,7 @@ public class Gun12GaugeFactory { ) ); - config.ejector = CASING_SPAS; + config.ejector = EJECTOR_SPAS; return config; } @@ -111,7 +111,7 @@ public class Gun12GaugeFactory { config.config.add(BulletConfigSyncingUtil.G12_AM); config.config.add(BulletConfigSyncingUtil.G12_SLEEK); - config.ejector = CASING_SPAS_ALT; + config.ejector = EJECTOR_SPAS_ALT; return config; } @@ -139,7 +139,7 @@ public class Gun12GaugeFactory { config.config = HbmCollection.twelveGauge; - config.ejector = CASING_UBOINIK; + config.ejector = EJECTOR_UBOINIK; return config; } @@ -192,7 +192,7 @@ public class Gun12GaugeFactory { config.config = HbmCollection.twelveGauge; - config.ejector = CASING_SSG; + config.ejector = EJECTOR_SSG; return config; } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java index 2bd0edd11..ccc789564 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java @@ -10,6 +10,7 @@ import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; import com.hbm.interfaces.IBulletHurtBehavior; import com.hbm.interfaces.IBulletImpactBehavior; @@ -22,6 +23,8 @@ import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.lib.ModDamageSource; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationKeyframe; @@ -36,10 +39,19 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; +import net.minecraft.util.Vec3; import net.minecraftforge.common.IExtendedEntityProperties; public class Gun4GaugeFactory { + private static final CasingEjector EJECTOR_SHOTGUN; + private static final SpentCasing CASING4GAUGE; + + static { + EJECTOR_SHOTGUN = new CasingEjector().setMotion(Vec3.createVectorHelper(-0.4, 0.4, 0)).setOffset(Vec3.createVectorHelper(-0.5, 0, 0.5)).setAngleRange(0.01F, 0.03F); + CASING4GAUGE = new SpentCasing(CasingType.SHOTGUN).setScale(2.5F).setBounceMotion(0.01F, 0.03F); + } + private static GunConfiguration getShotgunConfig() { GunConfiguration config = new GunConfiguration(); @@ -57,6 +69,8 @@ public class Gun4GaugeFactory { config.crosshair = Crosshair.L_CIRCLE; config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; + config.ejector = EJECTOR_SHOTGUN; + return config; } @@ -132,6 +146,8 @@ public class Gun4GaugeFactory { bullet.bulletsMin *= 2; bullet.bulletsMax *= 2; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaStock").setColor(0xFFD800, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -145,6 +161,8 @@ public class Gun4GaugeFactory { bullet.wear = 7; bullet.style = BulletConfiguration.STYLE_NORMAL; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaSlug").setColor(0xE01A1A, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -162,6 +180,8 @@ public class Gun4GaugeFactory { bullet.HBRC = 2; bullet.LBRC = 95; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaFlech").setColor(0x1537FF, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -200,6 +220,8 @@ public class Gun4GaugeFactory { } }; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaPhos").setColor(0xF6871A, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -215,6 +237,8 @@ public class Gun4GaugeFactory { bullet.wear = 25; bullet.trail = 1; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaExp").setColor(0x3F8243, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -249,6 +273,8 @@ public class Gun4GaugeFactory { } }; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaSem").setColor(0x5C5C5C, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -282,6 +308,8 @@ public class Gun4GaugeFactory { } }; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaBale").setColor(0x7BFF44, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -298,6 +326,8 @@ public class Gun4GaugeFactory { bullet.trail = 4; bullet.vPFX = "smoke"; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaKampf").setColor(0xE7BA48, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -336,6 +366,8 @@ public class Gun4GaugeFactory { } }; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaCan").setColor(0xCACACA, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -345,6 +377,8 @@ public class Gun4GaugeFactory { bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.SLEEK)); + bullet.spentCasing = CASING4GAUGE.clone().register("4GaIF").setColor(0x1D1D1D, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -382,6 +416,8 @@ public class Gun4GaugeFactory { } }; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaClaw").setColor(0x5E38CC, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -420,6 +456,8 @@ public class Gun4GaugeFactory { } }; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaVamp").setColor(0x278400, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -451,6 +489,8 @@ public class Gun4GaugeFactory { } }; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaVoid").setColor(0x3F3F3F, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -486,13 +526,6 @@ public class Gun4GaugeFactory { bullet.worldObj.removeEntity(creature); bullet.worldObj.unloadEntities(new ArrayList() {{ add(creature); }}); - //creature.isDead = true; - - /*try { - Method m = Class.forName("net.minecraft.entity.deity.EntityDeity").getDeclaredMethod("setTitanHealth", double.class); - m.setAccessible(true); - m.invoke(creature, 0.0D); - } catch (Exception ex) { }*/ } } @@ -501,6 +534,8 @@ public class Gun4GaugeFactory { } }; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaDucc").setColor(0x1E1E1E, SpentCasing.COLOR_CASE_4GA); + return bullet; } } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java index 404bc673f..c90abc0d6 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java @@ -45,7 +45,8 @@ public class Gun9mmFactory { return config; } - public static GunConfiguration getThompsonConfig() { + //rechambered to .45 + /*public static GunConfiguration getThompsonConfig() { GunConfiguration config = new GunConfiguration(); @@ -75,7 +76,7 @@ public class Gun9mmFactory { config.config.add(BulletConfigSyncingUtil.P9_ROCKET); return config; - } + }*/ static float inaccuracy = 5; public static BulletConfiguration get9mmConfig() { diff --git a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java index 0f937cba8..374fb2358 100644 --- a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java @@ -105,7 +105,7 @@ public class PressRecipes { makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_calamity), ModItems.ammo_50bmg); makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_actionexpress), ModItems.ammo_50ae); - makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_luna_sniper), ModItems.ammo_luna_sniper.stackFromEnum(AmmoLunaticSniper.SABOT)); + makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_luna), ModItems.ammo_luna_sniper.stackFromEnum(AmmoLunaticSniper.SABOT)); makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_308), ModItems.ammo_762); } diff --git a/src/main/java/com/hbm/items/ItemAmmoEnums.java b/src/main/java/com/hbm/items/ItemAmmoEnums.java index cca1a399b..30a9d9995 100644 --- a/src/main/java/com/hbm/items/ItemAmmoEnums.java +++ b/src/main/java/com/hbm/items/ItemAmmoEnums.java @@ -9,9 +9,9 @@ import com.hbm.lib.HbmCollection; public class ItemAmmoEnums { public enum AmmoLunaticSniper implements IAmmoItemEnum { - SABOT("ammo_lunar"), - INCENDIARY("ammo_lunar_incendiary"), - EXPLOSIVE("ammo_lunar_explosive"); + SABOT("ammo_luna"), + INCENDIARY("ammo_luna_incendiary"), + EXPLOSIVE("ammo_luna_explosive"); private final Set traits; private final String unloc; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 459ac2115..345ff0c30 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -610,7 +610,7 @@ public class ModItems { public static Item assembly_calamity; public static Item assembly_lacunae; public static Item assembly_nuke; - public static Item assembly_luna_sniper; + public static Item assembly_luna; public static Item folly_shell; public static Item folly_bullet; @@ -3274,7 +3274,7 @@ public class ModItems { assembly_calamity = new Item().setUnlocalizedName("assembly_calamity").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_calamity"); assembly_lacunae = new Item().setUnlocalizedName("assembly_lacunae").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_lacunae"); assembly_nuke = new Item().setUnlocalizedName("assembly_nuke").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_nuke"); - assembly_luna_sniper = new Item().setUnlocalizedName("assembly_luna_sniper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_luna_sniper"); + assembly_luna = new Item().setUnlocalizedName("assembly_luna").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_luna"); folly_shell = new Item().setUnlocalizedName("folly_shell").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":folly_shell"); folly_bullet = new Item().setUnlocalizedName("folly_bullet").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":folly_bullet"); folly_bullet_nuclear = new Item().setUnlocalizedName("folly_bullet_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":folly_bullet_nuclear"); @@ -4520,7 +4520,7 @@ public class ModItems { gun_chemthrower = new ItemGunChemthrower().setUnlocalizedName("gun_chemthrower").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); //gun_mp40_ammo = new Item().setUnlocalizedName("gun_mp40_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_mp40_ammo"); gun_mp40 = new ItemGunBase(Gun9mmFactory.getMP40Config()).setUnlocalizedName("gun_mp40").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mp40"); - gun_thompson = new ItemGunBase(Gun9mmFactory.getThompsonConfig()).setUnlocalizedName("gun_thompson").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_thompson"); + gun_thompson = new ItemGunBase(Gun45ACPFactory.getThompsonConfig()).setUnlocalizedName("gun_thompson").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_thompson"); //gun_uzi_ammo = new Item().setUnlocalizedName("gun_uzi_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uzi_ammo"); gun_uzi = new ItemGunBase(Gun22LRFactory.getUziConfig()).setUnlocalizedName("gun_uzi").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi"); gun_uzi_silencer = new ItemGunBase(Gun22LRFactory.getUziConfig().silenced()).setUnlocalizedName("gun_uzi_silencer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi_silencer"); @@ -6511,7 +6511,7 @@ public class ModItems { GameRegistry.registerItem(assembly_actionexpress, assembly_actionexpress.getUnlocalizedName()); GameRegistry.registerItem(assembly_calamity, assembly_calamity.getUnlocalizedName()); GameRegistry.registerItem(assembly_nuke, assembly_nuke.getUnlocalizedName()); - GameRegistry.registerItem(assembly_luna_sniper, assembly_luna_sniper.getUnlocalizedName()); + GameRegistry.registerItem(assembly_luna, assembly_luna.getUnlocalizedName()); //Folly Parts GameRegistry.registerItem(folly_shell, folly_shell.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/particle/SpentCasing.java b/src/main/java/com/hbm/particle/SpentCasing.java index d106c9c3e..b66db9107 100644 --- a/src/main/java/com/hbm/particle/SpentCasing.java +++ b/src/main/java/com/hbm/particle/SpentCasing.java @@ -10,6 +10,7 @@ public class SpentCasing implements Cloneable { public static final int COLOR_CASE_BRASS = 0xEBC35E; public static final int COLOR_CASE_12GA = 0x757575; + public static final int COLOR_CASE_4GA = 0xD8D8D8; public static final int COLOR_CASE_44 = 0x3E3E3E; public static final HashMap casingMap = new HashMap(); @@ -42,6 +43,7 @@ public class SpentCasing implements Cloneable { this.type = type; } + /** Separated from the ctor to allow for easy creation of new casings from templates that don't need to be registered */ public SpentCasing register(String name) { this.registryName = name; casingMap.put(name, this); @@ -62,6 +64,7 @@ public class SpentCasing implements Cloneable { return this; } + /** The number of colors has to match the number of objects of the chosen casing type. Brass/metal casing color has to come last to comply with the chorophyte coloring. */ public SpentCasing setColor(int... color) { this.colors = color; return this; diff --git a/src/main/resources/assets/hbm/textures/items/ammo_45.png b/src/main/resources/assets/hbm/textures/items/ammo_45.png new file mode 100644 index 0000000000000000000000000000000000000000..d7702dda683a523af496b1515a037664084e6dc3 GIT binary patch literal 1936 zcmV;B2XFX^P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+TB)JjwC4z{pS>O1Z=aI|#;xgqt z5|`>r$?ThZfr~(?dCU^#E+lrnbz30wA<3xIdOOS`iK}f5Dp^x$1M=*67l8I2pl2Z8 zTIMDCSL+4%oR3^yU>OcZXuLT<{%!CV#CIFZWf8v^U>jc@=R9LH9i#8lWfy>GI38uq z4V}3L6AK`hwJe}SJRa@1NFq zM*$$h-X6w~fB_pwJO#3mIT8U!1wk2>Gh(BF0rH+3jASPg*hE&Idt*(cHJ3dHo?_%C z5aA^to^-|+$a2oZf1*?PQ1;@T_dfXO)%fIdkl=z3A;d6~T#gc5^fAO3HKv$V)T!5? zQB{-X#7U3?eF`ZiO)2HfCS#)vT^aK;B!!Cjd3iqk5`WkAiT2sx9n>3_} z7FulDQp=r8N2chm`yP7i+EdR1zBXjI;YS#8=tv`9tQ}Tgl`pVHhc#YI&3W-+4N?>1 zO$E(#;wNWdj2(gTI2nLL^W@AbImeT^$(c=zpzsVM{p7|pnv8)$*NOe0i@PW0KE<2y z`YGP{Bj(Jc?kAWtpzbwqZ?M+pcdjnRb`(xbtswd^-ZdN6JU?pr(fa?UXgD_;TxvAZ z%jEDRlGB-SMlxDNTSjO`Y2Xb^e(82GkI zE&Cj;s#G~=&4}0ZA!6ohklql@efJW4vNpf`h>O}mc0}G|0;Fj-=Y7F$8w=9gyY`xg zsK4xOWb#&=DsCv!m~ZfT$%pM!o9%fU1JBT^8{_J5Ns=`u*Jd2D*j|7O(XeMR0&uYV zO6-{TgF76(ae_LW?k=uPu9stc1dzF`G{Plom+v5a2b6gT;X8oMLkQmiY#u`Rt~L)L zd;u)g$Tk_bR~`O@f#r&e*vYo@LR@<|C}T-|6EyQM$_Hd~L%Ftt?7(HW;}W(*6gT^U ze6jOOQXO(ey4E3gxS0GyA2#zb!b9Tjz`nm{(MLY;Cp$hFv_BU8{~blRza{f8IjS0C zZph620004mX+uL$Nkc;*aB^>EX>4Tx0C=2zkv&MmKpe$i(@IrZ9PA+CkfAzR5EXUQ zDionYsTEpvFuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|=H{g6A|?JWDYS_3;J6>} z?mh0_0Yam~R5LIJsG4P@6LB${TNQ(^=s^HsOd}{UQ=dzvlJFc~_we!cF2=LG&;2>V zO5S9EPb8jYx?vG-5KnDdI_G`j2rEen@j3CRK^G)`4! zK~y-)V_+C)z=+K0&=UC%V^>^z!$^z)EHFlb9Pj@PA3iZ`X^3Tb`REM;1H;k(#2CVa z%zVzhIR}hiVO^)0nQ8z4152hyMzUssiYXfge!37?qOhDx9tkU zxhqfL-dVk2FGFa6Gefcq!+)YvTCxkn|E+yG|C3!9{{Mec@}DHl*bE^%%~PbArT_r1 WtZ{m+e|hu(0000 zaB^>EX>4U6ba`-PAZ2)IW&i+q+TB)Lmg^`C{AU%j1SAkb%fUR(xjUHUPZ>yV(w**3 zZsupk92;4HD5^lV>wo_m?k`+SA-O1;lcnTwMT^D-M)vEn`6M6bbHDhDap!l}28Ju3 z4(nCR?qA@S-vcgl&~fi~dAD%hfi97Ez;MpYFxo9h_<8v$?m*U;ku2*i)Pq-DcgG23 z-$7^SYmoEZ-8!Ozr6%YVn0uh$=QA$^;k-E%)L}joFKn4-nOWE@KoBe~W3I%1-oUy>-j}_t&`n|Wp)H$G^pkAkf zoVFbR6k%=w7z$9pCkjFdn}J!0z+;9$1;{x>KA-@Ja05t=0jI?&XFlh~7^T^lg%h7{ z&O&6cIl~W&)s?%*lQzg=ai)!=oi zmk@NO6FD`5VjKyI>!|=XG@qLJOfmAQ+^Ly2#-R`fNIA7}jZVcNVeG^*=&Ids<(|^b zNq$N<{z*A^O80Ll=OEo@-5#jc&hK2Eimg+4a_R$4AKH5^j&nIbYUSPf{}u?8UOet& zlm1~)_w<0{h(ZznAEIUYeCU}krnz!4@u9gm>$dz0wR@%`_eLiiPkqS7rQu@9?B-4g zlr9YQGOb}Dv=nMs>ly|7+Ph(T;;e!bAoYSp=oiU!Iv`BW2xL~{t~5ooz}-F zT}!gf)}|$cla{K7tye>m@Uy#QE0lGvN~~CyG40eNbw@T|v?c0DI4h`sy>@pF>bb4B zwNp3iM(Y(ng|@Lv?Z|GjfT>VTNSiZIVq`^H;1iOY>9P;=_?O?y6(mZgt<|I2ebw-& zR^;y$H)JhfGH#4M6{oUE3SbhMbGEdo^bEr{1iQBwzNy_?4Brs!-ePzX7w1~tJjm~` zyh(NsSnjmWBtTbu>DHJ`Ni!|GXUf(!Y^E_HdG~=i!e{R>r&Q~AY`dTKb5BcdRWll~ zF64kv2Y#?tB8WArv)wde!Z-X$W*-pi-rLV=$0pZx{G$9Rs!wO_XZ?RdY1O@gK2o*xD(5i#UrC-pbAxUv@6kH1qek@iUT%2`va1{i> z4-iKuCq)-2@qcNdMT`f>{djlparX`oY9*#w9bxHt`1W)TV84-X{*Rf~*ps6Gu$CAn_yD zl?K0Y&but|%#fK%&J%}-#e5qpZOjU$Mm$LzRyCdSg>-{e&Rd+dQiV0|$zK@E>MP4! zr#Xx`7O?~gA{10mL4lwv+ z$foQ{ewsoq2fUxrH)VkSTcBsH(OYvLrw>4ix=P#t2Zz9Dp0d|H-re2a+rMX;{rv#D zCUV4$oM(Li000JJOGiWiBLE`+Bj-+MU;qFB32;bRa{vGf6951U69E94oEQKA00(qQ zO+^Rh0|x;N5fOP6p8x;>4M{{nR5;7Uk}*q!U>L`LM$ixr#UX)191cRX)Mi5t`T<-V zYtgCo?h`n))p%QSU#3Z;$`~c5Q9%?Aw5Iyk1^SF1zieyt+y4jGNLUX$JS!^0a2!~$^6 zf}^ubMq}_j2bjyv-M7*U*cP&>V49}1Ay2O{pK-RS^Y}c+_Z$M3W*yTsr8;e!z(ro} xPbF{>$)@rv+-1-O=?r%n)FHippfCKVvj#1ydp`%dtd#%&002ovPDHLkV1nAVhPD6z literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_45_du.png b/src/main/resources/assets/hbm/textures/items/ammo_45_du.png new file mode 100644 index 0000000000000000000000000000000000000000..a27125ce9b4225676bb19e2edca1657f4ea7df30 GIT binary patch literal 1992 zcmV;(2RHbMP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+TB-elIti8{Ld-&2uMN*j)O5&?G5($+k7OGOlC59 zdGE*8hO)sRi>6xw$F+a{?(Q%Am~wJKEyWz8$1miNxuB8!`sH~iALe~O_)Fui-(3e7 zU4mNHqm^x6(61jaT;`zTzTc%i!f89Yc-{_W%*<$JOAknHZ{cM}bZ%)Tzz7QU%1ojSV$( zWtn|Rj5AkgL=r}!&L&w-Nl>nGbI>dZU$M}fH_!PhCCq#hOqt+}ru^R&_iXT2itD`& zipZxcSHQ(1asgu~H}0^4Ak?>RItjj%Ex*5sAA~9t)Jb!~0*gPEi$m!nwq)uouv644 zE6CZo9e^UttpGy;1$;!@QzUQ9Mg$%c1S&wz68L}uq{=5iau8&TGfq6_#ydvSmX#xq zZtP7ELM4hpn=A!lg`kKZ3kfk)R5Yk+RMX@%Yl#v=)EJ}1vB?z^3#Jy$ELpaaB!#3Y zCQB*hR5EA59;i8H%PHqv3cG@d3VapV7xWx_$Po@b;$cTR@=+?nr-rIER;#JzT24OY z#5Qrp)6R6}vovxIJ4FjkTWr=+%dK?8T9+QW_Smhbo_o2fwpD#7zn~gz)p#m3?Ch!< zdY#$D1&!@Qhh|WW13_^c3Lv0)Xyy}zz(cvAna?~nG6qN;+PIU3VvsO2V(oO*?nAkk zbaR?s(v5#o&JF4QgmMnjJ?i#_YUeoT>QroH;o#H@vJc}e700QJL#_O7{eN@RYMZTQ z;&ONxmDOrVhU_o8cE5_DEDY7R$mOJ+^IU_S(NRMRt)=?ksomfT z88hceRI8P?X$$5luNje=I96vfj+DeEFo9I0N5Ct9;+BJm6kqQj+2iYUEv73{pXanX zKF6Nb?k59$oTx1<-h`0ybB>H%>y9u7#+oj}IQO^NWYA5^EMh4yz;!R-egYR8==AHl zBrDNMSkKi1fNoJGm#YwGFv@!^3H`~o3?(=1Q#Fk(+(yJ30YR;}a|>ChdHCMCo|;?# zFiRJ!MlI)-*TN7U2+>WMs}1}4*2R=+e3NhYjK^c!Gmegja58+`Z+Fp->K^ESlYRF< z|6A-+bL9oLA76W9-#yU(z&^NL3mAufE41?kGx?Pg_-i-5*mB*R1!Qh|n{hWO|1kl+ zQXn6j^@eW>B<&_8Cy|DLnfoO+Kf)2S>7v}?kFo9AJ8XZ!zWYA-TU^0lmh;c}+~?%G z#g`r?{vNM;4)`ALGgR)CE#egx-Jdv${*#Uf|JU##`7hx0>WZA)v#bCB0flKpLr_UW zLm+T+Z)Rz1WdHzpoPCi!NW(xJ#a~mkA{7UVh&W`ZPA!Ovh?7>K2o*xD(5i#UrC-pb zAxUv@6kH1qek@iUT%2`va1{i>4-iKuCq)-2@qcNdMT`f>{djlparX`oY9*#w9bxHt`1W z)TV84-X{*Rf~*ps6Gu$CAn_yDl?K0Y&but|%#fK%&J%}-#e5qpZOjU$Mm$LzRyCdS zg>-{e&Rd+dQiV0|$zK@E>MP4!r#Xx`7O?~gA{10mL4lwv+$foQ{ewsoq2fUxrH)VkSTcBsH(OYvLrw>4ix=P#t z2Zz9Dp0d|H-re2a+rMX;{rv#DCUV4$oM(Li000JJOGiWiBLF@CBlECVLjV8(32;bR za{vGf6951U69E94oEQKA00(qQO+^Rh0|x;QBl3e6+yDRp7D+@wR5;6HU>In?h|E#8 zQ~nQQ-#v7fkr)G5ULY`gsu;tx zV(I@R835D#?AkMiSb;|jp#jbW4MB0DjH%3jSv^^XSb;|jnHAX#3_ss7yt)61VfBW+ z3|YNT840@J$>}GIS`Uvi$V&?{yf}Y|fq`9!K}1muuS?(tsMRz4XJBApn7fC8aox5n z4Ck&qA<7U&WX%i=3=Fp#A!5lc4F7|?bQp|uWEdn2?Ff4Z*$@~=c47FxwNK~&^IabQ z|G#egKdo5$|LenX|C3$N)T-4p{D)y&h9tW%{Qv)?1XD9U7hp34r)FF(KsE$#io&Ov arT_rKB8%Dqkdom50000 zaB^>EX>4U6ba`-PAZ2)IW&i+q+Pzn4cJwF={Ld-o2uLgv$H6S`eK(lnPqDbuOVUYy zoi|NvKwv0WNy0Jh-#^{_gCA4!#s|@uVzl`A+Q0SU^H%z zvgTxGJcEe`D0lO*h$6TG+A>Q*QJZanIMo(=pcG2PP^BC4R4G%ZHtRwK5Ir{*)XW7! z4VyaQ#AWC+#BrWF3)HJlp=IG_oP(J!SZMB>=6;0~J6FO~CM-sH(+hZ+p1p4qTH+6QH7f`RL zAR~1z0E)1802p#mz(#U`B3WS;BJijXC<8eoHV!C2A#epq_Rd8%!pdWBJR>yca^T3r zjNAkvf{TbJ9q|RRybtgn@d_Wx!37^eh(UsykV1|w`WRx25=WBD;>1gkC?YCJvO4t| zG^(g-(wsOs=wW`xIY7iA9Q*RC49& zD$+!aRjSrhb0gD`DVlGg#U@Q#YPrMLy6e7&9=mkysppGoTh)j1f@-u?wJ4reZ4!2dCB{`Y_%!8`eAywft`V-a+xqtz8sApm1g#wopAzwRh#c7Jg+79xpim;8^U9by!xd{@{;x_)K8_? z`4r{!6s7rlG!F}Xz+32|%n^7fhhvhbNMf5`d`Q)WJrC>}*P}fcI4=JNCi9%a2aLCX zvaWeb(IAr6(2?vF(wBjnm$Y_!AE%O|WWS}hh*IS2C8!CPV=sfy)(RAJA5*rVX#3e_!e-L*M7|+ljX94CY5Rrx2SIZBY;9bZE(!AIFcHv zdEImD-`3{NKuvcXltwM3mKN25@5@x<8AwQ!{#c+C^rANx3JHPqi1sD0=6lpX18D}z zusl}+mFPFMj8lM?t46rVw{C0R4*ukW zzQ%0E2^tq`I9C&OUlz64zI1%~uI%ay4&Xh~eZ;rbosj024q7bq^lV7S_JS7wKSbX- z?Nc09@KKn|e>ZO0szCi=82|tQglR)VP)S2WAaHVTW@&6?004NLeUUv#!$2IxU(-re zS{&>k;*g;_Sr8R<)G8FALa7y6buhW~3z{?}DK3tJYr(;f#j1mgv#t)Vf*|+-;^yY0 z=prTlFDbN$@!+^0@9sVB-T^|R!c;Rb2B?~4q!V#5n_CrwujoMlVN4?^F;kyQrIPR* zU-$6w^)AMC;;dF`taVTR!cbmYS>`&;AtbPf zC8QuiMh#_DU?E1UMv93v?Z-X*gN{E%E}2|qFmf!Q3Kf#$2mgcL-I|4oaW^Rx2fAKt z`(qdg?gGuaZGRuzcJl=AKLb}<+h1(}GoPf_+gkJp=-UP^uG^Zt2VCv|15dhSNRH&E zDHIC8`x$*x4(PuHde_|ETKhPC05a57@&-6K1V)OKz3%bu?#|x+J=5y%2S}iDmbMrp zApigX24YJ`L;%$Qd;m`a-iBiU000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2jvL_ z6#*z=c&1p|$Ew-fUREU+;Ez6xx2GA4?>Xbe3%=)MM%L;L zT;%Lj)6|EkqDk0~0O(wQrS?UwF76&MU?u=f4Zi0rPa;V}RD2_jSarRGl99sJBKOKv zY%{elDk)|y3m&l=Csb?_Gf`<5XGPSe?6V+hTMPambxqih@I8mg>wWfD8@R~uMoZu# n@_8kJi{$=!tH{pZHy->08&GY6v#8|n00000NkvXXu0mjfVLO{^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_762_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_762_ap.png new file mode 100644 index 0000000000000000000000000000000000000000..0b55a751533446e9c657dd4178cfee3de37e3b0f GIT binary patch literal 1964 zcmV;d2UGZoP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bxmcytH{MRaG2}nEy%fUR(nH}8aPw{X%Nhh78 z`-Wp9gAC;=Aqchq{oCmu{Dh;B^BO}6!QkhTOOjzkvwmsb*|>S%59Ty(+Ue3EXtJp7 zdeprAGur*v3+Ehs+_qEPJrego=g50NJ7yLb^%^AFWwo>01Esc%kfL5gJ!I8oJ5DJ3 zvO0&p3^JbSy1^+}svcfeq*=CR-s3`G$0atSw(}m~hu&!$LdEt(0zz&+??RxtCg_Ib z)1rI!FV-FTl6Skk<1%cHU_9(#|Cszq@zuokf=F&Vps0TPoPG6PWAAN!U3LMCh8LO*qWQmFSbC}I;Y zTmhGi$OVj{+_=LFf^gru`AP6uw*2NQeh{iq&`+8pJ}{eO4RLt>iY+^Jw(#?)*Q#LB zx(5J7nA-ykTPR=xThD=wiYPO9j1VXTxmYI$6kzYA0;D*L)j}#!#@u*EdHRZ%Afp+% z2|{=qtU{Y)GsJSvBYxCH#8CFuJMVq)>LdB&bFje$A41SDl3Z4+PQ3nqo>RXQ7OVGRDgA&uBU1u!lSR5e_}#k&avtKE)MZLeUaSD!EFv z6=|Y|sx{VBb7N}A6wNi?LemyoYPloUy6vv}9=i6}Q_mOGwyNLC2deQ_O{P-APcN#W zl~m6mc%&0QG=pN|7>esq00AvSGZWc48OjaKOcE>#F97L>HdJ{i1_@nb@trT)eJS^r zZsg-zy2&f$Xh`?}P>vwocikSSR>wY9rebRq4o;25>O+5vnIz`1spY@ce;WuNaJJBW zm;Q24`WVG=IL~hE5l0;c5;zxM=`^*TR@>d?qnh4-fe~X1RCggyfJXW`Ke;dBmerHB zHP~YJV@3pF)vXtw*YwKaaV_mc(qf&QVfCw(G;V;DHar}0QVrA1mlm+J=T{xrfU$xu_Q`N3Q&wX;;NX70M(AkQPSXQRQ1d3{v(NJnzI{8ZB`hwECAE!X%q zY7Uy+=Fo&p>bI&kWk$A|JviR9z{?KEcW;2DH^ICFNe@uog7gbab;`*sJEA@6^g&dt zu%-9n_H|8<d^P@q4vyh)~?S!V2lPnLTr zuTt$VmXLZ6Y>)y^+m0)ux?Nkb-bN`HFyVD1OFG zA7%?p$A;H%+NyRj3hI{oLeZF5jjt*Mk(ZZreHKiA* zp49aB9c>|`FNi<0gTr5<{{WLE-rs2wr6>RZ0flKpLr_UWLm+T+Z)Rz1WdHzpoPCi! zNW(xJ#a~mkA{7UVh&W`ZPA!Ovh?7>K2o*xD(5i#UrC-pbAxUv@6kH1qek@iUT%2`v za1{i>4-iKuCq)-2@qcNdMT`f>{djlparX`oY9*#w9bxHt`1W)TV84-X{*Rf~*ps6Gu$C zAn_yDl?K0Y&but|%#fK%&J%}-#e5qpZOjU$Mm$LzRyCdSg>-{e&Rd+dQiV0|$zK@E z>MP4!r#Xx`7O?~gA{10mL z4lwv+$foQ{ewsoq2fUxrH)VkSTcBsH(OYvLrw>4ix=P#t2Zz9Dp0d|H-re2a+rMX; z{rv#DCUV4$oM(Li000JJOGiWi000000Qp0^e*gdg32;bRa{vGf6951U69E94oEQKA z00(qQO+^Rh0|plW59ie1R{#J33Q0skR5;6}(=kiKKp4jH|CNAaM2ZwLXvq+e45uH! zB^eyMbahFmuI<;*v6~;k(IwbL7l({48M0M`IE5QrgxAGH8&Z)~(dS&XMon|;{;00001 z)ChnlQHUOF1d&3;_@q%GsbC{i=`6WYK61IC1fdjcDO6kJN+^>kfh0&I5EuChD3OZ6 zV(H=7Ci}xY{=vNu&9xA@48^th{aSw-_9OoP3-IP|Gm>2p5&!@I07*qoM6N<$f;hZ+ AC;$Ke literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_762_du.png b/src/main/resources/assets/hbm/textures/items/ammo_762_du.png new file mode 100644 index 0000000000000000000000000000000000000000..3443e8b11e244b9059df0d83d94c3b075f1db508 GIT binary patch literal 2062 zcmV+p2=VucP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bvlI182{O1&X1dv$7aabef26OyQ7Q5b7^_FTA zHnPA%WD0>*`~SbL{@@~FQPu_V(R+={MjI(X5WTKApGMpH+%NhNuJr0`AgCBMuh)=v z{{+4J`rsJD-9oYr9hSF29wQTkdg&zewDiVqL$NKvM+uj%W?FUG9j7b%<}gj4 zM#j6kRM-HNszWa(YHV1~rz{V6+{6hr&!~jCThBLG`i&8UhYiL(27f|)F)*JV(RBk@40qGnckfktZ)GZ|SapN4X7{SQZpeq>|Gn4*riu$SXouYa#10tj4#0q}V zh+Mcam>W;@0wJbv-rNNED4TwL5kCl3Fz6=Cf(a&_mx=7mS8Va*nbFUoUaP{WP`3d< zgs~l*F$@N@H|&fzIuHe8fTMt*1kZ^rWiVizqY5Xz(&L_>tsN;9!FbK7=44h9oRjoOlT$ z5+y~7j2!5qk0DBoF(pz710~o>=%1j;lsVh%vd`yRUV*we|{X7#ST!J65u(PV1$3ny#Pst^tn zW~380I0Iv34HyrD0R%J+&a@b7X)rf9(~+II?OGc{IU2ia3)}8EUL8YE|?AGsb0_4)ItXJ%w zpmfJvP}ma6noy1!3;mSmba6<;S#`~^J0t=+)VH;l9sV$0hKG+uQ>Q^MI2f=c&6n~11 zr`yp_!P7ac7kGQ^pW=UUT>ET;e2kMiyLX&S{{n1WQQaw+=GXuL0flKpLr_UWLm+T+ zZ)Rz1WdHzpoPCi!NW(xJ#a~mkA{7UVh&W`ZPA!Ovh?7>K2o*xD(5i#UrC-pbAxUv@ z6kH1qek@iUT%2`va1{i>4-iKuCq)-2@qcNdMT`f>{djlparX`oY9*#w9bxHt`1W)TV84 z-X{*Rf~*ps6Gu$CAn_yDl?K0Y&but|%#fK%&J%}-#e5qpZOjU$Mm$LzRyCdSg>-{e z&Rd+dQiV0|$zK@E>MP4!r#Xx`7O?~gA{10mL4lwv+$foQ{ewsoq2fUxrH)VkSTcBsH(OYvLrw>4ix=P#t2Zz9D zp0d|H-re2a+rMX;{rv#DCUV4$oM(Li000JJOGiWi000000Qp0^e*gdg32;bRa{vGf z6951U69E94oEQKA00(qQO+^Rh0|plZ5JB;QVE_ODEJ;K`R5;6}ld($zQ5?rVFNDT} z2oVe-1c!LT~9}G8+ucp>f{8uGqg|i2(ouZ-AAyuq!s5 zW>!`Ln7&cH%N`?tMCtW`TD6oIlA1kC->7}d$aY!tIrgblOMoW;N2f1pDFEQ&4h4?_ zP|!>v0G`A_QsF@ulG)XBn<&V<#C)6Ro!2+m+)2mwqQc>)FBl+SX$mYybcN07*qoM6N<$f?RjYh5!Hn literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_762_phosphorus.png b/src/main/resources/assets/hbm/textures/items/ammo_762_phosphorus.png new file mode 100644 index 0000000000000000000000000000000000000000..6db35575796cbee8a785cae12f7e17d7ac3e6b6e GIT binary patch literal 2130 zcmV-Y2(9;tP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bvmMf_a{AU%t1SA1M%OM%g=^eb~cQDvx*K}QV zpE;Q*8AN1+5NX%{_wR83;KxkKg{V1MN*=#p!MMQ4e*bLU$%l165B_F6wYz%3AZ)qdTw|5^l(0oZk~@rnJY7l_6QQ~yxS=pN7lEIEbAlGi+5emzy;-8 zqRaK&$$WN?4MD+Dix?%$T}b@8=Z!$-#Zpiw+*tq$y#_moI8;&SAORsyuXiWVKN9pr z^38JZ*}q%w$mep}|yv zwPjH@t}=BBv(R9LVofsitK6Lkn)!}}*1ERVtCX>FBMfDNGg|V0QQUW(KPhgEIw>Nb z?_2>F&&UOgsocC{6a=Ahbc>7NTRHOkhxkFLLczFb&UnG%ukGTB^cGvPbQX+@sQ0cQ zr|mcZMOZrm3<(tQi6l}Y!~-i4c+3!}069zG3kpz-+yIiXK@vOV%yVtbQCed;a^l&H z+yo&ac9udL>?w#9LPY#%$cUj5C59MdiW;+v7E6*8QcNjnnn|vxXwaxhRkNCwEIH(u zQ`Vfb4)Q@a0$at_jc)a?`1+C1m#Qf%+S$*C9YKJ@oo9Op6*weq+1-#KcjEYtht zXc@Z}PQUc&ehX%Va$B5c?Pg<5e+_6l`q6}b^pG=5P#|Kh+8wP2xRO(5<8NedeZjv}e&6 zscYC}wE^B@HT6JUuVt%H?|E7{y$Sm%5(SF2t z*vu#gcF#fE?1^b&aC>gG-G)g+Dn6K((>Nls5z`5nZ)^9b0S`5D)A8@SwqloU@;D;> zE<`a<&_WwjOIq;-qN^iXu^z`8+q5TZOVpoOb-$-~ve^%PRh*4fQs0oXAyIFlS8hhu z-s2+G6iyUiU#9~;AvxP&++F5>!|jLKeZnaYpzT+(mZT-@$Lawf9*)GoX*{e3C3C)= zw<MzYkjX5Vh@4ReSmo&x>aF63>{i^PzT}z#ZaVWjjGmvN5@E z??=>rHaPN;_EcV#!hNsB>r%L9Egq=;V^}{+;a*N4Pf~>I7XM=Sx3Tik6b4)NZ0t-) zGi|$P%GOm*6p{7x1_v*>sX_u81&;bVay7pjG2~gGFCx;t_Fg@0dQ}anFVvF;ldl6G z$Lka+Xbx(pYlMXFudl;tfZ^Lied>2V+2`MFXQy_ZxasLtWS`aU=b7hoglEX>4Tx0C=2zkv&MmKp2MKwrWKx4i@~u zAwzW#3!);9T7@E12(?114knlWL6e3g#l=x@EjakISaoo5*44pP5Cnff9G#pLU8KbC zl0u6Z?>O$^z3+Xw`wsBeN=!A|#sO8cjAT3}q%*5R@D&~CqdAHJiJAJGC??=JzV6}U z`(2c0dDs0px|OWS0G~iS%XGsc-XNadv~yD6ykH@F@r8h{K$3L+gdu!$^grp6AvscjmOqyR z-p}ZpGC=Pw(6#3Ft#OXi2OvegO56Ykhrmdlve!M{-Pzi=e`^~3`vI7;a<+T@>RSK+ z00v@9M??Vs0RI60puMM)00009a7bBm000XU000XU0RWnu7ytkO2XskIMF-{v7Z)ou z0P1v*00041Nkl-5N;8YRCf+Sr>0xr(9+^2IN1l# z4^W$K6|}arxaCqqlY=Dq1royk7o>r7TDqp8X?B(uUe5D-pYt4E_-82q!!X3TsMqW2 zF97XJgk@Qnrr8A>8URqM)zEbv(=^GagEGoE5{X14pAO3H#f}UM(K_?6X3ES5r)f3n z#O)~6lrGhjE(1gCtV9gi+6c4${(y410XVv8lH9AQK@I>oI74|$74DzjkXD0o# zv~MojZ}y&7mtfq7KV-4(1 z)*vEEDdmg;6#-b`oWSxL{t(3NC{Pq9lQuw-h;ynuLqlB7%WWGuL2~qWvKZ#%v`E~J zQYs&R>m-SYh&WDqt+%irmP8DZ>s?92dh~TU82}mi`~DPv0@F;D@bn=mq5uE@07*qo IM6N<$f=LwlWB>pF literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_762_tracer.png b/src/main/resources/assets/hbm/textures/items/ammo_762_tracer.png new file mode 100644 index 0000000000000000000000000000000000000000..818aa8c8c9ec95a428bcea34de54195e4ff41e75 GIT binary patch literal 341 zcmV-b0jmCqP)1VfhuSK6Nlfr8@7=?@ABV$(e@X$!2w5BH(rc;?!2KI= zG=}X1T-TL9c1!>Oj|-BAT|Cbtoj9!^0NA!IQ4~o!apZMzEKMQS>XPTV+I+u|9Y^!| z@j@K>KqdgA*>hzt*6-o;3I%rpu&?=s0Ax}Hv5H0!(jV$|nlebIXc*eqqC4mjhkj|f zMgk)R*Yx)e=?*AOQVM7TsRT5ISO5Z|K&{SN$WU`W&xk{xo7=OWP6TQ{P7)xOCt8vK nk*BF70p@ZWNZq?y6_>vN{V#jGgb2+200000NkvXXu0mjf_5_Fx literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_luna.png b/src/main/resources/assets/hbm/textures/items/ammo_luna.png new file mode 100644 index 0000000000000000000000000000000000000000..7b826c3eb5e8dde750df2007ba43808c41877eec GIT binary patch literal 1967 zcmV;g2T=HlP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+Pzm>lH@21{O1&V1SAj=$H6=z<_3HGO&(QK{hIEc z>R1zHVIf132{PsSzrTk22NzTJE{a;pDS2Em$IJy4^ZUx{PCl;tdGNQ&3%|QJFkAsP z>_;spzQ8ZPU$~7y*Gs>%)53N-qI<{d3UlOHZ;v41=k2F>I?8=lQZ{{rdYz8y30zRl zFWzBoGoRfHhk~Uh7$`9JK*6uOZ3JQdC=}Sd?u0lB5%m~?+pg0Y2zfERJAwX@pcf?H zYVI}r_u4D+xg39Z#br7iq4I76$t!=j55tcGhdUyE*&yci&2-LhjAmo>J-ZSU7)@tI zEwXP6&A+^xWv&ov z`Yb4Cu3_thLW33RwP4V)a(5xX&37!c#?5QIN`{deA(RQ75nlPQxIZ<1r?@fdq=>xT zxdJYp>l!eoa`TQT2twoNCX3)(Ir965^@F7f1!d7}m|*eO?&1>qy|%*AIUr78_ZA|j z?Q{T&Ftz{;1t{PX1))S5Pd9QC zgpiPeLL2Nah!vw?{b)3-p&~(|h$K-lCs|4gDJDrNX_`r{XwaylNmWg=77G?lESZ{F zwvssqEt>xMUP#2>e{X6UIy0M2qO*|Y3Q(#N4cwZRDDyvp&A|4cqujG^sXAbPW9FW z&2%DDGbqN9ptw#2u%LNr=8a0pIL5ma1sY9Lfg(V<%jMY zRmK=_)UyL>13b(ChtbsIZK~8|tZBjbA+7IQ_gz{+VLK{z>evr?`Nb)YX}P7n8fr(r zIdY>GaIRc+$t8aR*8PC?3#5AoGLrT#A#>j7dm|F6(}{vd3S5{qhjx zSKhtOlk``t`#3<6_IJO*v?ML@VDtbWhoq1TA>Y!RnzX3+SF(W_8oti(GxC454BS%; zKM?GmV)((jrx<=9*geJYgLOZ$(Lk_!is1)>-BS!dSoik~ce2P#8wWJqHk0v~n9i(<9k1v@ z0DTxlP-d1fCrJtT*4I7tQr$&)mVe)$)uU!D1_VUnS!S3v@dokqrfqQECl0fMtP-CS zkC}8q;zzD49=~zUyDad`u$fBE6Nib#dw8tvvEzVl0!W#GF zFAQb%m1VBe8b%z8Sb_u*3Mwd~1RGJ>by6%O={)A+A9DQ?xfF60!N{?IGBn7pAN&t~ z&(_LKPIyV77|{OWI3FWG$1YH>I?ng80CNC@mZL?Z00009a7bBm000XU000XU0RWnu z7ytkO2XskIMF-^x0TL?$xGm1!0003BNkljsU7WOwyM%&Uv-vTYQP32G+oge8nwaEG_r1$KoOijG zrrndK-4iOF+E*N7P7PH-7C^mzC}-zGqD4d)hQzOPtFS>DM2m=Ixx{r{Mi*@v7C{ovj{jm`l^dzpPv+Yf&%c%tR@X>`amQM;&RAS%ngC`9G8pa?|$Hz>Oxlj$8s zdpyr?i;sTbBlp*i1U@2fmlF7tU%*XB)$L`wcmPmTA`k!o002ovPDHLkV1iXv BpH=_> literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_luna_explosive.png b/src/main/resources/assets/hbm/textures/items/ammo_luna_explosive.png new file mode 100644 index 0000000000000000000000000000000000000000..822eb02b1ebd0d94495916ef24ab83bb139805c8 GIT binary patch literal 5457 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 o*#>(^b literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/assembly_762.png b/src/main/resources/assets/hbm/textures/items/assembly_762.png new file mode 100644 index 0000000000000000000000000000000000000000..775fe97c03c027693e4521189067b3e90e3a7135 GIT binary patch literal 2180 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 O00005JkTZ7qCeIg@tYIkQ5YNfD=IDq@?i# zmX=(C+Quq)0S=HJ9jrLP+UN`fmw~Zyt4#Lq`+pbsu~u9|DMdmE06 zaB^>EX>4U6ba`-PAZ2)IW&i+q+Pzm(^4LIkZ|XLy@Q0Emz~^pl-jCu!9}oCJ$eaq6B0Y$x)8|tk>p{=+luhA4vRCh2pb6qd05^>puH3HK=N5L z@7cd<@5tx8?edPxusK5IX#@G^!lO3Z0&%J>_P|pp5rh41$Wf(Co!Tr56+m>{IHF`O5Ng;| zA}21;2nvmdI!8%TMWI~bW<+4-3k%J8)10r6V&+Qd$^>VGA)h|xtH$3vruQ-^BC8iy zz{MkS0b?jP-slBEsBhi;B=~%`{Pq?<2vsQPC(VilW_v6bho`sLlBu(xpGUc}f=sO2 z0Vu-U9$-kIfDI&`0@;Y&h6p?=1j<0p;`o396YrcgRo3_+)N33<}uKON(?AlY$mug$p56>@DqpccGrAEJasRpZw z@pM6BJMlv^D8`PUcpM5Kpm}I!m7L?D+|bM>MpAeNNI$eOm4;%F&^2P;>C)~^xgY6f zy#7cx{!TeFr28+FGm!41ZckLJ@(CQpkIb59rEmx%ky$yU{E=M?@XK!aA;6&9Ak%mBe z0N`g6AFY(0k-2NuP8v%!dU|NFe}yZoetJki%lqRZXu#QWV#H^y+w)drw#XpEq|wt^~#1$hBkRk5DEbTYGK7 zwCdy5wa}a2z+dP&FRGDl{7=F4#{t3f3g3U_|-v~A@F?=h{OAMa` zcUzaE!{Jg^H-GqlM#|ntaV;sXOWJH;hEX>4Tx0C=2zkv&MmKpe$i(~43m4t5X`%ut;yh>AFB6^c+H)C#RS zm|Xe=O&XFE7e~Rh;NZt%)xpJCR|i)?5c~jfb8}L3krMxx6k5c1aNLh~_a1le0HIM~ zniU!cG~G7S$%L5At%}{R2qOd_f?=6i#+)Rj;5)wV5#Z}xoM-u;`*ZZFd5Zx7k$9FF zrcJy-JiTcfocD>NtR$<%=fqx##3oQp0CJTq!$((}YoVzJo4N(Zx&sS!^R z$5c(Hd?D+x%6W^kR;jVpJ^2eGd3|M>>okXu#3Gg;L4<-D%Ba9boK~F_3u)R<`1l81 zzeFyDTxBqFET9Svvg-%`gWug+g~hA~o>~ePpFPV-2000JJOGiWi{{a60|De66lK=n! z32;bRa{vGf6951U69E94oEQKA00(qQO+^Rg3IqTS5X`%hjQ{`vfk{L`R5;6>kugj2 zP!xur6d`w2ER>WYZVpPR;5XI_EzzkIB!Y_+yG5Mp4{-QaT?9A(fJJf9At;2p8-xym z-K+>T{wS-eG_0vSrJuS~enPv<@nI^qn?_-U689CXRmY%mL z(%qEsVpRq!DP>_-YRt?npp@00k0hN2bBysxh%33p zF%j}v9}@fo@-5&mki;GQ29n|n?Vn*Bowm7bcX$?}o~xRd|@002ovPDHLkV1l1bG}izC literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/gun_fireext.png b/src/main/resources/assets/hbm/textures/items/gun_fireext.png new file mode 100644 index 0000000000000000000000000000000000000000..c7dac1a3a2fb11c224163c18b20c36762846f834 GIT binary patch literal 281 zcmV+!0p|XRP)mU;EyR{(%927oAv zDrns^aLw*=&01^E7}GeURmbhx?l!9`q?EEhLrx<08iw{PV)sym>VUy}6wV@c83c@H zGZsO>RD^>AaV1TM_p)S|=j4|Qx1!))mOMT*ZEO&WkoZ26`JBY}iA5N70ko<9l$`;+ f8~h=l_dj?76DU{Ham&F-00000NkvXXu0mjf*88|oII#-=Ir4OIX8{gWX;^b>E`PCcYo<$v%_n-w@aLp zu{`zR$NBoUDP6Dr-?*|VLAd7kSMI|*tDj5U+gE$~01y;Bf0M~}jz53nE|JyT|LXrA zJfNn)@%;a<5Azx)PG(-s7!j+Go^t9#tiz0l*W17I>^ZZCXVs@wJcsVsMDQMv>fAh12a*DRC>|XXT#F|Tkg+Wx++%Mk0Vgu0i44$rjF6*2UngE2OY`_2j literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/source.png b/src/main/resources/assets/hbm/textures/items/source.png deleted file mode 100644 index ec7b591f5274a89f120f769868177038dc48752e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 287 zcmV+)0pR|LP)R>_5#!Z+@i_rmfm`JoIMC9@9 z;Il;)eUcXoF4wRA%J%>O002ovPDHLkV1m7mcx3