More lenient "fill" checks
This commit is contained in:
parent
7ce73bdb52
commit
509630ca35
@ -41,8 +41,17 @@ class FluidTankBlockEntity(blockPos: BlockPos, blockState: BlockState) : Mattery
|
|||||||
drainInput.handler(HandlerFilter.DrainableFluidContainers),
|
drainInput.handler(HandlerFilter.DrainableFluidContainers),
|
||||||
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).ifPresentK {
|
||||||
|
if (it.tanks > 0) return true
|
||||||
|
}
|
||||||
|
|
||||||
|
stack.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM).ifPresentK {
|
||||||
|
if (it.tanks > 0) return true
|
||||||
|
}
|
||||||
|
|
||||||
return false
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
stack.getCapability(ForgeCapabilities.FLUID_HANDLER).ifPresentK {
|
stack.getCapability(ForgeCapabilities.FLUID_HANDLER).ifPresentK {
|
||||||
if (it.fill(fluid[0], IFluidHandler.FluidAction.SIMULATE) > 0)
|
if (it.fill(fluid[0], IFluidHandler.FluidAction.SIMULATE) > 0)
|
||||||
|
@ -36,9 +36,19 @@ class FluidTankMenu(containerId: Int, inventory: Inventory, tile: FluidTankBlock
|
|||||||
val fillInput = object : MatterySlot(tile?.fillInput ?: SimpleContainer(1), 0) {
|
val fillInput = object : MatterySlot(tile?.fillInput ?: SimpleContainer(1), 0) {
|
||||||
override fun mayPlace(itemStack: ItemStack): Boolean {
|
override fun mayPlace(itemStack: ItemStack): Boolean {
|
||||||
return super.mayPlace(itemStack) && itemStack.getCapability(ForgeCapabilities.FLUID_HANDLER)
|
return super.mayPlace(itemStack) && itemStack.getCapability(ForgeCapabilities.FLUID_HANDLER)
|
||||||
.map { it.fill(fluid.fluid, IFluidHandler.FluidAction.SIMULATE) > 0 }
|
.map {
|
||||||
|
if (fluid.fluid.isEmpty)
|
||||||
|
it.tanks > 0
|
||||||
|
else
|
||||||
|
it.fill(fluid.fluid, IFluidHandler.FluidAction.SIMULATE) > 0
|
||||||
|
}
|
||||||
.orElse(itemStack.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM)
|
.orElse(itemStack.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM)
|
||||||
.map { it.fill(fluid.fluid, IFluidHandler.FluidAction.SIMULATE) > 0 }
|
.map {
|
||||||
|
if (fluid.fluid.isEmpty)
|
||||||
|
it.tanks > 0
|
||||||
|
else
|
||||||
|
it.fill(fluid.fluid, IFluidHandler.FluidAction.SIMULATE) > 0
|
||||||
|
}
|
||||||
.orElse(false))
|
.orElse(false))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user