package sourcecoded.quantum.block;
import net.minecraft.block.Block;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import sourcecoded.core.crafting.ICraftableBlock;
import sourcecoded.quantum.api.vacuum.VacuumRegistry;
import sourcecoded.quantum.client.renderer.block.AdvancedTileProxy;
import sourcecoded.quantum.crafting.vacuum.VacuumSyncCharged;
import sourcecoded.quantum.crafting.vacuum.VacuumSyncStandard;
import sourcecoded.quantum.item.ItemBlockQuantum;
import sourcecoded.quantum.tile.TileSync;
import java.util.List;
public class BlockSync extends BlockDyeable implements ITileEntityProvider, ICraftableBlock {
public BlockSync() {
super();
this.setBlockName("blockSynchronize");
this.setBlockTextureName("infusedStone");
this.setHardness(6F);
}
public int damageDropped(int meta) {
return meta;
}
@SuppressWarnings("unchecked")
public void getSubBlocks(Item unknown, CreativeTabs tab, List subItems) {
subItems.add(new ItemStack(this, 1, 0));
subItems.add(new ItemStack(this, 1, 1));
}
public void onNeighborBlockChange(World world, int x, int y, int z, Block block) {
TileSync tile = (TileSync) world.getTileEntity(x, y, z);
tile.onBlockChanged();
}
public TileEntity createNewTileEntity(World world, int meta) {
return new TileSync();
}
public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
TileSync tile = (TileSync) world.getTileEntity(x, y, z);
if (tile != null)
tile.onDestroy();
super.breakBlock(world, x, y, z, block, meta);
}
public int getRenderType() {
return AdvancedTileProxy.renderID;
}
@Override
public boolean isOpaqueCube() {
return false;
}
public boolean renderAsNormalBlock() {
return false;
}
public boolean isSideSolid(IBlockAccess world, int x, int y, int z, ForgeDirection side) {
return true;
}
@Override
public Class<? extends ItemBlock> getItemBlock(Block block) {
return TheItemBlock.class;
}
@Override
public IRecipe[] getRecipes(Block block) {
VacuumRegistry.addRecipe(new VacuumSyncStandard());
VacuumRegistry.addRecipe(new VacuumSyncCharged());
return new IRecipe[0];
}
public static class TheItemBlock extends ItemBlockQuantum {
public TheItemBlock(Block block) {
super(block);
this.setHasSubtypes(true);
}
// public void addInformation(ItemStack item, EntityPlayer player, List list, boolean idk) {
// list.add(LocalizationUtils.translateLocalWithColours("qa.block.blockSynchronize.lore.0", "{c:ITALIC}One of us.... One of us...."));
// }
}
}