Java源码示例:net.minecraftforge.fluids.IFluidContainerItem
示例1
@Override
public boolean onBlockActivated(World worldObj, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) {
if (worldObj.isRemote) {
return false;
}
TileEntity tile = worldObj.getTileEntity(x, y, z);
if (tile instanceof BW_TileEntity_HeatedWaterPump) {
if (player.getHeldItem() != null && (player.getHeldItem().getItem().equals(Items.bucket) || player.getHeldItem().getItem() instanceof IFluidContainerItem) && ((BW_TileEntity_HeatedWaterPump) tile).drain(1000, false) != null)
if (player.getHeldItem().getItem().equals(Items.bucket) && ((BW_TileEntity_HeatedWaterPump) tile).drain(1000, false).amount == 1000) {
((BW_TileEntity_HeatedWaterPump) tile).drain(1000, true);
player.getHeldItem().stackSize--;
if (player.getHeldItem().stackSize <= 0)
player.inventory.setInventorySlotContents(player.inventory.currentItem, null);
player.inventory.addItemStackToInventory(new ItemStack(Items.water_bucket));
return true;
}
}
if (!player.isSneaking()) {
if (tile instanceof IHasGui) {
return worldObj.isRemote || IC2.platform.launchGui(player, (IHasGui) tile);
} else if (tile instanceof ITileWithGUI) {
return worldObj.isRemote || ((ITileWithGUI) tile).openGUI(tile, player);
}
}
return false;
}
示例2
private String getFluidContainerContents(ItemStack pItemInQuestion)
{
String tResult = "No fluid container";
if (pItemInQuestion.getItem() instanceof IFluidContainerItem)
{
IFluidContainerItem tFluidContainer = IFluidContainerItem.class.cast(pItemInQuestion.getItem());
FluidStack tContents = tFluidContainer.getFluid(pItemInQuestion);
if (tContents != null)
{
tResult = String.format("FluidID: [%d], UnlocName: [%s], Name: [%s]", tContents.getFluid().getID(), tContents.getFluid().getUnlocalizedName(), tContents.getFluid().getName());
}
}
return tResult;
}
示例3
@Override
public boolean isItemValidForSlot(int i, ItemStack itemstack)
{
if (gridTE != null)
{
ICraftingPattern currentPattern = Util.getAssemblerPattern(itemstack);
if (currentPattern == null || currentPattern.getRequirements() == null)
return false;
if (FluidContainerRegistry.isEmptyContainer(currentPattern.getOutput()))
return false;
for (ItemStack entry : currentPattern.getRequirements())
{
if (entry != null && entry.getItem() instanceof IFluidContainerItem || FluidContainerRegistry.isFilledContainer(entry))
{
return doesRecipeExist((ICraftingPatternMAC) currentPattern);
}
}
}
return false;
}
示例4
@Override
public Object getMeta(IFluidContainerItem target, ItemStack stack) {
FluidStack fluidStack = target.getFluid(stack);
if (fluidStack != null && fluidStack.amount > 0) {
int heatPerBucket = FuelManager.getBoilerFuelValue(fluidStack.getFluid());
if (heatPerBucket > 0) {
Map<String, Number> result = Maps.newHashMap();
result.put("total", heatPerBucket / 1000.0f * fluidStack.amount);
result.put("per_bucket", heatPerBucket);
return result;
}
}
return null;
}
示例5
@Override
public Object getMeta(IFluidContainerItem target, ItemStack stack) {
Map<String, Object> map = Maps.newHashMap();
map.put("contents", target.getFluid(stack));
map.put("capacity", target.getCapacity(stack));
return map;
}
示例6
/**
* Check if given ItemStack is a valid lava-containing container.
* Either the "unlocalized name" contains the word "lava"
* - OR -
* The item is a Tinkers-LavaTank block which contains lava
* - OR -
* The item is an item which implements the IFluidContainer Interface, and it actually
* does contain lava
*
* @param pHeldItem
* @return
*/
private boolean isValidLavaContainerItem( ItemStack pHeldItem )
{
boolean tResult = false;
if( pHeldItem.getUnlocalizedName().toLowerCase().contains( "lava" ) ) {
tResult = true;
}
if( pHeldItem.getItem() instanceof IFluidContainerItem )
{
FluidStack tStackFluid = FluidHelper.getFluidStackFromContainer( pHeldItem );
if( tStackFluid != null )
{
if( tStackFluid.amount > 0 && "lava".equalsIgnoreCase(tStackFluid.getFluid().getName())) {
tResult = true;
}
}
}
else if("tconstruct.smeltery.itemblocks.LavaTankItemBlock".equals(pHeldItem.getItem().getClass().getName()))
{
NBTTagCompound tNBT = pHeldItem.getTagCompound();
if( tNBT != null && tNBT.hasKey( "Fluid" ) )
{
// _mLogger.info("...Has NBT 'Fluid'...");
NBTTagCompound tFluidCompound = tNBT.getCompoundTag( "Fluid" );
if( tFluidCompound != null && tFluidCompound.hasKey( "FluidName" ) )
{
String tFluidName = tFluidCompound.getString( "FluidName" );
if( tFluidName != null && !tFluidName.isEmpty())
{
if("lava".equalsIgnoreCase(tFluidName)) {
tResult = true;
}
}
}
}
}
return tResult;
}
示例7
@Override
public boolean isItemValid(ItemStack stack){
return stack != null && (FluidContainerRegistry.getFluidForFilledItem(stack) != null || stack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem)stack.getItem()).getFluid(stack) != null);
}
示例8
@Override
public boolean isItemValidForSlot(int slot, ItemStack stack){
return slot == 5 ? false : stack != null && (FluidContainerRegistry.getFluidForFilledItem(stack) != null || stack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem)stack.getItem()).getFluid(stack) != null);
}
示例9
@Override
public boolean isItemValidForSlot(int slot, ItemStack stack){
return slot == 1 ? false : stack != null && (FluidContainerRegistry.getFluidForFilledItem(stack) != null || stack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem)stack.getItem()).getFluid(stack) != null);
}
示例10
@Override
public boolean isItemValidForSlot(int i, ItemStack itemstack)
{
return FluidContainerRegistry.isContainer(itemstack) || (itemstack != null && itemstack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem) itemstack.getItem()).getFluid(itemstack) != null);
}