From a79125b94d888ac344750b60b85cbb883eb1119e Mon Sep 17 00:00:00 2001 From: George Paton Date: Mon, 15 Sep 2025 10:57:05 +1000 Subject: [PATCH] generic animation enum selection, still item specific but now a lot easier to refactor to non-item animations --- .../com/hbm/handler/GunConfiguration.java | 18 +- .../java/com/hbm/items/IAnimatedItem.java | 19 +- .../java/com/hbm/items/tool/ItemBoltgun.java | 19 +- .../java/com/hbm/items/tool/ItemChainsaw.java | 13 +- .../com/hbm/items/weapon/ItemCrucible.java | 22 +- .../com/hbm/items/weapon/sedna/GunConfig.java | 40 +- .../hbm/items/weapon/sedna/ItemGunBaseNT.java | 18 +- .../weapon/sedna/factory/GunStateDecider.java | 56 +- .../hbm/items/weapon/sedna/factory/Lego.java | 110 ++-- .../weapon/sedna/factory/Orchestras.java | 496 +++++++++--------- .../weapon/sedna/factory/XFactory10ga.java | 10 +- .../weapon/sedna/factory/XFactory12ga.java | 90 ++-- .../weapon/sedna/factory/XFactory22lr.java | 12 +- .../weapon/sedna/factory/XFactory357.java | 18 +- .../weapon/sedna/factory/XFactory35800.java | 16 +- .../weapon/sedna/factory/XFactory40mm.java | 28 +- .../weapon/sedna/factory/XFactory44.java | 42 +- .../weapon/sedna/factory/XFactory50.java | 28 +- .../weapon/sedna/factory/XFactory556mm.java | 38 +- .../weapon/sedna/factory/XFactory75Bolt.java | 12 +- .../weapon/sedna/factory/XFactory762mm.java | 28 +- .../weapon/sedna/factory/XFactory9mm.java | 34 +- .../sedna/factory/XFactoryAccelerator.java | 72 +-- .../sedna/factory/XFactoryBlackPowder.java | 10 +- .../sedna/factory/XFactoryCatapult.java | 6 +- .../weapon/sedna/factory/XFactoryEnergy.java | 16 +- .../weapon/sedna/factory/XFactoryFlamer.java | 26 +- .../weapon/sedna/factory/XFactoryFolly.java | 10 +- .../weapon/sedna/factory/XFactoryRocket.java | 36 +- .../weapon/sedna/factory/XFactoryTool.java | 36 +- .../weapon/sedna/impl/ItemGunChemthrower.java | 30 +- .../weapon/sedna/mods/WeapnModG3SawedOff.java | 6 +- .../sedna/mods/WeaponModCarbineBayonet.java | 16 +- .../weapon/sedna/mods/WeaponModGreasegun.java | 8 +- .../mods/WeaponModLiberatorSpeedloader.java | 10 +- .../sedna/mods/WeaponModMASBayonet.java | 16 +- .../mods/WeaponModPanzerschreckSawedOff.java | 6 +- .../java/com/hbm/packet/PacketDispatcher.java | 2 +- ...ionPacket.java => HbmAnimationPacket.java} | 52 +- .../com/hbm/render/anim/AnimationEnums.java | 27 + .../com/hbm/render/anim/HbmAnimations.java | 22 +- .../weapon/sedna/ItemRenderCongoLake.java | 26 +- 42 files changed, 808 insertions(+), 792 deletions(-) rename src/main/java/com/hbm/packet/toclient/{GunAnimationPacket.java => HbmAnimationPacket.java} (68%) create mode 100644 src/main/java/com/hbm/render/anim/AnimationEnums.java diff --git a/src/main/java/com/hbm/handler/GunConfiguration.java b/src/main/java/com/hbm/handler/GunConfiguration.java index 9cce19944..f703d47e4 100644 --- a/src/main/java/com/hbm/handler/GunConfiguration.java +++ b/src/main/java/com/hbm/handler/GunConfiguration.java @@ -7,14 +7,14 @@ import java.util.function.Consumer; import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.lib.HbmCollection.EnumGunManufacturer; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.util.ResourceLocation; @Deprecated public class GunConfiguration implements Cloneable { - + /** * alt function restrictions: * alt can not be reloaded (reload type of 0, ammo cap of 0) @@ -35,9 +35,9 @@ public class GunConfiguration implements Cloneable { public int firingMode; //weapon won't fire after weapon breaks (main only) public int durability; - + //animations! - public HashMap animations = new HashMap(); + public HashMap animations = new HashMap(); //lazy-ish loading for animations, required for loading animations from ResourceManager, since that occurs after we've initialised the guns public Consumer loadAnimations; public boolean animationsLoaded = false; @@ -47,7 +47,7 @@ public class GunConfiguration implements Cloneable { public boolean isCentered; //texture overlay when sneaking public ResourceLocation scopeTexture; - + //duration of every animation cycle, used also for how quickly a burst fire rifle can fire public int firingDuration; //sound path to the shooting sound @@ -65,7 +65,7 @@ public class GunConfiguration implements Cloneable { //whether the reload sound should be played at the beginning or at the end of the reload public boolean reloadSoundEnd = true; public String equipSound = ""; - + //how much ammo the clip can hold, 0 if drawn from inventory public int ammoCap; //0 does not allow direct reload, 1 is full clip, 2 is single bullet @@ -76,7 +76,7 @@ public class GunConfiguration implements Cloneable { public boolean allowsInfinity; //whether the ammo count should be displayed public boolean showAmmo = true; - + //for electrically powered weapons: //the Maximum capacity of the gun public long maxCharge; @@ -84,7 +84,7 @@ public class GunConfiguration implements Cloneable { public long chargeRate; //how much energy is discharged per shot public long dischargePerShot; - + public String name = ""; public EnumGunManufacturer manufacturer = EnumGunManufacturer.NONE; public List comment = new ArrayList(); @@ -94,7 +94,7 @@ public class GunConfiguration implements Cloneable { //crosshair public Crosshair crosshair; - + //casing eject behavior public CasingEjector ejector = null; diff --git a/src/main/java/com/hbm/items/IAnimatedItem.java b/src/main/java/com/hbm/items/IAnimatedItem.java index 01de00001..010c377f3 100644 --- a/src/main/java/com/hbm/items/IAnimatedItem.java +++ b/src/main/java/com/hbm/items/IAnimatedItem.java @@ -1,30 +1,25 @@ package com.hbm.items; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.toclient.GunAnimationPacket; +import com.hbm.packet.toclient.HbmAnimationPacket; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.HbmAnimations.AnimType; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; -public interface IAnimatedItem { +public interface IAnimatedItem> { // Fetch the animation for a given type - public BusAnimation getAnimation(AnimType type, ItemStack stack); + public BusAnimation getAnimation(T type, ItemStack stack); - // Run the swing animation - public default void playAnimation(EntityPlayer player) { - playAnimation(player, AnimType.CYCLE); - } + // Runtime erasure means we have to explicitly give the class a second time :( + public Class getEnum(); // Run a specified animation - public default void playAnimation(EntityPlayer player, AnimType type) { + public default void playAnimation(EntityPlayer player, T type) { if(player instanceof EntityPlayerMP) { - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(type.ordinal(), 0, 0), (EntityPlayerMP) player); + PacketDispatcher.wrapper.sendTo(new HbmAnimationPacket(type.ordinal(), 0, 0), (EntityPlayerMP) player); } } diff --git a/src/main/java/com/hbm/items/tool/ItemBoltgun.java b/src/main/java/com/hbm/items/tool/ItemBoltgun.java index 94eea2823..6524f41ea 100644 --- a/src/main/java/com/hbm/items/tool/ItemBoltgun.java +++ b/src/main/java/com/hbm/items/tool/ItemBoltgun.java @@ -7,16 +7,14 @@ import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.render.anim.AnimationEnums.ToolAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.util.EntityDamageUtil; import api.hbm.block.IToolable; import api.hbm.block.IToolable.ToolType; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -27,7 +25,7 @@ import net.minecraft.util.DamageSource; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class ItemBoltgun extends Item implements IAnimatedItem { +public class ItemBoltgun extends Item implements IAnimatedItem { public ItemBoltgun() { this.setMaxStackSize(1); @@ -74,7 +72,7 @@ public class ItemBoltgun extends Item implements IAnimatedItem { data.setByte("count", (byte)1); PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, entity.posX, entity.posY + entity.height / 2 - entity.yOffset, entity.posZ), new TargetPoint(world.provider.dimensionId, entity.posX, entity.posY, entity.posZ, 50)); - playAnimation(player); + playAnimation(player, ToolAnimation.SWING); } return true; @@ -107,7 +105,7 @@ public class ItemBoltgun extends Item implements IAnimatedItem { data.setByte("count", (byte)1); PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, x + fX + dir.offsetX * off, y + fY + dir.offsetY * off, z + fZ + dir.offsetZ * off), new TargetPoint(world.provider.dimensionId, x, y, z, 50)); - playAnimation(player); + playAnimation(player, ToolAnimation.SWING); } return false; @@ -117,11 +115,16 @@ public class ItemBoltgun extends Item implements IAnimatedItem { } @Override - @SideOnly(Side.CLIENT) - public BusAnimation getAnimation(AnimType type, ItemStack stack) { + public Class getEnum() { + return ToolAnimation.class; + } + + @Override + public BusAnimation getAnimation(ToolAnimation type, ItemStack stack) { return new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() .addPos(1, 0, 1, 50) .addPos(0, 0, 1, 100)); } + } diff --git a/src/main/java/com/hbm/items/tool/ItemChainsaw.java b/src/main/java/com/hbm/items/tool/ItemChainsaw.java index c80fba942..c09acca18 100644 --- a/src/main/java/com/hbm/items/tool/ItemChainsaw.java +++ b/src/main/java/com/hbm/items/tool/ItemChainsaw.java @@ -3,17 +3,17 @@ package com.hbm.items.tool; import com.hbm.inventory.fluid.FluidType; import com.hbm.items.IAnimatedItem; import com.hbm.items.IHeldSoundProvider; +import com.hbm.render.anim.AnimationEnums.ToolAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.HbmAnimations; -import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; -public class ItemChainsaw extends ItemToolAbilityFueled implements IHeldSoundProvider, IAnimatedItem { +public class ItemChainsaw extends ItemToolAbilityFueled implements IHeldSoundProvider, IAnimatedItem { public ItemChainsaw(float damage, double movement, ToolMaterial material, EnumToolType type, int maxFuel, int consumption, int fillRate, FluidType... acceptedFuels) { super(damage, movement, material, type, maxFuel, consumption, fillRate, acceptedFuels); @@ -28,13 +28,13 @@ public class ItemChainsaw extends ItemToolAbilityFueled implements IHeldSoundPro if(stack.getItemDamage() >= stack.getMaxDamage()) return false; - playAnimation((EntityPlayer) entityLiving); + playAnimation((EntityPlayer) entityLiving, ToolAnimation.SWING); return false; } @Override - public BusAnimation getAnimation(AnimType type, ItemStack stack) { + public BusAnimation getAnimation(ToolAnimation type, ItemStack stack) { int forward = 150; int sideways = 100; int retire = 200; @@ -70,4 +70,9 @@ public class ItemChainsaw extends ItemToolAbilityFueled implements IHeldSoundPro .addPos(0, 0, 0, retire)); } } + + @Override + public Class getEnum() { + return ToolAnimation.class; + } } diff --git a/src/main/java/com/hbm/items/weapon/ItemCrucible.java b/src/main/java/com/hbm/items/weapon/ItemCrucible.java index e712e1faf..9007c7ab4 100644 --- a/src/main/java/com/hbm/items/weapon/ItemCrucible.java +++ b/src/main/java/com/hbm/items/weapon/ItemCrucible.java @@ -8,14 +8,12 @@ import com.google.common.collect.Multimap; import com.hbm.handler.threading.PacketThreading; import com.hbm.items.IAnimatedItem; import com.hbm.items.IEquipReceiver; -import com.hbm.items.ModItems; import com.hbm.items.tool.ItemSwordAbility; import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.render.anim.AnimationEnums.ToolAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.HbmAnimations; -import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.render.anim.HbmAnimations.Animation; import com.hbm.util.ShadyUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -38,7 +36,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; -public class ItemCrucible extends ItemSwordAbility implements IEquipReceiver, IAnimatedItem { +public class ItemCrucible extends ItemSwordAbility implements IEquipReceiver, IAnimatedItem { public ItemCrucible(float damage, double movement, ToolMaterial material) { super(damage, movement, material); @@ -55,7 +53,7 @@ public class ItemCrucible extends ItemSwordAbility implements IEquipReceiver, IA World world = player.worldObj; world.playSoundEffect(player.posX, player.posY, player.posZ, "hbm:weapon.cDeploy", 1.0F, 1.0F); - playAnimation(player, AnimType.EQUIP); + playAnimation(player, ToolAnimation.EQUIP); } } @@ -72,7 +70,7 @@ public class ItemCrucible extends ItemSwordAbility implements IEquipReceiver, IA if(stack.getItemDamage() >= stack.getMaxDamage()) return false; - playAnimation((EntityPlayerMP)entityLiving, AnimType.CYCLE); + playAnimation((EntityPlayerMP)entityLiving, ToolAnimation.SWING); return false; } @@ -139,9 +137,9 @@ public class ItemCrucible extends ItemSwordAbility implements IEquipReceiver, IA } @Override - public BusAnimation getAnimation(AnimType type, ItemStack stack) { + public BusAnimation getAnimation(ToolAnimation type, ItemStack stack) { /* crucible deploy */ - if(type == AnimType.EQUIP) { + if(type == ToolAnimation.EQUIP) { return new BusAnimation() .addBus("GUARD_ROT", new BusAnimationSequence() @@ -151,7 +149,7 @@ public class ItemCrucible extends ItemSwordAbility implements IEquipReceiver, IA } /* crucible swing */ - if(type == AnimType.CYCLE) { + if(type == ToolAnimation.SWING) { if(HbmAnimations.getRelevantTransformation("SWING_ROT")[0] == 0) { @@ -182,4 +180,10 @@ public class ItemCrucible extends ItemSwordAbility implements IEquipReceiver, IA private void playSwing(float pitchProbablyIDontFuckingCare) { Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:weapon.cSwing"), pitchProbablyIDontFuckingCare)); } + + @Override + public Class getEnum() { + return ToolAnimation.class; + } + } diff --git a/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java b/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java index 65db47377..5c8602153 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java +++ b/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java @@ -11,8 +11,8 @@ import com.hbm.items.weapon.sedna.factory.GunStateDecider; import com.hbm.items.weapon.sedna.factory.Lego; import com.hbm.items.weapon.sedna.hud.IHUDComponent; import com.hbm.items.weapon.sedna.mods.WeaponModManager; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; @@ -20,13 +20,13 @@ import net.minecraft.util.ResourceLocation; /** * Despite how complicated the GunConfig looks, it actually only exists to hold together a bunch of fields. Everything else is infrastructure for getting and setting. * The gun config determines general gun specific stats like durability, crosshair, animations, receivers, click handling and the decider. - * + * * @author hbm * */ public class GunConfig { - public List smokeNodes = new ArrayList(); - + public List smokeNodes = new ArrayList<>(); + public static final String O_RECEIVERS = "O_RECEIVERS"; public static final String F_DURABILITY = "F_DURABILITY"; public static final String I_DRAWDURATION = "I_DRAWDURATION"; @@ -51,9 +51,9 @@ public class GunConfig { public static final String CON_DECIDER = "CON_DECIDER"; public static final String FUN_ANIMNATIONS = "FUN_ANIMNATIONS"; public static final String O_HUDCOMPONENTS = "O_HUDCOMPONENTS"; - + /* FIELDS */ - + public int index; /** List of receivers used by the gun, primary and secondary are usually indices 0 and 1 respectively, if applicable */ protected Receiver[] receivers_DNA; @@ -84,9 +84,9 @@ public class GunConfig { /** The engine for the state machine that determines the gun's overall behavior */ protected BiConsumer decider_DNA; /** Lambda that returns the relevant animation for the given params */ - protected BiFunction animations_DNA; + protected BiFunction animations_DNA; protected IHUDComponent[] hudComponents_DNA; - + /* GETTERS */ public Receiver[] getReceivers(ItemStack stack) { return WeaponModManager.eval(receivers_DNA, stack, O_RECEIVERS, this, this.index); } @@ -112,14 +112,14 @@ public class GunConfig { public BiConsumer getReleaseSecondary(ItemStack stack) { return WeaponModManager.eval(this.onReleaseSecondary_DNA, stack, CON_ONRELEASESECONDARY, this, this.index); } public BiConsumer getReleaseTertiary(ItemStack stack) { return WeaponModManager.eval(this.onReleaseTertiary_DNA, stack, CON_ONRELEASETERTIARY, this, this.index); } public BiConsumer getReleaseReload(ItemStack stack) { return WeaponModManager.eval(this.onReleaseReload_DNA, stack, CON_ONRELEASERELOAD, this, this.index); } - + public BiConsumer getDecider(ItemStack stack) { return WeaponModManager.eval(this.decider_DNA, stack, CON_DECIDER, this, this.index); } - - public BiFunction getAnims(ItemStack stack) { return WeaponModManager.eval(this.animations_DNA, stack, FUN_ANIMNATIONS, this, this.index); } - public IHUDComponent[] getHUDComponents(ItemStack stack) { return WeaponModManager.eval(this.hudComponents_DNA, stack, O_HUDCOMPONENTS, this, this.index); } - + + public BiFunction getAnims(ItemStack stack) { return WeaponModManager.eval(this.animations_DNA, stack, FUN_ANIMNATIONS, this, this.index); } + public IHUDComponent[] getHUDComponents(ItemStack stack) { return WeaponModManager.eval(this.hudComponents_DNA, stack, O_HUDCOMPONENTS, this, this.index); } + /* SETTERS */ - + public GunConfig rec(Receiver... receivers) { this.receivers_DNA = receivers; for(Receiver r : receivers_DNA) r.parent = this; return this; } public GunConfig dura(float dura) { this.durability_DNA = dura; return this; } public GunConfig draw(int draw) { this.drawDuration_DNA = draw; return this; } @@ -134,7 +134,7 @@ public class GunConfig { public GunConfig smoke(BiConsumer smoke) { this.smokeHandler_DNA = smoke; return this; } public GunConfig orchestra(BiConsumer orchestra) { this.orchestra_DNA = orchestra; return this; } - + //press public GunConfig pp(BiConsumer lambda) { this.onPressPrimary_DNA = lambda; return this; } public GunConfig ps(BiConsumer lambda) { this.onPressSecondary_DNA = lambda; return this; } @@ -146,14 +146,14 @@ public class GunConfig { public GunConfig rs(BiConsumer lambda) { this.onReleaseSecondary_DNA = lambda; return this; } public GunConfig rt(BiConsumer lambda) { this.onReleaseTertiary_DNA = lambda; return this; } public GunConfig rr(BiConsumer lambda) { this.onReleaseReload_DNA = lambda; return this; } - + //decider public GunConfig decider(BiConsumer lambda) { this.decider_DNA = lambda; return this; } - + //client - public GunConfig anim(BiFunction lambda) { this.animations_DNA = lambda; return this; } - public GunConfig hud(IHUDComponent... components) { this.hudComponents_DNA = components; return this; } - + public GunConfig anim(BiFunction lambda) { this.animations_DNA = lambda; return this; } + public GunConfig hud(IHUDComponent... components) { this.hudComponents_DNA = components; return this; } + /** Standard package for keybind handling and decider using LEGO prefabs: Primary fire on LMB, * reload on R, aiming on MMB and the standard decider which includes jamming and auto fire handling*/ public GunConfig setupStandardConfiguration() { 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 2506d5d84..54bc6b758 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java +++ b/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java @@ -24,8 +24,8 @@ import com.hbm.items.weapon.sedna.mods.WeaponModManager; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.toclient.GunAnimationPacket; -import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.packet.toclient.HbmAnimationPacket; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.util.RenderScreenOverlay; import com.hbm.sound.AudioWrapper; import com.hbm.util.BobMathUtil; @@ -247,8 +247,8 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I @Override public void onEquip(EntityPlayer player, ItemStack stack) { for(int i = 0; i < this.configs_DNA.length; i++) { - if(this.getLastAnim(stack, i) == AnimType.EQUIP && this.getAnimTimer(stack, i) < 5) continue; - playAnimation(player, stack, AnimType.EQUIP, i); + if(this.getLastAnim(stack, i) == GunAnimation.EQUIP && this.getAnimTimer(stack, i) < 5) continue; + playAnimation(player, stack, GunAnimation.EQUIP, i); this.setPrimary(stack, i, false); this.setSecondary(stack, i, false); this.setTertiary(stack, i, false); @@ -256,9 +256,9 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I } } - public static void playAnimation(EntityPlayer player, ItemStack stack, AnimType type, int index) { + public static void playAnimation(EntityPlayer player, ItemStack stack, GunAnimation type, int index) { if(player instanceof EntityPlayerMP) { - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(type.ordinal(), 0, index), (EntityPlayerMP) player); + PacketDispatcher.wrapper.sendTo(new HbmAnimationPacket(type.ordinal(), 0, index), (EntityPlayerMP) player); setLastAnim(stack, index, type); setAnimTimer(stack, index, 0); } @@ -327,7 +327,7 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I this.setState(stack, i, GunState.DRAWING); this.setTimer(stack, i, configs[i].getDrawDuration(stack)); } - this.setLastAnim(stack, i, AnimType.CYCLE); //prevents new guns from initializing with DRAWING, 0 + this.setLastAnim(stack, i, GunAnimation.CYCLE); //prevents new guns from initializing with DRAWING, 0 } this.setIsAiming(stack, false); this.setReloadCancel(stack, false); @@ -371,8 +371,8 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I public static boolean getIsLockedOn(ItemStack stack) { return getValueBool(stack, KEY_LOCKEDON); } public static void setIsLockedOn(ItemStack stack, boolean value) { setValueBool(stack, KEY_LOCKEDON, value); } // ANIM TRACKING // - public static AnimType getLastAnim(ItemStack stack, int index) { return EnumUtil.grabEnumSafely(AnimType.class, getValueInt(stack, KEY_LASTANIM + index)); } - public static void setLastAnim(ItemStack stack, int index, AnimType value) { setValueInt(stack, KEY_LASTANIM + index, value.ordinal()); } + public static GunAnimation getLastAnim(ItemStack stack, int index) { return EnumUtil.grabEnumSafely(GunAnimation.class, getValueInt(stack, KEY_LASTANIM + index)); } + public static void setLastAnim(ItemStack stack, int index, GunAnimation value) { setValueInt(stack, KEY_LASTANIM + index, value.ordinal()); } public static int getAnimTimer(ItemStack stack, int index) { return getValueInt(stack, KEY_ANIMTIMER + index); } public static void setAnimTimer(ItemStack stack, int index, int value) { setValueInt(stack, KEY_ANIMTIMER + index, value); } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunStateDecider.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunStateDecider.java index 75992ca7e..d30f91c85 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunStateDecider.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunStateDecider.java @@ -7,17 +7,17 @@ import com.hbm.items.weapon.sedna.GunConfig; import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.items.weapon.sedna.Receiver; import com.hbm.items.weapon.sedna.mags.IMagazine; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState; import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; -import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; public class GunStateDecider { - - /** + + /** * The meat and bones of the gun system's state machine. * This standard decider can handle guns with an automatic primary receiver, as well as one receiver's reloading state. * It supports draw delays as well as semi and auto fire @@ -30,83 +30,83 @@ public class GunStateDecider { deciderStandardReload(stack, ctx, lastState, 0, index); deciderAutoRefire(stack, ctx, lastState, 0, index, () -> { return ItemGunBaseNT.getPrimary(stack, index) && ItemGunBaseNT.getMode(stack, ctx.configIndex) == 0; }); }; - + /** Transitions the gun from DRAWING to IDLE */ public static void deciderStandardFinishDraw(ItemStack stack, GunState lastState, int index) { - + //transition to idle if(lastState == GunState.DRAWING) { ItemGunBaseNT.setState(stack, index, GunState.IDLE); ItemGunBaseNT.setTimer(stack, index, 0); } } - + /** Transitions the gun from DRAWING to IDLE */ public static void deciderStandardClearJam(ItemStack stack, GunState lastState, int index) { - + //transition to idle if(lastState == GunState.JAMMED) { ItemGunBaseNT.setState(stack, index, GunState.IDLE); ItemGunBaseNT.setTimer(stack, index, 0); } } - + /** Triggers a reload action on the first receiver. If the mag is not full and reloading is still possible, set to RELOADING, otherwise IDLE */ public static void deciderStandardReload(ItemStack stack, LambdaContext ctx, GunState lastState, int recIndex, int gunIndex) { - + if(lastState == GunState.RELOADING) { - + EntityLivingBase entity = ctx.entity; EntityPlayer player = ctx.getPlayer(); GunConfig cfg = ctx.config; Receiver rec = cfg.getReceivers(stack)[recIndex]; IMagazine mag = rec.getMagazine(stack); - + mag.reloadAction(stack, ctx.inventory); boolean cancel = ItemGunBaseNT.getReloadCancel(stack); - + //if after reloading the gun can still reload, assume a tube mag and resume reloading if(!cancel && mag.canReload(stack, ctx.inventory)) { ItemGunBaseNT.setState(stack, gunIndex, GunState.RELOADING); ItemGunBaseNT.setTimer(stack, gunIndex, rec.getReloadCycleDuration(stack)); - ItemGunBaseNT.playAnimation(player, stack, AnimType.RELOAD_CYCLE, gunIndex); + ItemGunBaseNT.playAnimation(player, stack, GunAnimation.RELOAD_CYCLE, gunIndex); //if no more reloading can be done, go idle } else { - + if(getStandardJamChance(stack, cfg, gunIndex) > entity.getRNG().nextFloat()) { ItemGunBaseNT.setState(stack, gunIndex, GunState.JAMMED); ItemGunBaseNT.setTimer(stack, gunIndex, rec.getJamDuration(stack)); - ItemGunBaseNT.playAnimation(player, stack, AnimType.JAMMED, gunIndex); + ItemGunBaseNT.playAnimation(player, stack, GunAnimation.JAMMED, gunIndex); } else { ItemGunBaseNT.setState(stack, gunIndex, GunState.DRAWING); int duration = rec.getReloadEndDuration(stack) + (mag.getAmountBeforeReload(stack) <= 0 ? rec.getReloadCockOnEmptyPost(stack) : 0); ItemGunBaseNT.setTimer(stack, gunIndex, duration); - ItemGunBaseNT.playAnimation(player, stack, AnimType.RELOAD_END, gunIndex); + ItemGunBaseNT.playAnimation(player, stack, GunAnimation.RELOAD_END, gunIndex); } - + ItemGunBaseNT.setReloadCancel(stack, false); } - + mag.setAmountAfterReload(stack, mag.getAmount(stack, ctx.inventory)); } } - + public static float getStandardJamChance(ItemStack stack, GunConfig config, int index) { float percent = (float) ItemGunBaseNT.getWear(stack, index) / config.getDurability(stack); if(percent < 0.66F) return 0F; return Math.min((percent - 0.66F) * 4F, 1F); } - + /** Triggers a re-fire of the primary if the fire delay has expired, the left mouse button is down and re-firing is enabled, otherwise switches to IDLE */ public static void deciderAutoRefire(ItemStack stack, LambdaContext ctx, GunState lastState, int recIndex, int gunIndex, BooleanSupplier refireCondition) { - + if(lastState == GunState.COOLDOWN) { EntityLivingBase entity = ctx.entity; EntityPlayer player = ctx.getPlayer(); GunConfig cfg = ctx.config; Receiver rec = cfg.getReceivers(stack)[recIndex]; - + //if the gun supports re-fire (i.e. if it's an auto) if(rec.getRefireOnHold(stack) && refireCondition.getAsBoolean()) { //if there's a bullet loaded, fire again @@ -114,9 +114,9 @@ public class GunStateDecider { rec.getOnFire(stack).accept(stack, ctx); ItemGunBaseNT.setState(stack, gunIndex, GunState.COOLDOWN); ItemGunBaseNT.setTimer(stack, gunIndex, rec.getDelayAfterFire(stack)); - + if(rec.getFireSound(stack) != null) entity.worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, rec.getFireSound(stack), rec.getFireVolume(stack), rec.getFirePitch(stack)); - + int remaining = rec.getRoundsPerCycle(stack) - 1; for(int i = 0; i < remaining; i++) if(rec.getCanFire(stack).apply(stack, ctx)) rec.getOnFire(stack).accept(stack, ctx); //if not, check if dry firing is allowed for refires @@ -124,7 +124,7 @@ public class GunStateDecider { //if refire after dry is allowed, switch to COOLDOWN which will trigger a refire, otherwise switch to DRAWING ItemGunBaseNT.setState(stack, gunIndex, rec.getRefireAfterDry(stack) ? GunState.COOLDOWN : GunState.DRAWING); ItemGunBaseNT.setTimer(stack, gunIndex, rec.getDelayAfterDryFire(stack)); - ItemGunBaseNT.playAnimation(player, stack, AnimType.CYCLE_DRY, gunIndex); + ItemGunBaseNT.playAnimation(player, stack, GunAnimation.CYCLE_DRY, gunIndex); //if not, revert to idle } else { ItemGunBaseNT.setState(stack, gunIndex, GunState.IDLE); @@ -132,7 +132,7 @@ public class GunStateDecider { } //if not, go idle } else { - + //reload on empty, only for non-refiring guns if(rec.getReloadOnEmpty(stack) && rec.getMagazine(stack).getAmount(stack, ctx.inventory) <= 0) { ItemGunBaseNT.setIsAiming(stack, false); @@ -143,12 +143,12 @@ public class GunStateDecider { mag.setAmountBeforeReload(stack, loaded); ItemGunBaseNT.setState(stack, ctx.configIndex, GunState.RELOADING); ItemGunBaseNT.setTimer(stack, ctx.configIndex, rec.getReloadBeginDuration(stack) + (loaded <= 0 ? rec.getReloadCockOnEmptyPre(stack) : 0)); - ItemGunBaseNT.playAnimation(player, stack, AnimType.RELOAD, ctx.configIndex); + ItemGunBaseNT.playAnimation(player, stack, GunAnimation.RELOAD, ctx.configIndex); } else { ItemGunBaseNT.setState(stack, gunIndex, GunState.IDLE); ItemGunBaseNT.setTimer(stack, gunIndex, 0); } - + } else { ItemGunBaseNT.setState(stack, gunIndex, GunState.IDLE); ItemGunBaseNT.setTimer(stack, gunIndex, 0); 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 9289be9f6..094274b53 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 @@ -25,9 +25,9 @@ import com.hbm.items.weapon.sedna.Receiver; import com.hbm.items.weapon.sedna.mags.IMagazine; import com.hbm.main.MainRegistry; import com.hbm.particle.helper.BlackPowderCreator; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -38,38 +38,38 @@ import net.minecraftforge.common.util.ForgeDirection; /** * "LEGO" - i.e. standardized building blocks which can be used to set up gun configs easily. - * + * * small update, 24/11/03: this turned into fucking spaghetti. fuuuuuuuck. - * + * * @author hbm */ @NotableComments public class Lego { - + public static final Random ANIM_RAND = new Random(); - + /** * If IDLE and the mag of receiver 0 can be loaded, set state to RELOADING. Used by keybinds. */ public static BiConsumer LAMBDA_STANDARD_RELOAD = (stack, ctx) -> { - + EntityPlayer player = ctx.getPlayer(); Receiver rec = ctx.config.getReceivers(stack)[0]; GunState state = ItemGunBaseNT.getState(stack, ctx.configIndex); - + if(state == GunState.IDLE) { - + ItemGunBaseNT.setIsAiming(stack, false); IMagazine mag = rec.getMagazine(stack); - + if(mag.canReload(stack, ctx.inventory)) { int loaded = mag.getAmount(stack, ctx.inventory); mag.setAmountBeforeReload(stack, loaded); ItemGunBaseNT.setState(stack, ctx.configIndex, GunState.RELOADING); ItemGunBaseNT.setTimer(stack, ctx.configIndex, rec.getReloadBeginDuration(stack) + (loaded <= 0 ? rec.getReloadCockOnEmptyPre(stack) : 0)); - ItemGunBaseNT.playAnimation(player, stack, AnimType.RELOAD, ctx.configIndex); + ItemGunBaseNT.playAnimation(player, stack, GunAnimation.RELOAD, ctx.configIndex); if(ctx.config.getReloadChangesType(stack)) mag.initNewType(stack, ctx.inventory); } else { - ItemGunBaseNT.playAnimation(player, stack, AnimType.INSPECT, ctx.configIndex); + ItemGunBaseNT.playAnimation(player, stack, GunAnimation.INSPECT, ctx.configIndex); if(!ctx.config.getInspectCancel(stack)) { ItemGunBaseNT.setState(stack, ctx.configIndex, GunState.DRAWING); ItemGunBaseNT.setTimer(stack, ctx.configIndex, ctx.config.getInspectDuration(stack)); @@ -77,10 +77,10 @@ public class Lego { } } }; - + /** If IDLE and ammo is loaded, fire and set to JUST_FIRED. */ public static BiConsumer LAMBDA_STANDARD_CLICK_PRIMARY = (stack, ctx) -> { clickReceiver(stack, ctx, 0); }; - + public static void clickReceiver(ItemStack stack, LambdaContext ctx, int receiver) { EntityLivingBase entity = ctx.entity; @@ -88,42 +88,42 @@ public class Lego { Receiver rec = ctx.config.getReceivers(stack)[receiver]; int index = ctx.configIndex; GunState state = ItemGunBaseNT.getState(stack, index); - + if(state == GunState.IDLE) { - + if(rec.getCanFire(stack).apply(stack, ctx)) { rec.getOnFire(stack).accept(stack, ctx); - + if(rec.getFireSound(stack) != null) entity.worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, rec.getFireSound(stack), rec.getFireVolume(stack), rec.getFirePitch(stack)); - + int remaining = rec.getRoundsPerCycle(stack) - 1; for(int i = 0; i < remaining; i++) if(rec.getCanFire(stack).apply(stack, ctx)) rec.getOnFire(stack).accept(stack, ctx); - + ItemGunBaseNT.setState(stack, index, GunState.COOLDOWN); ItemGunBaseNT.setTimer(stack, index, rec.getDelayAfterFire(stack)); } else { - + if(rec.getDoesDryFire(stack)) { - ItemGunBaseNT.playAnimation(player, stack, AnimType.CYCLE_DRY, index); + ItemGunBaseNT.playAnimation(player, stack, GunAnimation.CYCLE_DRY, index); ItemGunBaseNT.setState(stack, index, rec.getRefireAfterDry(stack) ? GunState.COOLDOWN : GunState.DRAWING); ItemGunBaseNT.setTimer(stack, index, rec.getDelayAfterDryFire(stack)); } } } - + if(state == GunState.RELOADING) { ItemGunBaseNT.setReloadCancel(stack, true); } } - + /** If IDLE, switch mode between 0 and 1. */ public static BiConsumer LAMBDA_STANDARD_CLICK_SECONDARY = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; int index = ctx.configIndex; GunState state = ItemGunBaseNT.getState(stack, index); - + if(state == GunState.IDLE) { int mode = ItemGunBaseNT.getMode(stack, 0); ItemGunBaseNT.setMode(stack, index, 1 - mode); @@ -133,12 +133,12 @@ public class Lego { entity.worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, "hbm:weapon.switchmode2", 1F, 1F); } }; - + /** Default smoke. */ public static BiConsumer LAMBDA_STANDARD_SMOKE = (stack, ctx) -> { handleStandardSmoke(ctx.entity, stack, 2000, 0.025D, 1.15D, ctx.configIndex); }; - + public static void handleStandardSmoke(EntityLivingBase entity, ItemStack stack, int smokeDuration, double alphaDecay, double widthGrowth, int index) { ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); long lastShot = gun.lastShot[index]; @@ -146,14 +146,14 @@ public class Lego { boolean smoking = lastShot + smokeDuration > System.currentTimeMillis(); if(!smoking && !smokeNodes.isEmpty()) smokeNodes.clear(); - + if(smoking) { Vec3 prev = Vec3.createVectorHelper(-entity.motionX, -entity.motionY, -entity.motionZ); prev.rotateAroundY((float) (entity.rotationYaw * Math.PI / 180D)); double accel = 15D; double side = (entity.rotationYaw - entity.prevRotationYawHead) * 0.1D; double waggle = 0.025D; - + for(SmokeNode node : smokeNodes) { node.forward += -prev.zCoord * accel + entity.worldObj.rand.nextGaussian() * waggle; node.lift += prev.yCoord + 1.5D; @@ -161,50 +161,50 @@ public class Lego { if(node.alpha > 0) node.alpha -= alphaDecay; node.width *= widthGrowth; } - + double alpha = (System.currentTimeMillis() - lastShot) / (double) smokeDuration; alpha = (1 - alpha) * 0.5D; - + if(gun.getState(stack, index) == GunState.RELOADING || smokeNodes.size() == 0) alpha = 0; smokeNodes.add(new SmokeNode(alpha)); } } - + /** Toggles isAiming. Used by keybinds. */ public static BiConsumer LAMBDA_TOGGLE_AIM = (stack, ctx) -> { ItemGunBaseNT.setIsAiming(stack, !ItemGunBaseNT.getIsAiming(stack)); }; /** Returns true if the mag has ammo in it. Used by keybind functions on whether to fire, and deciders on whether to trigger a refire. */ public static BiFunction LAMBDA_STANDARD_CAN_FIRE = (stack, ctx) -> { return ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) > 0; }; - + /** Returns true if the mag has ammo in it, and the gun is in the locked on state */ public static BiFunction LAMBDA_LOCKON_CAN_FIRE = (stack, ctx) -> { return ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) > 0 && ItemGunBaseNT.getIsLockedOn(stack); }; - - - + + + /** JUMPER - bypasses mag testing and just allows constant fire */ public static BiFunction LAMBDA_DEBUG_CAN_FIRE = (stack, ctx) -> { return true; }; /** Spawns an EntityBulletBaseMK4 with the loaded bulletcfg */ public static BiConsumer LAMBDA_STANDARD_FIRE = (stack, ctx) -> { - doStandardFire(stack, ctx, AnimType.CYCLE, true); + doStandardFire(stack, ctx, GunAnimation.CYCLE, true); }; /** Spawns an EntityBulletBaseMK4 with the loaded bulletcfg, ignores wear */ public static BiConsumer LAMBDA_NOWEAR_FIRE = (stack, ctx) -> { - doStandardFire(stack, ctx, AnimType.CYCLE, false); + doStandardFire(stack, ctx, GunAnimation.CYCLE, false); }; /** Spawns an EntityBulletBaseMK4 with the loaded bulletcfg, then resets lockon progress */ public static BiConsumer LAMBDA_LOCKON_FIRE = (stack, ctx) -> { - doStandardFire(stack, ctx, AnimType.CYCLE, true); + doStandardFire(stack, ctx, GunAnimation.CYCLE, true); ItemGunBaseNT.setIsLockedOn(stack, false); }; - - public static void doStandardFire(ItemStack stack, LambdaContext ctx, AnimType anim, boolean calcWear) { + + public static void doStandardFire(ItemStack stack, LambdaContext ctx, GunAnimation anim, boolean calcWear) { EntityLivingBase entity = ctx.entity; EntityPlayer player = ctx.getPlayer(); int index = ctx.configIndex; if(anim != null) ItemGunBaseNT.playAnimation(player, stack, anim, ctx.configIndex); - + boolean aim = ItemGunBaseNT.getIsAiming(stack); Receiver primary = ctx.config.getReceivers(stack)[0]; IMagazine mag = primary.getMagazine(stack); @@ -214,19 +214,19 @@ public class Lego { double forwardOffset = offset.xCoord; double heightOffset = offset.yCoord; double sideOffset = offset.zCoord; - + /*forwardOffset = 0.75; heightOffset = -0.125; sideOffset = -0.25D;*/ - + int projectiles = config.projectilesMin; if(config.projectilesMax > config.projectilesMin) projectiles += entity.getRNG().nextInt(config.projectilesMax - config.projectilesMin + 1); projectiles = (int) (projectiles * primary.getSplitProjectiles(stack)); - + for(int i = 0; i < projectiles; i++) { float damage = calcDamage(ctx, stack, primary, calcWear, index); float spread = calcSpread(ctx, stack, primary, config, calcWear, index, aim); - + if(config.pType == ProjectileType.BULLET) { EntityBulletBaseMK4 mk4 = new EntityBulletBaseMK4(entity, config, damage, spread, sideOffset, heightOffset, forwardOffset); if(ItemGunBaseNT.getIsLockedOn(stack)) mk4.lockonTarget = entity.worldObj.getEntityByID(ItemGunBaseNT.getLockonTarget(stack)); @@ -242,18 +242,18 @@ public class Lego { entity.worldObj.spawnEntityInWorld(mk4); } } - + if(player != null) player.addStat(MainRegistry.statBullets, 1); mag.useUpAmmo(stack, ctx.inventory, 1); if(calcWear) ItemGunBaseNT.setWear(stack, index, Math.min(ItemGunBaseNT.getWear(stack, index) + config.wear, ctx.config.getDurability(stack))); } - + public static float getStandardWearSpread(ItemStack stack, GunConfig config, int index) { float percent = (float) ItemGunBaseNT.getWear(stack, index) / config.getDurability(stack); if(percent < 0.5F) return 0F; return (percent - 0.5F) * 2F; } - + /** Returns the standard multiplier for damage based on wear */ public static float getStandardWearDamage(ItemStack stack, GunConfig config, int index) { float percent = (float) ItemGunBaseNT.getWear(stack, index) / config.getDurability(stack); @@ -265,7 +265,7 @@ public class Lego { public static float calcDamage(LambdaContext ctx, ItemStack stack, Receiver primary, boolean calcWear, int index) { return primary.getBaseDamage(stack) * (calcWear ? getStandardWearDamage(stack, ctx.config, index) : 1); } - + public static float calcSpread(LambdaContext ctx, ItemStack stack, Receiver primary, BulletConfig config, boolean calcWear, int index, boolean aim) { // the gun's innate spread, SMGs will have poor accuracy no matter what float spreadInnate = primary.getInnateSpread(stack); @@ -275,10 +275,10 @@ public class Lego { float spreadHipfire = aim ? 0F : primary.getHipfireSpread(stack); // extra spread caused by weapon durability, [0;0.125] by default float spreadWear = !calcWear ? 0F : (getStandardWearSpread(stack, ctx.config, index) * primary.getDurabilitySpread(stack)); - + return spreadInnate + spreadAmmo + spreadHipfire + spreadWear; } - + public static void standardExplode(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, float range) { standardExplode(bullet, mop, range, 1F); } public static void standardExplode(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, float range, float damageMod) { ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, range, bullet.getThrower()); @@ -301,9 +301,9 @@ public class Lego { 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) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_DEBUG_ANIMS = (stack, type) -> { switch(type) { case CYCLE: return new BusAnimation() .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(0, 0, -3, 50).addPos(0, 0, 0, 250)) @@ -325,15 +325,15 @@ public class Lego { .addBus("RELAOD_TILT", new BusAnimationSequence().addPos(-15, 0, 0, 100).addPos(65, 0, 0, 100).addPos(45, 0, 0, 50).addPos(0, 0, 0, 200).addPos(0, 0, 0, 200).addPos(-80, 0, 0, 100).addPos(-80, 0, 0, 100).addPos(0, 0, 0, 200)) .addBus("RELOAD_CYLINDER", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(90, 0, 0, 100).addPos(90, 0, 0, 450).addPos(0, 0, 0, 70)); } - + return null; }; - + /* * Be honest. Do you genuinely think posting a random screenshot of your game with absolutely ZERO context of what modpack, what * Shaders if any or literally any context at all would come to a magic solution? * For all we know you accidentally rubbed Vaseline all over your monitor and jizzed in the hdmi socket of your pc - * + * * ~ u/Wolfyy47_, 2024 */ } 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 33c583b54..46311576e 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 @@ -17,7 +17,7 @@ import com.hbm.main.MainRegistry; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.SpentCasing; import com.hbm.particle.helper.CasingCreator; -import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.sound.AudioWrapper; import com.hbm.util.EntityDamageUtil; @@ -40,10 +40,10 @@ public class Orchestras { public static BiConsumer DEBUG_ORCHESTRA = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 3) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); if(timer == 10) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); if(timer == 34) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); @@ -56,14 +56,14 @@ public class Orchestras { if(casing != null) for(int i = 0; i < mag.getCapacity(stack); i++) CasingCreator.composeEffect(entity.worldObj, entity, 0.25, -0.125, -0.125, -0.05, 0, 0, 0.01, casing.getName()); } } - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 11) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); if(timer == 11) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 3) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); } @@ -72,24 +72,24 @@ public class Orchestras { public static BiConsumer ORCHESTRA_PEPPERBOX = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 24) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); if(timer == 55) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 1F); } - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 21) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.6F); } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.8F); if(timer == 11) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.6F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 3) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 1F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 28) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.75F); if(timer == 45) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.6F); } @@ -98,26 +98,26 @@ public class Orchestras { public static BiConsumer ORCHESTRA_ATLAS = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); if(timer == 44) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); } - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.9F); } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.9F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); if(timer == 24) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); if(timer == 34) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); } @@ -126,26 +126,26 @@ public class Orchestras { public static BiConsumer ORCHESTRA_DANI = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); if(timer == 44) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); } - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.9F); } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.9F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); if(timer == 24) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); if(timer == 34) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); } @@ -154,35 +154,35 @@ public class Orchestras { public static BiConsumer ORCHESTRA_HENRY = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); } - if(type == AnimType.RELOAD_CYCLE) { + if(type == GunAnimation.RELOAD_CYCLE) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); } - if(type == AnimType.RELOAD_END) { + if(type == GunAnimation.RELOAD_END) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 0.9F); if(timer == 12 && ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmountBeforeReload(stack) <= 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 1F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 0.9F); if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 1F); if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 1F); if(timer == 44) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 1F); } - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 14) { SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.5, -0.125, aiming ? -0.125 : -0.375D, 0, 0.12, -0.12, 0.01, -7.5F + (float)entity.getRNG().nextGaussian() * 5F, (float)entity.getRNG().nextGaussian() * 1.5F, casing.getName(), true, 60, 0.5D, 20); } if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 1F); } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 1F); } @@ -191,34 +191,34 @@ public class Orchestras { public static BiConsumer ORCHESTRA_GREASEGUN = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.EQUIP) { + if(type == GunAnimation.EQUIP) { if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.openLatch", 1F, 1F); } - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 2) { SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.55, aiming ? 0 : -0.125, aiming ? 0 : -0.25D, 0, 0.18, -0.12, 0.01, -7.5F + (float)entity.getRNG().nextGaussian() * 5F, 12F + (float)entity.getRNG().nextGaussian() * 5F, casing.getName()); } } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.8F); if(timer == 11) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); if(timer == 24) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.8F); if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1.25F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 11) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); } @@ -227,33 +227,33 @@ public class Orchestras { public static BiConsumer ORCHESTRA_MARESLEG = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.8F); if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunReload", 1F, 1F); } - if(type == AnimType.RELOAD_CYCLE) { + if(type == GunAnimation.RELOAD_CYCLE) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunReload", 1F, 1F); } - if(type == AnimType.RELOAD_END) { + if(type == GunAnimation.RELOAD_END) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.7F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.7F); if(timer == 17) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 0.8F); if(timer == 29) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 0.8F); } - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 14) { SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.3125, -0.125, aiming ? -0.125 : -0.375D, 0, 0.18, -0.12, 0.01, -10F + (float)entity.getRNG().nextGaussian() * 5F, (float)entity.getRNG().nextGaussian() * 2.5F, casing.getName(), true, 60, 0.5D, 20); } if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 0.8F); } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 0.8F); } @@ -262,33 +262,33 @@ public class Orchestras { public static BiConsumer ORCHESTRA_MARESLEG_SHORT = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.8F); if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunReload", 1F, 1F); } - if(type == AnimType.RELOAD_CYCLE) { + if(type == GunAnimation.RELOAD_CYCLE) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunReload", 1F, 1F); } - if(type == AnimType.RELOAD_END) { + if(type == GunAnimation.RELOAD_END) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.7F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.7F); if(timer == 17) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 0.8F); if(timer == 29) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 0.8F); } - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 14) { SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.3125, -0.125, aiming ? -0.125 : -0.375D, 0, -0.08, 0, 0.01, -15F + (float)entity.getRNG().nextGaussian() * 5F, (float)entity.getRNG().nextGaussian() * 2.5F, casing.getName(), true, 60, 0.5D, 20); } if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 0.8F); } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 0.8F); } @@ -297,11 +297,11 @@ public class Orchestras { public static BiConsumer ORCHESTRA_MARESLEG_AKIMBO = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 14) { int offset = ctx.configIndex == 0 ? -1 : 1; SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); @@ -317,11 +317,11 @@ public class Orchestras { public static BiConsumer ORCHESTRA_FLAREGUN = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 0.8F); if(timer == 4) { IMagazine mag = ctx.config.getReceivers(stack)[0].getMagazine(stack); @@ -334,14 +334,14 @@ public class Orchestras { if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertCanister", 1F, 1F); if(timer == 24) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 10) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 0.8F); if(timer == 29) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); } - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); } @@ -350,10 +350,10 @@ public class Orchestras { public static BiConsumer ORCHESTRA_NOPIP = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 3) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); if(timer == 10) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); if(timer == 34) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); @@ -366,14 +366,14 @@ public class Orchestras { if(casing != null) for(int i = 0; i < mag.getCapacity(stack); i++) CasingCreator.composeEffect(entity.worldObj, entity, 0.25, -0.125, -0.125, -0.05, 0, 0, 0.01, -6.5F + (float)entity.getRNG().nextGaussian() * 3F, (float)entity.getRNG().nextGaussian() * 5F, casing.getName()); } } - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 11) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); if(timer == 11) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 3) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); } @@ -382,32 +382,32 @@ public class Orchestras { public static BiConsumer ORCHESTRA_CARBINE = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 1) { SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.3125, aiming ? 0 : -0.125, aiming ? 0 : -0.25D, 0, 0.21, -0.06, 0.01, -10F + (float)entity.getRNG().nextGaussian() * 2.5F, 2.5F + (float)entity.getRNG().nextGaussian() * 2F, casing.getName(), true, 60, 0.5D, 20); } } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); } - if(type == AnimType.RELOAD_END) { + if(type == GunAnimation.RELOAD_END) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); if(timer == 31) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 6) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); } @@ -416,56 +416,56 @@ public class Orchestras { public static BiConsumer ORCHESTRA_AM180 = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); if(ClientConfig.GUN_ANIMS_LEGACY.get()) { - if(type == AnimType.CYCLE) { + if(type == GunAnimation.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, 0.4375, aiming ? 0 : -0.125, aiming ? 0 : -0.25D, 0, -0.06, 0, 0.01, (float)entity.getRNG().nextGaussian() * 10F, (float)entity.getRNG().nextGaussian() * 10F, casing.getName()); } } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); if(timer == 6) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.9F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.25F, 1F); if(timer == 32) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.9F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 15) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); if(timer == 35) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); } } else { - if(type == AnimType.CYCLE) { + if(type == GunAnimation.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, 0.4375, aiming ? 0 : -0.125, aiming ? 0 : -0.25D, 0, -0.06, 0, 0.01, (float)entity.getRNG().nextGaussian() * 10F, (float)entity.getRNG().nextGaussian() * 10F, casing.getName()); } } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); if(timer == 6) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.9F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 6) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.25F, 1F); if(timer == 48) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); if(timer == 54) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.9F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 6) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1.0F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 6) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); if(timer == 53) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); } @@ -475,10 +475,10 @@ public class Orchestras { public static BiConsumer ORCHESTRA_LIBERATOR = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.75F); if(timer == 4) { IMagazine mag = ctx.config.getReceivers(stack)[0].getMagazine(stack); @@ -488,21 +488,21 @@ public class Orchestras { } if(timer == 15) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); } - if(type == AnimType.RELOAD_CYCLE) { + if(type == GunAnimation.RELOAD_CYCLE) { if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); } - if(type == AnimType.RELOAD_END) { + if(type == GunAnimation.RELOAD_END) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.75F); if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.75F); IMagazine mag = ctx.config.getReceivers(stack)[0].getMagazine(stack); int toEject = mag.getAmountAfterReload(stack) - mag.getAmount(stack, ctx.inventory); @@ -518,21 +518,21 @@ public class Orchestras { public static BiConsumer ORCHESTRA_CONGOLAKE = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 15) { IMagazine mag = ctx.config.getReceivers(stack)[0].getMagazine(stack); SpentCasing casing = mag.getCasing(stack, ctx.inventory); if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.625, aiming ? -0.0625 : -0.25, aiming ? 0 : -0.375D, 0, 0.18, 0.12, 0.01, -5F + (float)entity.getRNG().nextGaussian() * 3.5F, -10F + entity.getRNG().nextFloat() * 5F, casing.getName(), true, 60, 0.5D, 20); } } - if(type == AnimType.RELOAD || type == AnimType.RELOAD_CYCLE) { + if(type == GunAnimation.RELOAD || type == GunAnimation.RELOAD_CYCLE) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.glReload", 1F, 1F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 9) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.glOpen", 1F, 1F); if(timer == 27) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.glClose", 1F, 1F); } @@ -540,10 +540,10 @@ public class Orchestras { public static BiConsumer ORCHESTRA_FLAMER = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.CYCLE && entity.worldObj.isRemote) { + if(type == GunAnimation.CYCLE && entity.worldObj.isRemote) { AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(entity); if(timer < 5) { @@ -564,13 +564,13 @@ public class Orchestras { } } //stop sound due to state change - if(type != AnimType.CYCLE && entity.worldObj.isRemote) { + if(type != GunAnimation.CYCLE && entity.worldObj.isRemote) { AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(entity); if(runningAudio != null && runningAudio.isPlaying()) runningAudio.stopSound(); } if(entity.worldObj.isRemote) return; - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 15) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.openLatch", 1F, 1F); if(timer == 35) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.5F, 1F); if(timer == 60) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.75F); @@ -582,10 +582,10 @@ public class Orchestras { public static BiConsumer ORCHESTRA_FLAMER_DAYBREAKER = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 15) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.openLatch", 1F, 1F); if(timer == 35) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.5F, 1F); if(timer == 60) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.75F); @@ -597,27 +597,27 @@ public class Orchestras { public static BiConsumer ORCHESTRA_LAG = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 1) { SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.375, aiming ? 0 : -0.0625, aiming ? 0 : -0.25D, 0, 0.18, -0.12, 0.01, -10F + (float)entity.getRNG().nextGaussian() * 5F, 10F + entity.getRNG().nextFloat() * 10F, casing.getName()); } } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.5F, 1.6F); if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); @@ -627,30 +627,30 @@ public class Orchestras { public static BiConsumer ORCHESTRA_UZI = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.EQUIP) { + if(type == GunAnimation.EQUIP) { if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.openLatch", 1F, 1.25F); } - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 1) { SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.375, aiming ? 0 : -0.125, aiming ? 0 : -0.25D, 0, 0.18, -0.12, 0.01, -2.5F + (float)entity.getRNG().nextGaussian() * 5F, 10F + (float)entity.getRNG().nextFloat() * 15F, casing.getName()); } } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 4) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 17) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); if(timer == 31) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); } @@ -659,30 +659,30 @@ public class Orchestras { public static BiConsumer ORCHESTRA_UZI_AKIMBO = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.EQUIP) { + if(type == GunAnimation.EQUIP) { if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.openLatch", 1F, 1.25F); } - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 1) { int mult = ctx.configIndex == 0 ? -1 : 1; SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.375, -0.125, -0.375D * mult, 0, 0.18, -0.12 * mult, 0.01, -2.5F + (float)entity.getRNG().nextGaussian() * 5F, (10F + (float)entity.getRNG().nextFloat() * 15F) * mult, casing.getName()); } } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 4) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 17) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); if(timer == 31) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); } @@ -691,22 +691,22 @@ public class Orchestras { public static BiConsumer ORCHESTRA_SPAS = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.CYCLE || type == AnimType.ALT_CYCLE) { + if(type == GunAnimation.CYCLE || type == GunAnimation.ALT_CYCLE) { if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunCock", 1F, 1F); if(timer == 10) { SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); //turns out there's a reason why stovepipes look like that if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.375, aiming ? 0 : -0.125, aiming ? 0 : -0.25D, 0, 0.18, -0.12, 0.01, -3F + (float)entity.getRNG().nextGaussian() * 2.5F, -15F + entity.getRNG().nextFloat() * -5F, casing.getName()); } } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunCock", 1F, 1F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { IMagazine mag = ctx.config.getReceivers(stack)[0].getMagazine(stack); if(mag.getAmount(stack, ctx.inventory) == 0) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); @@ -714,14 +714,14 @@ public class Orchestras { } if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunReload", 1F, 1F); } - if(type == AnimType.RELOAD_CYCLE) { + if(type == GunAnimation.RELOAD_CYCLE) { if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunReload", 1F, 1F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunCockOpen", 1F, 1F); if(timer == 18) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunCockClose", 1F, 1F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 18) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.foley.gunWhack", 1F, 1F); if(timer == 25) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.foley.gunWhack", 1F, 1F); if(timer == 29) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunCockClose", 1F, 1F); @@ -731,10 +731,10 @@ public class Orchestras { public static BiConsumer ORCHESTRA_PANERSCHRECK = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertCanister", 1F, 1F); } }; @@ -742,33 +742,33 @@ public class Orchestras { public static BiConsumer ORCHESTRA_G3 = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean scoped = stack.getItem() == ModItems.gun_g3_zebra || WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_SCOPE); boolean aiming = ItemGunBaseNT.getIsAiming(stack) && !scoped; - if(type == AnimType.CYCLE) { + if(type == GunAnimation.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, 0.5, aiming ? 0 : -0.125, aiming ? 0 : -0.25D, 0, 0.18, -0.12, 0.01, (float)entity.getRNG().nextGaussian() * 5F, 12.5F + (float)entity.getRNG().nextFloat() * 5F, casing.getName()); } } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.8F); if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.9F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); if(timer == 4) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); if(timer == 32) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); if(timer == 28) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); @@ -778,7 +778,7 @@ public class Orchestras { public static BiConsumer ORCHESTRA_STINGER = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); if(entity.worldObj.isRemote) { @@ -801,17 +801,17 @@ public class Orchestras { } } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertCanister", 1F, 1F); } }; public static BiConsumer ORCHESTRA_CHEMTHROWER = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.CYCLE && entity.worldObj.isRemote) { + if(type == GunAnimation.CYCLE && entity.worldObj.isRemote) { AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(entity); if(timer < 5) { @@ -832,7 +832,7 @@ public class Orchestras { } } //stop sound due to state change - if(type != AnimType.CYCLE && entity.worldObj.isRemote) { + if(type != GunAnimation.CYCLE && entity.worldObj.isRemote) { AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(entity); if(runningAudio != null && runningAudio.isPlaying()) runningAudio.stopSound(); } @@ -841,16 +841,16 @@ public class Orchestras { public static BiConsumer ORCHESTRA_AMAT = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.EQUIP) { + if(type == GunAnimation.EQUIP) { if(timer == 10) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 0.5F, 1.25F); if(timer == 15) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 0.5F, 1.25F); } - - if(type == AnimType.CYCLE) { + + if(type == GunAnimation.CYCLE) { if(timer == 7) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 0.5F, 1F); if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 0.5F, 1F); if(timer == 12) { @@ -861,28 +861,28 @@ public class Orchestras { 0.01, -10F + (float) entity.getRNG().nextGaussian() * 10F, (float) entity.getRNG().nextGaussian() * 12.5F, casing.getName(), true, 60, 0.5D, 10); } } - - if(type == AnimType.CYCLE_DRY) { + + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.75F); if(timer == 7) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 0.5F, 1F); if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 0.5F, 1F); } - - if(type == AnimType.RELOAD) { + + if(type == GunAnimation.RELOAD) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); if(timer == 32) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 0.5F, 1F); if(timer == 41) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 0.5F, 1F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 0.5F, 1F); if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 0.5F, 1F); if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 0.5F, 1F); if(timer == 23) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 0.5F, 1F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 0.5F, 1F); if(timer == 45) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 0.5F, 1F); } @@ -891,15 +891,15 @@ public class Orchestras { public static BiConsumer ORCHESTRA_M2 = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.EQUIP) { + if(type == GunAnimation.EQUIP) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:turret.howard_reload", 1F, 1F); } - if(type == AnimType.CYCLE) { + if(type == GunAnimation.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, 0.375, aiming ? 0 : -0.125, aiming ? 0 : -0.3125D, 0, 0.06, -0.18, 0.01, (float)entity.getRNG().nextGaussian() * 20F, 12.5F + (float)entity.getRNG().nextGaussian() * 7.5F, casing.getName()); @@ -910,21 +910,21 @@ public class Orchestras { public static BiConsumer ORCHESTRA_SHREDDER = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.fire.shredderCycle", 0.25F, 1.5F); } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.fire.shredderCycle", 0.25F, 1.5F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); if(timer == 32) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); if(timer == 28) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); } @@ -933,25 +933,25 @@ public class Orchestras { public static BiConsumer ORCHESTRA_SHREDDER_SEXY = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 0 && ctx.config.getReceivers(stack)[0].getMagazine(stack).getType(stack, null) == XFactory12ga.g12_equestrian_bj) { ItemGunBaseNT.setTimer(stack, 0, 20); } - + if(timer == 2) { SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.375, aiming ? -0.0625 : -0.125, aiming ? -0.125 : -0.25D, 0, 0.18, -0.12, 0.01, -10F + (float)entity.getRNG().nextGaussian() * 2.5F, (float)entity.getRNG().nextGaussian() * -20F + 15F, casing.getName(), false, 60, 0.5D, 20); } } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); if(timer == 4) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.75F); if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); @@ -961,11 +961,11 @@ public class Orchestras { if(timer == 74) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); if(timer == 88) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.75F); if(timer == 100) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); - + if(timer == 55) ctx.config.getReceivers(stack)[0].getMagazine(stack).reloadAction(stack, ctx.inventory); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:player.gulp", 1F, 1F); if(timer == 25) entity.worldObj.playSoundAtEntity(entity, "hbm:player.gulp", 1F, 1F); if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:player.gulp", 1F, 1F); @@ -982,10 +982,10 @@ public class Orchestras { public static BiConsumer ORCHESTRA_QUADRO = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertCanister", 1F, 1F); } }; @@ -993,11 +993,11 @@ public class Orchestras { public static BiConsumer ORCHESTRA_MINIGUN = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 0) { int rounds = WeaponModManager.hasUpgrade(stack, ctx.configIndex, WeaponModManager.ID_MINIGUN_SPEED) ? 3 : 1; for(int i = 0; i < rounds; i++) { @@ -1007,14 +1007,14 @@ public class Orchestras { } if(timer == (WeaponModManager.hasUpgrade(stack, 0, 207) ? 3 : 1)) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.75F); if(timer == 1) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); } }; @@ -1022,10 +1022,10 @@ public class Orchestras { public static BiConsumer ORCHESTRA_MINIGUN_DUAL = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 0) { int index = ctx.configIndex == 0 ? -1 : 1; int rounds = WeaponModManager.hasUpgrade(stack, ctx.configIndex, WeaponModManager.ID_MINIGUN_SPEED) ? 3 : 1; @@ -1036,14 +1036,14 @@ public class Orchestras { } if(timer == (WeaponModManager.hasUpgrade(stack, 0, 207) ? 3 : 1)) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.75F); if(timer == 1) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); } }; @@ -1051,19 +1051,19 @@ public class Orchestras { public static BiConsumer ORCHESTRA_MISSILE_LAUNCHER = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1.25F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 1F, 0.9F); if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertCanister", 1F, 1F); if(timer == 42) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 1F, 0.9F); } - if(type == AnimType.JAMMED || type == AnimType.INSPECT) { + if(type == GunAnimation.JAMMED || type == GunAnimation.INSPECT) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 1F, 0.9F); if(timer == 27) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 1F, 0.9F); } @@ -1072,17 +1072,17 @@ public class Orchestras { public static BiConsumer ORCHESTRA_TESLA = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.fire.shredderCycle", 0.25F, 1.25F); } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.fire.shredderCycle", 0.25F, 1.25F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:block.squeakyToy", 0.25F, 1F); } }; @@ -1090,21 +1090,21 @@ public class Orchestras { public static BiConsumer ORCHESTRA_LASER_PISTOL = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1.5F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); if(timer == 10) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1.25F); if(timer == 34) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1.25F); if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1.25F); } - - if(type == AnimType.JAMMED) { + + if(type == GunAnimation.JAMMED) { if(timer == 10) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); if(timer == 15) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1.25F); if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.25F, 1.5F); @@ -1114,30 +1114,30 @@ public class Orchestras { public static BiConsumer ORCHESTRA_STG77 = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); if(ClientConfig.GUN_ANIMS_LEGACY.get()) { - if(type == AnimType.CYCLE) { + if(type == GunAnimation.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.125, aiming ? -0.125 : -0.25, aiming ? -0.125 : -0.25D, 0, 0.18, -0.12, 0.01, (float)entity.getRNG().nextGaussian() * 5F, 7.5F + entity.getRNG().nextFloat() * 5F, casing.getName()); } if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 0.25F, 1.25F); } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.8F); if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.9F); if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 0.25F, 1.25F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); if(timer == 10) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); if(timer == 24) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); if(timer == 34) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); if(timer == 10) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); @@ -1145,26 +1145,26 @@ public class Orchestras { if(timer == 124) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); } } else { - if(type == AnimType.CYCLE) { + if(type == GunAnimation.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.25, aiming ? -0.125 : -0.25, aiming ? -0.125 : -0.25D, 0, 0.18, -0.12, 0.01, (float)entity.getRNG().nextGaussian() * 5F, 7.5F + entity.getRNG().nextFloat() * 5F, casing.getName()); } if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 0.25F, 1.25F); } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.8F); if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.9F); if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 0.25F, 1.25F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); if(timer == 32) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.25F, 1.25F); if(timer == 38) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); if(timer == 43) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); if(timer == 11) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); @@ -1176,10 +1176,10 @@ public class Orchestras { public static BiConsumer ORCHESTRA_TAU = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.SPINUP && entity.worldObj.isRemote) { + if(type == GunAnimation.SPINUP && entity.worldObj.isRemote) { AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(entity); if(timer < 300) { @@ -1199,32 +1199,32 @@ public class Orchestras { } } //stop sound due to state change - if(type != AnimType.SPINUP && entity.worldObj.isRemote) { + if(type != GunAnimation.SPINUP && entity.worldObj.isRemote) { AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(entity); if(runningAudio != null && runningAudio.isPlaying()) runningAudio.stopSound(); } if(entity.worldObj.isRemote) return; - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.fire.tau", 0.5F, 0.9F + entity.getRNG().nextFloat() * 0.2F); } - if(type == AnimType.ALT_CYCLE) { + if(type == GunAnimation.ALT_CYCLE) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.fire.tau", 0.5F, 0.7F + entity.getRNG().nextFloat() * 0.2F); } - if(type == AnimType.SPINUP) { + if(type == GunAnimation.SPINUP) { if(timer % 10 == 0 && timer < 130) { IMagazine mag = ctx.config.getReceivers(stack)[0].getMagazine(stack); if(mag.getAmount(stack, ctx.inventory) <= 0) { - ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, AnimType.CYCLE_DRY, ctx.configIndex); + ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, GunAnimation.CYCLE_DRY, ctx.configIndex); return; } mag.useUpAmmo(stack, ctx.inventory, 1); } if(timer > 200) { - ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, AnimType.CYCLE_DRY, ctx.configIndex); + ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, GunAnimation.CYCLE_DRY, ctx.configIndex); entity.attackEntityFrom(ModDamageSource.tauBlast, 1_000F); @@ -1253,10 +1253,10 @@ public class Orchestras { public static BiConsumer ORCHESTRA_FATMAN = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.fatmanFull", 1F, 1F); } }; @@ -1264,27 +1264,27 @@ public class Orchestras { public static BiConsumer ORCHESTRA_LASRIFLE = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1.5F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); if(timer == 18) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.25F, 1F); if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); if(timer == 38) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); if(timer == 22) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); @@ -1294,10 +1294,10 @@ public class Orchestras { public static BiConsumer ORCHESTRA_COILGUN = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.coilgunReload", 1F, 1F); } }; @@ -1305,14 +1305,14 @@ public class Orchestras { public static BiConsumer ORCHESTRA_HANGMAN = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.8F); if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 0.8F); @@ -1327,7 +1327,7 @@ public class Orchestras { } } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 16 && ctx.getPlayer() != null) { MovingObjectPosition mop = EntityDamageUtil.getMouseOver(ctx.getPlayer(), 3.0D); if(mop != null) { @@ -1346,7 +1346,7 @@ public class Orchestras { } } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 10) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.8F); if(timer == 15) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 0.8F); if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); @@ -1357,18 +1357,18 @@ public class Orchestras { public static BiConsumer ORCHESTRA_BOLTER = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 1) { SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.5, aiming ? 0 : -0.125, aiming ? -0.0625 : -0.25D, 0, 0.18, -0.12, 0.01, -10F + (float)entity.getRNG().nextGaussian() * 5F, 10F + entity.getRNG().nextFloat() * 10F, casing.getName()); } } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); } @@ -1377,10 +1377,10 @@ public class Orchestras { public static BiConsumer ORCHESTRA_FOLLY = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.screw", 1F, 1F); if(timer == 80) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertRocket", 1F, 1F); if(timer == 120) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.screw", 1F, 1F); @@ -1390,10 +1390,10 @@ public class Orchestras { public static BiConsumer ORCHESTRA_DOUBLE_BARREL = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.75F); if(timer == 19) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 0.9F); if(timer == 29) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.8F); @@ -1406,12 +1406,12 @@ public class Orchestras { } } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.75F); if(timer == 19) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.8F); } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); } }; @@ -1419,17 +1419,17 @@ public class Orchestras { public static BiConsumer ORCHESTRA_ABERRATOR = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 0.75F); if(timer == 32) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 0.75F); if(timer == 42) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.75F); } - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 1) { int cba = (stack.getItem() == ModItems.gun_aberrator_eott && ctx.configIndex == 0) ? -1 : 1; SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); @@ -1437,25 +1437,25 @@ public class Orchestras { } } - if(type == AnimType.CYCLE_DRY) { + if(type == GunAnimation.CYCLE_DRY) { if(timer == 1) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.75F); if(timer == 9) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.75F); } }; - + public static BiConsumer ORCHESTRA_MAS36 = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack) && !WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_SCOPE); - if(type == AnimType.EQUIP) { + if(type == GunAnimation.EQUIP) { if(timer == 10) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.openLatch", 1F, 1F); if(timer == 18) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); } - - if(type == AnimType.CYCLE) { + + if(type == GunAnimation.CYCLE) { if(timer == 7) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 0.5F, 1F); if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 0.5F, 1F); if(timer == 12) { @@ -1466,27 +1466,27 @@ public class Orchestras { 0.01, -10F + (float) entity.getRNG().nextGaussian() * 10F, (float) entity.getRNG().nextGaussian() * 12.5F, casing.getName(), true, 60, 0.5D, 10); } } - - if(type == AnimType.CYCLE_DRY) { + + if(type == GunAnimation.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.75F); if(timer == 7) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 0.5F, 1F); if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 0.5F, 1F); } - if(type == AnimType.RELOAD) { + if(type == GunAnimation.RELOAD) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 1F, 1F); if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.rifleCock", 1F, 1F); if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 1F, 1F); } - if(type == AnimType.JAMMED) { + if(type == GunAnimation.JAMMED) { if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 0.5F, 1F); if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 0.5F, 1F); if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 0.5F, 1F); if(timer == 23) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 0.5F, 1F); } - if(type == AnimType.INSPECT) { + if(type == GunAnimation.INSPECT) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 0.5F, 1F); if(timer == 17) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 0.5F, 1F); } @@ -1495,10 +1495,10 @@ public class Orchestras { public static BiConsumer ORCHESTRA_FIREEXT = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - - if(type == AnimType.RELOAD) { + + if(type == GunAnimation.RELOAD) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pressureValve", 1F, 1F); } }; @@ -1506,15 +1506,15 @@ public class Orchestras { public static BiConsumer ORCHESTRA_CHARGE_THROWER = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - - if(type == AnimType.CYCLE_DRY) { + + if(type == GunAnimation.CYCLE_DRY) { Entity e = entity.worldObj.getEntityByID(ItemGunChargeThrower.getLastHook(stack)); if(timer == 0 && e == null) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.75F); } - - if(type == AnimType.RELOAD) { + + if(type == GunAnimation.RELOAD) { if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertRocket", 1F, 1F); if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 1F, 1F); } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java index cefcc4aad..74d8e6b57 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java @@ -17,10 +17,10 @@ import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; @@ -32,7 +32,7 @@ public class XFactory10ga { public static BulletConfig g10_du; public static BulletConfig g10_slug; public static BulletConfig g10_explosive; - + 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, 1.5F); bullet.setDead(); @@ -79,12 +79,12 @@ public class XFactory10ga { .anim(XFactory12ga.LAMBDA_SEXY_ANIMS).orchestra(Orchestras.ORCHESTRA_SHREDDER_SEXY) ).setUnlocalizedName("gun_autoshotgun_heretic"); } - + public static BiConsumer LAMBDA_RECOIL_DOUBLE_BARREL = (stack, ctx) -> { ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_DOUBLE_BARREL_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_DOUBLE_BARREL_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(-60, 0, 0, 0).addPos(0, 0, -3, 500, IType.SIN_DOWN)); @@ -148,7 +148,7 @@ public class XFactory10ga { .addPos(-5, 0, 0, 150, IType.SIN_DOWN) .addPos(0, 0, 0, 100, IType.SIN_FULL)); } - + return null; }; } 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 c70d33501..2216a05d9 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 @@ -32,10 +32,10 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.util.BobMathUtil; import com.hbm.util.TrackerUtil; import com.hbm.util.Vec3NT; @@ -86,11 +86,11 @@ public class XFactory12ga { public static BulletConfig g12_sub_magnum; public static BulletConfig g12_sub_explosive; public static BulletConfig g12_sub_phosphorus; - + public static BiConsumer LAMBDA_STANDARD_EXPLODE = (bullet, mop) -> { Lego.standardExplode(bullet, mop, 2F); bullet.setDead(); }; - + public static BiConsumer LAMBDA_BOAT = (bullet, mop) -> { EntityDuchessGambit pippo = new EntityDuchessGambit(bullet.worldObj); pippo.posX = mop.hitVec.xCoord; @@ -100,13 +100,13 @@ public class XFactory12ga { bullet.worldObj.playSoundEffect(pippo.posX, pippo.posY + 50, pippo.posZ, "hbm:weapon.boat", 100F, 1F); bullet.setDead(); }; - + public static BulletConfig makeShredderConfig(BulletConfig original, BulletConfig submunition) { BulletConfig cfg = new BulletConfig().setBeam().setRenderRotations(false).setLife(5).setDamage(original.damageMult * original.projectilesMax).setupDamageClass(DamageClass.LASER); cfg.setItem(original.ammo); cfg.setCasing(original.casing); cfg.setOnBeamImpact((beam, mop) -> { - + int projectiles = submunition.projectilesMin; if(submunition.projectilesMax > submunition.projectilesMin) projectiles += beam.worldObj.rand.nextInt(submunition.projectilesMax - submunition.projectilesMin + 1); @@ -117,9 +117,9 @@ public class XFactory12ga { mop.hitVec.xCoord += dir.offsetX * 0.1; mop.hitVec.yCoord += dir.offsetY * 0.1; mop.hitVec.zCoord += dir.offsetZ * 0.1; - + spawnPulse(beam.worldObj, mop, beam.rotationYaw, beam.rotationPitch); - + List blast = beam.worldObj.getEntitiesWithinAABBExcludingEntity(beam, AxisAlignedBB.getBoundingBox(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord).expand(0.75, 0.75, 0.75)); DamageSource source = BulletConfig.getDamage(beam, beam.getThrower(), DamageClass.LASER); @@ -132,17 +132,17 @@ public class XFactory12ga { e.attackEntityFrom(source, beam.damage); } } - + for(int i = 0; i < projectiles; i++) { EntityBulletBaseMK4 bullet = new EntityBulletBaseMK4(beam.worldObj, beam.thrower, submunition, beam.damage * submunition.damageMult, 0.2F, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, dir.offsetX, dir.offsetY, dir.offsetZ); bullet.worldObj.spawnEntityInWorld(bullet); } } - + if(mop.typeOfHit == mop.typeOfHit.ENTITY) { - + spawnPulse(beam.worldObj, mop, beam.rotationYaw, beam.rotationPitch); - + for(int i = 0; i < projectiles; i++) { Vec3NT vec = new Vec3NT(beam.worldObj.rand.nextGaussian(), beam.worldObj.rand.nextGaussian(), beam.worldObj.rand.nextGaussian()).normalizeSelf(); EntityBulletBaseMK4 bullet = new EntityBulletBaseMK4(beam.worldObj, beam.thrower, submunition, beam.damage * submunition.damageMult, 0.2F, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, vec.xCoord, vec.yCoord, vec.zCoord); @@ -152,18 +152,18 @@ public class XFactory12ga { }); return cfg; } - + public static BulletConfig makeShredderSubmunition(BulletConfig original) { BulletConfig cfg = original.clone(); cfg.setRicochetAngle(90).setRicochetCount(3).setVel(0.5F).setLife(50).setupDamageClass(DamageClass.LASER).setOnRicochet(LAMBDA_SHREDDER_RICOCHET); return cfg; } - + //this sucks public static BiConsumer LAMBDA_SHREDDER_RICOCHET = (bullet, mop) -> { - + if(mop.typeOfHit == mop.typeOfHit.BLOCK) { - + Block b = bullet.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); if(b.getMaterial() == Material.glass) { bullet.worldObj.func_147480_a(mop.blockX, mop.blockY, mop.blockZ, false); @@ -185,12 +185,12 @@ public class XFactory12ga { double angle = Math.abs(BobMathUtil.getCrossAngle(vel, face) - 90); if(angle <= bullet.config.ricochetAngle) { - + spawnPulse(bullet.worldObj, mop, bullet.rotationYaw, bullet.rotationPitch); - + List blast = bullet.worldObj.getEntitiesWithinAABBExcludingEntity(bullet, AxisAlignedBB.getBoundingBox(bullet.posX, bullet.posY, bullet.posZ, bullet.posX, bullet.posY, bullet.posZ).expand(0.5, 0.5, 0.5)); DamageSource source = BulletConfig.getDamage(bullet, bullet.getThrower(), DamageClass.LASER); - + for(Entity e : blast) { if(!e.isEntityAlive()) continue; if(e instanceof EntityLivingBase) { @@ -200,13 +200,13 @@ public class XFactory12ga { e.attackEntityFrom(source, bullet.damage); } } - + bullet.ricochets++; if(bullet.ricochets > bullet.config.maxRicochetCount) { bullet.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); bullet.setDead(); } - + switch(mop.sideHit) { case 0: case 1: bullet.motionY *= -1; break; case 2: case 3: bullet.motionZ *= -1; break; @@ -223,13 +223,13 @@ public class XFactory12ga { } } }; - + public static void spawnPulse(World world, MovingObjectPosition mop, float yaw, float pitch) { double x = mop.hitVec.xCoord; double y = mop.hitVec.yCoord; double z = mop.hitVec.zCoord; - + if(mop.typeOfHit == mop.typeOfHit.BLOCK) { if(mop.sideHit == ForgeDirection.UP.ordinal()) { yaw = 0F; pitch = 0F; } if(mop.sideHit == ForgeDirection.DOWN.ordinal()) { yaw = 0F; pitch = 0F; } @@ -255,7 +255,7 @@ public class XFactory12ga { data.setFloat("scale", 0.75F); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(world.provider.dimensionId, x, y, z, 100)); } - + public static void init() { float buckshotSpread = 0.035F; @@ -288,7 +288,7 @@ public class XFactory12ga { g12_shredder_magnum = makeShredderConfig(g12_magnum, g12_sub_magnum); g12_shredder_explosive = makeShredderConfig(g12_explosive, g12_sub_explosive); g12_shredder_phosphorus = makeShredderConfig(g12_phosphorus, g12_sub_phosphorus); - + ModItems.gun_maresleg = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(600).draw(10).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) @@ -330,7 +330,7 @@ public class XFactory12ga { .setupStandardConfiguration() .anim(LAMBDA_MARESLEG_SHORT_ANIMS).orchestra(Orchestras.ORCHESTRA_MARESLEG_SHORT) ).setUnlocalizedName("gun_maresleg_broken"); - + ModItems.gun_liberator = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(200).draw(20).inspect(21).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) @@ -373,7 +373,7 @@ public class XFactory12ga { .setupStandardConfiguration() .anim(LAMBDA_SHREDDER_ANIMS).orchestra(Orchestras.ORCHESTRA_SHREDDER) ).setUnlocalizedName("gun_autoshotgun_shredder"); - + ModItems.gun_autoshotgun_sexy = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() .dura(5_000).draw(20).inspect(65).reloadSequential(true).inspectCancel(false).crosshair(Crosshair.L_CIRCLE).hideCrosshair(false).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) @@ -385,28 +385,28 @@ public class XFactory12ga { .anim(LAMBDA_SEXY_ANIMS).orchestra(Orchestras.ORCHESTRA_SHREDDER_SEXY) ).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)); }; - + public static BiConsumer LAMBDA_RECOIL_LIBERATOR = (stack, ctx) -> { ItemGunBaseNT.setupRecoil(5, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); }; - + public static BiConsumer LAMBDA_RECOIL_AUTOSHOTGUN = (stack, ctx) -> { ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5) + 1.5F, (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); }; - + public static BiConsumer LAMBDA_RECOIL_SEXY = (stack, ctx) -> { ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5), (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); }; - + public static BiConsumer LAMBDA_SPAS_SECONDARY = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; EntityPlayer player = ctx.getPlayer(); @@ -429,7 +429,7 @@ public class XFactory12ga { ItemGunBaseNT.setTimer(stack, index, 20); } else { if(rec.getDoesDryFire(stack)) { - ItemGunBaseNT.playAnimation(player, stack, AnimType.CYCLE_DRY, index); + ItemGunBaseNT.playAnimation(player, stack, GunAnimation.CYCLE_DRY, index); ItemGunBaseNT.setState(stack, index, GunState.DRAWING); ItemGunBaseNT.setTimer(stack, index, rec.getDelayAfterDryFire(stack)); } @@ -440,7 +440,7 @@ public class XFactory12ga { } }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_MARESLEG_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_MARESLEG_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(-60, 0, 0, 0).addPos(0, 0, -3, 500, IType.SIN_DOWN)); @@ -479,11 +479,11 @@ public class XFactory12ga { .addBus("LIFT", new BusAnimationSequence().addPos(-35, 0, 0, 300, IType.SIN_FULL).addPos(-35, 0, 0, 1150).addPos(0, 0, 0, 500, IType.SIN_FULL)) .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 450).addPos(0, 0, -90, 500, IType.SIN_FULL).addPos(0, 0, -90, 500).addPos(0, 0, 0, 500, IType.SIN_FULL)); } - + return null; }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_MARESLEG_SHORT_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_MARESLEG_SHORT_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(-60, 0, 0, 0).addPos(0, 0, -3, 250, IType.SIN_DOWN)); @@ -504,12 +504,12 @@ public class XFactory12ga { .addBus("LEVER", new BusAnimationSequence().addPos(-85, 0, 0, 0).addPos(-15, 0, 0, 200).addPos(-15, 0, 0, 650).addPos(-85, 0, 0, 200).addPos(-15, 0, 0, 200).addPos(-15, 0, 0, 200).addPos(-85, 0, 0, 200).addPos(0, 0, 0, 200)) .addBus("FLAG", new BusAnimationSequence().addPos(1, 1, 1, 0)); } - + return LAMBDA_MARESLEG_ANIMS.apply(stack, type); }; /** This fucking sucks */ - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_LIBERATOR_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_LIBERATOR_ANIMS = (stack, type) -> { int ammo = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory); switch(type) { case EQUIP: return new BusAnimation() @@ -602,11 +602,11 @@ public class XFactory12ga { .addBus(ammo < 3 ? "SHELL3" : "NULL", new BusAnimationSequence().addPos(2, -8, -2, 0)) .addBus(ammo < 4 ? "SHELL4" : "NULL", new BusAnimationSequence().addPos(2, -8, -2, 0)); } - + return null; }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_SPAS_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_SPAS_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(-60, 0, 0, 0).addPos(0, 0, -3, 500, IType.SIN_DOWN)); @@ -621,11 +621,11 @@ public class XFactory12ga { case JAMMED: return ResourceManager.spas_12_anim.get("Jammed"); case INSPECT: return ResourceManager.spas_12_anim.get("Inspect"); } - + return null; }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_SHREDDER_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_SHREDDER_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); @@ -647,11 +647,11 @@ public class XFactory12ga { .addBus("SPEEN", new BusAnimationSequence().addPos(0, 0, 0, 300).addPos(360, 0, 0, 700)) .addBus("LIFT", new BusAnimationSequence().addPos(0, 0, 0, 1450).addPos(-2, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)); } - + return null; }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_SEXY_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_SEXY_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 1000, IType.SIN_DOWN)); @@ -676,7 +676,7 @@ public class XFactory12ga { .addBus("BOTTLE", new BusAnimationSequence().setPos(8, -8, -2).addPos(6, -4, -2, 500, IType.SIN_DOWN).addPos(3, -3, -5, 500, IType.SIN_FULL).addPos(3, -2, -5, 1000).addPos(4, -6, -2, 750, IType.SIN_FULL).addPos(6, -8, -2, 500, IType.SIN_UP)) .addBus("SIP", new BusAnimationSequence().setPos(25, 0, 0).hold(500).addPos(-90, 0, 0, 500, IType.SIN_FULL).addPos(-110, 0, 0, 1000).addPos(25, 0, 0, 750, IType.SIN_FULL)); } - + return null; }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java index 19c398e60..a5948b2d6 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java @@ -20,10 +20,10 @@ import com.hbm.items.weapon.sedna.mods.WeaponModManager; import com.hbm.main.ResourceManager; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.item.ItemStack; @@ -57,21 +57,21 @@ public class XFactory22lr { ).setNameMutator(LAMBDA_NAME_AM180) .setUnlocalizedName("gun_am180"); } - + public static Function LAMBDA_NAME_AM180 = (stack) -> { if(WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_SILENCER)) return stack.getUnlocalizedName() + "_silenced"; return null; }; - + public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { Lego.handleStandardSmoke(ctx.entity, stack, 3000, 0.05D, 1.1D, 0); }; - + public static BiConsumer LAMBDA_RECOIL_AM180 = (stack, ctx) -> { ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 0.25), (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.25)); }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_AM180_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_AM180_ANIMS = (stack, type) -> { if(ClientConfig.GUN_ANIMS_LEGACY.get()) { switch(type) { case EQUIP: return new BusAnimation() @@ -106,7 +106,7 @@ public class XFactory22lr { case INSPECT: return ResourceManager.am180_anim.get("Inspect"); } } - + return null; }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java index adfc26784..dd2999528 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java @@ -14,10 +14,10 @@ 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.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationKeyframe.IType; import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.item.ItemStack; @@ -37,7 +37,7 @@ public class XFactory357 { m357_jhp = new BulletConfig().setItem(EnumAmmo.M357_JHP).setCasing(EnumCasingType.SMALL, 8).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F); m357_ap = new BulletConfig().setItem(EnumAmmo.M357_AP).setCasing(EnumCasingType.SMALL_STEEL, 8).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.25F).setThresholdNegation(5F).setArmorPiercing(0.15F); m357_express = new BulletConfig().setItem(EnumAmmo.M357_EXPRESS).setCasing(EnumCasingType.SMALL, 8).setDoesPenetrate(true).setDamage(1.5F).setThresholdNegation(2F).setArmorPiercing(0.1F).setWear(1.5F); - + ModItems.gun_light_revolver = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(300).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) @@ -79,16 +79,16 @@ public class XFactory357 { .anim(LAMBDA_DANI_ANIMS).orchestra(Orchestras.ORCHESTRA_DANI) ).setUnlocalizedName("gun_light_revolver_dani"); } - + public static BiConsumer LAMBDA_RECOIL_ATLAS = (stack, ctx) -> { ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); }; - + public static BiConsumer LAMBDA_RECOIL_DANI = (stack, ctx) -> { ItemGunBaseNT.setupRecoil(5, (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.75)); }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_ATLAS_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_ATLAS_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(-90, 0, 0, 0).addPos(0, 0, 0, 350, IType.SIN_DOWN)); @@ -116,15 +116,15 @@ public class XFactory357 { .addBus("RELOAD_ROT", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 0, 300).addPos(45, 0, 0, 500, IType.SIN_FULL).addPos(45, 0, 0, 500).addPos(-45, 0, 0, 50).addPos(-45, 0, 0, 100).addPos(0, 0, 0, 300)) .addBus("RELOAD_MOVE", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 0, 300).addPos(0, -2.5, 0, 500, IType.SIN_FULL).addPos(0, -2.5, 0, 500).addPos(0, 0, 0, 350)); } - + return null; }; - - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_DANI_ANIMS = (stack, type) -> { + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_DANI_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation().addBus("EQUIP", new BusAnimationSequence().addPos(360 * 3, 0, 0, 1000, IType.SIN_DOWN)); } - + return LAMBDA_ATLAS_ANIMS.apply(stack, type); }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory35800.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory35800.java index ddd435107..7e89c9cd5 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory35800.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory35800.java @@ -18,10 +18,10 @@ import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -32,7 +32,7 @@ public class XFactory35800 { public static BulletConfig p35800; public static BulletConfig p35800_bl; - + public static BiConsumer LAMBDA_BLACK_IMPACT = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY) { Entity hit = mop.entityHit; @@ -45,10 +45,10 @@ public class XFactory35800 { fire.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); bullet.worldObj.spawnEntityInWorld(fire); } - + BulletConfig.LAMBDA_STANDARD_BEAM_HIT.accept(bullet, mop); }; - + public static void init() { p35800 = new BulletConfig().setItem(EnumAmmoSecret.P35_800).setArmorPiercing(0.5F).setThresholdNegation(50F).setBeam().setSpread(0.0F).setLife(3).setRenderRotations(false) @@ -66,7 +66,7 @@ public class XFactory35800 { .setupStandardConfiguration() .anim(LAMBDA_ABERRATOR).orchestra(Orchestras.ORCHESTRA_ABERRATOR) ).setUnlocalizedName("gun_aberrator"); - + ModItems.gun_aberrator_eott = new ItemGunBaseNT(WeaponQuality.SECRET, new GunConfig().dura(2_000).draw(10).inspect(26).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) @@ -88,12 +88,12 @@ public class XFactory35800 { .anim(LAMBDA_ABERRATOR).orchestra(Orchestras.ORCHESTRA_ABERRATOR) ).setUnlocalizedName("gun_aberrator_eott"); } - + public static BiConsumer LAMBDA_RECOIL_ABERRATOR = (stack, ctx) -> { ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_ABERRATOR = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_ABERRATOR = (stack, type) -> { boolean aim = ItemGunBaseNT.getIsAiming(stack); int ammo = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, null); switch(type) { @@ -122,7 +122,7 @@ public class XFactory35800 { case INSPECT: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(0, 0, 0, 0).addPos(-720, 0, 0, 1000, IType.SIN_FULL).addPos(-720, 0, 0, 250).addPos(0, 0, 0, 1000, IType.SIN_FULL)); } - + return null; }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java index ca090b375..c0cbc903f 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java @@ -30,10 +30,10 @@ import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.util.EntityDamageUtil; import com.hbm.util.TrackerUtil; import com.hbm.util.DamageResistanceHandler.DamageClass; @@ -52,7 +52,7 @@ public class XFactory40mm { public static BulletConfig g26_flare; public static BulletConfig g26_flare_supply; public static BulletConfig g26_flare_weapon; - + public static BulletConfig g40_he; public static BulletConfig g40_heat; public static BulletConfig g40_demo; @@ -97,7 +97,7 @@ public class XFactory40mm { public static BiConsumer LAMBDA_STANDARD_EXPLODE_PHOSPHORUS = (bullet, mop) -> { spawnFire(bullet, mop, true, 400); }; - + public static void spawnFire(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, boolean phosphorus, int duration) { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; World world = bullet.worldObj; @@ -125,7 +125,7 @@ public class XFactory40mm { public static Consumer LAMBDA_SPAWN_C130_SUPPLIESS = (entity) -> { spawnPlane(entity, C130PayloadType.SUPPLIES); }; public static Consumer LAMBDA_SPAWN_C130_WEAPONS = (entity) -> { spawnPlane(entity, C130PayloadType.WEAPONS); }; - + public static void spawnPlane(Entity entity, C130PayloadType payload) { if(!entity.worldObj.isRemote && entity.ticksExisted == 40) { EntityBulletBaseMK4 bullet = (EntityBulletBaseMK4) entity; @@ -139,13 +139,13 @@ public class XFactory40mm { TrackerUtil.setTrackingRange(bullet.worldObj, c130, 250); } } - + public static void init() { - + g26_flare = new BulletConfig().setItem(EnumAmmo.G26_FLARE).setCasing(EnumCasingType.LARGE, 4).setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setOnImpact(LAMBDA_STANDARD_IGNITE).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x9E1616).setScale(2F).register("g26Flare")); g26_flare_supply = new BulletConfig().setItem(EnumAmmo.G26_FLARE_SUPPLY).setCasing(EnumCasingType.LARGE, 4).setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setOnImpact(LAMBDA_STANDARD_IGNITE).setOnUpdate(LAMBDA_SPAWN_C130_SUPPLIESS).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x3C80F0).setScale(2F).register("g26FlareSupply")); g26_flare_weapon = new BulletConfig().setItem(EnumAmmo.G26_FLARE_WEAPON).setCasing(EnumCasingType.LARGE, 4).setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setOnImpact(LAMBDA_STANDARD_IGNITE).setOnUpdate(LAMBDA_SPAWN_C130_WEAPONS).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x278400).setScale(2F).register("g26FlareWeapon")); - + BulletConfig g40_base = new BulletConfig().setLife(200).setVel(2F).setGrav(0.035D); g40_he = g40_base.clone().setItem(EnumAmmo.G40_HE).setCasing(EnumCasingType.LARGE, 4).setOnImpact(LAMBDA_STANDARD_EXPLODE).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x777777).setScale(2, 2F, 1.5F).register("g40")); g40_heat = g40_base.clone().setItem(EnumAmmo.G40_HEAT).setCasing(EnumCasingType.LARGE, 4).setOnImpact(LAMBDA_STANDARD_EXPLODE_HEAT).setDamage(0.5F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x5E6854).setScale(2, 2F, 1.5F).register("g40heat")); @@ -163,7 +163,7 @@ public class XFactory40mm { .setupStandardConfiguration() .anim(LAMBDA_FLAREGUN_ANIMS).orchestra(Orchestras.ORCHESTRA_FLAREGUN) ).setUnlocalizedName("gun_flaregun"); - + ModItems.gun_congolake = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(400).draw(7).inspect(39).reloadSequential(true).reloadChangeType(true).crosshair(Crosshair.L_CIRCUMFLEX).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) @@ -175,16 +175,16 @@ public class XFactory40mm { .anim(LAMBDA_CONGOLAKE_ANIMS).orchestra(Orchestras.ORCHESTRA_CONGOLAKE) ).setUnlocalizedName("gun_congolake"); } - + public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { Lego.handleStandardSmoke(ctx.entity, stack, 1500, 0.025D, 1.05D, 0); }; - + public static BiConsumer LAMBDA_RECOIL_GL = (stack, ctx) -> { ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_FLAREGUN_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_FLAREGUN_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(-90, 0, 0, 0).addPos(0, 0, 0, 350, IType.SIN_DOWN)); @@ -203,11 +203,11 @@ public class XFactory40mm { case INSPECT: return new BusAnimation() .addBus("FLIP", new BusAnimationSequence().addPos(-360 * 3, 0, 0, 1500, IType.SIN_FULL)); } - + return null; }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_CONGOLAKE_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_CONGOLAKE_ANIMS = (stack, type) -> { int ammo = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory); switch(type) { case EQUIP: return ResourceManager.congolake_anim.get("Equip"); @@ -218,7 +218,7 @@ public class XFactory40mm { case JAMMED: return ResourceManager.congolake_anim.get("Jammed"); case INSPECT: return ResourceManager.congolake_anim.get("Inspect"); } - + return null; }; } 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 345ab3d4d..ad7225d4e 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 @@ -25,10 +25,10 @@ import com.hbm.items.weapon.sedna.mods.WeaponModManager; import com.hbm.lib.RefStrings; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; @@ -37,7 +37,7 @@ import net.minecraft.util.ResourceLocation; public class XFactory44 { public static final ResourceLocation scope_lilmac = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_44.png"); - + public static BulletConfig m44_bp; public static BulletConfig m44_sp; public static BulletConfig m44_fmj; @@ -46,7 +46,7 @@ public class XFactory44 { public static BulletConfig m44_express; public static BulletConfig m44_equestrian_pip; public static BulletConfig m44_equestrian_mn7; - + public static BiConsumer LAMBDA_BOXCAR = (bullet, mop) -> { EntityBoxcar pippo = new EntityBoxcar(bullet.worldObj); pippo.posX = mop.hitVec.xCoord; @@ -56,7 +56,7 @@ public class XFactory44 { bullet.worldObj.playSoundEffect(pippo.posX, pippo.posY + 50, pippo.posZ, "hbm:alarm.trainHorn", 100F, 1F); bullet.setDead(); }; - + public static BiConsumer LAMBDA_TORPEDO = (bullet, mop) -> { EntityTorpedo murky = new EntityTorpedo(bullet.worldObj); murky.posX = mop.hitVec.xCoord; @@ -149,34 +149,34 @@ public class XFactory44 { .anim(LAMBDA_HANGMAN_ANIMS).orchestra(Orchestras.ORCHESTRA_HANGMAN) ).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) { + if(ItemGunBaseNT.getState(stack, ctx.configIndex) == GunState.IDLE || ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) == GunAnimation.CYCLE) { ItemGunBaseNT.setIsAiming(stack, false); ItemGunBaseNT.setState(stack, ctx.configIndex, GunState.DRAWING); ItemGunBaseNT.setTimer(stack, ctx.configIndex, ctx.config.getInspectDuration(stack)); - ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, AnimType.INSPECT, ctx.configIndex); + ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, GunAnimation.INSPECT, ctx.configIndex); } }; - + public static BiConsumer LAMBDA_RECOIL_HENRY = (stack, ctx) -> { ItemGunBaseNT.setupRecoil(5, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1)); }; - + public static BiConsumer LAMBDA_RECOIL_NOPIP = (stack, ctx) -> { ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); }; - + public static BiConsumer LAMBDA_RECOIL_HANGMAN = (stack, ctx) -> { ItemGunBaseNT.setupRecoil(5, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1)); }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_HENRY_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_HENRY_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(-90, 0, 0, 0).addPos(0, 0, -3, 350, IType.SIN_DOWN)) @@ -215,11 +215,11 @@ public class XFactory44 { .addBus("YEET", new BusAnimationSequence().addPos(0, 2, 0, 200, IType.SIN_DOWN).addPos(0, 0, 0, 200, IType.SIN_UP)) .addBus("ROLL", new BusAnimationSequence().addPos(0, 0, 360, 400)); } - + return null; }; - - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_NOPIP_ANIMS = (stack, type) -> { + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_NOPIP_ANIMS = (stack, type) -> { switch(type) { case CYCLE: return new BusAnimation() .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(0, 0, -3, 50).addPos(0, 0, 0, 250)) @@ -241,18 +241,18 @@ public class XFactory44 { .addBus("RELAOD_TILT", new BusAnimationSequence().addPos(-15, 0, 0, 100).addPos(65, 0, 0, 100).addPos(45, 0, 0, 50).addPos(0, 0, 0, 200).addPos(0, 0, 0, 200).addPos(-80, 0, 0, 100).addPos(-80, 0, 0, 100).addPos(0, 0, 0, 200)) .addBus("RELOAD_CYLINDER", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(90, 0, 0, 100).addPos(90, 0, 0, 450).addPos(0, 0, 0, 70)); } - + return null; }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_LILMAC_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_LILMAC_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation().addBus("SPIN", new BusAnimationSequence().addPos(-360, 0, 0, 350)); } - + return LAMBDA_NOPIP_ANIMS.apply(stack, type); }; - - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_HANGMAN_ANIMS = (stack, type) -> { + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_HANGMAN_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation().addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); case CYCLE: return new BusAnimation() @@ -273,7 +273,7 @@ public class XFactory44 { .addBus("EQUIP", new BusAnimationSequence().addPos(0, 0, 0, 1000).addPos(-10, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 350, IType.SIN_FULL)) .addBus("ROLL", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 25, 250, IType.SIN_FULL).addPos(0, 0, 25, 300).addPos(0, 0, 0, 250, IType.SIN_FULL)); } - + return null; }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java index 9a0c0fcae..a86fc4e74 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java @@ -21,10 +21,10 @@ import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.lib.RefStrings; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; @@ -34,7 +34,7 @@ public class XFactory50 { public static final ResourceLocation scope = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_amat.png"); public static final ResourceLocation scope_thermal = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_penance.png"); - + public static BulletConfig bmg50_sp; public static BulletConfig bmg50_fmj; public static BulletConfig bmg50_jhp; @@ -44,7 +44,7 @@ public class XFactory50 { public static BulletConfig bmg50_sm; public static BulletConfig bmg50_black; public static BulletConfig bmg50_equestrian; - + public static BiConsumer LAMBDA_BUILDING = (bullet, mop) -> { EntityBuilding silver = new EntityBuilding(bullet.worldObj); silver.posX = mop.hitVec.xCoord; @@ -53,7 +53,7 @@ public class XFactory50 { bullet.worldObj.spawnEntityInWorld(silver); bullet.setDead(); }; - + public static BiConsumer LAMBDA_STANDARD_EXPLODE = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return; Lego.tinyExplode(bullet, mop, 2F); bullet.setDead(); @@ -79,7 +79,7 @@ public class XFactory50 { .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_EQUESTRIAN).register("bmg50black")); bmg50_equestrian = new BulletConfig().setItem(EnumAmmoSecret.BMG50_EQUESTRIAN).setDamage(0F).setOnImpact(LAMBDA_BUILDING) .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_EQUESTRIAN).register("bmg50equestrian")); - + ModItems.gun_amat = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(350).draw(20).inspect(50).crosshair(Crosshair.CIRCLE).scopeTexture(scope).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) @@ -110,7 +110,7 @@ public class XFactory50 { .setupStandardConfiguration() .anim(LAMBDA_AMAT_ANIMS).orchestra(Orchestras.ORCHESTRA_AMAT) ).setUnlocalizedName("gun_amat_penance"); - + ModItems.gun_m2 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(3_000).draw(10).inspect(31).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) @@ -122,27 +122,27 @@ public class XFactory50 { .anim(LAMBDA_M2_ANIMS).orchestra(Orchestras.ORCHESTRA_M2) ).setUnlocalizedName("gun_m2"); } - + public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { Lego.handleStandardSmoke(ctx.entity, stack, 2000, 0.05D, 1.1D, 0); }; - + public static BiConsumer LAMBDA_RECOIL_AMAT = (stack, ctx) -> { ItemGunBaseNT.setupRecoil(12.5F, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1)); }; - + public static BiConsumer LAMBDA_RECOIL_M2 = (stack, ctx) -> { ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5), (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_AMAT_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_AMAT_ANIMS = (stack, type) -> { double turn = -60; double pullAmount = -2.5; double side = 4; double down = -2; double detach = 0.5; double apex = 7; - + switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_FULL)) @@ -169,18 +169,18 @@ public class XFactory50 { .addBus("SCOPE_THROW", new BusAnimationSequence().addPos(0, detach, 0, 100, IType.SIN_FULL).addPos(side, down, 0, 500, IType.SIN_FULL).addPos(side, down - 0.5, 0, 100).addPos(side, apex, 0, 350, IType.SIN_FULL).addPos(side, down - 0.5, 0, 350, IType.SIN_DOWN).addPos(side, down, 0, 100).hold(250).addPos(0, detach, 0, 500, IType.SIN_FULL).addPos(0, 0, 0, 250, IType.SIN_FULL)) .addBus("SCOPE_SPIN", new BusAnimationSequence().hold(700).addPos(-360, 0, 0, 700)); } - + return null; }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_M2_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_M2_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(80, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_FULL)); case CYCLE: return new BusAnimation() .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -0.25, 25).addPos(0, 0, 0, 75)); } - + return null; }; } 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 c37d6c78a..290ebdf33 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 @@ -25,10 +25,10 @@ import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; @@ -43,12 +43,12 @@ public class XFactory556mm { public static BulletConfig r556_fmj; public static BulletConfig r556_jhp; public static BulletConfig r556_ap; - + public static BulletConfig r556_inc_sp; public static BulletConfig r556_inc_fmj; public static BulletConfig r556_inc_jhp; public static BulletConfig r556_inc_ap; - + public static BiConsumer INCENDIARY = (bullet, mop) -> { if(mop.entityHit != null && mop.entityHit instanceof EntityLivingBase) { HbmLivingProps data = HbmLivingProps.getData((EntityLivingBase) mop.entityHit); @@ -71,7 +71,7 @@ public class XFactory556mm { r556_inc_fmj = r556_fmj.clone().setOnImpact(INCENDIARY); r556_inc_jhp = r556_jhp.clone().setOnImpact(INCENDIARY); r556_inc_ap = r556_ap.clone().setOnImpact(INCENDIARY); - + ModItems.gun_g3 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(3_000).draw(10).inspect(33).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) @@ -105,21 +105,21 @@ public class XFactory556mm { .anim(LAMBDA_STG77_ANIMS).orchestra(Orchestras.ORCHESTRA_STG77) ).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_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) && + 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); }; - + public static BiConsumer LAMBDA_STG77_DECIDER = (stack, ctx) -> { int index = ctx.configIndex; GunState lastState = ItemGunBaseNT.getState(stack, index); @@ -128,18 +128,18 @@ public class XFactory556mm { GunStateDecider.deciderStandardReload(stack, ctx, lastState, 0, index); GunStateDecider.deciderAutoRefire(stack, ctx, lastState, 0, index, () -> { return ItemGunBaseNT.getSecondary(stack, index); }); }; - + public static BiConsumer LAMBDA_RECOIL_G3 = (stack, ctx) -> { ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 0.25), (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.25)); }; - + public static BiConsumer LAMBDA_RECOIL_ZEBRA = (stack, ctx) -> { ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 0.125), (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.125)); }; - + public static BiConsumer LAMBDA_RECOIL_STG = (stack, ctx) -> { }; - - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_G3_ANIMS = (stack, type) -> { + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_G3_ANIMS = (stack, type) -> { boolean empty = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory) <= 0; switch(type) { case EQUIP: return new BusAnimation() @@ -206,11 +206,11 @@ public class XFactory556mm { .addBus("BOLT", new BusAnimationSequence().addPos(0, 0, 0, 1000).addPos(0, 0, -3.25, 150).addPos(0, 0, 0, 100).addPos(0, 0, 0, 250).addPos(0, 0, -3.25, 150).addPos(0, 0, 0, 100)) .addBus("PLUG", new BusAnimationSequence().addPos(0, 0, 0, 1000).addPos(0, 0, -3.25, 150).addPos(0, 0, 0, 100).addPos(0, 0, 0, 250).addPos(0, 0, -3.25, 150).addPos(0, 0, 0, 100)); } - + return null; }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_STG77_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_STG77_ANIMS = (stack, type) -> { if(ClientConfig.GUN_ANIMS_LEGACY.get()) { switch(type) { case EQUIP: return new BusAnimation() @@ -245,8 +245,8 @@ public class XFactory556mm { case INSPECT: return ResourceManager.stg77_anim.get("Inspect"); } } - - + + return null; }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory75Bolt.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory75Bolt.java index 1638a2794..b24293199 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory75Bolt.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory75Bolt.java @@ -17,9 +17,9 @@ import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; @@ -47,7 +47,7 @@ public class XFactory75Bolt { public static void init() { SpentCasing casing75 = new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(2F, 2F, 1.5F); - + b75 = new BulletConfig().setItem(EnumAmmo.B75) .setCasing(casing75.clone().register("b75")).setOnImpact(LAMBDA_TINY_EXPLODE); b75_inc = new BulletConfig().setItem(EnumAmmo.B75_INC).setDamage(0.8F).setArmorPiercing(0.1F) @@ -66,16 +66,16 @@ public class XFactory75Bolt { .anim(LAMBDA_BOLTER_ANIMS).orchestra(Orchestras.ORCHESTRA_BOLTER) ).setUnlocalizedName("gun_bolter"); } - + public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { Lego.handleStandardSmoke(ctx.entity, stack, 2000, 0.05D, 1.1D, 0); }; - + public static BiConsumer LAMBDA_RECOIL_BOLT = (stack, ctx) -> { ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5), (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_BOLTER_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_BOLTER_ANIMS = (stack, type) -> { switch(type) { case CYCLE: return new BusAnimation() .addBus("RECOIL", new BusAnimationSequence().addPos(1, 0, 0, 25).addPos(0, 0, 0, 75)); @@ -86,7 +86,7 @@ public class XFactory75Bolt { .addBus("TILT", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(1, 0, 0, 250).addPos(1, 0, 0, 700).addPos(0, 0, 0, 250)) .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 750).addPos(0.6, 0, 0, 250).addPos(0, 0, 0, 250)); } - + return null; }; } 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 85e0d1b47..ac120ea9c 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 @@ -20,10 +20,10 @@ import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.main.MainRegistry; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.util.DamageResistanceHandler.DamageClass; import net.minecraft.item.ItemStack; @@ -41,7 +41,7 @@ public class XFactory762mm { 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, 1.5F); bullet.setDead(); @@ -61,7 +61,7 @@ public class XFactory762mm { .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("r762du")); r762_he = new BulletConfig().setItem(EnumAmmo.R762_HE).setCasing(EnumCasingType.SMALL_STEEL, 6).setWear(3F).setDamage(1.75F).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); energy_lacunae_ir = new BulletConfig().setItem(EnumAmmo.CAPACITOR_IR).setCasing(new ItemStack(ModItems.ingot_polymer, 2), 4 * 40).setupDamageClass(DamageClass.FIRE).setBeam().setReloadCount(40).setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(XFactoryEnergy.LAMBDA_IR_HIT); @@ -131,7 +131,7 @@ public class XFactory762mm { .anim(LAMBDA_MAS36_ANIMS).orchestra(Orchestras.ORCHESTRA_MAS36) ).setUnlocalizedName("gun_mas36"); } - + public static BiConsumer LAMBDA_SECOND_MINIGUN = (stack, ctx) -> { int index = ctx.configIndex; GunState lastState = ItemGunBaseNT.getState(stack, index); @@ -140,22 +140,22 @@ public class XFactory762mm { GunStateDecider.deciderStandardReload(stack, ctx, lastState, 0, index); GunStateDecider.deciderAutoRefire(stack, ctx, lastState, 0, index, () -> { return ItemGunBaseNT.getSecondary(stack, index) && ItemGunBaseNT.getMode(stack, ctx.configIndex) == 0; }); }; - + public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { Lego.handleStandardSmoke(ctx.entity, stack, 1500, 0.075D, 1.1D, 0); }; - + public static BiConsumer LAMBDA_RECOIL_CARBINE = (stack, ctx) -> { ItemGunBaseNT.setupRecoil(5, (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); }; - + public static BiConsumer LAMBDA_RECOIL_MINIGUN = (stack, ctx) -> { ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5), (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); }; - + public static BiConsumer LAMBDA_RECOIL_LACUNAE = (stack, ctx) -> { }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_CARBINE_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_CARBINE_ANIMS = (stack, type) -> { int ammo = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory); switch(type) { case EQUIP: return new BusAnimation() @@ -183,11 +183,11 @@ public class XFactory762mm { .addBus("SLIDE", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, -0.75, 150, IType.SIN_DOWN).addPos(0, 0, -0.75, 1000).addPos(0, 0, 0, 100, IType.SIN_UP)) .addBus(ammo == 0 ? "NULL" : "REL", new BusAnimationSequence().addPos(0, 0.125, 1.25, 0).addPos(0, 0.125, 1.25, 500).addPos(0, 0.125, 0.5, 150, IType.SIN_DOWN).addPos(0, 0.125, 0.5, 1000).addPos(0, 0.125, 1.25, 100, IType.SIN_UP)); } - + return null; }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_MINIGUN_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_MINIGUN_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 1000, IType.SIN_FULL)); @@ -203,11 +203,11 @@ public class XFactory762mm { .addBus("EQUIP", new BusAnimationSequence().addPos(3, 0, 0, 150, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, -720, 1000, IType.SIN_DOWN)); } - + return null; }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_MAS36_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_MAS36_ANIMS = (stack, type) -> { int mag = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory); double turn = -90; double pullAmount = ItemGunBaseNT.getIsAiming(stack) ? -1F : -1.5D; @@ -244,7 +244,7 @@ public class XFactory762mm { .addBus("BOLT_PULL", new BusAnimationSequence().hold(100).addPos(0, 0, -1D, 250, IType.SIN_UP).hold(500).addPos(0, 0, 0, 200, IType.LINEAR)) .addBus("BULLET", mag == 0 ? new BusAnimationSequence().setPos(-100, 0, 0) : new BusAnimationSequence().setPos(0, 0.1875, 1.5).hold(100).addPos(0, 0.125, 0.5, 250, IType.SIN_UP).hold(500).addPos(0, 0.1875, 1.5, 200, IType.LINEAR)); } - + return null; }; } 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 5fbb723dd..15d4112fb 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 @@ -22,10 +22,10 @@ import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.util.EntityDamageUtil; import com.hbm.util.DamageResistanceHandler.DamageClass; @@ -105,29 +105,29 @@ public class XFactory9mm { .anim(LAMBDA_UZI_ANIMS).orchestra(Orchestras.ORCHESTRA_UZI_AKIMBO) ).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)); }; - + public static BiConsumer LAMBDA_RECOIL_LAG = (stack, ctx) -> { ItemGunBaseNT.setupRecoil(5, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); }; - + public static BiConsumer LAMBDA_RECOIL_UZI = (stack, ctx) -> { ItemGunBaseNT.setupRecoil(1, (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.25)); }; - + public static BiConsumer LAMBDA_SECOND_UZI = (stack, ctx) -> { int index = ctx.configIndex; GunState lastState = ItemGunBaseNT.getState(stack, index); @@ -136,12 +136,12 @@ public class XFactory9mm { GunStateDecider.deciderStandardReload(stack, ctx, lastState, 0, index); GunStateDecider.deciderAutoRefire(stack, ctx, lastState, 0, index, () -> { return ItemGunBaseNT.getSecondary(stack, index) && ItemGunBaseNT.getMode(stack, ctx.configIndex) == 0; }); }; - + public static BiConsumer LAMBDA_FIRE_LAG = (stack, ctx) -> { - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); EntityPlayer player = ctx.getPlayer(); - if(player != null && type == AnimType.INSPECT && timer > 20 && timer < 60) { + if(player != null && type == GunAnimation.INSPECT && timer > 20 && timer < 60) { int index = ctx.configIndex; Receiver primary = ctx.config.getReceivers(stack)[0]; IMagazine mag = primary.getMagazine(stack); @@ -154,15 +154,15 @@ public class XFactory9mm { ItemGunBaseNT.setTimer(stack, index, primary.getDelayAfterFire(stack)); EntityDamageUtil.attackEntityFromNT(player, BulletConfig.getDamage(player, player, DamageClass.PHYSICAL), 1_000F, true, false, 1D, 5F, 0F); } else { - Lego.doStandardFire(stack, ctx, AnimType.CYCLE, true); + Lego.doStandardFire(stack, ctx, GunAnimation.CYCLE, true); } }; - + public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { Lego.handleStandardSmoke(ctx.entity, stack, 2000, 0.05D, 1.1D, ctx.configIndex); }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_GREASEGUN_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_GREASEGUN_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(80, 0, 0, 0).addPos(80, 0, 0, 500).addPos(0, 0, 0, 500, IType.SIN_FULL)) @@ -190,11 +190,11 @@ public class XFactory9mm { .addBus("TURN", new BusAnimationSequence().addPos(0, 0, -45, 150).addPos(0, 0, 45, 150).addPos(0, 0, 45, 50).addPos(0, 0, 0, 250).addPos(0, 0, 0, 500).addPos(0, 0, 45, 150).addPos(0, 0, -45, 150).addPos(0, 0, 0, 150)) .addBus("FLAP", new BusAnimationSequence().addPos(0, 0, 0, 300).addPos(0, 0, 180, 150).addPos(0, 0, 180, 850).addPos(0, 0, 0, 150)); } - + return null; }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_LAG_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_LAG_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(-90, 0, 0, 0).addPos(0, 0, 0, 350, IType.SIN_DOWN)); @@ -207,11 +207,11 @@ public class XFactory9mm { .addBus("ADD_TRANS", new BusAnimationSequence().addPos(-4, 0, -3, 500).addPos(-4, 0, -3, 2000).addPos(0, 0, 0, 500)) .addBus("ADD_ROT", new BusAnimationSequence().addPos(0, -2, 5, 500).addPos(0, -2, 5, 2000).addPos(0, 0, 0, 500)); } - + return null; }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_UZI_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_UZI_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(80, 0, 0, 0).addPos(80, 0, 0, 500).addPos(0, 0, 0, 500, IType.SIN_FULL)) diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java index 86905b000..9f8e5a0c0 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java @@ -20,10 +20,10 @@ import com.hbm.items.weapon.sedna.mags.MagazineBelt; import com.hbm.items.weapon.sedna.mags.MagazineInfinite; import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; import com.hbm.main.MainRegistry; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.util.DamageResistanceHandler.DamageClass; import com.hbm.util.Vec3NT; @@ -37,7 +37,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; public class XFactoryAccelerator { - + public static MagazineBelt tauChargeMag = new MagazineBelt(); public static BulletConfig tau_uranium; @@ -50,13 +50,13 @@ public class XFactoryAccelerator { public static Consumer LAMBDA_UPDATE_TUNGSTEN = (entity) -> {breakInPath(entity, 1.25F); }; public static Consumer LAMBDA_UPDATE_FERRO = (entity) -> { breakInPath(entity, 2.5F); }; - + public static void breakInPath(Entity entity, float threshold) { Vec3 vec = Vec3.createVectorHelper(entity.posX - entity.prevPosX, entity.posY - entity.prevPosY, entity.posZ - entity.prevPosZ); double motion = Math.max(vec.lengthVector(), 0.1); vec = vec.normalize(); - + for(double d = 0; d < motion; d += 0.5) { double dX = entity.posX - vec.xCoord * d; @@ -71,7 +71,7 @@ public class XFactoryAccelerator { nbt.setDouble("posY", dY); nbt.setDouble("posZ", dZ); MainRegistry.proxy.effectNT(nbt); - + } else { int x = (int) Math.floor(dX); int y = (int) Math.floor(dY); @@ -84,7 +84,7 @@ public class XFactoryAccelerator { } } } - + public static void init() { tau_uranium = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setCasing(new ItemStack(ModItems.plate_lead, 2), 16).setupDamageClass(DamageClass.SUBATOMIC).setBeam().setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloffByPen(false) @@ -99,7 +99,7 @@ public class XFactoryAccelerator { ni4ni_arc = new BulletConfig().setupDamageClass(DamageClass.PHYSICAL).setBeam().setLife(5).setThresholdNegation(10F).setArmorPiercing(0.2F).setRenderRotations(false).setDoesPenetrate(false) .setOnBeamImpact(BulletConfig.LAMBDA_BEAM_HIT); - + tauChargeMag.addConfigs(tau_uranium_charge); ModItems.gun_tau = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() @@ -141,54 +141,54 @@ public class XFactoryAccelerator { .anim(LAMBDA_NI4NI_ANIMS).orchestra(Orchestras.ORCHESTRA_COILGUN) ).setUnlocalizedName("gun_n_i_4_n_i"); } - + public static BiConsumer LAMBDA_TAU_PRIMARY_RELEASE = (stack, ctx) -> { - if(ctx.getPlayer() == null || ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) != AnimType.CYCLE) return; + if(ctx.getPlayer() == null || ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) != GunAnimation.CYCLE) return; ctx.getPlayer().worldObj.playSoundEffect(ctx.getPlayer().posX, ctx.getPlayer().posY, ctx.getPlayer().posZ, "hbm:weapon.fire.tauRelease", 1F, 1F); }; - + public static BiConsumer LAMBDA_TAU_SECONDARY_PRESS = (stack, ctx) -> { if(ctx.getPlayer() == null) return; if(ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) <= 0) return; - ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, AnimType.SPINUP, ctx.configIndex); + ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, GunAnimation.SPINUP, ctx.configIndex); tauChargeMag.getMagType(stack); //caches the last loaded ammo }; - + public static BiConsumer LAMBDA_TAU_SECONDARY_RELEASE = (stack, ctx) -> { if(ctx.getPlayer() == null) return; int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - - if(timer >= 10 && ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) == AnimType.SPINUP) { - ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, AnimType.ALT_CYCLE, ctx.configIndex); + + if(timer >= 10 && ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) == GunAnimation.SPINUP) { + ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, GunAnimation.ALT_CYCLE, ctx.configIndex); int unitsUsed = 1 + Math.min(12, timer / 10); - + EntityLivingBase entity = ctx.entity; int index = ctx.configIndex; - + Receiver primary = ctx.config.getReceivers(stack)[0]; BulletConfig config = tauChargeMag.getFirstConfig(stack, ctx.inventory); - + Vec3 offset = primary.getProjectileOffset(stack); double forwardOffset = offset.xCoord; double heightOffset = offset.yCoord; double sideOffset = offset.zCoord; - + float damage = Lego.getStandardWearDamage(stack, ctx.config, index) * unitsUsed * 5; float spread = Lego.calcSpread(ctx, stack, primary, config, true, index, false); EntityBulletBeamBase mk4 = new EntityBulletBeamBase(entity, config, damage, spread, sideOffset, heightOffset, forwardOffset); entity.worldObj.spawnEntityInWorld(mk4); - + ItemGunBaseNT.setWear(stack, index, Math.min(ItemGunBaseNT.getWear(stack, index) + config.wear * unitsUsed, ctx.config.getDurability(stack))); - + } else { - ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, AnimType.CYCLE_DRY, ctx.configIndex); + ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, GunAnimation.CYCLE_DRY, ctx.configIndex); } }; - + public static BiConsumer LAMBDA_NI4NI_SECONDARY_PRESS = (stack, ctx) -> { if(ctx.getPlayer() == null) return; EntityPlayer player = ctx.getPlayer(); - + if(ItemGunNI4NI.getCoinCount(stack) > 0) { Vec3NT vec = new Vec3NT(player.getLookVec()).multiply(0.8D); EntityCoin coin = new EntityCoin(player.worldObj); @@ -199,20 +199,20 @@ public class XFactoryAccelerator { coin.rotationYaw = player.rotationYaw; coin.setThrower(player); player.worldObj.spawnEntityInWorld(coin); - + player.worldObj.playSoundAtEntity(player, "random.orb", 1.0F, 1F + player.getRNG().nextFloat() * 0.25F); - + ItemGunNI4NI.setCoinCount(stack, ItemGunNI4NI.getCoinCount(stack) - 1); } }; - + public static BiConsumer LAMBDA_RECOIL_TAU = (stack, ctx) -> { }; - + public static BiConsumer LAMBDA_RECOIL_COILGUN = (stack, ctx) -> { ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_TAU_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_TAU_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_FULL)); @@ -229,18 +229,18 @@ public class XFactoryAccelerator { case SPINUP: return new BusAnimation() .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 360 * 6, 3000, IType.SIN_UP).addPos(0, 0, 0, 0).addPos(0, 0, 360 * 40, 500 * 20)); } - + return null; }; - public static BiFunction LAMBDA_COILGUN_ANIMS = (stack, type) -> { - if(type == AnimType.EQUIP) return new BusAnimation().addBus("RELOAD", new BusAnimationSequence().addPos(1, 0, 0, 0).addPos(0, 0, 0, 250)); - if(type == AnimType.CYCLE) return new BusAnimation().addBus("RECOIL", new BusAnimationSequence().addPos(ItemGunBaseNT.getIsAiming(stack) ? 0.5 : 1, 0, 0, 100).addPos(0, 0, 0, 200)); - if(type == AnimType.RELOAD) return new BusAnimation().addBus("RELOAD", new BusAnimationSequence().addPos(1, 0, 0, 250).addPos(1, 0, 0, 500).addPos(0, 0, 0, 250)); + public static BiFunction LAMBDA_COILGUN_ANIMS = (stack, type) -> { + if(type == GunAnimation.EQUIP) return new BusAnimation().addBus("RELOAD", new BusAnimationSequence().addPos(1, 0, 0, 0).addPos(0, 0, 0, 250)); + if(type == GunAnimation.CYCLE) return new BusAnimation().addBus("RECOIL", new BusAnimationSequence().addPos(ItemGunBaseNT.getIsAiming(stack) ? 0.5 : 1, 0, 0, 100).addPos(0, 0, 0, 200)); + if(type == GunAnimation.RELOAD) return new BusAnimation().addBus("RELOAD", new BusAnimationSequence().addPos(1, 0, 0, 250).addPos(1, 0, 0, 500).addPos(0, 0, 0, 250)); return null; }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_NI4NI_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_NI4NI_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(-360 * 2, 0, 0, 500)); @@ -252,7 +252,7 @@ public class XFactoryAccelerator { case INSPECT: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(-360 * 3, 0, 0, 750).hold(100).addPos(0, 0, 0, 750)); } - + return null; }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryBlackPowder.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryBlackPowder.java index e8637d22a..343c968b5 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryBlackPowder.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryBlackPowder.java @@ -13,10 +13,10 @@ 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.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.item.ItemStack; @@ -28,7 +28,7 @@ public class XFactoryBlackPowder { public static BulletConfig shot = new BulletConfig().setItem(EnumAmmo.STONE_SHOT).setBlackPowder(true).setHeadshot(1F).setSpread(0.1F).setRicochetAngle(45).setProjectiles(6, 6).setDamage(1F/6F); public static void init() { - + ModItems.gun_pepperbox = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(300).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) @@ -40,12 +40,12 @@ public class XFactoryBlackPowder { .anim(LAMBDA_PEPPERBOX_ANIMS).orchestra(Orchestras.ORCHESTRA_PEPPERBOX) ).setUnlocalizedName("gun_pepperbox"); } - + public static BiConsumer LAMBDA_RECOIL_PEPPERBOX = (stack, ctx) -> { ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_PEPPERBOX_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_PEPPERBOX_ANIMS = (stack, type) -> { switch(type) { case CYCLE: return new BusAnimation() .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 0, 1025).addPos(60, 0, 0, 250)) @@ -72,7 +72,7 @@ public class XFactoryBlackPowder { .addBus("TRANSLATE", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, -6, 0, 400, IType.SIN_FULL).addPos(0, -6, 0, 2000).addPos(0, 0, 0, 400, IType.SIN_FULL)) .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(45, 0, 0, 400, IType.SIN_FULL).addPos(45, 0, 0, 2000).addPos(0, 0, 0, 400, IType.SIN_FULL)); } - + return null; }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java index 42d957506..331884264 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java @@ -28,10 +28,10 @@ import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; import com.hbm.main.MainRegistry; import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.item.ItemStack; @@ -99,7 +99,7 @@ public class XFactoryCatapult { vnt.explode(); incrementRad(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 1.5F); - + bullet.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); NBTTagCompound data = new NBTTagCompound(); data.setString("type", "muke"); @@ -176,7 +176,7 @@ public class XFactoryCatapult { public static BiConsumer LAMBDA_RECOIL_FATMAN = (stack, ctx) -> { }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_FATMAN_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_FATMAN_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 1000, IType.SIN_DOWN)); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java index 4167419d7..4ebb193a9 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java @@ -26,10 +26,10 @@ import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.util.DamageResistanceHandler.DamageClass; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -104,15 +104,15 @@ public class XFactoryEnergy { public static BiConsumer LAMBDA_LIGHTNING_SPLIT = (beam, mop) -> { LAMBDA_LIGHTNING_HIT.accept(beam, mop); if(mop.typeOfHit != mop.typeOfHit.ENTITY) return; - + double range = 20; List potentialTargets = beam.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord).expand(range, range, range)); Collections.shuffle(potentialTargets); - + for(EntityLivingBase target : potentialTargets) { if(target == beam.thrower) continue; if(target == mop.entityHit) continue; - + Vec3 delta = Vec3.createVectorHelper(target.posX - mop.hitVec.xCoord, target.posY + target.height / 2 - mop.hitVec.yCoord, target.posZ - mop.hitVec.zCoord); if(delta.lengthVector() > 20) continue; EntityBulletBeamBase sub = new EntityBulletBeamBase(beam.thrower, energy_tesla_ir_sub, beam.damage); @@ -169,7 +169,7 @@ public class XFactoryEnergy { energy_emerald = energy_las.clone().setArmorPiercing(0.5F).setThresholdNegation(10F); energy_emerald_overcharge = energy_las_overcharge.clone().setArmorPiercing(0.5F).setThresholdNegation(15F); energy_emerald_ir = energy_las_ir.clone().setArmorPiercing(0.5F).setThresholdNegation(10F); - + ModItems.gun_tesla_cannon = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(1_000).draw(10).inspect(33).crosshair(Crosshair.CIRCLE) .rec(new Receiver(0) @@ -226,7 +226,7 @@ public class XFactoryEnergy { public static BiConsumer LAMBDA_RECOIL_ENERGY = (stack, ctx) -> { }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_TESLA_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_TESLA_ANIMS = (stack, type) -> { int amount = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory); switch(type) { case EQUIP: return new BusAnimation() @@ -245,7 +245,7 @@ public class XFactoryEnergy { return null; }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_LASER_PISTOL = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_LASER_PISTOL = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); @@ -266,7 +266,7 @@ public class XFactoryEnergy { return null; }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_LASRIFLE = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_LASRIFLE = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java index 50e845278..0d1fc8db3 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java @@ -22,10 +22,10 @@ import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; import com.hbm.particle.helper.FlameCreator; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.util.DamageResistanceHandler.DamageClass; import net.minecraft.block.Block; @@ -42,7 +42,7 @@ public class XFactoryFlamer { public static BulletConfig flame_nograv; public static BulletConfig flame_nograv_bf; - + public static BulletConfig flame_diesel; public static BulletConfig flame_gas; public static BulletConfig flame_napalm; @@ -80,7 +80,7 @@ public class XFactoryFlamer { public static BiConsumer LAMBDA_LINGER_GAS = (bullet, mop) -> { igniteIfPossible(bullet, mop); }; public static BiConsumer LAMBDA_LINGER_NAPALM = (bullet, mop) -> { if(!igniteIfPossible(bullet, mop)) spawnFire(bullet, mop, 2.5F, 1F, 200, EntityFireLingering.TYPE_DIESEL); }; public static BiConsumer LAMBDA_LINGER_BALEFIRE = (bullet, mop) -> { spawnFire(bullet, mop, 3F, 1F, 300, EntityFireLingering.TYPE_BALEFIRE); }; - + public static boolean igniteIfPossible(EntityBulletBaseMK4 bullet, MovingObjectPosition mop) { if(mop.typeOfHit == mop.typeOfHit.BLOCK) { World world = bullet.worldObj; @@ -96,7 +96,7 @@ public class XFactoryFlamer { } return false; } - + public static void spawnFire(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, float width, float height, int duration, int type) { if(mop.typeOfHit == mop.typeOfHit.BLOCK) { List fires = bullet.worldObj.getEntitiesWithinAABB(EntityFireLingering.class, @@ -119,15 +119,15 @@ public class XFactoryFlamer { .setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_NAPALM); flame_balefire = new BulletConfig().setItem(EnumAmmo.FLAME_BALEFIRE).setCasing(new ItemStack(ModItems.plate_steel, 2), 500).setupDamageClass(DamageClass.FIRE).setLife(200).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F) .setOnUpdate(LAMBDA_BALEFIRE).setOnRicochet(LAMBDA_LINGER_BALEFIRE); - + flame_nograv = flame_diesel.clone().setGrav(0); flame_nograv_bf = flame_balefire.clone().setGrav(0).setLife(100); - + flame_topaz_diesel = flame_diesel .clone().setProjectiles(2).setSpread(0.05F).setLife(60).setGrav(0.0D); flame_topaz_gas = flame_gas .clone().setProjectiles(2).setSpread(0.05F); flame_topaz_napalm = flame_napalm .clone().setProjectiles(2).setSpread(0.05F).setLife(60).setGrav(0.0D); flame_topaz_balefire = flame_balefire .clone().setProjectiles(2).setSpread(0.05F).setLife(60).setGrav(0.0D); - + flame_daybreaker_diesel = flame_diesel.clone().setLife(200).setVel(2F).setGrav(0.035D) .setOnImpact((bullet, mop) -> { Lego.standardExplode(bullet, mop, 5F); spawnFire(bullet, mop, 6F, 2F, 200, EntityFireLingering.TYPE_DIESEL); bullet.setDead(); }); flame_daybreaker_gas = flame_gas.clone().setLife(200).setVel(2F).setGrav(0.035D) @@ -136,7 +136,7 @@ public class XFactoryFlamer { .setOnImpact((bullet, mop) -> { Lego.standardExplode(bullet, mop, 7.5F); spawnFire(bullet, mop, 6F, 2F, 300, EntityFireLingering.TYPE_DIESEL); bullet.setDead(); }); flame_daybreaker_balefire = flame_balefire.clone().setLife(200).setVel(2F).setGrav(0.035D) .setOnImpact((bullet, mop) -> { Lego.standardExplode(bullet, mop, 5F); spawnFire(bullet, mop, 7.5F, 2.5F, 400, EntityFireLingering.TYPE_BALEFIRE); bullet.setDead(); }); - + ModItems.gun_flamer = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(20_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE) .rec(new Receiver(0) @@ -167,7 +167,7 @@ public class XFactoryFlamer { .setupStandardConfiguration() .anim(LAMBDA_FLAMER_ANIMS).orchestra(Orchestras.ORCHESTRA_FLAMER_DAYBREAKER) ).setUnlocalizedName("gun_flamer_daybreaker"); - + ModItems.gun_chemthrower = new ItemGunChemthrower(WeaponQuality.A_SIDE, new GunConfig() .dura(90_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) @@ -180,7 +180,7 @@ public class XFactoryFlamer { ).setUnlocalizedName("gun_chemthrower"); } - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_FLAMER_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_FLAMER_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(-45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); @@ -189,16 +189,16 @@ public class XFactoryFlamer { case JAMMED: return new BusAnimation() .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 45, 250, IType.SIN_FULL).addPos(0, 0, 45, 350).addPos(0, 0, -15, 150, IType.SIN_FULL).addPos(0, 0, 0, 100, IType.SIN_FULL)); } - + return null; }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_CHEMTHROWER_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_CHEMTHROWER_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(-45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); } - + return null; }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java index 793284b3d..1e1786917 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java @@ -22,10 +22,10 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret; import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.util.ContaminationUtil; import com.hbm.util.EntityDamageUtil; import com.hbm.util.Vec3NT; @@ -119,17 +119,17 @@ public class XFactoryFolly { if(ItemGunBaseNT.getState(stack, ctx.configIndex) == GunState.IDLE) { boolean wasAiming = ItemGunBaseNT.getIsAiming(stack); ItemGunBaseNT.setIsAiming(stack, !wasAiming); - if(!wasAiming) ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, AnimType.SPINUP, ctx.configIndex); + if(!wasAiming) ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, GunAnimation.SPINUP, ctx.configIndex); } }; public static BiConsumer LAMBDA_FIRE = (stack, ctx) -> { - Lego.doStandardFire(stack, ctx, AnimType.CYCLE, false); + Lego.doStandardFire(stack, ctx, GunAnimation.CYCLE, false); }; public static BiFunction LAMBDA_CAN_FIRE = (stack, ctx) -> { if(!ItemGunBaseNT.getIsAiming(stack)) return false; - if(ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) != AnimType.SPINUP) return false; + if(ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) != GunAnimation.SPINUP) return false; if(ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex) < 100) return false; return ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) > 0; }; @@ -138,7 +138,7 @@ public class XFactoryFolly { ItemGunBaseNT.setupRecoil(25, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_FOLLY_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_FOLLY_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(-60, 0, 0, 0).addPos(5, 0, 0, 1500, IType.SIN_DOWN).addPos(0, 0, 0, 500, IType.SIN_FULL)); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java index a70a284d5..5d5f1fb50 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java @@ -26,10 +26,10 @@ import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.util.EntityDamageUtil; import com.hbm.util.DamageResistanceHandler.DamageClass; @@ -46,7 +46,7 @@ import net.minecraftforge.common.util.ForgeDirection; public class XFactoryRocket { public static BulletConfig[] rocket_template; - + public static BulletConfig[] rocket_rpzb; public static BulletConfig[] rocket_qd; public static BulletConfig[] rocket_ml; @@ -60,24 +60,24 @@ public class XFactoryRocket { EntityBulletBaseMK4 bullet = (EntityBulletBaseMK4) entity; if(bullet.accel < 4) bullet.accel += 0.4D; if(bullet.getThrower() == null || !(bullet.getThrower() instanceof EntityPlayer)) return; - + EntityPlayer player = (EntityPlayer) bullet.getThrower(); if(Vec3.createVectorHelper(bullet.posX - player.posX, bullet.posY - player.posY, bullet.posZ - player.posZ).lengthVector() > 100) return; if(player.getHeldItem() == null || !(player.getHeldItem().getItem() instanceof ItemGunBaseNT) || !ItemGunBaseNT.getIsAiming(player.getHeldItem())) return; - + MovingObjectPosition mop = Library.rayTrace(player, 200, 1); if(mop == null || mop.hitVec == null) return; - + Vec3 vec = Vec3.createVectorHelper(mop.hitVec.xCoord - bullet.posX, mop.hitVec.yCoord - bullet.posY, mop.hitVec.zCoord - bullet.posZ); if(vec.lengthVector() < 3) return; vec = vec.normalize(); - + double speed = Vec3.createVectorHelper(bullet.motionX, bullet.motionY, bullet.motionZ).lengthVector(); bullet.motionX = vec.xCoord * speed; bullet.motionY = vec.yCoord * speed; bullet.motionZ = vec.zCoord * speed; }; - + // IMPACT public static BiConsumer LAMBDA_STANDARD_EXPLODE = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; @@ -110,7 +110,7 @@ public class XFactoryRocket { public static BiConsumer LAMBDA_STANDARD_EXPLODE_PHOSPHORUS = (bullet, mop) -> { spawnFire(bullet, mop, true, 600); }; - + public static void spawnFire(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, boolean phosphorus, int duration) { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; World world = bullet.worldObj; @@ -135,18 +135,18 @@ public class XFactoryRocket { } } } - + public static BulletConfig makeRPZB(BulletConfig original) { return original.clone(); } public static BulletConfig makeQD(BulletConfig original) { return original.clone().setLife(400).setOnUpdate(LAMBDA_STEERING_ACCELERATE); } public static BulletConfig makeML(BulletConfig original) { return original.clone(); } - + //this is starting to get messy but we need to put this crap *somewhere* and fragmenting it into a billion classes with two methods each just isn't gonna help public static void init() { rocket_template = new BulletConfig[5]; - + BulletConfig baseRocket = new BulletConfig().setLife(300).setSelfDamageDelay(10).setVel(0F).setGrav(0D).setOnEntityHit(null).setOnRicochet(null).setOnUpdate(LAMBDA_STANDARD_ACCELERATE); - + rocket_template[0] = baseRocket.clone().setItem(EnumAmmo.ROCKET_HE).setOnImpact(LAMBDA_STANDARD_EXPLODE); rocket_template[1] = baseRocket.clone().setItem(EnumAmmo.ROCKET_HEAT).setDamage(0.5F).setOnImpact(LAMBDA_STANDARD_EXPLODE_HEAT); rocket_template[2] = baseRocket.clone().setItem(EnumAmmo.ROCKET_DEMO).setDamage(0.75F).setOnImpact(LAMBDA_STANDARD_EXPLODE_DEMO); @@ -156,7 +156,7 @@ public class XFactoryRocket { rocket_rpzb = new BulletConfig[rocket_template.length]; rocket_qd = new BulletConfig[rocket_template.length]; rocket_ml = new BulletConfig[rocket_template.length]; - + for(int i = 0; i < rocket_template.length; i++) { rocket_rpzb[i] = makeRPZB(rocket_template[i]); rocket_qd[i] = makeQD(rocket_template[i]); @@ -210,7 +210,7 @@ public class XFactoryRocket { public static BiConsumer LAMBDA_STINGER_SECONDARY_PRESS = (stack, ctx) -> { ItemGunStinger.setIsLockingOn(stack, true); }; public static BiConsumer LAMBDA_STINGER_SECONDARY_RELEASE = (stack, ctx) -> { ItemGunStinger.setIsLockingOn(stack, false); }; - + public static BiConsumer LAMBDA_MISSILE_LAUNCHER_PRIMARY_PRESS = (stack, ctx) -> { if(ItemGunBaseNT.getIsAiming(stack)) { int target = ItemGunStinger.getLockonTarget(ctx.getPlayer(), 150D, 20D); @@ -222,10 +222,10 @@ public class XFactoryRocket { Lego.LAMBDA_STANDARD_CLICK_PRIMARY.accept(stack, ctx); ItemGunBaseNT.setIsLockedOn(stack, false); }; - + public static BiConsumer LAMBDA_RECOIL_ROCKET = (stack, ctx) -> { }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_PANZERSCHRECK_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_PANZERSCHRECK_ANIMS = (stack, type) -> { boolean empty = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory) <= 0; switch(type) { case EQUIP: return new BusAnimation() @@ -242,7 +242,7 @@ public class XFactoryRocket { return null; }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_QUADRO_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_QUADRO_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); @@ -258,7 +258,7 @@ public class XFactoryRocket { return null; }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_MISSILE_LAUNCHER_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_MISSILE_LAUNCHER_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 1000, IType.SIN_DOWN)); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java index 6800ea13f..3237bd1d0 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java @@ -28,10 +28,10 @@ import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.particle.helper.ExplosionCreator; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.tileentity.IRepairable; import com.hbm.tileentity.IRepairable.EnumExtinguishType; import com.hbm.util.CompatExternal; @@ -52,15 +52,15 @@ import net.minecraftforge.common.util.ForgeDirection; public class XFactoryTool { public static final ResourceLocation scope = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_tool.png"); - + public static BulletConfig fext_water; public static BulletConfig fext_foam; public static BulletConfig fext_sand; - + public static BulletConfig ct_hook; public static BulletConfig ct_mortar; public static BulletConfig ct_mortar_charge; - + public static BiConsumer LAMBDA_WATER_HIT = (bullet, mop) -> { if(!bullet.worldObj.isRemote) { int ix = mop.blockX; @@ -80,7 +80,7 @@ public class XFactoryTool { bullet.setDead(); } }; - + public static Consumer LAMBDA_WATER_UPDATE = (bullet) -> { if(bullet.worldObj.isRemote) { NBTTagCompound data = new NBTTagCompound(); @@ -102,7 +102,7 @@ public class XFactoryTool { } } }; - + public static BiConsumer LAMBDA_FOAM_HIT = (bullet, mop) -> { if(!bullet.worldObj.isRemote) { int ix = mop.blockX; @@ -135,7 +135,7 @@ public class XFactoryTool { if(fizz) bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "random.fizz", 1.0F, 1.5F + bullet.worldObj.rand.nextFloat() * 0.5F); } }; - + public static Consumer LAMBDA_FOAM_UPDATE = (bullet) -> { if(bullet.worldObj.isRemote) { NBTTagCompound data = new NBTTagCompound(); @@ -149,7 +149,7 @@ public class XFactoryTool { MainRegistry.proxy.effectNT(data); } }; - + public static BiConsumer LAMBDA_SAND_HIT = (bullet, mop) -> { if(!bullet.worldObj.isRemote) { int ix = mop.blockX; @@ -174,7 +174,7 @@ public class XFactoryTool { } } }; - + public static Consumer LAMBDA_SAND_UPDATE = (bullet) -> { if(bullet.worldObj.isRemote) { NBTTagCompound data = new NBTTagCompound(); @@ -199,7 +199,7 @@ public class XFactoryTool { } bullet.ignoreFrustumCheck = true; }; - + public static BiConsumer LAMBDA_HOOK = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.BLOCK) { Vec3NT vec = new Vec3NT(-bullet.motionX, -bullet.motionY, -bullet.motionZ).normalizeSelf().multiply(0.05); @@ -207,7 +207,7 @@ public class XFactoryTool { bullet.getStuck(mop.blockX, mop.blockY, mop.blockZ, mop.sideHit); } }; - + public static BiConsumer LAMBDA_MORTAR = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return; ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5, bullet.getThrower()); @@ -219,7 +219,7 @@ public class XFactoryTool { vnt.explode(); bullet.setDead(); }; - + public static BiConsumer LAMBDA_MORTAR_CHARGE = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return; ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 15, bullet.getThrower()); @@ -246,14 +246,14 @@ public class XFactoryTool { .setOnUpdate(LAMBDA_SAND_UPDATE) .setOnEntityHit((bulletEntity, target) -> { if(target.entityHit != null) target.entityHit.extinguish(); }) .setOnRicochet(LAMBDA_SAND_HIT); - + ct_hook = new BulletConfig().setItem(EnumAmmo.CT_HOOK).setRenderRotations(false).setLife(6_000).setVel(3F).setGrav(0.035D).setDoesPenetrate(true).setDamageFalloffByPen(false) .setOnUpdate(LAMBDA_SET_HOOK).setOnImpact(LAMBDA_HOOK); ct_mortar = new BulletConfig().setItem(EnumAmmo.CT_MORTAR).setDamage(2.5F).setLife(200).setVel(3F).setGrav(0.035D) .setOnImpact(LAMBDA_MORTAR); ct_mortar_charge = new BulletConfig().setItem(EnumAmmo.CT_MORTAR_CHARGE).setDamage(5F).setLife(200).setVel(3F).setGrav(0.035D) .setOnImpact(LAMBDA_MORTAR_CHARGE); - + ModItems.gun_fireext = new ItemGunBaseNT(WeaponQuality.UTILITY, new GunConfig() .dura(5_000).draw(10).inspect(55).reloadChangeType(true).hideCrosshair(false).crosshair(Crosshair.L_CIRCLE) .rec(new Receiver(0) @@ -264,7 +264,7 @@ public class XFactoryTool { .setupStandardConfiguration() .orchestra(Orchestras.ORCHESTRA_FIREEXT) ).setUnlocalizedName("gun_fireext"); - + ModItems.gun_charge_thrower = new ItemGunChargeThrower(WeaponQuality.UTILITY, new GunConfig() .dura(3_000).draw(10).inspect(55).reloadChangeType(true).hideCrosshair(false).crosshair(Crosshair.L_CIRCUMFLEX) .rec(new Receiver(0) @@ -276,12 +276,12 @@ public class XFactoryTool { .anim(LAMBDA_CT_ANIMS).orchestra(Orchestras.ORCHESTRA_CHARGE_THROWER) ).setUnlocalizedName("gun_charge_thrower"); } - + public static BiConsumer LAMBDA_RECOIL_CT = (stack, ctx) -> { ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_CT_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_CT_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(-45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); @@ -295,7 +295,7 @@ public class XFactoryTool { .addBus("TURN", new BusAnimationSequence().addPos(0, 60, 0, 500, IType.SIN_FULL).hold(1750).addPos(0, 0, 0, 500, IType.SIN_FULL)) .addBus("ROLL", new BusAnimationSequence().hold(750).addPos(0, 0, -90, 500, IType.SIN_FULL).hold(1000).addPos(0, 0, 0, 500, IType.SIN_FULL)); } - + return null; }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/impl/ItemGunChemthrower.java b/src/main/java/com/hbm/items/weapon/sedna/impl/ItemGunChemthrower.java index 366b0df8a..630ad74fe 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/impl/ItemGunChemthrower.java +++ b/src/main/java/com/hbm/items/weapon/sedna/impl/ItemGunChemthrower.java @@ -11,7 +11,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.items.weapon.sedna.Receiver; import com.hbm.items.weapon.sedna.mags.IMagazine; import com.hbm.items.weapon.sedna.mags.MagazineFluid; -import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import api.hbm.fluidmk2.IFillableItem; import net.minecraft.entity.EntityLivingBase; @@ -20,35 +20,35 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.Vec3; public class ItemGunChemthrower extends ItemGunBaseNT implements IFillableItem { - + public static final int CONSUMPTION = 3; public ItemGunChemthrower(WeaponQuality quality, GunConfig... cfg) { super(quality, cfg); } - + @Override public boolean acceptsFluid(FluidType type, ItemStack stack) { return getFluidType(stack) == type || this.getMagCount(stack) == 0; } - + public static final int transferSpeed = 50; @Override public int tryFill(FluidType type, int amount, ItemStack stack) { - + if(!acceptsFluid(type, stack)) return amount; if(this.getMagCount(stack) == 0) this.setMagType(stack, type.getID()); - + int fill = this.getMagCount(stack); int req = this.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getCapacity(stack) - fill; int toFill = Math.min(amount, req); toFill = Math.min(toFill, transferSpeed); this.setMagCount(stack, fill + toFill); - + return amount - toFill; } - + public FluidType getFluidType(ItemStack stack) { return Fluids.fromID(this.getMagType(stack)); } @@ -69,32 +69,32 @@ public class ItemGunChemthrower extends ItemGunBaseNT implements IFillableItem { @Override public FluidType getFirstFluidType(ItemStack stack) { return Fluids.fromID(this.getMagType(stack)); } @Override public int getFill(ItemStack stack) { return this.getMagCount(stack); } - + public static int getMagType(ItemStack stack) { return ItemGunBaseNT.getValueInt(stack, MagazineFluid.KEY_MAG_TYPE + 0); } public static void setMagType(ItemStack stack, int value) { ItemGunBaseNT.setValueInt(stack, MagazineFluid.KEY_MAG_TYPE + 0, value); } public static int getMagCount(ItemStack stack) { return ItemGunBaseNT.getValueInt(stack, MagazineFluid.KEY_MAG_COUNT + 0); } public static void setMagCount(ItemStack stack, int value) { ItemGunBaseNT.setValueInt(stack, MagazineFluid.KEY_MAG_COUNT + 0, value); } - + public static BiFunction LAMBDA_CAN_FIRE = (stack, ctx) -> { return ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) >= CONSUMPTION; }; public static BiConsumer LAMBDA_FIRE = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; EntityPlayer player = ctx.getPlayer(); int index = ctx.configIndex; - ItemGunBaseNT.playAnimation(player, stack, AnimType.CYCLE, ctx.configIndex); - + ItemGunBaseNT.playAnimation(player, stack, GunAnimation.CYCLE, ctx.configIndex); + Receiver primary = ctx.config.getReceivers(stack)[0]; IMagazine mag = primary.getMagazine(stack); - + Vec3 offset = primary.getProjectileOffset(stack); double forwardOffset = offset.xCoord; double heightOffset = offset.yCoord; double sideOffset = offset.zCoord; - + EntityChemical chem = new EntityChemical(entity.worldObj, entity, sideOffset, heightOffset, forwardOffset); chem.setFluid((FluidType) mag.getType(stack, ctx.inventory)); entity.worldObj.spawnEntityInWorld(chem); - + mag.useUpAmmo(stack, ctx.inventory, CONSUMPTION); ItemGunBaseNT.setWear(stack, index, Math.min(ItemGunBaseNT.getWear(stack, index) + 1F, ctx.config.getDurability(stack))); }; diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/WeapnModG3SawedOff.java b/src/main/java/com/hbm/items/weapon/sedna/mods/WeapnModG3SawedOff.java index ce7a202e6..209ab2b71 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mods/WeapnModG3SawedOff.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/WeapnModG3SawedOff.java @@ -4,10 +4,10 @@ import java.util.function.BiFunction; import com.hbm.items.weapon.sedna.GunConfig; import com.hbm.items.weapon.sedna.factory.XFactory556mm; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.item.ItemStack; @@ -23,8 +23,8 @@ public class WeapnModG3SawedOff extends WeaponModBase { if(key == GunConfig.FUN_ANIMNATIONS) return (T) LAMBDA_G3_ANIMS; return base; } - - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_G3_ANIMS = (stack, type) -> { + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_G3_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation().addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 250, IType.SIN_FULL)); } diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModCarbineBayonet.java b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModCarbineBayonet.java index 9bd319669..e85a7e71b 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModCarbineBayonet.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModCarbineBayonet.java @@ -9,10 +9,10 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; import com.hbm.items.weapon.sedna.factory.Orchestras; import com.hbm.items.weapon.sedna.factory.XFactory44; import com.hbm.items.weapon.sedna.factory.XFactory762mm; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.util.EntityDamageUtil; import net.minecraft.block.Block; @@ -36,15 +36,15 @@ public class WeaponModCarbineBayonet extends WeaponModBase { if(key == GunConfig.I_INSPECTCANCEL) return cast(false, base); return base; } - + public static BiConsumer ORCHESTRA_CARBINE = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.INSPECT) { - + if(type == GunAnimation.INSPECT) { + if(timer == 15 && ctx.getPlayer() != null) { MovingObjectPosition mop = EntityDamageUtil.getMouseOver(ctx.getPlayer(), 3.0D); if(mop != null) { @@ -63,16 +63,16 @@ public class WeaponModCarbineBayonet extends WeaponModBase { } return; } - + Orchestras.ORCHESTRA_CARBINE.accept(stack, ctx); }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_CARBINE_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_CARBINE_ANIMS = (stack, type) -> { switch(type) { case INSPECT: return new BusAnimation() .addBus("STAB", new BusAnimationSequence().addPos(0, 1, -2, 250, IType.SIN_DOWN).hold(250).addPos(0, 1, 5, 250, IType.SIN_UP).hold(250).addPos(0, 0, 0, 500, IType.SIN_FULL)); } - + return XFactory762mm.LAMBDA_CARBINE_ANIMS.apply(stack, type); }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModGreasegun.java b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModGreasegun.java index 60ffeff59..72c41e01f 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModGreasegun.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModGreasegun.java @@ -9,7 +9,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; import com.hbm.items.weapon.sedna.factory.Orchestras; import com.hbm.particle.SpentCasing; import com.hbm.particle.helper.CasingCreator; -import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; @@ -30,15 +30,15 @@ public class WeaponModGreasegun extends WeaponModBase { if(key == GunConfig.CON_ORCHESTRA) return (T) ORCHESTRA_GREASEGUN; return base; } - + public static BiConsumer ORCHESTRA_GREASEGUN = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(timer == 1) { SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.55, aiming ? 0 : -0.125, aiming ? 0 : -0.25D, 0, 0.18, -0.12, 0.01, -7.5F + (float)entity.getRNG().nextGaussian() * 5F, 12F + (float)entity.getRNG().nextGaussian() * 5F, casing.getName()); diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModLiberatorSpeedloader.java b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModLiberatorSpeedloader.java index 8d4070708..ea60c428d 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModLiberatorSpeedloader.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModLiberatorSpeedloader.java @@ -8,15 +8,15 @@ import com.hbm.items.weapon.sedna.factory.XFactory12ga; import com.hbm.items.weapon.sedna.mags.IMagazine; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.item.ItemStack; public class WeaponModLiberatorSpeedloader extends WeaponModBase { - + public static MagazineFullReload MAG = new MagazineFullReload(0, 4); public WeaponModLiberatorSpeedloader(int id) { @@ -31,11 +31,11 @@ public class WeaponModLiberatorSpeedloader extends WeaponModBase { if(MAG.acceptedBullets.isEmpty()) MAG.acceptedBullets.addAll(originalMag.acceptedBullets); return (T) MAG; } - + return base; } - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_LIBERATOR_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_LIBERATOR_ANIMS = (stack, type) -> { switch(type) { case RELOAD: return new BusAnimation() .addBus("LATCH", new BusAnimationSequence().addPos(15, 0, 0, 100)) @@ -51,7 +51,7 @@ public class WeaponModLiberatorSpeedloader extends WeaponModBase { .addBus("LATCH", new BusAnimationSequence().addPos(15, 0, 0, 0).addPos(15, 0, 0, 250).addPos(0, 0, 0, 50).addPos(0, 0, 0, 550).addPos(15, 0, 0, 100).addPos(15, 0, 0, 600).addPos(0, 0, 0, 50)) .addBus("BREAK", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 250, IType.SIN_UP).addPos(0, 0, 0, 600).addPos(45, 0, 0, 250, IType.SIN_DOWN).addPos(45, 0, 0, 300).addPos(0, 0, 0, 150, IType.SIN_UP)); } - + return XFactory12ga.LAMBDA_LIBERATOR_ANIMS.apply(stack, type); }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModMASBayonet.java b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModMASBayonet.java index 876be1c3b..42e6b6910 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModMASBayonet.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModMASBayonet.java @@ -9,10 +9,10 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; import com.hbm.items.weapon.sedna.factory.Orchestras; import com.hbm.items.weapon.sedna.factory.XFactory44; import com.hbm.items.weapon.sedna.factory.XFactory762mm; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.util.EntityDamageUtil; import net.minecraft.block.Block; @@ -36,15 +36,15 @@ public class WeaponModMASBayonet extends WeaponModBase { if(key == GunConfig.I_INSPECTCANCEL) return cast(false, base); return base; } - + public static BiConsumer ORCHESTRA_MAS36 = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; - AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - if(type == AnimType.INSPECT) { - + if(type == GunAnimation.INSPECT) { + if(timer == 15 && ctx.getPlayer() != null) { MovingObjectPosition mop = EntityDamageUtil.getMouseOver(ctx.getPlayer(), 3.0D); if(mop != null) { @@ -63,16 +63,16 @@ public class WeaponModMASBayonet extends WeaponModBase { } return; } - + Orchestras.ORCHESTRA_MAS36.accept(stack, ctx); }; - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_MAS36_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_MAS36_ANIMS = (stack, type) -> { switch(type) { case INSPECT: return new BusAnimation() .addBus("STAB", new BusAnimationSequence().addPos(0, 1, -2, 250, IType.SIN_DOWN).hold(250).addPos(0, 1, 5, 250, IType.SIN_UP).hold(250).addPos(0, 0, 0, 500, IType.SIN_FULL)); } - + return XFactory762mm.LAMBDA_MAS36_ANIMS.apply(stack, type); }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModPanzerschreckSawedOff.java b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModPanzerschreckSawedOff.java index 7e45dfaa6..b4b9bab20 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModPanzerschreckSawedOff.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModPanzerschreckSawedOff.java @@ -10,10 +10,10 @@ import com.hbm.items.weapon.sedna.Receiver; import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; import com.hbm.items.weapon.sedna.factory.Lego; import com.hbm.items.weapon.sedna.factory.XFactoryRocket; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; -import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.util.EntityDamageUtil; import com.hbm.util.DamageResistanceHandler.DamageClass; @@ -32,13 +32,13 @@ public class WeaponModPanzerschreckSawedOff extends WeaponModBase { return base; } - @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_PANZERSCHRECK_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_PANZERSCHRECK_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation().addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 250, IType.SIN_DOWN)); } return XFactoryRocket.LAMBDA_PANZERSCHRECK_ANIMS.apply(stack, type); }; - + public static BiConsumer LAMBDA_FIRE = (stack, ctx) -> { Lego.LAMBDA_STANDARD_FIRE.accept(stack, ctx); if(ctx.entity != null) { diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index 524319f01..e61fd0082 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -44,7 +44,7 @@ public class PacketDispatcher { //Signals server to do coord based satellite stuff wrapper.registerMessage(SatCoordPacket.Handler.class, SatCoordPacket.class, i++, Side.SERVER); //Triggers gun animations of the client - wrapper.registerMessage(GunAnimationPacket.Handler.class, GunAnimationPacket.class, i++, Side.CLIENT); + wrapper.registerMessage(HbmAnimationPacket.Handler.class, HbmAnimationPacket.class, i++, Side.CLIENT); //Sends a funi text to display like a music disc announcement wrapper.registerMessage(PlayerInformPacket.Handler.class, PlayerInformPacket.class, i++, Side.CLIENT); //Universal keybind packet diff --git a/src/main/java/com/hbm/packet/toclient/GunAnimationPacket.java b/src/main/java/com/hbm/packet/toclient/HbmAnimationPacket.java similarity index 68% rename from src/main/java/com/hbm/packet/toclient/GunAnimationPacket.java rename to src/main/java/com/hbm/packet/toclient/HbmAnimationPacket.java index 7409d41e6..389afb680 100644 --- a/src/main/java/com/hbm/packet/toclient/GunAnimationPacket.java +++ b/src/main/java/com/hbm/packet/toclient/HbmAnimationPacket.java @@ -9,10 +9,11 @@ import com.hbm.items.weapon.sedna.GunConfig; import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.items.weapon.sedna.Receiver; import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.HbmAnimations; -import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.anim.HbmAnimations.Animation; +import com.hbm.util.EnumUtil; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; @@ -24,51 +25,51 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -public class GunAnimationPacket implements IMessage { +public class HbmAnimationPacket implements IMessage { public short type; public int receiverIndex; - public int gunIndex; + public int itemIndex; - public GunAnimationPacket() { } + public HbmAnimationPacket() { } - public GunAnimationPacket(int type) { + public HbmAnimationPacket(int type) { this.type = (short) type; this.receiverIndex = 0; - this.gunIndex = 0; + this.itemIndex = 0; } - public GunAnimationPacket(int type, int rec) { + public HbmAnimationPacket(int type, int rec) { this.type = (short) type; this.receiverIndex = rec; - this.gunIndex = 0; + this.itemIndex = 0; } - public GunAnimationPacket(int type, int rec, int gun) { + public HbmAnimationPacket(int type, int rec, int gun) { this.type = (short) type; this.receiverIndex = rec; - this.gunIndex = gun; + this.itemIndex = gun; } @Override public void fromBytes(ByteBuf buf) { type = buf.readShort(); receiverIndex = buf.readInt(); - gunIndex = buf.readInt(); + itemIndex = buf.readInt(); } @Override public void toBytes(ByteBuf buf) { buf.writeShort(type); buf.writeInt(receiverIndex); - buf.writeInt(gunIndex); + buf.writeInt(itemIndex); } - public static class Handler implements IMessageHandler { + public static class Handler implements IMessageHandler { @Override @SideOnly(Side.CLIENT) - public IMessage onMessage(GunAnimationPacket m, MessageContext ctx) { + public IMessage onMessage(HbmAnimationPacket m, MessageContext ctx) { try { @@ -79,9 +80,9 @@ public class GunAnimationPacket implements IMessage { if(stack == null) return null; if(stack.getItem() instanceof ItemGunBaseNT) { - handleSedna(player, stack, slot, AnimType.values()[m.type], m.receiverIndex, m.gunIndex); + handleSedna(player, stack, slot, GunAnimation.values()[m.type], m.receiverIndex, m.itemIndex); } else if(stack.getItem() instanceof IAnimatedItem) { - handleItem(player, stack, slot, AnimType.values()[m.type], m.receiverIndex, m.gunIndex); + handleItem(player, stack, slot, m.type, m.receiverIndex, m.itemIndex); } } catch(Exception x) { } @@ -89,11 +90,11 @@ public class GunAnimationPacket implements IMessage { return null; } - public static void handleSedna(EntityPlayer player, ItemStack stack, int slot, AnimType type, int receiverIndex, int gunIndex) { + public static void handleSedna(EntityPlayer player, ItemStack stack, int slot, GunAnimation type, int receiverIndex, int gunIndex) { ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); GunConfig config = gun.getConfig(stack, gunIndex); - if(type == AnimType.CYCLE) { + if(type == GunAnimation.CYCLE) { if(gunIndex < gun.lastShot.length) gun.lastShot[gunIndex] = System.currentTimeMillis(); gun.shotRand = player.worldObj.rand.nextDouble(); @@ -105,25 +106,26 @@ public class GunAnimationPacket implements IMessage { } } - BiFunction anims = config.getAnims(stack); + BiFunction anims = config.getAnims(stack); BusAnimation animation = anims.apply(stack, type); - if(animation == null && (type == AnimType.ALT_CYCLE || type == AnimType.CYCLE_EMPTY)) { - animation = anims.apply(stack, AnimType.CYCLE); + if(animation == null && (type == GunAnimation.ALT_CYCLE || type == GunAnimation.CYCLE_EMPTY)) { + animation = anims.apply(stack, GunAnimation.CYCLE); } if(animation != null) { Minecraft.getMinecraft().entityRenderer.itemRenderer.resetEquippedProgress(); Minecraft.getMinecraft().entityRenderer.itemRenderer.itemToRender = stack; - boolean isReloadAnimation = type == AnimType.RELOAD || type == AnimType.RELOAD_CYCLE; + boolean isReloadAnimation = type == GunAnimation.RELOAD || type == GunAnimation.RELOAD_CYCLE; if(isReloadAnimation && ArmorTrenchmaster.isTrenchMaster(player)) animation.setTimeMult(0.5D); HbmAnimations.hotbar[slot][gunIndex] = new Animation(stack.getItem().getUnlocalizedName(), System.currentTimeMillis(), animation, isReloadAnimation && config.getReloadAnimSequential(stack)); } } - public static void handleItem(EntityPlayer player, ItemStack stack, int slot, AnimType type, int receiverIndex, int itemIndex) { - IAnimatedItem item = (IAnimatedItem) stack.getItem(); - BusAnimation animation = item.getAnimation(type, stack); + public static void handleItem(EntityPlayer player, ItemStack stack, int slot, short type, int receiverIndex, int itemIndex) { + IAnimatedItem item = (IAnimatedItem) stack.getItem(); + Class> animClass = item.getEnum(); + BusAnimation animation = item.getAnimation(EnumUtil.grabEnumSafely(animClass, type), stack); if(animation != null) { HbmAnimations.hotbar[slot][itemIndex] = new Animation(stack.getItem().getUnlocalizedName(), System.currentTimeMillis(), animation); diff --git a/src/main/java/com/hbm/render/anim/AnimationEnums.java b/src/main/java/com/hbm/render/anim/AnimationEnums.java new file mode 100644 index 000000000..7c91e468f --- /dev/null +++ b/src/main/java/com/hbm/render/anim/AnimationEnums.java @@ -0,0 +1,27 @@ +package com.hbm.render.anim; + +public class AnimationEnums { + + // A NOTE ON SHOTGUN STYLE RELOADS + // Make sure the RELOAD adds shells, not just RELOAD_CYCLE, they all proc once for each loaded shell + public static enum GunAnimation { + RELOAD, //either a full reload or start of a reload + RELOAD_CYCLE, //animation that plays for every individual round (for shotguns and similar single round loading weapons) + RELOAD_END, //animation for transitioning from our RELOAD_CYCLE to idle + CYCLE, //animation for every firing cycle + CYCLE_EMPTY, //animation for the final shot in the magazine + CYCLE_DRY, //animation for trying to fire, but no round is available + ALT_CYCLE, //animation for alt fire cycles + SPINUP, //animation for actionstart + SPINDOWN, //animation for actionend + EQUIP, //animation for drawing the weapon + INSPECT, //animation for inspecting the weapon + JAMMED, //animation for jammed weapons + } + + public static enum ToolAnimation { + SWING, + EQUIP, + } + +} diff --git a/src/main/java/com/hbm/render/anim/HbmAnimations.java b/src/main/java/com/hbm/render/anim/HbmAnimations.java index 831927b52..7078f668b 100644 --- a/src/main/java/com/hbm/render/anim/HbmAnimations.java +++ b/src/main/java/com/hbm/render/anim/HbmAnimations.java @@ -18,24 +18,6 @@ public class HbmAnimations { //animation is playing, though this will cancel the animation entirely. public static final Animation[][] hotbar = new Animation[9][8]; //now with 8 parallel rails per slot! time to get railed! - public static enum AnimType { - RELOAD, //either a full reload or start of a reload - RELOAD_CYCLE, //animation that plays for every individual round (for shotguns and similar single round loading weapons) - RELOAD_END, //animation for transitioning from our RELOAD_CYCLE to idle - CYCLE, //animation for every firing cycle / weapon swing - CYCLE_EMPTY, //animation for the final shot in the magazine - CYCLE_DRY, //animation for trying to fire, but no round is available - ALT_CYCLE, //animation for alt fire cycles - SPINUP, //animation for actionstart - SPINDOWN, //animation for actionend - EQUIP, //animation for drawing the weapon - INSPECT, //animation for inspecting the weapon - JAMMED, //animation for jammed weapons - } - - // A NOTE ON SHOTGUN STYLE RELOADS - // Make sure the RELOAD adds shells, not just RELOAD_CYCLE, they all proc once for each loaded shell - public static class Animation { //the "name" of the animation slot. if the item has a different key than @@ -55,9 +37,7 @@ public class HbmAnimations { } public Animation(String key, long startMillis, BusAnimation animation, boolean holdLastFrame) { - this.key = key; - this.startMillis = startMillis; - this.animation = animation; + this(key, startMillis, animation); this.holdLastFrame = holdLastFrame; } } diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java index 8dfd5df3a..b628ce34a 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java @@ -9,8 +9,8 @@ import com.hbm.items.weapon.sedna.mags.IMagazine; import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; import com.hbm.particle.SpentCasing; +import com.hbm.render.anim.AnimationEnums.GunAnimation; import com.hbm.render.anim.HbmAnimations; -import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; @@ -29,7 +29,7 @@ public class ItemRenderCongoLake extends ItemRenderWeaponBase { @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); - + float offset = 0.8F; standardAimingTransform(stack, -1.5F * offset, -2F * offset, 1.25F * offset, @@ -38,12 +38,12 @@ public class ItemRenderCongoLake extends ItemRenderWeaponBase { @Override public void renderFirstPerson(ItemStack stack) { - + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.congolake_tex); double scale = 0.5D; GL11.glScaled(scale, scale, scale); - + HbmAnimations.applyRelevantTransformation("Gun"); ResourceManager.congolake.renderPart("Gun"); @@ -94,30 +94,30 @@ public class ItemRenderCongoLake extends ItemRenderWeaponBase { GL11.glPushMatrix(); { IMagazine mag = gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack); - if(gun.getLastAnim(stack, 0) != AnimType.INSPECT || mag.getAmount(stack, MainRegistry.proxy.me().inventory) > 0) { //omit when inspecting and no shell is loaded - + if(gun.getLastAnim(stack, 0) != GunAnimation.INSPECT || mag.getAmount(stack, MainRegistry.proxy.me().inventory) > 0) { //omit when inspecting and no shell is loaded + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.casings_tex); - + HbmAnimations.applyRelevantTransformation("Shell"); - + SpentCasing casing = mag.getCasing(stack, MainRegistry.proxy.me().inventory); int[] colors = casing != null ? casing.getColors() : new int[] { SpentCasing.COLOR_CASE_40MM }; - + Color shellColor = new Color(colors[0]); GL11.glColor3f(shellColor.getRed() / 255F, shellColor.getGreen() / 255F, shellColor.getBlue() / 255F); ResourceManager.congolake.renderPart("Shell"); - + Color shellForeColor = new Color(colors.length > 1 ? colors[1] : colors[0]); GL11.glColor3f(shellForeColor.getRed() / 255F, shellForeColor.getGreen() / 255F, shellForeColor.getBlue() / 255F); ResourceManager.congolake.renderPart("ShellFore"); - + GL11.glColor3f(1F, 1F, 1F); } } GL11.glPopMatrix(); double smokeScale = 0.25; - + GL11.glShadeModel(GL11.GL_SMOOTH); GL11.glPushMatrix(); GL11.glTranslated(0, 1.75, 4.25); @@ -170,7 +170,7 @@ public class ItemRenderCongoLake extends ItemRenderWeaponBase { @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); - + GL11.glShadeModel(GL11.GL_SMOOTH); Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.congolake_tex); ResourceManager.congolake.renderAll();