mirror of
https://github.com/GTNewHorizons/MagicBees.git
synced 2026-11-12 00:08:01 +00:00
98 lines
3.5 KiB
Java
98 lines
3.5 KiB
Java
package magicbees.block;
|
|
|
|
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.item.Item;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.tileentity.TileEntity;
|
|
import net.minecraft.util.ChatComponentTranslation;
|
|
import net.minecraft.util.IIcon;
|
|
import net.minecraft.world.World;
|
|
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
import magicbees.main.CommonProxy;
|
|
import magicbees.main.utils.TabMagicBees;
|
|
import magicbees.tileentity.TileEntityPhialingCabinet;
|
|
import thaumcraft.api.aspects.Aspect;
|
|
import thaumcraft.api.aspects.IEssentiaContainerItem;
|
|
|
|
public class BlockPhialingCabinet extends BlockContainer {
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
private IIcon[] icons;
|
|
|
|
public BlockPhialingCabinet() {
|
|
super(Material.wood);
|
|
this.setCreativeTab(TabMagicBees.tabMagicBees);
|
|
this.setBlockName("phialingCabinet");
|
|
this.setHardness(1f);
|
|
this.setResistance(1.5f);
|
|
this.setHarvestLevel("axe", 0);
|
|
}
|
|
|
|
@Override
|
|
public TileEntity createNewTileEntity(World world, int metadata) {
|
|
return new TileEntityPhialingCabinet();
|
|
}
|
|
|
|
@Override
|
|
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7,
|
|
float par8, float par9) {
|
|
if (world.isRemote) {
|
|
return false;
|
|
} else {
|
|
TileEntity tile = world.getTileEntity(x, y, z);
|
|
if (tile instanceof TileEntityPhialingCabinet) {
|
|
ItemStack tItemStack = player.getHeldItem();
|
|
if (tItemStack != null) {
|
|
Item tItem = tItemStack.getItem();
|
|
if (tItem instanceof IEssentiaContainerItem
|
|
&& ((IEssentiaContainerItem) tItem).getAspects(player.getHeldItem()) != null
|
|
&& ((IEssentiaContainerItem) tItem).getAspects(player.getHeldItem()).size() > 0) {
|
|
Aspect tLocked = ((IEssentiaContainerItem) tItem).getAspects(player.getHeldItem())
|
|
.getAspects()[0];
|
|
((TileEntityPhialingCabinet) tile).setAspect(tLocked);
|
|
|
|
// TODO: improve text
|
|
player.addChatMessage(
|
|
new ChatComponentTranslation("Producing " + tLocked.getLocalizedDescription()));
|
|
}
|
|
} else {
|
|
((TileEntityPhialingCabinet) tile).setAspect(null);
|
|
|
|
// TODO: improve text
|
|
player.addChatMessage(new ChatComponentTranslation("Cleared production specifier"));
|
|
}
|
|
world.markBlockForUpdate(x, y, z);
|
|
return true;
|
|
} else return false;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public IIcon getIcon(int side, int meta) {
|
|
|
|
if (side == 0) {
|
|
return icons[0];
|
|
} else if (side == 1) {
|
|
return icons[1];
|
|
} else {
|
|
return icons[2];
|
|
}
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public void registerBlockIcons(IIconRegister register) {
|
|
icons = new IIcon[4];
|
|
|
|
icons[0] = register.registerIcon(CommonProxy.DOMAIN + ":phialingcabinet.0");
|
|
icons[1] = register.registerIcon(CommonProxy.DOMAIN + ":phialingcabinet.1");
|
|
icons[2] = register.registerIcon(CommonProxy.DOMAIN + ":phialingcabinet.2");
|
|
}
|
|
}
|