Use canreceive/extract
This commit is contained in:
parent
87276e22ed
commit
35921a3a4b
@ -6,6 +6,7 @@ import net.minecraft.world.item.ItemStack
|
||||
import net.minecraftforge.common.ForgeHooks
|
||||
import net.minecraftforge.common.capabilities.ForgeCapabilities
|
||||
import ru.dbotthepony.mc.otm.block.entity.ChemicalGeneratorBlockEntity
|
||||
import ru.dbotthepony.mc.otm.core.ifPresentK
|
||||
import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget
|
||||
import ru.dbotthepony.mc.otm.menu.widget.ProgressGaugeWidget
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
@ -16,20 +17,24 @@ class ChemicalGeneratorMenu @JvmOverloads constructor(id: Int, inv: Inventory, t
|
||||
val container = tile?.container ?: SimpleContainer(3)
|
||||
|
||||
val fuelSlot = object : MatterySlot(container, ChemicalGeneratorBlockEntity.SLOT_INPUT) {
|
||||
override fun mayPlace(p_40231_: ItemStack): Boolean {
|
||||
return ForgeHooks.getBurnTime(p_40231_, null) > 0
|
||||
override fun mayPlace(itemStack: ItemStack): Boolean {
|
||||
return ForgeHooks.getBurnTime(itemStack, null) > 0
|
||||
}
|
||||
}
|
||||
|
||||
val residueSlot = object : MatterySlot(container, ChemicalGeneratorBlockEntity.SLOT_RESIDUE) {
|
||||
override fun mayPlace(p_40231_: ItemStack): Boolean {
|
||||
override fun mayPlace(itemStack: ItemStack): Boolean {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
val batterySlot = object : MatterySlot(container, ChemicalGeneratorBlockEntity.SLOT_BATTERY) {
|
||||
override fun mayPlace(p_40231_: ItemStack): Boolean {
|
||||
return p_40231_.getCapability(ForgeCapabilities.ENERGY).isPresent
|
||||
override fun mayPlace(itemStack: ItemStack): Boolean {
|
||||
itemStack.getCapability(ForgeCapabilities.ENERGY).ifPresentK {
|
||||
return it.canReceive()
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -24,14 +24,14 @@ class EnergyServoMenu @JvmOverloads constructor(
|
||||
val container = tile?.container ?: SimpleContainer(2)
|
||||
|
||||
dischargeSlot = object : MatterySlot(container, EnergyServoBlockEntity.SLOT_DISCHARGE) {
|
||||
override fun mayPlace(p_40231_: ItemStack): Boolean {
|
||||
return super.mayPlace(p_40231_) && (p_40231_.energy?.let { it.extractEnergy(Int.MAX_VALUE, true) > 0 } ?: false)
|
||||
override fun mayPlace(itemStack: ItemStack): Boolean {
|
||||
return super.mayPlace(itemStack) && (itemStack.energy?.canExtract() ?: false)
|
||||
}
|
||||
}
|
||||
|
||||
chargeSlot = object : MatterySlot(container, EnergyServoBlockEntity.SLOT_CHARGE) {
|
||||
override fun mayPlace(p_40231_: ItemStack): Boolean {
|
||||
return super.mayPlace(p_40231_) && (p_40231_.energy?.let { it.receiveEnergy(Int.MAX_VALUE, true) > 0 } ?: false)
|
||||
override fun mayPlace(itemStack: ItemStack): Boolean {
|
||||
return super.mayPlace(itemStack) && (itemStack.energy?.canReceive() ?: false)
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user