The Fortune Upgrade doesn't use NBT anymore to store the fortune level

This commit is contained in:
raoulvdberge
2017-09-01 20:44:43 +02:00
parent 4be5ac51d2
commit f432755535
9 changed files with 37 additions and 44 deletions

View File

@@ -4,6 +4,7 @@
- Added Project E integration for the External Storage on the Transmutation Table (raoulvdberge) - 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) - Added Project E integration for the energy values of Solderer items (raoulvdberge)
- Fixed network not disconnecting when Controller is broken (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 ### 1.5.17
- Re-added support for OpenComputers (raoulvdberge) - Re-added support for OpenComputers (raoulvdberge)

View File

@@ -56,7 +56,7 @@ public class NetworkNodeDestructor extends NetworkNode implements IComparable, I
private ItemHandlerBase itemFilters = new ItemHandlerBase(9, new ItemHandlerListenerNetworkNode(this)); private ItemHandlerBase itemFilters = new ItemHandlerBase(9, new ItemHandlerListenerNetworkNode(this));
private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(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 compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE;
private int mode = IFilterable.WHITELIST; private int mode = IFilterable.WHITELIST;

View File

@@ -58,13 +58,19 @@ public class ItemHandlerUpgrade extends ItemHandlerBase {
} }
public int getFortuneLevel() { public int getFortuneLevel() {
int maxFortune = 0;
for (int i = 0; i < getSlots(); ++i) { for (int i = 0; i < getSlots(); ++i) {
if (!getStackInSlot(i).isEmpty() && getStackInSlot(i).getItemDamage() == ItemUpgrade.TYPE_FORTUNE) { if (!getStackInSlot(i).isEmpty()) {
return ItemUpgrade.getFortuneLevel(getStackInSlot(i)); int fortune = ItemUpgrade.getFortuneLevel(getStackInSlot(i));
if (fortune > maxFortune) {
maxFortune = fortune;
}
} }
} }
return 0; return maxFortune;
} }
public int getItemInteractCount() { public int getItemInteractCount() {

View File

@@ -1,12 +1,10 @@
package com.raoulvdberge.refinedstorage.item; package com.raoulvdberge.refinedstorage.item;
import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSItems;
import net.minecraft.client.resources.I18n; import net.minecraft.client.resources.I18n;
import net.minecraft.client.util.ITooltipFlag; import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.NonNullList; import net.minecraft.util.NonNullList;
import net.minecraft.world.World; 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_STACK = 4;
public static final int TYPE_INTERDIMENSIONAL = 5; public static final int TYPE_INTERDIMENSIONAL = 5;
public static final int TYPE_SILK_TOUCH = 6; public static final int TYPE_SILK_TOUCH = 6;
public static final int TYPE_FORTUNE = 7; public static final int TYPE_FORTUNE_1 = 7;
public static final int TYPE_FORTUNE_2 = 8;
private static final String NBT_FORTUNE = "Fortune"; public static final int TYPE_FORTUNE_3 = 9;
public ItemUpgrade() { public ItemUpgrade() {
super("upgrade"); super("upgrade");
@@ -33,15 +31,15 @@ public class ItemUpgrade extends ItemBase {
@Override @Override
public boolean hasEffect(ItemStack stack) { 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 @Override
public void addInformation(ItemStack stack, @Nullable World world, List<String> tooltip, ITooltipFlag flag) { public void addInformation(ItemStack stack, @Nullable World world, List<String> tooltip, ITooltipFlag flag) {
super.addInformation(stack, world, tooltip, flag); super.addInformation(stack, world, tooltip, flag);
if (stack.getItemDamage() == TYPE_FORTUNE) { if (getFortuneLevel(stack) > 0) {
tooltip.add(I18n.format("enchantment.lootBonusDigger") + " " + I18n.format("enchantment.level." + ItemUpgrade.getFortuneLevel(stack))); tooltip.add(I18n.format("enchantment.lootBonusDigger") + " " + I18n.format("enchantment.level." + getFortuneLevel(stack)));
} }
} }
@@ -51,28 +49,19 @@ public class ItemUpgrade extends ItemBase {
return; return;
} }
for (int i = 0; i <= 6; ++i) { for (int i = 0; i <= 9; ++i) {
items.add(new ItemStack(this, 1, 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) { public static int getFortuneLevel(@Nullable ItemStack stack) {
ItemStack stack = new ItemStack(RSItems.UPGRADE, 1, TYPE_FORTUNE); if (stack != null) {
stack.setTagCompound(new NBTTagCompound()); if (stack.getMetadata() == TYPE_FORTUNE_1) {
stack.getTagCompound().setInteger(NBT_FORTUNE, level); return 1;
return stack; } else if (stack.getMetadata() == TYPE_FORTUNE_2) {
} return 2;
} else if (stack.getMetadata() == TYPE_FORTUNE_3) {
public static int getFortuneLevel(ItemStack stack) { return 3;
if (stack != null && stack.getItemDamage() == ItemUpgrade.TYPE_FORTUNE) {
NBTTagCompound tag = stack.getTagCompound();
if (tag.hasKey(ItemUpgrade.NBT_FORTUNE)) {
return tag.getInteger(ItemUpgrade.NBT_FORTUNE);
} }
} }
@@ -93,8 +82,10 @@ public class ItemUpgrade extends ItemBase {
return RS.INSTANCE.config.interdimensionalUpgradeUsage; return RS.INSTANCE.config.interdimensionalUpgradeUsage;
case TYPE_SILK_TOUCH: case TYPE_SILK_TOUCH:
return RS.INSTANCE.config.silkTouchUpgradeUsage; return RS.INSTANCE.config.silkTouchUpgradeUsage;
case TYPE_FORTUNE: case TYPE_FORTUNE_1:
return RS.INSTANCE.config.fortuneUpgradeUsagePerFortune * ItemUpgrade.getFortuneLevel(stack); case TYPE_FORTUNE_2:
case TYPE_FORTUNE_3:
return RS.INSTANCE.config.fortuneUpgradeUsagePerFortune * getFortuneLevel(stack);
default: default:
return 0; return 0;
} }

View File

@@ -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_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_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_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.CABLE), 0, new ModelResourceLocation("refinedstorage:cable", "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RSBlocks.MACHINE_CASING), 0, new ModelResourceLocation("refinedstorage:machine_casing", "inventory")); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RSBlocks.MACHINE_CASING), 0, new ModelResourceLocation("refinedstorage:machine_casing", "inventory"));

View File

@@ -268,6 +268,8 @@ item.refinedstorage:upgrade.4.name=Stack Upgrade
item.refinedstorage:upgrade.5.name=Interdimensional Upgrade item.refinedstorage:upgrade.5.name=Interdimensional Upgrade
item.refinedstorage:upgrade.6.name=Silk Touch Upgrade item.refinedstorage:upgrade.6.name=Silk Touch Upgrade
item.refinedstorage:upgrade.7.name=Fortune 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:storage_housing.name=Storage Housing
item.refinedstorage:filter.name=Filter item.refinedstorage:filter.name=Filter
item.refinedstorage:network_card.name=Network Card item.refinedstorage:network_card.name=Network Card

View File

@@ -1,8 +1,5 @@
{ {
"result": { "result": {
"nbt": {
"Fortune": 1
},
"item": "refinedstorage:upgrade", "item": "refinedstorage:upgrade",
"data": 7 "data": 7
}, },

View File

@@ -1,10 +1,7 @@
{ {
"result": { "result": {
"nbt": {
"Fortune": 2
},
"item": "refinedstorage:upgrade", "item": "refinedstorage:upgrade",
"data": 7 "data": 8
}, },
"duration": 250, "duration": 250,
"rows": [ "rows": [

View File

@@ -1,10 +1,7 @@
{ {
"result": { "result": {
"nbt": {
"Fortune": 3
},
"item": "refinedstorage:upgrade", "item": "refinedstorage:upgrade",
"data": 7 "data": 9
}, },
"duration": 250, "duration": 250,
"rows": [ "rows": [