123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- package me.km.blocks;
- import java.util.Random;
- import me.km.KajetansMod;
- import me.km.items.ModItems;
- import net.minecraft.block.BlockCauldron;
- import net.minecraft.block.ITileEntityProvider;
- import net.minecraft.block.SoundType;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.creativetab.CreativeTabs;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.entity.player.EntityPlayerMP;
- import net.minecraft.init.Items;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemStack;
- import net.minecraft.tileentity.TileEntity;
- import net.minecraft.util.EnumFacing;
- import net.minecraft.util.EnumHand;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.world.World;
- public class BlockModCauldron extends BlockCauldron implements IBlockBase, ITileEntityProvider
- {
- protected String name;
- public BlockModCauldron(String name, String local)
- {
- this.name = name;
- this.setRegistryName(name);
- super.setUnlocalizedName(local);
- super.setHardness(2.0F);
- super.setCreativeTab(CreativeTabs.BREWING);
- }
-
- @Override
- public void registerItemModel(Item itemBlock)
- {
- KajetansMod.proxy.registerItemRenderer(itemBlock, 0, name);
- }
- @Override
- public BlockModCauldron setSoundType(SoundType sound)
- {
- super.setSoundType(sound);
- return this;
- }
- @Override
- public TileEntity createNewTileEntity(World worldIn, int meta)
- {
- return new TileEntityCauldron();
- }
-
- @Override
- public void breakBlock(World w, BlockPos pos, IBlockState state)
- {
- w.removeTileEntity(pos);
- }
-
- @Override
- public Item getItemDropped(IBlockState state, Random rand, int fortune)
- {
- return Item.getItemFromBlock(this);
- }
- @Override
- public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state)
- {
- return new ItemStack(Item.getItemFromBlock(this), 1, this.damageDropped(state));
- }
- @Override
- public boolean onBlockActivated(World w, BlockPos pos, IBlockState state, EntityPlayer p,
- EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
- {
- if(w.isRemote)
- {
- return true;
- }
- else
- {
- TileEntity te = w.getTileEntity(pos);
- if(te instanceof TileEntityCauldron)
- {
- TileEntityCauldron cauldron = (TileEntityCauldron) te;
- boolean b = false;
- if(cauldron.hasDefaultColor())
- {
- b = super.onBlockActivated(w, pos, state, p, hand, facing, hitX, hitY, hitZ);
- }
- ItemStack stack = p.getHeldItem(hand);
- if(stack.isEmpty() || b)
- {
- return true;
- }
- else if(stack.getItem() == Items.BOWL)
- {
- int waterLevel = state.getValue(LEVEL);
- if(waterLevel > 0)
- {
- ItemStack stew = new ItemStack(ModItems.coloredSoup);
- ModItems.coloredSoup.addIngredient(stew, cauldron.getIngredients());
- ModItems.coloredSoup.setColor(stew, cauldron.getColor().getRGB());
- ModItems.coloredSoup.setFoodStats(stew, cauldron.getIngredients());
- stack.shrink(1);
- if(stack.isEmpty())
- {
- p.setHeldItem(hand, stew);
- }
- else if(!p.inventory.addItemStackToInventory(stew))
- {
- p.dropItem(stew, false);
- }
- else if(p instanceof EntityPlayerMP)
- {
- ((EntityPlayerMP) p).sendContainerToPlayer(p.inventoryContainer);
- }
- this.setWaterLevel(w, pos, state, waterLevel - 1);
- }
- return true;
- }
- if(cauldron.getNumberOfIngredients() < 3 && cauldron.addItemStack(stack))
- {
- if(!p.capabilities.isCreativeMode)
- {
- stack.shrink(1);
- }
- }
- return true;
- }
- return true;
- }
- }
- @Override
- public void setWaterLevel(World w, BlockPos pos, IBlockState state, int level)
- {
- if(level <= 0 && !w.isRemote)
- {
- TileEntity te = w.getTileEntity(pos);
- if(te instanceof TileEntityCauldron)
- {
- ((TileEntityCauldron) te).reset();
- }
- }
- super.setWaterLevel(w, pos, state, level);
- }
- }
|