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 000000000..ac4b582c2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/gui_casing_bag.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo.png b/src/main/resources/assets/hbm/textures/items/ammo.png index 5a102c684..4af2d408c 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ammo.png and b/src/main/resources/assets/hbm/textures/items/ammo.png differ 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 ec00ddf21..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_12gauge.png and /dev/null differ 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 21b1a15a3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_12gauge_du.png and /dev/null differ 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 0e43c8788..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_12gauge_incendiary.png and /dev/null differ 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 4adaf3bb5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_12gauge_marauder.png and /dev/null differ 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 1b60046f7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_12gauge_percussion.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_12gauge_shrapnel.png b/src/main/resources/assets/hbm/textures/items/ammo_12gauge_shrapnel.png deleted file mode 100644 index d81c85033..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_12gauge_shrapnel.png and /dev/null differ 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 0426df546..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_12gauge_sleek.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_20gauge.png b/src/main/resources/assets/hbm/textures/items/ammo_20gauge.png deleted file mode 100644 index 8c7cbd38f..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_20gauge.png and /dev/null differ 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 303d26d4c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_20gauge_caustic.png and /dev/null differ 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 e1c80fe3d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_20gauge_explosive.png and /dev/null differ 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 a03bdb7f0..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_20gauge_flechette.png and /dev/null differ 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 51dd8acb1..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_20gauge_incendiary.png and /dev/null differ 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 e50f545b2..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_20gauge_shock.png and /dev/null differ 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 b243ecc5e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_20gauge_shrapnel.png and /dev/null differ 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 759bf67c9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_20gauge_sleek.png and /dev/null differ 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 12a7f47e3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_20gauge_slug.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_20gauge_wither.png b/src/main/resources/assets/hbm/textures/items/ammo_20gauge_wither.png deleted file mode 100644 index cc717431a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_20gauge_wither.png and /dev/null differ 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 e2c70d0b2..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_22lr.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_22lr_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_22lr_ap.png deleted file mode 100644 index a919ea35d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_22lr_ap.png and /dev/null differ 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 9001c86cc..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_22lr_chlorophyte.png and /dev/null differ 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 899238a09..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_357_desh.png and /dev/null differ 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 4ab1d41bb..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_357_ender.png and /dev/null differ 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 1d741d30a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_44.png and /dev/null differ 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 477af4363..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_44_ap.png and /dev/null differ 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 75b7b8f8c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_44_bj.png and /dev/null differ 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 47d8b75ec..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_44_chlorophyte.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_44_du.png b/src/main/resources/assets/hbm/textures/items/ammo_44_du.png deleted file mode 100644 index f1fa18816..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_44_du.png and /dev/null differ 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 eb8bd54a9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_44_phosphorus.png and /dev/null differ 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 b0b384f74..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_44_pip.png and /dev/null differ 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 418125b2e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_44_rocket.png and /dev/null differ 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 72650df56..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_44_silver.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_44_star.png b/src/main/resources/assets/hbm/textures/items/ammo_44_star.png deleted file mode 100644 index 626767ec4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_44_star.png and /dev/null differ 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 43cf97448..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_45_ap.png and /dev/null differ 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 f46671ea3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_45_du.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_4gauge.png b/src/main/resources/assets/hbm/textures/items/ammo_4gauge.png deleted file mode 100644 index 2e8f067d2..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_4gauge.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_balefire.png b/src/main/resources/assets/hbm/textures/items/ammo_4gauge_balefire.png deleted file mode 100644 index 039f681cc..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_balefire.png and /dev/null differ 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 58b184c3e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_canister.png and /dev/null differ 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 0352ebe13..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_claw.png and /dev/null differ 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 6f00d2af9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_explosive.png and /dev/null differ 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 f24e7e0b7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_flechette.png and /dev/null differ 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 457d799d9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_flechette_phosphorus.png and /dev/null differ 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 0226ead91..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_kampf.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_semtex.png b/src/main/resources/assets/hbm/textures/items/ammo_4gauge_semtex.png deleted file mode 100644 index 16c9c87a4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_semtex.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_shrapnel.png b/src/main/resources/assets/hbm/textures/items/ammo_4gauge_shrapnel.png deleted file mode 100644 index f64b4271d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_shrapnel.png and /dev/null differ 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 24f58d646..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_sleek.png and /dev/null differ 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 77523c498..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_slug.png and /dev/null differ 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 5547e1939..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_titan.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_vampire.png b/src/main/resources/assets/hbm/textures/items/ammo_4gauge_vampire.png deleted file mode 100644 index 3ed3b56e7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_vampire.png and /dev/null differ 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 f10417b2e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_4gauge_void.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_50ae.png b/src/main/resources/assets/hbm/textures/items/ammo_50ae.png deleted file mode 100644 index 0a9b47c8b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_50ae.png and /dev/null differ 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 5d370b105..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_50ae_ap.png and /dev/null differ 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 508c838f3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_50ae_chlorophyte.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_50ae_du.png b/src/main/resources/assets/hbm/textures/items/ammo_50ae_du.png deleted file mode 100644 index ffaacbc63..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_50ae_du.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_50ae_star.png b/src/main/resources/assets/hbm/textures/items/ammo_50ae_star.png deleted file mode 100644 index 0553cb5ef..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_50ae_star.png and /dev/null differ 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 c0d7f783b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_50bmg.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_50bmg_ap.png deleted file mode 100644 index d0e070a96..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_ap.png and /dev/null differ 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 6bfa27058..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_chlorophyte.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_du.png b/src/main/resources/assets/hbm/textures/items/ammo_50bmg_du.png deleted file mode 100644 index 38ccdfffb..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_du.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_explosive.png b/src/main/resources/assets/hbm/textures/items/ammo_50bmg_explosive.png deleted file mode 100644 index 1dc79f9e0..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_explosive.png and /dev/null differ 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 a9de16507..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_flechette.png and /dev/null differ 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 300ed5765..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_flechette_am.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_flechette_po.png b/src/main/resources/assets/hbm/textures/items/ammo_50bmg_flechette_po.png deleted file mode 100644 index 97e1d8b6a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_flechette_po.png and /dev/null differ 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 240346f90..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_incendiary.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_phosphorus.png b/src/main/resources/assets/hbm/textures/items/ammo_50bmg_phosphorus.png deleted file mode 100644 index ca7a3d690..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_phosphorus.png and /dev/null differ 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 71714637b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_sleek.png and /dev/null differ 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 6f3248455..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_50bmg_star.png and /dev/null differ 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 6ced441aa..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_556.png and /dev/null differ 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 58c6e9436..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_556_ap.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_556_chlorophyte.png b/src/main/resources/assets/hbm/textures/items/ammo_556_chlorophyte.png deleted file mode 100644 index 0a847444d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_556_chlorophyte.png and /dev/null differ 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 b7f0f4da9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_556_du.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_556_flechette.png b/src/main/resources/assets/hbm/textures/items/ammo_556_flechette.png deleted file mode 100644 index cbda4bb7c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_556_flechette.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_556_flechette_chlorophyte.png b/src/main/resources/assets/hbm/textures/items/ammo_556_flechette_chlorophyte.png deleted file mode 100644 index be9ab1a8c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_556_flechette_chlorophyte.png and /dev/null differ 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 bfefb1649..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_556_flechette_du.png and /dev/null differ 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 2e1115e79..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_556_flechette_incendiary.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_556_flechette_phosphorus.png b/src/main/resources/assets/hbm/textures/items/ammo_556_flechette_phosphorus.png deleted file mode 100644 index 5330f17ca..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_556_flechette_phosphorus.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_556_flechette_sleek.png b/src/main/resources/assets/hbm/textures/items/ammo_556_flechette_sleek.png deleted file mode 100644 index 6ff734314..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_556_flechette_sleek.png and /dev/null differ 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 86bf85767..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_556_k.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_556_phosphorus.png b/src/main/resources/assets/hbm/textures/items/ammo_556_phosphorus.png deleted file mode 100644 index 7637beb63..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_556_phosphorus.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_556_sleek.png b/src/main/resources/assets/hbm/textures/items/ammo_556_sleek.png deleted file mode 100644 index 4c43c33fe..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_556_sleek.png and /dev/null differ 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 14d73a757..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_556_star.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_556_tracer.png b/src/main/resources/assets/hbm/textures/items/ammo_556_tracer.png deleted file mode 100644 index 7610456d6..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_556_tracer.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_5mm.png b/src/main/resources/assets/hbm/textures/items/ammo_5mm.png deleted file mode 100644 index a8f597739..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_5mm.png and /dev/null differ 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 3a511466b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_5mm_alt.png and /dev/null differ 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 4c6d8c99a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_5mm_chlorophyte.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_5mm_du.png b/src/main/resources/assets/hbm/textures/items/ammo_5mm_du.png deleted file mode 100644 index e508b69e0..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_5mm_du.png and /dev/null differ 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 065481ff2..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_5mm_explosive.png and /dev/null differ 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 f270f4bb3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_5mm_star.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_75bolt.png b/src/main/resources/assets/hbm/textures/items/ammo_75bolt.png deleted file mode 100644 index fca556d72..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_75bolt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_75bolt_he.png b/src/main/resources/assets/hbm/textures/items/ammo_75bolt_he.png deleted file mode 100644 index ed72697e5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_75bolt_he.png and /dev/null differ 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 768f2817a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_75bolt_incendiary.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_762.png b/src/main/resources/assets/hbm/textures/items/ammo_762.png deleted file mode 100644 index e1b2e9726..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_762.png and /dev/null differ 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 0b55a7515..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_762_ap.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_762_du.png b/src/main/resources/assets/hbm/textures/items/ammo_762_du.png deleted file mode 100644 index 3443e8b11..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_762_du.png and /dev/null differ 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 c1206a564..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_762_k.png and /dev/null differ 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 6db355757..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_762_phosphorus.png and /dev/null differ 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 818aa8c8c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_762_tracer.png and /dev/null differ 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 60950815d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_9mm.png and /dev/null differ 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 17f2f4df2..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_9mm_ap.png and /dev/null differ 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 333ef997c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_9mm_chlorophyte.png and /dev/null differ 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 c388b044e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_9mm_du.png and /dev/null differ 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 ad908fbe9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_9mm_rocket.png and /dev/null differ 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 000000000..548646c58 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_bag.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_balefire.png b/src/main/resources/assets/hbm/textures/items/ammo_balefire.png deleted file mode 100644 index 729506f48..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_balefire.png and /dev/null differ 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 527fcdf3c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_balefire_high.png and /dev/null differ 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 b276895b2..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_cell.png and /dev/null differ 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 3c0c06b78..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_cell_explosive.png and /dev/null differ 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 231be55d4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_cell_incendiary.png and /dev/null differ 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 928dc9221..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_dart.png and /dev/null differ 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 fd73075b2..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_dart_nerf.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_dart_nuclear.png b/src/main/resources/assets/hbm/textures/items/ammo_dart_nuclear.png deleted file mode 100644 index a57398711..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_dart_nuclear.png and /dev/null differ 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 000000000..af9c08959 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_secret.p35_800.png differ 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 d64ceb33b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_45.png and /dev/null differ 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 d54b686cd..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_556.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/assembly_762.png b/src/main/resources/assets/hbm/textures/items/assembly_762.png deleted file mode 100644 index 775fe97c0..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_762.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/assembly_actionexpress.png b/src/main/resources/assets/hbm/textures/items/assembly_actionexpress.png deleted file mode 100644 index 2bdec8691..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_actionexpress.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/assembly_calamity.png b/src/main/resources/assets/hbm/textures/items/assembly_calamity.png deleted file mode 100644 index a79498196..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_calamity.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/assembly_desh.png b/src/main/resources/assets/hbm/textures/items/assembly_desh.png deleted file mode 100644 index 669416e06..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_desh.png and /dev/null differ 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 4b7f8cc00..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_gold.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/assembly_iron.png b/src/main/resources/assets/hbm/textures/items/assembly_iron.png deleted file mode 100644 index 70c4983c9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_iron.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/assembly_lacunae.png b/src/main/resources/assets/hbm/textures/items/assembly_lacunae.png deleted file mode 100644 index 7797ca9f1..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_lacunae.png and /dev/null differ 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 f31459e53..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_lead.png and /dev/null differ 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 d0935642e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_luna.png and /dev/null differ 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 0dc3faedd..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_nightmare.png and /dev/null differ 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 8345a3758..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_nopip.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/assembly_pip.png b/src/main/resources/assets/hbm/textures/items/assembly_pip.png deleted file mode 100644 index 18f2e48ce..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_pip.png and /dev/null differ 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 9c052fc10..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_schrabidium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/assembly_smg.png b/src/main/resources/assets/hbm/textures/items/assembly_smg.png deleted file mode 100644 index 47406609c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_smg.png and /dev/null differ 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 e603a98ba..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_steel.png and /dev/null differ 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 b490a0fac..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_uzi.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/b_smoke1.png b/src/main/resources/assets/hbm/textures/items/b_smoke1.png deleted file mode 100644 index cb231250e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/b_smoke1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/b_smoke2.png b/src/main/resources/assets/hbm/textures/items/b_smoke2.png deleted file mode 100644 index 261a94755..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/b_smoke2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/b_smoke3.png b/src/main/resources/assets/hbm/textures/items/b_smoke3.png deleted file mode 100644 index d44c3e03f..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/b_smoke3.png and /dev/null differ 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 2d9c8dc3c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/b_smoke4.png and /dev/null differ 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 18973a461..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/b_smoke5.png and /dev/null differ 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 d0b9ff88b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/b_smoke6.png and /dev/null differ 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 5637b1118..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/b_smoke7.png and /dev/null differ 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 caa2ddf3f..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/b_smoke8.png and /dev/null differ 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 000000000..d7f680ecc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/casing_bag.png differ 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