diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java index e7787c983..bccb184c5 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java @@ -166,7 +166,9 @@ public class GunFactory { FURNITURE_GREEN, FURNITURE_BLACK, BAYONET, STACK_MAG, SKIN_SATURNITE, LAS_SHOTGUN, LAS_CAPACITOR, LAS_AUTO, - NICKEL, DOUBLOONS + NICKEL, DOUBLOONS, + DRILL_HSS, DRILL_WEAPONSTEEL, DRILL_TCALLOY, DRILL_SATURNITE, + ENGINE_DIESEL, ENGINE_AVIATION, ENGINE_ELECTRIC, ENGINE_TURBO, } public static enum EnumModCaliber { diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryDrill.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryDrill.java index 65ef98f00..a45f3eccc 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryDrill.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryDrill.java @@ -1,6 +1,7 @@ package com.hbm.items.weapon.sedna.factory; import java.util.function.BiConsumer; +import java.util.function.BiFunction; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.fluid.Fluids; @@ -15,7 +16,11 @@ import com.hbm.items.weapon.sedna.impl.ItemGunDrill; import com.hbm.items.weapon.sedna.mags.IMagazine; import com.hbm.items.weapon.sedna.mags.MagazineLiquidEngine; import com.hbm.items.weapon.sedna.mods.WeaponModManager; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.HbmAnimations; import com.hbm.render.anim.AnimationEnums.GunAnimation; +import com.hbm.render.anim.BusAnimationKeyframe.IType; import com.hbm.util.EntityDamageUtil; import net.minecraft.block.Block; @@ -42,12 +47,12 @@ public class XFactoryDrill { ModItems.gun_drill = new ItemGunDrill(WeaponQuality.UTILITY, new GunConfig() .dura(3_000).draw(10).inspect(55).hideCrosshair(false).crosshair(Crosshair.L_CIRCUMFLEX) .rec(new Receiver(0) - .dmg(10F).delay(20).auto(true).jam(0) + .dmg(10F).delay(20).dry(30).auto(true).jam(0) .mag(new MagazineLiquidEngine(0, 4_000, Fluids.GASOLINE, Fluids.GASOLINE_LEADED, Fluids.COALGAS, Fluids.COALGAS_LEADED)) .offset(1, -0.0625 * 2.5, -0.25D) .canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(LAMBDA_DRILL_FIRE)) .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD).decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) - //.anim(LAMBDA_CT_ANIMS).orchestra(Orchestras.ORCHESTRA_CHARGE_THROWER) + .anim(LAMBDA_DRILL_ANIMS) ).setUnlocalizedName("gun_drill"); } @@ -75,7 +80,7 @@ public class XFactoryDrill { } if(player != null && mop.typeOfHit == mop.typeOfHit.BLOCK) { - int aoe = getModdableAoE(stack, 1); + int aoe = player.isSneaking() ? 0 : getModdableAoE(stack, 1); for(int i = -aoe; i <= aoe; i++) for(int j = -aoe; j <= aoe; j++) for(int k = -aoe; k <= aoe; k++) { breakExtraBlock(player.worldObj, mop.blockX + i, mop.blockY + j, mop.blockZ + k, player, mop.blockX, mop.blockY, mop.blockZ); } @@ -113,4 +118,24 @@ public class XFactoryDrill { public static float getModdablePiercing(ItemStack stack, float base) { return WeaponModManager.eval(base, stack, F_PIERCE, ModItems.gun_drill, 0); } public static int getModdableAoE(ItemStack stack, int base) { return WeaponModManager.eval(base, stack, I_AOE, ModItems.gun_drill, 0); } public static int getModdableHarvestLevel(ItemStack stack, int base) { return WeaponModManager.eval(base, stack, I_HARVEST, ModItems.gun_drill, 0); } + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_DRILL_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().setPos(-1, 0, 0).addPos(0, 0, 0, 750, IType.SIN_DOWN)); + case CYCLE: + double deploy = HbmAnimations.getRelevantTransformation("DEPLOY")[0]; + double spin = HbmAnimations.getRelevantTransformation("SPIN")[2] % 360; + return new BusAnimation() + .addBus("DEPLOY", new BusAnimationSequence().setPos(deploy, 0, 0).addPos(1, 0, 0, (int) (500 * (1 - deploy)), IType.SIN_FULL).hold(1000).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("SPIN", new BusAnimationSequence().setPos(spin, 0, 0).addPos(spin + 360 * 1.5, 0, 0, 1500).addPos(spin + 360 * 2, 0, 0, 750, IType.SIN_DOWN)); + case CYCLE_DRY: return new BusAnimation() + .addBus("DEPLOY", new BusAnimationSequence().addPos(0.25, 0, 0, 250, IType.SIN_FULL).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("SPIN", new BusAnimationSequence().addPos(360 * 1, 0, 0, 1500, IType.SIN_DOWN)); + case INSPECT: return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(-45, 0, 0, 500, IType.SIN_FULL).hold(1000).addPos(0, 0, 0, 500, IType.SIN_DOWN)); + } + + return null; + }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineLiquidEngine.java b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineLiquidEngine.java index 4dd8e984b..5f0469ed3 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineLiquidEngine.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineLiquidEngine.java @@ -47,7 +47,7 @@ public class MagazineLiquidEngine implements IMagazine { @Override public SpentCasing getCasing(ItemStack stack, IInventory inventory) { return null; } @Override public ItemStack getIconForHUD(ItemStack stack, EntityPlayer player) { return new ItemStack(ModItems.fluid_icon, 1, this.getType(stack, player.inventory).getID()); } - @Override public String reportAmmoStateForHUD(ItemStack stack, EntityPlayer player) { return getAmount(stack, player.inventory) + "mB"; } + @Override public String reportAmmoStateForHUD(ItemStack stack, EntityPlayer player) { return getAmount(stack, player.inventory) + "/" + this.capacity + "mB"; } @Override public void setAmountBeforeReload(ItemStack stack, int amount) { ItemGunBaseNT.setValueInt(stack, KEY_MAG_PREV + index, amount); } @Override public int getAmountBeforeReload(ItemStack stack) { return ItemGunBaseNT.getValueInt(stack, KEY_MAG_PREV + index); } diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDrill.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDrill.java index e16341924..709c306b1 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDrill.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDrill.java @@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.items.weapon.sedna.mags.IMagazine; import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; @@ -35,9 +36,26 @@ public class ItemRenderDrill extends ItemRenderWeaponBase { IMagazine mag = gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack); double gauge = (double) mag.getAmount(stack, null) / (double) mag.getCapacity(stack); - float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] deploy = HbmAnimations.getRelevantTransformation("DEPLOY"); + double[] lift = HbmAnimations.getRelevantTransformation("LIFT"); + double[] spin = HbmAnimations.getRelevantTransformation("SPIN"); + + /*float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; GL11.glRotated(15 * (1 - aimingProgress), 0, 1, 0); - GL11.glRotated(-10 * (1 - aimingProgress), 1, 0, 0); + GL11.glRotated(-10 * (1 - aimingProgress), 1, 0, 0);*/ + + GL11.glRotated(15 * (1 - deploy[0] * 0.5), 0, 1, 0); + GL11.glRotated(-10 * (1 - deploy[0] * 0.5), 1, 0, 0); + + GL11.glTranslated(0, 2, -6); + GL11.glRotated(equip[0] * -45, 0, 1, 0); + GL11.glRotated(equip[0] * -20, 1, 0, 0); + GL11.glTranslated(0, -2, 6); + + GL11.glRotated(lift[0], 1, 0, 0); + + GL11.glTranslated(0, 0, deploy[0]); GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.drill.renderPart("Base"); @@ -51,7 +69,7 @@ public class ItemRenderDrill extends ItemRenderWeaponBase { ResourceManager.drill.renderPart("Gauge"); GL11.glPopMatrix(); - double rot = System.currentTimeMillis() / 3 % 360D; + double rot = spin[0]; double rot2 = rot * 5; GL11.glPushMatrix(); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index b44c7a5ff..8da8f4d1a 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2133,6 +2133,7 @@ item.gun_cryolator_ammo.name=Kryozelle item.gun_detonator.name=Laserzünder item.gun_double_barrel.name=Ein alter Klassiker item.gun_double_barrel_sacred_dragon.name=Sacred Dragon +item.gun_drill.name=Motorisierter Bohrer item.gun_fatman.name=Fat Man item.gun_fireext.name=Feuerlöscher item.gun_flamer.name=Flammenwerfer @@ -3659,6 +3660,14 @@ item.weapon_mod_generic.wsteel_dura.name=Langlebige Waffenstahl-Teile item.weapon_mod_special.bayonet.name=Bayonet item.weapon_mod_special.choke.name=Choke item.weapon_mod_special.doubloons.name=Zwei Golddublonen +item.weapon_mod_special.drill_hss.name=Motorisierter Bohrer - Schnellarbeitsstahl-Bohrkopf +item.weapon_mod_special.drill_saturnite.name=Motorisierter Bohrer - Saturnit-Bohrkopf +item.weapon_mod_special.drill_tcalloy.name=Motorisierter Bohrer - Technetiumstahl-Bohrkopf +item.weapon_mod_special.drill_weaponsteel.name=Motorisierter Bohrer - Waffenstahl-Bohrkopf +item.weapon_mod_special.engine_aviation.name=Motorisierter Bohrer - Flugzeugmotor +item.weapon_mod_special.engine_diesel.name=Motorisierter Bohrer - Dieselmotor +item.weapon_mod_special.engine_electric.name=Motorisierter Bohrer - Electromotor +item.weapon_mod_special.engine_turbo.name=Motorisierter Bohrer - Turbomotor item.weapon_mod_special.furniture_black.name=Polymergriff (Schwarz) item.weapon_mod_special.furniture_green.name=Polymergriff (Grün) item.weapon_mod_special.greasegun.name=Grease Gun Modernisierungskit diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 6ef224c31..c68ebd25f 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2975,6 +2975,7 @@ item.gun_cryolator_ammo.name=Cryo Cell item.gun_detonator.name=Laser Detonator item.gun_double_barrel.name=An Old Classic item.gun_double_barrel_sacred_dragon.name=Sacred Dragon +item.gun_drill.name=Powered Drill item.gun_fatman.name=Fat Man item.gun_fireext.name=Fire Extinguisher item.gun_flamer.name=Flamethrower @@ -4806,6 +4807,14 @@ item.weapon_mod_generic.wsteel_dura.name=High-Durability Weapon Steel Parts item.weapon_mod_special.bayonet.name=Bayonet item.weapon_mod_special.choke.name=Choke item.weapon_mod_special.doubloons.name=Two Gold Doubloons +item.weapon_mod_special.drill_hss.name=Powered Drill - High-Speed Steel Drillbit +item.weapon_mod_special.drill_saturnite.name=Powered Drill - Saturnite Drillbit +item.weapon_mod_special.drill_tcalloy.name=Powered Drill - Technetium Steel Drillbit +item.weapon_mod_special.drill_weaponsteel.name=Powered Drill - Weapon Steel Drillbit +item.weapon_mod_special.engine_aviation.name=Powered Drill - Aircraft Engine +item.weapon_mod_special.engine_diesel.name=Powered Drill - Diesel Engine +item.weapon_mod_special.engine_electric.name=Powered Drill - Electric Engine +item.weapon_mod_special.engine_turbo.name=Powered Drill - Turbo Engine item.weapon_mod_special.furniture_black.name=Polymer Furniture (Black) item.weapon_mod_special.furniture_green.name=Polymer Furniture (Green) item.weapon_mod_special.greasegun.name=Grease Gun Modernization Kit diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_sheet.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_sheet.png index 3bad2cfda..4eb0e8aa0 100644 Binary files a/src/main/resources/assets/hbm/textures/items/weapon_mod_sheet.png and b/src/main/resources/assets/hbm/textures/items/weapon_mod_sheet.png differ diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_special.drill_hss.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_special.drill_hss.png new file mode 100644 index 000000000..0cef36ea0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/weapon_mod_special.drill_hss.png differ diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_special.drill_saturnite.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_special.drill_saturnite.png new file mode 100644 index 000000000..bfb198125 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/weapon_mod_special.drill_saturnite.png differ diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_special.drill_tcalloy.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_special.drill_tcalloy.png new file mode 100644 index 000000000..a71e7431c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/weapon_mod_special.drill_tcalloy.png differ diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_special.drill_weaponsteel.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_special.drill_weaponsteel.png new file mode 100644 index 000000000..ff7f8b0de Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/weapon_mod_special.drill_weaponsteel.png differ diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_special.engine_aviation.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_special.engine_aviation.png new file mode 100644 index 000000000..8f99fe37f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/weapon_mod_special.engine_aviation.png differ diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_special.engine_diesel.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_special.engine_diesel.png new file mode 100644 index 000000000..b61f36045 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/weapon_mod_special.engine_diesel.png differ diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_special.engine_electric.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_special.engine_electric.png new file mode 100644 index 000000000..58f2bb3bb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/weapon_mod_special.engine_electric.png differ diff --git a/src/main/resources/assets/hbm/textures/items/weapon_mod_special.engine_turbo.png b/src/main/resources/assets/hbm/textures/items/weapon_mod_special.engine_turbo.png new file mode 100644 index 000000000..574e2b442 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/weapon_mod_special.engine_turbo.png differ