aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>2019-01-12 01:20:09 +0100
committerbartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>2019-01-12 01:20:09 +0100
commit299823db1caa4c3343b3f601f9a63bbd3baee060 (patch)
tree28dc3cc02bf6d2ec05d778f976c74895e11a6a47
parent460374856a590c21771884cc1df2706e30206bc8 (diff)
downloadGT5-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>
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java4
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/server/container/GT_Container_CircuitProgrammer.java27
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java5
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)));
}