/// <summary> /// Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. /// </summary> public override bool Interact(EntityPlayer par1EntityPlayer) { if (MinecartType == 0) { if (RiddenByEntity != null && (RiddenByEntity is EntityPlayer) && RiddenByEntity != par1EntityPlayer) { return(true); } if (!WorldObj.IsRemote) { par1EntityPlayer.MountEntity(this); } } else if (MinecartType == 1) { if (!WorldObj.IsRemote) { par1EntityPlayer.DisplayGUIChest(this); } } else if (MinecartType == 2) { ItemStack itemstack = par1EntityPlayer.Inventory.GetCurrentItem(); if (itemstack != null && itemstack.ItemID == Item.Coal.ShiftedIndex) { if (--itemstack.StackSize == 0) { par1EntityPlayer.Inventory.SetInventorySlotContents(par1EntityPlayer.Inventory.CurrentItem, null); } Fuel += 3600; } PushX = PosX - par1EntityPlayer.PosX; PushZ = PosZ - par1EntityPlayer.PosZ; } return(true); }
/// <summary> /// Called upon block activation (left or right click on the block.). The three integers represent x,y,z of the /// block. /// </summary> public override bool BlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer) { object obj = (TileEntityChest)par1World.GetBlockTileEntity(par2, par3, par4); if (obj == null) { return(true); } if (par1World.IsBlockNormalCube(par2, par3 + 1, par4)) { return(true); } if (Func_50075_j(par1World, par2, par3, par4)) { return(true); } if (par1World.GetBlockId(par2 - 1, par3, par4) == BlockID && (par1World.IsBlockNormalCube(par2 - 1, par3 + 1, par4) || Func_50075_j(par1World, par2 - 1, par3, par4))) { return(true); } if (par1World.GetBlockId(par2 + 1, par3, par4) == BlockID && (par1World.IsBlockNormalCube(par2 + 1, par3 + 1, par4) || Func_50075_j(par1World, par2 + 1, par3, par4))) { return(true); } if (par1World.GetBlockId(par2, par3, par4 - 1) == BlockID && (par1World.IsBlockNormalCube(par2, par3 + 1, par4 - 1) || Func_50075_j(par1World, par2, par3, par4 - 1))) { return(true); } if (par1World.GetBlockId(par2, par3, par4 + 1) == BlockID && (par1World.IsBlockNormalCube(par2, par3 + 1, par4 + 1) || Func_50075_j(par1World, par2, par3, par4 + 1))) { return(true); } if (par1World.GetBlockId(par2 - 1, par3, par4) == BlockID) { obj = new InventoryLargeChest("Large chest", (TileEntityChest)par1World.GetBlockTileEntity(par2 - 1, par3, par4), ((IInventory)(obj))); } if (par1World.GetBlockId(par2 + 1, par3, par4) == BlockID) { obj = new InventoryLargeChest("Large chest", ((IInventory)(obj)), (TileEntityChest)par1World.GetBlockTileEntity(par2 + 1, par3, par4)); } if (par1World.GetBlockId(par2, par3, par4 - 1) == BlockID) { obj = new InventoryLargeChest("Large chest", (TileEntityChest)par1World.GetBlockTileEntity(par2, par3, par4 - 1), ((IInventory)(obj))); } if (par1World.GetBlockId(par2, par3, par4 + 1) == BlockID) { obj = new InventoryLargeChest("Large chest", ((IInventory)(obj)), (TileEntityChest)par1World.GetBlockTileEntity(par2, par3, par4 + 1)); } if (par1World.IsRemote) { return(true); } else { par5EntityPlayer.DisplayGUIChest(((IInventory)(obj))); return(true); } }