Package mekanism.common.block

Source Code of mekanism.common.block.BlockPlastic

package mekanism.common.block;

import java.util.List;

import mekanism.api.EnumColor;
import mekanism.common.Mekanism;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class BlockPlastic extends Block
{
  public BlockPlastic()
  {
    super(Material.wood);
    setHardness(5F);
    setResistance(10F);
    setCreativeTab(Mekanism.tabMekanism);
    if(this == Mekanism.BlockSlickHDPE)
    {
      slipperiness = 0.98F;
    }
  }

  @Override
  @SideOnly(Side.CLIENT)
  public void registerBlockIcons(IIconRegister register)
  {
    if(this == Mekanism.BlockHDPE)
    {
      blockIcon = register.registerIcon("mekanism:PlasticBlock");
    }
    else if(this == Mekanism.BlockSlickHDPE)
    {
      blockIcon = register.registerIcon("mekanism:SlickPlasticBlock");
    }
    else if(this == Mekanism.BlockGlowHDPE)
    {
      blockIcon = register.registerIcon("mekanism:GlowPlasticBlock");
    }
    else if(this == Mekanism.BlockReinforcedHDPE)
    {
      blockIcon = register.registerIcon("mekanism:ReinforcedPlasticBlock");
    }
    else if(this == Mekanism.BlockRoadHDPE)
    {
      blockIcon = register.registerIcon("mekanism:RoadPlasticBlock");
    }
  }

  @Override
  public void onEntityWalking(World world, int x, int y, int z, Entity e)
  {
    if(this == Mekanism.BlockRoadHDPE)
    {
      double boost = 1.6;

      double a = Math.atan2(e.motionX, e.motionZ);
      e.motionX += Math.sin(a) * boost * slipperiness;
      e.motionZ += Math.cos(a) * boost * slipperiness;
    }
  }

  @Override
  public int damageDropped(int i)
  {
    return i;
  }

  @Override
  @SideOnly(Side.CLIENT)
  public void getSubBlocks(Item item, CreativeTabs creativetabs, List list)
  {
    for(int i = 0; i < EnumColor.DYES.length; i++)
    {
      list.add(new ItemStack(item, 1, i));
    }
  }

  @Override
  public int colorMultiplier(IBlockAccess world, int x, int y, int z)
  {
    return getRenderColor(world.getBlockMetadata(x, y, z));
  }

  @Override
  public int getRenderColor(int meta)
  {
    EnumColor colour = EnumColor.DYES[meta];
    return (int)(colour.getColor(0)*255) << 16 | (int)(colour.getColor(1)*255) << 8 | (int)(colour.getColor(2)*255);

  }

  @Override
  public int getLightValue(IBlockAccess world, int x, int y, int z)
  {
    if(this == Mekanism.BlockGlowHDPE)
    {
      return 10;
    }

    return 0;
  }

  public boolean recolourBlock(World world, int x, int y, int z, ForgeDirection side, int colour)
  {
    int meta = world.getBlockMetadata(x, y, z);
    if (meta != (15 - colour))
    {
      world.setBlockMetadataWithNotify(x, y, z, 15-colour, 3);
      return true;
    }
    return false;
  }
}
TOP

Related Classes of mekanism.common.block.BlockPlastic

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.