diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/network/node/INetworkNodeCable.java b/src/main/java/com/raoulvdberge/refinedstorage/api/network/node/INetworkNodeCable.java new file mode 100644 index 000000000..4059e0171 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/network/node/INetworkNodeCable.java @@ -0,0 +1,8 @@ +package com.raoulvdberge.refinedstorage.api.network.node; + +/** + * A simple marker interface to identify "cable" nodes. + * Must be implemented on a {@link INetworkNode}. + */ +public interface INetworkNodeCable { +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCable.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCable.java index 5ed76f2a0..163aef4f3 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCable.java @@ -1,6 +1,7 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node; import com.raoulvdberge.refinedstorage.RS; +import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeCable; import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.CoverManager; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; @@ -11,7 +12,7 @@ import net.minecraftforge.items.IItemHandler; import javax.annotation.Nullable; -public class NetworkNodeCable extends NetworkNode implements ICoverable { +public class NetworkNodeCable extends NetworkNode implements ICoverable, INetworkNodeCable { public static final String ID = "cable"; private static final String NBT_COVERS = "Covers"; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWirelessTransmitter.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWirelessTransmitter.java index 2035b6884..527eaafb6 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWirelessTransmitter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWirelessTransmitter.java @@ -2,7 +2,10 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSGui; +import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeCable; +import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy; import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; +import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy; import com.raoulvdberge.refinedstorage.render.IModelRegistration; import com.raoulvdberge.refinedstorage.render.collision.CollisionGroup; import com.raoulvdberge.refinedstorage.render.constants.ConstantsWirelessTransmitter; @@ -78,7 +81,17 @@ public class BlockWirelessTransmitter extends BlockNode { @Override public boolean canPlaceBlockAt(World world, BlockPos pos) { - return world.getBlockState(pos.offset(EnumFacing.DOWN)).getBlock() instanceof BlockCable; + TileEntity tile = world.getTileEntity(pos.offset(EnumFacing.DOWN)); + + if (tile != null && tile.hasCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, EnumFacing.UP)) { + INetworkNodeProxy proxy = tile.getCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, EnumFacing.UP); + + if (proxy != null && proxy.getNode() instanceof INetworkNodeCable) { + return true; + } + } + + return world.getBlockState(pos.offset(EnumFacing.DOWN)).getBlock() instanceof BlockCable; // Make sure we still detect stuff like importers/exporters/etc. } @Override diff --git a/src/main/resources/assets/refinedstorage/lang/de_de.lang b/src/main/resources/assets/refinedstorage/lang/de_de.lang index 310c8047c..7f2f05de6 100755 --- a/src/main/resources/assets/refinedstorage/lang/de_de.lang +++ b/src/main/resources/assets/refinedstorage/lang/de_de.lang @@ -304,7 +304,6 @@ advancements.refinedstorage:storing_items.description=Stelle eine Speicherzelle advancements.refinedstorage:viewing_items=Items Betrachten advancements.refinedstorage:viewing_items.description=Stelle eine Konsole her, um mit deinem Speicher zu interagieren advancements.refinedstorage:portable_storage=Tragbarer Speicher -advancements.refinedstorage:portable_storage.description=Stelle eine mobile Konsole her, um mit deinem Speicher unterwegs zu interagieren advancements.refinedstorage:upgrading_your_grid=Konsolenupgrade advancements.refinedstorage:upgrading_your_grid.description=Erweitere eine Konsole zu einer Fertigungskonsole um eine Werkbank in der Konsole zu erhalten advancements.refinedstorage:storing_fluids=Flüssigkeiten Speichern diff --git a/src/main/resources/assets/refinedstorage/lang/en_us.lang b/src/main/resources/assets/refinedstorage/lang/en_us.lang index 4a3a3491e..3b50ede4a 100644 --- a/src/main/resources/assets/refinedstorage/lang/en_us.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_us.lang @@ -222,7 +222,7 @@ block.refinedstorage:relay.name=Relay block.refinedstorage:interface.name=Interface block.refinedstorage:crafting_monitor.name=Crafting Monitor block.refinedstorage:wireless_transmitter.name=Wireless Transmitter -block.refinedstorage:wireless_transmitter.tooltip=Needs to be placed on %s. +block.refinedstorage:wireless_transmitter.tooltip=Must be placed on %s. block.refinedstorage:crafter.name=Crafter block.refinedstorage:network_receiver.name=Network Receiver block.refinedstorage:network_transmitter.name=Network Transmitter @@ -319,7 +319,7 @@ advancements.refinedstorage:storing_items.description=Craft a Storage Disk and p advancements.refinedstorage:viewing_items=Viewing items advancements.refinedstorage:viewing_items.description=Craft a Grid to interact with your item storage advancements.refinedstorage:portable_storage=Portable storage -advancements.refinedstorage:portable_storage.description=Craft a Portable Grid to access items in disks without being in a network +advancements.refinedstorage:portable_storage.description=Craft a Portable Grid to access items and fluids in disks without being in a network advancements.refinedstorage:upgrading_your_grid=Upgrading your Grid advancements.refinedstorage:upgrading_your_grid.description=Upgrade your Grid to a Crafting Grid to get crafting abilities in your Grid advancements.refinedstorage:storing_fluids=Storing fluids diff --git a/src/main/resources/assets/refinedstorage/lang/es_es.lang b/src/main/resources/assets/refinedstorage/lang/es_es.lang index 72ee9d920..c74f8ac80 100644 --- a/src/main/resources/assets/refinedstorage/lang/es_es.lang +++ b/src/main/resources/assets/refinedstorage/lang/es_es.lang @@ -285,7 +285,6 @@ advancements.refinedstorage:storing_items.description=Haz un Disco Duro y coloca advancements.refinedstorage:viewing_items=Viendo Objetos advancements.refinedstorage:viewing_items.description=Haz un Panel para interactuar con tus objetos almacenados advancements.refinedstorage:portable_storage=Almacén Portátil -advancements.refinedstorage:portable_storage.description=Haz un Panel Portatil para manipular objetos en discos sin estar en la red advancements.refinedstorage:upgrading_your_grid=Mejorando el Panel advancements.refinedstorage:upgrading_your_grid.description=Mejora tu panel a uno de Panel de Fabricación Para fabricar y ver objetos advancements.refinedstorage:storing_fluids=Guardando Fluidos diff --git a/src/main/resources/assets/refinedstorage/lang/fr_fr.lang b/src/main/resources/assets/refinedstorage/lang/fr_fr.lang index 8e5d09022..29a081d2e 100755 --- a/src/main/resources/assets/refinedstorage/lang/fr_fr.lang +++ b/src/main/resources/assets/refinedstorage/lang/fr_fr.lang @@ -260,7 +260,6 @@ advancements.refinedstorage:storing_items.description=Crafter un disque et le me advancements.refinedstorage:viewing_items=Voir les items advancements.refinedstorage:viewing_items.description=Crafter une grille pour intéragir avec votre stockage d'item advancements.refinedstorage:portable_storage=Stockage portatif -advancements.refinedstorage:portable_storage.description=Crafter une grille portative pour accéder à vos items présents sur vos disques sans être dans un réseau advancements.refinedstorage:upgrading_your_grid=Améliorer votre grille advancements.refinedstorage:upgrading_your_grid.description=Améliorer votre grille vers une grille de craft pour pouvoir crafter dans votre grille advancements.refinedstorage:storing_fluids=Stocker des fluides diff --git a/src/main/resources/assets/refinedstorage/lang/pt_br.lang b/src/main/resources/assets/refinedstorage/lang/pt_br.lang index c9bae0571..e9a1fcf82 100755 --- a/src/main/resources/assets/refinedstorage/lang/pt_br.lang +++ b/src/main/resources/assets/refinedstorage/lang/pt_br.lang @@ -263,7 +263,6 @@ advancements.refinedstorage:storing_items.description=Fabrique um Disco de Armaz advancements.refinedstorage:viewing_items=Visualizando itens! advancements.refinedstorage:viewing_items.description=Fabrique uma Grade para interagir com seu armazenamento de itens. advancements.refinedstorage:portable_storage=Armazenamento portátil! -advancements.refinedstorage:portable_storage.description=Fabrique uma Grade Portátil para acessar itens em discos sem estar em uma rede. advancements.refinedstorage:upgrading_your_grid=Aprimorando sua grade! advancements.refinedstorage:upgrading_your_grid.description=Aprimore sua grade para uma Grade de Fabricações para obter habilidades de fabricar na sua grade. advancements.refinedstorage:storing_fluids=Armazenando fluidos! diff --git a/src/main/resources/assets/refinedstorage/lang/ru_ru.lang b/src/main/resources/assets/refinedstorage/lang/ru_ru.lang index ab0e23b18..f2b77b9da 100755 --- a/src/main/resources/assets/refinedstorage/lang/ru_ru.lang +++ b/src/main/resources/assets/refinedstorage/lang/ru_ru.lang @@ -299,7 +299,6 @@ advancements.refinedstorage:storing_items.description=Создайте диск advancements.refinedstorage:viewing_items=Просмотр предметов advancements.refinedstorage:viewing_items.description=Создайте терминал для взаимодействия с хранилищем предметов advancements.refinedstorage:portable_storage=Портативное хранение -advancements.refinedstorage:portable_storage.description=Создайте переносимый терминал для доступа к предметам на дисках без подключения к сети advancements.refinedstorage:upgrading_your_grid=Обновление терминала advancements.refinedstorage:upgrading_your_grid.description=Обновите терминал до терминала создания, чтобы получить способности создания в терминале advancements.refinedstorage:storing_fluids=Хранение жидкостей