From 03639e2cdbcded188a4976f9b4b62b92a413d196 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 28 Jan 2025 13:15:41 +0100 Subject: [PATCH] i'm just gonna call this "gock" with no further context --- changelog | 13 ++ .../blocks/generic/BlockResourceStone.java | 18 ++ .../com/hbm/inventory/OreDictManager.java | 2 +- .../container/ContainerCasingBag.java | 85 ++++++++ .../com/hbm/inventory/gui/GUICasingBag.java | 51 +++++ .../inventory/material/MatDistribution.java | 2 +- .../inventory/recipes/ArcFurnaceRecipes.java | 116 ++++++----- src/main/java/com/hbm/items/ItemEnums.java | 2 +- src/main/java/com/hbm/items/ModItems.java | 3 + .../com/hbm/items/tool/ItemCasingBag.java | 181 ++++++++++++++++++ .../hbm/items/weapon/sedna/BulletConfig.java | 6 + .../weapon/sedna/factory/XFactory10ga.java | 9 +- .../weapon/sedna/factory/XFactory12ga.java | 19 +- .../weapon/sedna/factory/XFactory22lr.java | 9 +- .../weapon/sedna/factory/XFactory357.java | 13 +- .../weapon/sedna/factory/XFactory40mm.java | 17 +- .../weapon/sedna/factory/XFactory44.java | 13 +- .../weapon/sedna/factory/XFactory50.java | 11 +- .../weapon/sedna/factory/XFactory556mm.java | 9 +- .../weapon/sedna/factory/XFactory762mm.java | 17 +- .../weapon/sedna/factory/XFactory9mm.java | 9 +- .../sedna/factory/XFactoryAccelerator.java | 4 +- .../weapon/sedna/factory/XFactoryEnergy.java | 10 +- .../weapon/sedna/factory/XFactoryFlamer.java | 8 +- .../items/weapon/sedna/mags/IMagazine.java | 14 ++ .../items/weapon/sedna/mags/MagazineBelt.java | 1 + .../sedna/mags/MagazineSingleTypeBase.java | 1 + .../java/com/hbm/main/CraftingManager.java | 2 + .../hbm/world/generator/TimedGenerator.java | 3 + src/main/resources/assets/hbm/lang/de_DE.lang | 3 + src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../hbm/textures/gui/gui_casing_bag.png | Bin 0 -> 1280 bytes .../assets/hbm/textures/items/ammo.png | Bin 18403 -> 18648 bytes .../hbm/textures/items/ammo_12gauge.png | Bin 298 -> 0 bytes .../hbm/textures/items/ammo_12gauge_du.png | Bin 350 -> 0 bytes .../items/ammo_12gauge_incendiary.png | Bin 310 -> 0 bytes .../textures/items/ammo_12gauge_marauder.png | Bin 381 -> 0 bytes .../items/ammo_12gauge_percussion.png | Bin 307 -> 0 bytes .../textures/items/ammo_12gauge_shrapnel.png | Bin 311 -> 0 bytes .../hbm/textures/items/ammo_12gauge_sleek.png | Bin 357 -> 0 bytes .../hbm/textures/items/ammo_20gauge.png | Bin 311 -> 0 bytes .../textures/items/ammo_20gauge_caustic.png | Bin 332 -> 0 bytes .../textures/items/ammo_20gauge_explosive.png | Bin 323 -> 0 bytes .../textures/items/ammo_20gauge_flechette.png | Bin 317 -> 0 bytes .../items/ammo_20gauge_incendiary.png | Bin 314 -> 0 bytes .../hbm/textures/items/ammo_20gauge_shock.png | Bin 286 -> 0 bytes .../textures/items/ammo_20gauge_shrapnel.png | Bin 291 -> 0 bytes .../hbm/textures/items/ammo_20gauge_sleek.png | Bin 349 -> 0 bytes .../hbm/textures/items/ammo_20gauge_slug.png | Bin 324 -> 0 bytes .../textures/items/ammo_20gauge_wither.png | Bin 342 -> 0 bytes .../assets/hbm/textures/items/ammo_22lr.png | Bin 218 -> 0 bytes .../hbm/textures/items/ammo_22lr_ap.png | Bin 239 -> 0 bytes .../textures/items/ammo_22lr_chlorophyte.png | Bin 248 -> 0 bytes .../hbm/textures/items/ammo_357_desh.png | Bin 221 -> 0 bytes .../hbm/textures/items/ammo_357_ender.png | Bin 316 -> 0 bytes .../assets/hbm/textures/items/ammo_44.png | Bin 221 -> 0 bytes .../assets/hbm/textures/items/ammo_44_ap.png | Bin 247 -> 0 bytes .../assets/hbm/textures/items/ammo_44_bj.png | Bin 232 -> 0 bytes .../textures/items/ammo_44_chlorophyte.png | Bin 217 -> 0 bytes .../assets/hbm/textures/items/ammo_44_du.png | Bin 259 -> 0 bytes .../hbm/textures/items/ammo_44_phosphorus.png | Bin 302 -> 0 bytes .../assets/hbm/textures/items/ammo_44_pip.png | Bin 242 -> 0 bytes .../hbm/textures/items/ammo_44_rocket.png | Bin 319 -> 0 bytes .../hbm/textures/items/ammo_44_silver.png | Bin 242 -> 0 bytes .../hbm/textures/items/ammo_44_star.png | Bin 251 -> 0 bytes .../assets/hbm/textures/items/ammo_45_ap.png | Bin 343 -> 0 bytes .../assets/hbm/textures/items/ammo_45_du.png | Bin 355 -> 0 bytes .../assets/hbm/textures/items/ammo_4gauge.png | Bin 297 -> 0 bytes .../textures/items/ammo_4gauge_balefire.png | Bin 377 -> 0 bytes .../textures/items/ammo_4gauge_canister.png | Bin 393 -> 0 bytes .../hbm/textures/items/ammo_4gauge_claw.png | Bin 354 -> 0 bytes .../textures/items/ammo_4gauge_explosive.png | Bin 378 -> 0 bytes .../textures/items/ammo_4gauge_flechette.png | Bin 321 -> 0 bytes .../ammo_4gauge_flechette_phosphorus.png | Bin 422 -> 0 bytes .../hbm/textures/items/ammo_4gauge_kampf.png | Bin 389 -> 0 bytes .../hbm/textures/items/ammo_4gauge_semtex.png | Bin 347 -> 0 bytes .../textures/items/ammo_4gauge_shrapnel.png | Bin 322 -> 0 bytes .../hbm/textures/items/ammo_4gauge_sleek.png | Bin 366 -> 0 bytes .../hbm/textures/items/ammo_4gauge_slug.png | Bin 367 -> 0 bytes .../hbm/textures/items/ammo_4gauge_titan.png | Bin 376 -> 0 bytes .../textures/items/ammo_4gauge_vampire.png | Bin 323 -> 0 bytes .../hbm/textures/items/ammo_4gauge_void.png | Bin 326 -> 0 bytes .../assets/hbm/textures/items/ammo_50ae.png | Bin 318 -> 0 bytes .../hbm/textures/items/ammo_50ae_ap.png | Bin 337 -> 0 bytes .../textures/items/ammo_50ae_chlorophyte.png | Bin 296 -> 0 bytes .../hbm/textures/items/ammo_50ae_du.png | Bin 348 -> 0 bytes .../hbm/textures/items/ammo_50ae_star.png | Bin 369 -> 0 bytes .../assets/hbm/textures/items/ammo_50bmg.png | Bin 331 -> 0 bytes .../hbm/textures/items/ammo_50bmg_ap.png | Bin 350 -> 0 bytes .../textures/items/ammo_50bmg_chlorophyte.png | Bin 294 -> 0 bytes .../hbm/textures/items/ammo_50bmg_du.png | Bin 384 -> 0 bytes .../textures/items/ammo_50bmg_explosive.png | Bin 362 -> 0 bytes .../textures/items/ammo_50bmg_flechette.png | Bin 318 -> 0 bytes .../items/ammo_50bmg_flechette_am.png | Bin 339 -> 0 bytes .../items/ammo_50bmg_flechette_po.png | Bin 333 -> 0 bytes .../textures/items/ammo_50bmg_incendiary.png | Bin 349 -> 0 bytes .../textures/items/ammo_50bmg_phosphorus.png | Bin 399 -> 0 bytes .../hbm/textures/items/ammo_50bmg_sleek.png | Bin 324 -> 0 bytes .../hbm/textures/items/ammo_50bmg_star.png | Bin 382 -> 0 bytes .../assets/hbm/textures/items/ammo_556.png | Bin 346 -> 0 bytes .../assets/hbm/textures/items/ammo_556_ap.png | Bin 352 -> 0 bytes .../textures/items/ammo_556_chlorophyte.png | Bin 299 -> 0 bytes .../assets/hbm/textures/items/ammo_556_du.png | Bin 388 -> 0 bytes .../hbm/textures/items/ammo_556_flechette.png | Bin 332 -> 0 bytes .../items/ammo_556_flechette_chlorophyte.png | Bin 311 -> 0 bytes .../textures/items/ammo_556_flechette_du.png | Bin 374 -> 0 bytes .../items/ammo_556_flechette_incendiary.png | Bin 342 -> 0 bytes .../items/ammo_556_flechette_phosphorus.png | Bin 396 -> 0 bytes .../items/ammo_556_flechette_sleek.png | Bin 306 -> 0 bytes .../assets/hbm/textures/items/ammo_556_k.png | Bin 315 -> 0 bytes .../textures/items/ammo_556_phosphorus.png | Bin 417 -> 0 bytes .../hbm/textures/items/ammo_556_sleek.png | Bin 321 -> 0 bytes .../hbm/textures/items/ammo_556_star.png | Bin 378 -> 0 bytes .../hbm/textures/items/ammo_556_tracer.png | Bin 352 -> 0 bytes .../assets/hbm/textures/items/ammo_5mm.png | Bin 485 -> 0 bytes .../hbm/textures/items/ammo_5mm_alt.png | Bin 474 -> 0 bytes .../textures/items/ammo_5mm_chlorophyte.png | Bin 456 -> 0 bytes .../assets/hbm/textures/items/ammo_5mm_du.png | Bin 494 -> 0 bytes .../hbm/textures/items/ammo_5mm_explosive.png | Bin 486 -> 0 bytes .../hbm/textures/items/ammo_5mm_star.png | Bin 539 -> 0 bytes .../assets/hbm/textures/items/ammo_75bolt.png | Bin 320 -> 0 bytes .../hbm/textures/items/ammo_75bolt_he.png | Bin 431 -> 0 bytes .../textures/items/ammo_75bolt_incendiary.png | Bin 412 -> 0 bytes .../assets/hbm/textures/items/ammo_762.png | Bin 1953 -> 0 bytes .../assets/hbm/textures/items/ammo_762_ap.png | Bin 1964 -> 0 bytes .../assets/hbm/textures/items/ammo_762_du.png | Bin 2062 -> 0 bytes .../assets/hbm/textures/items/ammo_762_k.png | Bin 302 -> 0 bytes .../textures/items/ammo_762_phosphorus.png | Bin 2130 -> 0 bytes .../hbm/textures/items/ammo_762_tracer.png | Bin 341 -> 0 bytes .../assets/hbm/textures/items/ammo_9mm.png | Bin 321 -> 0 bytes .../assets/hbm/textures/items/ammo_9mm_ap.png | Bin 337 -> 0 bytes .../textures/items/ammo_9mm_chlorophyte.png | Bin 300 -> 0 bytes .../assets/hbm/textures/items/ammo_9mm_du.png | Bin 340 -> 0 bytes .../hbm/textures/items/ammo_9mm_rocket.png | Bin 313 -> 0 bytes .../assets/hbm/textures/items/ammo_bag.png | Bin 0 -> 332 bytes .../hbm/textures/items/ammo_balefire.png | Bin 211 -> 0 bytes .../hbm/textures/items/ammo_balefire_high.png | Bin 228 -> 0 bytes .../assets/hbm/textures/items/ammo_cell.png | Bin 193 -> 0 bytes .../textures/items/ammo_cell_explosive.png | Bin 233 -> 0 bytes .../textures/items/ammo_cell_incendiary.png | Bin 231 -> 0 bytes .../assets/hbm/textures/items/ammo_dart.png | Bin 184 -> 0 bytes .../hbm/textures/items/ammo_dart_nerf.png | Bin 227 -> 0 bytes .../hbm/textures/items/ammo_dart_nuclear.png | Bin 203 -> 0 bytes .../textures/items/ammo_secret.p35_800.png | Bin 0 -> 313 bytes .../assets/hbm/textures/items/assembly_45.png | Bin 363 -> 0 bytes .../hbm/textures/items/assembly_556.png | Bin 375 -> 0 bytes .../hbm/textures/items/assembly_762.png | Bin 2180 -> 0 bytes .../textures/items/assembly_actionexpress.png | Bin 344 -> 0 bytes .../hbm/textures/items/assembly_calamity.png | Bin 366 -> 0 bytes .../hbm/textures/items/assembly_desh.png | Bin 222 -> 0 bytes .../hbm/textures/items/assembly_gold.png | Bin 222 -> 0 bytes .../hbm/textures/items/assembly_iron.png | Bin 372 -> 0 bytes .../hbm/textures/items/assembly_lacunae.png | Bin 410 -> 0 bytes .../hbm/textures/items/assembly_lead.png | Bin 272 -> 0 bytes .../hbm/textures/items/assembly_luna.png | Bin 2259 -> 0 bytes .../hbm/textures/items/assembly_nightmare.png | Bin 259 -> 0 bytes .../hbm/textures/items/assembly_nopip.png | Bin 296 -> 0 bytes .../hbm/textures/items/assembly_pip.png | Bin 307 -> 0 bytes .../textures/items/assembly_schrabidium.png | Bin 268 -> 0 bytes .../hbm/textures/items/assembly_smg.png | Bin 339 -> 0 bytes .../hbm/textures/items/assembly_steel.png | Bin 294 -> 0 bytes .../hbm/textures/items/assembly_uzi.png | Bin 237 -> 0 bytes .../assets/hbm/textures/items/b_smoke1.png | Bin 183 -> 0 bytes .../assets/hbm/textures/items/b_smoke2.png | Bin 173 -> 0 bytes .../assets/hbm/textures/items/b_smoke3.png | Bin 169 -> 0 bytes .../assets/hbm/textures/items/b_smoke4.png | Bin 167 -> 0 bytes .../assets/hbm/textures/items/b_smoke5.png | Bin 161 -> 0 bytes .../assets/hbm/textures/items/b_smoke6.png | Bin 158 -> 0 bytes .../assets/hbm/textures/items/b_smoke7.png | Bin 154 -> 0 bytes .../assets/hbm/textures/items/b_smoke8.png | Bin 148 -> 0 bytes .../assets/hbm/textures/items/casing_bag.png | Bin 0 -> 335 bytes ..._malachite.png => chunk_ore.malachite.png} | Bin 172 files changed, 532 insertions(+), 122 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerCasingBag.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUICasingBag.java create mode 100644 src/main/java/com/hbm/items/tool/ItemCasingBag.java create mode 100644 src/main/resources/assets/hbm/textures/gui/gui_casing_bag.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_12gauge.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_12gauge_du.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_12gauge_incendiary.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_12gauge_marauder.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_12gauge_percussion.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_12gauge_shrapnel.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_12gauge_sleek.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_20gauge.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_20gauge_caustic.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_20gauge_explosive.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_20gauge_flechette.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_20gauge_incendiary.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_20gauge_shock.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_20gauge_shrapnel.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_20gauge_sleek.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_20gauge_slug.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_20gauge_wither.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_22lr.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_22lr_ap.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_22lr_chlorophyte.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_357_desh.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_357_ender.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_44.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_44_ap.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_44_bj.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_44_chlorophyte.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_44_du.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_44_phosphorus.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_44_pip.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_44_rocket.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_44_silver.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_44_star.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_45_ap.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_45_du.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_4gauge.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_4gauge_balefire.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_4gauge_canister.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_4gauge_claw.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_4gauge_explosive.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_4gauge_flechette.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_4gauge_flechette_phosphorus.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_4gauge_kampf.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_4gauge_semtex.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_4gauge_shrapnel.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_4gauge_sleek.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_4gauge_slug.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_4gauge_titan.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_4gauge_vampire.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_4gauge_void.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_50ae.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_50ae_ap.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_50ae_chlorophyte.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_50ae_du.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_50ae_star.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_50bmg.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_50bmg_ap.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_50bmg_chlorophyte.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_50bmg_du.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_50bmg_explosive.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_50bmg_flechette.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_50bmg_flechette_am.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_50bmg_flechette_po.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_50bmg_incendiary.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_50bmg_phosphorus.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_50bmg_sleek.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_50bmg_star.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_556.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_556_ap.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_556_chlorophyte.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_556_du.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_556_flechette.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_556_flechette_chlorophyte.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_556_flechette_du.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_556_flechette_incendiary.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_556_flechette_phosphorus.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_556_flechette_sleek.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_556_k.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_556_phosphorus.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_556_sleek.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_556_star.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_556_tracer.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_5mm.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_5mm_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_5mm_chlorophyte.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_5mm_du.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_5mm_explosive.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_5mm_star.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_75bolt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_75bolt_he.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_75bolt_incendiary.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_762.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_762_ap.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_762_du.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_762_k.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_762_phosphorus.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_762_tracer.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_9mm.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_9mm_ap.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_9mm_chlorophyte.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_9mm_du.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_9mm_rocket.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_bag.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_balefire.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_balefire_high.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_cell.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_cell_explosive.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_cell_incendiary.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_dart.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_dart_nerf.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_dart_nuclear.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_secret.p35_800.png delete mode 100644 src/main/resources/assets/hbm/textures/items/assembly_45.png delete mode 100644 src/main/resources/assets/hbm/textures/items/assembly_556.png delete mode 100644 src/main/resources/assets/hbm/textures/items/assembly_762.png delete mode 100644 src/main/resources/assets/hbm/textures/items/assembly_actionexpress.png delete mode 100644 src/main/resources/assets/hbm/textures/items/assembly_calamity.png delete mode 100644 src/main/resources/assets/hbm/textures/items/assembly_desh.png delete mode 100644 src/main/resources/assets/hbm/textures/items/assembly_gold.png delete mode 100644 src/main/resources/assets/hbm/textures/items/assembly_iron.png delete mode 100644 src/main/resources/assets/hbm/textures/items/assembly_lacunae.png delete mode 100644 src/main/resources/assets/hbm/textures/items/assembly_lead.png delete mode 100644 src/main/resources/assets/hbm/textures/items/assembly_luna.png delete mode 100644 src/main/resources/assets/hbm/textures/items/assembly_nightmare.png delete mode 100644 src/main/resources/assets/hbm/textures/items/assembly_nopip.png delete mode 100644 src/main/resources/assets/hbm/textures/items/assembly_pip.png delete mode 100644 src/main/resources/assets/hbm/textures/items/assembly_schrabidium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/assembly_smg.png delete mode 100644 src/main/resources/assets/hbm/textures/items/assembly_steel.png delete mode 100644 src/main/resources/assets/hbm/textures/items/assembly_uzi.png delete mode 100644 src/main/resources/assets/hbm/textures/items/b_smoke1.png delete mode 100644 src/main/resources/assets/hbm/textures/items/b_smoke2.png delete mode 100644 src/main/resources/assets/hbm/textures/items/b_smoke3.png delete mode 100644 src/main/resources/assets/hbm/textures/items/b_smoke4.png delete mode 100644 src/main/resources/assets/hbm/textures/items/b_smoke5.png delete mode 100644 src/main/resources/assets/hbm/textures/items/b_smoke6.png delete mode 100644 src/main/resources/assets/hbm/textures/items/b_smoke7.png delete mode 100644 src/main/resources/assets/hbm/textures/items/b_smoke8.png create mode 100644 src/main/resources/assets/hbm/textures/items/casing_bag.png rename src/main/resources/assets/hbm/textures/items/{chunk_ore_malachite.png => chunk_ore.malachite.png} (100%) diff --git a/changelog b/changelog index ea9b5d05a..dac015795 100644 --- a/changelog +++ b/changelog @@ -7,6 +7,11 @@ # Particle accelerator * A new and improved version of the old one * Instead of being assembled block by block with weird rules, the new PA is assembled from six different machine parts, similar to how RBMKs work +* Ammo casing bag + * Can be carried around in the inventory, will fill with empty casings when guns are fired + * Casings have a fixed 50% recovery rate and are based on the recipe + * Can also recover parts of non-standard ammo like plastic from capacitors and lead plates from uranium boxes + * Ammo that is used whole, like rockets and mini nukes, do not leave any casing behind ## Changed * The bedrock ore processor now has an NEI handler @@ -23,12 +28,20 @@ * This also includes a multiplier for ammo spread, which mainly concerns sawed-off shotguns (dual lever action shotguns, Broken and Sacred Dragon) and amplifies the inaccuracy for things like buckshot while slugs perform the same * Guns that cannot be aimed (no sights, akimbo) or where aiming is only useful for special effects (missile launcher lockon, quad launcher steering) do not have a hipfire penalty * Malachite now spawns in large deposits similar to hematite or bauxite, malachite veins are slightly smaller than bauxite veins +* Malachite now drops malachite chunks, 6-8 by default. Malachite drops are subject to fortune, each level adding 2-3 extra chunks +* Malachite obtained by silk touch is now worth 10 ingots * Limestone veins are now 50% larger * The compressor now has a NEI handler for any non-generic recipe * Removed compression recipes for steam, because why would you ever use those? * Fluid tanks that use pressurized fluids now say "pressurized, use compressor!" to avoid confusion over what "1PU" means * Damage should no longer register at all when the damage resistance is 100%, similar to how damage is completely nullified by DT (i.e. not even knockback is applied) * Anvil construction recipes are now configurable via `hbmAnvil.json` +* Arc furnace recipe generation has changed + * Recipe collision should be fixed, since a recipe will now write its valid inputs to a list, if a subsequent recipe has an ingredient already present in the list, it will not be generated + * This means that NTM's custom recipes take precedent, and only some edge cases with vanilla furnace recipes are removed + * This means there is no more ambiguity in the NEI handler over what item smelts into what + * As a consequence, the arc furnace's recipe generator no longer accepts wildcard meta, in practice this likely doesn't matter since ores and ingots generally don't use wildcard recipes anyway + * Recipe lookups should be a tad faster due to a type change ## Fixed * Fixed incorrect tooltip in the automatic control rod's GUI diff --git a/src/main/java/com/hbm/blocks/generic/BlockResourceStone.java b/src/main/java/com/hbm/blocks/generic/BlockResourceStone.java index 7100843ab..ffea6c6b1 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockResourceStone.java +++ b/src/main/java/com/hbm/blocks/generic/BlockResourceStone.java @@ -1,10 +1,16 @@ package com.hbm.blocks.generic; +import java.util.ArrayList; + import com.hbm.blocks.BlockEnumMulti; import com.hbm.blocks.BlockEnums; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.items.ItemEnums.EnumChunkType; +import com.hbm.items.ModItems; import net.minecraft.block.material.Material; +import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class BlockResourceStone extends BlockEnumMulti { @@ -22,4 +28,16 @@ public class BlockResourceStone extends BlockEnumMulti { super.dropBlockAsItemWithChance(world, x, y, z, meta, chance, fortune); } + + @Override + public ArrayList getDrops(World world, int x, int y, int z, int meta, int fortune) { + + if(meta == BlockEnums.EnumStoneType.MALACHITE.ordinal()) { + ArrayList ret = new ArrayList(); + ret.add(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.MALACHITE, 6 + fortune * 2 + world.rand.nextInt(fortune + 3))); + return ret; + } + + return super.getDrops(world, x, y, z, meta, fortune); + } } diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index b918c1480..3157d450a 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -442,7 +442,7 @@ public class OreDictManager { SODALITE .gem(gem_sodalite); VOLCANIC .gem(gem_volcanic) .ore(DictFrame.fromOne(ore_basalt, EnumBasaltOreType.GEM)); HEMATITE .ore(fromOne(stone_resource, EnumStoneType.HEMATITE)); - MALACHITE .ore(fromOne(stone_resource, EnumStoneType.MALACHITE)); + MALACHITE .ingot(DictFrame.fromOne(chunk_ore, EnumChunkType.MALACHITE)) .ore(fromOne(stone_resource, EnumStoneType.MALACHITE)); LIMESTONE .dust(powder_limestone) .ore(fromOne(stone_resource, EnumStoneType.LIMESTONE)); SLAG .block(block_slag); diff --git a/src/main/java/com/hbm/inventory/container/ContainerCasingBag.java b/src/main/java/com/hbm/inventory/container/ContainerCasingBag.java new file mode 100644 index 000000000..d02549627 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerCasingBag.java @@ -0,0 +1,85 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotNonRetarded; +import com.hbm.items.tool.ItemCasingBag.InventoryCasingBag; +import com.hbm.util.InventoryUtil; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerCasingBag extends Container { + + private InventoryCasingBag bag; + + public ContainerCasingBag(InventoryPlayer invPlayer, InventoryCasingBag box) { + this.bag = box; + this.bag.openInventory(); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 5; j++) { + this.addSlotToContainer(new SlotNonRetarded(box, j + i * 5, 44 + j * 18, 18 + i * 18)); + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 100 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 158)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= bag.getSizeInventory() - 1) { + if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, bag.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, 0, bag.getSizeInventory(), false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(p_82846_1_, var5); + } + + return var3; + } + + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + // prevents the player from moving around the currently open box + if(mode == 2 && button == player.inventory.currentItem) return null; + if(index == player.inventory.currentItem + 27 + bag.getSizeInventory()) return null; + return super.slotClick(index, button, mode, player); + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return bag.isUseableByPlayer(player); + } + + @Override + public void onContainerClosed(EntityPlayer player) { + super.onContainerClosed(player); + this.bag.closeInventory(); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUICasingBag.java b/src/main/java/com/hbm/inventory/gui/GUICasingBag.java new file mode 100644 index 000000000..413c47613 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUICasingBag.java @@ -0,0 +1,51 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCasingBag; +import com.hbm.items.tool.ItemCasingBag.InventoryCasingBag; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUICasingBag extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_casing_bag.png"); + private final InventoryCasingBag inventory; + + public GUICasingBag(InventoryPlayer invPlayer, InventoryCasingBag bag) { + super(new ContainerCasingBag(invPlayer, bag)); + this.inventory = bag; + + this.xSize = 176; + this.ySize = 186; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = I18n.format(this.inventory.getInventoryName()); + + if(inventory.hasCustomInventoryName()) { + name = inventory.box.getDisplayName(); + } + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 98, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/material/MatDistribution.java b/src/main/java/com/hbm/inventory/material/MatDistribution.java index 306c2e654..c89d1b951 100644 --- a/src/main/java/com/hbm/inventory/material/MatDistribution.java +++ b/src/main/java/com/hbm/inventory/material/MatDistribution.java @@ -82,7 +82,7 @@ public class MatDistribution extends SerializableRecipe { registerOre(OreDictManager.REDSTONE.ore(), MAT_REDSTONE, INGOT.q(4), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.HEMATITE.ore(), MAT_HEMATITE, INGOT.q(1)); - registerOre(OreDictManager.MALACHITE.ore(), MAT_MALACHITE, INGOT.q(1)); + registerOre(OreDictManager.MALACHITE.ore(), MAT_MALACHITE, INGOT.q(10)); registerEntry(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.LIMESTONE), MAT_FLUX, DUST.q(10)); registerEntry(ModItems.powder_flux, MAT_FLUX, DUST.q(1)); diff --git a/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java index 800bd9ac6..35b202158 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java @@ -3,6 +3,7 @@ package com.hbm.inventory.recipes; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map.Entry; @@ -28,6 +29,7 @@ import com.hbm.items.machine.ItemScraps; import com.hbm.items.special.ItemBedrockOreNew; import com.hbm.items.special.ItemBedrockOreNew.BedrockOreGrade; import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; +import com.hbm.util.Tuple.Pair; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -36,43 +38,47 @@ import net.minecraftforge.oredict.OreDictionary; public class ArcFurnaceRecipes extends SerializableRecipe { - public static HashMap recipes = new HashMap(); + public static List> recipeList = new ArrayList(); + /* quick lookup for translating input stacks into the output, created lazily whenever a recipe is checked for the first time */ public static HashMap fastCacheSolid = new HashMap(); public static HashMap fastCacheLiquid = new HashMap(); + /* used for the recipe creation process to cache which inputs are already in use to prevent input collisions */ + public static HashSet occupiedSolid = new HashSet(); + public static HashSet occupiedLiquid = new HashSet(); @Override public void registerDefaults() { - recipes.put(new OreDictStack(KEY_SAND), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.NUGGET.q(1)))); - recipes.put(new ComparableStack(Items.flint), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 4)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(1, 2)))); - recipes.put(new OreDictStack(QUARTZ.gem()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 3)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.NUGGET.q(3)))); - recipes.put(new OreDictStack(QUARTZ.dust()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 3)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.NUGGET.q(3)))); - recipes.put(new OreDictStack(QUARTZ.block()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 12)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.NUGGET.q(12)))); - recipes.put(new OreDictStack(FIBER.ingot()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 4)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(1, 2)))); - recipes.put(new OreDictStack(FIBER.block()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 40)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(9, 2)))); - recipes.put(new OreDictStack(ASBESTOS.ingot()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 4)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(1, 2)))); - recipes.put(new OreDictStack(ASBESTOS.dust()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 4)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(1, 2)))); - recipes.put(new OreDictStack(ASBESTOS.block()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 40)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(9, 2)))); + register(new OreDictStack(KEY_SAND), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.NUGGET.q(1)))); + register(new ComparableStack(Items.flint), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 4)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(1, 2)))); + register(new OreDictStack(QUARTZ.gem()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 3)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.NUGGET.q(3)))); + register(new OreDictStack(QUARTZ.dust()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 3)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.NUGGET.q(3)))); + register(new OreDictStack(QUARTZ.block()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 12)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.NUGGET.q(12)))); + register(new OreDictStack(FIBER.ingot()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 4)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(1, 2)))); + register(new OreDictStack(FIBER.block()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 40)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(9, 2)))); + register(new OreDictStack(ASBESTOS.ingot()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 4)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(1, 2)))); + register(new OreDictStack(ASBESTOS.dust()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 4)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(1, 2)))); + register(new OreDictStack(ASBESTOS.block()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 40)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(9, 2)))); - recipes.put(new ComparableStack(ModBlocks.sand_quartz), new ArcFurnaceRecipe().solid(new ItemStack(ModBlocks.glass_quartz))); - recipes.put(new OreDictStack(BORAX.dust()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.powder_boron_tiny, 3)).fluid(new MaterialStack(Mats.MAT_BORON, MaterialShapes.NUGGET.q(3)))); + register(new ComparableStack(ModBlocks.sand_quartz), new ArcFurnaceRecipe().solid(new ItemStack(ModBlocks.glass_quartz))); + register(new OreDictStack(BORAX.dust()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.powder_boron_tiny, 3)).fluid(new MaterialStack(Mats.MAT_BORON, MaterialShapes.NUGGET.q(3)))); for(BedrockOreType type : BedrockOreType.values()) { - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 2))); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 4))); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ARC, type, 2))); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ARC, type, 4))); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ARC, type, 2))); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ARC, type, 4))); + register(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 2))); + register(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 4))); + register(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ARC, type, 2))); + register(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ARC, type, 4))); + register(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ARC, type, 2))); + register(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ARC, type, 4))); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, 5), ItemBedrockOreNew.toFluid(type.primary2, 2))); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, 2), ItemBedrockOreNew.toFluid(type.primary2, 5))); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, 1), ItemBedrockOreNew.toFluid(type.primary2, 1))); + register(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, 5), ItemBedrockOreNew.toFluid(type.primary2, 2))); + register(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, 2), ItemBedrockOreNew.toFluid(type.primary2, 5))); + register(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, 1), ItemBedrockOreNew.toFluid(type.primary2, 1))); int i3 = 3; - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_WASHED, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.byproductAcid1, i3), ItemBedrockOreNew.toFluid(type.byproductAcid2, i3), ItemBedrockOreNew.toFluid(type.byproductAcid3, i3))); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_WASHED, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.byproductSolvent1, i3), ItemBedrockOreNew.toFluid(type.byproductSolvent2, i3), ItemBedrockOreNew.toFluid(type.byproductSolvent3, i3))); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_WASHED, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.byproductRad1, i3), ItemBedrockOreNew.toFluid(type.byproductRad2, i3), ItemBedrockOreNew.toFluid(type.byproductRad3, i3))); + register(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_WASHED, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.byproductAcid1, i3), ItemBedrockOreNew.toFluid(type.byproductAcid2, i3), ItemBedrockOreNew.toFluid(type.byproductAcid3, i3))); + register(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_WASHED, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.byproductSolvent1, i3), ItemBedrockOreNew.toFluid(type.byproductSolvent2, i3), ItemBedrockOreNew.toFluid(type.byproductSolvent3, i3))); + register(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_WASHED, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.byproductRad1, i3), ItemBedrockOreNew.toFluid(type.byproductRad2, i3), ItemBedrockOreNew.toFluid(type.byproductRad3, i3))); } // Autogen for simple single type items @@ -86,12 +92,9 @@ public class ArcFurnaceRecipes extends SerializableRecipe { String name = shape.name() + material.names[0]; if(!OreDictionary.getOres(name).isEmpty()) { OreDictStack dict = new OreDictStack(name); - ArcFurnaceRecipe recipe = recipes.get(dict); - if(recipe == null) recipe = new ArcFurnaceRecipe(); - if(recipe.fluidOutput == null) { - recipe.fluid(new MaterialStack(convert, (int) (shape.q(1) * out / in))); - recipes.put(dict, recipe); - } + ArcFurnaceRecipe recipe = new ArcFurnaceRecipe(); + recipe.fluid(new MaterialStack(convert, (int) (shape.q(1) * out / in))); + register(dict, recipe); } } } @@ -116,17 +119,31 @@ public class ArcFurnaceRecipes extends SerializableRecipe { if(input != null && output != null) { ComparableStack comp = new ComparableStack(input); if(OreDictManager.arcSmeltable.contains(comp) || OreDictManager.arcSmeltable.contains(new ComparableStack(output))) { - ArcFurnaceRecipe recipe = recipes.get(comp); - if(recipe == null) recipe = new ArcFurnaceRecipe(); - if(recipe.solidOutput == null) { - recipe.solid(output.copy()); - recipes.put(comp, recipe); - } + ArcFurnaceRecipe recipe = new ArcFurnaceRecipe(); + recipe.solid(output.copy()); + register(comp, recipe); } } } } + public static void register(AStack input, ArcFurnaceRecipe output) { + List inputs = input.extractForNEI(); + for(ItemStack stack : inputs) { + ComparableStack compStack = new ComparableStack(stack); + if(compStack.meta == OreDictionary.WILDCARD_VALUE) compStack.meta = 0; + if(output.solidOutput != null) if(occupiedSolid.contains(compStack)) return; + if(output.fluidOutput != null) if(occupiedLiquid.contains(compStack)) return; + } + recipeList.add(new Pair(input, output)); + for(ItemStack stack : inputs) { + ComparableStack compStack = new ComparableStack(stack); + if(compStack.meta == OreDictionary.WILDCARD_VALUE) compStack.meta = 0; + if(output.solidOutput != null) occupiedSolid.add(compStack); + if(output.fluidOutput != null) occupiedLiquid.add(compStack); + } + } + private static void addCustomSmeltable(AStack astack, List mats) { List smeltables = new ArrayList(); for(MaterialStack mat : mats) { @@ -135,12 +152,9 @@ public class ArcFurnaceRecipes extends SerializableRecipe { } } if(smeltables.isEmpty()) return; - ArcFurnaceRecipe recipe = recipes.get(astack); - if(recipe == null) recipe = new ArcFurnaceRecipe(); - if(recipe.fluidOutput == null) { - recipe.fluid(smeltables.toArray(new MaterialStack[0])); - recipes.put(astack, recipe); - } + ArcFurnaceRecipe recipe = new ArcFurnaceRecipe(); + recipe.fluid(smeltables.toArray(new MaterialStack[0])); + register(astack, recipe); } public static ArcFurnaceRecipe getOutput(ItemStack stack, boolean liquid) { @@ -160,7 +174,7 @@ public class ArcFurnaceRecipes extends SerializableRecipe { if(!liquid && fastCacheSolid.containsKey(cacheKey)) return fastCacheSolid.get(cacheKey); if(liquid && fastCacheLiquid.containsKey(cacheKey)) return fastCacheLiquid.get(cacheKey); - for(Entry entry : recipes.entrySet()) { + for(Pair entry : recipeList) { if(entry.getKey().matchesRecipe(stack, true)) { ArcFurnaceRecipe rec = entry.getValue(); if((liquid && rec.fluidOutput != null) || (!liquid && rec.solidOutput != null)) { @@ -179,7 +193,7 @@ public class ArcFurnaceRecipes extends SerializableRecipe { public static HashMap getSolidRecipes() { HashMap recipes = new HashMap(); - for(Entry recipe : ArcFurnaceRecipes.recipes.entrySet()) { + for(Pair recipe : ArcFurnaceRecipes.recipeList) { if(recipe.getValue().solidOutput != null) recipes.put(recipe.getKey().copy(), recipe.getValue().solidOutput.copy()); } return recipes; @@ -187,7 +201,7 @@ public class ArcFurnaceRecipes extends SerializableRecipe { public static HashMap getFluidRecipes() { HashMap recipes = new HashMap(); - for(Entry recipe : ArcFurnaceRecipes.recipes.entrySet()) { + for(Pair recipe : ArcFurnaceRecipes.recipeList) { if(recipe.getValue().fluidOutput != null && recipe.getValue().fluidOutput.length > 0) { Object[] out = new Object[recipe.getValue().fluidOutput.length]; for(int i = 0; i < out.length; i++) out[i] = ItemScraps.create(recipe.getValue().fluidOutput[i], true); @@ -209,12 +223,14 @@ public class ArcFurnaceRecipes extends SerializableRecipe { @Override public Object getRecipeObject() { - return recipes; + return recipeList; } @Override public void deleteRecipes() { - recipes.clear(); + occupiedSolid.clear(); + occupiedLiquid.clear(); + recipeList.clear(); fastCacheSolid.clear(); fastCacheLiquid.clear(); } @@ -245,12 +261,12 @@ public class ArcFurnaceRecipes extends SerializableRecipe { } } - this.recipes.put(input, arc); + register(input, arc); } @Override public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { - Entry rec = (Entry) recipe; + Pair rec = (Pair) recipe; writer.name("input"); this.writeAStack(rec.getKey(), writer); diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index ae35cb4c3..e794945d0 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -51,7 +51,7 @@ public class ItemEnums { } public static enum EnumChunkType { - RARE + RARE, MALACHITE } public static enum EnumAchievementType { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 2ba03389f..a4da0ac16 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1160,6 +1160,7 @@ public class ModItems { public static Item containment_box; public static Item plastic_bag; + public static Item casing_bag; public static Item test_nuke_igniter; public static Item test_nuke_propellant; @@ -3589,6 +3590,7 @@ public class ModItems { scrap_nuclear = new Item().setUnlocalizedName("scrap_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap_nuclear"); containment_box = new ItemLeadBox().setUnlocalizedName("containment_box").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":containment_box"); plastic_bag = new ItemPlasticBag().setUnlocalizedName("plastic_bag").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":plastic_bag"); + casing_bag = new ItemCasingBag().setUnlocalizedName("casing_bag").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":casing_bag"); debris_graphite = new Item().setUnlocalizedName("debris_graphite").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_graphite"); debris_metal = new Item().setUnlocalizedName("debris_metal").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_metal"); @@ -6234,6 +6236,7 @@ public class ModItems { GameRegistry.registerItem(pollution_detector, pollution_detector.getUnlocalizedName()); GameRegistry.registerItem(containment_box, containment_box.getUnlocalizedName()); GameRegistry.registerItem(plastic_bag, plastic_bag.getUnlocalizedName()); + GameRegistry.registerItem(casing_bag, casing_bag.getUnlocalizedName()); //Keys and Locks GameRegistry.registerItem(key, key.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/tool/ItemCasingBag.java b/src/main/java/com/hbm/items/tool/ItemCasingBag.java new file mode 100644 index 000000000..342a9198a --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemCasingBag.java @@ -0,0 +1,181 @@ +package com.hbm.items.tool; + +import com.hbm.inventory.container.ContainerCasingBag; +import com.hbm.inventory.gui.GUICasingBag; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.util.ItemStackUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class ItemCasingBag extends Item implements IGUIProvider { + + public ItemCasingBag() { + this.setMaxStackSize(1); + } + + @Override + public int getMaxItemUseDuration(ItemStack stack) { + return 1; + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + if(!world.isRemote) player.openGui(MainRegistry.instance, 0, world, 0, 0, 0); + return stack; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerCasingBag(player.inventory, new InventoryCasingBag(player.getHeldItem())); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUICasingBag(player.inventory, new InventoryCasingBag(player.getHeldItem())); + } + + /** + * Returns true if ammo was able to be added + * @param bag + * @param casing + * @param amount + * @return + */ + public static boolean pushCasing(ItemStack bag, ItemStack casing, float amount) { + if(!bag.hasTagCompound()) bag.stackTagCompound = new NBTTagCompound(); + String name = casing.getUnlocalizedName() + "@" + casing.getItemDamage(); + boolean ret = false; + //only add if the previous number did not exceed 1 (i.e. the bag ran full, and may have been emptied, we don't know) + //this may also cause minor loss, which evens out the dupe mentioned below. not that it matters, casings only have a 50% recovery rate! + if(bag.stackTagCompound.getFloat(name) < 1) { + ret = true; + bag.stackTagCompound.setFloat(name, bag.stackTagCompound.getFloat(name) + amount); + } + if(bag.stackTagCompound.getFloat(name) >= 1) { + InventoryCasingBag inv = new InventoryCasingBag(bag); + ItemStack toAdd = casing.copy(); + while(bag.stackTagCompound.getFloat(name) >= 1) { + + boolean didSomething = false; + + for(int i = 0; i < inv.getSizeInventory(); i++) { + if(toAdd.stackSize <= 0) break; + ItemStack slot = inv.getStackInSlot(i); + if(slot != null && slot.getItem() == toAdd.getItem() && slot.getItemDamage() == toAdd.getItemDamage()) { + int am = Math.min(toAdd.stackSize, slot.getMaxStackSize() - slot.stackSize); + toAdd.stackSize -= am; + slot.stackSize += am; + didSomething = true; + } + } + + for(int i = 0; i < inv.getSizeInventory(); i++) { + if(toAdd.stackSize <= 0) break; + ItemStack slot = inv.getStackInSlot(i); + if(slot == null) { + inv.setInventorySlotContents(i, toAdd); + didSomething = true; + break; + } + } + + bag.stackTagCompound.setFloat(name, bag.stackTagCompound.getFloat(name) - 1F); + + if(didSomething) { + ret = true; + } else { + break; + } + } + inv.markDirty(); + } + return ret; + } + + public static class InventoryCasingBag implements IInventory { + + public final ItemStack box; + public ItemStack[] slots; + + public InventoryCasingBag(ItemStack box) { + this.box = box; + slots = new ItemStack[this.getSizeInventory()]; + + if(!box.hasTagCompound()) + box.setTagCompound(new NBTTagCompound()); + + ItemStack[] fromNBT = ItemStackUtil.readStacksFromNBT(box, slots.length); + + if(fromNBT != null) { + for(int i = 0; i < slots.length; i++) { + slots[i] = fromNBT[i]; + } + } + } + + @Override public int getSizeInventory() { return 15; } + @Override public ItemStack getStackInSlot(int slot) { return slots[slot]; } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + ItemStack stack = getStackInSlot(slot); + if (stack != null) { + if (stack.stackSize > amount) { + stack = stack.splitStack(amount); + markDirty(); + } else { + setInventorySlotContents(slot, null); + } + } + return stack; + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + ItemStack stack = getStackInSlot(slot); + setInventorySlotContents(slot, null); + return stack; + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + + if(stack != null) { + stack.stackSize = Math.min(stack.stackSize, this.getInventoryStackLimit()); + } + + slots[slot] = stack; + markDirty(); + } + + @Override public String getInventoryName() { return "container.casingBag"; } + @Override public boolean hasCustomInventoryName() { return box.hasDisplayName(); } + @Override public int getInventoryStackLimit() { return 64; } + + @Override + public void markDirty() { + for(int i = 0; i < getSizeInventory(); ++i) { + if(getStackInSlot(i) != null && getStackInSlot(i).stackSize == 0) { + slots[i] = null; + } + } + + ItemStackUtil.addStacksToNBT(box, slots); + } + + @Override public boolean isUseableByPlayer(EntityPlayer player) { return true; } + @Override public void openInventory() { } + @Override public void closeInventory() { } + @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return false; } + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java b/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java index 4e916200c..faefed4f7 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java +++ b/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java @@ -10,7 +10,9 @@ import com.hbm.blocks.bomb.BlockDetonatable; import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.entity.projectile.EntityBulletBeamBase; import com.hbm.interfaces.NotableComments; +import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.ModItems; import com.hbm.items.weapon.sedna.factory.ConfettiUtil; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; @@ -42,6 +44,8 @@ public class BulletConfig implements Cloneable { public int id; public ComparableStack ammo; + public ItemStack casingItem; + public int casingAmount; /** How much ammo is added to a standard mag when loading one item */ public int ammoReloadCount = 1; public float velocity = 10F; @@ -103,6 +107,8 @@ public class BulletConfig implements Cloneable { public BulletConfig setItem(ComparableStack ammo) { this.ammo = ammo; return this; } public BulletConfig setItem(EnumAmmo ammo) { this.ammo = new ComparableStack(ModItems.ammo_standard, 1, ammo.ordinal()); return this; } public BulletConfig setItem(EnumAmmoSecret ammo) { this.ammo = new ComparableStack(ModItems.ammo_secret, 1, ammo.ordinal()); return this; } + public BulletConfig setCasing(ItemStack item, int amount) { this.casingItem = item; this.casingAmount = amount; return this; } + public BulletConfig setCasing(EnumCasingType item, int amount) { this.casingItem = DictFrame.fromOne(ModItems.casing, item); this.casingAmount = amount; return this; } public BulletConfig setReloadCount(int ammoReloadCount) { this.ammoReloadCount = ammoReloadCount; return this; } public BulletConfig setVel(float velocity) { this.velocity = velocity; return this; } public BulletConfig setSpread(float spread) { this.spread = spread; return this; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java index 380c1d177..3cfd53c12 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java @@ -4,6 +4,7 @@ import java.util.function.BiConsumer; import java.util.function.BiFunction; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.items.weapon.sedna.GunConfig; @@ -31,10 +32,10 @@ public class XFactory10ga { public static void init() { - g10 = new BulletConfig().setItem(EnumAmmo.G10).setProjectiles(10).setDamage(1F/10F).setSpread(0.05F).setRicochetAngle(15).setThresholdNegation(5F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xB52B2B, SpentCasing.COLOR_CASE_12GA).setScale(1F).register("10GA")); - g10_shrapnel = new BulletConfig().setItem(EnumAmmo.G10_SHRAPNEL).setProjectiles(10).setDamage(1F/10F).setSpread(0.05F).setRicochetAngle(90).setRicochetCount(15).setThresholdNegation(5F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xE5DD00, SpentCasing.COLOR_CASE_12GA).setScale(1F).register("10GAShrapnel")); - g10_du = new BulletConfig().setItem(EnumAmmo.G10_DU).setProjectiles(10).setDamage(1F/4F).setSpread(0.05F).setRicochetAngle(15).setThresholdNegation(10F).setArmorPiercing(0.2F).setDoesPenetrate(true).setDamageFalloutByPen(false).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x538D53, SpentCasing.COLOR_CASE_12GA).setScale(1F).register("10GADU")); - g10_slug = new BulletConfig().setItem(EnumAmmo.G10_SLUG).setRicochetAngle(15).setThresholdNegation(10F).setArmorPiercing(0.1F).setDoesPenetrate(true).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x808080, SpentCasing.COLOR_CASE_12GA).setScale(1F).register("10GASlug")); + g10 = new BulletConfig().setItem(EnumAmmo.G10).setCasing(EnumCasingType.BUCKSHOT_ADVANCED, 4).setProjectiles(10).setDamage(1F/10F).setSpread(0.05F).setRicochetAngle(15).setThresholdNegation(5F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xB52B2B, SpentCasing.COLOR_CASE_12GA).setScale(1F).register("10GA")); + g10_shrapnel = new BulletConfig().setItem(EnumAmmo.G10_SHRAPNEL).setCasing(EnumCasingType.BUCKSHOT_ADVANCED, 4).setProjectiles(10).setDamage(1F/10F).setSpread(0.05F).setRicochetAngle(90).setRicochetCount(15).setThresholdNegation(5F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xE5DD00, SpentCasing.COLOR_CASE_12GA).setScale(1F).register("10GAShrapnel")); + g10_du = new BulletConfig().setItem(EnumAmmo.G10_DU).setCasing(EnumCasingType.BUCKSHOT_ADVANCED, 4).setProjectiles(10).setDamage(1F/4F).setSpread(0.05F).setRicochetAngle(15).setThresholdNegation(10F).setArmorPiercing(0.2F).setDoesPenetrate(true).setDamageFalloutByPen(false).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x538D53, SpentCasing.COLOR_CASE_12GA).setScale(1F).register("10GADU")); + g10_slug = new BulletConfig().setItem(EnumAmmo.G10_SLUG).setCasing(EnumCasingType.BUCKSHOT_ADVANCED, 4).setRicochetAngle(15).setThresholdNegation(10F).setArmorPiercing(0.1F).setDoesPenetrate(true).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x808080, SpentCasing.COLOR_CASE_12GA).setScale(1F).register("10GASlug")); ModItems.gun_double_barrel = new ItemGunBaseNT(WeaponQuality.SPECIAL, new GunConfig() .dura(1000).draw(10).inspect(39).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java index 62e147442..3afc84c3c 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java @@ -10,6 +10,7 @@ import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.entity.projectile.EntityDuchessGambit; import com.hbm.extprop.HbmLivingProps; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.items.weapon.sedna.GunConfig; @@ -255,15 +256,15 @@ public class XFactory12ga { public static void init() { - g12_bp = new BulletConfig().setItem(EnumAmmo.G12_BP).setBlackPowder(true).setProjectiles(8).setDamage(0.75F/8F).setSpread(0.05F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP")); - g12_bp_magnum = new BulletConfig().setItem(EnumAmmo.G12_BP_MAGNUM).setBlackPowder(true).setProjectiles(4).setDamage(0.75F/4F).setSpread(0.05F).setRicochetAngle(25).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP_MAGNUM")); - g12_bp_slug = new BulletConfig().setItem(EnumAmmo.G12_BP_SLUG).setBlackPowder(true).setDamage(0.75F).setSpread(0.01F).setRicochetAngle(5).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP_SLUG")); - g12 = new BulletConfig().setItem(EnumAmmo.G12).setProjectiles(8).setDamage(1F/8F).setSpread(0.05F).setRicochetAngle(15).setThresholdNegation(2F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xB52B2B, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA")); - g12_slug = new BulletConfig().setItem(EnumAmmo.G12_SLUG).setHeadshot(1.5F).setSpread(0.0F).setRicochetAngle(25).setThresholdNegation(4F).setArmorPiercing(0.15F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x393939, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_SLUG")); - g12_flechette = new BulletConfig().setItem(EnumAmmo.G12_FLECHETTE).setProjectiles(8).setDamage(1F/8F).setThresholdNegation(5F).setThresholdNegation(3F).setArmorPiercing(0.2F).setSpread(0.025F).setRicochetAngle(5).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x3C80F0, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_FLECHETTE")); - g12_magnum = new BulletConfig().setItem(EnumAmmo.G12_MAGNUM).setProjectiles(4).setDamage(2F/4F).setSpread(0.015F).setRicochetAngle(15).setThresholdNegation(4F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x278400, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_MAGNUM")); - g12_explosive = new BulletConfig().setItem(EnumAmmo.G12_EXPLOSIVE).setDamage(2.5F).setOnImpact(LAMBDA_STANDARD_EXPLODE).setSpread(0F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xDA4127, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_EXPLOSIVE")); - g12_phosphorus = new BulletConfig().setItem(EnumAmmo.G12_PHOSPHORUS).setProjectiles(8).setDamage(1F/8F).setSpread(0.015F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x910001, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_PHOSPHORUS")) + g12_bp = new BulletConfig().setItem(EnumAmmo.G12_BP).setCasing(EnumCasingType.SHOTSHELL, 12).setBlackPowder(true).setProjectiles(8).setDamage(0.75F/8F).setSpread(0.05F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP")); + g12_bp_magnum = new BulletConfig().setItem(EnumAmmo.G12_BP_MAGNUM).setCasing(EnumCasingType.SHOTSHELL, 12).setBlackPowder(true).setProjectiles(4).setDamage(0.75F/4F).setSpread(0.05F).setRicochetAngle(25).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP_MAGNUM")); + g12_bp_slug = new BulletConfig().setItem(EnumAmmo.G12_BP_SLUG).setCasing(EnumCasingType.SHOTSHELL, 12).setBlackPowder(true).setDamage(0.75F).setSpread(0.01F).setRicochetAngle(5).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP_SLUG")); + g12 = new BulletConfig().setItem(EnumAmmo.G12).setCasing(EnumCasingType.BUCKSHOT, 6).setProjectiles(8).setDamage(1F/8F).setSpread(0.05F).setRicochetAngle(15).setThresholdNegation(2F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xB52B2B, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA")); + g12_slug = new BulletConfig().setItem(EnumAmmo.G12_SLUG).setCasing(EnumCasingType.BUCKSHOT, 6).setHeadshot(1.5F).setSpread(0.0F).setRicochetAngle(25).setThresholdNegation(4F).setArmorPiercing(0.15F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x393939, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_SLUG")); + g12_flechette = new BulletConfig().setItem(EnumAmmo.G12_FLECHETTE).setCasing(EnumCasingType.BUCKSHOT, 6).setProjectiles(8).setDamage(1F/8F).setThresholdNegation(5F).setThresholdNegation(3F).setArmorPiercing(0.2F).setSpread(0.025F).setRicochetAngle(5).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x3C80F0, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_FLECHETTE")); + g12_magnum = new BulletConfig().setItem(EnumAmmo.G12_MAGNUM).setCasing(EnumCasingType.BUCKSHOT_ADVANCED, 6).setProjectiles(4).setDamage(2F/4F).setSpread(0.015F).setRicochetAngle(15).setThresholdNegation(4F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x278400, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_MAGNUM")); + g12_explosive = new BulletConfig().setItem(EnumAmmo.G12_EXPLOSIVE).setCasing(EnumCasingType.BUCKSHOT_ADVANCED, 6).setDamage(2.5F).setOnImpact(LAMBDA_STANDARD_EXPLODE).setSpread(0F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xDA4127, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_EXPLOSIVE")); + g12_phosphorus = new BulletConfig().setItem(EnumAmmo.G12_PHOSPHORUS).setCasing(EnumCasingType.BUCKSHOT_ADVANCED, 6).setProjectiles(8).setDamage(1F/8F).setSpread(0.015F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x910001, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_PHOSPHORUS")) .setOnImpact((bullet, mop) -> { if(mop.entityHit != null && mop.entityHit instanceof EntityLivingBase) { HbmLivingProps data = HbmLivingProps.getData((EntityLivingBase) mop.entityHit); if(data.phosphorus < 300) data.phosphorus = 300; } }); //g12_anthrax = new BulletConfig().setItem(EnumAmmo.G12_ANTHRAX).setProjectiles(8).setDamage(1F/8F).setSpread(0.015F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x749300, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_ANTHRAX")); g12_equestrian_bj = new BulletConfig().setItem(EnumAmmoSecret.G12_EQUESTRIAN).setDamage(0F).setOnImpact(LAMBDA_BOAT).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_EQUESTRIAN, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12gaEquestrianBJ")); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java index 78c3fa8ca..150bb843d 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java @@ -5,6 +5,7 @@ import java.util.function.BiFunction; import com.hbm.config.ClientConfig; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.items.weapon.sedna.GunConfig; @@ -33,13 +34,13 @@ public class XFactory22lr { public static void init() { SpentCasing casing22 = new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(0.5F); - p22_sp = new BulletConfig().setItem(EnumAmmo.P22_SP).setKnockback(0F) + p22_sp = new BulletConfig().setItem(EnumAmmo.P22_SP).setCasing(EnumCasingType.SMALL, 24).setKnockback(0F) .setCasing(casing22.clone().register("p22")); - p22_fmj = new BulletConfig().setItem(EnumAmmo.P22_FMJ).setKnockback(0F).setDamage(0.8F).setThresholdNegation(1F).setArmorPiercing(0.1F) + p22_fmj = new BulletConfig().setItem(EnumAmmo.P22_FMJ).setCasing(EnumCasingType.SMALL, 24).setKnockback(0F).setDamage(0.8F).setThresholdNegation(1F).setArmorPiercing(0.1F) .setCasing(casing22.clone().register("p22fmj")); - p22_jhp = new BulletConfig().setItem(EnumAmmo.P22_JHP).setKnockback(0F).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) + p22_jhp = new BulletConfig().setItem(EnumAmmo.P22_JHP).setCasing(EnumCasingType.SMALL, 24).setKnockback(0F).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) .setCasing(casing22.clone().register("p22jhp")); - p22_ap = new BulletConfig().setItem(EnumAmmo.P22_AP).setKnockback(0F).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(2.5F).setArmorPiercing(0.15F) + p22_ap = new BulletConfig().setItem(EnumAmmo.P22_AP).setCasing(EnumCasingType.SMALL_STEEL, 24).setKnockback(0F).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(2.5F).setArmorPiercing(0.15F) .setCasing(casing22.clone().setColor(SpentCasing.COLOR_CASE_44).register("p22ap")); ModItems.gun_am180 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java index 51b673bee..4ed982903 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java @@ -3,6 +3,7 @@ package com.hbm.items.weapon.sedna.factory; import java.util.function.BiConsumer; import java.util.function.BiFunction; +import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.ModItems; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.Crosshair; @@ -30,12 +31,12 @@ public class XFactory357 { public static BulletConfig m357_express; public static void init() { - m357_bp = new BulletConfig().setItem(EnumAmmo.M357_BP).setDamage(0.75F).setBlackPowder(true); - m357_sp = new BulletConfig().setItem(EnumAmmo.M357_SP); - m357_fmj = new BulletConfig().setItem(EnumAmmo.M357_FMJ).setDamage(0.8F).setThresholdNegation(2F).setArmorPiercing(0.1F); - m357_jhp = new BulletConfig().setItem(EnumAmmo.M357_JHP).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F); - m357_ap = new BulletConfig().setItem(EnumAmmo.M357_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(5F).setArmorPiercing(0.15F); - m357_express = new BulletConfig().setItem(EnumAmmo.M357_EXPRESS).setDoesPenetrate(true).setDamage(1.5F).setThresholdNegation(2F).setArmorPiercing(0.1F).setWear(1.5F); + m357_bp = new BulletConfig().setItem(EnumAmmo.M357_BP).setCasing(EnumCasingType.SMALL, 16).setDamage(0.75F).setBlackPowder(true); + m357_sp = new BulletConfig().setItem(EnumAmmo.M357_SP).setCasing(EnumCasingType.SMALL, 8); + m357_fmj = new BulletConfig().setItem(EnumAmmo.M357_FMJ).setCasing(EnumCasingType.SMALL, 8).setDamage(0.8F).setThresholdNegation(2F).setArmorPiercing(0.1F); + m357_jhp = new BulletConfig().setItem(EnumAmmo.M357_JHP).setCasing(EnumCasingType.SMALL, 8).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F); + m357_ap = new BulletConfig().setItem(EnumAmmo.M357_AP).setCasing(EnumCasingType.SMALL_STEEL, 8).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(5F).setArmorPiercing(0.15F); + m357_express = new BulletConfig().setItem(EnumAmmo.M357_EXPRESS).setCasing(EnumCasingType.SMALL, 8).setDoesPenetrate(true).setDamage(1.5F).setThresholdNegation(2F).setArmorPiercing(0.1F).setWear(1.5F); ModItems.gun_light_revolver = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(300).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java index e85ba975f..56a9fa690 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java @@ -15,6 +15,7 @@ import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.extprop.HbmLivingProps; +import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.ModItems; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.Crosshair; @@ -141,16 +142,16 @@ public class XFactory40mm { public static void init() { - g26_flare = new BulletConfig().setItem(EnumAmmo.G26_FLARE).setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setOnImpact(LAMBDA_STANDARD_IGNITE).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x9E1616).setScale(2F).register("g26Flare")); - g26_flare_supply = new BulletConfig().setItem(EnumAmmo.G26_FLARE_SUPPLY).setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setOnImpact(LAMBDA_STANDARD_IGNITE).setOnUpdate(LAMBDA_SPAWN_C130_SUPPLIESS).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x3C80F0).setScale(2F).register("g26FlareSupply")); - g26_flare_weapon = new BulletConfig().setItem(EnumAmmo.G26_FLARE_WEAPON).setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setOnImpact(LAMBDA_STANDARD_IGNITE).setOnUpdate(LAMBDA_SPAWN_C130_WEAPONS).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x278400).setScale(2F).register("g26FlareWeapon")); + g26_flare = new BulletConfig().setItem(EnumAmmo.G26_FLARE).setCasing(EnumCasingType.LARGE, 4).setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setOnImpact(LAMBDA_STANDARD_IGNITE).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x9E1616).setScale(2F).register("g26Flare")); + g26_flare_supply = new BulletConfig().setItem(EnumAmmo.G26_FLARE_SUPPLY).setCasing(EnumCasingType.LARGE, 4).setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setOnImpact(LAMBDA_STANDARD_IGNITE).setOnUpdate(LAMBDA_SPAWN_C130_SUPPLIESS).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x3C80F0).setScale(2F).register("g26FlareSupply")); + g26_flare_weapon = new BulletConfig().setItem(EnumAmmo.G26_FLARE_WEAPON).setCasing(EnumCasingType.LARGE, 4).setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setOnImpact(LAMBDA_STANDARD_IGNITE).setOnUpdate(LAMBDA_SPAWN_C130_WEAPONS).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x278400).setScale(2F).register("g26FlareWeapon")); BulletConfig g40_base = new BulletConfig().setLife(200).setVel(2F).setGrav(0.035D); - g40_he = g40_base.clone().setItem(EnumAmmo.G40_HE).setOnImpact(LAMBDA_STANDARD_EXPLODE).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x777777).setScale(2, 2F, 1.5F).register("g40")); - g40_heat = g40_base.clone().setItem(EnumAmmo.G40_HEAT).setOnImpact(LAMBDA_STANDARD_EXPLODE_HEAT).setDamage(0.5F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x5E6854).setScale(2, 2F, 1.5F).register("g40heat")); - g40_demo = g40_base.clone().setItem(EnumAmmo.G40_DEMO).setOnImpact(LAMBDA_STANDARD_EXPLODE_DEMO).setDamage(0.75F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xE30000).setScale(2, 2F, 1.5F).register("g40demo")); - g40_inc = g40_base.clone().setItem(EnumAmmo.G40_INC).setOnImpact(LAMBDA_STANDARD_EXPLODE_INC).setDamage(0.75F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xE86F20).setScale(2, 2F, 1.5F).register("g40inc")); - g40_phosphorus = g40_base.clone().setItem(EnumAmmo.G40_PHOSPHORUS).setOnImpact(LAMBDA_STANDARD_EXPLODE_PHOSPHORUS).setDamage(0.75F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xC8C8C8).setScale(2, 2F, 1.5F).register("g40phos")); + g40_he = g40_base.clone().setItem(EnumAmmo.G40_HE).setCasing(EnumCasingType.LARGE, 4).setOnImpact(LAMBDA_STANDARD_EXPLODE).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x777777).setScale(2, 2F, 1.5F).register("g40")); + g40_heat = g40_base.clone().setItem(EnumAmmo.G40_HEAT).setCasing(EnumCasingType.LARGE, 4).setOnImpact(LAMBDA_STANDARD_EXPLODE_HEAT).setDamage(0.5F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x5E6854).setScale(2, 2F, 1.5F).register("g40heat")); + g40_demo = g40_base.clone().setItem(EnumAmmo.G40_DEMO).setCasing(EnumCasingType.LARGE, 4).setOnImpact(LAMBDA_STANDARD_EXPLODE_DEMO).setDamage(0.75F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xE30000).setScale(2, 2F, 1.5F).register("g40demo")); + g40_inc = g40_base.clone().setItem(EnumAmmo.G40_INC).setCasing(EnumCasingType.LARGE, 4).setOnImpact(LAMBDA_STANDARD_EXPLODE_INC).setDamage(0.75F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xE86F20).setScale(2, 2F, 1.5F).register("g40inc")); + g40_phosphorus = g40_base.clone().setItem(EnumAmmo.G40_PHOSPHORUS).setCasing(EnumCasingType.LARGE, 4).setOnImpact(LAMBDA_STANDARD_EXPLODE_PHOSPHORUS).setDamage(0.75F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xC8C8C8).setScale(2, 2F, 1.5F).register("g40phos")); ModItems.gun_flaregun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(100).draw(7).inspect(39).crosshair(Crosshair.L_CIRCUMFLEX).smoke(LAMBDA_SMOKE) diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java index a86c9f699..7597104b3 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java @@ -7,6 +7,7 @@ import com.hbm.entity.projectile.EntityBoxcar; import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.entity.projectile.EntityTorpedo; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.items.weapon.sedna.GunConfig; @@ -66,17 +67,17 @@ public class XFactory44 { public static void init() { SpentCasing casing44 = new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setupSmoke(1F, 0.5D, 60, 20); - m44_bp = new BulletConfig().setItem(EnumAmmo.M44_BP).setDamage(0.75F).setBlackPowder(true) + m44_bp = new BulletConfig().setItem(EnumAmmo.M44_BP).setCasing(EnumCasingType.SMALL, 12).setDamage(0.75F).setBlackPowder(true) .setCasing(casing44.clone().register("m44bp")); - m44_sp = new BulletConfig().setItem(EnumAmmo.M44_SP) + m44_sp = new BulletConfig().setItem(EnumAmmo.M44_SP).setCasing(EnumCasingType.SMALL, 6) .setCasing(casing44.clone().register("m44")); - m44_fmj = new BulletConfig().setItem(EnumAmmo.M44_FMJ).setDamage(0.8F).setThresholdNegation(3F).setArmorPiercing(0.1F) + m44_fmj = new BulletConfig().setItem(EnumAmmo.M44_FMJ).setCasing(EnumCasingType.SMALL, 6).setDamage(0.8F).setThresholdNegation(3F).setArmorPiercing(0.1F) .setCasing(casing44.clone().register("m44fmj")); - m44_jhp = new BulletConfig().setItem(EnumAmmo.M44_JHP).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) + m44_jhp = new BulletConfig().setItem(EnumAmmo.M44_JHP).setCasing(EnumCasingType.SMALL, 6).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) .setCasing(casing44.clone().register("m44jhp")); - m44_ap = new BulletConfig().setItem(EnumAmmo.M44_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(7.5F).setArmorPiercing(0.15F) + m44_ap = new BulletConfig().setItem(EnumAmmo.M44_AP).setCasing(EnumCasingType.SMALL_STEEL, 6).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(7.5F).setArmorPiercing(0.15F) .setCasing(casing44.clone().setColor(SpentCasing.COLOR_CASE_44).register("m44ap")); - m44_express = new BulletConfig().setItem(EnumAmmo.M44_EXPRESS).setDoesPenetrate(true).setDamage(1.5F).setThresholdNegation(3F).setArmorPiercing(0.1F).setWear(1.5F) + m44_express = new BulletConfig().setItem(EnumAmmo.M44_EXPRESS).setCasing(EnumCasingType.SMALL, 6).setDoesPenetrate(true).setDamage(1.5F).setThresholdNegation(3F).setArmorPiercing(0.1F).setWear(1.5F) .setCasing(casing44.clone().register("m44express")); m44_equestrian_pip = new BulletConfig().setItem(EnumAmmoSecret.M44_EQUESTRIAN).setDamage(0F).setOnImpact(LAMBDA_BOXCAR) .setCasing(casing44.clone().setColor(SpentCasing.COLOR_CASE_EQUESTRIAN).register("m44equestrianPip")); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java index 1a168715f..e7dd3b390 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java @@ -4,6 +4,7 @@ import java.util.function.BiConsumer; import java.util.function.BiFunction; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.items.weapon.sedna.GunConfig; @@ -32,15 +33,15 @@ public class XFactory50 { public static void init() { SpentCasing casing762 = new SpentCasing(CasingType.BOTTLENECK).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(1.5F); - bmg50_sp = new BulletConfig().setItem(EnumAmmo.BMG50_SP) + bmg50_sp = new BulletConfig().setItem(EnumAmmo.BMG50_SP).setCasing(EnumCasingType.LARGE, 12) .setCasing(casing762.clone().register("bmg50")); - bmg50_fmj = new BulletConfig().setItem(EnumAmmo.BMG50_FMJ).setDamage(0.8F).setThresholdNegation(7F).setArmorPiercing(0.1F) + bmg50_fmj = new BulletConfig().setItem(EnumAmmo.BMG50_FMJ).setCasing(EnumCasingType.LARGE, 12).setDamage(0.8F).setThresholdNegation(7F).setArmorPiercing(0.1F) .setCasing(casing762.clone().register("bmg50fmj")); - bmg50_jhp = new BulletConfig().setItem(EnumAmmo.BMG50_JHP).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) + bmg50_jhp = new BulletConfig().setItem(EnumAmmo.BMG50_JHP).setCasing(EnumCasingType.LARGE, 12).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) .setCasing(casing762.clone().register("bmg50jhp")); - bmg50_ap = new BulletConfig().setItem(EnumAmmo.BMG50_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(17.5F).setArmorPiercing(0.15F) + bmg50_ap = new BulletConfig().setItem(EnumAmmo.BMG50_AP).setCasing(EnumCasingType.LARGE_STEEL, 12).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(17.5F).setArmorPiercing(0.15F) .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50ap")); - bmg50_du = new BulletConfig().setItem(EnumAmmo.BMG50_DU).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(2.5F).setThresholdNegation(21F).setArmorPiercing(0.25F) + bmg50_du = new BulletConfig().setItem(EnumAmmo.BMG50_DU).setCasing(EnumCasingType.LARGE_STEEL, 12).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(2.5F).setThresholdNegation(21F).setArmorPiercing(0.25F) .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50du")); ModItems.gun_m2 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java index c86790f7a..b4a43e789 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java @@ -5,6 +5,7 @@ import java.util.function.BiFunction; import com.hbm.config.ClientConfig; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.items.weapon.sedna.GunConfig; @@ -39,13 +40,13 @@ public class XFactory556mm { public static void init() { SpentCasing casing556 = new SpentCasing(CasingType.BOTTLENECK).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(0.8F); - r556_sp = new BulletConfig().setItem(EnumAmmo.R556_SP) + r556_sp = new BulletConfig().setItem(EnumAmmo.R556_SP).setCasing(EnumCasingType.SMALL, 8) .setCasing(casing556.clone().register("r556")); - r556_fmj = new BulletConfig().setItem(EnumAmmo.R556_FMJ).setDamage(0.8F).setThresholdNegation(4F).setArmorPiercing(0.1F) + r556_fmj = new BulletConfig().setItem(EnumAmmo.R556_FMJ).setCasing(EnumCasingType.SMALL, 8).setDamage(0.8F).setThresholdNegation(4F).setArmorPiercing(0.1F) .setCasing(casing556.clone().register("r556fmj")); - r556_jhp = new BulletConfig().setItem(EnumAmmo.R556_JHP).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) + r556_jhp = new BulletConfig().setItem(EnumAmmo.R556_JHP).setCasing(EnumCasingType.SMALL, 8).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) .setCasing(casing556.clone().register("r556jhp")); - r556_ap = new BulletConfig().setItem(EnumAmmo.R556_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(10F).setArmorPiercing(0.15F) + r556_ap = new BulletConfig().setItem(EnumAmmo.R556_AP).setCasing(EnumCasingType.SMALL_STEEL, 8).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(10F).setArmorPiercing(0.15F) .setCasing(casing556.clone().setColor(SpentCasing.COLOR_CASE_44).register("r556ap")); ModItems.gun_g3 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java index 44bfa4c8d..bdea3cedb 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java @@ -4,6 +4,7 @@ import java.util.function.BiConsumer; import java.util.function.BiFunction; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.items.weapon.sedna.GunConfig; @@ -39,20 +40,20 @@ public class XFactory762mm { public static void init() { SpentCasing casing762 = new SpentCasing(CasingType.BOTTLENECK).setColor(SpentCasing.COLOR_CASE_BRASS); - r762_sp = new BulletConfig().setItem(EnumAmmo.R762_SP) + r762_sp = new BulletConfig().setItem(EnumAmmo.R762_SP).setCasing(EnumCasingType.SMALL, 6) .setCasing(casing762.clone().register("r762")); - r762_fmj = new BulletConfig().setItem(EnumAmmo.R762_FMJ).setDamage(0.8F).setThresholdNegation(5F).setArmorPiercing(0.1F) + r762_fmj = new BulletConfig().setItem(EnumAmmo.R762_FMJ).setCasing(EnumCasingType.SMALL, 6).setDamage(0.8F).setThresholdNegation(5F).setArmorPiercing(0.1F) .setCasing(casing762.clone().register("r762fmj")); - r762_jhp = new BulletConfig().setItem(EnumAmmo.R762_JHP).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) + r762_jhp = new BulletConfig().setItem(EnumAmmo.R762_JHP).setCasing(EnumCasingType.SMALL, 6).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) .setCasing(casing762.clone().register("r762jhp")); - r762_ap = new BulletConfig().setItem(EnumAmmo.R762_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(12.5F).setArmorPiercing(0.15F) + r762_ap = new BulletConfig().setItem(EnumAmmo.R762_AP).setCasing(EnumCasingType.SMALL_STEEL, 6).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(12.5F).setArmorPiercing(0.15F) .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("r762ap")); - r762_du = new BulletConfig().setItem(EnumAmmo.R762_DU).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(2.5F).setThresholdNegation(15F).setArmorPiercing(0.25F) + r762_du = new BulletConfig().setItem(EnumAmmo.R762_DU).setCasing(EnumCasingType.SMALL_STEEL, 6).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(2.5F).setThresholdNegation(15F).setArmorPiercing(0.25F) .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("r762du")); - energy_lacunae = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setupDamageClass(DamageClass.LASER).setBeam().setReloadCount(40).setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); - energy_lacunae_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setupDamageClass(DamageClass.LASER).setBeam().setReloadCount(40).setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); - energy_lacunae_ir = new BulletConfig().setItem(EnumAmmo.CAPACITOR_IR).setupDamageClass(DamageClass.FIRE).setBeam().setReloadCount(40).setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(XFactoryEnergy.LAMBDA_IR_HIT); + energy_lacunae = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setCasing(new ItemStack(ModItems.ingot_polymer, 2), 4 * 40).setupDamageClass(DamageClass.LASER).setBeam().setReloadCount(40).setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); + energy_lacunae_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setCasing(new ItemStack(ModItems.ingot_polymer, 2), 4 * 40).setupDamageClass(DamageClass.LASER).setBeam().setReloadCount(40).setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); + energy_lacunae_ir = new BulletConfig().setItem(EnumAmmo.CAPACITOR_IR).setCasing(new ItemStack(ModItems.ingot_polymer, 2), 4 * 40).setupDamageClass(DamageClass.FIRE).setBeam().setReloadCount(40).setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(XFactoryEnergy.LAMBDA_IR_HIT); ModItems.gun_carbine = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(3_000).draw(10).inspect(31).reloadSequential(true).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java index cb95c6a73..e018a3f2d 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java @@ -4,6 +4,7 @@ import java.util.function.BiConsumer; import java.util.function.BiFunction; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.items.weapon.sedna.GunConfig; @@ -34,13 +35,13 @@ public class XFactory9mm { public static void init() { SpentCasing casing9 = new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(1F, 1F, 0.75F); - p9_sp = new BulletConfig().setItem(EnumAmmo.P9_SP) + p9_sp = new BulletConfig().setItem(EnumAmmo.P9_SP).setCasing(EnumCasingType.SMALL, 12) .setCasing(casing9.clone().register("p9")); - p9_fmj = new BulletConfig().setItem(EnumAmmo.P9_FMJ).setDamage(0.8F).setThresholdNegation(2F).setArmorPiercing(0.1F) + p9_fmj = new BulletConfig().setItem(EnumAmmo.P9_FMJ).setCasing(EnumCasingType.SMALL, 12).setDamage(0.8F).setThresholdNegation(2F).setArmorPiercing(0.1F) .setCasing(casing9.clone().register("p9fmj")); - p9_jhp = new BulletConfig().setItem(EnumAmmo.P9_JHP).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) + p9_jhp = new BulletConfig().setItem(EnumAmmo.P9_JHP).setCasing(EnumCasingType.SMALL, 12).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) .setCasing(casing9.clone().register("p9jhp")); - p9_ap = new BulletConfig().setItem(EnumAmmo.P9_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(5F).setArmorPiercing(0.15F) + p9_ap = new BulletConfig().setItem(EnumAmmo.P9_AP).setCasing(EnumCasingType.SMALL_STEEL, 12).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(5F).setArmorPiercing(0.15F) .setCasing(casing9.clone().setColor(SpentCasing.COLOR_CASE_44).register("p9ap")); ModItems.gun_greasegun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java index 2267eedbb..5773e2ab7 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 @@ -80,9 +80,9 @@ public class XFactoryAccelerator { public static void init() { - tau_uranium = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setupDamageClass(DamageClass.SUBATOMIC).setBeam().setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloutByPen(false) + tau_uranium = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setCasing(new ItemStack(ModItems.plate_lead, 2), 16).setupDamageClass(DamageClass.SUBATOMIC).setBeam().setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloutByPen(false) .setOnBeamImpact(BulletConfig.LAMBDA_BEAM_HIT); - tau_uranium_charge = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setupDamageClass(DamageClass.SUBATOMIC).setBeam().setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloutByPen(false).setSpectral(true) + tau_uranium_charge = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setCasing(new ItemStack(ModItems.plate_lead, 2), 16).setupDamageClass(DamageClass.SUBATOMIC).setBeam().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) diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java index 02a18afd0..2085f2516 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java @@ -122,14 +122,14 @@ public class XFactoryEnergy { public static void init() { - energy_tesla = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setupDamageClass(DamageClass.ELECTRIC).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true) + energy_tesla = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setCasing(new ItemStack(ModItems.ingot_polymer, 2), 4).setupDamageClass(DamageClass.ELECTRIC).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true) .setOnBeamImpact(LAMBDA_LIGHTNING_HIT); - energy_tesla_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setupDamageClass(DamageClass.ELECTRIC).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true) + energy_tesla_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setCasing(new ItemStack(ModItems.ingot_polymer, 2), 4).setupDamageClass(DamageClass.ELECTRIC).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true) .setDamage(1.5F).setOnBeamImpact(LAMBDA_LIGHTNING_HIT); - energy_las = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setupDamageClass(DamageClass.LASER).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); - energy_las_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setupDamageClass(DamageClass.LASER).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); - energy_las_ir = new BulletConfig().setItem(EnumAmmo.CAPACITOR_IR).setupDamageClass(DamageClass.FIRE).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(LAMBDA_IR_HIT); + energy_las = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setCasing(new ItemStack(ModItems.ingot_polymer, 2), 4).setupDamageClass(DamageClass.LASER).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); + energy_las_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setCasing(new ItemStack(ModItems.ingot_polymer, 2), 4).setupDamageClass(DamageClass.LASER).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); + energy_las_ir = new BulletConfig().setItem(EnumAmmo.CAPACITOR_IR).setCasing(new ItemStack(ModItems.ingot_polymer, 2), 4).setupDamageClass(DamageClass.FIRE).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(LAMBDA_IR_HIT); ModItems.gun_tesla_cannon = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(2_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.CIRCLE) diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java index aab5d0c5e..06051e1d6 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java @@ -110,13 +110,13 @@ public class XFactoryFlamer { } public static void init() { - flame_diesel = new BulletConfig().setItem(EnumAmmo.FLAME_DIESEL).setupDamageClass(DamageClass.FIRE).setLife(100).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F) + flame_diesel = new BulletConfig().setItem(EnumAmmo.FLAME_DIESEL).setCasing(new ItemStack(ModItems.plate_steel, 2), 1).setupDamageClass(DamageClass.FIRE).setLife(100).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F) .setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_DIESEL); - flame_gas = new BulletConfig().setItem(EnumAmmo.FLAME_GAS).setupDamageClass(DamageClass.FIRE).setLife(10).setSpread(0.05F).setVel(1F).setGrav(0.0D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F) + flame_gas = new BulletConfig().setItem(EnumAmmo.FLAME_GAS).setCasing(new ItemStack(ModItems.plate_steel, 2), 1).setupDamageClass(DamageClass.FIRE).setLife(10).setSpread(0.05F).setVel(1F).setGrav(0.0D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F) .setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_GAS); - flame_napalm = new BulletConfig().setItem(EnumAmmo.FLAME_NAPALM).setupDamageClass(DamageClass.FIRE).setLife(200).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F) + flame_napalm = new BulletConfig().setItem(EnumAmmo.FLAME_NAPALM).setCasing(new ItemStack(ModItems.plate_steel, 2), 1).setupDamageClass(DamageClass.FIRE).setLife(200).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F) .setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_NAPALM); - flame_balefire = new BulletConfig().setItem(EnumAmmo.FLAME_BALEFIRE).setupDamageClass(DamageClass.FIRE).setLife(200).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F) + flame_balefire = new BulletConfig().setItem(EnumAmmo.FLAME_BALEFIRE).setCasing(new ItemStack(ModItems.plate_steel, 2), 1).setupDamageClass(DamageClass.FIRE).setLife(200).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F) .setOnUpdate(LAMBDA_BALEFIRE).setOnRicochet(LAMBDA_LINGER_BALEFIRE); flame_nograv = flame_diesel.clone().setGrav(0); diff --git a/src/main/java/com/hbm/items/weapon/sedna/mags/IMagazine.java b/src/main/java/com/hbm/items/weapon/sedna/mags/IMagazine.java index 9110cb02c..dee52e877 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mags/IMagazine.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mags/IMagazine.java @@ -1,8 +1,12 @@ package com.hbm.items.weapon.sedna.mags; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemCasingBag; +import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.particle.SpentCasing; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; @@ -45,4 +49,14 @@ public interface IMagazine { public void setAmountAfterReload(ItemStack stack, int amount); /** Cached amount of ammo after the most recent reload */ public int getAmountAfterReload(ItemStack stack); + + public static void handleAmmoBag(IInventory inventory, BulletConfig config, int shotsFired) { + if(config.casingItem != null && config.casingAmount > 0 && inventory instanceof InventoryPlayer) { + InventoryPlayer inv = (InventoryPlayer) inventory; + EntityPlayer player = inv.player; + for(ItemStack stack : inv.mainInventory) { + if(stack != null && stack.getItem() == ModItems.casing_bag && ItemCasingBag.pushCasing(stack, config.casingItem, 1F / config.casingAmount * 0.5F)) return; + } + } + } } diff --git a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineBelt.java b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineBelt.java index 80d8cb425..712593198 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineBelt.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineBelt.java @@ -39,6 +39,7 @@ public class MagazineBelt implements IMagazine { int toRemove = Math.min(slot.stackSize, amount); amount -= toRemove; inventory.decrStackSize(i, toRemove); + IMagazine.handleAmmoBag(inventory, first, toRemove); } } } diff --git a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineSingleTypeBase.java b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineSingleTypeBase.java index 5348dc4bc..343d45b1a 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineSingleTypeBase.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineSingleTypeBase.java @@ -70,6 +70,7 @@ public abstract class MagazineSingleTypeBase implements IMagazine @Override public void useUpAmmo(ItemStack stack, IInventory inventory, int amount) { this.setAmount(stack, this.getAmount(stack, inventory) - amount); + IMagazine.handleAmmoBag(inventory, this.getType(stack, inventory), amount); } @Override public int getCapacity(ItemStack stack) { return capacity; } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index e18be7120..14bd11157 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -650,6 +650,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.custom_fall, 1), new Object[] { "IIP", "CHW", "IIP", 'I', ANY_RUBBER.ingot(), 'P', BIGMT.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'H', STEEL.shell(), 'W', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModBlocks.machine_controller, 1), new Object[] { "TDT", "DCD", "TDT", 'T', ANY_RESISTANTALLOY.ingot(), 'D', ModItems.crt_display, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addRecipeAuto(new ItemStack(ModItems.containment_box, 1), new Object[] { "LUL", "UCU", "LUL", 'L', PB.plate(), 'U', U238.billet(), 'C', ModBlocks.crate_steel }); + addRecipeAuto(new ItemStack(ModItems.casing_bag, 1), new Object[] { " L ", "LGL", " L ", 'L', Items.leather, 'G', GUNMETAL.plate() }); + addRecipeAuto(new ItemStack(ModItems.casing_bag, 1), new Object[] { " L ", "LGL", " L ", 'L', ANY_RUBBER.ingot(), 'G', GUNMETAL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.absorber, 1), new Object[] { "ICI", "CPC", "ICI", 'I', CU.ingot(), 'C', COAL.dust(), 'P', PB.dust() }); addRecipeAuto(new ItemStack(ModBlocks.absorber_red, 1), new Object[] { "ICI", "CPC", "ICI", 'I', TI.ingot(), 'C', COAL.dust(), 'P', ModBlocks.absorber }); diff --git a/src/main/java/com/hbm/world/generator/TimedGenerator.java b/src/main/java/com/hbm/world/generator/TimedGenerator.java index 1ff879682..086b3df0e 100644 --- a/src/main/java/com/hbm/world/generator/TimedGenerator.java +++ b/src/main/java/com/hbm/world/generator/TimedGenerator.java @@ -3,8 +3,11 @@ package com.hbm.world.generator; import java.util.ArrayList; import java.util.HashMap; +import com.hbm.interfaces.Spaghetti; + import net.minecraft.world.World; +@Spaghetti("this class should be destroyed") public class TimedGenerator { private static final HashMap> operations = new HashMap(); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 9c463a4b2..6250af4a8 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -294,6 +294,7 @@ container.barrel=Fass container.bat9000=Big-Ass Tank 9000 container.battery=Energiespeicher container.bombMulti=Mehrzweckbombe +container.casingBag=Hülsentasche container.catalyticReformer=Katalytischer Reformer container.centrifuge=Zentrifuge container.chemplant=Chemiewerk @@ -1664,6 +1665,7 @@ item.casing_357.name=.357 Magnum-Hülsen item.casing_44.name=.44 Magnum-Hülsen item.casing_50.name=Großkaliberhülsen item.casing_9.name=Kleinkaliberhülsen +item.casing_bag.name=Hülsentasche item.casing_buckshot.name=Schrothülsen item.casing.small.name=Kleine Patronenhülse item.casing.small_steel.name=Kleine Waffenstahlhülse @@ -1721,6 +1723,7 @@ item.chopper_head.name=Jagdschrauber Cockpit item.chopper_tail.name=Jagdschrauber Heck item.chopper_torso.name=Jagdschrauber Rumpf item.chopper_wing.name=Jagdschrauber Seitentragfläche +item.chunk_ore.malachite.name=Malachit-Brocken item.chunk_ore.rare.name=Seltenerdenerz-Brocken item.cigarette.name=FFI-Markenzigarette item.cinnebar.name=Zinnober diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 0e9d0d901..57c468e11 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -695,6 +695,7 @@ container.barrel=Barrel container.bat9000=Big-Ass Tank 9000 container.battery=Energy Storage container.bombMulti=Multi Purpose Bomb +container.casingBag=Bullet Casing Bag container.catalyticReformer=Catalytic Reformer container.centrifuge=Centrifuge container.chemplant=Chemical Plant @@ -2431,6 +2432,7 @@ item.casing_357.name=.357 Magnum Casings item.casing_44.name=.44 Magnum Casings item.casing_50.name=Large Caliber Casings item.casing_9.name=Small Caliber Casings +item.casing_bag.name=Bullet Casing Bag item.casing_buckshot.name=Buckshot Casing item.casing.small.name=Small Gunmetal Casing item.casing.small_steel.name=Small Weapon Steel Casing @@ -2490,6 +2492,7 @@ item.chopper_head.name=Hunter Chopper Cockpit item.chopper_tail.name=Hunter Chopper Tail item.chopper_torso.name=Hunter Chopper Body item.chopper_wing.name=Hunter Chopper Wing +item.chunk_ore.malachite.name=Malachite Chunk item.chunk_ore.rare.name=Rare Earth Ore Chunk item.cigarette.name=FFI-Brand Cigarette item.cinnebar.name=Cinnabar diff --git a/src/main/resources/assets/hbm/textures/gui/gui_casing_bag.png b/src/main/resources/assets/hbm/textures/gui/gui_casing_bag.png new file mode 100644 index 0000000000000000000000000000000000000000..ac4b582c2d947ce46bfda4aeddc6c7753cb6f325 GIT binary patch literal 1280 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%N?Bp530R%N1DIGxWc25__ zkcv5P?;7UaE|WO+u-|c+-@6HClXs<@f26{GVuEk7UZTVI3%rk(&MxVe_%z|7H-AEf z_JgIy);r9Ct_Mm5^ZdW^+lKvzi^n5=6~@|Et789NVLz}p?-g@`%-XsQf4@C`y|TZt ze$JnNOIO`}&&6yr`xk@U!zcM?mVaNrDrTbWlIOwl2fqLL_&h#X-f7R~)32+_YeMF) z&-+!RS`ZMmhiS+2C+&r%vJ43^ObiEE7@9a4ScDlk)EESO7!+nOI2bTCB)}!I|6Om0 zx8A)+&gSvkkAZXJ@6Onqd@g_gKcfo1&jza*LhjZ%w*UC>$rU2g7oYg7fSaJ9$hK{W ze9K%>T@xZ7x6dH`iRF_Sp$zBN=dtDQ-FbUX^11ELZ*WXW4r5%gN$^GbnT>)P?de#Z ziEJW@`)6OZYq)0iT;`Qb(HSjCD6+3W}Kk|o4DD7c-`rm;cB}Hy(RTV%+4g7%l&4*>l`Y zp?KE(WaSGL5CJo$-s8r&k~o$q24;$z94UUEizUvV>vg!GB;EK8;pd#^&JNLyXEPJe z9bS9jP5;^h&rIx(AAb392P;y(!EPu@P6KOf|9FGz%$plrd+g!KCG4Hv|C{~KL$8*` zUeDhiov+ujb2rlqKR-V;TY(>fat!Z|A2#1G|B1$f^>bP0l+XkKkEqYd literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo.png b/src/main/resources/assets/hbm/textures/items/ammo.png index 5a102c684b06d683628ef2f812c17c3c37884aa8..4af2d408cac6d134ddc95b569d1ff8820a6cdc3a 100644 GIT binary patch literal 18648 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 literal 18403 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 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_12gauge.png b/src/main/resources/assets/hbm/textures/items/ammo_12gauge.png deleted file mode 100644 index ec00ddf2179a4ba148649be0882ecd6566a53dca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf8#+t$54@p;aw uRT;CMeJU$zmR_RcZTa6O`=7|XS;Ft6^8HSnmH7koEQ6=3pUXO@geCwdF?xjn diff --git a/src/main/resources/assets/hbm/textures/items/ammo_12gauge_du.png b/src/main/resources/assets/hbm/textures/items/ammo_12gauge_du.png deleted file mode 100644 index 21b1a15a317c5bdc9b871e40b6a60015984d82d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmV-k0iphhP)^jcu?OKXH2dd0!eh7z8N*|r z0RF)@EMV}c2NtkR$n6Bj?qm$p9R&b%P4^{aY2erfbVtDg1_1D=hpy>RUu#@mFU}G& z8q5aYf!GJUo#4y>KY^?oJc5unf-K8s8L|erpYKld-k`qL05FAx5J-|_cGy*erHQLu z#Bq#a7|{1UwAPae0RW|xvAb>JY8RYyv~3GQ2(;D^LO@D6|3;;hDT-p%NJ?oq=cuX* wQ4}H1bChNIxw~bsgrsR|#+QFpe+qBa2mOnVmuam4c>n+a07*qoM6N<$g4DK-O#lD@ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_12gauge_incendiary.png b/src/main/resources/assets/hbm/textures/items/ammo_12gauge_incendiary.png deleted file mode 100644 index 0e43c87880d5d4441522ef710df188ec63409b7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmV-60m=S}P)5dr5Ww-j89L$xl+Kp7uIzS(NW1{uc}t`&@D?2qGgVkv zvs{NH<-?`)>lRDr^UrrS{CD&Y*{czznrN|cLJnzyoc56b=pBMiK&PO$5dqkY{zoS{opr0&B#dpUAR|IF17(0`T6;e4Qiy;xNWA3@}H{{R3007*qo IM6N<$g8#XJ%m4rY diff --git a/src/main/resources/assets/hbm/textures/items/ammo_12gauge_marauder.png b/src/main/resources/assets/hbm/textures/items/ammo_12gauge_marauder.png deleted file mode 100644 index 4adaf3bb51e08a245adfea5d51f733e045abeb5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 381 zcmV-@0fPRCP)1u*h)tI)E)Gs1V?l=!Itawv;J@qWgUtDxKM;y6wNA^^fLlxkNY?e`Y0 z>oS|o5JHe;8J_161i|(nl;R{wb|xJJfplG$JkRO(`^0ffnx@;kItO*gcs!Qn`S5 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_12gauge_percussion.png b/src/main/resources/assets/hbm/textures/items/ammo_12gauge_percussion.png deleted file mode 100644 index 1b60046f7fc7144dc6c1eb9cd5143f6227bd72f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 307 zcmV-30nGl1P)Zq}6vpvCo{(j+MO`vkUNVQ>9=QMqVC@ldfF2=x$DW{! za1X?kC4v#5Z0^()VMj&j(zjT)?4RHF;NR6*DSuYVZ@n*;n-lm{N>VA=irj${_`Om9 zyzF+H5fMAQ4#Q?7Sx49_MJnaJlj|^Wn`d69Dftz61_>g(L2{WUZu1<(Da$g56P-Z} z`Lq^eOn^jzHS&HqkmosBmIa6aaL)PVxD%45P;#orjat>H?WL{qOr*a19^dvvW!m}nY2d>C`eRR zSe%88rC^ncZy;*x#fjQ=J96^r?mO$?zhk{Zu4tR?*=~@}4`jQ!3IRZco3(}{0j&q@ z!ge_U>lJdB4%NfqBC-hc@o_@59^OeZV7ndMKb-sKw40Hr_*+Dc3y)7MzV^ca{Jcp~ z6wys0U=DeGFR<1|$RsdEmd}nX%Sh8SLKJ}aUcwwAFK-TG41M3Dl%j20thG4j1cD=a z@1?Hm$xA!u#27=@b>w+YRaG=ibMBq{!5AsaQjVK%ia!m{#WzUAZ`zV&nFRm<002ov JPDHLkV1j;-g%|(; diff --git a/src/main/resources/assets/hbm/textures/items/ammo_12gauge_sleek.png b/src/main/resources/assets/hbm/textures/items/ammo_12gauge_sleek.png deleted file mode 100644 index 0426df546ff9148075c88513dda45ab4a71e6af4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<1aP)Lc13Q3;2mqVS<}BplF|bPj^%2}e#8lN()jr-aRW%Vg zdz0o0S&Y#D>X*pvz5cjPmo7@u3VD0|GKUaMRc$hvoIvspKo(;p+#L=(8jUE5g71(n zz#fuP!h6qfIK(-30?7fYsK~fpqDQ+)JsoBudfLHLuo2A(N}v zot!8|KTS!LqSX3FN#e74pfvzTV>&^;W1b<2QULVRl%p|szjN{M8;Doz3W?i=0;0-V znz{yBJ6Sw=JMjP^NHcq2IvHJs1hoPwwU#_X#1tacQp|2HF2qgXkqe0S&z6_*kk7*w zdXKE%H%uoZ^6au-oZ~6akdL?FSCVQeZF4X|2y(0Mrv79O=>(4Ad%lz>EQkOA002ov JPDHLkV1h!{gc1M% diff --git a/src/main/resources/assets/hbm/textures/items/ammo_20gauge_caustic.png b/src/main/resources/assets/hbm/textures/items/ammo_20gauge_caustic.png deleted file mode 100644 index 303d26d4cee00cc878e892d62dc99d5045a7998a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332 zcmV-S0ki&zP)|S456d#M^M5-t@ZU;v*R`LXexh%XpOTg#?x6$gn_6hREho zWHpt|`@Ogjw*!w{8q~!z+ztAyKNoPOd7G7tM=2(2){ApInG7kO`nHqRRCdk54nmN& ex>lWJ4rvS4QFoo(o1CKn0000R diff --git a/src/main/resources/assets/hbm/textures/items/ammo_20gauge_explosive.png b/src/main/resources/assets/hbm/textures/items/ammo_20gauge_explosive.png deleted file mode 100644 index e1c80fe3dee26880e86713d1c1aee018c8109a6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 323 zcmV-J0lfZ+P)?SInax=o01855Ad)9FDLCbh`9qR zslQB8?7-BQK<)YiWU0RA`E#-H)Gt9w026XPKOx_-kI|rOg}nSuC_t(O zxt~$VF#Jz3XuC*DO@>$4N}!tsegrCx&aO# Vs6QVh>xuvX002ovPDHLkV1kFjghc=V diff --git a/src/main/resources/assets/hbm/textures/items/ammo_20gauge_flechette.png b/src/main/resources/assets/hbm/textures/items/ammo_20gauge_flechette.png deleted file mode 100644 index a03bdb7f0e9ba1f544db5d39001f2b936f63c56f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 317 zcmV-D0mA-?P)Jpp9Xs|V zx^(F%1bqOP%nstv^bmXi;ol)37tc#u>mP2q|L=1@4z507A(w}vQuKoeQQ3$jNpiez z*)MC|<+cr4clima17RTq8i3uNKOxF)K%lE26|&odF<-Fm9rx_|d7dj}YrjR#H@FaK zIlv}X9849U{wJ@KJLgYaz=O>C_l$;vvxtAfLWoMqQbf$N$aX4bITjnS8@Tc&R$0{J z=`rSWwSb!rZ|`$P!vR@Z-xupRlcmVVOI$VCPUST0Z{R_i_8RA3Vc&cMV>)>5eHPDY P00000NkvXXu0mjfY%zwm diff --git a/src/main/resources/assets/hbm/textures/items/ammo_20gauge_incendiary.png b/src/main/resources/assets/hbm/textures/items/ammo_20gauge_incendiary.png deleted file mode 100644 index 51dd8acb118376f97f5831c933c9787bfb022e41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmV-A0mc4_P);Bw=_fHK-O8-2Ej<%{6GI`X5qi(GSuf0d(Tm8QJ`U(prRiV09=N! z3D^{D93l{}2LP9$;qh)#SG|xR!Dxkfdk5<6k0GD`VEo}%5}Pywn>Mg|i+S361v0za z7T`CKRs~;Ob?&ZDgE|2q2Dv{QFq=-kg+%2tqym*WQgtJ3=Bl1ApF diff --git a/src/main/resources/assets/hbm/textures/items/ammo_20gauge_shock.png b/src/main/resources/assets/hbm/textures/items/ammo_20gauge_shock.png deleted file mode 100644 index e50f545b234ef024d78675b353acf2620e0a0b13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfKli(=tZ~10OSH|i2MaVfu7`eIJ^S>e45`pk0l_92RRP7E=+a$$8*~nA`|9~= zPkkHHkA02XSZ{qZKJuNnB5uDaJA1Zb<+?u-^^e3(s2t?-5VL+`8`Z!zDfYX?d_MgX zTAc!}2Q?TXm#0kKFl~a>i5z3D1GiI;AOGudO>^^&L|w(j2``@CzT~usA!Vvho4D{9 h$7wa)zcM41tK0vXy1R<$ssYf044$rjF6*2UngHpTZ&LsO diff --git a/src/main/resources/assets/hbm/textures/items/ammo_20gauge_shrapnel.png b/src/main/resources/assets/hbm/textures/items/ammo_20gauge_shrapnel.png deleted file mode 100644 index b243ecc5e93a975742becf985d99ef65aee53b07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfX-+?s6*h0U mdgphOo=5z;aC_6)Ul^{ft1W-=R_hGVmkge+elF{r5}E+LA$uAC diff --git a/src/main/resources/assets/hbm/textures/items/ammo_20gauge_sleek.png b/src/main/resources/assets/hbm/textures/items/ammo_20gauge_sleek.png deleted file mode 100644 index 759bf67c972f8e3f3a4a51760d4ab152eecf1d05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmV-j0iyniP)R3_Y+LxAFxcB zKVf5IsfB{2cH7xS2&8fDu68U!%%0i1pyGoq2HyMj%>e%({fXIx0}-jU7DZ7&L`*E; zoYN#pP*oMY_hvKv*;zg|a`aR@X-LJu0 vQJz6>N1b_-$xy$C+Zse6ZN66hDcqz_RI`fe%3s1b00000NkvXXu0mjfIdhbc diff --git a/src/main/resources/assets/hbm/textures/items/ammo_20gauge_slug.png b/src/main/resources/assets/hbm/textures/items/ammo_20gauge_slug.png deleted file mode 100644 index 12a7f47e34d2baed6f707b5da8003f0de176ba1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324 zcmV-K0lWT*P)Te&w#Yahr}RzZxV%{_u?d;v>KU&1Dh zrEus2_!23ERJ+?d7P?{Ya(5EMAC{e&o%#3~7XCqYO!Fj9RMpC|L{^Z9)Lo&!uo zaLyqjgOD_w?gTJZ1t7-wE2L?fBE>~kH&sPM0C3I`VZ(W!A|-By^y=>PgcuCFJw%ns#aH+?e5LCYumluSPp6Z zgFYu$=bp=p86WSjaB|Ai=7rUAL0z@`EjtIQEA07U_U&Z5w(jtlgI>s3->CjHJftsx Wtb44Zf?;X^0000DZyj-Z%502v=@BQBQ9dK=hLBN;vlm3XLWI+Uh oPF7PsAGSKMLE8FS^{-)@_S7AW@u`~i;s5{u07*qoM6N<$f_MLyga7~l diff --git a/src/main/resources/assets/hbm/textures/items/ammo_22lr.png b/src/main/resources/assets/hbm/textures/items/ammo_22lr.png deleted file mode 100644 index e2c70d0b20b27071b809b9bb5a783a383dacaa43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfOZ>5atN-)=pJU}*cD58bU%7g9qnA)>$F5z!>Lre)bKGkWM+gcNbM kOR)_(9DbfovohHjIBaq!x*plL6zF0GPgg&ebxsLQ0Enbvt^fc4 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_22lr_chlorophyte.png b/src/main/resources/assets/hbm/textures/items/ammo_22lr_chlorophyte.png deleted file mode 100644 index 9001c86cce5d8b75ae721df9bf6944f5fefd1240..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf%=*`eBI%3y(fp`=B!LMhRHVJtfj?gfG%fX@O1TaS?83{1OTjUV+jBN diff --git a/src/main/resources/assets/hbm/textures/items/ammo_357_desh.png b/src/main/resources/assets/hbm/textures/items/ammo_357_desh.png deleted file mode 100644 index 899238a098a632fed43608bb1328cbdf10d9efcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfI)IDgYJYT|OuwD(H|rZ^t; zS;_9X;H0JM1g8sJWxk)fL^kK@-#zhWugGJzznq(Hzc-nFU-9l!sh_+4X!0LESN~_j T@9BC#_c3_7`njxgN@xNA1eRCD diff --git a/src/main/resources/assets/hbm/textures/items/ammo_357_ender.png b/src/main/resources/assets/hbm/textures/items/ammo_357_ender.png deleted file mode 100644 index 4ab1d41bbb79228d66d851d313f3e64e81aacfdc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 316 zcmV-C0mJ@@P)Y5Qd*~?KI>HEtN&WLb|m|z)HE+PPX*tT%W&SW0T(I zIZArdw8UOd_-@2&PVae8l){vnP4;X(c*5({OOs&#fbIGg3HqZ zK&K=CD5K@z`bw11;+zvethLev*@>r&mXmkz-s7AjgaAO6WtH=F`-#??IF517k>@!f zgi1)$fjU9j{@poA8$_(NlBTHuk|asvVQV2k`JJDbcObtpmyo}hEA)g^ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_44.png b/src/main/resources/assets/hbm/textures/items/ammo_44.png deleted file mode 100644 index 1d741d30a95e5ccaf64c06a9b1ab578c3c5cc88b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfK*e8mtBv}z3p?$zWL$3u}jLDhPNj#RL4Ja z{={(1JEPVKF$ T`Ao}!?ql$D^>bP0l+XkKMvhs~ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_44_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_44_ap.png deleted file mode 100644 index 477af43638470cfdc2a483cd2c984379a9cc2cf9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf9Y5h_we{0)O ziNm|r`CL{BYRF+`SSk|awPeb5^(AM1?@RafbXc=VXFlUQGY>nq1(~xHS{$-_zso(3 tDGGne5PLnb$1(ftCLN3Cd8SqI@;~`q4kaG^w*}~O22WQ%mvv4FO#nA4VwnH{ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_44_bj.png b/src/main/resources/assets/hbm/textures/items/ammo_44_bj.png deleted file mode 100644 index 75b7b8f8c54c40027c9812f4a566b9c035dd9df4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfSn>TU}EH#Ld5MH}t&ENn13L-8^?6SO0*O+wMkLLL7c{|r~=jVp{ z>DHQ0n;1?pM|d8q%X+rP)LgV%Krp~xfI;qrqRRpHAoq(goY^OLM0rnN7PG}|t8Qv& zEjz=FUgg{WJZ*TAdMys!6~4=Du_N_4zn{XZzwCPEY2T!es(y<+X6SiCqB&RU)FKY= cFUETr@}H}1&30>x0Xmhz)78&qol`;+0PsvxxBvhE diff --git a/src/main/resources/assets/hbm/textures/items/ammo_44_chlorophyte.png b/src/main/resources/assets/hbm/textures/items/ammo_44_chlorophyte.png deleted file mode 100644 index 47d8b75ec27094f7680145f7d81ed44fe923e1a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf#si{Q#{z1IrPRORM_I#-=|hW9q-EZ1zcc)o~X zV_u!pt!=!ev5U8+%}YO4C=%VUg3)1Gs)y#ppm+6&ui5VX&d@liaQ<`20jocq2cIP} ztXjq8#4#l(BHQp-&bu^2hs!1zYXiLueT9$BP+5HcJaeXj%iMn{ze0e%VDNPHb6Mw< G&;$S-aA{Bg diff --git a/src/main/resources/assets/hbm/textures/items/ammo_44_phosphorus.png b/src/main/resources/assets/hbm/textures/items/ammo_44_phosphorus.png deleted file mode 100644 index eb8bd54a98a2241ea58a36b727510c6e5ff2e3a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf?J7B=$Xf`WB#(hcop}4jSG2wM7F1amewKK)h^?I8 zGBkAI)?=3JHmp1K-M`$MZ+)L{$MVgM`;XSwegAb|<$nFWDa$mKoB~D8e3r?5$e^Hf x=wou7h>OdXYZA!@#{#Z@?Z3n_`OnUKjBEH@*B^7%-VXFIgQu&X%Q~loCIDW@dPx8P diff --git a/src/main/resources/assets/hbm/textures/items/ammo_44_pip.png b/src/main/resources/assets/hbm/textures/items/ammo_44_pip.png deleted file mode 100644 index b0b384f74e654cdb7b3a2891f2054ab849c4304e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf&Dud$tvJ9g()Ulai+8)%f$T&cW*~2h8^e?o_wCCp?$KMIm3?K;-AiK&2hROwq}`h zPtBqx7WMbVc5<^A8Qfe?T$pOH{=lw{^8%K}aZ2o8T-LCQ?V7yE%HwfwPW<6nTUyMl ouha2ZVyDc4DXUUH&#qy-RjvMX{g>#CKu0rpy85}Sb4q9e0Qn1AegFUf diff --git a/src/main/resources/assets/hbm/textures/items/ammo_44_rocket.png b/src/main/resources/assets/hbm/textures/items/ammo_44_rocket.png deleted file mode 100644 index 418125b2e2e31a1d164426f981c5d0b03bb56847..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 zcmV-F0l@x=P);NYj*Y9C>*B zO#TG`xLa46Wm$j#M}fkHo7I(y2vf*kpo4=c1mN{O2cWL&DC8nG9EO3nk4peV1ORKT z#vqHI&C~N&;=Ko;?|T6Dy@+6~{q<9e=>Xtm$I*~zuBxgOpe#!O@;pC?h;uH8Pby=K?jxPGz5y)`YSLDn Rp{oD@002ovPDHLkV1h@whj0J@ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_44_silver.png b/src/main/resources/assets/hbm/textures/items/ammo_44_silver.png deleted file mode 100644 index 72650df5659a44926a94558ca1fc729ee74efb69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf>MDz{G8ps$>$#|5L;*~AhRW4YVifr^lbLCA|5|} z2tT-gdg8oYRSXlwC%jSVkr8zCObxm)_Vm-bJ!W)e|qQCa--k-JWofOL)r`An6wX>FKES<5e zb6f8Hti`$>nu1OWEgV@*4XKeyZ^93JUNTwbr%b}y&$s{dGIJ*QoHb+SIefsPFD3Gr y&G|z1e$(9RQ=eN#WpBAA;<_V diff --git a/src/main/resources/assets/hbm/textures/items/ammo_45_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_45_ap.png deleted file mode 100644 index 43cf97448c9c249350a7037596a931c366a70ae6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmV-d0jU0oP){16eU9yEN5`)kw!*LuWNdf@e2C~y!Dsxd3Fbo5WsY#vjTR>&b^Bfmv?+62LD@ZLVC0*C$ zVrr7>IhoD4ex9%ovXP)HOEKPi!I8O-&$kt@dw}7{=uI+cU)(%F05JjJ6e}E_oMSiw z!oUNt1Qddw)u?@LFsv pW7Z|mL9}LFf+j@w_G5xS)fcoBd$b);IGF$d002ovPDHLkV1h9-jgtTX 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 deleted file mode 100644 index f46671ea31f7960b0138de6ee027f0bb2bb554ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#X#z`!Ww>Eak- z(VLtgk#V5oOyIWQfBeb!ZA+#L23x8nG#aM(r2dosA#E_jVz$AZeKoTi8yg?m8@3rJ z7AMTI-}mc;!ZNL625TdJ+3WR2@HS-DmA#d8UUNXX?E*u3Q`-WIz+)lL_OF?z0~R~e zmBZFH|GmV$JM~95R2`0MTXS!D#NOsdP3p_%8)VtqoKw)(J@MhuA4N8{GDS8)SHnGe zjnWIk&VQH>v^DXa9NV$d+v^PG?EciE;Vd!H)Y!nl;7(Rchw5&FKm4CAB^q3sm^i^; zi}D-U6z2qmo2?K3U$dM0|9pAnpa1`Nz5Tx>>E-|R{KxyUu}>x1Ru6Q-5L3$WNWn@@;4z@hjw!tpE2o# z_3xbS5Zm}t#bi^8#HCvg#Ft$C!J1k7sHpeiPpNxnp9=1Aj%1QZ{vr0GE$16sYNVZ_ z{_1rH4x7z+%qJo^Y039_=Pb(v-JWv_3a-)$ovM=Av#_{N=}YU7zOZ?Kt~~eCKtC3uAMSCi9zrI3Vng^B^*M0gZm1C z6tfmwgy14LIhCs*ag9q&!6_Ab97_J0h6sKTF5KMnJwrh1FbA-qcV2-eA;Kks<@y>eteg=TO$P58& zgqR@!02pn+cC8X9z-+a~{o&TA@8H7NWlaEhI)(A|vIPKSt956S<)T_#5pL|D54nB+ z#MQaeK=zIogMMn#PfboY4nH2jOP-Oh;B@0qDK#8fF3>=fQcRL$81iu4L_~xnndf;Y z!rJ!>5fN&wskJ7_vWbYW7XSbeVH8D-qKH~+iU{*OZ-je+I#M)ghX+j^`E$6AwC{cZ XcJku3sv}}d00000NkvXXu0mjf6V0GV diff --git a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_canister.png b/src/main/resources/assets/hbm/textures/items/ammo_4gauge_canister.png deleted file mode 100644 index 58b184c3efc5bec3b5b0a395beb649d62391cc91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 393 zcmV;40e1e0P)Ns+9sy8Z-mVVb$~eViHKKb|p$McpzR0lQf#nn4f%0Maxq z2IZV20{HsN){5qKy9EFQL4Z!DgL7#jfMN_H;PBrV!|`~`>2ylx9J4H==XsS9KJVdL z)xc)6K^TT;G#U_*6N$W|dc7irh_Kh|QAD_!v^g63SC6~5i?G>j?qDuoE=nq+hzLL5 z?(yK?0RX&~kM(?puh|lddLM(qV8>P7fTVn+KL7x%=QDUMAB%b)-EJ3g9N)Im(<3+< z`dm%gR8^8>p67JV@mRuAok&!b)>>L?Ns@6K(>X^~IGD#99NkVHaRh4<3AHWv{ nWl53b7{2M1C4Yv?lH=YtW`Nd6Jv^1q00000NkvXXu0mjfFGHxF diff --git a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_claw.png b/src/main/resources/assets/hbm/textures/items/ammo_4gauge_claw.png deleted file mode 100644 index 0352ebe1358ad72994c4805a4fe8326b6a2a190c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 354 zcmV-o0iFJdP)15QRUf$_d;E|6#DZbOAR;x`0k#NV%QPU~&dkO0RM& zT|lYQ5idr;;+ez0M-7%?5MI0wn|+_4=vws^A+0hldD02CkJl!rYp$E`CI#|0>JpNY4m zJnT=x7Bu9f;{agJPA1+Gfa!R3vy)EaFA&#$eDdUc9p3>43QQlhmM zt+g0qL@6b8U3bJ60XC#{(ih)UHssf08`AIn0Ow4+HNh#h)&Kwi07*qoM6N<$g3sfS AF8}}l diff --git a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_explosive.png b/src/main/resources/assets/hbm/textures/items/ammo_4gauge_explosive.png deleted file mode 100644 index 6f00d2af9352b1e50f880e936ee8754918f35a45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 378 zcmV-=0fqjFP)wvp{S6>#Vv0j9*Vnjsc(?Q z#m&u&lU-Z{k?IrF>y%y4t#r6`_#H~FNg87X4}=3Z_k8>(0sgz9ewRTKvgrEL0Kj}|0pMrk zeFz*57QMQ{=XCxn(z-ya)Qc#?$ zwY3Nf&k`acG{(>vLy|6uh_Dd=01=_qnp$fbV<;lD)|Q4Ffg+M8sSdAHMdZ)JMWlN6 Y1(&hS)CJs&7ytkO07*qoM6N<$f|rM*n*aa+ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_flechette.png b/src/main/resources/assets/hbm/textures/items/ammo_4gauge_flechette.png deleted file mode 100644 index f24e7e0b71edd302c770b906c9eb63674957425b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 321 zcmV-H0lxl;P)={3?eCjc4DgbgZ}>R8sA-lY7WGw0Q546wad+~^dmft{ z4Qk?NnhnhxrLdWOV!J!EZxg_n979O}AZuZa4S)zm0RU`wK-2u8O_Ij1swz9hyF=1X z@PuS^Ciwlz5E=mSa|BzFF*&TYye{}hvR-|oEX$tca?Lk~U5I-jA|%NW0=@U_N|>CU zL`0~nR8^9swU*v{iU@}V07Qh&IXdU4suU515YFI1K`LpJbm5ySmD~-dlJ4Cei`B4x TP1q)Q00000NkvXXu0mjfMl6BU diff --git a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_flechette_phosphorus.png b/src/main/resources/assets/hbm/textures/items/ammo_4gauge_flechette_phosphorus.png deleted file mode 100644 index 457d799d90453293d3e3e316b6d0375339fc0f9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 422 zcmV;X0a^ZuP)YU6vn?>x->YXv;) zBz@m!7={!PRssM(L>L4CgCL;Rnj%7DOhH@;$U{;mW$~{f5Bak=4=LBa0G`X#NM1H0 QZ2$lO07*qoM6N<$g5j5_=Kufz diff --git a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_kampf.png b/src/main/resources/assets/hbm/textures/items/ammo_4gauge_kampf.png deleted file mode 100644 index 0226ead913c88a926fb0d9fa5c692c45e6152ae5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 389 zcmV;00eb$4P)v*@)Y4B`;Vol1s6x^-|3{0=cO)?1C>fdiLw&;Q-?p9}m)hzP4}(?0_0zTN83 z@Am-!`)~IIfSYGX8(0lkuh+P}+yfAORG#R9RIiT!UZHV+b^=Z(A@f;8E-#qRBKp4X zw8ZmI3p=ic)jY+~=_@?XgKIBxy~SQNg@~}%>rq6Q&mvAIVXNhqbP)zYP>U-&+aS(S zM1&9HLmY<(006%mVl_|kk}k363@{uHYn^ikB<1e06aeK;{BDRvXMi}4VT@^KsrfUi zN|G#!f?1Yv6T(J*gQzO4wY1ifB#kl5vW%+AUjeGhBuSVg39YqMRTf3@Mf@Y638^O8 j6t{{d+JWV7}T2&lxK)eHCY3Olwusm@M{aHvkb+)MV)289Vn%kBnbdu7zO}1ixh2(`Zhz+w(BdL!Xcz-n#iAb z08mv`)c1W5IUX<}(bYq=dc+X&diRE>_i~1;fOE*>^)qhvG9kv8;1>h8`Y73o6^}$N?REaxYGf_8H29x^)lly2DGhr_B zbXPamiVaR@qLgc{>&hMMfzXh??=K+`_>a855jINJ{~tWz^Mi2kn+O2O`Odo?q$y}U zVt?!&0Mxv>xE<$dI)0Bw7zVhrr@Hf~sre=w7qq?%iB5105-nVVM3=a~M}2*d^Id^EPyrS;ZZ2dk}S(2WCFr$ERd&X!CFh-_asR|+qM{E5Rsr} zz?A5cL?jeN0YIMTc<-sIil%9B&Z$jcj&xmzwHEI^&N=mK@ml7{)O>M7WbrnB0MQ$E U-3?_Xng9R*07*qoM6N<$f_KY^J^%m! diff --git a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_sleek.png b/src/main/resources/assets/hbm/textures/items/ammo_4gauge_sleek.png deleted file mode 100644 index 24f58d64602a759c8447e8a1bfff90b8418eeb61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 366 zcmV-!0g?WRP)1pw6b9fwp<|@iu@H0tLzhCKWGdNnjdz4x#OLr8LZ?tD zbO{KJhMYjMN5kKt#5i*8rb8cS(39S$Ckgnc;H?`Mc|t^Jtwl-+F~-q)Q50OQR%qK6 z-uuN}e)4*~zMALA@!%mAhzYoV0EPgab7-0d#uyl5end9g0+$W|-(P_u0syeq0su}Q zXKc0wnx>h&PW}cx;y)u^UR~eC9I_l@F~;wQdXm2IcxT3x@L}WFh+=~GK9bo0!gwg zOV)KwRpoC0RFzd#v8pPD5U8r`y6&oY78oLzPV(ZLVu<{?c!=b=FFJq00wT>e`v3p{ M07*qoM6N<$f{K}yXaE2J diff --git a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_slug.png b/src/main/resources/assets/hbm/textures/items/ammo_4gauge_slug.png deleted file mode 100644 index 77523c49897a2065bd9190029ec1226ef5d6c9bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 367 zcmV-#0g(QQP)1hT5}P{$h1C-ESJmvYy=pk z_%NL!i6Y#E;Yp+mcXK!lFX9-hvcywWT}1Lc54v^Gh3_X50KjWq<6}NY5=8)jZPQ@a zws@?nz=!${Ug|pdaSj0RrWBs{du*HL&rU{9IEB2=W&i*=9L^%6PxKK0Sd}F{weCAH z#_%lQBfGZk{{aBLHyfm%f38KszM%}i^4B?(1@Bu8&z6cDFt`k3eRSl7Uhlhy2_X}|7!>bY2{r>;} N002ovPDHLkV1f?ZmBau5 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_titan.png b/src/main/resources/assets/hbm/textures/items/ammo_4gauge_titan.png deleted file mode 100644 index 5547e1939eb2ecb03d6868fff065ec3725818588..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 376 zcmV-;0f+vHP)N?6p7fQUNzx*0jCswQ&N*3YNhzu8I+F#EH0}T| z`ORfnQWOQ&TAHSr-Kuxs!+h=cnga6P)Av09m&=9CW-}tj7()q^z}x+M8g|afIVbPE zZnv8r<-M14Zt?!{SsB9ld}g&;0dP1R0O6bA6mk=Rlp7=kL;v-AR-Abkx`daJ0w`8uxh1r!mIWC(%Ydv*~f z>jn`Ksw!2LBx$Xs_nsocK>z?mgw8oS=cuX_5rz<2;XxopnwNCLKdKb@bvQ-3y$b`d Vuvq1oeqaCq002ovPDHLkV1hvtgvS5? diff --git a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_void.png b/src/main/resources/assets/hbm/textures/items/ammo_4gauge_void.png deleted file mode 100644 index f10417b2ea20d595aa28811fb467344b48d2c200..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmV-M0lEH(P)xw+OoelqaSsmg!=s~2|w(6%j8N-)M?9LMTbmfuC-oP&t)8IV%K zG)+h;0RZ00mp|_JgBfEyY+{T-(=;%~e6P8copS(yx~>5L^E_i+SCq)JKcI*J0Iao_ zkbU?kqzo=2w*shQi~xXjUB8MOWUYnwo@c-*()T^Ou6saU4Ml_^LgyS+l_Z&S=CUj- z5$?_dqN)rbFoZyo^xkt>7OEP)Nkl{d6Q zARt-V$qu&*vNgpAr~jthc8bN5g$y9#^n;z+mM3n54J8xV^`MOaV?>nV8pjcz6iQX z>?T1axm#pBWb3+4k}i?ZCkoj4pAZG;eClcxpt`=&PH>Z?GrTGJHT6bap8x;= diff --git a/src/main/resources/assets/hbm/textures/items/ammo_50ae_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_50ae_ap.png deleted file mode 100644 index 5d370b1057321919154441f6d70ee006c83b0c7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337 zcmV-X0j~auP)YU9EDFx!J*tiDM83k${j9{?>PrSsu4oawr$QP7P+}6 z(Utd42q&KE_$CBSf^O8mcYpw`a`qPq+7pudWQi-1b{0naXz|1e+c-V17N|s zhaaO6@K;DxK`F&LWd0W6D@v<6&o2x3o`b-}ejTM0%T>1tT=4brl7R~{o$^;$XP|>< j!#aaqi0-Y`;Ha|&g?xN_VMYf_00000NkvXXu0mjfmrjmo diff --git a/src/main/resources/assets/hbm/textures/items/ammo_50ae_chlorophyte.png b/src/main/resources/assets/hbm/textures/items/ammo_50ae_chlorophyte.png deleted file mode 100644 index 508c838f33a89e923b74c222548dc27547883336..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfuMi+;MeyElId^N}5 z#|b@E?Y88ItV6@c;jl u5=_nbT!76GoSJdD0ND^+as*vKQvd*q+KDaCnK!fm0000#UyH0oZB zZ8>?95G^(3aQ*>x;w|B7S5qJ@HN7o)=%-~Z(X)Kt`|&+Lp67*sC#9;QR8@ZZ-_*^O z$`-xe6M!_ERbv()F}&pSJF$5%c*U}oI6q9!Op+KKhUO@W$R=y3Qeh?}uHgH10}$I@ zBb%(TcYFZvFQ`%hXvzNRtRy3|}Uh0Q?pbSMa>9=#a~skh`!S*J)n0P^ALpBI9*jw;`U_71wP{^eh*V>oZ%* zMMU~XqMJy96`{Twvrg4o5!T@;Lr2{u^NSVlT};E P00000NkvXXu0mjf`4*oy diff --git a/src/main/resources/assets/hbm/textures/items/ammo_50bmg.png b/src/main/resources/assets/hbm/textures/items/ammo_50bmg.png deleted file mode 100644 index c0d7f783bde73d42ed0fb093ffecdb00803d976a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 331 zcmV-R0kr;!P)y77_SS^wk=tf0SJIG z#<3;^K_F#WN}8rtX-2!3qA2ivAJ6l6TAm#QaeoeVT|0bNxID?xaR^ibaQE;rSgG@n zM9A%pVxi7)PdxxkUJXLr{lRLD1C0PI6wEHvZ<;>HXn)Yrc*1nHC3^+QCK+6W)1{S|L~Ya`E|+ue`9J=1;Xh;;h8Tt+zwxR7MNtq% z(VswQnkI1^OArK|AZoQp(-d9Tv2B~n)A3dirJlm`Je>UpLf>IFPXIVMe^y%EK(AVq zWvT4EUd!It;{B~4^quufB40sz^~Tjb3Sggd_frvLx|07*qoM6N<$f&%E7YXATM diff --git a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_chlorophyte.png b/src/main/resources/assets/hbm/textures/items/ammo_50bmg_chlorophyte.png deleted file mode 100644 index 6bfa270587f7cd2efcd5ddce12781469390b492b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294 zcmV+>0oneEP)COP4ZCk`~{1XJ*wkb&xilS%|GE*0M zp2Kk*_`Z+TZt)Rf4W|gh5cTbf_1;64RsewOxwf?JApiheGFo~|h`@dBWoczZ=EIGy zxLYMk0ss-XkW%(Xq(j~SUB(bCpia>PCd4?wr^x6PbV!y~SnoYFO+#IAH@?nGxMZ|F sY=}!nr^}JJWYd4EicBu6$k%049Vdu2%d&gj^j18dfV18E3F^fcnqz zBn!(aoRX!?MT?3b4!?S?jcgZ9a%P6~S^lpwotf z{U$ILz~LE2X;P<+^w!k#pqv|X{_yfTW_201HsI>0{ws);Y)-E+0PXF-LtMxA93U1z zc>Z4arOZX(qTOwqmc4?tSOuWliwhxEI&pK40V4slY^bf-GdFnzPD#mUR+Pa%1LG$dD$?m-dcCr#=21ZHf4%GfG!T>t<807*qo IM6N<$g32A4$N&HU diff --git a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_flechette.png b/src/main/resources/assets/hbm/textures/items/ammo_50bmg_flechette.png deleted file mode 100644 index a9de16507043f1b65d5e257ed7b64254f4732f59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf&68u^*>)f{G3}YlHtzr)ApPHdZNw~_=7d@C@_oNS z>;;ZGFPJ#{H&}F-QV`BziTQ7vYokm_`rz+1yAjnnVFj>@-a8J zOyj$v@TSdRA$I~pnIfB@t6|#(hIF=^dj|^`+q5P43_T=n8FpwGC6sc8F?$%Yykli& zXXkl-7HH0nyxXE}#o_Y|_E^++G&aU|Bz|q%%d?R29M4HTo)xb)N-{758UMF`d-=z| zEb+(x|DGr7dCs=*IGD3U&Jm3L+{nzn;h6au0goF2f(#7rPGv3j>$3F(1^|PntDnm{ Hr-UW|QL%WE diff --git a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_flechette_am.png b/src/main/resources/assets/hbm/textures/items/ammo_50bmg_flechette_am.png deleted file mode 100644 index 300ed576529b972dd641bb10fc8da03e677c1fe5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 339 zcmV-Z0j&OsP)5Qd+x6x^jqp@IZLu_23&4rWMxKomn4w`^T?cNf&n z&BaB*#YIH0i-Vhk;N;S!F8u=)6<&vG8qHU!p)cHU9QW|t!7LKEo&wiXncWJ&`|FUc z%?-*z09adebiRL7+9ZSQr5y#Xr{kT*RG@0Ux$pN3H`m&3zmdct&=o-E;KfV@0B9}u zSZeru3KMnq zf{xkx1cJEeWS6?@l1Hc@mJUu1EgXk7McZ3jFMe>BdpSS8bKyVY+m`sYB|5VP!1QCr z(dh}g2mo%`l>Wt;c9Rv-jYIKmOS06_gWR$yS?b8->0GkZ*$J8J7ss7BhfbCG=R0u} zEN_R>yLv6{1q>c3K`sDo4;rqwgw%+!bEis;dh>ud3Q(=H(O{zmBO0v^^(M+DO5iVu zAzM-)w+}hb`Ixtt5maj2+zpANfFxwG&Tl}GBt-77JxM}D#+R}h1`rU{SzqZp^5bD& fpg^|$nRdPa_gk#D^wsP>00000NkvXXu0mjf@&}LX diff --git a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_incendiary.png b/src/main/resources/assets/hbm/textures/items/ammo_50bmg_incendiary.png deleted file mode 100644 index 240346f90c2adf72f68649cff5adba8b0af2bbff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmV-j0iyniP)XnSzkHLpGt4?mmHz zZq9-M$)KH@r4NuU5&8gCx>bt%aZyQ=+uB;sb`R(O?*AVS{70pIB<&-A(V75n3uvEu zJAruWA@bnK{AxRhnSZ>$3^>@|!?xh|qO}pkD7rW~g8Ppaf$tE-2>|EUuZB)s0sw?A za^@*I>X1sU0YDTdD;X5?*NJDAZD>qs;WiZZV>p6b}v5;1jP7? zwB&*j&32c%jn+vif;P$;i240H6FuZ{kdbCnX5$f5EuuIf@Et-ocPj!Slhwx)y2$g5 vlF&tDdMQidJV4kCq8(T#&O?5i*}6UfQi6K8jSVw!00000NkvXXu0mjf6193mZb#seOPBu8Sw73aQ_5t(* z)aX`UAcz*5bg`hRB0BI3co0_f52_)0Te42`gsf+Id3oOF$MeE}NYgaYG);!d`T*MP zHkM`m2?QYNbXrW){1wFKUL40kRaJCdr&5d!)kI9wlu9us*GC)DEU3~fr~^U1o?Wq~ zFPMu>F@9Vl5!Xq?2e;`3uv0?`o!Z>qKO=811lHHcW|E$e9{{%=Ru;h@CSquwkdc1D z-Al@kW3Q#jP=Mh39TT(js6ih_bOs}QQ>vakl{>ei?x2W>q9{t|6|e`7KB3dO`Atdv+lEhc;(+i>vbn_`~cS)X8R&vNFTYIdqHw3L|U8D t6?Qie5pg&0g7ovhns}O@kU{=X`T%WMl+F$`u?GME002ovPDHLkV1lQxsW1Ql diff --git a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_sleek.png b/src/main/resources/assets/hbm/textures/items/ammo_50bmg_sleek.png deleted file mode 100644 index 71714637b31c58ed1bbaf438761856864bb6e5e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfCVMxV3u*5y{) zzi!R(Io6d zU06a{71*+bstumYC|wc@*(z+*=jhDw_C0^OwhPPim=gWT5gSkD?n~PDVadzoclUXo zS+Mnkc;Bj3RldJ?+!R@UpIdTz!DW}w*{uIx6}@%dyYql!`hBN1p6wI%^SFQJ<62YK UE!q`c2@D1XPgg&ebxsLQ04V&1^8f$< diff --git a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_star.png b/src/main/resources/assets/hbm/textures/items/ammo_50bmg_star.png deleted file mode 100644 index 6f3248455598496a02bd9445dbb2e1666dcb4336..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmV-^0fGLBP)Y5Qd+G1F?{xgb>gstsHm;Yg6P%ktzhX7f%puH6W?3 zNvD=}T6xuhq);JXilh#DA*oVI1WDmv7#njQ_n}67VcDJ8nRlOA_zx*%i&D1yrB?%( z&0c6WPXPqLb?wx`PNmYmbUG7hweA+8Ne6?$U_vIdf?@1%dA$BB6K#Iz^{!KZR4R2= z-w#o>GSC%(qx09qks=qCiPWn)MSTNpIR}8-?k1XO;l$M=DHsbtQHT7d?$gAXq{E4b zme$A?a;RE4_Fp0d5eoX`w|B`Fh$Zm}9A_k9liP7H>8)6t+c-}Cs-~W?(Rp(&u>@yB2>Gd$l cPc;kc1EfxeT3?5h{r~^~07*qoM6N<$f=%e3ApigX diff --git a/src/main/resources/assets/hbm/textures/items/ammo_556.png b/src/main/resources/assets/hbm/textures/items/ammo_556.png deleted file mode 100644 index 6ced441aa8f783e27000e15c8618ffcf2500a33c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 346 zcmV-g0j2(lP)YU6vy%Jje!nsp~iw)ir7IisH1~}$pZu-n_D))Nnb-3 z!L3gqh(i^G#-XEwO3CI>DKUtYE>c{C<6@=ek0g4gdk>rszk9gw&r$&U+bc3{oZLLB zDu4zs7){vST&882Kd{mO!0qr2%b2HSnVcRhl}0pxPCrrC4+G-ygt>($e9tM3=+i@| zpQuGMk)1W0kM~!6&jCUK*gJYI+>1VYX?IZ&3BZQU7XlDU5u&FXX{51gf2YYqv~(j= zHG_K7EZj>bK_&$~8tYrso8%_R1*#ywKB3)3onJ-VMKLe;J*XL+U4;0aL*P>W!v!vK sd2CDIA`%};rQtlJ^6)J3=i#FI1cVE1SU%z-S^xk507*qoM6N<$f;=mZ>Hq)$ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_556_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_556_ap.png deleted file mode 100644 index 58c6e9436ed09c056c1762cc51a92da9961d7411..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 352 zcmV-m0iXVfP)|PC1)u>G zML`&bNGZ2qqX7U(l3*AHQcAAR7o#B>Kvh*DiXzIg#5sJy_ngrXy)LS%5_{#HI#}3z zeHQqh1H=m8?DBnZFM9KF^NfI00i4+UKmcMj1ku}#He`NeZ_@NZw05JT$&}f0e{e6I z1f3MDm>-`qThg0k1F$ShWmzV6g=n?8c{d^VPbshInvb^?Os3pE#Q2^=;IjRlwz;Xm yMLk~GDsWM1eW7~I^%(={9r(@Mg#0zLv%Ud4Y<%Tci;PeJ000050=>wxtm-MusdM${KF7TTPl6-$7*fNB zq_(1{raA1KYEq!vY+>BaW`3EO415?KfKp1@L{Svp7+?ZWRTXKPVvKpfoB@D5&k2G6 zV+_lmxic~WXqv{$vW&W}x&9rAlgJr)m^akEETRQ!H3Q(Vy#R3BU9EeWb|1IX-8*v@ z0JWMCCsF$)He~voct*6=gUAce7eh!d(CwlHY>2f3S7dO6KIE{y5GN63S<3Bnce~n9 x`|`d1l2H4y+5bwY{ZZHYf{ZTiB5xPl;ver9YfHuu)*S!<002ovPDHLkV1fw3fUW=l diff --git a/src/main/resources/assets/hbm/textures/items/ammo_556_du.png b/src/main/resources/assets/hbm/textures/items/ammo_556_du.png deleted file mode 100644 index b7f0f4da990bc4427c3bb2f6562f8e6fcddbf10d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 388 zcmV-~0ek+5P)ur2e{lp;i3etE$7sld$hFG z(9q@{2;ovgc#AEGQj1d{EpI>22%O{~cp6H%j=MVPffwHQ;rV`^@B4*+mIBBZ^D=7; zJ43YyAOYY_J!+>l%(D3d78?N2cl)HXY0R?8+5U2DNCH6jwCbLBnT#e_&$m=7R%}Re zcF{epw$fTwO9mg)5!H$XxB{?u{1ll>(*J0*Q7{mIg26Wgz?CRSGS~=0avR3nO&DYz z;`#yMe@^uWBReI7g0Vtwvk2ZhZ;vCIEjK)qFb9r}T%H*6a=k4w zJ`&M&8Q<)R-$}wR4ni7j)Wy|+yMgBQz5}TY&6Z2GV&T|{o4UkcMs;YAHJX1JWeIwily;(SiltlQTMftWB(d|3In{!Z0-I zP3Jhb4<%3KlGo=2v=ph^yHi}2Fcn#LH+K8Y+O7d`SpuK{Z%^-L5>WZtl#~i^adXxn02)G; z{YD=Vk)y}}7^`E*D9}yO03jrpU@Fo+W16OeXRCZ|%6-Yl^C#YW0A3&WxGW)-==c3G zps83Q-Q8VlERjCE-0NWYFQAWf`=&pf=Xvnc#1d)c>)`pU`T_8~Yd+RQ^J4%2002ov JPDHLkV1g-ChIIe{ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_556_flechette_du.png b/src/main/resources/assets/hbm/textures/items/ammo_556_flechette_du.png deleted file mode 100644 index bfefb1649bd11947c0f18bc1a41936b1a296232b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374 zcmV-+0g3*JP)aTP(h4%HG~QYfW&dhf#h-nr*I*hHBPQ>>;X>&zDZ z5ACZq>p~VPTK$$-O-lxy>UtovValLWmD$7T%8+9Ea=4YSTUGpgP4PVk2nFD*|7xrR z7)~%C7J$0q4+0R%GDuNx=#a|3TByl`EK;cT$ltkCW_xc3-*d?G#n6YJ&*#0sMNW2+Q4}rxG=YoEW8Pr>0uJ4V U^^u{?(*OVf07*qoM6N<$f*~2CwEzGB diff --git a/src/main/resources/assets/hbm/textures/items/ammo_556_flechette_incendiary.png b/src/main/resources/assets/hbm/textures/items/ammo_556_flechette_incendiary.png deleted file mode 100644 index 2e1115e79978ac8d3838b24ef846b830d551731f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmV-c0jd6pP)1t?e8KzM9GWfepHku|APKFEfM~5N-#rPD=UZQr5Rt`5{)BBnl}Q<5 o_Z5JBx-q8m(YU6vn^Af~{DpMXo{w$)-?T%#!VvWO9l^1{arXUF!q1 z51@p?1<2e^Ogfcjlz*H&O#29jEe07N}6EdrxO zOsOmpG7?v~bA|d#u2-8VWRd@P#Q5wy#_}@MnQ5rSyIS+?wI1t$a~{6ndXNr|0$cqY<0pY#ckt&xV0$E7R)0000H)~e(1EE!;xrtu7s!ajh?JE921cAp ztY)EshNS!mPf`5x{Miohk8rJ$lP%?!x0C)bn{V)mi7`g%x)x*1Q0rPHa#+jBmO?~X zqstj0SIFgzSB-0x5Rp_>l{JY8iYPBc1g$jyzVCGmCB9$1J^hP<8N#d?x=1_gV zJ3?!XTuaj&8USqV5zCcJg~WT`4|u50 z7=(&<^nU+Ao0~zBgoxmr1D@7j#MP~}*-vw?JeL1HZUC=)d#$7WS^xk507*qoM6N<$ Ef^~9${Qv*} diff --git a/src/main/resources/assets/hbm/textures/items/ammo_556_k.png b/src/main/resources/assets/hbm/textures/items/ammo_556_k.png deleted file mode 100644 index 86bf85767b9fce28b2113a4ffc7d0699ec597010..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 315 zcmV-B0mS}^P)ObB4!~gN0!+|?x05FK<>`WX(2T%dvuz{y8 zFP$zQ!$-LuQ2_w{e_1^A2z*x?0zl{?%dsun&sW)h^`$JtJUyms3`hi^ZA0L@KqLTf zqrbwvn3o?l1R#k*r>;vcr zsL`$Z0710al#2~b6_MZ)aI{8d+EQl$IL?V*U1m*60TSkT0EPoZ9xnVvyO}p8^ zNW`e5HL0YvUqO9=CF98EdYHA3N0i+Kz+t^bYPU8pT-(pW{u#=1S?1yS9cedlZf#&B zVncK316cL4vIq_@zL0+?WMYu<;FjF0tCgMdIB|bIF*&z@=C%vd?7FrF`y`BCfySxg;-w`a(r6ms$8XhT>^)fqmv>=B1SU) zJ%}cDohTC1F*#LJJE-&@?Yqz4SqEn(1NdBCX*jrj{K`%NOaOfI!_EB*)64t-7K?~z zRaGh?`?~tI&~8<#emrZpD%Dz>gzUDccIa-4_9FyHc{k&F@r^MC?>)}Bqj5w;^E{_* zTk5*bh6QS^#TWyC_Z}b$3W;4DKmsTQnZ%&Zx&HO_`vzkSseidhsR6t#H#|HEMX|RV zn#2rx3z=J*rWrLEGsv8C`j<({AZg;g4<9_baKnV<3LAJ*^AY4f%{}Ct=4gHal`DLi T<$rP400000NkvXXu0mjfsOE!N diff --git a/src/main/resources/assets/hbm/textures/items/ammo_556_star.png b/src/main/resources/assets/hbm/textures/items/ammo_556_star.png deleted file mode 100644 index 14d73a75753f50b17a308685e48dabc4919afb5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 378 zcmV-=0fqjFP)eMWCSCA}%gF~zzgSd!`a2#rDy~(Xn-{s!(Ue3dN4j29@1t4`~U^IGOQCR@j zFTmP1%&f4rJ}W=;WB~x&oYQ(7XKvb|u`^W|Vgbw_pf(QgNuOUCo46$myuuK>e>u78 zs!69Sn~N^*Z%>4Q2gCwU-@7yJ#U3u2Z4@K|usSjBI&MtYt|tq4MU90MIfWz|D+E=iF1z^B4?EV00006o$WXEw%`TxyUG)!c?1LQv`%dx?wPoCzvNlSh8+u zFK8A0o~PUGHjPGu z&1S>#;U$k>e71gvyWKAJdY$ojT=a_w^ZDEYG{EuUC8y_Sz(hyOBevTu1{OjPhM_hl zMFeB={o{lOuFaSCZ;6&iNGY*xyMXgNM=4drsa)2ehra&dBc&{$BuS7`qLgB>Sg=~H zEP#V51AV7+(QG!cEDNnQLI{KqBuT=0y)NKV1S8wFNz;_wZiiBeJkJqAAf+tLmJEE~ z*R58Ie!pKbnNFviJo@^_{6Q6L7UsGxaU4^t)rjMmH_z|m2LbnfrWaT5zCA7dU^bgs zH@6LtrYR5au2_Ef#Or4hPS4MH^~9|_HUPpf)T7Zz-@Lp*4}JBrtp`2+4jWaStugs0 bypMhXSro9W?P5o500000NkvXXu0mjfN_^Mv diff --git a/src/main/resources/assets/hbm/textures/items/ammo_5mm_alt.png b/src/main/resources/assets/hbm/textures/items/ammo_5mm_alt.png deleted file mode 100644 index 3a511466bd8e7729bf689cfa56bd4513dfa0ba6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 474 zcmV<00VV#4P)BjE7=|A;O9xYkEmEe(!`4k|XCIs^i;k1k!3%VdEhr={ebj^mz(@B8k9N5%qB zN*Tv-0Epw*`X9lQ?O`w&pp+sEL$m9l=XpEt3&C=^L~D)XIGi85rN^G<8Q=GbqNpY* z%2i64PN&1c(=QyJ9P#GgUw$#^{G?VFpL zV6O^q2j;piNs`cLG)R(!uOD9$gds2PveS!izu(m=m`o;Cb=m+~mht-eg8BDfTwh&s zcyd(RlTxB6GQ;7}R5!2R#aw*qnDb-Tn49b}Q+3c^Ljz9tH2pJ#kmEpjb+R QKmY&$07*qoM6N<$g7RqGI{*Lx diff --git a/src/main/resources/assets/hbm/textures/items/ammo_5mm_chlorophyte.png b/src/main/resources/assets/hbm/textures/items/ammo_5mm_chlorophyte.png deleted file mode 100644 index 4c6d8c99a65957f57d9d6d49987fe472d1c23745..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmV;(0XP1MP)6IDPLV9jhhi$CNR_ApgVVC)!pcNHLuO0;2uw^& ze22{W47rJ+3-Uxr2P+O^$$(^YB0rmM;;6y_CO|S0W-*fMugAd9Aux;CTo(I5u zKDQ15e9D3#2#Dhtz#IapWI-IqXsz))k4B?m%97jd_TG8^l5N|@_kHU1I*Y}EjkDzL z_R%VuJDm=W<1iYHtUW*xvT>FKgDb9wH;C6$(ljMA3n567B!^Urfc1K9J-*yg6;)=l z8RGR6DJ8D!Zke^#c{`=UI{tQK{OToA%G?x&AyP`T)=VZ7rqihfg)J0yQaPhmtD&_9 zKnQ`9k}wQO(=<2lwUEhmU7{#rwOXOICP|VUva7ucy4|j6Hk&w(gHnoCtCim=r7)kL zxAH4*nS~JadcC|7r4$!GzYq+r`2ORoDFuwjV{3QX08te2=kEjaUr$^QZ?+(%Tj=-u yW_Q}~e>>;?IrqQsS1t>1?eg7B1TN42Wd8lNQyY*6j)ja^w_(nil82Q zSa0IZ2)zi=Q-6Wbqp~0ba%tGoG@z8B!9pcUsj|uZfHFOlS+hwl+V8T%$Gp#c-}^57 zXITKbm7Jb)a9gCwVLMaumGuEuPuh2jKcnBe4 zQ5c2@Ay7)uY&L1P+xHXXcSxA?<*rC3lR+s(6h%0WgAjr+3=?92lo1a?Y}-akNx$D8 zfecsb`|iIr%-8cg?Yb_NN@WBR1Oe+WZ<8?&zMO4%xUQQpEC>P$g#uDaPWNY+c~RzQ zuNFs~n4n&-Tf=SxNGVyKYSX&ta>AZQp$j6flKAa6C kIGh5E|7{IqT>sJa7h00Y+%_PO%m4rY07*qoM6N<$f^`Voj{pDw diff --git a/src/main/resources/assets/hbm/textures/items/ammo_5mm_explosive.png b/src/main/resources/assets/hbm/textures/items/ammo_5mm_explosive.png deleted file mode 100644 index 065481ff2b2eaace91fb36aacd63471006e6b492..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 486 zcmV@P)QQ@;yKfc96gE=HlSTw|9Ivhg&z{caTb@lF29K?z+g`J8=CP zd_0HIS%KE$&nj)MR;%RmdAi-M$^g=k(OH4@?G29h4>=x`7>~!qX00_*6eW;c8nE{a z_2N0)C^&q1bIS3cgfRxkai+}H+N7Pi6K~d$_ZKycF^S3deT*?!Yw7p<1VNwx7UltD zv2wpyETWV`M9^BJwZ`{-hQncE&a@EAaU8-hWHOmxttE;gwAL77GJkUba?(lGQ>)da zTrSgSG%^s+^H{t0bs8Y8tDQ>=iOuoA(h$${c=c$7_3aIwZWZKL1pxthZ>$);~dCfZV^2u#!)@Lp?J%d>D&Nhb3 c%m1@30bz>8`<=&62><{907*qoM6N<$f*%p&7XSbN diff --git a/src/main/resources/assets/hbm/textures/items/ammo_5mm_star.png b/src/main/resources/assets/hbm/textures/items/ammo_5mm_star.png deleted file mode 100644 index f270f4bb399b3095fcf85e52071f5704683575cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 539 zcmV+$0_6RPP)EwVHhpD>sF&d2u@{ENXnx>H?3DfD6 zEXzpK6kXSmQqJs_01gg56v;Lk4P{vt&1Q2(q|@oJe*N1CfrYKDeO0YiSzf;8EiO(x z%d(2VOw%L`L(1hcVHoo2VUngSEW85doT}*T1fW){O?=f%jsr(w2tcpb8_~rYXsu-?tJpt#CJIB=OOGg}Vi%1VXsu;1 z7|`v7gwY%8rAHjc!LqFJ3;-O*;r5};Q~d>{6oz47+cw)P?ePo@!x%=kEDO^#$<&{|6>m11MDK@bF- zT+h?#bZE6&G#ZT&eQcHc{XV;=S(?ozN=1nX}U1VqtClVlPfLrVYv002ovPDHLkV1fd2xK988 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_75bolt_incendiary.png b/src/main/resources/assets/hbm/textures/items/ammo_75bolt_incendiary.png deleted file mode 100644 index 768f2817a76718bc3ab97fd8e1b193f811259754..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412 zcmV;N0b~A&P)Q4L!(FLL{uACpd~aWjsjVvy|XADbl-|OLx2Hp6@%qd*Hv15JIL>DY@u<{VzC| z%Mkyi1MwPo-@+9n7B`u#otzVCdzBw7px z18(FYuInmc 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{^ 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 deleted file mode 100644 index 0b55a751533446e9c657dd4178cfee3de37e3b0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1964 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 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_762_k.png b/src/main/resources/assets/hbm/textures/items/ammo_762_k.png deleted file mode 100644 index c1206a56410fe11dd7f7f30e71504a0dfca5ebc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmV+}0nz@6P)1 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 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 deleted file mode 100644 index 6db35575796cbee8a785cae12f7e17d7ac3e6b6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 818aa8c8c9ec95a428bcea34de54195e4ff41e75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_9mm.png b/src/main/resources/assets/hbm/textures/items/ammo_9mm.png deleted file mode 100644 index 60950815d8a29cd66711c7a09368d11a96e1b591..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 321 zcmV-H0lxl;P)8Sx?0;8 z-}fa+5&(=b0P+*$#AX^}D9aMpb$OT$#P(+|pb8g7!Kjm=qTnE8X9TUa1BmB&j5-+? zH&^iWfrpf?KQ{Gn#Xm{xi-Mvj(bpzn>1qX5gn6RKfKBqUt z+QhoV3Nm}nS?23alQf&7qJTK$;9_?ahse{NCvk|#`dW?(+aO1Ww;{g{|EazK+<0JI T_-)Y200000NkvXXu0mjfPpyk) diff --git a/src/main/resources/assets/hbm/textures/items/ammo_9mm_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_9mm_ap.png deleted file mode 100644 index 17f2f4df27c4569d0dba37409357ecf8c76f206b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337 zcmV-X0j~auP)xJzzHW#JDCJ2N{U9}E9JR=450t~B>N&wKN3 zM(c%AO42k1Kx+*kLy(GEpss7{c<-GfXP=+XCF~wBp4di{QMUnb|B3~f0GzSp@brT51mY+F z7IJ<2-F|Fq;CY^OA&)N^A6e0wJUlIkqktr2)5P;UX-?NB36bZ!6G=iuikbA5O$H{2 jaoJ?B4l&IJ4gNI00kd(oBB;?I00000NkvXXu0mjf-AjrR diff --git a/src/main/resources/assets/hbm/textures/items/ammo_9mm_chlorophyte.png b/src/main/resources/assets/hbm/textures/items/ammo_9mm_chlorophyte.png deleted file mode 100644 index 333ef997c6a7d04903e0e2fbd71db22812807ff0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300 zcmV+{0n`48P)*nhMD diff --git a/src/main/resources/assets/hbm/textures/items/ammo_9mm_du.png b/src/main/resources/assets/hbm/textures/items/ammo_9mm_du.png deleted file mode 100644 index c388b044e96ca748ff35055ca7bae5f2f8553670..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#X#z`)4u>Eak- z(VLtg@u@*D*5Rh#Py3$Q?-ycuDoYMDotbDj_2+ye&DKUBc=+wM?G2Vb9|WpG_Y8js~Pj* z^W{AG@AfA}>`l~n4tpQW^R+;H#Z}`!=?Mu56-B=|7hgO4nCH`_CLaBB@<|B^;zf z_uGDL#IOIa4;TKQ9DCu)Dxd}Ji7{;|yAA&Q|G$JK*w{`y!I))vT8y598OwATNAU|H a3=CRQ)t=Jlrknu=6N9I#pUXO@geCwzCWm$a diff --git a/src/main/resources/assets/hbm/textures/items/ammo_9mm_rocket.png b/src/main/resources/assets/hbm/textures/items/ammo_9mm_rocket.png deleted file mode 100644 index ad908fbe926637dfdf2f2fdbfdd950dd903d88c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmV-90mlA`P)t#46s{o!K?gGH|Y{vKT$jkeu z`WFD;>Haq8`Fwx?CxM2A$JI^Hiv?52U!c*)6arAx8i2AaMaY%(xIY{yYE4mVj4>Ev z$n#u0@(A$yu~qxs4uH080qD98APNx;-oAcLhKRkgEDHc>ngWm{$pGkq{Y^vz=bQp) znnpCKstRjuh#JI9y!Rs`=bRD^VkXmYw1Ncj-Vfok##$TtN*A49OulPHt=#~b00000 LNkvXXu0mjfor;24 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_bag.png b/src/main/resources/assets/hbm/textures/items/ammo_bag.png new file mode 100644 index 0000000000000000000000000000000000000000..548646c58d4183e6c0ad2ebe116505cac4926bf7 GIT binary patch literal 332 zcmV-S0ki&zP)<97Tn{PZm(p=dcd?y3jnhh2*dR{O|Y6^4Z$suAHaujpRRVj5C$%rxY<74 e^bdsaL*f_ivx+*@Pdlan0000^FZtEAKtw6uW?(qs1^NYVxF&Q*Lz`U3TAF^X&h_ zZ}m(EdX}A9&XQ2Oc8gusZv!5t15we8R>rfUf)XRe7`APBTYIH!ZE5K_#s_eCsXxL^9U;;o^Zpp%1UsDJ#v*eC23y7sQlO_L7-UB%$(>gTe~ HDWM4f1CCF) diff --git a/src/main/resources/assets/hbm/textures/items/ammo_balefire_high.png b/src/main/resources/assets/hbm/textures/items/ammo_balefire_high.png deleted file mode 100644 index 527fcdf3c3c86c637132b0271e82dfdf3620dd7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf&AHN^7!Z3saN5&#`+t7s amAiY;Wu0fb@&lkV89ZJ6T-G@yGywo8iCTpK diff --git a/src/main/resources/assets/hbm/textures/items/ammo_cell.png b/src/main/resources/assets/hbm/textures/items/ammo_cell.png deleted file mode 100644 index b276895b2ee7a64e9714392a17f1f7f93ac58f72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfwQ+`9h!WTB4c)MEiZT~x%ouzgjW-!cKTfqJ(gfzx!{?%4U7CcwXb5c zciT6Le_(tz<7ufa9`H9zZuRc)I$ztaD0e0swEbN7euU diff --git a/src/main/resources/assets/hbm/textures/items/ammo_cell_explosive.png b/src/main/resources/assets/hbm/textures/items/ammo_cell_explosive.png deleted file mode 100644 index 3c0c06b78b7b0b047ba73420062f2a7ad7400b44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf{v3UL^nk diff --git a/src/main/resources/assets/hbm/textures/items/ammo_cell_incendiary.png b/src/main/resources/assets/hbm/textures/items/ammo_cell_incendiary.png deleted file mode 100644 index 231be55d47fcc2b7d7ad6fae8364641bc028a059..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfvQMx*w;IKSRcQC!!D84jGsPz;+ZpN4$uAl_3j66FbIbQ3Ngen&zhf~ zl(BPbM-6k`o~m;P6xBTUF&<%9)5yWR_See^2M!B1SnyW-_@JmFRsVNUtx3?Erbc## Y3BMxM3|)_`2fCEO)78&qol`;+09x!;tpET3 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_dart.png b/src/main/resources/assets/hbm/textures/items/ammo_dart.png deleted file mode 100644 index 928dc92218d895cf7dca6b52da59b264665979da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfZIEPG{X{EPqhudSPT=c3PorjUhGSoc((I69HJ#%#~LU)xxQNrzUgE0b0%A>FVdQ&MBb@0LO?%5&!@I diff --git a/src/main/resources/assets/hbm/textures/items/ammo_dart_nerf.png b/src/main/resources/assets/hbm/textures/items/ammo_dart_nerf.png deleted file mode 100644 index fd73075b2d59eeab2feacb770410eeed024fe0a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf%gzA4}^lQ=v;qZf9uh*OPf5rI78PO xWvmkZTgb++itB+<%JRg2ciSfO@LkN$U=lu;$YTCqeJ0Q~44$rjF6*2UngEnBLt+2` diff --git a/src/main/resources/assets/hbm/textures/items/ammo_secret.p35_800.png b/src/main/resources/assets/hbm/textures/items/ammo_secret.p35_800.png new file mode 100644 index 0000000000000000000000000000000000000000..af9c08959f902d429968212556276b26d604c583 GIT binary patch literal 313 zcmV-90mlA`P)E6Jomf~u91sFn5SoByNa<8C< zY_bVIYOVlJDT*}MUco_4XlT1T4M%-*GT)O-GVsq)E>u+|F4uLfrmv4D0MJ^C)|xnu zX_^K=e32s;T)FRi!Z2iWo6El92yo@D>sYTE(yZ`80sw2R0whTi)~kk#s~b+EGXORq zm-jET&k0`-d>+bvjX$kdVMwkOc}}U;aW@?N%y`LQ%3&fDP(bZhz!p^B#(gjH3r)T00000 LNkvXXu0mjf?5KY# literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/assembly_45.png b/src/main/resources/assets/hbm/textures/items/assembly_45.png deleted file mode 100644 index d64ceb33b286e3be3790f1247f60393422d859cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363 zcmV-x0hIoUP)2n zW4C^Sg1G3^La4av5}Xu4B1BsR2j}DTLjF87)jQqy?m0i+xjf*XrTr#2-7+cr5S5%_K`PPOuXFdRbz5(2DG>`(iHuAu$^KC{R$h6Oe%qqyj<|5>$`8Tnki%_tzErtL9002ov JPDHLkV1f+$oH+mh diff --git a/src/main/resources/assets/hbm/textures/items/assembly_556.png b/src/main/resources/assets/hbm/textures/items/assembly_556.png deleted file mode 100644 index d54b686cdbae528f964a26ce75e4ecfbcb6e3e3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 375 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 diff --git a/src/main/resources/assets/hbm/textures/items/assembly_gold.png b/src/main/resources/assets/hbm/textures/items/assembly_gold.png deleted file mode 100644 index 4b7f8cc0026c17e45769c3131c89722b0f796c6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfBVhCmwAwj?eaClAt2cSIw7K;SM2?!xU zVhDz&0*NFcD3T_#V#8)Alyo){b5JeHHs@h!k3x{DymmAo>a9wwEzJduMG)WRl2%*03Z#LP3Id-UN8p^VS z=Xn^00RWJuDY7ivuKO%tCFk=Qwr!)XYYfA1DEVTWzVEM($KxUh0`B)aOw+_Tju1r= z^E_X=uDc!z{v+AM2>fJUmL;ZXLLA3X6a{ITuJV7Y*yxsY-iG%ie}-AftJya;%ecy1 SbA+S-0000^JtID2kNt`z#g<>h<~o z@&#~RSFX^G#KW0gxaFR1`%D5P;=! ziSPRgK;^&RZ6h!5EsQZ(mPL{zOePb8AW*PvWrtA+XsyMzZK~BOl}e=$$xb=Hh~roR zV%zq9XIU1;7}o2x?C$qd*g_n~YBrm(*=$JDlq5+QkH=hJtcv2_kJef`osMX&<@MoG zWOXmuihqrC+sJ6plwrT|KLobzj0R2Vw)y+xERx@S0L(e0l45@mJOBUy07*qoM6N<$ Ef{8w}egFUf diff --git a/src/main/resources/assets/hbm/textures/items/assembly_lead.png b/src/main/resources/assets/hbm/textures/items/assembly_lead.png deleted file mode 100644 index f31459e53b175acf0b48963a1793ebfc957f7532..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfK`;Bhf4}=rE6h-|uQxLCSu_89$5n2=J3c)i{QuwI!v%TaN12Yzw^w}D zmRj+*UHZX+vqyIPyp_A7jn_KtZ+cQvQp-*@Nsz`Le|~!V*dG%4o*UQdlw8c|$6&mq z_G5{NuZm>T8_`X?2cMPKJW|=&qU4+~>!cCOGS2CzJ&am(8cwG%>^|DMD=)573+N>V MPgg&ebxsLQ0CI|RcK`qY diff --git a/src/main/resources/assets/hbm/textures/items/assembly_luna.png b/src/main/resources/assets/hbm/textures/items/assembly_luna.png deleted file mode 100644 index d0935642ea575fa39b56b1489e5415f1ace5e7c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2259 zcmV;^2rT!BP) 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 diff --git a/src/main/resources/assets/hbm/textures/items/assembly_nightmare.png b/src/main/resources/assets/hbm/textures/items/assembly_nightmare.png deleted file mode 100644 index 0dc3faedd4e32afdc83be7de1cdbc6f9b0bb4ecf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfz3~9>Z<>7-egM6L%R)`Ni2Q5oTt2|rQWpOeU0(|HH*GG z^LMXPZrHQWSTxD2Gp$V8#dz`V;80Da(i5TFp-XogGutajez@m-W7-_W^!OF(Zxoh4 zo3mh5sK?7{5zY>d9o9-r3Yue%>xNw!x(h{?|*&OSh{nvfcSJ}KpFYd(E5_jEM0oQ@PVDNPHb6Mw< G&;$Sj^JG8( diff --git a/src/main/resources/assets/hbm/textures/items/assembly_nopip.png b/src/main/resources/assets/hbm/textures/items/assembly_nopip.png deleted file mode 100644 index 8345a3758d37a193034fedfa79429f7bc1867657..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmV+@0oVSCP)^$2%pn#RxbjH;@TB%hR@1OOmSQ*h3~ zIe#v&?|by_Byg2Qj-?lBraSTZh!@z*gC3DU}YaMvu8~eUz u#+dN(K?VRRC6rPSLSR`IXsx4;9^(bL%T(ok@1hm}0000+rh<@!T5gLFOJrZlqKp$mGh*cBifz&MEC5sV|d`cR^P7g z@eV;97nOO>O`iq)?K28ZP1EdRVwj+Evhdt4tHPl7bNNqh;)%^}n4VN~t=h!&!fgiK z)9trzrhj*1yU!mVUTu0{>5|*~ZH*a>yRYqH%QUiBcJhpntKcOQSJPbig*h7T?=w3# z>3odT3*im8Y9AXa!18F9p3L#aQ=Fflo~ih2p3To2;`8uVbHzfSuNgdD{an^LB{Ts5 D5I}hr diff --git a/src/main/resources/assets/hbm/textures/items/assembly_schrabidium.png b/src/main/resources/assets/hbm/textures/items/assembly_schrabidium.png deleted file mode 100644 index 9c052fc10fc4a39feb53069f42bf086975b8be03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfGvf>||?P`H*EwLDN&U2pRc{sm|L|U#e-BO`4UN z_RpK`$5xByDH5rkCyM{>aZcxS6clvSOc!Ks$eh*W@7iC;!tJc!*2yg?>S_r=r^+0I4snQT8FrH@II;AWI^?OgEty@B&f#uJ-9Nt%ze zTwy^b0QYRTx_e+e0Udb2TArSNI-hTE2Fn%J>qo{{mN!X~w>3KO2z~m`B=nK@ms<&a lMDm#og1bxx!@DM@G=DtPc)hAE$FBeY002ovPDHLkV1h6Sk3Rqa diff --git a/src/main/resources/assets/hbm/textures/items/assembly_steel.png b/src/main/resources/assets/hbm/textures/items/assembly_steel.png deleted file mode 100644 index e603a98badc7378de3e58b9805f3adb2a06979e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf)6gNj$iJ^i0zJt$M8*qKiVDdYEr64N-dhW6G|)y^GixbWRJ&c0Q|Q6I483oD#{F zKWnqdnW%G>G6L-cJyNd!n%HZkh=d#Wzp$PzO0CF4v diff --git a/src/main/resources/assets/hbm/textures/items/assembly_uzi.png b/src/main/resources/assets/hbm/textures/items/assembly_uzi.png deleted file mode 100644 index b490a0facd5d117a686727e26fa738d6ef631689..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf2926vxcYoj60|yR#sQ>!vYR`+T83{b>?Cfi{ z-Pu<=`{Co`{X9uYNjyJdnAl&i-MoGK|M_$0j=kocGixHR;tI)|6EcrpI+A^0+0Xy4 z%@*+{Iz7|aER!%{x>!m@;XeWAG*>g`NIlQ8#2@>&`al2wIaW?(XUYU=r>p}>rYbjE j8~3bem2}#c=ET4d^dm3QO@Mh8(7g!lvI6;>1s;*b z3=DibL6~s|oA`d9phSslL`iUdT1k0gQ7S`0VrE{6US4X6f{C7io@I`4ogYw*si%u$ zh(>U-1DkQa{ty1tMH?Q!lvI6;>1s;*b z3=DibL6~s|oA`d9phSslL`iUdT1k0gQ7S`0VrE{6US4X6f{C7io@I`4ogYw*wx^3@ zh(>U-1Do6Sx&NJK-eB}$>^K(SGfBnI)xfbtisyru67w9P8;s1%3!lvI6;>1s;*b z3=DibL6~s|oA`d9phSslL`iUdT1k0gQ7S`0VrE{6US4X6f{C7io@I`4ogYw*x~Gd{ zh(>U-0EfY-nU;Xul`feMQv$Gf)eIr>mdK II;Vst0F7uXlmGw# diff --git a/src/main/resources/assets/hbm/textures/items/b_smoke4.png b/src/main/resources/assets/hbm/textures/items/b_smoke4.png deleted file mode 100644 index 2d9c8dc3ce7b82ed420f68d80b0ee6a490826665..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqEa{HEjtmSN`?>!lvI6;>1s;*b z3=DibL6~s|oA`d9phSslL`iUdT1k0gQ7S`0VrE{6US4X6f{C7io@I`4ogYw*s;7%% zh(>U-0{@xE|M^oD8D}VT99zY}k}xSkRFON$J}#C5YGCkm^>bP0 Hl+XkKYThf; diff --git a/src/main/resources/assets/hbm/textures/items/b_smoke5.png b/src/main/resources/assets/hbm/textures/items/b_smoke5.png deleted file mode 100644 index 18973a46136367b2cf107a19e33fefa9f10418e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqEa{HEjtmSN`?>!lvI6;>1s;*b z3=DibL6~s|oA`d9phSslL`iUdT1k0gQ7S`0VrE{6US4X6f{C7io@I`4ogYw*yr+v} zh(>Vo0;Lnre(^6)%vr;*jA6CX423x16+99W42QzF7Y1)hYX&N1@O1TaS?83{1OSgI BDvAIA diff --git a/src/main/resources/assets/hbm/textures/items/b_smoke6.png b/src/main/resources/assets/hbm/textures/items/b_smoke6.png deleted file mode 100644 index d0b9ff88b274f6ca169cc265d9a24db32bb09dc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqEa{HEjtmSN`?>!lvI6;>1s;*b z3=DibL6~s|oA`d9phSslL`iUdT1k0gQ7S`0VrE{6US4X6f{C7io@I`4ogYw*jHioZ yh(>Vo0>%xgzxh)iG8nK%hzectWj=6#f#LcxR?aWq|2zSzWAJqKb6Mw<&;$Sg>nd&l diff --git a/src/main/resources/assets/hbm/textures/items/b_smoke7.png b/src/main/resources/assets/hbm/textures/items/b_smoke7.png deleted file mode 100644 index 5637b1118d7bd158a9c2ba271ba6c130c578c315..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqEa{HEjtmSN`?>!lvI6;>1s;*b z3=DibL6~s|oA`d9phSslL`iUdT1k0gQ7S`0VrE{6US4X6f{C7io@I`4ogYYzr;B5V sMsTtO$AS}omdKI;Vst06z*QiU0rr diff --git a/src/main/resources/assets/hbm/textures/items/b_smoke8.png b/src/main/resources/assets/hbm/textures/items/b_smoke8.png deleted file mode 100644 index caa2ddf3ff8a4b6368d49edafc247e14dfa80414..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqEa{HEjtmSN`?>!lvI6;>1s;*b z3=DibL6~s|oA`d9phSslL`iUdT1k0gQ7S`0VrE{6US4X6f{C7io@I`4ogYw*kf)1d nh(>U-gv1AVFMgo|2N)P8mNPPROvvU1$})Jm`njxgN@xNAFZv^M diff --git a/src/main/resources/assets/hbm/textures/items/casing_bag.png b/src/main/resources/assets/hbm/textures/items/casing_bag.png new file mode 100644 index 0000000000000000000000000000000000000000..d7f680ecc97ab83d440bf09b2efbffad44285829 GIT binary patch literal 335 zcmV-V0kHmwP)5qze+{GVT*KS|))YJ?UigKiaCfBV{c^*15&_^ty$ zmI#&yW%hDaR&!Z6kY>o7C4wvw1_ChK?1Sl=w)uH@YYbY;gJQPXlg5!w;Xs@g-q$+- zQ@lE!%-%v40L*34umMgBwpowUI3iaiJ<+O{`Uw`YFelmSiIxGK1>E=B0F0g<+5UX< z`T9W`M@}n~LASC&|F)oIL+q<`5@>^bnR-#R>W|4w5Yp;+B3C8#N8|zQn0kKB47I=T h&~FF-z+dKz=odnLZRTL$9G?IH002ovPDHLkV1gdbkw5?d literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/chunk_ore_malachite.png b/src/main/resources/assets/hbm/textures/items/chunk_ore.malachite.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/chunk_ore_malachite.png rename to src/main/resources/assets/hbm/textures/items/chunk_ore.malachite.png