From 75df8fb94504f68c3de11f9076211073f40ae42a Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 1 Oct 2024 21:35:43 +0200 Subject: [PATCH] ATLAS --- .../gui/GUIMachineRotaryFurnace.java | 2 +- .../recipes/RotaryFurnaceRecipes.java | 15 ++- src/main/java/com/hbm/items/ModItems.java | 4 +- .../java/com/hbm/items/machine/ItemMold.java | 8 ++ .../weapon/sedna/factory/GunFactory.java | 6 + .../sedna/factory/GunFactoryClient.java | 3 + .../weapon/sedna/factory/Orchestras.java | 29 ++++- .../weapon/sedna/factory/XFactory357.java | 79 +++++++++++ .../sedna/factory/XFactoryBlackPowder.java | 2 +- .../item/weapon/sedna/ItemRenderAtlas.java | 123 ++++++++++++++++++ .../tileentity/RenderRotaryFurnace.java | 7 +- .../TileEntityMachineRotaryFurnace.java | 9 ++ src/main/resources/assets/hbm/lang/de_DE.lang | 7 + src/main/resources/assets/hbm/lang/en_US.lang | 7 + .../textures/items/ammo_standard.m357_ap.png | Bin 0 -> 237 bytes .../items/ammo_standard.m357_express.png | Bin 0 -> 265 bytes .../textures/items/ammo_standard.m357_fmj.png | Bin 0 -> 233 bytes .../textures/items/ammo_standard.m357_jhp.png | Bin 0 -> 236 bytes .../textures/items/ammo_standard.m357_sp.png | Bin 0 -> 233 bytes .../hbm/textures/items/mold_barrel_heavy.png | Bin 0 -> 214 bytes .../hbm/textures/items/mold_barrel_light.png | Bin 0 -> 235 bytes .../assets/hbm/textures/items/mold_grip.png | Bin 0 -> 251 bytes .../hbm/textures/items/mold_mechanism.png | Bin 0 -> 293 bytes .../textures/items/mold_receiver_heavy.png | Bin 0 -> 244 bytes .../textures/items/mold_receiver_light.png | Bin 0 -> 244 bytes .../hbm/textures/items/mold_steel_base.png | Bin 0 -> 187 bytes .../assets/hbm/textures/items/mold_stock.png | Bin 0 -> 238 bytes 27 files changed, 293 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java create mode 100644 src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.m357_ap.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.m357_express.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.m357_fmj.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.m357_jhp.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.m357_sp.png create mode 100644 src/main/resources/assets/hbm/textures/items/mold_barrel_heavy.png create mode 100644 src/main/resources/assets/hbm/textures/items/mold_barrel_light.png create mode 100644 src/main/resources/assets/hbm/textures/items/mold_grip.png create mode 100644 src/main/resources/assets/hbm/textures/items/mold_mechanism.png create mode 100644 src/main/resources/assets/hbm/textures/items/mold_receiver_heavy.png create mode 100644 src/main/resources/assets/hbm/textures/items/mold_receiver_light.png create mode 100644 src/main/resources/assets/hbm/textures/items/mold_steel_base.png create mode 100644 src/main/resources/assets/hbm/textures/items/mold_stock.png diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRotaryFurnace.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRotaryFurnace.java index 873694184..84a46915d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRotaryFurnace.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRotaryFurnace.java @@ -60,7 +60,7 @@ public class GUIMachineRotaryFurnace extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - int p = (int) (furnace.progress * 33); + int p = (int) Math.ceil(furnace.progress * 33); drawTexturedModalRect(guiLeft + 63, guiTop + 30, 176, 0, p, 10); if(furnace.maxBurnTime > 0) { diff --git a/src/main/java/com/hbm/inventory/recipes/RotaryFurnaceRecipes.java b/src/main/java/com/hbm/inventory/recipes/RotaryFurnaceRecipes.java index 713474b35..87464341a 100644 --- a/src/main/java/com/hbm/inventory/recipes/RotaryFurnaceRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/RotaryFurnaceRecipes.java @@ -16,10 +16,13 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; import com.hbm.items.machine.ItemScraps; @@ -31,10 +34,16 @@ public class RotaryFurnaceRecipes extends SerializableRecipe { @Override public void registerDefaults() { + + recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(1)), 100, 100, new OreDictStack(IRON.ingot()), new OreDictStack(COAL.gem()))); + recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(1)), 100, 100, new OreDictStack(IRON.ingot()), new OreDictStack(ANY_COKE.gem()))); - recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(1)), 200, 100, - new OreDictStack(IRON.ingot()), new OreDictStack(ANY_COKE.gem()) - )); + recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(2)), 100, 100, new OreDictStack(IRON.fragment(), 9), new OreDictStack(COAL.gem()))); + recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(3)), 100, 100, new OreDictStack(IRON.fragment(), 9), new OreDictStack(ANY_COKE.gem()))); + recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(4)), 200, 100, new OreDictStack(IRON.fragment(), 9), new OreDictStack(ANY_COKE.gem()), new ComparableStack(ModItems.powder_flux))); + + recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_GUNMETAL, INGOT.q(4)), 200, 100, new OreDictStack(CU.ingot(), 3), new OreDictStack(AL.ingot(), 1))); + recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_WEAPONSTEEL, INGOT.q(1)), 200, 400, new FluidStack(Fluids.GAS_COKER, 100), new OreDictStack(STEEL.ingot(), 1), new ComparableStack(ModItems.powder_flux, 2))); } public static HashMap getRecipes() { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index f30ea49fc..9b13f5a59 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1618,8 +1618,9 @@ public class ModItems { public static Item gun_debug; public static Item ammo_debug; - + public static Item gun_pepperbox; + public static Item gun_atlas; public static Item ammo_standard; @@ -7021,6 +7022,7 @@ public class ModItems { GameRegistry.registerItem(ammo_debug, ammo_debug.getUnlocalizedName()); GameRegistry.registerItem(gun_pepperbox, gun_pepperbox.getUnlocalizedName()); + GameRegistry.registerItem(gun_atlas, gun_atlas.getUnlocalizedName()); GameRegistry.registerItem(ammo_standard, ammo_standard.getUnlocalizedName()); //Ammo diff --git a/src/main/java/com/hbm/items/machine/ItemMold.java b/src/main/java/com/hbm/items/machine/ItemMold.java index 81b8fb0b8..b6467c310 100644 --- a/src/main/java/com/hbm/items/machine/ItemMold.java +++ b/src/main/java/com/hbm/items/machine/ItemMold.java @@ -80,6 +80,14 @@ public class ItemMold extends Item { registerMold(new MoldSingle( 16, S, "c9", new ItemStack(ModItems.casing_9), Mats.MAT_COPPER, MaterialShapes.PLATE.q(1))); registerMold(new MoldSingle( 17, S, "c50", new ItemStack(ModItems.casing_50), Mats.MAT_COPPER, MaterialShapes.PLATE.q(1))); registerMold(new MoldSingle( 18, S, "cbuckshot", new ItemStack(ModItems.casing_buckshot), Mats.MAT_COPPER, MaterialShapes.PLATE.q(1))); + + registerMold(new MoldShape( 22, S, "barrel_light", MaterialShapes.LIGHTBARREL)); + registerMold(new MoldShape( 23, S, "barrel_heavy", MaterialShapes.HEAVYBARREL)); + registerMold(new MoldShape( 24, S, "receiver_light", MaterialShapes.LIGHTRECEIVER)); + registerMold(new MoldShape( 25, S, "receiver_heavy", MaterialShapes.HEAVYRECEIVER)); + registerMold(new MoldShape( 26, S, "mechanism", MaterialShapes.MECHANISM)); + registerMold(new MoldShape( 27, S, "stock", MaterialShapes.STOCK)); + registerMold(new MoldShape( 28, S, "grip", MaterialShapes.GRIP)); } public void registerMold(Mold mold) { 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 dcc1aa49a..34ba52b61 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 @@ -47,6 +47,7 @@ public class GunFactory { ).setUnlocalizedName("gun_debug").setTextureName(RefStrings.MODID + ":gun_darter"); XFactoryBlackPowder.init(); + XFactory357.init(); /// PROXY BULLSHIT /// MainRegistry.proxy.registerGunCfg(); @@ -57,5 +58,10 @@ public class GunFactory { STONE_AP, STONE_IRON, STONE_SHOT, + M357_SP, + M357_FMJ, + M357_JHP, + M357_AP, + M357_EXPRESS, } } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java index a4b66a0c8..19efdc760 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -9,6 +9,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.items.ModItems; import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.render.item.weapon.sedna.ItemRenderAtlas; import com.hbm.render.item.weapon.sedna.ItemRenderDebug; import com.hbm.render.item.weapon.sedna.ItemRenderPepperbox; @@ -21,12 +22,14 @@ public class GunFactoryClient { //GUNS MinecraftForgeClient.registerItemRenderer(ModItems.gun_debug, new ItemRenderDebug()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_pepperbox, new ItemRenderPepperbox()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_atlas, new ItemRenderAtlas()); //PROJECTILES ammo_debug.setRenderer(RENDER_STANDARD_BULLET); ammo_debug_buckshot.setRenderer(RENDER_STANDARD_BULLET); //HUDS ((ItemGunBaseNT) ModItems.gun_debug).config_DNA.hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_pepperbox).config_DNA.hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_atlas).config_DNA.hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); } public static BiConsumer RENDER_STANDARD_BULLET = (bullet, interp) -> { 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 c2b889575..93548ffed 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 @@ -38,7 +38,7 @@ public class Orchestras { if(timer == 11) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.revolverCock", 1F, 1F); } if(type == AnimType.CYCLE_DRY) { - if(timer == 3) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 2) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.dryFireClick", 1F, 1F); if(timer == 11) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.revolverCock", 1F, 1F); } if(type == AnimType.INSPECT) { @@ -71,4 +71,31 @@ public class Orchestras { if(timer == 45) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.dryFireClick", 1F, 0.6F); } }; + + public static BiConsumer ORCHESTRA_ATLAS = (stack, ctx) -> { + EntityPlayer player = ctx.player; + AnimType type = ItemGunBaseNT.getLastAnim(stack); + int timer = ItemGunBaseNT.getAnimTimer(stack); + + if(type == AnimType.RELOAD) { + if(timer == 2) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 36) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.magSmallInsert", 1F, 1F); + if(timer == 44) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + if(type == AnimType.CYCLE) { + if(timer == 14) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.revolverCock", 1F, 0.9F); + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 2) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 14) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.revolverCock", 1F, 0.9F); + } + if(type == AnimType.INSPECT) { + if(timer == 2) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 24) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + if(type == AnimType.JAMMED) { + if(timer == 12) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 34) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + }; } 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 new file mode 100644 index 000000000..6bf4e95f2 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java @@ -0,0 +1,79 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiFunction; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +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.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.lib.RefStrings; +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; + +public class XFactory357 { + + public static BulletConfig m357_sp; + public static BulletConfig m357_fmj; + public static BulletConfig m357_jhp; + public static BulletConfig m357_ap; + public static BulletConfig m357_express; + + public static void init() { + m357_sp = new BulletConfig().setItem(EnumAmmo.M357_SP); + m357_fmj = new BulletConfig().setItem(EnumAmmo.M357_FMJ).setDamage(0.8F).setArmorPiercing(0.1F); + m357_jhp = new BulletConfig().setItem(EnumAmmo.M357_JHP).setDamage(1.5F).setArmorPiercing(-0.25F); + m357_ap = new BulletConfig().setItem(EnumAmmo.M357_AP).setDoesPenetrate(true).setDamageFalloutByPen(false); + m357_express = new BulletConfig().setItem(EnumAmmo.M357_EXPRESS).setDoesPenetrate(true).setDamage(1.5F).setWear(1.5F); + + ModItems.gun_atlas = new ItemGunBaseNT(new GunConfig() + .dura(300).draw(4).inspect(23).jam(45).crosshair(Crosshair.CIRCLE).smoke(true).orchestra(Orchestras.ORCHESTRA_ATLAS) + .rec(new Receiver(0) + .dmg(10F).delay(16).reload(55).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 6).addConfigs(m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express)) + .canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_STANDARD_FIRE).recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY) .pr(Lego.LAMBDA_STANDARD_RELOAD) .pt(Lego.LAMBDA_TOGGLE_AIM) + .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) + .anim(LAMBDA_ATLAS_ANIMS) + ).setUnlocalizedName("gun_atlas").setTextureName(RefStrings.MODID + ":gun_darter"); + } + + @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, -3, 350, IType.SIN_DOWN)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(0, 0, -3, 50).addPos(0, 0, 0, 250)) + .addBus("HAMMER", new BusAnimationSequence().addPos(0, 0, 1, 50).addPos(0, 0, 1, 550).addPos(0, 0, 0, 200)) + .addBus("DRUM", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(0, 0, 1, 200)); + case CYCLE_DRY: return new BusAnimation() + .addBus("HAMMER", new BusAnimationSequence().addPos(0, 0, 1, 50).addPos(0, 0, 1, 550).addPos(0, 0, 0, 200)) + .addBus("DRUM", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(0, 0, 1, 200)); + case RELOAD: return new BusAnimation() + .addBus("LATCH", new BusAnimationSequence().addPos(0, 0, 90, 300).addPos(0, 0, 90, 2000).addPos(0, 0, 0, 150)) + .addBus("FRONT", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(0, 0, 45, 150).addPos(0, 0, 45, 2000).addPos(0, 0, 0, 75)) + .addBus("RELOAD_ROT", new BusAnimationSequence().addPos(0, 0, 0, 300).addPos(60, 0, 0, 500).addPos(60, 0, 0, 500).addPos(0, -90, -90, 0).addPos(0, -90, -90, 600).addPos(0, 0, 0, 300).addPos(0, 0, 0, 100).addPos(-45, 0, 0, 50).addPos(-45, 0, 0, 100).addPos(0, 0, 0, 300)) + .addBus("RELOAD_MOVE", new BusAnimationSequence().addPos(0, 0, 0, 300).addPos(0, -15, 0, 1000).addPos(0, 0, 0, 450)) + .addBus("DRUM_PUSH", new BusAnimationSequence().addPos(0, 0, 0, 1600).addPos(0, 0, -5, 0).addPos(0, 0, 0, 300)); + case INSPECT: return new BusAnimation() + .addBus("LATCH", new BusAnimationSequence().addPos(0, 0, 90, 300).addPos(0, 0, 90, 1000).addPos(0, 0, 0, 150)) + .addBus("FRONT", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(0, 0, 45, 150).addPos(0, 0, 45, 1000).addPos(0, 0, 0, 75)) + .addBus("RELOAD_ROT", new BusAnimationSequence().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, 300).addPos(0, -2.5, 0, 500, IType.SIN_FULL).addPos(0, -2.5, 0, 500).addPos(0, 0, 0, 350)); + case JAMMED: return new BusAnimation() + .addBus("LATCH", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 90, 300).addPos(0, 0, 90, 1000).addPos(0, 0, 0, 150)) + .addBus("FRONT", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 0, 200).addPos(0, 0, 45, 150).addPos(0, 0, 45, 1000).addPos(0, 0, 0, 75)) + .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; + }; +} 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 1c4668282..691982117 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 @@ -28,7 +28,7 @@ public class XFactoryBlackPowder { BulletConfig shot = new BulletConfig().setItem(EnumAmmo.STONE_SHOT).setSpread(0.1F).setRicochetAngle(45).setProjectiles(6, 6).setDamage(0.5F); ModItems.gun_pepperbox = new ItemGunBaseNT(new GunConfig() - .dura(300).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(true).orchestra(Orchestras.ORCHESTRA_PEPPERBOX) + .dura(300).draw(4).inspect(23).jam(58).crosshair(Crosshair.CIRCLE).smoke(true).orchestra(Orchestras.ORCHESTRA_PEPPERBOX) .rec(new Receiver(0) .dmg(5F).delay(27).reload(67).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 6).addConfigs(stone, flint, iron, shot)) diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java new file mode 100644 index 000000000..4036dd54b --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java @@ -0,0 +1,123 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderAtlas extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + protected void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.0F * offset, -0.75F * offset, 1F * offset, + 0, -3.125 / 8D, 0.25); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bio_revolver_tex); + double scale = 0.125D; + GL11.glScaled(scale, scale, scale); + + GL11.glShadeModel(GL11.GL_SMOOTH); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] reloadMove = HbmAnimations.getRelevantTransformation("RELOAD_MOVE"); + double[] reloadRot = HbmAnimations.getRelevantTransformation("RELOAD_ROT"); + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + + GL11.glTranslated(recoil[0], recoil[1], recoil[2]); + GL11.glRotated(recoil[2] * 10, 1, 0, 0); + + GL11.glTranslated(0, 0, -7); + GL11.glRotated(equip[0], -1, 0, 0); + GL11.glTranslated(0, 0, 7); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.5, 9.25); + GL11.glRotated(90, 0, 1, 0); + this.renderSmokeNodes(gun.smokeNodes, 0.5D); + GL11.glPopMatrix(); + + GL11.glTranslated(reloadMove[0], reloadMove[1], reloadMove[2]); + + GL11.glRotated(reloadRot[0], 1, 0, 0); + GL11.glRotated(reloadRot[2], 0, 0, 1); + GL11.glRotated(reloadRot[1], 0, 1, 0); + ResourceManager.bio_revolver.renderPart("Grip"); + + GL11.glPushMatrix(); /// FRONT PUSH /// + GL11.glRotated(HbmAnimations.getRelevantTransformation("FRONT")[2], 1, 0, 0); + ResourceManager.bio_revolver.renderPart("Barrel"); + GL11.glPushMatrix(); /// LATCH PUSH /// + GL11.glTranslated(0, 2.3125, -0.875); + GL11.glRotated(HbmAnimations.getRelevantTransformation("LATCH")[2], 1, 0, 0); + GL11.glTranslated(0, -2.3125, 0.875); + ResourceManager.bio_revolver.renderPart("Latch"); + GL11.glPopMatrix(); /// LATCH POP /// + + GL11.glPushMatrix(); /// DRUM PUSH /// + GL11.glTranslated(0, 1, 0); + GL11.glRotated(HbmAnimations.getRelevantTransformation("DRUM")[2] * 60, 0, 0, 1); + GL11.glTranslated(0, -1, 0); + GL11.glTranslated(0, 0, HbmAnimations.getRelevantTransformation("DRUM_PUSH")[2]); + ResourceManager.bio_revolver.renderPart("Drum"); + GL11.glPopMatrix(); /// DRUM POP /// + + GL11.glPopMatrix(); /// FRONT POP /// + + GL11.glPushMatrix(); /// HAMMER /// + GL11.glTranslated(0, 0, -4.5); + GL11.glRotated(-45 + 45 * HbmAnimations.getRelevantTransformation("HAMMER")[2], 1, 0, 0); + GL11.glTranslated(0, 0, 4.5); + ResourceManager.bio_revolver.renderPart("Hammer"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.5, 9.25); + GL11.glRotated(90, 0, 1, 0); + this.renderGapFlash(gun.lastShot); + GL11.glPopMatrix(); + } + + @Override + protected void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + GL11.glTranslated(0, 1, 3); + + } + + @Override + protected void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.125D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.5, 1.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bio_revolver_tex); + ResourceManager.bio_revolver.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderRotaryFurnace.java b/src/main/java/com/hbm/render/tileentity/RenderRotaryFurnace.java index d7ff261ae..e326c7445 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRotaryFurnace.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRotaryFurnace.java @@ -6,6 +6,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityMachineRotaryFurnace; import com.hbm.util.BobMathUtil; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; @@ -34,7 +35,11 @@ public class RenderRotaryFurnace extends TileEntitySpecialRenderer implements II bindTexture(ResourceManager.rotary_furnace_tex); ResourceManager.rotary_furnace.renderPart("Furnace"); GL11.glPushMatrix(); - GL11.glTranslated(0, BobMathUtil.sps((tile.getWorldObj().getTotalWorldTime() + f) * 0.125) * 0.5 - 0.5, 0); + + TileEntityMachineRotaryFurnace furnace = (TileEntityMachineRotaryFurnace) tile; + float anim = furnace.lastAnim + (furnace.anim - furnace.lastAnim) * f; + + GL11.glTranslated(0, BobMathUtil.sps((anim * 0.75) * 0.125) * 0.5 - 0.5, 0); ResourceManager.rotary_furnace.renderPart("Piston"); GL11.glPopMatrix(); GL11.glShadeModel(GL11.GL_FLAT); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRotaryFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRotaryFurnace.java index 2ae2a54e2..771badfe1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRotaryFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRotaryFurnace.java @@ -48,6 +48,9 @@ public class TileEntityMachineRotaryFurnace extends TileEntityMachinePolluting i public boolean isVenting; public MaterialStack output; public static final int maxOutput = MaterialShapes.BLOCK.q(16); + + public int anim; + public int lastAnim; public TileEntityMachineRotaryFurnace() { super(5, 50); @@ -103,6 +106,7 @@ public class TileEntityMachineRotaryFurnace extends TileEntityMachinePolluting i } RotaryFurnaceRecipe recipe = RotaryFurnaceRecipes.getRecipe(slots[0], slots[1], slots[2]); + this.isProgressing = false; if(recipe != null) { @@ -116,6 +120,7 @@ public class TileEntityMachineRotaryFurnace extends TileEntityMachinePolluting i this.progress += 1F / recipe.duration; tanks[1].setFill(tanks[1].getFill() - recipe.steam); tanks[2].setFill(tanks[2].getFill() + recipe.steam / 100); + this.isProgressing = true; if(this.progress >= 1F) { this.progress -= 1F; @@ -165,6 +170,10 @@ public class TileEntityMachineRotaryFurnace extends TileEntityMachinePolluting i fx.setDouble("posZ", zCoord + 0.5 + rot.offsetZ); MainRegistry.proxy.effectNT(fx); } + this.lastAnim = this.anim; + if(this.isProgressing) { + this.anim++; + } } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 0df5c046d..c797ec3f7 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -373,6 +373,7 @@ container.machineMixer=Industrieller Mixer container.machineOreSlopper=B.E.M. container.machinePyroOven=Pyrolyseofen container.machineRefinery=Ölraffinerie +container.machineRotaryFurnace=Rotationshochofen container.machineSelenium=Hochleistungs-Sternmotor container.machineShredder=Brecher container.machineSILEX=SILEX @@ -1145,6 +1146,11 @@ item.ammo_shell.name=240mm Geschoss item.ammo_shell_apfsds_du.name=240mm APFSDS-DU item.ammo_shell_apfsds_t.name=240mm APFSDS-T item.ammo_shell_explosive.name=240mm HE-Geschoss +item.ammo_standard.m357_ap.name=.357 Magnumkugel (Panzerbrechend) +item.ammo_standard.m357_express.name=.357 Magnumkugel (VMG Express) +item.ammo_standard.m357_fmj.name=.357 Magnumkugel (Vollmantelgeschoss) +item.ammo_standard.m357_jhp.name=.357 Magnumkugel (Hohlspitz) +item.ammo_standard.m357_sp.name=.357 Magnumkugel (Teilmantelgeschoss) item.ammo_standard.stone.name=Kugel und Pulver item.ammo_standard.stone_ap.name=Feuerstein und Pulver item.ammo_standard.stone_iron.name=Eisenkugel und Pulver @@ -4367,6 +4373,7 @@ tile.machine_reactor_on.name=Brutreaktor tile.machine_reactor_small.name=Atomreaktor tile.machine_refinery.name=Ölraffinerie tile.machine_reix_mainframe.name=Rei-X Hauptrechner (WIP) +tile.machine_rotary_furnace.name=Rotationshochofen tile.machine_rtg_blue.name=Konvektionsgenerator tile.machine_rtg_cyan.name=Schrabidium-Zerfallsenergie-Generator (WIP) tile.machine_rtg_furnace_off.name=RTG-Ofen diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 8c8d24faf..8eb87dca8 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -775,6 +775,7 @@ container.machineMixer=Industrial Mixer container.machineOreSlopper=B.O.P. container.machinePyroOven=Pyrolysis Oven container.machineRefinery=Oil Refinery +container.machineRotaryFurnace=Rotary Furnace container.machineSelenium=Radial Performance Engine container.machineShredder=Shredder container.machineSILEX=SILEX @@ -1868,6 +1869,11 @@ item.ammo_shell_apfsds_du.name=240mm APFSDS-DU item.ammo_shell_apfsds_t.name=240mm APFSDS-T item.ammo_shell_explosive.name=240mm HE Shell item.ammo_shell_w9.name=240mm W9 Nuclear Shell +item.ammo_standard.m357_ap.name=.357 Magnum Round (Armor Piercing) +item.ammo_standard.m357_express.name=.357 Magnum Round (FMJ Express) +item.ammo_standard.m357_fmj.name=.357 Magnum Round (Full Metal Jacket) +item.ammo_standard.m357_jhp.name=.357 Magnum Round (Jacketed Hollow Point) +item.ammo_standard.m357_sp.name=.357 Magnum Round (Soft Point) item.ammo_standard.stone.name=Ball and Powder item.ammo_standard.stone_ap.name=Flint and Powder item.ammo_standard.stone_iron.name=Iron Ball and Powder @@ -5465,6 +5471,7 @@ tile.machine_reactor.name=Breeding Reactor tile.machine_reactor_small.name=Research Reactor tile.machine_refinery.name=Oil Refinery tile.machine_reix_mainframe.name=Rei-X Mainframe (WIP) +tile.machine_rotary_furnace.name=Rotary Furnace tile.machine_rtg_blue.name=Convection Generator tile.machine_rtg_cyan.name=Schrabidium Decay Generator (WIP) tile.machine_rtg_furnace_off.name=RTG Furnace diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_ap.png new file mode 100644 index 0000000000000000000000000000000000000000..a9dbde5aa51af5edb57d87cc7831ac789b607c7b GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfTwu`%@Sf*czTDXcK!CzthzQWBN4KwY9bcGo*o=p)t_xa1m+(~Q!R|C8Z)4quc zB*!?d<811XFy4NXt0;zj_XNfb+&{T)H2N?achqlOHEWffm6^cArBix3)=Wuq*|MiU i`oy-K?SFFSz2x28Sru2U>2?iCKgI literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_express.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_express.png new file mode 100644 index 0000000000000000000000000000000000000000..cad8fbc2dbc067cb459683cae6b4cb8071d58bbe GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfKaSXBO zJ=?#KuPH#JtzPD{U=2(9j>a^DIXN5eIy~o;nfjAsU(4Gv?OqQ>iH>t;G7defV}2B{ ztU3CN|MQ&Zzt347SpT?0dadd0TN01I9REFYOKXP#2U7=!&3R|BoqyQAu`o<{Zh30c zk!QOO*X)&0sTAC@;nq5X*jWcBr6>f*Z9xD4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_fmj.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_fmj.png new file mode 100644 index 0000000000000000000000000000000000000000..7025adb2ad81dae3a2b4cc694a53d26ae6a88086 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf8(2d>*X&0+;2arvBdeCyV0Nj|L@H+IeUXgG17RG eVoLTgR)#j26_%5Ky7U0u%HZkh=d#Wzp$Pzhabslw literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_jhp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_jhp.png new file mode 100644 index 0000000000000000000000000000000000000000..6f13cbeb74dbd81089f853b4f158bc3944da5f9d GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf{zSd(7~$I*~sS>*B)vl`FVm|koO4Y{MXTdU0!U0Gb6raV|JaIN~8^75$c@^Y6;QO;%MTdqxW zozyRNGSb{wCjXg!#S_IFjf@J+4Xf7iebVks5uf<>oQk5-by1}cH>}@DTYnI7d8pZO zAbD=c*88gU!CpJ}T|BeRN?+cP$=^|AUXun7L#5Bv@Ox_CSbn^n!<6)wb289j44$rj JF6*2UngAzwOvL~I literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/mold_barrel_light.png b/src/main/resources/assets/hbm/textures/items/mold_barrel_light.png new file mode 100644 index 0000000000000000000000000000000000000000..0e3bbe8e5780f3b89636b2b86db545ba47424d7d GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf;1LBL7XCJ;kS^~)%_)n5rU*~I%qd@Sq+0Ix#vL6G)BF`2HI{yf(k{Ca<-BU^ zqOE1wLKmM1Ui=U$`cbozb@nm_ejC<`LTlL5K)eFmScda|aFLU=d#7Zzs g`nziCyt+5+R>}*Pv9I+m2fCKQ)78&qol`;+0A6EPwg3PC literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/mold_grip.png b/src/main/resources/assets/hbm/textures/items/mold_grip.png new file mode 100644 index 0000000000000000000000000000000000000000..e59e5274908560155fd102936e10a95a56d9e578 GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf-dkU2b4fX^@Amyf||tMlFexXSD-J(90} zeBWdH4?EVr4a}cB^Jj&JwX2cL=m@-8gi|HcjA5D`%Y4GJJ;InSIAyxZ&qc~_qgJm<;kV1?9T_j z^P5}z=p93kp@1MmRQ8r@Vdu}h*t>r7?&P#70n*7As?&QmvM}*ns6KvX-#c$Lc0-w> znUd)`4z}+_n5;iViYz$7{Px&wUlpYluXe3x+~s^u+hsk=2foU7-S7q0PgFnXOD=de zC3bI_n)?MiwScS9PYy6?7szWrnUPks<6Tiu(i)HOf7~}CT{6}xDxH?SXIb$5Y01{E pnY9xcv;M4NNIkyU;a&Sl?j@V|dR?wz+6we1gQu&X%Q~loCIGLSbzT4f literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/mold_receiver_heavy.png b/src/main/resources/assets/hbm/textures/items/mold_receiver_heavy.png new file mode 100644 index 0000000000000000000000000000000000000000..4036ee57b2f5961ef3ff954c7bf2139bd65d0569 GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf- zxue>2dFC$GV6Pq4lO)dM+!UW7nRbn3{k|o~xETzOEn90`@q5{n6PCvB(swm|xBI|d z!F;`8`G;2^;+pjNuBwEF3B_y2UefyK^Oy nH(%Pz^*WTX-FfHa-Jcn~+NM1_^)2fz(Af;0u6{1-oD!M<=^tQD literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/mold_receiver_light.png b/src/main/resources/assets/hbm/textures/items/mold_receiver_light.png new file mode 100644 index 0000000000000000000000000000000000000000..98d550222f584fa5d126b92b39f4965bc80614c2 GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfJ8FD^z|pXIsd@?Q4BnFZhH zsdc`Xro3okc&J6ki#w%hX$%Yjp$9nLSnOW*X4~89(7D`ey4EL8F@JR8sP==vY}xy( zthUPU)KJnqX&B$BVd|vr5_DwKw#N}aOg6ta-k5wjzvq$q^Ny)!Dno6051hH&8^bC1 rQ|v=mU556##mxI}|9^D7`!7T3?u~jDRukia&Svm*^>bP0l+XkKSO{f- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/mold_steel_base.png b/src/main/resources/assets/hbm/textures/items/mold_steel_base.png new file mode 100644 index 0000000000000000000000000000000000000000..fd2c59e1b2583e0c635ba835dcb3e14b72349a8e GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf>cfB75J|NA3QJ=dBO&*~lmvZ+B*7 z2(4u?cWmicG5II&*#~|C$IB!cWR4r2Xw!B1v8QY1)*Q9d;U6k<1SL0}j_$bm%HH$; k0fq^GL+@UFb+nG*koAlSIqZ+xfevQyboFyt=akR{0LD38g8%>k literal 0 HcmV?d00001