Add INetworkNodeCable marker interface.

This commit is contained in:
raoulvdberge
2018-11-09 22:26:25 +01:00
parent 2604b19c0f
commit fed2392466
9 changed files with 26 additions and 9 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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=Хранение жидкостей