From 28993a4a599daa94ce70ca92f42ae7cdc35d332a Mon Sep 17 00:00:00 2001 From: InusualZ Date: Sat, 15 Oct 2016 17:51:27 -0400 Subject: [PATCH] Silk Touch Upgrade for the Destructor (#471) * Silk Touch Upgrade for the Destructor * Removed unused imports * Naming Convention * Get enchant by string id * Moved if * Forgot to add the renamed files and fix some coding style * Unused statement * Remove unused var --- src/main/java/refinedstorage/RSConfig.java | 2 ++ .../java/refinedstorage/item/ItemUpgrade.java | 9 ++++++- .../refinedstorage/proxy/ClientProxy.java | 4 +++- .../refinedstorage/proxy/CommonProxy.java | 1 + .../refinedstorage/tile/TileDestructor.java | 22 ++++++++++++------ .../assets/refinedstorage/lang/en_US.lang | 1 + .../models/item/silk_touch_upgrade.json | 6 +++++ .../textures/items/silk_touch_upgrade.png | Bin 0 -> 1480 bytes 8 files changed, 36 insertions(+), 9 deletions(-) create mode 100644 src/main/resources/assets/refinedstorage/models/item/silk_touch_upgrade.json create mode 100644 src/main/resources/assets/refinedstorage/textures/items/silk_touch_upgrade.png diff --git a/src/main/java/refinedstorage/RSConfig.java b/src/main/java/refinedstorage/RSConfig.java index 955af56e6..569a1587f 100755 --- a/src/main/java/refinedstorage/RSConfig.java +++ b/src/main/java/refinedstorage/RSConfig.java @@ -70,6 +70,7 @@ public final class RSConfig { public int craftingUpgradeUsage; public int stackUpgradeUsage; public int interdimensionalUpgradeUsage; + public int silkTouchUpgradeUsage; //endregion //region Categories @@ -157,6 +158,7 @@ public final class RSConfig { craftingUpgradeUsage = config.getInt("crafting", UPGRADES, 5, 0, Integer.MAX_VALUE, "The additional energy used per Crafting Upgrade"); stackUpgradeUsage = config.getInt("stack", UPGRADES, 12, 0, Integer.MAX_VALUE, "The additional energy used per Stack Upgrade"); interdimensionalUpgradeUsage = config.getInt("interdimensional", UPGRADES, 1000, 0, Integer.MAX_VALUE, "The additional energy used by the Interdimensional Upgrade"); + silkTouchUpgradeUsage = config.getInt("silkTouch", UPGRADES, 15, 0, Integer.MAX_VALUE, "The additional energy used by the Silk Touch Upgrade"); //endregion if (config.hasChanged()) { diff --git a/src/main/java/refinedstorage/item/ItemUpgrade.java b/src/main/java/refinedstorage/item/ItemUpgrade.java index 50d9eb04a..afcd7596c 100755 --- a/src/main/java/refinedstorage/item/ItemUpgrade.java +++ b/src/main/java/refinedstorage/item/ItemUpgrade.java @@ -1,6 +1,8 @@ package refinedstorage.item; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentData; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; @@ -15,6 +17,7 @@ public class ItemUpgrade extends ItemBase { public static final int TYPE_CRAFTING = 3; public static final int TYPE_STACK = 4; public static final int TYPE_INTERDIMENSIONAL = 5; + public static final int TYPE_SILK_TOUCH = 6; public ItemUpgrade() { super("upgrade"); @@ -26,7 +29,7 @@ public class ItemUpgrade extends ItemBase { @Override public void getSubItems(Item item, CreativeTabs tab, List list) { - for (int i = 0; i <= 5; ++i) { + for (int i = 0; i <= 6; ++i) { list.add(new ItemStack(item, 1, i)); } } @@ -43,6 +46,8 @@ public class ItemUpgrade extends ItemBase { return RS.INSTANCE.config.stackUpgradeUsage; case TYPE_INTERDIMENSIONAL: return RS.INSTANCE.config.interdimensionalUpgradeUsage; + case TYPE_SILK_TOUCH: + return RS.INSTANCE.config.silkTouchUpgradeUsage; default: return 0; } @@ -58,6 +63,8 @@ public class ItemUpgrade extends ItemBase { return new ItemStack(Blocks.CRAFTING_TABLE); case ItemUpgrade.TYPE_INTERDIMENSIONAL: return new ItemStack(Items.NETHER_STAR); + case ItemUpgrade.TYPE_SILK_TOUCH: + return Items.ENCHANTED_BOOK.getEnchantedItemStack(new EnchantmentData(Enchantment.getEnchantmentByLocation("silk_touch"), 1)); default: return null; } diff --git a/src/main/java/refinedstorage/proxy/ClientProxy.java b/src/main/java/refinedstorage/proxy/ClientProxy.java index 77e39cead..905393fe3 100755 --- a/src/main/java/refinedstorage/proxy/ClientProxy.java +++ b/src/main/java/refinedstorage/proxy/ClientProxy.java @@ -197,7 +197,8 @@ public class ClientProxy extends CommonProxy { new ResourceLocation("refinedstorage:range_upgrade"), new ResourceLocation("refinedstorage:speed_upgrade"), new ResourceLocation("refinedstorage:stack_upgrade"), - new ResourceLocation("refinedstorage:interdimensional_upgrade") + new ResourceLocation("refinedstorage:interdimensional_upgrade"), + new ResourceLocation("refinedstorage:silk_touch_upgrade") ); // Items @@ -249,6 +250,7 @@ public class ClientProxy extends CommonProxy { ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, ItemUpgrade.TYPE_CRAFTING, new ModelResourceLocation("refinedstorage:crafting_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_SILK_TOUCH, new ModelResourceLocation("refinedstorage:silk_touch_upgrade", "inventory")); // Blocks ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RSBlocks.CABLE), 0, new ModelResourceLocation("refinedstorage:cable", "inventory")); diff --git a/src/main/java/refinedstorage/proxy/CommonProxy.java b/src/main/java/refinedstorage/proxy/CommonProxy.java index ca8e7aa78..a3c289282 100755 --- a/src/main/java/refinedstorage/proxy/CommonProxy.java +++ b/src/main/java/refinedstorage/proxy/CommonProxy.java @@ -540,6 +540,7 @@ public class CommonProxy { API.instance().getSoldererRegistry().addRecipe(new SoldererRecipeUpgrade(ItemUpgrade.TYPE_RANGE)); API.instance().getSoldererRegistry().addRecipe(new SoldererRecipeUpgrade(ItemUpgrade.TYPE_SPEED)); API.instance().getSoldererRegistry().addRecipe(new SoldererRecipeUpgrade(ItemUpgrade.TYPE_INTERDIMENSIONAL)); + API.instance().getSoldererRegistry().addRecipe(new SoldererRecipeUpgrade(ItemUpgrade.TYPE_SILK_TOUCH)); API.instance().getSoldererRegistry().addRecipe(new SoldererRecipeUpgrade(ItemUpgrade.TYPE_CRAFTING)); GameRegistry.addShapedRecipe(new ItemStack(RSItems.UPGRADE, 1, ItemUpgrade.TYPE_STACK), diff --git a/src/main/java/refinedstorage/tile/TileDestructor.java b/src/main/java/refinedstorage/tile/TileDestructor.java index 2303b7ef9..3daa2a2c1 100755 --- a/src/main/java/refinedstorage/tile/TileDestructor.java +++ b/src/main/java/refinedstorage/tile/TileDestructor.java @@ -38,6 +38,7 @@ import refinedstorage.tile.data.ITileDataProducer; import refinedstorage.tile.data.TileDataParameter; import java.util.ArrayList; +import java.util.Collections; import java.util.List; public class TileDestructor extends TileMultipartNode implements IComparable, IFilterable, IType { @@ -68,7 +69,7 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, this); private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, this); - private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_SPEED); + private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_SILK_TOUCH); private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; private int mode = IFilterable.WHITELIST; @@ -125,7 +126,18 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF if (frontStack != null) { if (IFilterable.canTake(itemFilters, mode, compare, frontStack)) { - List drops = frontBlockState.getBlock().getDrops(worldObj, front, frontBlockState, 0); + List drops; + if (!upgrades.hasUpgrade(ItemUpgrade.TYPE_SILK_TOUCH)) { + drops = frontBlockState.getBlock().getDrops(worldObj, front, frontBlockState, 0); + } else { + drops = Collections.singletonList(frontStack); + } + + for (ItemStack drop : drops) { + if (network.insertItem(drop, drop.stackSize, true) != null) { + return; + } + } worldObj.playEvent(null, 2001, front, Block.getStateId(frontBlockState)); worldObj.setBlockToAir(front); @@ -136,11 +148,7 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF if (network == null) { InventoryHelper.spawnItemStack(worldObj, front.getX(), front.getY(), front.getZ(), drop); } else { - ItemStack remainder = network.insertItem(drop, drop.stackSize, false); - - if (remainder != null) { - InventoryHelper.spawnItemStack(worldObj, front.getX(), front.getY(), front.getZ(), remainder); - } + network.insertItem(drop, drop.stackSize, false); } } } diff --git a/src/main/resources/assets/refinedstorage/lang/en_US.lang b/src/main/resources/assets/refinedstorage/lang/en_US.lang index 3aff85b48..7b8d312eb 100755 --- a/src/main/resources/assets/refinedstorage/lang/en_US.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_US.lang @@ -212,6 +212,7 @@ item.refinedstorage:upgrade.2.name=Speed Upgrade item.refinedstorage:upgrade.3.name=Crafting Upgrade item.refinedstorage:upgrade.4.name=Stack Upgrade item.refinedstorage:upgrade.5.name=Interdimensional Upgrade +item.refinedstorage:upgrade.6.name=Silk Touch Upgrade item.refinedstorage:storage_housing.name=Storage Housing item.refinedstorage:grid_filter.name=Grid Filter item.refinedstorage:network_card.name=Network Card \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/models/item/silk_touch_upgrade.json b/src/main/resources/assets/refinedstorage/models/item/silk_touch_upgrade.json new file mode 100644 index 000000000..ce6dd9e55 --- /dev/null +++ b/src/main/resources/assets/refinedstorage/models/item/silk_touch_upgrade.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "refinedstorage:items/silk_touch_upgrade" // Place Holder + } +} diff --git a/src/main/resources/assets/refinedstorage/textures/items/silk_touch_upgrade.png b/src/main/resources/assets/refinedstorage/textures/items/silk_touch_upgrade.png new file mode 100644 index 0000000000000000000000000000000000000000..2c46a53b5a4985fe4a18d594aab06346d7fb468e GIT binary patch literal 1480 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n9DLlB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuk&``nLQqR!T z!q~`EN5ROz&{W^RQs2-(*TB%q(7?*bKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD#PU%0_}#n6BP2AO_EVu8M)o`HUDF34YC)x{-2sR(CaRb3oXS&*t9 zlvEeuVQbq#?b3Jgypvt&bam^s+=o0^z8TAH}JnmW4zW5dk1m-nRzMs<;9wyXoC3KCABECEH%ZgC_h&L9L`pmSlnP}k(Op; zVrisnYHn42&;4T^vIyZY`N?n-LW#a{Rw}Aj`tyPK%HY-s-G^ zYn-(?`WCUocCVY+yH#LiguPkeMMsflK0z13?OaV$6s#;dH!EoIwYp@BPPtvKr(tqF zz>apJoiy5P$uq7+Gd}XSF>1ajb?6GzAJ9M`nk=|Po&87AD`&AynjJ( zQCZiT>#r+~X1c5mJDj!E$wW$YLi2TT#=Pyb+Ycv(tPW*qcD(Ysbj|hb7AM7p)q)Oj zNgHQ;@HzIjEPBq`Fz*+C>-O8ozGAY~o8H~;rhIDlWRHiRK31Hup4<0h*?*x4-+$No zmGhS!=eUw(8lojC!^bYv$x>n^Ya+#~BgWl!SkXp~f7e|-v2NBWUQ2CQk4Z2!GJN}O z`=-pgXs1lsZdnno)`n0mQ3)P4k?y0H8{U?2U;iz)f=z|Rb7|0x9J57J-4+YZ^kEBI z9V!ya_T$GlaXtIL$8sMTulWD@r;OTUPlpr5D?^$tzZ7Bp`m@G|t>TAr@6&eCcklBi z?0a21N-9Q5Bz(|m@ilVXznKMR{?s{AAYU6 zm|@bAp1H>VJ(H>Vyg7m`_FkHL=X8I3{434Y+&H8AWy!Dk&yzp$-~LfDldF~KYLotS lZ(z`;Pw(7YHupcL0R!v4ulDS1ZxcXetEa1<%Q~loCIF1v5uyM9 literal 0 HcmV?d00001