Files
MagicBees/src/main/java/magicbees/block/BlockApiamancersDrainer.java
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

93 lines
3.4 KiB
Java
Raw Normal View History

2023-12-08 11:36:56 +01:00
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;
2023-12-09 18:26:17 +01:00
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
2023-12-08 11:36:56 +01:00
import net.minecraft.tileentity.TileEntity;
2023-12-09 18:26:17 +01:00
import net.minecraft.util.ChatComponentTranslation;
2023-12-08 11:36:56 +01:00
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.TileEntityApiamancersDrainerCommon;
2023-12-09 18:26:17 +01:00
import thaumcraft.api.aspects.Aspect;
import thaumcraft.api.aspects.IEssentiaContainerItem;
2023-12-08 11:36:56 +01:00
public class BlockApiamancersDrainer extends BlockContainer {
2023-12-08 11:36:56 +01:00
@SideOnly(Side.CLIENT)
private IIcon[] icons;
2023-12-31 15:03:38 +01:00
public static Class<? extends TileEntity> drainer = TileEntityApiamancersDrainerCommon.class;
public BlockApiamancersDrainer() {
super(Material.rock);
2023-12-08 11:36:56 +01:00
this.setCreativeTab(TabMagicBees.tabMagicBees);
this.setBlockName("apiamancersDrainer");
2023-12-08 11:36:56 +01:00
this.setHardness(1f);
this.setResistance(1.5f);
this.setHarvestLevel("pickaxe", 0);
2023-12-08 11:36:56 +01:00
}
@Override
public TileEntity createNewTileEntity(World world, int metadata) {
2023-12-31 15:03:38 +01:00
try {
return drainer.newInstance();
} catch (Exception e) {
return null;
}
2023-12-08 11:36:56 +01:00
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7,
float par8, float par9) {
2023-12-09 18:26:17 +01:00
if (world.isRemote) {
return false;
} else {
TileEntity tile = world.getTileEntity(x, y, z);
if (tile instanceof TileEntityApiamancersDrainerCommon) {
2023-12-09 18:26:17 +01:00
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];
((TileEntityApiamancersDrainerCommon) tile).setAspect(tLocked);
2023-12-09 18:26:17 +01:00
player.addChatMessage(
new ChatComponentTranslation("Producing " + tLocked.getLocalizedDescription()));
}
} else {
((TileEntityApiamancersDrainerCommon) tile).setAspect(null);
2023-12-09 18:26:17 +01:00
player.addChatMessage(new ChatComponentTranslation("Cleared production specifier"));
}
world.markBlockForUpdate(x, y, z);
return true;
} else return false;
}
2023-12-08 11:36:56 +01:00
}
2023-12-12 21:30:11 +01:00
2023-12-08 11:36:56 +01:00
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta) {
2023-12-13 09:58:59 +01:00
return icons[side <= 1 ? side : 2];
2023-12-08 11:36:56 +01:00
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister register) {
icons = new IIcon[4];
2023-12-13 09:58:59 +01:00
for (int i = 0; i < icons.length; i++) {
icons[i] = register.registerIcon(CommonProxy.DOMAIN + ":apiamancersdrainer." + i);
}
2023-12-08 11:36:56 +01:00
}
}