diff --git a/changelog b/changelog index d17c39117..0a9e331d9 100644 --- a/changelog +++ b/changelog @@ -10,6 +10,14 @@ * Explosive 10 gauge buckshot (unlike 12 gauge which has explosive slugs) * Lincoln's repeater, a b-side to the lever action rifle * Weapon modification table + * All weapon tiers have generic upgrades for increasing damage and durability + * Many guns have specialized attachments. Some examples: + * The assault rifle can use silencers, scopes, can have its stock removed and has two different polymer furnitures + * .44 revolvers can use scopes + * All full-length shotguns can have their barrel sawed off + * Most shotguns can make use of a choke to decrease projectile spread (does not work with sawed-offs) + * The grease gun has a modernization package, replacing most parts and increasing most stats + * Some guns have special mod combos that will change the name ## Changed * Fat mines now use the standardized mini nuke code @@ -31,6 +39,10 @@ * Removed the gemothermal, ZPE and ambient radiation generators from the creative menu * Disabled the horrid flicker on the quad rocket launcher's antenna, making steered mode look less terrible * All non-legendary .357 revolvers now fire a quarter of a second faster +* Changed the detonator's recipe to be less archaic +* Crates can now be opened when held +* Crates will not longer show their contents when locked +* Crates found in structures will sometimes contain things that aren't items ## Fixed * Fixed animation errors on the MAS-36 diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java index 46897ba87..d01e1d68f 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java @@ -19,7 +19,6 @@ import com.hbm.handler.threading.PacketThreading; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import com.hbm.main.ResourceManager; -import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.DamageResistanceHandler.DamageClass; diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidNuclear.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidNuclear.java index ee7990e2e..8226f6081 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidNuclear.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidNuclear.java @@ -13,7 +13,6 @@ import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.handler.threading.PacketThreading; import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; -import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 89f409537..e14af9dc7 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1509,6 +1509,7 @@ public class ModItems { public static Item weapon_mod_test; public static Item weapon_mod_generic; public static Item weapon_mod_special; + public static Item weapon_mod_caliber; public static Item crucible; @@ -6493,6 +6494,7 @@ public class ModItems { GameRegistry.registerItem(weapon_mod_test, weapon_mod_test.getUnlocalizedName()); GameRegistry.registerItem(weapon_mod_generic, weapon_mod_generic.getUnlocalizedName()); GameRegistry.registerItem(weapon_mod_special, weapon_mod_special.getUnlocalizedName()); + GameRegistry.registerItem(weapon_mod_caliber, weapon_mod_caliber.getUnlocalizedName()); //Ammo GameRegistry.registerItem(gun_b92_ammo, gun_b92_ammo.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java b/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java index eca95704f..920ad06ed 100644 --- a/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java +++ b/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.threading.PacketThreading; -import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.render.model.ModelArmorBJ; import com.hbm.util.ArmorUtil; diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index cce9d0193..3d3875a20 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -5,21 +5,15 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; -import com.hbm.explosion.vanillant.ExplosionVNT; -import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; import com.hbm.itempool.ItemPool; import com.hbm.itempool.ItemPoolsSingle; -import com.hbm.lib.HbmWorldGen; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.particle.helper.ExplosionCreator; -import com.hbm.tileentity.machine.storage.TileEntityCrateBase; import com.hbm.tileentity.machine.storage.TileEntitySafe; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; diff --git a/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java b/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java index b9c80f3a8..ed086e56e 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java +++ b/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.Locale; import java.util.concurrent.ConcurrentHashMap; import java.util.function.BiConsumer; +import java.util.function.Function; import com.hbm.config.GeneralConfig; import com.hbm.handler.HbmKeybinds.EnumKeybind; @@ -42,6 +43,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; +import net.minecraft.util.StatCollector; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; @@ -103,6 +105,7 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipRecei /** NEVER ACCESS DIRECTLY - USE GETTER */ protected GunConfig[] configs_DNA; + public Function LAMBDA_NAME_MUTATOR; public WeaponQuality quality; public GunConfig getConfig(ItemStack stack, int index) { @@ -143,6 +146,21 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipRecei JAMMED, //forced delay due to jamming } + public ItemGunBaseNT setNameMutator(Function lambda) { + this.LAMBDA_NAME_MUTATOR = lambda; + return this; + } + + public String getItemStackDisplayName(ItemStack stack) { + + if(this.LAMBDA_NAME_MUTATOR != null) { + String unloc = this.LAMBDA_NAME_MUTATOR.apply(stack); + if(unloc != null) return (StatCollector.translateToLocal(unloc + ".name")).trim(); + } + + return super.getItemStackDisplayName(stack); + } + @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { @@ -174,7 +192,7 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipRecei case DEBUG: list.add((BobMathUtil.getBlink() ? EnumChatFormatting.YELLOW : EnumChatFormatting.GOLD) + "DEBUG"); break; } - if(Minecraft.getMinecraft().currentScreen instanceof GUIWeaponTable) { + if(Minecraft.getMinecraft().currentScreen instanceof GUIWeaponTable && !this.recognizedMods.isEmpty()) { list.add(EnumChatFormatting.RED + "Accepts:"); for(ComparableStack comp : this.recognizedMods) list.add(EnumChatFormatting.RED + " " + comp.toStack().getDisplayName()); } 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 e33609e10..ff80ce43c 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 @@ -66,10 +66,12 @@ public class GunFactory { XFactoryTurret.init(); XFactory10ga.init(); XFactory35800.init(); + XFactory45.init(); ModItems.weapon_mod_test = new ItemEnumMulti(EnumModTest.class, true, true).setUnlocalizedName("weapon_mod_test").setMaxStackSize(1); ModItems.weapon_mod_generic = new ItemEnumMulti(EnumModGeneric.class, true, true).setUnlocalizedName("weapon_mod_generic").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab); ModItems.weapon_mod_special = new ItemEnumMulti(EnumModSpecial.class, true, true).setUnlocalizedName("weapon_mod_special").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab); + ModItems.weapon_mod_caliber = new ItemEnumMulti(EnumModCaliber.class, true, true).setUnlocalizedName("weapon_mod_caliber").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab); /// PROXY BULLSHIT /// MainRegistry.proxy.registerGunCfg(); @@ -155,6 +157,11 @@ public class GunFactory { public static enum EnumModSpecial { SILENCER, SCOPE, SAW, GREASEGUN, SLOWDOWN, SPEEDUP, CHOKE, SPEEDLOADER, - FURNITURE_GREEN, FURNITURE_BLACK, BAYONET + FURNITURE_GREEN, FURNITURE_BLACK, BAYONET, + STACK_MAG, + } + + public static enum EnumModCaliber { + P9, P45, P22, M357, M44, R556, R762, BMG50, } } 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 3819d24ed..ffae70729 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 @@ -8,6 +8,7 @@ import static com.hbm.items.weapon.sedna.factory.XFactory357.*; import static com.hbm.items.weapon.sedna.factory.XFactory35800.*; import static com.hbm.items.weapon.sedna.factory.XFactory40mm.*; import static com.hbm.items.weapon.sedna.factory.XFactory44.*; +import static com.hbm.items.weapon.sedna.factory.XFactory45.*; import static com.hbm.items.weapon.sedna.factory.XFactory50.*; import static com.hbm.items.weapon.sedna.factory.XFactory556mm.*; import static com.hbm.items.weapon.sedna.factory.XFactory75Bolt.*; @@ -122,6 +123,12 @@ public class GunFactoryClient { p9_fmj.setRenderer(LegoClient.RENDER_STANDARD_BULLET); p9_jhp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); p9_ap.setRenderer(LegoClient.RENDER_AP_BULLET); + + p45_sp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + p45_fmj.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + p45_jhp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + p45_ap.setRenderer(LegoClient.RENDER_AP_BULLET); + p45_du.setRenderer(LegoClient.RENDER_DU_BULLET); r556_sp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); r556_fmj.setRenderer(LegoClient.RENDER_STANDARD_BULLET); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java index a237d8013..557123942 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java @@ -920,8 +920,11 @@ public class Orchestras { if(type == AnimType.CYCLE) { if(timer == 0) { - SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); - if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, aiming ? 0.125 : 0.5, aiming ? -0.125 : -0.25, aiming ? -0.25 : -0.5D, 0, 0.18, -0.12, 0.01, (float)entity.getRNG().nextGaussian() * 15F, (float)entity.getRNG().nextGaussian() * 15F, casing.getName()); + int rounds = WeaponModManager.hasUpgrade(stack, ctx.configIndex, 208) ? 2 : 1; + for(int i = 0; i < rounds; i++) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, aiming ? 0.125 : 0.5, aiming ? -0.125 : -0.25, aiming ? -0.25 : -0.5D, 0, 0.18, -0.12, 0.01, (float)entity.getRNG().nextGaussian() * 15F, (float)entity.getRNG().nextGaussian() * 15F, casing.getName()); + } } if(timer == (WeaponModManager.hasUpgrade(stack, 0, 207) ? 3 : 1)) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); } 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 399837376..c7510d221 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 @@ -3,6 +3,7 @@ package com.hbm.items.weapon.sedna.factory; import java.util.List; import java.util.function.BiConsumer; import java.util.function.BiFunction; +import java.util.function.Function; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.BlockDetonatable; @@ -24,6 +25,7 @@ import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret; import com.hbm.items.weapon.sedna.mags.MagazineBelt; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; +import com.hbm.items.weapon.sedna.mods.WeaponModManager; import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; import com.hbm.packet.PacketDispatcher; @@ -296,7 +298,8 @@ public class XFactory12ga { .setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG)) .setupStandardConfiguration() .anim(LAMBDA_MARESLEG_ANIMS).orchestra(Orchestras.ORCHESTRA_MARESLEG) - ).setUnlocalizedName("gun_maresleg"); + ).setNameMutator(LAMBDA_NAME_MARESLEG) + .setUnlocalizedName("gun_maresleg"); ModItems.gun_maresleg_akimbo = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig().dura(600).draw(5).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) @@ -382,6 +385,11 @@ public class XFactory12ga { ).setUnlocalizedName("gun_autoshotgun_sexy"); } + public static Function LAMBDA_NAME_MARESLEG = (stack) -> { + if(WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_SAWED_OFF)) return stack.getUnlocalizedName() + "_short"; + return null; + }; + public static BiConsumer LAMBDA_RECOIL_MARESLEG = (stack, ctx) -> { ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); }; 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 2855016ec..8ee56b4ac 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 @@ -2,6 +2,7 @@ package com.hbm.items.weapon.sedna.factory; import java.util.function.BiConsumer; import java.util.function.BiFunction; +import java.util.function.Function; import com.hbm.entity.projectile.EntityBoxcar; import com.hbm.entity.projectile.EntityBulletBaseMK4; @@ -20,6 +21,7 @@ import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; +import com.hbm.items.weapon.sedna.mods.WeaponModManager; import com.hbm.lib.RefStrings; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; @@ -114,7 +116,8 @@ public class XFactory44 { .setupStandardFire().recoil(LAMBDA_RECOIL_NOPIP)) .setupStandardConfiguration() .anim(LAMBDA_NOPIP_ANIMS).orchestra(Orchestras.ORCHESTRA_NOPIP) - ).setUnlocalizedName("gun_heavy_revolver"); + ).setNameMutator(LAMBDA_NAME_NOPIP) + .setUnlocalizedName("gun_heavy_revolver"); ModItems.gun_heavy_revolver_lilmac = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() .dura(31_000).draw(10).inspect(23).crosshair(Crosshair.L_CLASSIC).scopeTexture(scope_lilmac).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) @@ -148,6 +151,11 @@ public class XFactory44 { ).setUnlocalizedName("gun_hangman"); } + public static Function LAMBDA_NAME_NOPIP = (stack) -> { + if(WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_SCOPE)) return stack.getUnlocalizedName() + "_scoped"; + return null; + }; + public static BiConsumer SMACK_A_FUCKER = (stack, ctx) -> { if(ItemGunBaseNT.getState(stack, ctx.configIndex) == GunState.IDLE || ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) == AnimType.CYCLE) { ItemGunBaseNT.setIsAiming(stack, false); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory45.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory45.java new file mode 100644 index 000000000..2f7841611 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory45.java @@ -0,0 +1,30 @@ +package com.hbm.items.weapon.sedna.factory; + +import com.hbm.items.ItemEnums.EnumCasingType; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; + +public class XFactory45 { + + public static BulletConfig p45_sp; + public static BulletConfig p45_fmj; + public static BulletConfig p45_jhp; + public static BulletConfig p45_ap; + public static BulletConfig p45_du; + + public static void init() { + SpentCasing casing9 = new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(1F, 1F, 0.75F); + p45_sp = new BulletConfig().setItem(EnumAmmo.P45_SP).setCasing(EnumCasingType.SMALL, 8) + .setCasing(casing9.clone().register("p45")); + p45_fmj = new BulletConfig().setItem(EnumAmmo.P45_FMJ).setCasing(EnumCasingType.SMALL, 8).setDamage(0.8F).setThresholdNegation(2F).setArmorPiercing(0.1F) + .setCasing(casing9.clone().register("p45fmj")); + p45_jhp = new BulletConfig().setItem(EnumAmmo.P45_JHP).setCasing(EnumCasingType.SMALL, 8).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) + .setCasing(casing9.clone().register("p45jhp")); + p45_ap = new BulletConfig().setItem(EnumAmmo.P45_AP).setCasing(EnumCasingType.SMALL_STEEL, 8).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(5F).setArmorPiercing(0.15F) + .setCasing(casing9.clone().setColor(SpentCasing.COLOR_CASE_44).register("p45ap")); + p45_du = new BulletConfig().setItem(EnumAmmo.P45_DU).setCasing(EnumCasingType.SMALL_STEEL, 8).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(2.5F).setThresholdNegation(15F).setArmorPiercing(0.25F) + .setCasing(casing9.clone().setColor(SpentCasing.COLOR_CASE_44).register("p45du")); + } +} 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 f7f56db80..4aafb28ea 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 @@ -2,6 +2,7 @@ package com.hbm.items.weapon.sedna.factory; import java.util.function.BiConsumer; import java.util.function.BiFunction; +import java.util.function.Function; import com.hbm.config.ClientConfig; import com.hbm.items.ModItems; @@ -16,6 +17,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.items.weapon.sedna.mods.WeaponModManager; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; @@ -58,7 +60,7 @@ public class XFactory556mm { .setupStandardFire().recoil(LAMBDA_RECOIL_G3)) .setupStandardConfiguration().ps(Lego.LAMBDA_STANDARD_CLICK_SECONDARY) .anim(LAMBDA_G3_ANIMS).orchestra(Orchestras.ORCHESTRA_G3) - ).setUnlocalizedName("gun_g3"); + ).setNameMutator(LAMBDA_NAME_G3).setUnlocalizedName("gun_g3"); ModItems.gun_stg77 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(3_000).draw(10).inspect(125).crosshair(Crosshair.CIRCLE).scopeTexture(scope_lilmac).smoke(LAMBDA_SMOKE) @@ -73,6 +75,16 @@ public class XFactory556mm { ).setUnlocalizedName("gun_stg77"); } + public static Function LAMBDA_NAME_G3 = (stack) -> { + if(WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_SILENCER) && + WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_NO_STOCK) && + WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_FURNITURE_BLACK) && + WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_SCOPE)) return stack.getUnlocalizedName() + "_infiltrator"; + if(!WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_NO_STOCK) && + WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_FURNITURE_GREEN)) return stack.getUnlocalizedName() + "_a3"; + return null; + }; + public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { Lego.handleStandardSmoke(ctx.entity, stack, 1500, 0.075D, 1.1D, 0); }; 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 e018a3f2d..0cd151888 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 @@ -2,6 +2,7 @@ package com.hbm.items.weapon.sedna.factory; import java.util.function.BiConsumer; import java.util.function.BiFunction; +import java.util.function.Function; import com.hbm.items.ModItems; import com.hbm.items.ItemEnums.EnumCasingType; @@ -15,6 +16,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.items.weapon.sedna.mods.WeaponModManager; import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; import com.hbm.particle.SpentCasing; @@ -53,7 +55,8 @@ public class XFactory9mm { .setupStandardFire().recoil(LAMBDA_RECOIL_GREASEGUN)) .setupStandardConfiguration() .anim(LAMBDA_GREASEGUN_ANIMS).orchestra(Orchestras.ORCHESTRA_GREASEGUN) - ).setUnlocalizedName("gun_greasegun"); + ).setNameMutator(LAMBDA_NAME_GREASEGUN) + .setUnlocalizedName("gun_greasegun"); ModItems.gun_lag = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(1_700).draw(7).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) @@ -75,7 +78,8 @@ public class XFactory9mm { .setupStandardFire().recoil(LAMBDA_RECOIL_UZI)) .setupStandardConfiguration() .anim(LAMBDA_UZI_ANIMS).orchestra(Orchestras.ORCHESTRA_UZI) - ).setUnlocalizedName("gun_uzi"); + ).setNameMutator(LAMBDA_NAME_UZI) + .setUnlocalizedName("gun_uzi"); ModItems.gun_uzi_akimbo = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig().dura(3_000).draw(15).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) @@ -98,6 +102,16 @@ public class XFactory9mm { ).setUnlocalizedName("gun_uzi_akimbo"); } + public static Function LAMBDA_NAME_GREASEGUN = (stack) -> { + if(WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_GREASEGUN_CLEAN)) return stack.getUnlocalizedName() + "_m3"; + return null; + }; + + public static Function LAMBDA_NAME_UZI = (stack) -> { + if(WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_SILENCER)) return stack.getUnlocalizedName() + "_richter"; + return null; + }; + public static BiConsumer LAMBDA_RECOIL_GREASEGUN = (stack, ctx) -> { ItemGunBaseNT.setupRecoil(2, (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); }; 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 957b1b4b3..92d6035cc 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 @@ -13,7 +13,7 @@ import net.minecraft.item.ItemStack; public class MagazineBelt implements IMagazine { - protected List acceptedBullets = new ArrayList(); + public List acceptedBullets = new ArrayList(); public MagazineBelt addConfigs(BulletConfig... cfgs) { for(BulletConfig cfg : cfgs) acceptedBullets.add(cfg); return this; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModBase.java b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModBase.java index 3b8892776..2e265c19e 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModBase.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModBase.java @@ -2,6 +2,7 @@ package com.hbm.items.weapon.sedna.mods; public abstract class WeaponModBase implements IWeaponMod { + public static final int PRIORITY_SET = Integer.MAX_VALUE; public static final int PRIORITY_MULTIPLICATIVE = 1_000; public static final int PRIORITY_ADDITIVE = 500; public static final int PRIORITY_MULT_FINAL = -1; diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModCaliber.java b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModCaliber.java new file mode 100644 index 000000000..1dbf1a4b0 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModCaliber.java @@ -0,0 +1,59 @@ +package com.hbm.items.weapon.sedna.mods; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.mags.MagazineBelt; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; + +import net.minecraft.item.ItemStack; + +public class WeaponModCaliber extends WeaponModBase { + + protected static MagazineSingleReload DUMMY_SINGLE = new MagazineSingleReload(0, 0); + protected static MagazineFullReload DUMMY_FULL = new MagazineFullReload(0, 0); + protected static MagazineBelt DUMMY_BELT = new MagazineBelt(); + protected final List cfg = new ArrayList(); + protected final int count; + protected final float baseDamage; + + public WeaponModCaliber(int id, int count, float baseDamage, BulletConfig... cfg) { + super(id, "CALIBER"); + this.setPriority(PRIORITY_SET); + for(BulletConfig conf : cfg) this.cfg.add(conf); + this.count = count; + this.baseDamage = baseDamage; + } + + @Override + public T eval(T base, ItemStack gun, String key, Object parent) { + if(key == Receiver.O_MAGAZINE) { + if(base instanceof MagazineSingleReload) { + MagazineSingleReload original = (MagazineSingleReload) base; + DUMMY_SINGLE.acceptedBullets = cfg; + DUMMY_SINGLE.capacity = count; + DUMMY_SINGLE.index = original.index; + return (T) DUMMY_SINGLE; + } + if(base instanceof MagazineFullReload) { + MagazineFullReload original = (MagazineFullReload) base; + DUMMY_FULL.acceptedBullets = cfg; + DUMMY_FULL.capacity = count; + DUMMY_FULL.index = original.index; + return (T) DUMMY_FULL; + } + if(base instanceof MagazineBelt) { + MagazineBelt original = (MagazineBelt) base; + DUMMY_BELT.acceptedBullets = cfg; + return (T) DUMMY_BELT; + } + } + if(key == Receiver.F_BASEDAMAGE) { + return cast(baseDamage, base); + } + return base; + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModManager.java b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModManager.java index 0ddc74d47..ba9bb3c46 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModManager.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModManager.java @@ -8,10 +8,20 @@ import java.util.List; import com.google.common.collect.HashBiMap; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.factory.XFactory9mm; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumModCaliber; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumModGeneric; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumModSpecial; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumModTest; +import com.hbm.items.weapon.sedna.factory.XFactory22lr; +import com.hbm.items.weapon.sedna.factory.XFactory357; +import com.hbm.items.weapon.sedna.factory.XFactory44; +import com.hbm.items.weapon.sedna.factory.XFactory45; +import com.hbm.items.weapon.sedna.factory.XFactory50; +import com.hbm.items.weapon.sedna.factory.XFactory556mm; +import com.hbm.items.weapon.sedna.factory.XFactory762mm; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -52,13 +62,11 @@ public class WeaponModManager { new WeaponModDefinition(new ItemStack(ModItems.weapon_mod_generic, 1, EnumModGeneric.IRON_DURA.ordinal())).addMod(ModItems.gun_pepperbox, new WeaponModGenericDurability(101)); Item[] steelGuns = new Item[] { - ModItems.gun_light_revolver, - ModItems.gun_light_revolver_atlas, + ModItems.gun_light_revolver, ModItems.gun_light_revolver_atlas, ModItems.gun_henry, ModItems.gun_henry_lincoln, ModItems.gun_greasegun, - ModItems.gun_maresleg, - ModItems.gun_maresleg_akimbo, + ModItems.gun_maresleg, ModItems.gun_maresleg_akimbo, ModItems.gun_flaregun }; Item[] duraGuns = new Item[] { ModItems.gun_am180, @@ -69,8 +77,7 @@ public class WeaponModManager { Item[] deshGuns = new Item[] { ModItems.gun_heavy_revolver, ModItems.gun_carbine, - ModItems.gun_uzi, - ModItems.gun_uzi_akimbo, + ModItems.gun_uzi, ModItems.gun_uzi_akimbo, ModItems.gun_spas12, ModItems.gun_panzerschreck }; Item[] wsteelGuns = new Item[] { @@ -79,8 +86,7 @@ public class WeaponModManager { ModItems.gun_chemthrower }; Item[] ferroGuns = new Item[] { ModItems.gun_m2, - ModItems.gun_autoshotgun, - ModItems.gun_autoshotgun_shredder, + ModItems.gun_autoshotgun, ModItems.gun_autoshotgun_shredder, ModItems.gun_quadro }; Item[] tcalloyGuns = new Item[] { ModItems.gun_lag, @@ -127,6 +133,43 @@ public class WeaponModManager { new WeaponModDefinition(EnumModSpecial.FURNITURE_GREEN).addMod(ModItems.gun_g3, new WeaponModPolymerFurniture(ID_FURNITURE_GREEN)); new WeaponModDefinition(EnumModSpecial.FURNITURE_BLACK).addMod(ModItems.gun_g3, new WeaponModPolymerFurniture(ID_FURNITURE_BLACK)); new WeaponModDefinition(EnumModSpecial.BAYONET).addMod(ModItems.gun_mas36, new WeaponModMASBayonet(ID_MAS_BAYONET)); + new WeaponModDefinition(EnumModSpecial.STACK_MAG).addMod(new Item[] {ModItems.gun_greasegun, ModItems.gun_uzi, ModItems.gun_uzi_akimbo, ModItems.gun_aberrator, ModItems.gun_aberrator_eott}, new WeaponModStackMag(214)); + + BulletConfig[] p9 = new BulletConfig[] {XFactory9mm.p9_sp, XFactory9mm.p9_fmj, XFactory9mm.p9_jhp, XFactory9mm.p9_ap}; + BulletConfig[] p45 = new BulletConfig[] {XFactory45.p45_sp, XFactory45.p45_fmj, XFactory45.p45_jhp, XFactory45.p45_ap, XFactory45.p45_du}; + BulletConfig[] p22 = new BulletConfig[] {XFactory22lr.p22_sp, XFactory22lr.p22_fmj, XFactory22lr.p22_jhp, XFactory22lr.p22_ap}; + BulletConfig[] m357 = new BulletConfig[] {XFactory357.m357_sp, XFactory357.m357_fmj, XFactory357.m357_jhp, XFactory357.m357_ap, XFactory357.m357_express}; + BulletConfig[] m44 = new BulletConfig[] {XFactory44.m44_sp, XFactory44.m44_fmj, XFactory44.m44_jhp, XFactory44.m44_ap, XFactory44.m44_express}; + BulletConfig[] r556 = new BulletConfig[] {XFactory556mm.r556_sp, XFactory556mm.r556_fmj, XFactory556mm.r556_jhp, XFactory556mm.r556_ap}; + BulletConfig[] r762 = new BulletConfig[] {XFactory762mm.r762_sp, XFactory762mm.r762_fmj, XFactory762mm.r762_jhp, XFactory762mm.r762_ap, XFactory762mm.r762_du, XFactory762mm.r762_he}; + BulletConfig[] bmg50 = new BulletConfig[] {XFactory50.bmg50_sp, XFactory50.bmg50_fmj, XFactory50.bmg50_jhp, XFactory50.bmg50_ap, XFactory50.bmg50_du, XFactory50.bmg50_he}; + new WeaponModDefinition(EnumModCaliber.P9) + .addMod(ModItems.gun_henry, new WeaponModCaliber(300, 28, 10F, p9)); + new WeaponModDefinition(EnumModCaliber.P45) + .addMod(ModItems.gun_henry, new WeaponModCaliber(310, 28, 10F, p45)) + .addMod(ModItems.gun_greasegun, new WeaponModCaliber(311, 24, 3F, p45)) + .addMod(ModItems.gun_uzi, new WeaponModCaliber(312, 24, 3F, p45)) + .addMod(ModItems.gun_uzi_akimbo, new WeaponModCaliber(313, 24, 3F, p45)) + .addMod(ModItems.gun_lag, new WeaponModCaliber(314, 24, 25F, p45)); + new WeaponModDefinition(EnumModCaliber.P22) + .addMod(ModItems.gun_henry, new WeaponModCaliber(320, 28, 10F, p22)) + .addMod(ModItems.gun_uzi, new WeaponModCaliber(321, 40, 3F, p22)) + .addMod(ModItems.gun_uzi_akimbo, new WeaponModCaliber(322, 40, 3F, p22)); + new WeaponModDefinition(EnumModCaliber.M357) + .addMod(ModItems.gun_henry, new WeaponModCaliber(330, 20, 10F, m357)) + .addMod(ModItems.gun_lag, new WeaponModCaliber(331, 15, 25F, m357)); + new WeaponModDefinition(EnumModCaliber.M44) + .addMod(ModItems.gun_lag, new WeaponModCaliber(340, 13, 25F, m44)); + new WeaponModDefinition(EnumModCaliber.R556) + .addMod(ModItems.gun_henry, new WeaponModCaliber(350, 10, 10F, r556)) + .addMod(ModItems.gun_carbine, new WeaponModCaliber(351, 20, 15F, r556)) + .addMod(ModItems.gun_minigun, new WeaponModCaliber(352, 0, 6F, r556)); + new WeaponModDefinition(EnumModCaliber.R762) + .addMod(ModItems.gun_henry, new WeaponModCaliber(360, 8, 10F, r762)) + .addMod(ModItems.gun_g3, new WeaponModCaliber(361, 24, 5F, r762)); + new WeaponModDefinition(EnumModCaliber.BMG50) + .addMod(ModItems.gun_henry, new WeaponModCaliber(370, 5, 10F, bmg50)) + .addMod(ModItems.gun_minigun, new WeaponModCaliber(371, 0, 6F, bmg50)); } public static final int ID_SILENCER = 201; @@ -250,13 +293,15 @@ public class WeaponModManager { } public WeaponModDefinition(EnumModGeneric num) { - this.stack = new ItemStack(ModItems.weapon_mod_generic, 1, num.ordinal()); - stackToMod.put(new ComparableStack(stack), this); + this(new ItemStack(ModItems.weapon_mod_generic, 1, num.ordinal())); } public WeaponModDefinition(EnumModSpecial num) { - this.stack = new ItemStack(ModItems.weapon_mod_special, 1, num.ordinal()); - stackToMod.put(new ComparableStack(stack), this); + this(new ItemStack(ModItems.weapon_mod_special, 1, num.ordinal())); + } + + public WeaponModDefinition(EnumModCaliber num) { + this(new ItemStack(ModItems.weapon_mod_caliber, 1, num.ordinal())); } public WeaponModDefinition addMod(ItemStack gun, IWeaponMod mod) { return addMod(new ComparableStack(gun), mod); } diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModStackMag.java b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModStackMag.java new file mode 100644 index 000000000..6fd3e35a1 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModStackMag.java @@ -0,0 +1,41 @@ +package com.hbm.items.weapon.sedna.mods; + +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; + +import net.minecraft.item.ItemStack; + +public class WeaponModStackMag extends WeaponModBase { + + // we can get away with reusing and re-adjusting these single instances because magazines + // aren't permanent objects, they are not cached anywhere, a magazine is only relevant + // for accessing the itemstack's ammo info and for the state machine's reload operation + protected static MagazineSingleReload DUMMY_SINGLE = new MagazineSingleReload(0, 0); + protected static MagazineFullReload DUMMY_FULL = new MagazineFullReload(0, 0); + + public WeaponModStackMag(int id) { + super(id, "MAG"); + } + + @Override + public T eval(T base, ItemStack gun, String key, Object parent) { + if(key == Receiver.O_MAGAZINE) { + if(base instanceof MagazineSingleReload) { + MagazineSingleReload original = (MagazineSingleReload) base; + DUMMY_SINGLE.acceptedBullets = original.acceptedBullets; + DUMMY_SINGLE.capacity = original.capacity * 3 / 2; + DUMMY_SINGLE.index = original.index; + return (T) DUMMY_SINGLE; + } + if(base instanceof MagazineFullReload) { + MagazineFullReload original = (MagazineFullReload) base; + DUMMY_FULL.acceptedBullets = original.acceptedBullets; + DUMMY_FULL.capacity = original.capacity * 3 / 2; + DUMMY_FULL.index = original.index; + return (T) DUMMY_FULL; + } + } + return base; + } +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 5605ce908..2a0c059d8 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -310,7 +310,7 @@ public class CraftingManager { addRecipeAuto(DictFrame.fromOne(ModItems.arc_electrode, EnumElectrodeType.DESH), new Object[] { "C", "T", "C", 'C', DESH.ingot(), 'T', W.ingot() }); addRecipeAuto(DictFrame.fromOne(ModItems.arc_electrode, EnumElectrodeType.SATURNITE), new Object[] { "C", "T", "C", 'C', BIGMT.ingot(), 'T', NB.ingot() }); - addRecipeAuto(new ItemStack(ModItems.detonator, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', MINGRADE.wireFine(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'E', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModItems.detonator, 1), new Object[] { "C", "S", 'S', STEEL.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), }); addShapelessAuto(new ItemStack(ModItems.detonator_multi, 1), new Object[] { ModItems.detonator, DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addRecipeAuto(new ItemStack(ModItems.detonator_laser, 1), new Object[] { "RRD", "PIC", " P", 'P', STEEL.plate(), 'R', REDSTONE.dust(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'D', DIAMOND.gem(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.detonator_laser, 1), new Object[] { "RRD", "PIC", " P", 'P', STEEL.plate(), 'R', REDSTONE.dust(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'D', EMERALD.gem(), 'I', STEEL.ingot() }); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 5f584730d..6f851c112 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -3,8 +3,6 @@ package com.hbm.main; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; -import com.hbm.blocks.generic.BlockCrate; -import com.hbm.blocks.generic.BlockStorageCrate; import com.hbm.config.ClientConfig; import com.hbm.config.GeneralConfig; import com.hbm.entity.mob.EntityHunterChopper; @@ -61,7 +59,6 @@ import com.hbm.tileentity.bomb.TileEntityNukeCustom; import com.hbm.tileentity.bomb.TileEntityNukeCustom.CustomNukeEntry; import com.hbm.tileentity.bomb.TileEntityNukeCustom.EnumEntryType; import com.hbm.tileentity.machine.TileEntityNukeFurnace; -import com.hbm.tileentity.machine.storage.TileEntityCrateBase; import com.hbm.util.*; import com.hbm.util.ArmorRegistry.HazardClass; import com.hbm.wiaj.GuiWorldInAJar; @@ -103,7 +100,6 @@ import net.minecraft.init.Items; import net.minecraft.inventory.Slot; import net.minecraft.item.Item; import net.minecraft.item.ItemArmor; -import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.network.play.client.C03PacketPlayer; import net.minecraft.network.play.client.C0CPacketInput; @@ -121,7 +117,6 @@ import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; import net.minecraftforge.client.event.sound.PlaySoundEvent17; import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.event.entity.player.ItemTooltipEvent; -import net.minecraftforge.event.entity.player.PlayerInteractEvent; import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; diff --git a/src/main/java/com/hbm/packet/threading/PrecompiledPacket.java b/src/main/java/com/hbm/packet/threading/PrecompiledPacket.java index 461723645..012d24ffe 100644 --- a/src/main/java/com/hbm/packet/threading/PrecompiledPacket.java +++ b/src/main/java/com/hbm/packet/threading/PrecompiledPacket.java @@ -1,7 +1,5 @@ package com.hbm.packet.threading; -import io.netty.buffer.ByteBuf; - /** * Abstract class for precompiled packets. * Contains no content of its own; purely for distinction between precompiling and normal packets. diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRotaryFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRotaryFurnace.java index 8009ff575..cd50da889 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRotaryFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRotaryFurnace.java @@ -22,7 +22,6 @@ import com.hbm.inventory.recipes.RotaryFurnaceRecipes.RotaryFurnaceRecipe; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.module.ModuleBurnTime; -import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.*; import com.hbm.util.CrucibleUtil; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index ce5b85950..8d8a8a260 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1267,6 +1267,11 @@ item.ammo_standard.p22_ap.name=.22 lfB Patrone (Panzerbrechend) item.ammo_standard.p22_fmj.name=.22 lfB Patrone (Vollmantelgeschoss) item.ammo_standard.p22_jhp.name=.22 lfB Patrone (Hohlspitz) item.ammo_standard.p22_sp.name=.22 lfB Patrone (Teilmantelgeschoss) +item.ammo_standard.p45_ap.name=.45 Patrone (Panzerbrechend) +item.ammo_standard.p45_du.name=.45 Patrone (Urangeschoss) +item.ammo_standard.p45_fmj.name=.45 Patrone (Vollmantelgeschoss) +item.ammo_standard.p45_jhp.name=.45 Patrone (Hohlspitz) +item.ammo_standard.p45_sp.name=.45 Patrone (Teilmantelgeschoss) item.ammo_standard.p9_ap.name=9mm Patrone (Panzerbrechend) item.ammo_standard.p9_fmj.name=9mm Patrone (Vollmantelgeschoss) item.ammo_standard.p9_jhp.name=9mm Patrone (Hohlspitz) @@ -2207,162 +2212,67 @@ item.grenade_zomg.name=Negativenergie-Paarvernichtungsgranate item.gun_aberrator.name=Aberrator item.gun_aberrator_eott.name=Eyes Of The Tempest item.gun_am180.name=Schallgedämpfte Maschinenpistole -item.gun_ar15.name=Josh item.gun_autoshotgun.name=Auto-Flinte item.gun_autoshotgun_sexy.name=Sexy item.gun_autoshotgun_shredder.name=Shredder -item.gun_avenger.name=CZ57 Avenger-Minigun item.gun_b92.name=§9B92 Energiepistole§r item.gun_b92_ammo.name=§9B92-Energiezelle§r -item.gun_b93.name=§cB93 Energiemod§r -item.gun_bf.name=BEL -item.gun_bf_ammo.name=Balefire-Geschoss -item.gun_bio_revolver.name=Atlas -item.gun_bolt_action.name=Dream-Repetiergewehr (Original) -item.gun_bolt_action_ammo.name=12x74 Brenneke (LEGACY) -item.gun_bolt_action_green.name=Dream-Repetiergewehr (Grün) -item.gun_bolt_action_saturnite.name=Saturnitbüchse item.gun_bolter.name=Boltergewehr -item.gun_bolter_digamma.name=Digammagewehr -item.gun_calamity.name=Knochensäge -item.gun_calamity_ammo.name=.50 BMG Patrone (LEGACY) -item.gun_calamity_dual.name=Sattelkanone item.gun_carbine.name=Karabiner item.gun_chemthrower.name=Chemowerfer item.gun_coilgun.name=Gaußpistole item.gun_cryocannon.name=Kyro-Kanone -item.gun_cryolator.name=Der Cryolator item.gun_cryolator_ammo.name=Kryozelle -item.gun_dampfmaschine.name=Garantiert keine Scherzwaffe -item.gun_darter.name=Dartgewehr -item.gun_deagle.name=Großes Eisen -item.gun_defabricator.name=Defabrikator -item.gun_defabricator_ammo.name=Defabrikator-Energiezelle item.gun_detonator.name=Laserzünder item.gun_double_barrel.name=Ein alter Klassiker item.gun_double_barrel_sacred_dragon.name=Sacred Dragon -item.gun_emp.name=EMP-Waffe -item.gun_emp_ammo.name=Energiezelle -item.gun_euthanasia.name=Euthanasia -item.gun_euthanasia_ammo.name=Spritze -item.gun_fatman.name=M42 Nukleares Katapult "Fat Man" -item.gun_fatman_ammo.name=Miniatombombe (LEGACY) +item.gun_fatman.name=Fat Man item.gun_fireext.name=Feuerlöscher item.gun_flamer.name=Flammenwerfer item.gun_flamer_daybreaker.name=Daybreaker item.gun_flamer_topaz.name=Mister Topaz item.gun_flaregun.name=Signalpistole -item.gun_flechette.name=Flechet-Gewehr item.gun_folly.name=Folly item.gun_g3.name=Sturmgewehr +item.gun_g3_a3.name=G3A3 +item.gun_g3_infiltrator.name=Infiltrierer item.gun_greasegun.name=Grease Gun +item.gun_greasegun_m3.name=M3 item.gun_hangman.name=Hangman item.gun_heavy_revolver.name=Schwerer Revolver item.gun_heavy_revolver_lilmac.name=Little Macintosh item.gun_heavy_revolver_protege.name=Protège +item.gun_heavy_revolver_scoped.name=.44er Magnum mit Zielvorrichtung item.gun_henry.name=Repetiergewehr item.gun_henry_lincoln.name=Lincolns Repetiergewehr -item.gun_hk69.name=Granatenpistole -item.gun_hp.name=HPP Lazerjet -item.gun_hp_ammo.name=Tintenpatrone -item.gun_immolator.name=Der Immolator -item.gun_immolator_ammo.name=Immolatorkraftstoff -item.gun_jack.name=Jackhammer -item.gun_jack_ammo.name=Vierfache Schrotpatrone -item.gun_karl.name=Karl item.gun_kit_1.name=Waffenöl item.gun_kit_2.name=Waffenreparatursatz -item.gun_ks23.name=Samuel die dicke Flinte -item.gun_lacunae.name=CZ33 Abaddon -item.gun_lacunae_ammo.name=5mm Patrone (LEGACY) item.gun_lag.name=Komisch lange Pistole item.gun_lasrifle.name=Lasergewehr -item.gun_lever_action.name=Mare's Leg (Original) -item.gun_lever_action_ammo.name=12x74 Schrotmunition (LEGACY) -item.gun_lever_action_dark.name=Mare's Leg (Dunkel) -item.gun_lever_action_sonata.name=Verkehrter Mare's Leg -item.gun_lever_action_sonata_2.name=§cSonatas Mikrophon§r item.gun_liberator.name=Liberator item.gun_light_revolver.name=Kipplaufrevolver item.gun_light_revolver_atlas.name=Atlas item.gun_light_revolver_dani.name=Tag und Nacht -item.gun_lunatic_marksman.name=Lunatic-Scharfschützengewehr item.gun_m2.name=üsMG item.gun_maresleg.name=Repetierflinte item.gun_maresleg_akimbo.name=Repetierflinten item.gun_maresleg_broken.name=Broken +item.gun_maresleg_short.name=Mare's Leg item.gun_mas36.name=Südstern item.gun_minigun.name=Minigun item.gun_minigun_lacunae.name=Lacunae -item.gun_mirv.name=M42 Nukleares Katapult "Experimentelles MIRV" -item.gun_mirv_ammo.name=Achtfaches MIRV (LEGACY) item.gun_missile_launcher.name=Raketenwerfer -item.gun_moist_nugget.name=Mosin-Nagant -item.gun_mp.name=Maschinengewehr des Pazifisten -item.gun_mp40.name=Maschinenpistole -item.gun_mp40_ammo.name=SMG-Patrone (LEGACY) item.gun_pepperbox.name=Bündelrevolver -item.gun_pm_ammo.name=Kleine treibmittellose MG-Patrone -item.gun_mymy.name=Nietes -item.gun_osipr.name=Standartausrüstung für Sicherheitskräfte -item.gun_osipr_ammo.name=Dunkler Energiepuls-Plug -item.gun_osipr_ammo2.name=Combine Ball item.gun_panzerschreck.name=Panzerschreck -item.gun_proto.name=M42 Nukleares Katapult "Proto MIRV" item.gun_quadro.name=Vierfachraketenwerfer -item.gun_remington.name=バイデン ブラスト [BIDEN BLAST] -item.gun_revolver.name=Verbesserter Revolver -item.gun_revolver_ammo.name=Bleipatrone -item.gun_revolver_blackjack.name=Blackjack Five-Shooter -item.gun_revolver_cursed.name=Verfluchte Pistole -item.gun_revolver_cursed_ammo.name=Stahlpatrone -item.gun_revolver_gold.name=Goldener Revolver -item.gun_revolver_gold_ammo.name=Goldene Kugel -item.gun_revolver_inverted.name=Umgedrehter Revolver -item.gun_revolver_iron.name=Einfacher Revolver -item.gun_revolver_iron_ammo.name=Patrone -item.gun_revolver_lead.name=Nuka-Revolver -item.gun_revolver_lead_ammo.name=Mit Glas umhüllte Atompatrone -item.gun_revolver_nightmare.name=Nightmare-Revolver (Original) -item.gun_revolver_nightmare2.name=Nightmare-Revolver (Dunkel) -item.gun_revolver_nightmare2_ammo.name=Laserschrot -item.gun_revolver_nightmare_ammo.name=Nightmare-Kugel -item.gun_revolver_nopip.name=Schwerer Revolver -item.gun_revolver_nopip_ammo.name=.44 Magnumpatrone (LEGACY) -item.gun_revolver_pip.name=Lil' Pipsqueak -item.gun_revolver_pip_ammo.name=Verdorbene Patrone (LEGACY) -item.gun_revolver_red.name=Roter Schlüssel-Revolver -item.gun_revolver_saturnite.name=Saturnitknarre -item.gun_revolver_schrabidium.name=Schrabidiumrevolver -item.gun_revolver_schrabidium_ammo.name=Schrabidiumpatrone -item.gun_revolver_silver.name=Geliehene Kanone -item.gun_rpg.name=Carl Gustav Reaktive Panzerbüchse -item.gun_rpg_ammo.name=Rakete -item.gun_sauer.name=Stan Sauers Schrotflinte -item.gun_skystinger.name=The One Sky Stinger -item.gun_spark.name=Die Zündkerze -item.gun_spark_ammo.name=Elektromagnetische Katusche item.gun_spas12.name=SPAS-12 item.gun_stg77.name=StG 77 item.gun_stinger.name=FIM-92 Stinger -item.gun_stinger_ammo.name=Stinger-Rakete (LEGACY) -item.gun_super_shotgun.name=Super Shotgun -item.gun_supershotgun.name=Super Shotgun item.gun_tau.name=Taukanone item.gun_tesla_cannon.name=Teslakanone -item.gun_thompson.name=Thompson Maschinenpistole -item.gun_uac_pistol.name=UAC .45 Pistole -item.gun_uboinik.name=Ubojnik -item.gun_uboinik_ammo.name=12x70 Schrotmunition (LEGACY) item.gun_uzi.name=Uzi +item.gun_uzi_richter.name=Richter item.gun_uzi_akimbo.name=Uzis -item.gun_uzi_ammo.name=.22 lfB Patrone (LEGACY) -item.gun_uzi_saturnite.name=Saturnit-Uzi -item.gun_uzi_saturnite_silencer.name=Saturnit-Uzi mit Schalldämpfer -item.gun_uzi_silencer.name=IMI Uzi mit Schalldämpfer -item.gun_xvl1456.name=XVL1456 Tau-Kanone Prototyp -item.gun_xvl1456_ammo.name=Kiste mit erschöpftem Uran-235 -item.gun_zomg.name=ZOMG Kanone item.hand_drill.name=Handbohrer item.hand_drill_desh.name=Desh-Handbohrer item.hazmat_boots.name=Strahlenschutzstiefel @@ -3783,14 +3693,44 @@ item.watz_pellet_depleted.nqd.name=Angereichertes Naquadah-Watzpellet (Erschöpf item.watz_pellet_depleted.nqr.name=Naquadria-Watzpellet (Erschöpft) item.watz_pellet_depleted.hen.name=HEN-Watzpellet (Erschöpft) item.watz_pellet_depleted.schrabidium.name=Schrabidium-Watzpellet (Erschöpft) +item.wd40.name=VT-40 item.weapon_bat.name=Richards Standard item.weapon_bat_nail.name=Das Klischee item.weapon_golf_club.name=Schläger des russischen Mafiosos +item.weapon_mod_generic.bigmt_damage.name=Optimierter Saturnit-Verschluss +item.weapon_mod_generic.bigmt_dura.name=Langlebige Saturnit-Teile +item.weapon_mod_generic.bronze_damage.name=Optimierter Bronzeverschluss +item.weapon_mod_generic.bronze_dura.name=Langlebige Bronzeteile +item.weapon_mod_generic.desh_damage.name=Optimierter Deshverschluss +item.weapon_mod_generic.desh_dura.name=Langlebige Deshteile +item.weapon_mod_generic.dura_damage.name=Optimierter HSS-Verschluss +item.weapon_mod_generic.dura_dura.name=Langlebige HSS-Teile +item.weapon_mod_generic.ferro_damage.name=Optimierter Ferrouranverschluss +item.weapon_mod_generic.ferro_dura.name=Langlebige Ferrouranteile +item.weapon_mod_generic.iron_damage.name=Optimierter Eisenverschluss +item.weapon_mod_generic.iron_dura.name=Langlebige Eisenteile +item.weapon_mod_generic.steel_damage.name=Optimierter Stahlverschluss +item.weapon_mod_generic.steel_dura.name=Langlebige Stahlteile +item.weapon_mod_generic.tcalloy_damage.name=Optimierter Legierungsverschluss +item.weapon_mod_generic.tcalloy_dura.name=Langlebige Legierungsteile +item.weapon_mod_generic.wsteel_damage.name=Optimierter Waffenstahl-Verschluss +item.weapon_mod_generic.wsteel_dura.name=Langlebige Waffenstahl-Teile +item.weapon_mod_special.bayonet.name=Bayonet +item.weapon_mod_special.choke.name=Choke +item.weapon_mod_special.furniture_black.name=Polymergriff (Schwarz) +item.weapon_mod_special.furniture_green.name=Polymergriff (Grün) +item.weapon_mod_special.greasegun.name=Grease Gun Modernisierungskit +item.weapon_mod_special.saw.name=Bügelsäge +item.weapon_mod_special.scope.name=Ziehlvorrichtung +item.weapon_mod_special.silencer.name=Schalldämpfer +item.weapon_mod_special.slowdown.name=Rädergetriebe +item.weapon_mod_special.speedloader.name=Schnelllader +item.weapon_mod_special.speedup.name=Elektrischer Servomotor +item.weapon_mod_special.stack_mag.name=Zweistapel-Magazin item.weapon_pipe_lead.name=Die Handüberbrückung item.weapon_pipe_rusty.name=Der Einstellungskorrigierer item.weapon_saw.name=Ärztlich autorisierter Mord item.weaponized_starblaster_cell.name=§cManipulierte Sternenblaster-Energiezelle§r -item.wd40.name=VT-40 item.wild_p.name=Wild Pegasus Trockener Whisky item.wings_limp.name=Schlaffe Flügel item.wings_murk.name=Trübe Flügel diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 792b45bc3..9085b8d52 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1991,6 +1991,11 @@ item.ammo_standard.p22_ap.name=.22 LR Round (Armor Piercing) item.ammo_standard.p22_fmj.name=.22 LR Round (Full Metal Jacket) item.ammo_standard.p22_jhp.name=.22 LR Round (Jacketed Hollow Point) item.ammo_standard.p22_sp.name=.22 LR Round (Soft Point) +item.ammo_standard.p45_ap.name=.45 Round (Armor Piercing) +item.ammo_standard.p45_du.name=.45 Round (Depleted Uranium) +item.ammo_standard.p45_fmj.name=.45 Round (Full Metal Jacket) +item.ammo_standard.p45_jhp.name=.45 Round (Jacketed Hollow Point) +item.ammo_standard.p45_sp.name=.45 Round (Soft Point) item.ammo_standard.p9_ap.name=9mm Round (Armor Piercing) item.ammo_standard.p9_fmj.name=9mm Round (Full Metal Jacket) item.ammo_standard.p9_jhp.name=9mm Round (Jacketed Hollow Point) @@ -3014,166 +3019,68 @@ item.glyphid_gland_empty.name= Glyphid's Fluid Gland item.gun_aberrator.name=Aberrator item.gun_aberrator_eott.name=Eyes Of The Tempest item.gun_am180.name=Silenced Submachine Gun -item.gun_ar15.name=Josh item.gun_autoshotgun.name=Auto Shotgun item.gun_autoshotgun_sexy.name=Sexy item.gun_autoshotgun_shredder.name=Shredder -item.gun_avenger.name=CZ57 Avenger Minigun item.gun_b92.name=§9B92 Energy Pistol§r item.gun_b92_ammo.name=§9B92 Energy Cell§r -item.gun_b93.name=§cB93 Energy Mod§r -item.gun_benelli.name=Benelli Autoshotgun (Drum Mod) -item.gun_bf.name=BEL -item.gun_bf_ammo.name=Balefire Shell -item.gun_bio_revolver.name=Atlas -item.gun_bolt_action.name=Dream Bolt-Action Rifle (Original) -item.gun_bolt_action_ammo.name=12x74 Slug (LEGACY) -item.gun_bolt_action_green.name=Dream Bolt-Action Rifle (Green) -item.gun_bolt_action_saturnite.name=Saturnite Rifle item.gun_bolter.name=Bolter -item.gun_bolter_digamma.name=Digamma Gun -item.gun_calamity.name=Buzzsaw -item.gun_calamity_ammo.name=.50 BMG Round (LEGACY) -item.gun_calamity_dual.name=Saddle Gun item.gun_carbine.name=Carbine item.gun_chemthrower.name=Chemthrower item.gun_coilgun.name=Coilgun item.gun_congolake.name=Congo Lake item.gun_cryocannon.name=Cryo Cannon -item.gun_cryolator.name=The Cryolator item.gun_cryolator_ammo.name=Cryo Cell -item.gun_dampfmaschine.name=Totally Not a Joke Weapon -item.gun_darter.name=Dart Gun -item.gun_deagle.name=Big Iron -item.gun_defabricator.name=Defabricator -item.gun_defabricator_ammo.name=Defabricator Energy Cell item.gun_detonator.name=Laser Detonator item.gun_double_barrel.name=An Old Classic item.gun_double_barrel_sacred_dragon.name=Sacred Dragon -item.gun_emp.name=EMP Gun -item.gun_emp_ammo.name=Energy Cell -item.gun_euthanasia.name=Euthanasia -item.gun_euthanasia_ammo.name=Syringe -item.gun_fatman.name=M42 Nuclear Catapult "Fat Man" -item.gun_fatman_ammo.name=Mini Nuke (LEGACY) +item.gun_fatman.name=Fat Man item.gun_fireext.name=Fire Extinguisher item.gun_flamer.name=Flamethrower item.gun_flamer_daybreaker.name=Daybreaker item.gun_flamer_topaz.name=Mister Topaz item.gun_flaregun.name=Flare Gun -item.gun_flechette.name=Flechette Rifle item.gun_folly.name=Folly item.gun_g3.name=Assault Rifle -item.gun_glass_cannon.name=The Glass Cannon +item.gun_g3_a3.name=G3A3 +item.gun_g3_infiltrator.name=Infiltrator item.gun_greasegun.name=Grease Gun +item.gun_greasegun_m3.name=M3 item.gun_hangman.name=Hangman item.gun_heavy_revolver.name=Heavy Revolver item.gun_heavy_revolver_lilmac.name=Little Macintosh item.gun_heavy_revolver_protege.name=Protège +item.gun_heavy_revolver_scoped.name=Scoped .44 Magnum item.gun_henry.name=Lever Action Rifle item.gun_henry_lincoln.name=Lincoln's Repeater -item.gun_hk69.name=Grenade Pistol -item.gun_hp.name=HPP Lazerjet -item.gun_hp_ammo.name=Ink Cartridge -item.gun_immolator.name=The Immolator -item.gun_immolator_ammo.name=Immolator Fuel -item.gun_jack.name=Jackhammer -item.gun_jack_ammo.name=Quadruple Shotgun Shell -item.gun_karl.name=Karl item.gun_kit_1.name=Gun Oil item.gun_kit_2.name=Gun Repair Kit -item.gun_ks23.name=Samuel the Big Shotgun -item.gun_lacunae.name=CZ33 Abaddon -item.gun_lacunae_ammo.name=5mm Round (LEGACY) item.gun_lag.name=Comically Long Pistol item.gun_lasrifle.name=Laser Rifle -item.gun_lever_action.name=Mare's Leg (Original) -item.gun_lever_action_ammo.name=12x74 Buckshot (LEGACY) -item.gun_lever_action_dark.name=Mare's Leg (Dark) -item.gun_lever_action_sonata.name=Flipped Mare's Leg -item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r item.gun_liberator.name=Liberator item.gun_light_revolver.name=Break-Action Revolver item.gun_light_revolver_atlas.name=Atlas item.gun_light_revolver_dani.name=Day And Night -item.gun_lunatic_marksman.name=Lunatic Sniper Rifle item.gun_m2.name=Ma Deuce item.gun_maresleg.name=Lever Action Shotgun item.gun_maresleg_akimbo.name=Lever Action Shotguns item.gun_maresleg_broken.name=Broken +item.gun_maresleg_short.name=Mare's Leg item.gun_mas36.name=South Star item.gun_minigun.name=Minigun item.gun_minigun_lacunae.name=Lacunae -item.gun_mirv.name=M42 Nuclear Catapult "Experimental MIRV" -item.gun_mirv_ammo.name=Eightfold MIRV (LEGACY) item.gun_missile_launcher.name=Missile Launcher -item.gun_moist_nugget.name=Mosin-Nagant -item.gun_mp.name=Pacifist's Machine Gun -item.gun_mp40.name=Submachine Gun -item.gun_mp40_ammo.name=Submachine Gun Round (LEGACY) item.gun_pepperbox.name=Pepperbox -item.gun_pm_ammo.name=Small Propellantless Machine Gun Round -item.gun_mymy.name=Nietes -item.gun_osipr.name=Overwatch Standard Issue Pulse Rifle -item.gun_osipr_ammo.name=Dark Energy Pulse Plug -item.gun_osipr_ammo2.name=Combine Ball item.gun_panzerschreck.name=Panzerschreck -item.gun_proto.name=M42 Nuclear Catapult "Proto MIRV" item.gun_quadro.name=Quad Rocket Launcher -item.gun_remington.name=バイデン ブラスト [BIDEN BLAST] -item.gun_revolver.name=Enhanced Revolver -item.gun_revolver_ammo.name=Lead Bullet -item.gun_revolver_blackjack.name=Blackjack Five-Shooter -item.gun_revolver_cursed.name=Cursed Revolver -item.gun_revolver_cursed_ammo.name=Steel Bullet -item.gun_revolver_gold.name=Golden Revolver -item.gun_revolver_gold_ammo.name=Golden Bullet -item.gun_revolver_inverted.name=Flipped Revolver -item.gun_revolver_iron.name=Simple Revolver -item.gun_revolver_iron_ammo.name=Bullet -item.gun_revolver_lead.name=Nuka Revolver -item.gun_revolver_lead_ammo.name=Glass Covered Nuclear Bullet -item.gun_revolver_nightmare.name=Nightmare Revolver (Original) -item.gun_revolver_nightmare2.name=Nightmare Revolver (Dark) -item.gun_revolver_nightmare2_ammo.name=Laser Buckshot -item.gun_revolver_nightmare_ammo.name=Nightmare Bullet -item.gun_revolver_nopip.name=Heavy Revolver -item.gun_revolver_nopip_ammo.name=.44 Magnum Bullet (LEGACY) -item.gun_revolver_pip.name=Lil' Pipsqueak -item.gun_revolver_pip_ammo.name=Tainted Bullet (LEGACY) -item.gun_revolver_red.name=Red Key Revolver -item.gun_revolver_saturnite.name=Saturnite Shooter -item.gun_revolver_schrabidium.name=Schrabidium Revolver -item.gun_revolver_schrabidium_ammo.name=Schrabidium Bullet -item.gun_revolver_silver.name=Lent Gun -item.gun_rpg.name=Carl Gustav Recoilless Rifle -item.gun_rpg_ammo.name=Rocket (LEGACY) -item.gun_sauer.name=Stan Sauer's Shotgun -item.gun_skystinger.name=The One Sky Stinger -item.gun_spark.name=Spark Plug -item.gun_spark_ammo.name=Electromagnetic Cartridge item.gun_spas12.name=SPAS-12 item.gun_stg77.name=StG 77 item.gun_stinger.name=FIM-92 Stinger -item.gun_stinger_ammo.name=Stinger Rocket (LEGACY) -item.gun_super_shotgun.name=Super Shotgun -item.gun_super_shotgun.desc=It's super broken! -item.gun_supershotgun.name=Super Shotgun item.gun_tau.name=Tau Cannon item.gun_tesla_cannon.name=Tesla Cannon -item.gun_thompson.name=Thompson Submachine Gun -item.gun_uac_pistol.name=UAC .45 Pistol -item.gun_uboinik.name=Uboinik -item.gun_uboinik_ammo.name=12x70 Buckshot (LEGACY) item.gun_uzi.name=Uzi +item.gun_uzi_richter.name=Richter item.gun_uzi_akimbo.name=Uzis -item.gun_uzi_ammo.name=.22 LR Round (LEGACY) -item.gun_uzi_saturnite.name=Saturnite Uzi -item.gun_uzi_saturnite_silencer.name=Saturnite Uzi with Silencer -item.gun_uzi_silencer.name=IMI Uzi with Silencer -item.gun_xvl1456.name=XVL1456 Tau Cannon Prototype -item.gun_xvl1456_ammo.name=Depleted Uranium-235 Box -item.gun_zomg.name=ZOMG Cannon item.hand_drill.name=Hand Drill item.hand_drill_desh.name=Desh Hand Drill item.hazmat_boots.name=Hazmat Boots @@ -4812,14 +4719,44 @@ item.watz_pellet_depleted.nqd.name=Enriched Naquadah Watz Pellet (Depleted) item.watz_pellet_depleted.nqr.name=Naquadria Watz Pellet (Depleted) item.watz_pellet_depleted.hen.name=HEN Watz Pellet (Depleted) item.watz_pellet_depleted.schrabidium.name=Schrabidium Watz Pellet (Depleted) +item.wd40.name=VT-40 item.weapon_bat.name=Richard's Default item.weapon_bat_nail.name=The Cliché item.weapon_golf_club.name=Russian Mobster's Club +item.weapon_mod_generic.bigmt_damage.name=Optimized Saturnite Receiver +item.weapon_mod_generic.bigmt_dura.name=High-Durability Saturnite Parts +item.weapon_mod_generic.bronze_damage.name=Optimized Bronze Receiver +item.weapon_mod_generic.bronze_dura.name=High-Durability Bronze Parts +item.weapon_mod_generic.desh_damage.name=Optimized Desh Receiver +item.weapon_mod_generic.desh_dura.name=High-Durability Desh Parts +item.weapon_mod_generic.dura_damage.name=Optimized HSS Receiver +item.weapon_mod_generic.dura_dura.name=High-Durability HSS Parts +item.weapon_mod_generic.ferro_damage.name=Optimized Ferrouranium Receiver +item.weapon_mod_generic.ferro_dura.name=High-Durability Ferrouranium Parts +item.weapon_mod_generic.iron_damage.name=Optimized Iron Receiver +item.weapon_mod_generic.iron_dura.name=High-Durability Iron Parts +item.weapon_mod_generic.steel_damage.name=Optimized Steel Receiver +item.weapon_mod_generic.steel_dura.name=High-Durability Steel Parts +item.weapon_mod_generic.tcalloy_damage.name=Optimized Resistant Alloy Receiver +item.weapon_mod_generic.tcalloy_dura.name=High-Durability Resistant Alloy Parts +item.weapon_mod_generic.wsteel_damage.name=Optimized Weapon Steel Receiver +item.weapon_mod_generic.wsteel_dura.name=High-Durability Weapon Steel Parts +item.weapon_mod_special.bayonet.name=Bayonet +item.weapon_mod_special.choke.name=Choke +item.weapon_mod_special.furniture_black.name=Polymer Furniture (Black) +item.weapon_mod_special.furniture_green.name=Polymer Furniture (Green) +item.weapon_mod_special.greasegun.name=Grease Gun Modernization Kit +item.weapon_mod_special.saw.name=Hacksaw +item.weapon_mod_special.scope.name=Scope +item.weapon_mod_special.silencer.name=Silencer +item.weapon_mod_special.slowdown.name=Gear Train +item.weapon_mod_special.speedloader.name=Speedloader +item.weapon_mod_special.speedup.name=Auxiliary Electric Engine +item.weapon_mod_special.stack_mag.name=Double-Stacked Magazine item.weapon_pipe_lead.name=The Manual Override item.weapon_pipe_rusty.name=The Attitude Adjuster item.weapon_saw.name=Doctor Assisted Homicide item.weaponized_starblaster_cell.name=§cRigged Star Blaster Energy Cell§r -item.wd40.name=VT-40 item.wild_p.name=Wild Pegasus Dry Whiskey item.wings_limp.name=Limp Wings item.wings_murk.name=Murky Wings diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index fff6f6a4b..104e58e1d 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -251,6 +251,7 @@ "weapon.fire.uzi": {"category": "player", "sounds": ["weapon/fire/uzi"]}, "weapon.fire.tesla": {"category": "player", "sounds": ["weapon/fire/tesla"]}, "weapon.fire.aberrator": {"category": "player", "sounds": ["weapon/fire/aberrator"]}, + "weapon.fire.stab": {"category": "player", "sounds": ["weapon/fire/stab1", "weapon/fire/stab2"]}, "weapon.reload.boltClose": {"category": "player", "sounds": ["weapon/reload/boltClose"]}, "weapon.reload.boltOpen": {"category": "player", "sounds": ["weapon/reload/boltOpen"]}, diff --git a/src/main/resources/assets/hbm/textures/items/ammo_secret.p50_1600.png b/src/main/resources/assets/hbm/textures/items/ammo_secret.p50_1600.png index c170d1c4d..d3942256f 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_secret.p50_1600.png and b/src/main/resources/assets/hbm/textures/items/ammo_secret.p50_1600.png differ diff --git a/src/main/resources/assets/hbm/textures/items/cell_empty_alt.png b/src/main/resources/assets/hbm/textures/items/cell_empty_alt.png deleted file mode 100644 index 40a6374a7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/cell_empty_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.bmg50.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.bmg50.png new file mode 100644 index 000000000..6692d0669 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.bmg50.png differ diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.m357.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.m357.png new file mode 100644 index 000000000..1d5d94669 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.m357.png differ diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.m44.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.m44.png new file mode 100644 index 000000000..6af0e9944 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.m44.png differ diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.p22.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.p22.png new file mode 100644 index 000000000..3611d3c4e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.p22.png differ diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.p45.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.p45.png new file mode 100644 index 000000000..0fa99ee1a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.p45.png differ diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.p9.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.p9.png new file mode 100644 index 000000000..492589a08 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.p9.png differ diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.r556.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.r556.png new file mode 100644 index 000000000..7716c4953 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.r556.png differ diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.r762.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.r762.png new file mode 100644 index 000000000..7cfdb0123 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/weapon_mod_caliber.r762.png differ diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_sheet.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_sheet.png index a3b0cc89d..0a9ac0043 100644 Binary files a/src/main/resources/assets/hbm/textures/items/weapon_mod_sheet.png and b/src/main/resources/assets/hbm/textures/items/weapon_mod_sheet.png differ diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_special.stack_mag.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_special.stack_mag.png new file mode 100644 index 000000000..86661cd15 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/weapon_mod_special.stack_mag.png differ