26 avr. 2020, 18:28

@robin4002

package com.ben.heaven.blocks;

import com.ben.heaven.Heaven;
import com.ben.heaven.tileentity.TileMachineBuilder;

import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.InventoryHelper;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumBlockRenderType;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;

public class MachineBuilder extends BlockContainer {
	
	public MachineBuilder(String name, Material materialIn) {
		
		super(materialIn);
		setUnlocalizedName(name);
		setRegistryName(name);
		
	}

	@Override
	public boolean hasTileEntity() {
		return true;
	}
	@Override
	public TileEntity createNewTileEntity(World world, int metadata) {
		return new TileMachineBuilder();
	}

	@Override
	public void breakBlock(World worldIn, BlockPos pos, IBlockState state) {
	    TileEntity tileentity = worldIn.getTileEntity(pos);
	 
	    if (tileentity instanceof TileMachineBuilder) {
	        InventoryHelper.dropInventoryItems(worldIn, pos,
	                (TileMachineBuilder) tileentity);
	    }
	 
	    super.breakBlock(worldIn, pos, state);
	}
	
	@Override
	public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
	    if (world.isRemote) {
	        return true;
	    } else {
	        TileEntity tileentity = world.getTileEntity(pos);
	 
	        if (tileentity instanceof TileMachineBuilder) {
	            player.openGui(Heaven.instance, 0, world, pos.getX(),
	                    pos.getY(), pos.getZ());
	        }
	 
	        return true;

	    }

	}
	
	@Override
	public EnumBlockRenderType getRenderType(IBlockState state) {
	    return EnumBlockRenderType.MODEL;

	}
	
	@Override
	public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) {
	    if (stack.hasDisplayName()) {
	        TileEntity tileentity = worldIn.getTileEntity(pos);
	 
	        if (tileentity instanceof TileMachineBuilder) {
	            ((TileMachineBuilder) tileentity).setCustomName(stack
	                    .getDisplayName());
	        }
	    }
	}
}