/*
* Copyright (c) CovertJaguar, 2014 http://railcraft.info
*
* This code is the property of CovertJaguar
* and may only be used with explicit written
* permission unless otherwise specified on the
* license page at http://railcraft.info/wiki/info:license.
*/
package mods.railcraft.common.blocks.detector;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.List;
import mods.railcraft.common.gui.EnumGui;
import mods.railcraft.common.gui.GuiHandler;
import mods.railcraft.common.util.network.IGuiReturnHandler;
import net.minecraft.block.Block;
import net.minecraft.entity.item.EntityMinecart;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import static mods.railcraft.common.plugins.forge.PowerPlugin.FULL_POWER;
import static mods.railcraft.common.plugins.forge.PowerPlugin.NO_POWER;
/**
*
* @author CovertJaguar <http://www.railcraft.info/>
*/
public class Detector implements IGuiReturnHandler {
public static final Detector DUMMY = new Detector();
public static final float SENSITIVITY = 0.2f;
protected TileDetector tile;
public void setTile(TileDetector tile) {
this.tile = tile;
}
public TileDetector getTile() {
return tile;
}
public EnumDetector getType() {
return EnumDetector.ANY;
}
public int testCarts(List<EntityMinecart> carts) {
return carts.isEmpty() ? NO_POWER : FULL_POWER;
}
public boolean blockActivated(EntityPlayer player) {
return false;
}
public void onBlockRemoved() {
}
public void onNeighborBlockChange(Block block) {
}
public void writeToNBT(NBTTagCompound data) {
}
public void readFromNBT(NBTTagCompound data) {
}
public void writePacketData(DataOutputStream data) throws IOException {
}
public void readPacketData(DataInputStream data) throws IOException {
}
protected boolean shouldTest() {
return true;
}
protected short updateInterval() {
return 0;
}
public float getHardness() {
return 2;
}
protected final void openGui(EnumGui gui, EntityPlayer player) {
GuiHandler.openGui(gui, player, tile.getWorldObj(), tile.xCoord, tile.yCoord, tile.zCoord);
}
@Override
public final World getWorld() {
return tile.getWorldObj();
}
@Override
public void writeGuiData(DataOutputStream data) throws IOException {
}
@Override
public void readGuiData(DataInputStream data, EntityPlayer sender) throws IOException {
}
}