Update fluid handler conditions

This commit is contained in:
DBotThePony 2023-05-15 08:10:06 +07:00
parent fd236d8a53
commit 1967b2869a
Signed by: DBot
GPG Key ID: DCC23B5715498507
2 changed files with 4 additions and 28 deletions

View File

@ -42,18 +42,10 @@ class FluidTankBlockEntity(blockPos: BlockPos, blockState: BlockState) : Mattery
fillInput.handler(object : HandlerFilter { fillInput.handler(object : HandlerFilter {
override fun canInsert(slot: Int, stack: ItemStack): Boolean { override fun canInsert(slot: Int, stack: ItemStack): Boolean {
if (fluid.isEmpty) { if (fluid.isEmpty) {
stack.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM).ifPresentK { return stack.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM).map { it.tanks > 0 }.orElse(false)
return it.tanks > 0
} }
return false return stack.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM).map { it.fill(fluid[0], IFluidHandler.FluidAction.SIMULATE) > 0 }.orElse(false)
}
stack.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM).ifPresentK {
return it.fill(fluid[0], IFluidHandler.FluidAction.SIMULATE) > 0
}
return false
} }
override fun canExtract(slot: Int, amount: Int, stack: ItemStack): Boolean { override fun canExtract(slot: Int, amount: Int, stack: ItemStack): Boolean {

View File

@ -42,29 +42,13 @@ interface HandlerFilter {
object FluidContainers : HandlerFilter { object FluidContainers : HandlerFilter {
override fun canInsert(slot: Int, stack: ItemStack): Boolean { override fun canInsert(slot: Int, stack: ItemStack): Boolean {
stack.getCapability(ForgeCapabilities.FLUID_HANDLER).ifPresentK { return stack.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM).map { it.tanks > 0 }.orElse(false)
return it.tanks > 0
}
stack.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM).ifPresentK {
return it.tanks > 0
}
return false
} }
} }
object DrainableFluidContainers : HandlerFilter { object DrainableFluidContainers : HandlerFilter {
override fun canInsert(slot: Int, stack: ItemStack): Boolean { override fun canInsert(slot: Int, stack: ItemStack): Boolean {
stack.getCapability(ForgeCapabilities.FLUID_HANDLER).ifPresentK { return stack.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM).map { it.stream().anyMatch { it.isNotEmpty } }.orElse(false)
return it.stream().anyMatch { it.isNotEmpty }
}
stack.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM).ifPresentK {
return it.stream().anyMatch { it.isNotEmpty }
}
return false
} }
override fun canExtract(slot: Int, amount: Int, stack: ItemStack): Boolean { override fun canExtract(slot: Int, amount: Int, stack: ItemStack): Boolean {