Jump to content

Change block texture


Recommended Posts

I'm trying to make a block when right clicked takes on the texture of the block you clicked it with. With the code I have, it does change the texture but it requires me to place a block somewhere to update and it changes it for all instances of the block. Is there a way to do it so only the block you click on changes, and to make it happen instantly? Thankyou



package somarani.soulcraft.block;

import java.util.List;

import com.sun.org.apache.bcel.internal.generic.RETURN;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.Facing;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import scala.reflect.internal.Trees.Return;
import somarani.soulcraft.common.SoulCraft;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class BlockClearSoulGlass extends Block {

    private IIcon icon;

public BlockClearSoulGlass(Material p_i45394_1_) {


	GameRegistry.registerBlock(this, "clearsoulglass");


    public void registerBlockIcons(IIconRegister p_149651_1_)
	 		 icon = this.blockIcon;
	 		icon = p_149651_1_.registerIcon("soulcraft:clearsoulglass");


    public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityPlayer, int side, float hitX, float hitY, float hitZ){

	if(entityPlayer.getCurrentEquippedItem() != null){

	ItemStack stack = entityPlayer.getCurrentEquippedItem();

	icon = stack.getIconIndex();

	return true;


    public IIcon getIcon(IBlockAccess p_149673_1_, int p_149673_2_, int p_149673_3_, int p_149673_4_, int p_149673_5_){

	return icon;

    public boolean shouldSideBeRendered(IBlockAccess p_149646_1_, int p_149646_2_, int p_149646_3_, int p_149646_4_, int p_149646_5_)
        return true;

    public int getRenderBlockPass()
        return 0;
    public boolean isOpaqueCube() {
    	return false;
    public void onEntityCollidedWithBlock(World p_149670_1_, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity entity) {
    	if(!(entity instanceof EntityPlayer)){

    public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4)
	return null;

     * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)
    public boolean renderAsNormalBlock()
        return false;


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...

Important Information

By using this site, you agree to our Terms of Use.