Fix fluid tank not working properly with items
This commit is contained in:
parent
f870c2cefc
commit
9daa3df589
@ -22,6 +22,7 @@ import ru.dbotthepony.mc.otm.container.HandlerFilter
|
|||||||
import ru.dbotthepony.mc.otm.container.MatteryContainer
|
import ru.dbotthepony.mc.otm.container.MatteryContainer
|
||||||
import ru.dbotthepony.mc.otm.container.get
|
import ru.dbotthepony.mc.otm.container.get
|
||||||
import ru.dbotthepony.mc.otm.core.isNotEmpty
|
import ru.dbotthepony.mc.otm.core.isNotEmpty
|
||||||
|
import ru.dbotthepony.mc.otm.core.isNotSameAs
|
||||||
import ru.dbotthepony.mc.otm.menu.decorative.FluidTankMenu
|
import ru.dbotthepony.mc.otm.menu.decorative.FluidTankMenu
|
||||||
import ru.dbotthepony.mc.otm.network.wrap
|
import ru.dbotthepony.mc.otm.network.wrap
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
@ -109,7 +110,7 @@ class FluidTankBlockEntity(blockPos: BlockPos, blockState: BlockState) : Mattery
|
|||||||
|
|
||||||
val moved1 = moveFluid(source = cap1, destination = fluid)
|
val moved1 = moveFluid(source = cap1, destination = fluid)
|
||||||
|
|
||||||
if (moved1 != moved0 || moved1.amount != moved0.amount) {
|
if (moved1 isNotSameAs moved0) {
|
||||||
LOGGER.error("Error moving fluids in Fluid tank at $blockPos: moved $moved0 during simulation from ${cap.container}, moved $moved1 from ${cap1.container} during execution. This is likely a bug in OTM or other mod!")
|
LOGGER.error("Error moving fluids in Fluid tank at $blockPos: moved $moved0 during simulation from ${cap.container}, moved $moved1 from ${cap1.container} during execution. This is likely a bug in OTM or other mod!")
|
||||||
} else {
|
} else {
|
||||||
item.count--
|
item.count--
|
||||||
@ -161,7 +162,7 @@ class FluidTankBlockEntity(blockPos: BlockPos, blockState: BlockState) : Mattery
|
|||||||
|
|
||||||
val moved1 = moveFluid(source = fluid, destination = cap1)
|
val moved1 = moveFluid(source = fluid, destination = cap1)
|
||||||
|
|
||||||
if (moved1 != moved0 || moved1.amount != moved0.amount) {
|
if (moved1 isNotSameAs moved0) {
|
||||||
LOGGER.error("Error moving fluids in Fluid tank at $blockPos: moved $moved0 during simulation from ${cap.container}, moved $moved1 from ${cap1.container} during execution. This is likely a bug in OTM or other mod!")
|
LOGGER.error("Error moving fluids in Fluid tank at $blockPos: moved $moved0 during simulation from ${cap.container}, moved $moved1 from ${cap1.container} during execution. This is likely a bug in OTM or other mod!")
|
||||||
} else {
|
} else {
|
||||||
item.count--
|
item.count--
|
||||||
|
@ -15,7 +15,6 @@ import net.minecraft.Util
|
|||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.Holder
|
import net.minecraft.core.Holder
|
||||||
import net.minecraft.core.HolderLookup
|
import net.minecraft.core.HolderLookup
|
||||||
import net.minecraft.core.HolderSet
|
|
||||||
import net.minecraft.core.Registry
|
import net.minecraft.core.Registry
|
||||||
import net.minecraft.core.SectionPos
|
import net.minecraft.core.SectionPos
|
||||||
import net.minecraft.core.registries.BuiltInRegistries
|
import net.minecraft.core.registries.BuiltInRegistries
|
||||||
@ -568,3 +567,28 @@ fun <T : Any> Registry<T>.getHolderOrThrow(value: T): Holder<T> {
|
|||||||
fun <T : Any> Registry<T>.getReverseTag(value: T): Stream<TagKey<T>> {
|
fun <T : Any> Registry<T>.getReverseTag(value: T): Stream<TagKey<T>> {
|
||||||
return getHolder(value)?.tags() ?: Stream.empty()
|
return getHolder(value)?.tags() ?: Stream.empty()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// forge > neoforge moment
|
||||||
|
infix fun FluidStack.isSameFluidSameComponents(other: FluidStack): Boolean {
|
||||||
|
return FluidStack.isSameFluidSameComponents(this, other)
|
||||||
|
}
|
||||||
|
|
||||||
|
infix fun FluidStack.isSameFluid(other: FluidStack): Boolean {
|
||||||
|
return FluidStack.isSameFluid(this, other)
|
||||||
|
}
|
||||||
|
|
||||||
|
infix fun FluidStack.isNotSameFluidSameComponents(other: FluidStack): Boolean {
|
||||||
|
return !FluidStack.isSameFluidSameComponents(this, other)
|
||||||
|
}
|
||||||
|
|
||||||
|
infix fun FluidStack.isNotSameFluid(other: FluidStack): Boolean {
|
||||||
|
return !FluidStack.isSameFluid(this, other)
|
||||||
|
}
|
||||||
|
|
||||||
|
infix fun FluidStack.isSameAs(other: FluidStack): Boolean {
|
||||||
|
return FluidStack.isSameFluidSameComponents(this, other) && amount == other.amount
|
||||||
|
}
|
||||||
|
|
||||||
|
infix fun FluidStack.isNotSameAs(other: FluidStack): Boolean {
|
||||||
|
return !FluidStack.isSameFluidSameComponents(this, other) && amount == other.amount
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user