Package electricexpansion.common.helpers

Source Code of electricexpansion.common.helpers.BlockWireBase

package electricexpansion.common.helpers;

import java.util.List;

import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import universalelectricity.core.block.IConductor;
import universalelectricity.prefab.block.BlockConductor;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import electricexpansion.common.misc.EnumWireFrequency;
import electricexpansion.common.misc.ItemUtils;

public abstract class BlockWireBase extends BlockConductor
{

    public BlockWireBase(int id, Material material)
    {
        super(id, material);
    }
   
    @Override
    @SideOnly(Side.CLIENT)
    @SuppressWarnings({ "unchecked", "rawtypes" })
    public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List)
    {
        for (int var4 = 0; var4 < 5; var4++)
        {
            par3List.add(new ItemStack(par1, 1, var4));
        }
    }
   
    @Override
    public void onBlockAdded(World world, int x, int y, int z)
    {
        super.onBlockAdded(world, x, y, z);
       
        TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
       
        if (tileEntity != null)
        {
            if (tileEntity instanceof IConductor)
            {
                ((IConductor) tileEntity).refresh();
                updateWireSwitch(world, x, y, z);
            }
        }
       
    }
   
    @Override
    public boolean onBlockActivated(World par1World, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9)
    {
        TileEntityConductorBase tileEntity = (TileEntityConductorBase) par1World.getBlockTileEntity(x, y, z);
       
        if (!par1World.isRemote)
        {
            if (player.inventory.getCurrentItem() != null)
            {
                EnumWireFrequency freq = ItemUtils.isDye(player.inventory.getCurrentItem());
                if (freq != EnumWireFrequency.NONE)
                {
                    tileEntity.setFrequency(freq);
                   
                    if (!player.capabilities.isCreativeMode)
                        player.inventory.getCurrentItem().stackSize = player.inventory.getCurrentItem().stackSize - 1;
                   
                    ((IConductor) tileEntity).refresh();
                   
                    updateWireSwitch(par1World, x, y, z);
                   
                    return true;
                }
            }
        }
        return false;
    }
   
    public static void updateWireSwitch(World world, int x, int y, int z)
    {
        TileEntityConductorBase tileEntity = (TileEntityConductorBase) world.getBlockTileEntity(x, y, z);
       
        TileEntity tileEntity1;
       
        if (!world.isRemote && tileEntity != null)
        {
           
            for (byte i = 0; i < 6; i++)
            {
                switch (i)
                {
                    case 0:
                        tileEntity1 = world.getBlockTileEntity(x + 1, y, z);
                        break;
                    case 1:
                        tileEntity1 = world.getBlockTileEntity(x - 1, y, z);
                        break;
                    case 2:
                        tileEntity1 = world.getBlockTileEntity(x, y + 1, z);
                        break;
                    case 3:
                        tileEntity1 = world.getBlockTileEntity(x, y - 1, z);
                        break;
                    case 4:
                        tileEntity1 = world.getBlockTileEntity(x, y, z + 1);
                        break;
                    case 5:
                        tileEntity1 = world.getBlockTileEntity(x, y, z - 1);
                        break;
                    default:
                        tileEntity1 = world.getBlockTileEntity(x, y, z);
                }
               
                if (tileEntity1 instanceof IConductor)
                {
                    ((IConductor) tileEntity1).refresh();
                    tileEntity1.worldObj.markBlockForUpdate(tileEntity1.xCoord, tileEntity1.yCoord, tileEntity1.zCoord);
                }
            }
        }
    }

}
TOP

Related Classes of electricexpansion.common.helpers.BlockWireBase

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.