Fix reader writer crashes
This commit is contained in:
@@ -40,7 +40,9 @@ public class BlockReader extends BlockCable {
|
||||
|
||||
@Override
|
||||
public boolean canConnectRedstone(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) {
|
||||
return side == ((TileReader) world.getTileEntity(pos)).getDirection().getOpposite();
|
||||
TileEntity tile = world.getTileEntity(pos);
|
||||
|
||||
return tile instanceof TileReader && side == ((TileReader) tile).getDirection().getOpposite();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -66,7 +66,9 @@ public class BlockWriter extends BlockCable {
|
||||
|
||||
@Override
|
||||
public boolean canConnectRedstone(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) {
|
||||
return side == ((TileWriter) world.getTileEntity(pos)).getDirection().getOpposite();
|
||||
TileEntity tile = world.getTileEntity(pos);
|
||||
|
||||
return tile instanceof TileWriter && side == ((TileWriter) tile).getDirection().getOpposite();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -7,8 +7,8 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
public class ContainerReaderWriter extends ContainerBase {
|
||||
private IReaderWriter readerWriter;
|
||||
|
||||
public ContainerReaderWriter(IReaderWriter readerWriter, EntityPlayer player) {
|
||||
super((TileBase) readerWriter, player);
|
||||
public ContainerReaderWriter(IReaderWriter readerWriter, TileBase tile, EntityPlayer player) {
|
||||
super(tile, player);
|
||||
|
||||
this.readerWriter = readerWriter;
|
||||
|
||||
|
@@ -68,7 +68,7 @@ public class GuiHandler implements IGuiHandler {
|
||||
case RSGui.DISK_MANIPULATOR:
|
||||
return new ContainerDiskManipulator((TileDiskManipulator) tile, player);
|
||||
case RSGui.READER_WRITER:
|
||||
return new ContainerReaderWriter((IReaderWriter) tile, player);
|
||||
return new ContainerReaderWriter((IReaderWriter) ((TileNode) tile).getNode(), (TileBase) tile, player);
|
||||
case RSGui.SECURITY_MANAGER:
|
||||
return new ContainerSecurityManager((TileSecurityManager) tile, player);
|
||||
default:
|
||||
@@ -146,7 +146,7 @@ public class GuiHandler implements IGuiHandler {
|
||||
case RSGui.WIRELESS_CRAFTING_MONITOR:
|
||||
return getWirelessCraftingMonitorGui(player, x, y);
|
||||
case RSGui.READER_WRITER:
|
||||
return new GuiReaderWriter((ContainerReaderWriter) getContainer(ID, player, tile), (IReaderWriter) tile);
|
||||
return new GuiReaderWriter((ContainerReaderWriter) getContainer(ID, player, tile), (IReaderWriter) ((TileNode) tile).getNode());
|
||||
case RSGui.SECURITY_MANAGER:
|
||||
return new GuiSecurityManager((ContainerSecurityManager) getContainer(ID, player, tile), (TileSecurityManager) tile);
|
||||
default:
|
||||
|
@@ -10,7 +10,6 @@ import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer;
|
||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
|
||||
@@ -18,18 +17,18 @@ import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class TileReader extends TileNode<NetworkNodeReader> {
|
||||
static <T extends TileEntity & IReaderWriter> TileDataParameter<String> createChannelParameter() {
|
||||
static <T extends TileNode> TileDataParameter<String> createChannelParameter() {
|
||||
return new TileDataParameter<>(DataSerializers.STRING, "", new ITileDataProducer<String, T>() {
|
||||
@Override
|
||||
public String getValue(T tile) {
|
||||
return tile.getChannel();
|
||||
return ((IReaderWriter) tile.getNode()).getChannel();
|
||||
}
|
||||
}, new ITileDataConsumer<String, T>() {
|
||||
@Override
|
||||
public void setValue(T tile, String value) {
|
||||
tile.setChannel(value);
|
||||
((IReaderWriter) tile.getNode()).setChannel(value);
|
||||
|
||||
tile.markDirty();
|
||||
tile.getNode().markDirty();
|
||||
}
|
||||
}, parameter -> {
|
||||
if (Minecraft.getMinecraft().currentScreen instanceof GuiReaderWriter) {
|
||||
|
Reference in New Issue
Block a user