mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2024-11-15 14:24:55 +00:00
Make advanced modems non-ticking
- Move getPeripheralType and getLabel from IPeripheralTile to TilePeripheralBase. These were mostly constant on all other tiles, so were rather redundant. - Make TileAdvancedModem extend TileGeneric, and be non-ticking (using similar logic to all other blocks).
This commit is contained in:
parent
e8a4fbb4e3
commit
80a5759bae
@ -74,6 +74,8 @@ public abstract class BlockPeripheralBase extends BlockDirectional
|
|||||||
public ItemStack getPickBlock( @Nonnull IBlockState state, RayTraceResult target, @Nonnull World world, @Nonnull BlockPos pos, EntityPlayer player )
|
public ItemStack getPickBlock( @Nonnull IBlockState state, RayTraceResult target, @Nonnull World world, @Nonnull BlockPos pos, EntityPlayer player )
|
||||||
{
|
{
|
||||||
TileEntity tile = world.getTileEntity( pos );
|
TileEntity tile = world.getTileEntity( pos );
|
||||||
return tile instanceof IPeripheralTile ? PeripheralItemFactory.create( (IPeripheralTile) tile ) : super.getPickBlock( state, target, world, pos, player );
|
return tile instanceof TilePeripheralBase
|
||||||
|
? PeripheralItemFactory.create( (TilePeripheralBase) tile )
|
||||||
|
: super.getPickBlock( state, target, world, pos, player );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,17 +7,9 @@
|
|||||||
package dan200.computercraft.shared.peripheral.common;
|
package dan200.computercraft.shared.peripheral.common;
|
||||||
|
|
||||||
import dan200.computercraft.api.peripheral.IPeripheral;
|
import dan200.computercraft.api.peripheral.IPeripheral;
|
||||||
import dan200.computercraft.shared.peripheral.PeripheralType;
|
|
||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
|
|
||||||
public interface IPeripheralTile
|
public interface IPeripheralTile
|
||||||
{
|
{
|
||||||
PeripheralType getPeripheralType();
|
|
||||||
|
|
||||||
IPeripheral getPeripheral( EnumFacing side );
|
IPeripheral getPeripheral( EnumFacing side );
|
||||||
|
|
||||||
default String getLabel()
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ import javax.annotation.Nonnull;
|
|||||||
public class PeripheralItemFactory
|
public class PeripheralItemFactory
|
||||||
{
|
{
|
||||||
@Nonnull
|
@Nonnull
|
||||||
public static ItemStack create( IPeripheralTile tile )
|
public static ItemStack create( TilePeripheralBase tile )
|
||||||
{
|
{
|
||||||
return create( tile.getPeripheralType(), tile.getLabel(), 1 );
|
return create( tile.getPeripheralType(), tile.getLabel(), 1 );
|
||||||
}
|
}
|
||||||
|
@ -53,9 +53,6 @@ public abstract class TilePeripheralBase extends TileGeneric implements IPeriphe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// IPeripheralTile implementation
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final PeripheralType getPeripheralType()
|
public final PeripheralType getPeripheralType()
|
||||||
{
|
{
|
||||||
return getBlock().getPeripheralType( getBlockState() );
|
return getBlock().getPeripheralType( getBlockState() );
|
||||||
@ -67,7 +64,6 @@ public abstract class TilePeripheralBase extends TileGeneric implements IPeriphe
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getLabel()
|
public String getLabel()
|
||||||
{
|
{
|
||||||
if( m_label != null && m_label.length() > 0 )
|
if( m_label != null && m_label.length() > 0 )
|
||||||
|
@ -123,9 +123,9 @@ public class TileCable extends TileGeneric implements IPeripheralTile
|
|||||||
if( !m_destroyed )
|
if( !m_destroyed )
|
||||||
{
|
{
|
||||||
m_destroyed = true;
|
m_destroyed = true;
|
||||||
|
m_modem.destroy();
|
||||||
remove();
|
remove();
|
||||||
}
|
}
|
||||||
super.destroy();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -156,6 +156,7 @@ public class TileCable extends TileGeneric implements IPeripheralTile
|
|||||||
@Override
|
@Override
|
||||||
public void updateContainingBlockInfo()
|
public void updateContainingBlockInfo()
|
||||||
{
|
{
|
||||||
|
super.updateContainingBlockInfo();
|
||||||
hasModemDirection = false;
|
hasModemDirection = false;
|
||||||
if( !world.isRemote ) world.scheduleUpdate( pos, getBlockType(), 0 );
|
if( !world.isRemote ) world.scheduleUpdate( pos, getBlockType(), 0 );
|
||||||
}
|
}
|
||||||
@ -223,7 +224,7 @@ public class TileCable extends TileGeneric implements IPeripheralTile
|
|||||||
case WiredModemWithCable:
|
case WiredModemWithCable:
|
||||||
{
|
{
|
||||||
// Drop the modem and convert to cable
|
// Drop the modem and convert to cable
|
||||||
((BlockGeneric) getBlockType()).dropItem( getWorld(), getPos(), PeripheralItemFactory.create( PeripheralType.WiredModem, getLabel(), 1 ) );
|
((BlockGeneric) getBlockType()).dropItem( getWorld(), getPos(), PeripheralItemFactory.create( PeripheralType.WiredModem, null, 1 ) );
|
||||||
setBlockState( getBlockState().withProperty( BlockCable.Properties.MODEM, BlockCableModemVariant.None ) );
|
setBlockState( getBlockState().withProperty( BlockCable.Properties.MODEM, BlockCableModemVariant.None ) );
|
||||||
modemChanged();
|
modemChanged();
|
||||||
connectionsChanged();
|
connectionsChanged();
|
||||||
@ -484,7 +485,6 @@ public class TileCable extends TileGeneric implements IPeripheralTile
|
|||||||
return !m_destroyed && getPeripheralType() != PeripheralType.Cable && side == getDirection() ? m_modem : null;
|
return !m_destroyed && getPeripheralType() != PeripheralType.Cable && side == getDirection() ? m_modem : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public PeripheralType getPeripheralType()
|
public PeripheralType getPeripheralType()
|
||||||
{
|
{
|
||||||
IBlockState state = getBlockState();
|
IBlockState state = getBlockState();
|
||||||
|
@ -13,7 +13,6 @@ import dan200.computercraft.api.network.wired.IWiredNode;
|
|||||||
import dan200.computercraft.api.peripheral.IPeripheral;
|
import dan200.computercraft.api.peripheral.IPeripheral;
|
||||||
import dan200.computercraft.shared.command.CommandCopy;
|
import dan200.computercraft.shared.command.CommandCopy;
|
||||||
import dan200.computercraft.shared.common.TileGeneric;
|
import dan200.computercraft.shared.common.TileGeneric;
|
||||||
import dan200.computercraft.shared.peripheral.PeripheralType;
|
|
||||||
import dan200.computercraft.shared.peripheral.common.IPeripheralTile;
|
import dan200.computercraft.shared.peripheral.common.IPeripheralTile;
|
||||||
import dan200.computercraft.shared.peripheral.modem.ModemState;
|
import dan200.computercraft.shared.peripheral.modem.ModemState;
|
||||||
import dan200.computercraft.shared.util.TickScheduler;
|
import dan200.computercraft.shared.util.TickScheduler;
|
||||||
@ -392,14 +391,6 @@ public class TileWiredModemFull extends TileGeneric implements IPeripheralTile
|
|||||||
return super.getCapability( capability, facing );
|
return super.getCapability( capability, facing );
|
||||||
}
|
}
|
||||||
|
|
||||||
// IPeripheralTile
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PeripheralType getPeripheralType()
|
|
||||||
{
|
|
||||||
return PeripheralType.WiredModemFull;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPeripheral getPeripheral( EnumFacing side )
|
public IPeripheral getPeripheral( EnumFacing side )
|
||||||
{
|
{
|
||||||
|
@ -7,33 +7,37 @@
|
|||||||
package dan200.computercraft.shared.peripheral.modem.wireless;
|
package dan200.computercraft.shared.peripheral.modem.wireless;
|
||||||
|
|
||||||
import dan200.computercraft.ComputerCraft;
|
import dan200.computercraft.ComputerCraft;
|
||||||
import dan200.computercraft.shared.peripheral.PeripheralType;
|
import dan200.computercraft.shared.common.BlockGeneric;
|
||||||
import dan200.computercraft.shared.peripheral.common.BlockPeripheralBase;
|
import dan200.computercraft.shared.common.TileGeneric;
|
||||||
import dan200.computercraft.shared.peripheral.common.TilePeripheralBase;
|
|
||||||
import dan200.computercraft.shared.peripheral.modem.ModemBounds;
|
import dan200.computercraft.shared.peripheral.modem.ModemBounds;
|
||||||
|
import net.minecraft.block.BlockDirectional;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.block.properties.PropertyBool;
|
import net.minecraft.block.properties.PropertyBool;
|
||||||
import net.minecraft.block.properties.PropertyDirection;
|
import net.minecraft.block.properties.PropertyDirection;
|
||||||
import net.minecraft.block.state.BlockFaceShape;
|
import net.minecraft.block.state.BlockFaceShape;
|
||||||
import net.minecraft.block.state.BlockStateContainer;
|
import net.minecraft.block.state.BlockStateContainer;
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
import net.minecraft.util.math.AxisAlignedBB;
|
import net.minecraft.util.math.AxisAlignedBB;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.IBlockAccess;
|
import net.minecraft.world.IBlockAccess;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
public class BlockAdvancedModem extends BlockPeripheralBase
|
public class BlockAdvancedModem extends BlockGeneric
|
||||||
{
|
{
|
||||||
public static class Properties
|
public static class Properties
|
||||||
{
|
{
|
||||||
public static final PropertyDirection FACING = PropertyDirection.create( "facing" );
|
public static final PropertyDirection FACING = BlockDirectional.FACING;
|
||||||
public static final PropertyBool ON = PropertyBool.create( "on" );
|
public static final PropertyBool ON = PropertyBool.create( "on" );
|
||||||
}
|
}
|
||||||
|
|
||||||
public BlockAdvancedModem()
|
public BlockAdvancedModem()
|
||||||
{
|
{
|
||||||
|
super( Material.ROCK );
|
||||||
setHardness( 2.0f );
|
setHardness( 2.0f );
|
||||||
setTranslationKey( "computercraft:advanced_modem" );
|
setTranslationKey( "computercraft:advanced_modem" );
|
||||||
setCreativeTab( ComputerCraft.mainCreativeTab );
|
setCreativeTab( ComputerCraft.mainCreativeTab );
|
||||||
@ -55,17 +59,13 @@ public class BlockAdvancedModem extends BlockPeripheralBase
|
|||||||
@Deprecated
|
@Deprecated
|
||||||
public IBlockState getStateFromMeta( int meta )
|
public IBlockState getStateFromMeta( int meta )
|
||||||
{
|
{
|
||||||
IBlockState state = getDefaultState();
|
return getDefaultState().withProperty( Properties.FACING, EnumFacing.byIndex( meta ) );
|
||||||
state = state.withProperty( Properties.FACING, EnumFacing.byIndex( meta ) );
|
|
||||||
state = state.withProperty( Properties.ON, false );
|
|
||||||
return state;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetaFromState( IBlockState state )
|
public int getMetaFromState( IBlockState state )
|
||||||
{
|
{
|
||||||
EnumFacing dir = state.getValue( Properties.FACING );
|
return state.getValue( Properties.FACING ).getIndex();
|
||||||
return dir.getIndex();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
@ -73,47 +73,26 @@ public class BlockAdvancedModem extends BlockPeripheralBase
|
|||||||
@Deprecated
|
@Deprecated
|
||||||
public IBlockState getActualState( @Nonnull IBlockState state, IBlockAccess world, BlockPos pos )
|
public IBlockState getActualState( @Nonnull IBlockState state, IBlockAccess world, BlockPos pos )
|
||||||
{
|
{
|
||||||
int anim;
|
|
||||||
EnumFacing dir;
|
|
||||||
TileEntity tile = world.getTileEntity( pos );
|
TileEntity tile = world.getTileEntity( pos );
|
||||||
if( tile instanceof TilePeripheralBase )
|
return state.withProperty( Properties.ON, tile instanceof TileAdvancedModem && ((TileAdvancedModem) tile).isOn() );
|
||||||
{
|
|
||||||
TilePeripheralBase peripheral = (TilePeripheralBase) tile;
|
|
||||||
anim = peripheral.getAnim();
|
|
||||||
dir = peripheral.getDirection();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
anim = 0;
|
|
||||||
dir = state.getValue( Properties.FACING );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
state = state.withProperty( Properties.FACING, dir );
|
@Nonnull
|
||||||
state = state.withProperty( Properties.ON, anim > 0 );
|
@Override
|
||||||
return state;
|
@Deprecated
|
||||||
|
public IBlockState getStateForPlacement( World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer )
|
||||||
|
{
|
||||||
|
return getDefaultState().withProperty( Properties.FACING, facing.getOpposite() );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IBlockState getDefaultBlockState( PeripheralType type, EnumFacing placedSide )
|
protected TileGeneric createTile( IBlockState state )
|
||||||
{
|
{
|
||||||
EnumFacing dir = placedSide.getOpposite();
|
return new TileAdvancedModem();
|
||||||
return getDefaultState().withProperty( Properties.FACING, dir );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PeripheralType getPeripheralType( int damage )
|
protected TileGeneric createTile( int damage )
|
||||||
{
|
|
||||||
return PeripheralType.AdvancedModem;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PeripheralType getPeripheralType( IBlockState state )
|
|
||||||
{
|
|
||||||
return PeripheralType.AdvancedModem;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TilePeripheralBase createTile( PeripheralType type )
|
|
||||||
{
|
{
|
||||||
return new TileAdvancedModem();
|
return new TileAdvancedModem();
|
||||||
}
|
}
|
||||||
@ -140,6 +119,7 @@ public class BlockAdvancedModem extends BlockPeripheralBase
|
|||||||
return BlockFaceShape.UNDEFINED;
|
return BlockFaceShape.UNDEFINED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public AxisAlignedBB getBoundingBox( IBlockState state, IBlockAccess source, BlockPos pos )
|
public AxisAlignedBB getBoundingBox( IBlockState state, IBlockAccess source, BlockPos pos )
|
||||||
|
@ -6,11 +6,14 @@
|
|||||||
|
|
||||||
package dan200.computercraft.shared.peripheral.modem.wireless;
|
package dan200.computercraft.shared.peripheral.modem.wireless;
|
||||||
|
|
||||||
|
import dan200.computercraft.ComputerCraft;
|
||||||
import dan200.computercraft.api.peripheral.IPeripheral;
|
import dan200.computercraft.api.peripheral.IPeripheral;
|
||||||
|
import dan200.computercraft.shared.common.TileGeneric;
|
||||||
|
import dan200.computercraft.shared.peripheral.common.IPeripheralTile;
|
||||||
import dan200.computercraft.shared.peripheral.modem.ModemPeripheral;
|
import dan200.computercraft.shared.peripheral.modem.ModemPeripheral;
|
||||||
import dan200.computercraft.shared.peripheral.modem.ModemState;
|
import dan200.computercraft.shared.peripheral.modem.ModemState;
|
||||||
import dan200.computercraft.shared.peripheral.modem.TileModemBase;
|
import dan200.computercraft.shared.util.TickScheduler;
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.Vec3d;
|
import net.minecraft.util.math.Vec3d;
|
||||||
@ -18,54 +21,46 @@ import net.minecraft.world.World;
|
|||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
public class TileAdvancedModem extends TileModemBase
|
public class TileAdvancedModem extends TileGeneric implements IPeripheralTile
|
||||||
{
|
{
|
||||||
// Statics
|
|
||||||
|
|
||||||
private static class Peripheral extends WirelessModemPeripheral
|
private static class Peripheral extends WirelessModemPeripheral
|
||||||
{
|
{
|
||||||
private TileModemBase m_entity;
|
private TileAdvancedModem tile;
|
||||||
|
|
||||||
public Peripheral( TileModemBase entity )
|
Peripheral( TileAdvancedModem entity )
|
||||||
{
|
{
|
||||||
super( new ModemState(), true );
|
super( new ModemState( () -> TickScheduler.schedule( entity ) ), true );
|
||||||
m_entity = entity;
|
tile = entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public World getWorld()
|
public World getWorld()
|
||||||
{
|
{
|
||||||
return m_entity.getWorld();
|
return tile.getWorld();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public Vec3d getPosition()
|
public Vec3d getPosition()
|
||||||
{
|
{
|
||||||
BlockPos pos = m_entity.getPos().offset( m_entity.getCachedDirection() );
|
BlockPos pos = tile.getPos().offset( tile.modemDirection );
|
||||||
return new Vec3d( pos.getX(), pos.getY(), pos.getZ() );
|
return new Vec3d( pos.getX(), pos.getY(), pos.getZ() );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals( IPeripheral other )
|
public boolean equals( IPeripheral other )
|
||||||
{
|
{
|
||||||
if( other instanceof Peripheral )
|
return this == other;
|
||||||
{
|
|
||||||
Peripheral otherModem = (Peripheral) other;
|
|
||||||
return otherModem.m_entity == m_entity;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Members
|
private boolean hasModemDirection = false;
|
||||||
private boolean m_hasDirection = false;
|
private EnumFacing modemDirection = EnumFacing.DOWN;
|
||||||
|
private final ModemPeripheral modem = new Peripheral( this );
|
||||||
|
private boolean destroyed = false;
|
||||||
|
|
||||||
public TileAdvancedModem()
|
private boolean on = false;
|
||||||
{
|
|
||||||
m_dir = EnumFacing.DOWN;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoad()
|
public void onLoad()
|
||||||
@ -75,47 +70,77 @@ public class TileAdvancedModem extends TileModemBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateContainingBlockInfo()
|
public void destroy()
|
||||||
{
|
{
|
||||||
m_hasDirection = false;
|
if( !destroyed )
|
||||||
|
{
|
||||||
|
modem.destroy();
|
||||||
|
destroyed = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update()
|
public void updateContainingBlockInfo()
|
||||||
|
{
|
||||||
|
hasModemDirection = false;
|
||||||
|
super.updateContainingBlockInfo();
|
||||||
|
world.scheduleUpdate( getPos(), ComputerCraft.Blocks.advancedModem, 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateTick()
|
||||||
{
|
{
|
||||||
super.update();
|
|
||||||
updateDirection();
|
updateDirection();
|
||||||
|
|
||||||
|
if( modem.getModemState().pollChanged() )
|
||||||
|
{
|
||||||
|
boolean newOn = modem.getModemState().isOpen();
|
||||||
|
if( newOn != on )
|
||||||
|
{
|
||||||
|
on = newOn;
|
||||||
|
updateBlock();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateDirection()
|
private void updateDirection()
|
||||||
{
|
{
|
||||||
if( !m_hasDirection )
|
if( !hasModemDirection )
|
||||||
{
|
{
|
||||||
m_hasDirection = true;
|
hasModemDirection = true;
|
||||||
m_dir = getDirection();
|
modemDirection = getDirection();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public EnumFacing getDirection()
|
private EnumFacing getDirection()
|
||||||
{
|
{
|
||||||
// Wireless Modem
|
return getBlockState().getValue( BlockAdvancedModem.Properties.FACING );
|
||||||
IBlockState state = getBlockState();
|
|
||||||
return state.getValue( BlockAdvancedModem.Properties.FACING );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setDirection( EnumFacing dir )
|
protected void writeDescription( @Nonnull NBTTagCompound nbt )
|
||||||
{
|
{
|
||||||
// Wireless Modem
|
super.writeDescription( nbt );
|
||||||
setBlockState( getBlockState()
|
nbt.setBoolean( "on", on );
|
||||||
.withProperty( BlockAdvancedModem.Properties.FACING, dir )
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ModemPeripheral createPeripheral()
|
public final void readDescription( @Nonnull NBTTagCompound nbt )
|
||||||
{
|
{
|
||||||
return new Peripheral( this );
|
super.readDescription( nbt );
|
||||||
|
on = nbt.getBoolean( "on" );
|
||||||
|
updateBlock();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isOn()
|
||||||
|
{
|
||||||
|
return on;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPeripheral getPeripheral( EnumFacing side )
|
||||||
|
{
|
||||||
|
return !destroyed && side == getDirection() ? modem : null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user