80 lines
2.2 KiB
Java

package com.hbm.blocks.machine;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.machine.TileEntityHadronDiode;
import com.hbm.tileentity.machine.TileEntityHadronDiode.DiodeConfig;
import api.hbm.block.IToolable;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class BlockHadronDiode extends BlockContainer implements IToolable {
@SideOnly(Side.CLIENT)
private IIcon iconIn;
@SideOnly(Side.CLIENT)
private IIcon iconOut;
public BlockHadronDiode(Material mat) {
super(mat);
}
@Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityHadronDiode();
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
this.iconIn = iconRegister.registerIcon(RefStrings.MODID + ":hadron_diode_in");
this.iconOut = iconRegister.registerIcon(RefStrings.MODID + ":hadron_diode_out");
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":hadron_diode");
}
@SideOnly(Side.CLIENT)
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
TileEntityHadronDiode diode = (TileEntityHadronDiode) world.getTileEntity(x, y, z);
DiodeConfig conf = diode.getConfig(side);
switch(conf) {
case NONE:
return blockIcon;
case IN:
return iconIn;
case OUT:
default:
return iconOut;
}
}
@Override
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) {
if(tool != ToolType.SCREWDRIVER)
return false;
if(!world.isRemote) {
TileEntityHadronDiode diode = (TileEntityHadronDiode) world.getTileEntity(x, y, z);
int config = diode.getConfig(side).ordinal();
config += 1;
config %= DiodeConfig.values().length;
diode.setConfig(side, config);
}
world.markBlockForUpdate(x, y, z);
return true;
}
}