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 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)

View File

@@ -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;

View File

@@ -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() {

View File

@@ -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<String> 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;
}

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_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"));

View File

@@ -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

View File

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

View File

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

View File

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