diff --git a/CHANGELOG.md b/CHANGELOG.md index 0de10c9ea..c6292e3e9 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Refined Storage Changelog +### 0.8.14 +**Features** +- Added Interdimensional Upgrade so the Network Transmitter can work over different dimensions + ### 0.8.13 **Bugfixes** - Fixed rendering crash with Disk Drive diff --git a/src/main/java/refinedstorage/RefinedStorage.java b/src/main/java/refinedstorage/RefinedStorage.java index 477bf14d4..23d49f8cf 100755 --- a/src/main/java/refinedstorage/RefinedStorage.java +++ b/src/main/java/refinedstorage/RefinedStorage.java @@ -83,7 +83,7 @@ public final class RefinedStorage { public int speedUpgradeUsage; public int craftingUpgradeUsage; public int stackUpgradeUsage; - public int interdimensionUpgradeUsage; + public int interdimensionalUpgradeUsage; @EventHandler public void preInit(FMLPreInitializationEvent e) { @@ -127,7 +127,7 @@ public final class RefinedStorage { speedUpgradeUsage = config.getInt("speed", "upgrades", 2, 0, Integer.MAX_VALUE, "The additional energy used per Speed Upgrade"); 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"); - interdimensionUpgradeUsage = config.getInt("interdimension", "upgrades", 1000, 0, Integer.MAX_VALUE, "The energy used by the Interdimension Upgrade"); + interdimensionalUpgradeUsage = config.getInt("interdimensional", "upgrades", 1000, 0, Integer.MAX_VALUE, "The additional energy used by the Interdimensional Upgrade"); config.save(); } diff --git a/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java b/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java index e31a30de2..c18d2ef2b 100755 --- a/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java +++ b/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java @@ -72,7 +72,7 @@ public class NetworkNodeGraph implements INetworkNodeGraph { final TileNetworkTransmitter transmitter = (TileNetworkTransmitter) tile; if (transmitter.canTransmit()) { - if (!transmitter.isInSameDimension()) { + if (!transmitter.isSameDimension()) { NetworkNodeGraph dimensionGraph = new NetworkNodeGraph(controller) { @Override public World getWorld() { diff --git a/src/main/java/refinedstorage/gui/GuiNetworkTransmitter.java b/src/main/java/refinedstorage/gui/GuiNetworkTransmitter.java index cb3d005cb..9606afc60 100755 --- a/src/main/java/refinedstorage/gui/GuiNetworkTransmitter.java +++ b/src/main/java/refinedstorage/gui/GuiNetworkTransmitter.java @@ -35,8 +35,10 @@ public class GuiNetworkTransmitter extends GuiBase { String distance; - if (!networkTransmitter.isInSameDimension()) { - distance = t("gui.refinedstorage:network_transmitter.different_dimension"); + if (!networkTransmitter.isDimensionSupported()) { + distance = t("gui.refinedstorage:network_transmitter.missing_upgrade"); + } else if (!networkTransmitter.isSameDimension()) { + distance = t("gui.refinedstorage:network_transmitter.dimension", networkTransmitter.getReceiverDimension()); } else if (networkTransmitter.getDistance() == -1) { distance = t("gui.refinedstorage:network_transmitter.missing_card"); } else { diff --git a/src/main/java/refinedstorage/item/ItemUpgrade.java b/src/main/java/refinedstorage/item/ItemUpgrade.java index 6cb10cc12..863a1b337 100755 --- a/src/main/java/refinedstorage/item/ItemUpgrade.java +++ b/src/main/java/refinedstorage/item/ItemUpgrade.java @@ -14,7 +14,7 @@ public class ItemUpgrade extends ItemBase { public static final int TYPE_SPEED = 2; public static final int TYPE_CRAFTING = 3; public static final int TYPE_STACK = 4; - public static final int TYPE_INTERDIMENSION = 5; + public static final int TYPE_INTERDIMENSIONAL = 5; public ItemUpgrade() { super("upgrade"); @@ -41,8 +41,8 @@ public class ItemUpgrade extends ItemBase { return RefinedStorage.INSTANCE.craftingUpgradeUsage; case TYPE_STACK: return RefinedStorage.INSTANCE.stackUpgradeUsage; - case TYPE_INTERDIMENSION: - return RefinedStorage.INSTANCE.interdimensionUpgradeUsage; + case TYPE_INTERDIMENSIONAL: + return RefinedStorage.INSTANCE.interdimensionalUpgradeUsage; default: return 0; } @@ -56,7 +56,7 @@ public class ItemUpgrade extends ItemBase { return new ItemStack(Items.SUGAR); case ItemUpgrade.TYPE_CRAFTING: return new ItemStack(Blocks.CRAFTING_TABLE); - case ItemUpgrade.TYPE_INTERDIMENSION: + case ItemUpgrade.TYPE_INTERDIMENSIONAL: return new ItemStack(Items.NETHER_STAR); default: return null; diff --git a/src/main/java/refinedstorage/proxy/ClientProxy.java b/src/main/java/refinedstorage/proxy/ClientProxy.java index 315aa0f66..58182e494 100755 --- a/src/main/java/refinedstorage/proxy/ClientProxy.java +++ b/src/main/java/refinedstorage/proxy/ClientProxy.java @@ -62,7 +62,7 @@ public class ClientProxy extends CommonProxy { new ResourceLocation("refinedstorage:range_upgrade"), new ResourceLocation("refinedstorage:speed_upgrade"), new ResourceLocation("refinedstorage:stack_upgrade"), - new ResourceLocation("refinedstorage:interdimension_upgrade") + new ResourceLocation("refinedstorage:interdimensional_upgrade") ); // Items @@ -103,7 +103,7 @@ public class ClientProxy extends CommonProxy { ModelLoader.setCustomModelResourceLocation(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_SPEED, new ModelResourceLocation("refinedstorage:speed_upgrade", "inventory")); ModelLoader.setCustomModelResourceLocation(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_CRAFTING, new ModelResourceLocation("refinedstorage:crafting_upgrade", "inventory")); ModelLoader.setCustomModelResourceLocation(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_STACK, new ModelResourceLocation("refinedstorage:stack_upgrade", "inventory")); - ModelLoader.setCustomModelResourceLocation(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_INTERDIMENSION, new ModelResourceLocation("refinedstorage:interdimension_upgrade", "inventory")); + ModelLoader.setCustomModelResourceLocation(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_INTERDIMENSIONAL, new ModelResourceLocation("refinedstorage:interdimensional_upgrade", "inventory")); // Blocks ModelLoader.setCustomStateMapper(RefinedStorageBlocks.GRID, (new StateMap.Builder()) diff --git a/src/main/java/refinedstorage/proxy/CommonProxy.java b/src/main/java/refinedstorage/proxy/CommonProxy.java index 22ba02209..5bf983892 100755 --- a/src/main/java/refinedstorage/proxy/CommonProxy.java +++ b/src/main/java/refinedstorage/proxy/CommonProxy.java @@ -438,7 +438,7 @@ public class CommonProxy { RefinedStorageAPI.SOLDERER_REGISTRY.addRecipe(new SoldererRecipeUpgrade(ItemUpgrade.TYPE_RANGE)); RefinedStorageAPI.SOLDERER_REGISTRY.addRecipe(new SoldererRecipeUpgrade(ItemUpgrade.TYPE_SPEED)); RefinedStorageAPI.SOLDERER_REGISTRY.addRecipe(new SoldererRecipeUpgrade(ItemUpgrade.TYPE_CRAFTING)); - RefinedStorageAPI.SOLDERER_REGISTRY.addRecipe(new SoldererRecipeUpgrade(ItemUpgrade.TYPE_INTERDIMENSION)); + RefinedStorageAPI.SOLDERER_REGISTRY.addRecipe(new SoldererRecipeUpgrade(ItemUpgrade.TYPE_INTERDIMENSIONAL)); GameRegistry.addShapedRecipe(new ItemStack(RefinedStorageItems.UPGRADE, 1, ItemUpgrade.TYPE_STACK), "USU", diff --git a/src/main/java/refinedstorage/tile/TileNetworkTransmitter.java b/src/main/java/refinedstorage/tile/TileNetworkTransmitter.java index 9404e30a8..821f14c68 100755 --- a/src/main/java/refinedstorage/tile/TileNetworkTransmitter.java +++ b/src/main/java/refinedstorage/tile/TileNetworkTransmitter.java @@ -15,7 +15,17 @@ import refinedstorage.item.ItemNetworkCard; import refinedstorage.item.ItemUpgrade; public class TileNetworkTransmitter extends TileNode { - private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(1, this, ItemUpgrade.TYPE_INTERDIMENSION); + private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(1, this, ItemUpgrade.TYPE_INTERDIMENSIONAL) { + @Override + protected void onContentsChanged(int slot) { + super.onContentsChanged(slot); + + if (network != null) { + network.getNodeGraph().rebuild(network.getPosition()); + } + } + }; + private ItemHandlerBasic networkCard = new ItemHandlerBasic(1, this, new ItemValidatorBasic(RefinedStorageItems.NETWORK_CARD)) { @Override protected void onContentsChanged(int slot) { @@ -41,7 +51,7 @@ public class TileNetworkTransmitter extends TileNode { // Used clientside private int distance; - private boolean inSameDimension; + private boolean dimensionSupported; public TileNetworkTransmitter() { rebuildOnUpdateChange = true; @@ -52,7 +62,7 @@ public class TileNetworkTransmitter extends TileNode { } public boolean canTransmit() { - return canUpdate() && receiver != null; + return canUpdate() && receiver != null && isDimensionSupported(); } @Override @@ -77,8 +87,9 @@ public class TileNetworkTransmitter extends TileNode { public void writeContainerData(ByteBuf buf) { super.writeContainerData(buf); - buf.writeInt((receiver != null && isInSameDimension()) ? getDistance() : -1); - buf.writeBoolean(isInSameDimension()); + buf.writeInt((receiver != null && isSameDimension()) ? getDistance() : -1); + buf.writeInt(receiverDimension); + buf.writeBoolean(isDimensionSupported()); } @Override @@ -86,12 +97,13 @@ public class TileNetworkTransmitter extends TileNode { super.readContainerData(buf); distance = buf.readInt(); - inSameDimension = buf.readBoolean(); + receiverDimension = buf.readInt(); + dimensionSupported = buf.readBoolean(); } @Override public int getEnergyUsage() { - return RefinedStorage.INSTANCE.networkTransmitterUsage + (int) Math.ceil(RefinedStorage.INSTANCE.networkTransmitterPerBlockUsage * getDistance()); + return RefinedStorage.INSTANCE.networkTransmitterUsage + (isSameDimension() ? (int) Math.ceil(RefinedStorage.INSTANCE.networkTransmitterPerBlockUsage * getDistance()) : 0) + upgrades.getEnergyUsage(); } @Override @@ -127,7 +139,11 @@ public class TileNetworkTransmitter extends TileNode { return (int) Math.sqrt(Math.pow(pos.getX() - receiver.getX(), 2) + Math.pow(pos.getY() - receiver.getY(), 2) + Math.pow(pos.getZ() - receiver.getZ(), 2)); } - public boolean isInSameDimension() { - return worldObj.isRemote ? inSameDimension : worldObj.provider.getDimension() == receiverDimension; + public boolean isSameDimension() { + return worldObj.provider.getDimension() == receiverDimension; + } + + public boolean isDimensionSupported() { + return worldObj.isRemote ? dimensionSupported : (isSameDimension() || upgrades.hasUpgrade(ItemUpgrade.TYPE_INTERDIMENSIONAL)); } } diff --git a/src/main/resources/assets/refinedstorage/lang/en_US.lang b/src/main/resources/assets/refinedstorage/lang/en_US.lang index 513b87679..d1174dc7a 100755 --- a/src/main/resources/assets/refinedstorage/lang/en_US.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_US.lang @@ -33,9 +33,9 @@ gui.refinedstorage:processing_pattern_encoder.pattern_create=Create Pattern gui.refinedstorage:grid_filter=Grid Filter gui.refinedstorage:network_transmitter=Network Transmitter gui.refinedstorage:network_transmitter.distance=%d blocks +gui.refinedstorage:network_transmitter.dimension=Dimension #%d gui.refinedstorage:network_transmitter.missing_card=Missing Network Card -gui.refinedstorage:network_transmitter.missing_receiver=Receiver not found -gui.refinedstorage:network_transmitter.different_dimension=Different dimension +gui.refinedstorage:network_transmitter.missing_upgrade=Insert upgrade misc.refinedstorage:energy_stored=%d / %d RS misc.refinedstorage:energy_usage=Usage: %d RS/t @@ -152,7 +152,7 @@ item.refinedstorage:upgrade.1.name=Range Upgrade 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=Interdimension Upgrade +item.refinedstorage:upgrade.5.name=Interdimensional 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/lang/nl_NL.lang b/src/main/resources/assets/refinedstorage/lang/nl_NL.lang index 90a9ae7d9..8ea49b688 100755 --- a/src/main/resources/assets/refinedstorage/lang/nl_NL.lang +++ b/src/main/resources/assets/refinedstorage/lang/nl_NL.lang @@ -33,9 +33,9 @@ gui.refinedstorage:processing_pattern_encoder.pattern_create=Patroon maken gui.refinedstorage:grid_filter=Rooster Filter gui.refinedstorage:network_transmitter=Netwerkzender gui.refinedstorage:network_transmitter.distance=%d blokken +gui.refinedstorage:network_transmitter.dimension=Dimensie #%d gui.refinedstorage:network_transmitter.missing_card=Geen Netwerkkaart -gui.refinedstorage:network_transmitter.missing_receiver=Ontvanger niet gevonden -gui.refinedstorage:network_transmitter.different_dimension=Andere dimensie +gui.refinedstorage:network_transmitter.missing_upgrade=Ontbrekende upgrade misc.refinedstorage:energy_stored=%d / %d RS misc.refinedstorage:energy_usage=Vebruik: %d RS/t @@ -152,6 +152,7 @@ item.refinedstorage:upgrade.1.name=Afstand Upgrade item.refinedstorage:upgrade.2.name=Snelheid Upgrade item.refinedstorage:upgrade.3.name=Crafting Upgrade item.refinedstorage:upgrade.4.name=Stack Upgrade +item.refinedstorage:upgrade.5.name=Interdimensionale Upgrade item.refinedstorage:storage_housing.name=Opslagomhulsel item.refinedstorage:grid_filter.name=Rooster Filter item.refinedstorage:network_card.name=Netwerk Kaart \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/models/item/interdimension_upgrade.json b/src/main/resources/assets/refinedstorage/models/item/interdimension_upgrade.json deleted file mode 100755 index fc8e5350e..000000000 --- a/src/main/resources/assets/refinedstorage/models/item/interdimension_upgrade.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "refinedstorage:items/interdimension_upgrade" - } -} diff --git a/src/main/resources/assets/refinedstorage/models/item/interdimensional_upgrade.json b/src/main/resources/assets/refinedstorage/models/item/interdimensional_upgrade.json new file mode 100755 index 000000000..7fef125b7 --- /dev/null +++ b/src/main/resources/assets/refinedstorage/models/item/interdimensional_upgrade.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "refinedstorage:items/interdimensional_upgrade" + } +} diff --git a/src/main/resources/assets/refinedstorage/textures/items/interdimension_upgrade.png b/src/main/resources/assets/refinedstorage/textures/items/interdimension_upgrade.png deleted file mode 100755 index 2117d38a3..000000000 Binary files a/src/main/resources/assets/refinedstorage/textures/items/interdimension_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/refinedstorage/textures/items/interdimensional_upgrade.png b/src/main/resources/assets/refinedstorage/textures/items/interdimensional_upgrade.png new file mode 100755 index 000000000..5afce07a1 Binary files /dev/null and b/src/main/resources/assets/refinedstorage/textures/items/interdimensional_upgrade.png differ