Some recipe backporting
This commit is contained in:
parent
8072a7b135
commit
f16483d7c0
@ -29,6 +29,7 @@ import ru.dbotthepony.mc.otm.container.MatteryContainer
|
|||||||
import ru.dbotthepony.mc.otm.container.ShadowCraftingContainer
|
import ru.dbotthepony.mc.otm.container.ShadowCraftingContainer
|
||||||
import ru.dbotthepony.mc.otm.container.UpgradeContainer
|
import ru.dbotthepony.mc.otm.container.UpgradeContainer
|
||||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||||
|
import ru.dbotthepony.mc.otm.core.value
|
||||||
import ru.dbotthepony.mc.otm.data.DecimalCodec
|
import ru.dbotthepony.mc.otm.data.DecimalCodec
|
||||||
import ru.dbotthepony.mc.otm.data.minRange
|
import ru.dbotthepony.mc.otm.data.minRange
|
||||||
import ru.dbotthepony.mc.otm.graph.matter.MatterNode
|
import ru.dbotthepony.mc.otm.graph.matter.MatterNode
|
||||||
|
@ -49,6 +49,7 @@ import ru.dbotthepony.mc.otm.core.collect.map
|
|||||||
import ru.dbotthepony.mc.otm.core.collect.toList
|
import ru.dbotthepony.mc.otm.core.collect.toList
|
||||||
import ru.dbotthepony.mc.otm.core.isNotEmpty
|
import ru.dbotthepony.mc.otm.core.isNotEmpty
|
||||||
import ru.dbotthepony.mc.otm.core.util.ItemStorageStackSorter
|
import ru.dbotthepony.mc.otm.core.util.ItemStorageStackSorter
|
||||||
|
import ru.dbotthepony.mc.otm.core.value
|
||||||
|
|
||||||
interface IItemMonitorPlayerSettings {
|
interface IItemMonitorPlayerSettings {
|
||||||
var ingredientPriority: ItemMonitorPlayerSettings.IngredientPriority
|
var ingredientPriority: ItemMonitorPlayerSettings.IngredientPriority
|
||||||
|
@ -22,6 +22,7 @@ import ru.dbotthepony.mc.otm.container.UpgradeContainer
|
|||||||
import ru.dbotthepony.mc.otm.container.balance
|
import ru.dbotthepony.mc.otm.container.balance
|
||||||
import ru.dbotthepony.mc.otm.core.collect.filter
|
import ru.dbotthepony.mc.otm.core.collect.filter
|
||||||
import ru.dbotthepony.mc.otm.core.collect.maybe
|
import ru.dbotthepony.mc.otm.core.collect.maybe
|
||||||
|
import ru.dbotthepony.mc.otm.core.value
|
||||||
import ru.dbotthepony.mc.otm.menu.tech.PlatePressMenu
|
import ru.dbotthepony.mc.otm.menu.tech.PlatePressMenu
|
||||||
import ru.dbotthepony.mc.otm.menu.tech.TwinPlatePressMenu
|
import ru.dbotthepony.mc.otm.menu.tech.TwinPlatePressMenu
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
|
@ -32,6 +32,7 @@ import ru.dbotthepony.mc.otm.container.balance
|
|||||||
import ru.dbotthepony.mc.otm.core.collect.filter
|
import ru.dbotthepony.mc.otm.core.collect.filter
|
||||||
import ru.dbotthepony.mc.otm.core.collect.maybe
|
import ru.dbotthepony.mc.otm.core.collect.maybe
|
||||||
import ru.dbotthepony.mc.otm.core.immutableList
|
import ru.dbotthepony.mc.otm.core.immutableList
|
||||||
|
import ru.dbotthepony.mc.otm.core.value
|
||||||
import ru.dbotthepony.mc.otm.menu.tech.PoweredFurnaceMenu
|
import ru.dbotthepony.mc.otm.menu.tech.PoweredFurnaceMenu
|
||||||
import ru.dbotthepony.mc.otm.recipe.MatteryCookingRecipe
|
import ru.dbotthepony.mc.otm.recipe.MatteryCookingRecipe
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
|
@ -18,11 +18,13 @@ import net.minecraft.network.FriendlyByteBuf
|
|||||||
import net.minecraft.network.chat.ComponentContents
|
import net.minecraft.network.chat.ComponentContents
|
||||||
import net.minecraft.network.chat.contents.TranslatableContents
|
import net.minecraft.network.chat.contents.TranslatableContents
|
||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
|
import net.minecraft.world.Container
|
||||||
import net.minecraft.world.entity.Entity
|
import net.minecraft.world.entity.Entity
|
||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.item.Items
|
import net.minecraft.world.item.Items
|
||||||
import net.minecraft.world.item.crafting.Ingredient
|
import net.minecraft.world.item.crafting.Ingredient
|
||||||
|
import net.minecraft.world.item.crafting.Recipe
|
||||||
import net.minecraft.world.level.BlockGetter
|
import net.minecraft.world.level.BlockGetter
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraft.world.level.block.Block
|
import net.minecraft.world.level.block.Block
|
||||||
@ -467,3 +469,5 @@ fun <A, B> lazy2(a: () -> A, b: A.() -> B): Supplier<B> {
|
|||||||
val first = lazy(a)
|
val first = lazy(a)
|
||||||
return Supplier { b.invoke(first.value) }
|
return Supplier { b.invoke(first.value) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline val <R : Recipe<T>, T : Container> R.value get() = this
|
||||||
|
@ -4,7 +4,6 @@ import net.minecraft.world.SimpleContainer
|
|||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
import net.minecraft.world.item.*
|
import net.minecraft.world.item.*
|
||||||
import net.minecraft.world.item.crafting.RecipeHolder
|
|
||||||
import net.minecraft.world.level.material.Fluids
|
import net.minecraft.world.level.material.Fluids
|
||||||
import net.minecraftforge.common.capabilities.ForgeCapabilities
|
import net.minecraftforge.common.capabilities.ForgeCapabilities
|
||||||
import net.minecraftforge.fluids.FluidStack
|
import net.minecraftforge.fluids.FluidStack
|
||||||
@ -19,6 +18,7 @@ import ru.dbotthepony.mc.otm.core.collect.filter
|
|||||||
import ru.dbotthepony.mc.otm.core.collect.maybe
|
import ru.dbotthepony.mc.otm.core.collect.maybe
|
||||||
import ru.dbotthepony.mc.otm.core.isNotEmpty
|
import ru.dbotthepony.mc.otm.core.isNotEmpty
|
||||||
import ru.dbotthepony.mc.otm.core.util.ResourceLocationValueCodec
|
import ru.dbotthepony.mc.otm.core.util.ResourceLocationValueCodec
|
||||||
|
import ru.dbotthepony.mc.otm.core.value
|
||||||
import ru.dbotthepony.mc.otm.menu.MatteryMenu
|
import ru.dbotthepony.mc.otm.menu.MatteryMenu
|
||||||
import ru.dbotthepony.mc.otm.menu.MatterySlot
|
import ru.dbotthepony.mc.otm.menu.MatterySlot
|
||||||
import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback
|
import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback
|
||||||
@ -42,7 +42,7 @@ class PainterMenu(
|
|||||||
|
|
||||||
val inputContainer = MatteryContainer(::rescan, 1)
|
val inputContainer = MatteryContainer(::rescan, 1)
|
||||||
val outputContainer = MatteryContainer(1)
|
val outputContainer = MatteryContainer(1)
|
||||||
private var lastRecipe: RecipeHolder<out AbstractPainterRecipe>? = null
|
private var lastRecipe: AbstractPainterRecipe? = null
|
||||||
var selectedRecipe by mSynchronizer.Field(null, ResourceLocationValueCodec.nullable).also { it.addListener { rescan() } }
|
var selectedRecipe by mSynchronizer.Field(null, ResourceLocationValueCodec.nullable).also { it.addListener { rescan() } }
|
||||||
|
|
||||||
val isBulk = BooleanInputWithFeedback(this, tile?.let { it::isBulk })
|
val isBulk = BooleanInputWithFeedback(this, tile?.let { it::isBulk })
|
||||||
@ -124,7 +124,7 @@ class PainterMenu(
|
|||||||
}
|
}
|
||||||
|
|
||||||
val listeners = ISubscriptable.Impl<Unit>()
|
val listeners = ISubscriptable.Impl<Unit>()
|
||||||
val possibleRecipes = ArrayList<RecipeHolder<out AbstractPainterRecipe>>()
|
val possibleRecipes = ArrayList<AbstractPainterRecipe>()
|
||||||
|
|
||||||
private fun rescan() {
|
private fun rescan() {
|
||||||
possibleRecipes.clear()
|
possibleRecipes.clear()
|
||||||
@ -136,7 +136,7 @@ class PainterMenu(
|
|||||||
if (inputContainer.isEmpty || selectedRecipe == null) {
|
if (inputContainer.isEmpty || selectedRecipe == null) {
|
||||||
outputContainer.clearContent()
|
outputContainer.clearContent()
|
||||||
} else {
|
} else {
|
||||||
val recipe = inventory.player.level().recipeManager.byKey(selectedRecipe!!).get() as RecipeHolder<AbstractPainterRecipe>?
|
val recipe = inventory.player.level().recipeManager.byKey(selectedRecipe!!).get() as AbstractPainterRecipe?
|
||||||
|
|
||||||
if (recipe == null || !recipe.value.canCraft(dyeStoredDirect) || !recipe.value.matches(inputContainer, inventory.player.level())) {
|
if (recipe == null || !recipe.value.canCraft(dyeStoredDirect) || !recipe.value.matches(inputContainer, inventory.player.level())) {
|
||||||
outputContainer.clearContent()
|
outputContainer.clearContent()
|
||||||
|
Loading…
Reference in New Issue
Block a user