diff --git a/CHANGELOG.md b/CHANGELOG.md index 084c5e746..8fa0ecf27 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - Added Project E integration for the External Storage on the Transmutation Table (raoulvdberge) - Added Project E integration for the energy values of Solderer items (raoulvdberge) - Fixed network not disconnecting when Controller is broken (raoulvdberge) +- The Fortune Upgrade doesn't use NBT anymore to store the fortune level (raoulvdberge) ### 1.5.17 - Re-added support for OpenComputers (raoulvdberge) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDestructor.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDestructor.java index 84593e1fd..4208614a8 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDestructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDestructor.java @@ -56,7 +56,7 @@ public class NetworkNodeDestructor extends NetworkNode implements IComparable, I private ItemHandlerBase itemFilters = new ItemHandlerBase(9, new ItemHandlerListenerNetworkNode(this)); private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerListenerNetworkNode(this)); - private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_SILK_TOUCH, ItemUpgrade.TYPE_FORTUNE); + private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_SILK_TOUCH, ItemUpgrade.TYPE_FORTUNE_1, ItemUpgrade.TYPE_FORTUNE_2, ItemUpgrade.TYPE_FORTUNE_3); private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; private int mode = IFilterable.WHITELIST; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerUpgrade.java b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerUpgrade.java index 0e9611039..7669b8b94 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerUpgrade.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerUpgrade.java @@ -58,13 +58,19 @@ public class ItemHandlerUpgrade extends ItemHandlerBase { } public int getFortuneLevel() { + int maxFortune = 0; + for (int i = 0; i < getSlots(); ++i) { - if (!getStackInSlot(i).isEmpty() && getStackInSlot(i).getItemDamage() == ItemUpgrade.TYPE_FORTUNE) { - return ItemUpgrade.getFortuneLevel(getStackInSlot(i)); + if (!getStackInSlot(i).isEmpty()) { + int fortune = ItemUpgrade.getFortuneLevel(getStackInSlot(i)); + + if (fortune > maxFortune) { + maxFortune = fortune; + } } } - return 0; + return maxFortune; } public int getItemInteractCount() { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemUpgrade.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemUpgrade.java index aa1091bdc..66b643171 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemUpgrade.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemUpgrade.java @@ -1,12 +1,10 @@ package com.raoulvdberge.refinedstorage.item; import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.RSItems; import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.NonNullList; import net.minecraft.world.World; @@ -20,9 +18,9 @@ public class ItemUpgrade extends ItemBase { public static final int TYPE_STACK = 4; public static final int TYPE_INTERDIMENSIONAL = 5; public static final int TYPE_SILK_TOUCH = 6; - public static final int TYPE_FORTUNE = 7; - - private static final String NBT_FORTUNE = "Fortune"; + public static final int TYPE_FORTUNE_1 = 7; + public static final int TYPE_FORTUNE_2 = 8; + public static final int TYPE_FORTUNE_3 = 9; public ItemUpgrade() { super("upgrade"); @@ -33,15 +31,15 @@ public class ItemUpgrade extends ItemBase { @Override public boolean hasEffect(ItemStack stack) { - return stack.getMetadata() == TYPE_SILK_TOUCH || stack.getMetadata() == TYPE_FORTUNE; + return stack.getMetadata() == TYPE_SILK_TOUCH || getFortuneLevel(stack) > 0; } @Override public void addInformation(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { super.addInformation(stack, world, tooltip, flag); - if (stack.getItemDamage() == TYPE_FORTUNE) { - tooltip.add(I18n.format("enchantment.lootBonusDigger") + " " + I18n.format("enchantment.level." + ItemUpgrade.getFortuneLevel(stack))); + if (getFortuneLevel(stack) > 0) { + tooltip.add(I18n.format("enchantment.lootBonusDigger") + " " + I18n.format("enchantment.level." + getFortuneLevel(stack))); } } @@ -51,28 +49,19 @@ public class ItemUpgrade extends ItemBase { return; } - for (int i = 0; i <= 6; ++i) { + for (int i = 0; i <= 9; ++i) { items.add(new ItemStack(this, 1, i)); } - - for (int j = 1; j <= 3; ++j) { - items.add(initializeForFortune(j)); - } } - public static ItemStack initializeForFortune(int level) { - ItemStack stack = new ItemStack(RSItems.UPGRADE, 1, TYPE_FORTUNE); - stack.setTagCompound(new NBTTagCompound()); - stack.getTagCompound().setInteger(NBT_FORTUNE, level); - return stack; - } - - public static int getFortuneLevel(ItemStack stack) { - if (stack != null && stack.getItemDamage() == ItemUpgrade.TYPE_FORTUNE) { - NBTTagCompound tag = stack.getTagCompound(); - - if (tag.hasKey(ItemUpgrade.NBT_FORTUNE)) { - return tag.getInteger(ItemUpgrade.NBT_FORTUNE); + public static int getFortuneLevel(@Nullable ItemStack stack) { + if (stack != null) { + if (stack.getMetadata() == TYPE_FORTUNE_1) { + return 1; + } else if (stack.getMetadata() == TYPE_FORTUNE_2) { + return 2; + } else if (stack.getMetadata() == TYPE_FORTUNE_3) { + return 3; } } @@ -93,8 +82,10 @@ public class ItemUpgrade extends ItemBase { return RS.INSTANCE.config.interdimensionalUpgradeUsage; case TYPE_SILK_TOUCH: return RS.INSTANCE.config.silkTouchUpgradeUsage; - case TYPE_FORTUNE: - return RS.INSTANCE.config.fortuneUpgradeUsagePerFortune * ItemUpgrade.getFortuneLevel(stack); + case TYPE_FORTUNE_1: + case TYPE_FORTUNE_2: + case TYPE_FORTUNE_3: + return RS.INSTANCE.config.fortuneUpgradeUsagePerFortune * getFortuneLevel(stack); default: return 0; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyClient.java b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyClient.java index 9ca3b05fe..9c2fd9912 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyClient.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyClient.java @@ -193,7 +193,9 @@ public class ProxyClient extends ProxyCommon { ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, ItemUpgrade.TYPE_STACK, new ModelResourceLocation("refinedstorage:stack_upgrade", "inventory")); ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, ItemUpgrade.TYPE_INTERDIMENSIONAL, new ModelResourceLocation("refinedstorage:interdimensional_upgrade", "inventory")); ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, ItemUpgrade.TYPE_SILK_TOUCH, new ModelResourceLocation("refinedstorage:silk_touch_upgrade", "inventory")); - ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, ItemUpgrade.TYPE_FORTUNE, new ModelResourceLocation("refinedstorage:fortune_upgrade", "inventory")); + ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, ItemUpgrade.TYPE_FORTUNE_1, new ModelResourceLocation("refinedstorage:fortune_upgrade", "inventory")); + ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, ItemUpgrade.TYPE_FORTUNE_2, new ModelResourceLocation("refinedstorage:fortune_upgrade", "inventory")); + ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, ItemUpgrade.TYPE_FORTUNE_3, new ModelResourceLocation("refinedstorage:fortune_upgrade", "inventory")); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RSBlocks.CABLE), 0, new ModelResourceLocation("refinedstorage:cable", "inventory")); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RSBlocks.MACHINE_CASING), 0, new ModelResourceLocation("refinedstorage:machine_casing", "inventory")); diff --git a/src/main/resources/assets/refinedstorage/lang/en_us.lang b/src/main/resources/assets/refinedstorage/lang/en_us.lang index 872d113e0..b3fba0348 100644 --- a/src/main/resources/assets/refinedstorage/lang/en_us.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_us.lang @@ -268,6 +268,8 @@ item.refinedstorage:upgrade.4.name=Stack Upgrade item.refinedstorage:upgrade.5.name=Interdimensional Upgrade item.refinedstorage:upgrade.6.name=Silk Touch Upgrade item.refinedstorage:upgrade.7.name=Fortune Upgrade +item.refinedstorage:upgrade.8.name=Fortune Upgrade +item.refinedstorage:upgrade.9.name=Fortune Upgrade item.refinedstorage:storage_housing.name=Storage Housing item.refinedstorage:filter.name=Filter item.refinedstorage:network_card.name=Network Card diff --git a/src/main/resources/assets/refinedstorage/solderer_recipes/fortune_1_upgrade.json b/src/main/resources/assets/refinedstorage/solderer_recipes/fortune_1_upgrade.json index 82e5b3887..7ea4a3d91 100644 --- a/src/main/resources/assets/refinedstorage/solderer_recipes/fortune_1_upgrade.json +++ b/src/main/resources/assets/refinedstorage/solderer_recipes/fortune_1_upgrade.json @@ -1,8 +1,5 @@ { "result": { - "nbt": { - "Fortune": 1 - }, "item": "refinedstorage:upgrade", "data": 7 }, diff --git a/src/main/resources/assets/refinedstorage/solderer_recipes/fortune_2_upgrade.json b/src/main/resources/assets/refinedstorage/solderer_recipes/fortune_2_upgrade.json index 9d7973fc6..6257a3a27 100644 --- a/src/main/resources/assets/refinedstorage/solderer_recipes/fortune_2_upgrade.json +++ b/src/main/resources/assets/refinedstorage/solderer_recipes/fortune_2_upgrade.json @@ -1,10 +1,7 @@ { "result": { - "nbt": { - "Fortune": 2 - }, "item": "refinedstorage:upgrade", - "data": 7 + "data": 8 }, "duration": 250, "rows": [ diff --git a/src/main/resources/assets/refinedstorage/solderer_recipes/fortune_3_upgrade.json b/src/main/resources/assets/refinedstorage/solderer_recipes/fortune_3_upgrade.json index 8b74d48a3..46e75f77b 100644 --- a/src/main/resources/assets/refinedstorage/solderer_recipes/fortune_3_upgrade.json +++ b/src/main/resources/assets/refinedstorage/solderer_recipes/fortune_3_upgrade.json @@ -1,10 +1,7 @@ { "result": { - "nbt": { - "Fortune": 3 - }, "item": "refinedstorage:upgrade", - "data": 7 + "data": 9 }, "duration": 250, "rows": [