diff options
author | bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> | 2019-01-12 01:20:09 +0100 |
---|---|---|
committer | bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> | 2019-01-12 01:20:09 +0100 |
commit | 299823db1caa4c3343b3f601f9a63bbd3baee060 (patch) | |
tree | 28dc3cc02bf6d2ec05d778f976c74895e11a6a47 | |
parent | 460374856a590c21771884cc1df2706e30206bc8 (diff) | |
download | GT5-Unofficial-299823db1caa4c3343b3f601f9a63bbd3baee060.tar.gz GT5-Unofficial-299823db1caa4c3343b3f601f9a63bbd3baee060.tar.bz2 GT5-Unofficial-299823db1caa4c3343b3f601f9a63bbd3baee060.zip |
+fixed CircuitProgrammer Deleting Chips
+added autoconversion for basic circuits
+circuit programmer now drops unsupported items instead of deleting them
Signed-off-by: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>
3 files changed, 30 insertions, 6 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java index 605a8c8d0a..271f59c4c6 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java @@ -379,8 +379,8 @@ public class RecipeLoader implements Runnable { } ); - String[] stones = {"stone","stoneSmooth"}; - String[] granites = {"blockGranite","stoneGranite","Granite","granite"}; + String[] stones = {"stone", "stoneSmooth"}; + String[] granites = {"blockGranite", "stoneGranite", "Granite", "granite"}; for (String granite : granites) { for (String stone : stones) { GT_ModHandler.addCraftingRecipe( diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/server/container/GT_Container_CircuitProgrammer.java b/src/main/java/com/github/bartimaeusnek/bartworks/server/container/GT_Container_CircuitProgrammer.java index cd56a04a6b..9f0254bd62 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/server/container/GT_Container_CircuitProgrammer.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/server/container/GT_Container_CircuitProgrammer.java @@ -22,7 +22,11 @@ package com.github.bartimaeusnek.bartworks.server.container; +import com.github.bartimaeusnek.bartworks.util.BW_Util; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; import gregtech.api.gui.GT_Slot_Holo; +import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; @@ -31,6 +35,7 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.ForgeHooks; public class GT_Container_CircuitProgrammer extends Container { @@ -102,12 +107,13 @@ public class GT_Container_CircuitProgrammer extends Container { ItemStack toBind; EntityPlayer Player; ItemStack Slot; + NBTTagCompound tag; public pinv(EntityPlayer Player) { super(); this.Player = Player; this.toBind = Player.inventory.getCurrentItem(); - NBTTagCompound tag = this.toBind.getTagCompound(); + tag = this.toBind.getTagCompound(); if (tag.getBoolean("HasChip")) Slot = GT_Utility.getIntegratedCircuit(tag.getByte("ChipConfig")); } @@ -126,7 +132,7 @@ public class GT_Container_CircuitProgrammer extends Container { public ItemStack decrStackSize(int slotNR, int count) { ItemStack ret = Slot.copy(); Slot = null; - NBTTagCompound tag = toBind.getTagCompound(); + tag = toBind.getTagCompound(); tag.setBoolean("HasChip", false); toBind.setTagCompound(tag); Player.inventory.setInventorySlotContents(Player.inventory.currentItem, toBind); @@ -140,14 +146,27 @@ public class GT_Container_CircuitProgrammer extends Container { @Override public void setInventorySlotContents(int slotNR, ItemStack itemStack) { - if (itemStack != null && itemStack.getItem().equals(GT_Utility.getIntegratedCircuit(0).getItem())) { + if (itemStack != null && itemStack.getItem() != null && itemStack.getItem().equals(GT_Utility.getIntegratedCircuit(0).getItem())) { Slot = itemStack.copy().splitStack(1); itemStack.stackSize--; - NBTTagCompound tag = toBind.getTagCompound(); + tag = toBind.getTagCompound(); tag.setBoolean("HasChip", true); tag.setByte("ChipConfig", (byte) itemStack.getItemDamage()); toBind.setTagCompound(tag); Player.inventory.setInventorySlotContents(Player.inventory.currentItem, toBind); + } else if (BW_Util.checkStackAndPrefix(itemStack) && GT_OreDictUnificator.getAssociation(itemStack).mPrefix.equals(OrePrefixes.circuit) && GT_OreDictUnificator.getAssociation(itemStack).mMaterial.mMaterial.equals(Materials.Basic)) { + Slot = GT_Utility.getIntegratedCircuit(0); + itemStack.stackSize--; + tag = toBind.getTagCompound(); + tag.setBoolean("HasChip", true); + tag.setByte("ChipConfig", (byte) itemStack.getItemDamage()); + toBind.setTagCompound(tag); + Player.inventory.setInventorySlotContents(Player.inventory.currentItem, toBind); + } else { + ForgeHooks.onPlayerTossEvent(Player, itemStack, false); + tag = toBind.getTagCompound(); + tag.setBoolean("HasChip", false); + toBind.setTagCompound(tag); } } diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java b/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java index 19b5897fcf..ba5265904f 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java @@ -25,6 +25,7 @@ package com.github.bartimaeusnek.bartworks.util; import com.github.bartimaeusnek.bartworks.API.BioVatLogicAdder; import gregtech.api.enums.Materials; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.block.Block; import net.minecraft.item.EnumRarity; @@ -76,6 +77,10 @@ public class BW_Util { return (int) (materials.getProtons() == 43L ? (materials.equals(Materials.NaquadahEnriched) ? 140 : materials.equals(Materials.Naquadria) ? 150 : materials.equals(Materials.Naquadah) ? 130 : 43) : materials.getProtons()); } + public static boolean checkStackAndPrefix(ItemStack itemStack) { + return itemStack != null && GT_OreDictUnificator.getAssociation(itemStack) != null && GT_OreDictUnificator.getAssociation(itemStack).mPrefix != null && GT_OreDictUnificator.getAssociation(itemStack).mMaterial != null && GT_OreDictUnificator.getAssociation(itemStack).mMaterial.mMaterial != null; + } + public static int getMachineVoltageFromTier(int tier) { return (int) (30 * Math.pow(4, (tier - 1))); } |