From 32de31874e3a344ac8f5ed68139e27a0981ea11e Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 19 Mar 2022 14:07:22 +0100 Subject: [PATCH] fixes for chemplant IO, armor clipping, nuke furnace --- .../java/com/hbm/blocks/ILookOverlay.java | 30 ++--- src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../hbm/blocks/machine/MachineBattery.java | 6 + .../com/hbm/blocks/machine/MachineFENSU.java | 6 + .../blocks/machine/MachineLiquefactor.java | 2 - .../hbm/blocks/machine/MachineSolidifier.java | 4 +- .../com/hbm/blocks/network/CableDiode.java | 10 +- .../hbm/entity/item/EntityMinecartTest.java | 2 - .../container/ContainerNukeFurnace.java | 105 +++++++++--------- .../container/ContainerStorageDrum.java | 1 - .../container/ContainerWasteDrum.java | 14 ++- src/main/java/com/hbm/items/ModItems.java | 39 +++++-- .../java/com/hbm/items/armor/ArmorFSB.java | 22 +++- .../java/com/hbm/items/armor/ArmorModel.java | 5 +- .../hbm/items/armor/IArmorDisableModel.java | 19 ++++ src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 66 ++++++----- src/main/java/com/hbm/main/MainRegistry.java | 2 +- .../com/hbm/main/ModEventHandlerClient.java | 46 -------- .../com/hbm/main/ModEventHandlerRenderer.java | 72 ++++++++++++ .../hbm/render/item/ItemRenderLibrary.java | 22 ++++ .../machine/TileEntityMachineChemplant.java | 5 +- .../machine/TileEntityMachineShredder.java | 2 - .../storage/TileEntityMachineFENSU.java | 8 ++ src/main/java/com/hbm/util/BobMathUtil.java | 11 ++ src/main/java/com/hbm/util/InventoryUtil.java | 1 - src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../hbm/textures/models/capes/CapeHidden.png | Bin 0 -> 637 bytes src/main/resources/mcmod.info | 2 +- 30 files changed, 329 insertions(+), 179 deletions(-) create mode 100644 src/main/java/com/hbm/items/armor/IArmorDisableModel.java create mode 100644 src/main/java/com/hbm/main/ModEventHandlerRenderer.java create mode 100644 src/main/resources/assets/hbm/textures/models/capes/CapeHidden.png diff --git a/src/main/java/com/hbm/blocks/ILookOverlay.java b/src/main/java/com/hbm/blocks/ILookOverlay.java index 41314cb23..47ff64eea 100644 --- a/src/main/java/com/hbm/blocks/ILookOverlay.java +++ b/src/main/java/com/hbm/blocks/ILookOverlay.java @@ -1,6 +1,5 @@ package com.hbm.blocks; -import java.util.ArrayList; import java.util.List; import org.lwjgl.opengl.GL11; @@ -29,23 +28,24 @@ public interface ILookOverlay { int pX = resolution.getScaledWidth() / 2 + 8; int pZ = resolution.getScaledHeight() / 2; - List exceptions = new ArrayList(); - exceptions.add("x"); - exceptions.add("y"); - exceptions.add("z"); - exceptions.add("items"); - exceptions.add("id"); - mc.fontRenderer.drawString(title, pX + 1, pZ - 9, bgCol); mc.fontRenderer.drawString(title, pX, pZ - 10, titleCol); - for(String line : text) { - - if(exceptions.contains(line)) - continue; - - mc.fontRenderer.drawStringWithShadow(line, pX, pZ, 0xFFFFFF); - pZ += 10; + try { + for(String line : text) { + + int color = 0xFFFFFF; + if(line.startsWith("&[")) { + int end = line.lastIndexOf("&]"); + color = Integer.parseInt(line.substring(2, end)); + line = line.substring(end + 2); + } + + mc.fontRenderer.drawStringWithShadow(line, pX, pZ, color); + pZ += 10; + } + } catch(Exception ex) { + mc.fontRenderer.drawStringWithShadow(ex.getClass().getSimpleName(), pX, pZ + 10, 0xff0000); } GL11.glDisable(GL11.GL_BLEND); diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index aee4890f9..1e1a89399 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2937,7 +2937,7 @@ public class ModBlocks { GameRegistry.registerBlock(substation, ItemBlockBase.class, substation.getUnlocalizedName()); GameRegistry.registerBlock(cable_switch, cable_switch.getUnlocalizedName()); GameRegistry.registerBlock(cable_detector, cable_detector.getUnlocalizedName()); - GameRegistry.registerBlock(cable_diode, cable_diode.getUnlocalizedName()); + GameRegistry.registerBlock(cable_diode, ItemBlockBase.class, cable_diode.getUnlocalizedName()); GameRegistry.registerBlock(machine_detector, machine_detector.getUnlocalizedName()); GameRegistry.registerBlock(rf_cable, rf_cable.getUnlocalizedName()); GameRegistry.registerBlock(oil_duct, oil_duct.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineBattery.java b/src/main/java/com/hbm/blocks/machine/MachineBattery.java index 9645a5335..5da052d7c 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBattery.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBattery.java @@ -224,6 +224,12 @@ public class MachineBattery extends BlockContainer implements ILookOverlay { List text = new ArrayList(); text.add(BobMathUtil.getShortNumber(battery.getPower()) + " / " + BobMathUtil.getShortNumber(battery.getMaxPower()) + "HE"); + double percent = (double) battery.getPower() / (double) battery.getMaxPower(); + int charge = (int) Math.floor(percent * 10_000D); + int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8); + + text.add("&[" + color + "&]" + (charge / 100D) + "%"); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineFENSU.java b/src/main/java/com/hbm/blocks/machine/MachineFENSU.java index 09a02e295..6ba22f976 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFENSU.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFENSU.java @@ -83,6 +83,12 @@ public class MachineFENSU extends BlockDummyable implements ILookOverlay { List text = new ArrayList(); text.add(BobMathUtil.getShortNumber(battery.getPower()) + " / " + BobMathUtil.getShortNumber(battery.getMaxPower()) + "HE"); + double percent = (double) battery.getPower() / (double) battery.getMaxPower(); + int charge = (int) Math.floor(percent * 10_000D); + int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8); + + text.add("&[" + color + "&]" + (charge / 100D) + "%"); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineLiquefactor.java b/src/main/java/com/hbm/blocks/machine/MachineLiquefactor.java index 729f06640..c232fea2e 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineLiquefactor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineLiquefactor.java @@ -6,11 +6,9 @@ import org.lwjgl.input.Keyboard; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ITooltipProvider; -import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineLiquefactor; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/blocks/machine/MachineSolidifier.java b/src/main/java/com/hbm/blocks/machine/MachineSolidifier.java index 96d426511..b743f795e 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSolidifier.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSolidifier.java @@ -69,7 +69,9 @@ public class MachineSolidifier extends BlockDummyable implements ITooltipProvide public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - list.add(EnumChatFormatting.YELLOW + "beb"); + list.add(EnumChatFormatting.YELLOW + "A universal machine fitted with cooling systems and other"); + list.add(EnumChatFormatting.YELLOW + "versatile tools for turning fluids solid using various"); + list.add(EnumChatFormatting.YELLOW + "processes such as freezing and petrochemical polymerization."); } else { list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + diff --git a/src/main/java/com/hbm/blocks/network/CableDiode.java b/src/main/java/com/hbm/blocks/network/CableDiode.java index 11fa8ffb8..8e260d42b 100644 --- a/src/main/java/com/hbm/blocks/network/CableDiode.java +++ b/src/main/java/com/hbm/blocks/network/CableDiode.java @@ -11,6 +11,8 @@ import com.hbm.util.I18nUtil; import api.hbm.block.IToolable; import api.hbm.energy.IEnergyUser; import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; @@ -18,12 +20,12 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; @@ -51,6 +53,12 @@ public class CableDiode extends BlockContainer implements ILookOverlay, IToolabl return false; } + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess p_149646_1_, int p_149646_2_, int p_149646_3_, int p_149646_4_, int p_149646_5_) { + return true; + } + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { int l = BlockPistonBase.determineOrientation(world, x, y, z, player); world.setBlockMetadataWithNotify(x, y, z, l, 2); diff --git a/src/main/java/com/hbm/entity/item/EntityMinecartTest.java b/src/main/java/com/hbm/entity/item/EntityMinecartTest.java index bdca79aed..924c9c3c1 100644 --- a/src/main/java/com/hbm/entity/item/EntityMinecartTest.java +++ b/src/main/java/com/hbm/entity/item/EntityMinecartTest.java @@ -67,8 +67,6 @@ public class EntityMinecartTest extends EntityMinecartModBase this.explodeCart(d0); } } - - System.out.println(this.rotationYaw); } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerNukeFurnace.java b/src/main/java/com/hbm/inventory/container/ContainerNukeFurnace.java index 2cb1883d3..eb00684e3 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerNukeFurnace.java +++ b/src/main/java/com/hbm/inventory/container/ContainerNukeFurnace.java @@ -2,6 +2,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotMachineOutput; import com.hbm.tileentity.machine.TileEntityNukeFurnace; +import com.hbm.util.InventoryUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; @@ -11,116 +12,110 @@ import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class ContainerNukeFurnace extends Container { - + private TileEntityNukeFurnace diFurnace; private int dualCookTime; private int dualPower; - private int lastItemBurnTime; - + public ContainerNukeFurnace(InventoryPlayer invPlayer, TileEntityNukeFurnace tedf) { dualCookTime = 0; dualPower = 0; - lastItemBurnTime = 0; - + diFurnace = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 56, 53)); + + this.addSlotToContainer(new Slot(tedf, 0, 56, 53) { + @Override + public int getSlotStackLimit() { + return 1; + } + }); + this.addSlotToContainer(new Slot(tedf, 1, 56, 17)); this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 116, 35)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); } } - - for(int i = 0; i < 9; i++) - { + + for(int i = 0; i < 9; i++) { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); } } - + @Override public void addCraftingToCrafters(ICrafting crafting) { super.addCraftingToCrafters(crafting); crafting.sendProgressBarUpdate(this, 0, this.diFurnace.dualCookTime); crafting.sendProgressBarUpdate(this, 1, this.diFurnace.dualPower); } - + @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { + + if(var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - - if (par2 <= 2) { - if (!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) - { + + if(par2 <= 2) { + if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) { return null; } - } - else if (!this.mergeItemStack(var5, 1, 2, false)) - { - if (!this.mergeItemStack(var5, 0, 1, false)) + } else { + + if(TileEntityNukeFurnace.getFuelValue(var5) > 0) { + if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, 0, 1, false)) return null; + } else { + if(!this.mergeItemStack(var5, 1, 2, false)) + return null; + } } - - if (var5.stackSize == 0) - { + + if(var5.stackSize == 0) { var4.putStack((ItemStack) null); - } - else - { + } else { var4.onSlotChanged(); } } - + return var3; - } + } @Override public boolean canInteractWith(EntityPlayer player) { return diFurnace.isUseableByPlayer(player); } - + @Override public void detectAndSendChanges() { super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) - { - ICrafting par1 = (ICrafting)this.crafters.get(i); - - if(this.dualCookTime != this.diFurnace.dualCookTime) - { + + for(int i = 0; i < this.crafters.size(); i++) { + ICrafting par1 = (ICrafting) this.crafters.get(i); + + if(this.dualCookTime != this.diFurnace.dualCookTime) { par1.sendProgressBarUpdate(this, 0, this.diFurnace.dualCookTime); } - - if(this.dualPower != this.diFurnace.dualPower) - { + + if(this.dualPower != this.diFurnace.dualPower) { par1.sendProgressBarUpdate(this, 1, this.diFurnace.dualPower); } } - + this.dualCookTime = this.diFurnace.dualCookTime; this.dualPower = this.diFurnace.dualPower; } - + @Override public void updateProgressBar(int i, int j) { - if(i == 0) - { + if(i == 0) { diFurnace.dualCookTime = j; } - if(i == 1) - { + if(i == 1) { diFurnace.dualPower = j; } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerStorageDrum.java b/src/main/java/com/hbm/inventory/container/ContainerStorageDrum.java index 022726ce8..18d7e2d8d 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerStorageDrum.java +++ b/src/main/java/com/hbm/inventory/container/ContainerStorageDrum.java @@ -48,7 +48,6 @@ public class ContainerStorageDrum extends Container { var3 = var5.copy(); if(par2 <= drum.getSizeInventory() - 1) { - if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, drum.getSizeInventory(), this.inventorySlots.size(), true)) { return null; } diff --git a/src/main/java/com/hbm/inventory/container/ContainerWasteDrum.java b/src/main/java/com/hbm/inventory/container/ContainerWasteDrum.java index e3e3f390e..639f21d81 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerWasteDrum.java +++ b/src/main/java/com/hbm/inventory/container/ContainerWasteDrum.java @@ -11,10 +11,10 @@ import net.minecraft.item.ItemStack; public class ContainerWasteDrum extends Container { - private TileEntityWasteDrum diFurnace; + private TileEntityWasteDrum drum; public ContainerWasteDrum(InventoryPlayer invPlayer, TileEntityWasteDrum tedf) { - diFurnace = tedf; + drum = tedf; this.addSlotToContainer(new Slot(tedf, 0, 71, 18)); this.addSlotToContainer(new Slot(tedf, 1, 89, 18)); @@ -52,11 +52,11 @@ public class ContainerWasteDrum extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if(par2 <= diFurnace.getSizeInventory() - 1) { - if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) { + if(par2 <= drum.getSizeInventory() - 1) { + if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, drum.getSizeInventory(), this.inventorySlots.size(), true)) { return null; } - } else if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, 0, 0, false)) { + } else if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, 0, drum.getSizeInventory(), false)) { return null; } @@ -65,6 +65,8 @@ public class ContainerWasteDrum extends Container { } else { var4.onSlotChanged(); } + + var4.onPickupFromSlot(p_82846_1_, var5); } return var3; @@ -72,6 +74,6 @@ public class ContainerWasteDrum extends Container { @Override public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); + return drum.isUseableByPlayer(player); } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 3960a4489..e6b4e67fd 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -11,6 +11,7 @@ import com.hbm.interfaces.ICustomWarhead.SaltedFuel.HalfLifeType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ItemEnums.EnumLegendaryType; import com.hbm.items.armor.*; +import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart; import com.hbm.items.bomb.*; import com.hbm.items.food.*; import com.hbm.items.machine.*; @@ -2265,6 +2266,7 @@ public class ModItems { public static Item cape_radiation; public static Item cape_gasmask; public static Item cape_schrabidium; + public static Item cape_hidden; /*public static Item cape_hbm; public static Item cape_dafnik; public static Item cape_lpkukin; @@ -4873,6 +4875,7 @@ public class ModItems { .setBlastProtection(0.5F) .addResistance("monoxide", 0F) .addResistance("fall", 0) + .hides(EnumPlayerPart.HAT) .setUnlocalizedName("t45_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_helmet"); t45_plate = new ArmorT45(aMatT45, 2, 1, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_plate"); t45_legs = new ArmorT45(aMatT45, 2, 2, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_legs"); @@ -4887,6 +4890,7 @@ public class ModItems { .setBlastProtection(0.5F) .addResistance("monoxide", 0F) .addResistance("fall", 0) + .hides(EnumPlayerPart.HAT) .setUnlocalizedName("steamsuit_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_helmet"); steamsuit_plate = new ArmorDesh(aMatDesh, 2, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 360000, 500, 50, 1).cloneStats((ArmorFSB) steamsuit_helmet).setUnlocalizedName("steamsuit_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_plate"); steamsuit_legs = new ArmorDesh(aMatDesh, 2, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", Fluids.STEAM, 360000, 500, 50, 1).cloneStats((ArmorFSB) steamsuit_helmet).setUnlocalizedName("steamsuit_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_legs"); @@ -4906,7 +4910,9 @@ public class ModItems { .setJump("hbm:step.iron_jump") .setFall("hbm:step.iron_land") .addResistance("monoxide", 0F) - .addResistance("fall", 0).setUnlocalizedName("ajr_helmet").setTextureName(RefStrings.MODID + ":ajr_helmet"); + .addResistance("fall", 0) + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("ajr_helmet").setTextureName(RefStrings.MODID + ":ajr_helmet"); ajr_plate = new ArmorAJR(aMatAJR, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_plate").setTextureName(RefStrings.MODID + ":ajr_plate"); ajr_legs = new ArmorAJR(aMatAJR, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_legs").setTextureName(RefStrings.MODID + ":ajr_legs"); ajr_boots = new ArmorAJR(aMatAJR, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_boots").setTextureName(RefStrings.MODID + ":ajr_boots"); @@ -4923,7 +4929,9 @@ public class ModItems { .setJump("hbm:step.iron_jump") .setFall("hbm:step.iron_land") .addResistance("monoxide", 0F) - .addResistance("fall", 0).setUnlocalizedName("ajro_helmet").setTextureName(RefStrings.MODID + ":ajro_helmet"); + .addResistance("fall", 0) + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("ajro_helmet").setTextureName(RefStrings.MODID + ":ajro_helmet"); ajro_plate = new ArmorAJRO(aMatAJR, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_plate").setTextureName(RefStrings.MODID + ":ajro_plate"); ajro_legs = new ArmorAJRO(aMatAJR, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_legs").setTextureName(RefStrings.MODID + ":ajro_legs"); ajro_boots = new ArmorAJRO(aMatAJR, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_boots").setTextureName(RefStrings.MODID + ":ajro_boots"); @@ -4940,7 +4948,9 @@ public class ModItems { .setStep("hbm:step.powered") .setJump("hbm:step.powered") .setFall("hbm:step.powered") - .addResistance("fall", 0).setUnlocalizedName("rpa_helmet").setTextureName(RefStrings.MODID + ":rpa_helmet"); + .addResistance("fall", 0) + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("rpa_helmet").setTextureName(RefStrings.MODID + ":rpa_helmet"); rpa_plate = new ArmorRPA(aMatAJR, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_plate").setTextureName(RefStrings.MODID + ":rpa_plate"); rpa_legs = new ArmorRPA(aMatAJR, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_legs").setTextureName(RefStrings.MODID + ":rpa_legs"); rpa_boots = new ArmorRPA(aMatAJR, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_boots").setTextureName(RefStrings.MODID + ":rpa_boots"); @@ -4959,13 +4969,12 @@ public class ModItems { .addEffect(new PotionEffect(HbmPotion.radx.id, 20, 0)) .setBlastProtection(0.5F) .setProtectionLevel(500F) - //.setGravity(0.02D) .setStep("hbm:step.metal") .setJump("hbm:step.iron_jump") .setFall("hbm:step.iron_land") .addResistance("fall", 0).setUnlocalizedName("bj_helmet").setTextureName(RefStrings.MODID + ":bj_helmet"); bj_plate = new ArmorBJ(aMatBJ, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_plate").setTextureName(RefStrings.MODID + ":bj_plate"); - bj_plate_jetpack = new ArmorBJJetpack(aMatBJ, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_plate_jetpack").setTextureName(RefStrings.MODID + ":bj_plate_jetpack"); + bj_plate_jetpack = new ArmorBJJetpack(aMatBJ, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).hides(EnumPlayerPart.LEFT_ARM, EnumPlayerPart.RIGHT_ARM).setUnlocalizedName("bj_plate_jetpack").setTextureName(RefStrings.MODID + ":bj_plate_jetpack"); bj_legs = new ArmorBJ(aMatBJ, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_legs").setTextureName(RefStrings.MODID + ":bj_legs"); bj_boots = new ArmorBJ(aMatBJ, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_boots").setTextureName(RefStrings.MODID + ":bj_boots"); @@ -4980,7 +4989,9 @@ public class ModItems { .setHasCustomGeiger(true) .addResistance("fall", 0.5F) .addResistance("monoxide", 0F) - .addResistance("onFire", 0F).setUnlocalizedName("hev_helmet").setTextureName(RefStrings.MODID + ":hev_helmet"); + .addResistance("onFire", 0F) + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("hev_helmet").setTextureName(RefStrings.MODID + ":hev_helmet"); hev_plate = new ArmorHEV(aMatHEV, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_plate").setTextureName(RefStrings.MODID + ":hev_plate"); hev_legs = new ArmorHEV(aMatHEV, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_legs").setTextureName(RefStrings.MODID + ":hev_legs"); hev_boots = new ArmorHEV(aMatHEV, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_boots").setTextureName(RefStrings.MODID + ":hev_boots"); @@ -5003,9 +5014,11 @@ public class ModItems { .setProtectionLevel(1000F) .addResistance("fall", 0F) .addResistance("monoxide", 0F) - .setFireproof(true).setUnlocalizedName("fau_helmet").setTextureName(RefStrings.MODID + ":fau_helmet"); - fau_plate = new ArmorDigamma(aMatFau, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setUnlocalizedName("fau_plate").setTextureName(RefStrings.MODID + ":fau_plate"); - fau_legs = new ArmorDigamma(aMatFau, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setUnlocalizedName("fau_legs").setTextureName(RefStrings.MODID + ":fau_legs"); + .setFireproof(true) + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("fau_helmet").setTextureName(RefStrings.MODID + ":fau_helmet"); + fau_plate = new ArmorDigamma(aMatFau, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setFullSetForHide().setUnlocalizedName("fau_plate").setTextureName(RefStrings.MODID + ":fau_plate"); + fau_legs = new ArmorDigamma(aMatFau, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).hides(EnumPlayerPart.LEFT_LEG, EnumPlayerPart.RIGHT_LEG).setFullSetForHide().setUnlocalizedName("fau_legs").setTextureName(RefStrings.MODID + ":fau_legs"); fau_boots = new ArmorDigamma(aMatFau, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setUnlocalizedName("fau_boots").setTextureName(RefStrings.MODID + ":fau_boots"); ArmorMaterial aMatDNS = EnumHelper.addArmorMaterial("HBM_DNT_NANO", 150, new int[] { 3, 8, 6, 3 }, 100); @@ -5021,7 +5034,9 @@ public class ModItems { .setStep("hbm:step.metal") .setJump("hbm:step.iron_jump") .setFall("hbm:step.iron_land") - .setFireproof(true).setUnlocalizedName("dns_helmet").setTextureName(RefStrings.MODID + ":dns_helmet"); + .setFireproof(true) + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("dns_helmet").setTextureName(RefStrings.MODID + ":dns_helmet"); dns_plate = new ArmorDNT(aMatDNS, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_plate").setTextureName(RefStrings.MODID + ":dns_plate"); dns_legs = new ArmorDNT(aMatDNS, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_legs").setTextureName(RefStrings.MODID + ":dns_legs"); dns_boots = new ArmorDNT(aMatDNS, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_boots").setTextureName(RefStrings.MODID + ":dns_boots"); @@ -5384,6 +5399,7 @@ public class ModItems { cape_radiation = new ArmorModel(ArmorMaterial.CHAIN, 9, 1).setUnlocalizedName("cape_radiation").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_radiation"); cape_gasmask = new ArmorModel(ArmorMaterial.CHAIN, 9, 1).setUnlocalizedName("cape_gasmask").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_gasmask"); cape_schrabidium = new ArmorModel(MainRegistry.aMatSchrab, 9, 1).setUnlocalizedName("cape_schrabidium").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_schrabidium"); + cape_hidden = new ArmorModel(ArmorMaterial.CHAIN, 9, 1).setUnlocalizedName("cape_hidden").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_unknown"); schrabidium_hammer = new WeaponSpecial(MainRegistry.tMatHammmer).setUnlocalizedName("schrabidium_hammer").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":schrabidium_hammer"); shimmer_sledge = new WeaponSpecial(MainRegistry.enumToolMaterialSledge).setUnlocalizedName("shimmer_sledge").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":shimmer_sledge_original"); @@ -5448,7 +5464,7 @@ public class ModItems { record_glass = new ItemModRecord("glass").setUnlocalizedName("record_glass").setCreativeTab(null).setTextureName(RefStrings.MODID + ":record_glass"); book_guide = new ItemGuideBook().setUnlocalizedName("book_guide").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":book_guide"); - holotape_image = new ItemHolotapeImage().setUnlocalizedName("holotape_image").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":holotape"); + holotape_image = new ItemHolotapeImage().setUnlocalizedName("holotape_image").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape"); holotape_damaged = new Item().setUnlocalizedName("holotape_damaged").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape_damaged"); polaroid = new ItemPolaroid().setUnlocalizedName("polaroid").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":polaroid_" + MainRegistry.polaroidID); @@ -7376,6 +7392,7 @@ public class ModItems { GameRegistry.registerItem(cape_radiation, cape_radiation.getUnlocalizedName()); GameRegistry.registerItem(cape_gasmask, cape_gasmask.getUnlocalizedName()); GameRegistry.registerItem(cape_schrabidium, cape_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(cape_hidden, cape_hidden.getUnlocalizedName()); //Tools GameRegistry.registerItem(schrabidium_sword, schrabidium_sword.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorFSB.java b/src/main/java/com/hbm/items/armor/ArmorFSB.java index 94a6ba88d..177d1842a 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSB.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSB.java @@ -2,7 +2,9 @@ package com.hbm.items.armor; import java.lang.reflect.Field; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map.Entry; @@ -40,7 +42,7 @@ import net.minecraftforge.event.entity.living.LivingAttackEvent; import net.minecraftforge.event.entity.living.LivingHurtEvent; //Armor with full set bonus -public class ArmorFSB extends ItemArmor { +public class ArmorFSB extends ItemArmor implements IArmorDisableModel { private String texture = ""; private ResourceLocation overlay = null; @@ -579,4 +581,22 @@ public class ArmorFSB extends ItemArmor { GL11.glEnable(GL11.GL_ALPHA_TEST); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); } + + private HashSet hidden = new HashSet(); + private boolean needsFullSet = false; + + public ArmorFSB hides(EnumPlayerPart... parts) { + Collections.addAll(hidden, parts); + return this; + } + + public ArmorFSB setFullSetForHide() { + needsFullSet = true; + return this; + } + + @Override + public boolean disablesPart(EntityPlayer player, ItemStack stack, EnumPlayerPart part) { + return hidden.contains(part) && (!needsFullSet || hasFSBArmorIgnoreCharge(player)); + } } diff --git a/src/main/java/com/hbm/items/armor/ArmorModel.java b/src/main/java/com/hbm/items/armor/ArmorModel.java index 3703eff81..8e06c78b9 100644 --- a/src/main/java/com/hbm/items/armor/ArmorModel.java +++ b/src/main/java/com/hbm/items/armor/ArmorModel.java @@ -80,7 +80,7 @@ public class ArmorModel extends ItemArmor { return this.modelHat; } } - if (this == ModItems.cape_test || this == ModItems.cape_radiation || this == ModItems.cape_gasmask || this == ModItems.cape_schrabidium) { + if (this == ModItems.cape_test || this == ModItems.cape_radiation || this == ModItems.cape_gasmask || this == ModItems.cape_schrabidium || this == ModItems.cape_hidden) { if (armorSlot == 1) { if (this.modelCloak == null) { this.modelCloak = new ModelCloak(); @@ -111,6 +111,9 @@ public class ArmorModel extends ItemArmor { if (stack.getItem() == ModItems.cape_schrabidium) { return "hbm:textures/models/capes/CapeSchrabidium.png"; } + if (stack.getItem() == ModItems.cape_hidden) { + return "hbm:textures/models/capes/CapeHidden.png"; + } return "hbm:textures/models/capes/CapeUnknown.png"; } diff --git a/src/main/java/com/hbm/items/armor/IArmorDisableModel.java b/src/main/java/com/hbm/items/armor/IArmorDisableModel.java new file mode 100644 index 000000000..5e4d3dbda --- /dev/null +++ b/src/main/java/com/hbm/items/armor/IArmorDisableModel.java @@ -0,0 +1,19 @@ +package com.hbm.items.armor; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public interface IArmorDisableModel { + + public boolean disablesPart(EntityPlayer player, ItemStack stack, EnumPlayerPart part); + + public static enum EnumPlayerPart { + HEAD, + HAT, + BODY, + LEFT_ARM, + RIGHT_ARM, + LEFT_LEG, + RIGHT_LEG + } +} diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 9e2f8a1e4..f434aec9f 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4174)"; + public static final String VERSION = "1.0.27 BETA (4178)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 1ef89f1e9..2c6c75bc5 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -19,6 +19,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; @@ -84,6 +85,7 @@ import com.hbm.tileentity.machine.rbmk.*; import com.hbm.tileentity.machine.storage.*; import com.hbm.tileentity.network.*; import com.hbm.tileentity.turret.*; +import com.hbm.util.BobMathUtil; import com.hbm.util.SoundUtil; import cpw.mods.fml.client.registry.ClientRegistry; @@ -93,6 +95,34 @@ import cpw.mods.fml.relauncher.ReflectionHelper; public class ClientProxy extends ServerProxy { + @Override + public void registerRenderInfo() { + + registerClientEventHandler(new ModEventHandlerClient()); + registerClientEventHandler(new ModEventHandlerRenderer()); + + AdvancedModelLoader.registerModelHandler(new HmfModelLoader()); + ResourceManager.loadAnimatedModels(); + + registerTileEntitySpecialRenderer(); + registerItemRenderer(); + registerEntityRenderer(); + registerBlockRenderer(); + + RenderingRegistry.addNewArmourRendererPrefix("5"); + RenderingRegistry.addNewArmourRendererPrefix("6"); + RenderingRegistry.addNewArmourRendererPrefix("7"); + RenderingRegistry.addNewArmourRendererPrefix("8"); + RenderingRegistry.addNewArmourRendererPrefix("9"); + + SoundUtil.addSoundCategory("ntmMachines"); + } + + private void registerClientEventHandler(Object handler) { + MinecraftForge.EVENT_BUS.register(handler); + FMLCommonHandler.instance().bus().register(handler); + } + @Override public void registerTileEntitySpecialRenderer() { //test crap @@ -665,30 +695,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderPribris()); } - @Override - public void registerRenderInfo() - { - ModEventHandlerClient handler = new ModEventHandlerClient(); - MinecraftForge.EVENT_BUS.register(handler); - FMLCommonHandler.instance().bus().register(handler); - - AdvancedModelLoader.registerModelHandler(new HmfModelLoader()); - ResourceManager.loadAnimatedModels(); - - registerTileEntitySpecialRenderer(); - registerItemRenderer(); - registerEntityRenderer(); - registerBlockRenderer(); - - RenderingRegistry.addNewArmourRendererPrefix("5"); - RenderingRegistry.addNewArmourRendererPrefix("6"); - RenderingRegistry.addNewArmourRendererPrefix("7"); - RenderingRegistry.addNewArmourRendererPrefix("8"); - RenderingRegistry.addNewArmourRendererPrefix("9"); - - SoundUtil.addSoundCategory("ntmMachines"); - } - @Override public void registerMissileItems() { @@ -1157,13 +1163,17 @@ public class ClientProxy extends ServerProxy { } } } + + double motionX = BobMathUtil.safeClamp(p.motionX + moX, -5, 5); + double motionY = BobMathUtil.safeClamp(p.motionY + moY, -2, 2); + double motionZ = BobMathUtil.safeClamp(p.motionZ + moZ, -5, 5); - Minecraft.getMinecraft().effectRenderer.addEffect(new EntityFlameFX(world, ix + ox, iy, iz + oz, p.motionX + moX * 2, p.motionY + moY * 2, p.motionZ + moZ * 2)); - Minecraft.getMinecraft().effectRenderer.addEffect(new EntityFlameFX(world, ix - ox, iy, iz - oz, p.motionX + moX * 2, p.motionY + moY * 2, p.motionZ + moZ * 2)); + Minecraft.getMinecraft().effectRenderer.addEffect(new EntityFlameFX(world, ix + ox, iy, iz + oz, motionX * 2, motionY * 2, motionZ * 2)); + Minecraft.getMinecraft().effectRenderer.addEffect(new EntityFlameFX(world, ix - ox, iy, iz - oz, motionX * 2, motionY * 2, motionZ * 2)); if(particleSetting == 0) { - Minecraft.getMinecraft().effectRenderer.addEffect(new net.minecraft.client.particle.EntitySmokeFX(world, ix + ox, iy, iz + oz, p.motionX + moX * 3, p.motionY + moY * 3, p.motionZ + moZ * 3)); - Minecraft.getMinecraft().effectRenderer.addEffect(new net.minecraft.client.particle.EntitySmokeFX(world, ix - ox, iy, iz - oz, p.motionX + moX * 3, p.motionY + moY * 3, p.motionZ + moZ * 3)); + Minecraft.getMinecraft().effectRenderer.addEffect(new net.minecraft.client.particle.EntitySmokeFX(world, ix + ox, iy, iz + oz, motionX * 3, motionY * 3, motionZ * 3)); + Minecraft.getMinecraft().effectRenderer.addEffect(new net.minecraft.client.particle.EntitySmokeFX(world, ix - ox, iy, iz - oz, motionX * 3, motionY * 3, motionZ * 3)); } } } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 6b61f7746..e82ab657d 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -990,7 +990,7 @@ public class MainRegistry { SchistStratum schist = new SchistStratum(); MinecraftForge.EVENT_BUS.register(schist); //DecorateBiomeEvent.Pre - new OreLayer(Blocks.coal_ore, 0.2F).setThreshold(4).setRangeMult(3).setYLevel(70); + //new OreLayer(Blocks.coal_ore, 0.2F).setThreshold(4).setRangeMult(3).setYLevel(70); OreDictManager oreMan = new OreDictManager(); MinecraftForge.EVENT_BUS.register(oreMan); //OreRegisterEvent diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index a61f82536..b9c77812a 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -798,52 +798,6 @@ public class ModEventHandlerClient { } } - /*private static final ResourceLocation digammaStar = new ResourceLocation("hbm:textures/misc/star_digamma.png"); - - @SideOnly(Side.CLIENT) - public void onRenderDigammaStar(RenderWorldLastEvent event) { - - World world = Minecraft.getMinecraft().theWorld; - - if(world.provider.dimensionId != 0) - return; - - GL11.glPushMatrix(); - GL11.glDepthMask(false); - - GL11.glEnable(3553); - GL11.glEnable(GL11.GL_BLEND); - GL11.glDisable(GL11.GL_ALPHA_TEST); - OpenGlHelper.glBlendFunc(770, 1, 1, 0); - - float partialTicks = event.partialTicks; - - GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(world.getCelestialAngle(partialTicks) * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(140.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-40.0F, 0.0F, 0.0F, 1.0F); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(digammaStar); - - float var12 = 2.5F; - double dist = 150D; - - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); - tessellator.addVertexWithUV(-var12, dist, -var12, 0.0D, 0.0D); - tessellator.addVertexWithUV(var12, dist, -var12, 0.0D, 1.0D); - tessellator.addVertexWithUV(var12, dist, var12, 1.0D, 1.0D); - tessellator.addVertexWithUV(-var12, dist, var12, 1.0D, 0.0D); - tessellator.draw(); - - GL11.glDepthMask(true); - - GL11.glDisable(3042); - GL11.glEnable(GL11.GL_ALPHA_TEST); - - GL11.glPopMatrix(); - }*/ - @SubscribeEvent(priority = EventPriority.HIGHEST) public void preRenderEventFirst(RenderLivingEvent.Pre event) { diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java new file mode 100644 index 000000000..91c8a06d7 --- /dev/null +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -0,0 +1,72 @@ +package com.hbm.main; + +import com.hbm.items.armor.IArmorDisableModel; +import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart; + +import cpw.mods.fml.common.eventhandler.EventPriority; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.client.renderer.entity.RenderPlayer; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.event.RenderPlayerEvent; + +public class ModEventHandlerRenderer { + + private static boolean[] partsHidden = new boolean[7]; + + @SubscribeEvent(priority = EventPriority.LOWEST, receiveCanceled = true) + public void onRenderPlayerPre(RenderPlayerEvent.Pre event) { + + EntityPlayer player = event.entityPlayer; + RenderPlayer renderer = event.renderer; + + for(int j = 0; j < 7; j++) { + partsHidden[j] = false; + } + + for(int i = 1; i < 5; i++) { + ItemStack stack = player.getEquipmentInSlot(i); + + if(stack != null && stack.getItem() instanceof IArmorDisableModel) { + IArmorDisableModel disable = (IArmorDisableModel) stack.getItem(); + + for(int j = 0; j < 7; j++) { + EnumPlayerPart type = EnumPlayerPart.values()[j]; + ModelRenderer box = getBoxFromType(renderer, type); + if(disable.disablesPart(player, stack, type) && !box.isHidden) { + partsHidden[j] = true; + box.isHidden = true; + } + } + } + } + } + + @SubscribeEvent(priority = EventPriority.HIGHEST, receiveCanceled = true) + public void onRenderPlayerPost(RenderPlayerEvent.Post event) { + + RenderPlayer renderer = event.renderer; + + for(int j = 0; j < 7; j++) { + EnumPlayerPart type = EnumPlayerPart.values()[j]; + if(partsHidden[j]) { + getBoxFromType(renderer, type).isHidden = false; + } + } + } + + private static ModelRenderer getBoxFromType(RenderPlayer renderer, EnumPlayerPart part) { + + switch(part) { + case BODY: return renderer.modelBipedMain.bipedBody; + case HAT: return renderer.modelBipedMain.bipedHeadwear; + case HEAD: return renderer.modelBipedMain.bipedHead; + case LEFT_ARM: return renderer.modelBipedMain.bipedLeftArm; + case LEFT_LEG: return renderer.modelBipedMain.bipedLeftLeg; + case RIGHT_ARM: return renderer.modelBipedMain.bipedRightArm; + case RIGHT_LEG: return renderer.modelBipedMain.bipedRightLeg; + default: return null; + } + } +} diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index dab0a2c30..dcfb4853f 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -1236,6 +1236,28 @@ public class ItemRenderLibrary { bindTexture(ResourceManager.chemfac_tex); ResourceManager.chemfac.renderPart("Main"); GL11.glShadeModel(GL11.GL_FLAT); }}); + + renderers.put(Item.getItemFromBlock(ModBlocks.red_pylon_large), new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -5, 0); + GL11.glScaled(2.25, 2.25, 2.25); + } + public void renderCommon() { + GL11.glScaled(0.5, 0.5, 0.5); + bindTexture(ResourceManager.pylon_large_tex); ResourceManager.pylon_large.renderAll(); + }}); + + renderers.put(Item.getItemFromBlock(ModBlocks.substation), new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -2.5, 0); + GL11.glScaled(4.5, 4.5, 4.5); + } + public void renderCommon() { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.substation_tex); ResourceManager.substation.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}); } private static void bindTexture(ResourceLocation res) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index a55b976e8..ff0901721 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -390,8 +390,9 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements for(int j = 0; j < inv.getSizeInventory(); j++) { if(inv.getStackInSlot(j) == null) { - inv.setInventorySlotContents(j, out.copy()); - inv.getStackInSlot(j).stackSize = 1; + ItemStack copy = out.copy(); + copy.stackSize = 1; + inv.setInventorySlotContents(j, copy); this.decrStackSize(i, 1); return; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java index 01d3d8517..63a11d0ef 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java @@ -206,8 +206,6 @@ public class TileEntityMachineShredder extends TileEntity implements ISidedInven return false; } - System.out.println("ass"); - return true; } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java index 4b399436d..a9c53bddc 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java @@ -66,9 +66,17 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { if(mode == 1 || mode == 2) { if(te instanceof IEnergyConnector) { IEnergyConnector con = (IEnergyConnector) te; + + long max = 10_000_000_000_000_000L; + long toTransfer = Math.min(max, this.power); + long remainder = this.power - toTransfer; + this.power = toTransfer; + long oldPower = this.power; long transfer = this.power - con.transferPower(this.power); this.power = oldPower - transfer; + + power += remainder; } } diff --git a/src/main/java/com/hbm/util/BobMathUtil.java b/src/main/java/com/hbm/util/BobMathUtil.java index 797bb2b7e..e8cebbbb3 100644 --- a/src/main/java/com/hbm/util/BobMathUtil.java +++ b/src/main/java/com/hbm/util/BobMathUtil.java @@ -15,6 +15,17 @@ import net.minecraftforge.common.util.ForgeDirection; public class BobMathUtil { + public static double safeClamp(double val, double min, double max) { + + val = MathHelper.clamp_double(val, min, max); + + if(val == Double.NaN) { + val = (min + max) / 2D; + } + + return val; + } + public static Vec3 interpVec(Vec3 vec1, Vec3 vec2, float interp) { return Vec3.createVectorHelper( interp(vec1.xCoord, vec2.xCoord, interp), diff --git a/src/main/java/com/hbm/util/InventoryUtil.java b/src/main/java/com/hbm/util/InventoryUtil.java index c234df867..8132c728a 100644 --- a/src/main/java/com/hbm/util/InventoryUtil.java +++ b/src/main/java/com/hbm/util/InventoryUtil.java @@ -257,7 +257,6 @@ public class InventoryUtil { if(inv.stackSize <= 0) { inventory[j] = null; - System.out.println("da yis"); } } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index df5c54d0a..e9c2e7d07 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1014,6 +1014,7 @@ item.cape_codered_.name=codered_s Cape item.cape_dafnik.name=Dafniks Cape item.cape_gasmask.name=Cape (Gasmaske) item.cape_hbm.name=Hbms Cape +item.cape_hidden.name=Hidden Cape item.cape_lpkukin.name=LPkukins Cape item.cape_nostalgia.name=DrNostalgias Cape item.cape_radiation.name=Cape (Radioaktiv) diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 7d0904553..61880cb59 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1220,6 +1220,7 @@ item.cape_codered_.name=codered_'s Cape item.cape_dafnik.name=Dafnik's Cape item.cape_gasmask.name=Cape (Gas Mask) item.cape_hbm.name=Hbm's Cape +item.cape_hidden.name=Hidden Cape item.cape_lpkukin.name=LPkukin's Cape item.cape_nostalgia.name=DrNostalgia's Cape item.cape_radiation.name=Cape (Radiation) diff --git a/src/main/resources/assets/hbm/textures/models/capes/CapeHidden.png b/src/main/resources/assets/hbm/textures/models/capes/CapeHidden.png new file mode 100644 index 0000000000000000000000000000000000000000..948b34fdff7514ebfeaf9604c79697ce6254a7ef GIT binary patch literal 637 zcmV-@0)qXCP)A$To$0Qbbejg$f+&`v7r}#v9K7}J2k@&3g5b@9 z2f=_KNLA3K1S#!oP1u>n!?N4`m*Am+EX;En-kl8d`@QeHGw}cpUq4(vKh+pxI5`kB z5ke3}5wqE>7M~>D^Dp22^;*F##k>1ze>ofuIlc^ex4U3IpO+t_C;~t!MVh8)t;w>i zwMdr{=Wlc`Ob`I``J6O09HaPfe^8s?c^+w+){JS=RRw)P00cpR)*7ufXP!U^!NJv% zWZ+?p0U!*+a=eO3l7H`$AwGbVl3(Mn3>ss2bYTgCfG`XZqAqBXm{M%t@ryw+@Hmfi zu|fzwJ_wOg0&sY-EXQ3`4NBv1<-Bb~OcKLzXm~$@@B0F5p7}!XBr#ZP`TZY@<)v>o zy5ZZVtbizrkWvx^0YKU9tFeOFs9#xLhY#>I%+GVz6*nE&R{4L6Y^%||tUnQYgMV@$ zI2#6JS;izW+|zjpODV~+jPpA_KX&8eRKt3iJ{e-$6VT3ZT#vbYgaWd6slhqdd^ z_UCw0Tih&V4|uHePOp?=G#a6lTKS{qwOG){tFbgdO3CzSk1tQh0K{>OQflS(SBPzz z@$4$-n!dG^2279kh~s)4S50W%1YHOrP#25a-{l7JflhHnhT}M9FKw6hpK;W=V4t4B zP^o}s_CM|1Wb(yzyC0kmTA|*Fhsu9}CW~=h^tz{Tl~oPW;cz${4u`|xa5x+e$JX!< X!Edc}bQUfo00000NkvXXu0mjf7W5*G literal 0 HcmV?d00001 diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 84a3db2de..3b8a1cf2a 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "hbm", "name": "Hbm's Nuclear Tech", "description": "A mod that adds weapons, nuclear themed stuff and machines", - "version":"1.0.27_X4174", + "version":"1.0.27_X4178", "mcversion": "1.7.10", "url": "", "updateUrl": "",