Package crazypants.enderio.machine.light

Source Code of crazypants.enderio.machine.light.BlockItemElectricLight

package crazypants.enderio.machine.light;

import java.util.List;

import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlockWithMetadata;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import crazypants.enderio.EnderIOTab;
import crazypants.enderio.gui.IResourceTooltipProvider;

public class BlockItemElectricLight extends ItemBlockWithMetadata implements IResourceTooltipProvider {

  public enum Type {
    ELECTRIC("item.itemElectricLight", false, true, false),
    ELECTRIC_INV("item.itemElectricLightInverted", true, true, false),
    BASIC("item.itemLight", false, false, false),
    BASIC_INV("item.itemLightInverted", true, false, false),
    WIRELESS("item.itemWirelessLight", false, true, true),
    WIRELESS_INV("item.itemWirelessLightInverted", true, true, true);
   
    final String unlocName;
    final boolean isInverted;
    final boolean isPowered;
    final boolean isWireless;
   
    private Type(String unlocName, boolean isInverted, boolean isPowered, boolean isWireless) {
      this.unlocName = unlocName;
      this.isInverted = isInverted;
      this.isPowered = isPowered;
      this.isWireless = isWireless;
    }
   
  }
 
  public BlockItemElectricLight(Block block) {
    super(block, block);
    setCreativeTab(EnderIOTab.tabEnderIO);
  }

  @Override
  public String getUnlocalizedName(ItemStack par1ItemStack) {
    int meta = par1ItemStack.getItemDamage();
    meta = MathHelper.clamp_int(meta, 0, Type.values().length - 1);
    return Type.values()[meta].unlocName;
  }

  @Override
  @SuppressWarnings({ "rawtypes", "unchecked" })
  public void getSubItems(Item par1, CreativeTabs par2CreativeTabs, List par3List) {
    for(Type type : Type.values()) {
      par3List.add(new ItemStack(this,1,type.ordinal()));
    }
  }

  @Override
  public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int metadata) {
    if(!world.setBlock(x, y, z, field_150939_a, 0, 3)) {
      return false;
    }
    if(world.getBlock(x, y, z) == field_150939_a) {
      ForgeDirection onFace = ForgeDirection.values()[side].getOpposite();
      TileEntity te = world.getTileEntity(x, y, z);
      if(te instanceof TileElectricLight) {
        TileElectricLight el = ((TileElectricLight) te);
        el.setFace(onFace);
        Type t= Type.values()[metadata];
        el.setInverted(t.isInverted);
        el.setRequiresPower(t.isPowered);
        el.setWireless(t.isWireless);
      }
    }
    return true;
  }

  @Override
  public String getUnlocalizedNameForTooltip(ItemStack itemStack) {   
    return getUnlocalizedName(itemStack);
  }
}
TOP

Related Classes of crazypants.enderio.machine.light.BlockItemElectricLight

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.