From 0ca1be3d6f098331e190b6ef3bb72efabe66c766 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 9 Mar 2025 22:03:34 +0100 Subject: [PATCH] goober --- changelog | 4 +- .../api/hbm/fluidmk2/IFluidConductorMK2.java | 9 ++ .../api/hbm/fluidmk2/IFluidProviderMK2.java | 3 +- .../api/hbm/fluidmk2/IFluidReceiverMK2.java | 3 +- .../hbm/fluidmk2/IFluidStandardReceiver.java | 87 ++++++++++++++ .../hbm/fluidmk2/IFluidStandardSenderMK2.java | 106 ++++++++++++++++++ .../java/api/hbm/fluidmk2/IFluidUserMK2.java | 10 ++ .../standard/EntityProcessorCross.java | 14 ++- .../standard/ExplosionEffectTiny.java | 27 +++++ .../com/hbm/handler/nei/SatelliteHandler.java | 1 - .../inventory/recipes/PyroOvenRecipes.java | 3 - .../weapon/sedna/factory/GunFactory.java | 3 +- .../sedna/factory/GunFactoryClient.java | 1 + .../hbm/items/weapon/sedna/factory/Lego.java | 16 +++ .../weapon/sedna/factory/LegoClient.java | 6 + .../weapon/sedna/factory/XFactory762mm.java | 16 ++- .../TileEntityMachineRotaryFurnace.java | 14 +-- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + src/main/resources/assets/hbm/sounds.json | 1 + .../hbm/sounds/weapon/explosionTiny1.ogg | Bin 0 -> 12036 bytes .../hbm/sounds/weapon/explosionTiny2.ogg | Bin 0 -> 12954 bytes .../assets/hbm/textures/items/ammo.png | Bin 18786 -> 18879 bytes .../textures/items/ammo_standard.bmg50_he.png | Bin 0 -> 296 bytes .../textures/items/ammo_standard.r762_he.png | Bin 0 -> 294 bytes 25 files changed, 303 insertions(+), 23 deletions(-) create mode 100644 src/main/java/api/hbm/fluidmk2/IFluidConductorMK2.java create mode 100644 src/main/java/api/hbm/fluidmk2/IFluidStandardReceiver.java create mode 100644 src/main/java/api/hbm/fluidmk2/IFluidStandardSenderMK2.java create mode 100644 src/main/java/api/hbm/fluidmk2/IFluidUserMK2.java create mode 100644 src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectTiny.java create mode 100644 src/main/resources/assets/hbm/sounds/weapon/explosionTiny1.ogg create mode 100644 src/main/resources/assets/hbm/sounds/weapon/explosionTiny2.ogg create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_he.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.r762_he.png diff --git a/changelog b/changelog index 8778e076f..1f55cd941 100644 --- a/changelog +++ b/changelog @@ -26,4 +26,6 @@ * Fixed animation error on the MAS-36 * Fixed drone docks, requester and provider crates not dropping their contents when broken * Fixed all missing texture errors that appear in the startup log -* Potentially fixed a crash with mekanism during the recipe change phase \ No newline at end of file +* Potentially fixed a crash with mekanism during the recipe change phase +* Removed the coke to heavy oil recipe for allowing infinite oil loops + * Coke to syngas and coalgas recipes should be fine though, so they stay \ No newline at end of file diff --git a/src/main/java/api/hbm/fluidmk2/IFluidConductorMK2.java b/src/main/java/api/hbm/fluidmk2/IFluidConductorMK2.java new file mode 100644 index 000000000..6cdaa1b25 --- /dev/null +++ b/src/main/java/api/hbm/fluidmk2/IFluidConductorMK2.java @@ -0,0 +1,9 @@ +package api.hbm.fluidmk2; + +import com.hbm.inventory.fluid.FluidType; + +public interface IFluidConductorMK2 extends IFluidConnectorMK2 { + + public FluidNetMK2 getPipeNet(FluidType type); + public void setPipeNet(FluidType type, FluidNetMK2 network); +} diff --git a/src/main/java/api/hbm/fluidmk2/IFluidProviderMK2.java b/src/main/java/api/hbm/fluidmk2/IFluidProviderMK2.java index c5316a0be..8bc97797c 100644 --- a/src/main/java/api/hbm/fluidmk2/IFluidProviderMK2.java +++ b/src/main/java/api/hbm/fluidmk2/IFluidProviderMK2.java @@ -4,8 +4,9 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.uninos.IGenProvider; import com.hbm.uninos.networkproviders.FluidNetProvider; -public interface IFluidProviderMK2 extends IGenProvider { +public interface IFluidProviderMK2 extends IFluidUserMK2, IGenProvider { public void useUpFluid(FluidType type, int pressure, long amount); public long getProviderSpeed(FluidType type, int pressure); + public long getFluidAvailable(FluidType type, int pressure); } diff --git a/src/main/java/api/hbm/fluidmk2/IFluidReceiverMK2.java b/src/main/java/api/hbm/fluidmk2/IFluidReceiverMK2.java index f20fba01e..bfd8cb23a 100644 --- a/src/main/java/api/hbm/fluidmk2/IFluidReceiverMK2.java +++ b/src/main/java/api/hbm/fluidmk2/IFluidReceiverMK2.java @@ -4,9 +4,10 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.uninos.IGenReceiver; import com.hbm.uninos.networkproviders.FluidNetProvider; -public interface IFluidReceiverMK2 extends IGenReceiver { +public interface IFluidReceiverMK2 extends IFluidUserMK2, IGenReceiver { /** Sends fluid of the desired type and pressure to the receiver, returns the remainder */ public long transferFluid(FluidType type, int pressure, long amount); public long getReceiverSpeed(FluidType type, int pressure); + public long getDemand(FluidType type, int pressure); } diff --git a/src/main/java/api/hbm/fluidmk2/IFluidStandardReceiver.java b/src/main/java/api/hbm/fluidmk2/IFluidStandardReceiver.java new file mode 100644 index 000000000..d6f26b774 --- /dev/null +++ b/src/main/java/api/hbm/fluidmk2/IFluidStandardReceiver.java @@ -0,0 +1,87 @@ +package api.hbm.fluidmk2; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.util.Compat; +import com.hbm.util.fauxpointtwelve.DirPos; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public interface IFluidStandardReceiver extends IFluidReceiverMK2 { + + public default void trySubscribe(FluidType type, World world, DirPos pos) { trySubscribe(type, world, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } + + public default void trySubscribe(FluidType type, World world, int x, int y, int z, ForgeDirection dir) { + + TileEntity te = Compat.getTileStandard(world, x, y, z); + boolean red = false; + + if(te instanceof IFluidConductorMK2) { + IFluidConductorMK2 con = (IFluidConductorMK2) te; + + if(!con.canConnect(type, dir)) return; + + if(con.getPipeNet(type) != null && !con.getPipeNet(type).isSubscribed(this)) + con.getPipeNet(type).addReceiver(this); + + if(con.getPipeNet(type) != null) red = true; + } + + if(particleDebug) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "network"); + data.setString("mode", "fluid"); + data.setInteger("color", type.getColor()); + double posX = x + 0.5 + dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posY = y + 0.5 + dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posZ = z + 0.5 + dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + data.setDouble("mX", -dir.offsetX * (red ? 0.025 : 0.1)); + data.setDouble("mY", -dir.offsetY * (red ? 0.025 : 0.1)); + data.setDouble("mZ", -dir.offsetZ * (red ? 0.025 : 0.1)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25)); + } + } + + public FluidTank[] getReceivingTanks(); + + @Override + public default long getDemand(FluidType type, int pressure) { + long amount = 0; + for(FluidTank tank : getReceivingTanks()) { + if(tank.getTankType() == type && tank.getPressure() == pressure) amount += (tank.getMaxFill() - tank.getFill()); + } + return amount; + } + + @Override + public default long transferFluid(FluidType type, int pressure, long amount) { + int tanks = 0; + for(FluidTank tank : getReceivingTanks()) { + if(tank.getTankType() == type && tank.getPressure() == pressure) tanks++; + } + if(tanks > 1) { + int firstRound = (int) Math.floor((double) amount / (double) tanks); + for(FluidTank tank : getReceivingTanks()) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { + int toAdd = Math.min(firstRound, tank.getMaxFill() - tank.getFill()); + tank.setFill(tank.getFill() + toAdd); + amount -= toAdd; + } + } + } + if(amount > 0) for(FluidTank tank : getReceivingTanks()) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { + int toAdd = (int) Math.min(amount, tank.getMaxFill() - tank.getFill()); + tank.setFill(tank.getFill() + toAdd); + amount -= toAdd; + } + } + return amount; + } +} diff --git a/src/main/java/api/hbm/fluidmk2/IFluidStandardSenderMK2.java b/src/main/java/api/hbm/fluidmk2/IFluidStandardSenderMK2.java new file mode 100644 index 000000000..b1ddcc906 --- /dev/null +++ b/src/main/java/api/hbm/fluidmk2/IFluidStandardSenderMK2.java @@ -0,0 +1,106 @@ +package api.hbm.fluidmk2; + +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.uninos.GenNode; +import com.hbm.uninos.UniNodespace; +import com.hbm.util.Compat; +import com.hbm.util.fauxpointtwelve.DirPos; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public interface IFluidStandardSenderMK2 extends IFluidProviderMK2 { + + public default void tryProvide(FluidTank tank, World world, DirPos pos) { tryProvide(tank.getTankType(), tank.getPressure(), world, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } + public default void tryProvide(FluidType type, World world, DirPos pos) { tryProvide(type, 0, world, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } + public default void tryProvide(FluidType type, int pressure, World world, DirPos pos) { tryProvide(type, pressure, world, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } + + public default void tryProvide(FluidTank tank, World world, int x, int y, int z, ForgeDirection dir) { tryProvide(tank.getTankType(), tank.getPressure(), world, x, y, z, dir); } + public default void tryProvide(FluidType type, World world, int x, int y, int z, ForgeDirection dir) { tryProvide(type, 0, world, x, y, z, dir); } + + public default void tryProvide(FluidType type, int pressure, World world, int x, int y, int z, ForgeDirection dir) { + + TileEntity te = Compat.getTileStandard(world, x, y, z); + boolean red = false; + + if(te instanceof IFluidConductorMK2) { + IFluidConductorMK2 con = (IFluidConductorMK2) te; + if(con.canConnect(type, dir.getOpposite())) { + + GenNode node = UniNodespace.getNode(world, x, y, z, type.getNetworkProvider()); + + if(node != null && node.net != null) { + node.net.addProvider(this); + red = true; + } + } + } + + if(te instanceof IFluidReceiverMK2 && te != this) { + IFluidReceiverMK2 rec = (IFluidReceiverMK2) te; + if(rec.canConnect(type, dir.getOpposite())) { + long provides = Math.min(this.getFluidAvailable(type, pressure), this.getProviderSpeed(type, pressure)); + long receives = Math.min(rec.getDemand(type, pressure), rec.getReceiverSpeed(type, pressure)); + long toTransfer = Math.min(provides, receives); + toTransfer -= rec.transferFluid(type, pressure, toTransfer); + this.useUpFluid(type, pressure, toTransfer); + } + } + + if(particleDebug) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "network"); + data.setString("mode", "fluid"); + data.setInteger("color", type.getColor()); + double posX = x + 0.5 - dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posY = y + 0.5 - dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posZ = z + 0.5 - dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + data.setDouble("mX", dir.offsetX * (red ? 0.025 : 0.1)); + data.setDouble("mY", dir.offsetY * (red ? 0.025 : 0.1)); + data.setDouble("mZ", dir.offsetZ * (red ? 0.025 : 0.1)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25)); + } + } + + public FluidTank[] getSendingTanks(); + + @Override + public default long getFluidAvailable(FluidType type, int pressure) { + long amount = 0; + for(FluidTank tank : getSendingTanks()) { + if(tank.getTankType() == type && tank.getPressure() == pressure) amount += tank.getFill(); + } + return amount; + } + + @Override + public default void useUpFluid(FluidType type, int pressure, long amount) { + int tanks = 0; + for(FluidTank tank : getSendingTanks()) { + if(tank.getTankType() == type && tank.getPressure() == pressure) tanks++; + } + if(tanks > 1) { + int firstRound = (int) Math.floor((double) amount / (double) tanks); + for(FluidTank tank : getSendingTanks()) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { + int toRem = Math.min(firstRound, tank.getFill()); + tank.setFill(tank.getFill() - toRem); + amount -= toRem; + } + } + } + if(amount > 0) for(FluidTank tank : getSendingTanks()) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { + int toRem = (int) Math.min(amount, tank.getFill()); + tank.setFill(tank.getFill() - toRem); + amount -= toRem; + } + } + } +} diff --git a/src/main/java/api/hbm/fluidmk2/IFluidUserMK2.java b/src/main/java/api/hbm/fluidmk2/IFluidUserMK2.java new file mode 100644 index 000000000..b989e99cf --- /dev/null +++ b/src/main/java/api/hbm/fluidmk2/IFluidUserMK2.java @@ -0,0 +1,10 @@ +package api.hbm.fluidmk2; + +import com.hbm.inventory.fluid.tank.FluidTank; + +public interface IFluidUserMK2 extends IFluidConnectorMK2 { + + public static final boolean particleDebug = false; + + public FluidTank[] getAllTanks(); +} diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java index a6843e9a9..c693c4ca6 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java @@ -28,6 +28,7 @@ public class EntityProcessorCross implements IEntityProcessor { protected double nodeDist = 2D; protected IEntityRangeMutator range; protected ICustomDamageHandler damage; + protected double knockbackMult = 1D; protected boolean allowSelfDamage = false; public EntityProcessorCross(double nodeDist) { @@ -38,6 +39,11 @@ public class EntityProcessorCross implements IEntityProcessor { this.allowSelfDamage = true; return this; } + + public EntityProcessorCross setKnockback(double mult) { + this.knockbackMult = mult; + return this; + } @Override public HashMap process(ExplosionVNT explosion, World world, double x, double y, double z, float size) { @@ -104,13 +110,13 @@ public class EntityProcessorCross implements IEntityProcessor { double enchKnockback = EnchantmentProtection.func_92092_a(entity, knockback); if(!(entity instanceof EntityBulletBaseMK4)) { - entity.motionX += deltaX * enchKnockback; - entity.motionY += deltaY * enchKnockback; - entity.motionZ += deltaZ * enchKnockback; + entity.motionX += deltaX * enchKnockback * knockbackMult; + entity.motionY += deltaY * enchKnockback * knockbackMult; + entity.motionZ += deltaZ * enchKnockback * knockbackMult; } if(entity instanceof EntityPlayer) { - affectedPlayers.put((EntityPlayer) entity, Vec3.createVectorHelper(deltaX * knockback, deltaY * knockback, deltaZ * knockback)); + affectedPlayers.put((EntityPlayer) entity, Vec3.createVectorHelper(deltaX * knockback * knockbackMult, deltaY * knockback * knockbackMult, deltaZ * knockback * knockbackMult)); } } } diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectTiny.java b/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectTiny.java new file mode 100644 index 000000000..e821a06ca --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectTiny.java @@ -0,0 +1,27 @@ +package com.hbm.explosion.vanillant.standard; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IExplosionSFX; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class ExplosionEffectTiny implements IExplosionSFX { + + @Override + public void doEffect(ExplosionVNT explosion, World world, double x, double y, double z, float size) { + if(world.isRemote) return; + + world.playSoundEffect(x, y, z, "hbm:weapon.explosionTiny", 15.0F, 1.0F); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaExt"); + data.setString("mode", "largeexplode"); + data.setFloat("size", 1.5F); + data.setByte("count", (byte)1); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(world.provider.dimensionId, x, y, z, 100)); + } +} diff --git a/src/main/java/com/hbm/handler/nei/SatelliteHandler.java b/src/main/java/com/hbm/handler/nei/SatelliteHandler.java index 7206b10b2..c995e9e3d 100644 --- a/src/main/java/com/hbm/handler/nei/SatelliteHandler.java +++ b/src/main/java/com/hbm/handler/nei/SatelliteHandler.java @@ -128,7 +128,6 @@ public class SatelliteHandler extends TemplateRecipeHandler implements ICompatNH public RecipeSet(Object in, List out) { //not the prettiest of solutions but certainly the most pleasant to work with - int inLine = 1; int outLine = 1; int inOX = 0; int inOY = 0; diff --git a/src/main/java/com/hbm/inventory/recipes/PyroOvenRecipes.java b/src/main/java/com/hbm/inventory/recipes/PyroOvenRecipes.java index 1cb68724a..e786dcead 100644 --- a/src/main/java/com/hbm/inventory/recipes/PyroOvenRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PyroOvenRecipes.java @@ -101,9 +101,6 @@ public class PyroOvenRecipes extends SerializableRecipe { recipes.add(new PyroOvenRecipe(100) .in(new FluidStack(Fluids.HYDROGEN, 500)).in(new OreDictStack(COAL.dust())) .out(new FluidStack(Fluids.HEAVYOIL, 1_000))); - recipes.add(new PyroOvenRecipe(100) - .in(new FluidStack(Fluids.HYDROGEN, 250)).in(new OreDictStack(ANY_COKE.gem())) - .out(new FluidStack(Fluids.HEAVYOIL, 1_000))); //coalgas from coal recipes.add(new PyroOvenRecipe(50) .in(new FluidStack(Fluids.HEAVYOIL, 500)).in(new OreDictStack(COAL.gem())) diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java index 7429db1ab..3fd164ada 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java @@ -91,6 +91,7 @@ public class GunFactory { COIL_TUNGSTEN, COIL_FERROURANIUM, NUKE_STANDARD, NUKE_DEMO, NUKE_HIGH, NUKE_TOTS, NUKE_HIVE, G10, G10_SHRAPNEL, G10_DU, G10_SLUG, + R762_HE, //ONLY ADD NEW ENTRIES AT THE BOTTOM TO AVOID SHIFTING! ; @@ -103,7 +104,7 @@ public class GunFactory { P22_SP, P22_FMJ, P22_JHP, P22_AP, P9_SP, P9_FMJ, P9_JHP, P9_AP, R556_SP, R556_FMJ, R556_JHP, R556_AP, - R762_SP, R762_FMJ, R762_JHP, R762_AP, R762_DU, + R762_SP, R762_FMJ, R762_JHP, R762_AP, R762_DU, R762_HE, BMG50_SP, BMG50_FMJ, BMG50_JHP, BMG50_AP, BMG50_DU, B75, B75_INC, B75_EXP, G12_BP, G12_BP_MAGNUM, G12_BP_SLUG, G12, G12_SLUG, G12_FLECHETTE, G12_MAGNUM, G12_EXPLOSIVE, G12_PHOSPHORUS, diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java index c6aa1a0a4..5be069ac8 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -132,6 +132,7 @@ public class GunFactoryClient { r762_jhp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); r762_ap.setRenderer(LegoClient.RENDER_AP_BULLET); r762_du.setRenderer(LegoClient.RENDER_DU_BULLET); + r762_he.setRenderer(LegoClient.RENDER_HE_BULLET); bmg50_sp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); bmg50_fmj.setRenderer(LegoClient.RENDER_STANDARD_BULLET); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java index d00796660..0da79601b 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java @@ -10,6 +10,7 @@ import com.hbm.entity.projectile.EntityBulletBaseMK4CL; import com.hbm.entity.projectile.EntityBulletBeamBase; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; +import com.hbm.explosion.vanillant.standard.ExplosionEffectTiny; import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.interfaces.NotableComments; @@ -33,6 +34,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; /** * "LEGO" - i.e. standardized building blocks which can be used to set up gun configs easily. @@ -283,6 +285,20 @@ public class Lego { vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F)); vnt.explode(); } + + public static void tinyExplode(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, float range) { tinyExplode(bullet, mop, range, 1F); } + public static void tinyExplode(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, float range, float damageMod) { + ForgeDirection dir = ForgeDirection.getOrientation(mop.sideHit); + double x = mop.hitVec.xCoord + dir.offsetX * 0.25D; + double y = mop.hitVec.yCoord + dir.offsetY * 0.25D; + double z = mop.hitVec.zCoord + dir.offsetZ * 0.25D; + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, x, y, z, range, bullet.getThrower()); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage * damageMod) + .setupPiercing(bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent).setKnockback(0.25D)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectTiny()); + vnt.explode(); + } /** anims for the DEBUG revolver, mostly a copy of the li'lpip but with some fixes regarding the cylinder movement */ @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_DEBUG_ANIMS = (stack, type) -> { diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java index bd3500d01..01a06960c 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java @@ -62,6 +62,12 @@ public class LegoClient { renderBulletStandard(Tessellator.instance, 0x5CCD41, 0xE9FF8D, length, false); }; + public static BiConsumer RENDER_HE_BULLET = (bullet, interp) -> { + double length = bullet.prevVelocity + (bullet.velocity - bullet.prevVelocity) * interp; + if(length <= 0) return; + renderBulletStandard(Tessellator.instance, 0xD8CA00, 0xFFF19D, length, true); + }; + public static BiConsumer RENDER_TRACER_BULLET = (bullet, interp) -> { double length = bullet.prevVelocity + (bullet.velocity - bullet.prevVelocity) * interp; if(length <= 0) return; 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 f63275b9a..a22b2f24f 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 @@ -3,6 +3,7 @@ package com.hbm.items.weapon.sedna.factory; import java.util.function.BiConsumer; import java.util.function.BiFunction; +import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.items.ModItems; import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.weapon.sedna.BulletConfig; @@ -25,6 +26,7 @@ import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.util.DamageResistanceHandler.DamageClass; import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; public class XFactory762mm { @@ -33,10 +35,16 @@ public class XFactory762mm { public static BulletConfig r762_jhp; public static BulletConfig r762_ap; public static BulletConfig r762_du; + public static BulletConfig r762_he; public static BulletConfig energy_lacunae; public static BulletConfig energy_lacunae_overcharge; public static BulletConfig energy_lacunae_ir; + + public static BiConsumer LAMBDA_TINY_EXPLODE = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return; + Lego.tinyExplode(bullet, mop, 2F); bullet.setDead(); + }; public static void init() { SpentCasing casing762 = new SpentCasing(CasingType.BOTTLENECK).setColor(SpentCasing.COLOR_CASE_BRASS); @@ -50,6 +58,8 @@ public class XFactory762mm { .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("r762ap")); 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")); + r762_he = new BulletConfig().setItem(EnumAmmo.R762_HE).setCasing(EnumCasingType.SMALL_STEEL, 6).setDamage(2F).setOnImpact(LAMBDA_TINY_EXPLODE) + .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("r762he")); 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); @@ -59,7 +69,7 @@ public class XFactory762mm { .dura(3_000).draw(10).inspect(31).reloadSequential(true).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) .dmg(15F).delay(5).dry(15).spread(0.0F).reload(30, 0, 15, 0).jam(60).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) - .mag(new MagazineFullReload(0, 14).addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du)) + .mag(new MagazineFullReload(0, 14).addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du, r762_he)) .offset(1, -0.0625 * 2.5, -0.25D) .setupStandardFire().recoil(LAMBDA_RECOIL_CARBINE)) .setupStandardConfiguration() @@ -70,7 +80,7 @@ public class XFactory762mm { .dura(50_000).draw(20).inspect(20).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) .dmg(6F).delay(1).auto(true).dry(15).spread(0.01F).sound("hbm:weapon.calShoot", 1.0F, 1.0F) - .mag(new MagazineBelt().addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du)) + .mag(new MagazineBelt().addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du, r762_he)) .offset(1, -0.0625 * 2.5, -0.25D) .setupStandardFire().recoil(LAMBDA_RECOIL_MINIGUN)) .setupStandardConfiguration() @@ -91,7 +101,7 @@ public class XFactory762mm { .dura(5_000).draw(20).inspect(31).reloadSequential(true).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) .dmg(30F).delay(25).dry(25).spread(0.0F).reload(43).jam(43).sound("hbm:weapon.fire.rifleHeavy", 1.0F, 1.0F) - .mag(new MagazineFullReload(0, 7).addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du)) + .mag(new MagazineFullReload(0, 7).addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du, r762_he)) .offset(1, -0.0625 * 1.5, -0.25D) .setupStandardFire().recoil(LAMBDA_RECOIL_CARBINE)) .setupStandardConfiguration() diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRotaryFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRotaryFurnace.java index dffb80700..2c686e662 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRotaryFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRotaryFurnace.java @@ -49,11 +49,11 @@ public class TileEntityMachineRotaryFurnace extends TileEntityMachinePolluting i public boolean isProgressing; public float progress; public int burnTime; + public double burnHeat = 1D; public int maxBurnTime; public int steamUsed = 0; public boolean isVenting; public MaterialStack output; - public ItemStack lastFuel; public static final int maxOutput = MaterialShapes.BLOCK.q(16); public int anim; @@ -131,14 +131,14 @@ public class TileEntityMachineRotaryFurnace extends TileEntityMachinePolluting i if(recipe != null) { if(this.burnTime <= 0 && slots[4] != null && TileEntityFurnace.isItemFuel(slots[4])) { - lastFuel = slots[4]; - this.maxBurnTime = this.burnTime = burnModule.getBurnTime(lastFuel) / 2; + this.burnHeat = burnModule.getMod(slots[4], burnModule.getModHeat()); + this.maxBurnTime = this.burnTime = burnModule.getBurnTime(slots[4]) / 2; this.decrStackSize(4, 1); this.markChanged(); } if(this.canProcess(recipe)) { - float speed = Math.max((float) burnModule.getMod(lastFuel, burnModule.getModHeat()), 1); + float speed = Math.max((float) burnHeat, 1); this.progress += speed / recipe.duration; speed = (float)(13 * Math.log10(speed) + 1); @@ -256,14 +256,12 @@ public class TileEntityMachineRotaryFurnace extends TileEntityMachinePolluting i this.tanks[2].readFromNBT(nbt, "t2"); this.progress = nbt.getFloat("prog"); this.burnTime = nbt.getInteger("burn"); + this.burnHeat = nbt.getDouble("heat"); this.maxBurnTime = nbt.getInteger("maxBurn"); if (nbt.hasKey("outType")) { NTMMaterial mat = Mats.matById.get(nbt.getInteger("outType")); this.output = new MaterialStack(mat, nbt.getInteger("outAmount")); } - ItemStack nbtFuel = ItemStack.loadItemStackFromNBT(nbt.getCompoundTag("lastFuel")); - if(nbtFuel != null) - this.lastFuel = nbtFuel; } @Override @@ -274,8 +272,8 @@ public class TileEntityMachineRotaryFurnace extends TileEntityMachinePolluting i this.tanks[2].writeToNBT(nbt, "t2"); nbt.setFloat("prog", progress); nbt.setInteger("burn", burnTime); + nbt.setDouble("heat", burnHeat); nbt.setInteger("maxBurn", maxBurnTime); - nbt.setTag("lastFuel", lastFuel.writeToNBT(new NBTTagCompound())); if (this.output != null) { nbt.setInteger("outType", this.output.material.id); nbt.setInteger("outAmount", this.output.amount); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 223210fde..b9ead782f 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1275,6 +1275,7 @@ item.ammo_standard.r556_sp.name=5,56mm Patrone (Teilmantelgeschoss) item.ammo_standard.r762_ap.name=7,62mm Patrone (Panzerbrechend) item.ammo_standard.r762_du.name=7,62mm Patrone (Urangeschoss) item.ammo_standard.r762_fmj.name=7,62mm Patrone (Vollmantelgeschoss) +item.ammo_standard.r762_he.name=7,62mm Patrone (Explosiv) item.ammo_standard.r762_jhp.name=7,62mm Patrone (Hohlspitz) item.ammo_standard.r762_sp.name=7,62mm Patrone (Teilmantelgeschoss) item.ammo_standard.rocket_demo.name=Abrissrakete diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 565cb2863..4199f185f 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1999,6 +1999,7 @@ item.ammo_standard.r556_sp.name=5.56mm Round (Soft Point) item.ammo_standard.r762_ap.name=7.62mm Round (Armor Piercing) item.ammo_standard.r762_du.name=7.62mm Round (Depleted Uranium) item.ammo_standard.r762_fmj.name=7.62mm Round (Full Metal Jacket) +item.ammo_standard.r762_he.name=7.62mm Round (High-Explosive) item.ammo_standard.r762_jhp.name=7.62mm Round (Jacketed Hollow Point) item.ammo_standard.r762_sp.name=7.62mm Round (Soft Point) item.ammo_standard.rocket_demo.name=Rocket, Demolition diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 46a6d1429..fff6f6a4b 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -217,6 +217,7 @@ "weapon.explosionLargeFar": {"category": "player", "sounds": [{"name": "weapon/explosionLargeFar", "stream": false}]}, "weapon.explosionSmallNear": {"category": "player", "sounds": ["weapon/explosionSmallNear1", "weapon/explosionSmallNear2", "weapon/explosionSmallNear3"]}, "weapon.explosionSmallFar": {"category": "player", "sounds": ["weapon/explosionSmallFar1", "weapon/explosionSmallFar2"]}, + "weapon.explosionTiny": {"category": "player", "sounds": ["weapon/explosionTiny1", "weapon/explosionTiny2"]}, "weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/weapon/explosionTiny1.ogg b/src/main/resources/assets/hbm/sounds/weapon/explosionTiny1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0600a143838382c9ef595c50fad3ed3e12462d24 GIT binary patch literal 12036 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 a$*4QQO*^=|<)qhYuK8e$A%Kp7_kRG!0xwhm literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/sounds/weapon/explosionTiny2.ogg b/src/main/resources/assets/hbm/sounds/weapon/explosionTiny2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f8d45e339724384958aced7bb65fb56a3a04dcc6 GIT binary patch literal 12954 zcmajGWmuF!+c12Qf`qhyq|&8Jr*um#EV#gebV&#-A>BxKmvr}%0xBupU4pcLv;xAn z;C(;e^Zs~`caFK{nmp&6vv+n^&B8(xKn4DjuJ$-&?y6$i9Uv4M6c>9(V=Je-4iw+k zyB7dB5Te|_n^4s5R{l@ATX{Ev8!#M(?{NFS5+T|@FdWFy*H#XeTxyOMbZ@PUweNw` zDbjJj0P(#5z2Ku`SxXQ6pUirP6gBeEv^RHlHF7i))3k@%nbOJGJ6f30sXN-!fnIRE zc!ZoFBdH}T#{J@j5GRP6lN*GB@o&GUQqtNefCKQI1Q>;@-4cq*r zka|VvPsRO8Z-CJ$hCV+>DpZffZ!`u1+${)^bR!82lfgKz z2&Dd7$O>5^M&;s$I8{-z3)6?#p8?AxXbd?eMB7EmsPoXo(dpdNrJv`rQG zm4hYBzw1R4Ss*$eON9TA7k!ffI8vc$0g8OTDFZDe-N^p!!62y+6M!k%M;<6AiNpX? zsEH(SK(d%JkWC1SHjs|jloW^ofSg>Guw0gh1eCQ8fj$5rkkBCMeMj{zmg-v#6%H02 z6a&dO01G)!AuL}Z>W4xc12m5DK5u>~w7o6^Cp9^2U%mPaF0ogL?CMz6;@Gc$~DNE zLbE$KUHPuh=?>I=vD>{vl|g*hEN*K~N+0b;*3^1-mNN+cXUhG&dm%lCpC+$^nMCJa5v>Hg%!GmmAHi!yG3n>##yE&6_=#3_ZR+bsoeX2 zWt@8fX8-_a26;yYc`$=47+JZet}pH#b*VZ*46=?K1LM5^&NxOah9szt^FO2U9|j=J z-?wU#fiWr-BE~5&Cq$ET3M@ON3Hg5|l?h%IVkBX)?-cekRp2mZaf~81XG$1L7sEDK z@&W7i@C*N(3nHO_j9wBUshFN5#lVz1y+Q{xka`8`19ee34r}Z($PNp!Q5W_^nxxq3Jyu2Hj2tyege@h*7s%~k7m-7}whPWMm;g*?#ug?J z44v^Z)Pfl5n9T`jL(h?VSOZ@nmxD~fHC=)X;bw+Sa6_maZ0l1)fsX*_>vaPFxgg*!VV^X4;1=aMdv(7Zzghm+RK6h zmR#9i`@Foi9JlfCN$0`U*V_4pcY_U4HhcXwS4w6ViDquL3p(a7=D`+Qs@5tVZzH5H z`0R@YNcdu#<=l%$1^@)aIEAue#Tp}>A8QZ+IE*|XMu?fwL{*8E5uvVRO=v>E)|+oS ztcYDuPoiYSnlP@*%GjW;6kdVQ)wHPz2J7M!)W24;0wJ_bY$|#}LD;EIVD7E_1h6i9 zL4A^te1TI8_yK)E95|e@fSi3R-*i-Chb~_W{GlYD#Ds;hCk`CJSU{;4#@R^jgpULT z{!oJ)2xsjjGZ`i{QAdJ8Zq8azudQTV;i#&F1T`qBhyXTzc}Rz;AOF>XQEtnpwoLfhtk^K!<5dE;^f za&x?buGip_yA@?MGvp>itPT2_;e3tc9+jMp22S`d5!y~+tTSXL2cSkeo8dNB0_4fN z$dx|SbZgs$gSOO_?#`jCScBZ$wqlwFIdHdmNe{Wna7~YarVXNj+(VUfTHooQt%oYW zx?&RvinSrbrm}5j(H|K?y}4JpKyG!*J|%$eAppDx25r&tK16!41WcrM#>WXgpbt#o z-l7YP0dG+S#_8^51gI<76eJ|*hSwy-fo(u!NMFB-^w4ht3cJ>Tpx|{{N=r){Y~8b1k?)quO1=A@mddidEUWt-j=gr|s?yR* z_JMZ$(o&?QMTQl>(o1(+kUh2gIAweNwHyl#c27EYTaXb)gY91bJLIIR_8KbrhRUm! z7uP)wNV_Zg1qCSn96Uv+8rFk~b7u-oktp`inG%5e=mL@clr=B`jC4tuQ~-ebiUsW+ z?OdeIe_D>1)-|a>7U6d_n+l}My!V^`*8&9q6XOHmNBovb9Qgm}NP0&{)cd?jdP5l1L z0Ia|S<3Z%6(n_GsyHF+MU(-ny)PrnFVtu?Dz4OR-qj!PmAd=?+NQKOF!oLqmh3`kP z=$-#HrI0b`eXKhApQ!cY-Q>IY6$S9cz(=|o{_-dXFfZBbJ5joe6aD8MIY2xLLYo}? z==2!P5CzumdUH97jV8!L`g~qfRgh_Zm#$L@k^_K0aydN;fQj|c9Ps^u@^y=D8yzc( z9{?mn2MIm|2d)0fA)5q0JojsNmf&XhN2^4HW!SBJ$ z%fAAjWaMaS?b0FPB0VUuiUO=Q0Z*T%b@q+Uu5SPO4PYZ3BQlWzzX3o{#y2!{^946A zzo4+_O9?5YO#Dl}zP|Sr31sQ(`|s1qXY>0m;O^7O-New-mmjEDn93>(KW68Z6lLb- zq!%S7XM9Y{%}z?q|5#8QxRuZ*>wQKi{D$jxl+ee^#Ownv->8&FekLl?5(!wIvmM{4pIm zt_s$^7kr{2CSI7aEHpOcIQmfaJ7#hd(e}K}$;)h+eQRpY;F_cDa144?1r8NwmTwG) znjN%1mNvB;fPQ7!bxxOiT&(0l`S!aTtB((qaLiSPlo_s$5`z|gMbf5P?!t4<4bR7? zDTPHB6wCRT1(>T-PrW;_RxEcCx!Fx~;I%k(V-neLRxZ|C8N@1+>v%HDn%XNC9LT5` zElQJ7ghqoSSIlG~`9*M1w+c}tzr1kC^vX;(R_XSHdhZo^>-6xHN5bIv% zNZ;5B6F=TW1dU8>Ickh@os`a+Sxk$R(K&rOoxs^R7;g@%#PT1!_^}pm>Np+)6R`1O z-raLreyag{21|JfsT!VS4J#mL4CF=Sbrat6SgxIa~m!CN(9Ju1gbT z=U3r7J#Eptyh@z^ixc9lClDX)Kdj_Mj)w3=4X3BI161j;V`N_S_Xi~sunNF4i$bn+ zDE@~1JWtb%H#1_U-*H2}{^O!Xb_)&OndRwRYs}_nETDaU=<_?(R$%l;Z)H}M_5o}vhPiC9P`BCxA@_5P02AaZ0&tEBN6zDr~pwkUGsuD-GR%BM()r{l11_?Ye$a5IlsC7Sp5$F^&% zY^;LH=*)2w@c~p4KV9o748@)Q%-3`{LOzp@6BT|qax^=7^UK^TA=Z--e|4jzU)Rf3 z_dU0WP{-hhTH3PZaJh$wE0Rb9i8Hu$cx^kHY>i~vOv}3uE&P6y(x{?0jMuC@|SLQ2CrLR zk!VR9WtvNeg;>kd%Y>L=ZAx`Lm`z>p(vBw1ESPWq`dr+^DDT~*P;e1wOM&UIve_&a z=evrc<}|EaF8%cN0;u@=_OD-m+vDlijlWj6qv#w(3i~aMKCZXp`$8j2OVO zHRCT52jKN5^%?%|;lM$eG~$$6R(EUQEd_yhU{>%g&g-LhZsc*&!Uy_ptC6{qXz=ys z6K7k4DT9q2EBm(}L$tFeA6M3m$HAV$_vCnbmacL8QzE|=VuiZNv`hJ)6L>LsZWIyQh{h_KbW zvYuxCMl7pmSv3*?1_Rv=4|%OnEZr7C47(M1Xn3#DHb z6Va;WMf^w9IWixwhYzY%Z^S+W)HgZFdsh!{l}p^_uqiL~a9ppDJoPP0f?YXNCv*Mfc?nJ`oHz`dJscMK~p=u$HsT zdCBYU3c8TD(u9NLMlhbxSG4|4dzA*z3^0D7u=eAUh!5w|C6<0trzMw*`q`51ly_i% z$0p6SwwD`_XzRQb)@@tPfRK%pjSn2XZ|^COT55l8751>=WkhJ0!41y-1dY8Rwn$)1 z(`wt3C*A(}wd~m*-{XZ3_73_SPRvPCD4$Y_PAb94F{~=9Huk#QB6$zE-OGd~8o4yJ zT6mL!ls6Nw!>qEV*zu*L6bp2ArtyF|pj{WTLve{NQ_LP;Wow#=>k>2PViv&5o+77+ z;fv8V>q<#uNcC=iMdR6dLmDS5-!F6kU@K-)MJWFCHs@P-7KYAI>$a-({4s37NlF28 zyfNQM@moe%^n&>}yG~+`aP6K&R+?7kso|YAlMId?IqfKlGZ%MeI5gf8WM0v}jk3Pf zOJmJH zT7Z{5&d5jh8yOOc`>i($J)ai4OzfbyLc}#qrMoJ(W5`3}5LTT+X*H0@G`YbQub|hZg(^u^I!)4c?uh z_UZDB!HebAFDnyn^I`k42dLuVBQ+`DhQ%ikxk#=QVDvE{j0fB(GA{DDljcaaF^U^S z(#Jfk!9jmxuIZTS|9i^uMU-3dPo8w|(9n_F!jH1osjVBJ^_{vmfn!q<$H|SQvbC=i zN?w{r!CJL8OpfVuyTI>1z`Ym7)*%dp{4j@kO9jIc-`{HcD^Wx?^Tgw{u3S% zW5NV)b4#t16eO>s&!Y)1D>^fd41*(Y-(iklohKJU-P^1xR8OCueScMFd^Gyhq1z2h zDzw>(Sq?KlkU@m3Sy>VDki|VM$V*tbD!j74chX&)Gg1GnKddf|u`tTIpW1WdNQg1m zr7om;Es?ev_yQ6&KMYq7>w<&hQ_4>SNcSbLcLyl!T$VxeJhLA#CPAx)XnZCqvW zw=v&FDk?78qnFF{ebXm)b{i+H0NE4`^`5vH^g5gvb2oH@|JfU|?+w?FbZhvmRCc7@ z`Q}3ZY;_kr;b|P61a8(FUQ%E^#+dkSTIBd(E-mJBC+Z;jD2g`{vsUsV|3&+1kF^R{ z>1^$g@|8+!(=L*(+v1vSjY8MtmF8P@$Ft&Q@tbdL-fUt*h?dg{xA2FprEIdXw5=hk z?N6QJnr;J+26ND{h=xP`CJ3 zK7VuZ^>9WgP!*mXipEEzrH{Rn>d#_yKoBL$4jmyk)pd&h6MlX)swMALo?W&4RwWtX z&ZGWQQ`lTU?G^W56>JgJ`Gf1qWqUyjBIW&xnY@0)h7fly*SK)65a`+54{&7)wR|gB z#F=dyHT?H%j9bLIXS!=Zh63s1E%znux~;@k>?Gg~MTaU-7`L*YpL(&(LJQm|AO_W% zZBaQU(&oRjS1cwjg=X+kN$A_@(qn)appnsL?Y*f}p!Ie>?~v^YvRq*eZ;6_f0=&O2 z{CtPTf0TSF(pwh%Q^+=_UaRo7yXpE=YqM>Qf03z^3k}=1>Vo-SjZC71VqL56#m8dk za_;($9oc0jeMvG%ss4<}RAF_qOly8f&OiGEUTpGo=;v6MPazu)I*sDS4-0;JiOe^* z-2(E=;P7CKoDw>PvOq%nzh4Br_s6u`LF+a?Y89kqS0Co!XD^d@S6lMn4fYG>l|E0{ zXnW)G4?dOvIbnGQ7^SK!2lg*-=~I}y-=C4uKqADd`UR#*Q8VQjsChMxo1FW4LpR%| zBi+jNET~xp?Z;_i%H{`Bg=QP^L~}gHb}Xq03fbZIQ7T7%Yh>+6Rb9aq@pGmw#E>32_EXmp3Atsa&hD@9iJFqtZUY(;xo~D#K;(%_c(Ri`_Ho& z=u%5@WvvN2A(Lm?(8VB@{Z(_K?2n<889z0>fh`!khTXR|lfZ=WwxxHA|0~ZfePSil zY*TdOeC-$G=z7myCZsfLX1YnuTFK{RQ-TOD4!0d`@Dyydv`Q(^aRbgHxnt?|O1?DR znOZUFA>{_ONLr}VptWfXebDGek(YUh$3^YPTK5fy(?zS>$&F)X>x_Wwa?{Tl#pp;7 z*y#-)-Q%p5fk>S;T~iSFLbTrCS6_EcI$X|p;co{NyRoY zrxJckpAR61CMr>-c+yhZR@H%aicNJAgtM2y2v!Ckok&t#XPP}74QOs-Jpl}j##;f> zrB*AOqnD-5vmD71VA?zGB@TH-7o^y*M~gN>wbjSQoNcx{us-)`(o?LKVKaE3WUZio zykA>u`q6aB-$Qe)xgnjehZz0KtLLA^A@ znWWaa4c_SXB*E`);nafkWDc4x|CK6?5FcSTj+dGb+QA|pjb*Kf;$8B|>Z69@4*mH# zXeXdv`TM&#q1ZCvf?8YShHnQi~UM2o0Db}+Tg zYvLSI+W5qK!gV?Bax5XM{mLKxKbITB$Quo0y1U#!+F{`0Ing)Dk3|`|d6@-ynYp?7 z`5%!*c4v`l-#y~{JO5Wj6XP_^n;?~_7AW(7oxpB zxpW-fwhvu-x`nWOA1*D5-VgosK{%kTZ>3(3ZQX$imOK|FQVWE`&YrClX!yTcMA>E@xk)UA~JA@MuEt#U@q1P|Kx$!mqR$y+by{mJG~z@`q=f?`hY6th!lFVPk*N@of~7Dd8mScMJxyH_aO~7mu`~sPkXsNc(?1<@ zF6Z7<3W|tDH67<#mARfRJTG@tYdf91HnNfu;Yp|NAPX_}+HA$Zrq;CU+kQ!3bDbzX z;(cpZYS3bP;f|iDfvGd`ty5q@#gg~wFb+y%SsdR@n7k{R1mG<{RO|Cqot8^d3X$&C zYPM&4k`i6<_VV!kVWrQ*{sWP`82)wiD6B{!ssO`h~-`n;W7oH76YqxWykuhx@5;*|4B ztdgRX*CROdTRY}7QEa9%Z{YgpZ!?E~Y^7Cb#55e#s zs?Lzml02O&T60H-Z$DD#&%*^XBf2mv30DLYQ?c2Do}-gLTXbN2+S&E^&>DlLT^{d8 zN8ix3^MZK?eJ@fU`5XgXd5 zICYzD(JR|@`Xk~_-LWmDr&3)-%svFBm}L`UFL)vrt?-OWMH@O1ao)#GxHE10;m@bL zyG?6~dB*&p_A_{ltxoUrTNJ!=U-Lg?ai4$9Q;KT=db&qVpo31qW#-3dX@&Y*Hg2qn zsR}jYGg_8BVq-JZ_DW(@-6opWy?1-iMD<-cqvmW-hKeo-1B55=*Y5RM@XnaZ8MG(G zW@g6)M>dFAw6y}CcKpWjV-Nl1_dI7U!!url&W2@P+->u+yu_*=f1Rm3&USZ9 zpKaz9ymwX;(%y4WT}_?~X2jtXa&j3z?l5~~xfc~{3g>muEVJRXQ|yB@QF@*v` z;_+@@!4KQNCpsUnkkKe0PQ{Jh(kfuK=pOYn)W6@0ig~B4I}!|{x#=mn44JW=zVtl0 zy}0-kHM8CWp;hay#>1_aZ~IK&uq)Qn6X?|}z{Q0c@7H9LeAD=b#vYwrIA_X@K(FxQ ziibP~iwUk=gB)?aRe&=z1{>#>5hjh^P9SM_2HCZbo}eawbSLamF5^-5sMusbftBs! zNL?u^Y>;n7l@9Oe=USv14}G{rGx3q+iLnW347Uv>S+dZA=zgPX@F{6>jW_RszKgh7 ziQZD{-Cm(pD-z?PaQhx?M}XzwB_nkiX2{d3koT7VSh3%Q**wI+vS+>Gr@BX9n{||B zQ;|3Ji|3PSlqjJP7g-}J1)@dsTk`=ztT=>LC2Y)9$z`>Vsrc6MNx|h$F0n#3nx=$0 zL~LBw4~RDuv!`hlZx7_;@t9 zd|U2i6F_{QkdaRw6>bT4y}DSGs(DQsM!XkdW}9Z-@BYZTF{MCORN1_uu}kvk&pE7Z ziIX5%nAShXSdkNKhP*BtG|KJcMsHB6E?;dx-F{D0w*0{S+y%w9{=#Jz?buV>P{-Cb zZ^4~c$q1}Orq5-}wmBw4(=2Pn|LDvV1!)Rr#jVoaP|y%Azv0<^mW~1ec$Ng)WwGEF zj!(iV&Ofy@q~1~|Z@9TCp4>>eHe?vY@|BKt zACR%3ddRw(s9GP0=z3~XSd?DdUJ1u)owWR5-XIxj4>47UbizZVm{h*;KX^X8wK<$D zXY1aDSvOR!NTT;iAnVoPK~bVj8um%+m0CZh=v*J_9Tls6h!#%#C)Mosf7w~^pik68 zB4gP>QJb!*JrkMHBb%Gu?grUv7mRR^Jhjg2VffDe_u9?rsPcwZz9*tbfmisN(o!<~ zf;_RBa-k8dZW$eTA6oUq8brMlXls719X1E8zN|nMh!&Qz-2xMa6zSqVJ3j1`&idd4 zx!TdluoC5p6RKgkElnrYMBtj3a`26RF`t4FlpJ^n#xW^}Ci|izWwHM@z<$eSkGETD z|491vlF1XDSnN5hK5Ou@AK_3@r3W`j88ka-M6o0q#95R^;v5~ zhD$uP$5XlDg;DfMm=WG_kb?@nilQwrPwANI1D0P|F1L_qx@ue!=_G6n8u_7bK3_)- z38=#LpWH}Bzd8Gq-tdyww_k}!IpVfp$K-Y(m#4;jc%sVS(N43gqwKz#xPD(WygPgX z-9X4!%p_j^gw;Tll$nPSQ>EP@bm9X|87ZZqtv9S+NJMUDmm_>t(AoGC^jj+Ls=Lnq zOtzLTHP;S?iN^)n zH^49cB0)4*L){-s2$A98vFCx&22(h0{1Uc;-uReXjWb}M zFk51BNT7PlBNlH*d(K(hNqOt%zlXdNHdC4udn|!!juACP@?~G~x4yF6?~dQ39sOeK z29aLMUTNP`Ow@)gMyPX&p>n9It43Vb(~*|Ve6rOR7q#4e2{zdle4;AV#T(sE>4zhz zT=92pb^7)a_x6mo5WS#tRG72{!?*Vkb|T0zE~SpFU;ax2kU(0blVtV}2}lrglmUGs zRYT?!w+edVY$$C$UkFm6Axq*PhCEf+F(>g4g_srUMolKol-WRj2QMp{Z&z(`MSh#Hf;S91V>b!y zD8n*E%OH~8H9;w%so%!?X>85-1cUiuWU`AF#j}sVOL@ec&tUkOH4@Wc+9jf*372z! z7=bC19tEh~8@itSQ_MxY<2GR??fJkf_N-}$y+=*Uk8=J{yY?ER;~Gm!;&X>Ku7eU; zgHWZa!-Sh$qO#U0f2M0j{GzrOr*dqGGU~%Y zedrKz7m?gvg1c7yLQbg(PD1Ew>&RE42NDe)54M`Q-6iM!uJEytC@$TOa*YHqq)d;` z|FS_u;YIR2;G{!cdz+ttl~t#gUgh`X=;FG+;&`m;@ROQQ^yhoCCVBt&iU`%n9RV_e)iuMv5~UKxZY78 ze&f3-QSmzjCB5#TMSqN!NQ;y`l04aGr?k8by?F|AN)2&4Y6?$$obpUKoS%EqNMPaV zz(%yPRzsDjQ|UmFe;vQS-hQasF;lKSReCU?VnDGqg2{z3SpdcI;`?t9T;>Cf#+uAx zp&g%YE1gtr7h+$1@dHzBVC2n&O7nHq#)DrCb7krztdCWNBtg&s|FRbbvK!xjiumC( z(cBrFLc^gaD(~KI=pIRD<~}p4P{VCDK~YSElPE+O6|OXon0Q_Ujm*=xFUm6NT>UA$ zY$Y~!{e8QZ62eD&mW+khcU#ZN-^HdmP&^qu6cVJ?itWOd`?(8uI$U2VdZ~AuVV5?m2mwlD#;^H&W@8|GSYz>?fG&IMU3i38OODL7# zy>`LnbIg%x*vL2x!_4VC{KQu)>m%co?vbn|LEhGq9Y>}_(1s?_y2UN`N@|110>3%` zpZEqX`@*Rof9XH_9k+P%9;c8qUBX%iRl5kNnMB)kG1=0onnR5nxN7~kh zQ>33QH)6>cOOg_QLNI(*eY#=noYY)W zo+(&2P~6DXH>em$J!V|%7_`~K1X0E5v3t)BO*N0Pa+{*Y#{4~vvk1&G>M}jD!M(VG zGwcUZ1cYQ#g8FnU2h4LA_Y&o2B0fEGVKrp$X2X}KeJt&@B=%J|dKV{eBCTz^FR!s& zs#W>6(^=K!G+Z^WY1C})Z0602IaMzraV{a7NY=Lq`{ze(g~{TF6j~zRqzUEGhg@pd z>u_Do_(TYUs!@Ua3kr1KU-$PD_ZJk%ufhP{>mo7i?DV*pU?Uq#ok@|mGEWnvF^szr~SvFI;VUugD>|- zDnS{zJj#ORuQFvBYhY19j(;HI)gZA})^#`v-hf{HZza=Qrp(=xPZTrt*ea+Vp;Ir( z=8px1&zAoFs;JXC`;jM;!Z}vQ{LqSFn$N1xbSZhcQaM!TuoyjZMwu2B$$QfE%?z6h zyRU8`{4*rt##k~I7DP`{0hSgG4(yMthG~tlUk6>QJfSlq--N#s)l+{3U$r&svQbW; zL&HHfxq5OiHs$@<3jW5L!{*12TbH$R2Cwi@AXtngs#%MXEuO3xq8zqzPH9$#eSVI|N#8t{Lah;a&Fzm)Gj>G0IC zd0^4;vCu7+aHv>*rlpjjh9Iqp>Bmg*#9z_qna1m_nYQ)`*w>GmC0-woi)N*41%_Cm zI6zuO{gm>R0>^Q&wn>?z$%}Zy1v&-$D~CL7As+c1EXvXaY1-wyPK(Lp*j=3juU`&v zeK364<|^J9G&~xeptDKlFq1@TKYtiaxdZ*)DV}ce1E#HEn1pgGP261*7zv7`PF6(xBRMg#|Ag0)%Wzm z2b?Ijytx!^L8;lV>KI-zSUmUcxzr{bE6?Y=l5tr2g1Ck*v!^O+Ec*@oEG=A|20bS= zEl#-{5u&A9TmQQ9hON#{*YlMZlkhfDHO?lY0k=OtKYL57961{6gz2a2Oe7Hy64obA zC0o97fyMvmSnmC^BqYA;#`&^e1Si!?bl7osIBg;gPnTKtQs(t&Kb{_gtAwhZ+QYsp zzC8$;P{@&Gl-LLDom|D(R?l9(E?JpG(lpcJW&tSoS$P3>X=l(tATMg8i|t!K0_6w9 zEJ$Z|w)gzz=ZZ>O+lsoTr{&m^BivdHAm}xgkpc4MI=pXc6rZ$K*(&NWeiPOAlq*z9 z&k;a85BdF)i8s8$(Lh(bEsKuOnwb$qmi~s1bDqDOqrZK&>X2IXakLdaxA13c-7O>H zG;9`1ylPr(0_3UplOKI|#XHDxN1htxK@B_tR|3_Hg7Bj{5NH$Q(q&$eac;L)XPTDM z)wVxIXFYV`p_~|Gx`%GoYKK1f_t=;ekvOGZH5l+rJ z3LS|ADsq!0gQ~Bt0U|7aBK0-j3Smhw^8^>)DS9!(Jdg4u)q1uJhHw8?a%;2LN=WQq zc*9gr+Q2-=6XdTQwObx?M07|z;Xf%b->9B7CNhx!y9NDSOufCVt{Dg*|F3{dvt_!Z Ji*~da{~w)hBMkrm literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo.png b/src/main/resources/assets/hbm/textures/items/ammo.png index 332f979135d2cb72d10e33dba03a445c37be2286..1359f476264f22eb3551852d5edd23ff2b2e866c 100644 GIT binary patch literal 18879 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 literal 18786 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 AO#lD@ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_he.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_he.png new file mode 100644 index 0000000000000000000000000000000000000000..46affec4d934e62d932b17eaf3620d7f02da3aef GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf6f^?`ZD?ij|f^|!Rx8_tC@8!z@pMHLot*iTA@P6HiO+4=v7#_F=R>WSH zOD++#>{0n&{^GY>YUH6a3=HlQ4Rk%MP6{@xVqyp}J;VN-lYt>k>_)nt2C sT{iK%l-%R@>CY+uiI)!tr$pH^B!6tkb95$IJ0Pgg&ebxsLQ02rftWdHyG literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.r762_he.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.r762_he.png new file mode 100644 index 0000000000000000000000000000000000000000..ac174ea4daacc12b16249400ffff5664eb47dfdb GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfPYjo%4(V zPqLwL^UQKp&qF3ki(FWgn2eblm^zkmGIn$*DzQEY{-GV~Jn3a)@wtu@9e3{OKlm5p zns$JNd6rl|$0m*+BFWso-CF0xZ%6tXI5UKVnmTWby5X|ufYhV^UB!9-*Q+Y6eI3>5 ov3p(c|2yq&9Wr`+6AS*cmTagBIwUG?0Q4w>r>mdKI;Vst00r`GR{#J2 literal 0 HcmV?d00001