Merge remote-tracking branch 'origin/master' into master
This commit is contained in:
commit
12cd0b758c
@ -20,13 +20,7 @@ import ru.dbotthepony.mc.otm.capability.UpgradeType
|
|||||||
import ru.dbotthepony.mc.otm.capability.energy.BlockEnergyStorageImpl
|
import ru.dbotthepony.mc.otm.capability.energy.BlockEnergyStorageImpl
|
||||||
import ru.dbotthepony.mc.otm.capability.energy.ProfiledEnergyStorage
|
import ru.dbotthepony.mc.otm.capability.energy.ProfiledEnergyStorage
|
||||||
import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage
|
import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage
|
||||||
import ru.dbotthepony.mc.otm.capability.matter.IMatterStorage
|
import ru.dbotthepony.mc.otm.capability.matter.*
|
||||||
import ru.dbotthepony.mc.otm.capability.matter.IPatternState
|
|
||||||
import ru.dbotthepony.mc.otm.capability.matter.IReplicationTask
|
|
||||||
import ru.dbotthepony.mc.otm.capability.matter.MatterStorageImpl
|
|
||||||
import ru.dbotthepony.mc.otm.capability.matter.PatternState
|
|
||||||
import ru.dbotthepony.mc.otm.capability.matter.ProfiledMatterStorage
|
|
||||||
import ru.dbotthepony.mc.otm.capability.matter.ReplicationTask
|
|
||||||
import ru.dbotthepony.mc.otm.config.ConciseBalanceValues
|
import ru.dbotthepony.mc.otm.config.ConciseBalanceValues
|
||||||
import ru.dbotthepony.mc.otm.container.HandlerFilter
|
import ru.dbotthepony.mc.otm.container.HandlerFilter
|
||||||
import ru.dbotthepony.mc.otm.container.MatteryContainer
|
import ru.dbotthepony.mc.otm.container.MatteryContainer
|
||||||
@ -39,6 +33,7 @@ import ru.dbotthepony.mc.otm.core.math.set
|
|||||||
import ru.dbotthepony.mc.otm.core.nbt.map
|
import ru.dbotthepony.mc.otm.core.nbt.map
|
||||||
import ru.dbotthepony.mc.otm.core.nbt.set
|
import ru.dbotthepony.mc.otm.core.nbt.set
|
||||||
import ru.dbotthepony.mc.otm.core.util.WriteOnce
|
import ru.dbotthepony.mc.otm.core.util.WriteOnce
|
||||||
|
import ru.dbotthepony.mc.otm.graph.matter.MatterGraph
|
||||||
import ru.dbotthepony.mc.otm.graph.matter.MatterNode
|
import ru.dbotthepony.mc.otm.graph.matter.MatterNode
|
||||||
import ru.dbotthepony.mc.otm.matter.MatterManager
|
import ru.dbotthepony.mc.otm.matter.MatterManager
|
||||||
import ru.dbotthepony.mc.otm.menu.matter.MatterReplicatorMenu
|
import ru.dbotthepony.mc.otm.menu.matter.MatterReplicatorMenu
|
||||||
@ -276,6 +271,19 @@ class MatterReplicatorBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) :
|
|||||||
return JobStatus.SUCCESS
|
return JobStatus.SUCCESS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun tick() {
|
||||||
|
super.tick()
|
||||||
|
|
||||||
|
if (jobEventLoops[0].currentJob == null && matter.storedMatter.isPositive) {
|
||||||
|
val graph = matterNode.graph as MatterGraph? ?: return
|
||||||
|
val received = graph.receiveMatter(matter.storedMatter, false)
|
||||||
|
|
||||||
|
if (!received.isZero) {
|
||||||
|
matter.extractMatter(received, false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val BASE_CONSUMPTION get() = _BASE_CONSUMPTION.get()
|
private val BASE_CONSUMPTION get() = _BASE_CONSUMPTION.get()
|
||||||
private val DRAIN_MULT get() = _DRAIN_MULT.get()
|
private val DRAIN_MULT get() = _DRAIN_MULT.get()
|
||||||
|
@ -471,10 +471,19 @@ object MatterManager {
|
|||||||
|
|
||||||
registrar.register("crafting") {
|
registrar.register("crafting") {
|
||||||
Finder { server, data ->
|
Finder { server, data ->
|
||||||
|
val location = (data["recipe_type"] ?: throw JsonSyntaxException("Missing recipe type")).let { ResourceLocation.tryParse(it.asString) } ?: throw JsonSyntaxException("Invalid recipe type: ${data["recipe_type"]}")
|
||||||
|
|
||||||
|
if (!ForgeRegistries.RECIPE_TYPES.containsKey(location)) {
|
||||||
|
LOGGER.error("Invalid or missing recipe category: $location!")
|
||||||
|
return@Finder Stream.empty()
|
||||||
|
}
|
||||||
|
|
||||||
|
val findRecipeType = ForgeRegistries.RECIPE_TYPES.getValue(location) as RecipeType<Recipe<Container>>? ?: throw ConcurrentModificationException()
|
||||||
|
|
||||||
val allowBacktrack = data["allow_backtrack"]?.asBoolean ?: true
|
val allowBacktrack = data["allow_backtrack"]?.asBoolean ?: true
|
||||||
val ignoreDamageables = data["ignore_damageables"]?.asBoolean ?: false
|
val ignoreDamageables = data["ignore_damageables"]?.asBoolean ?: false
|
||||||
val isCritical = data["is_critical"]?.asBoolean ?: true
|
val isCritical = data["is_critical"]?.asBoolean ?: true
|
||||||
var stream = server.recipeManager.byType(RecipeType.CRAFTING).values.stream().filter { !it.isIncomplete }
|
var stream = server.recipeManager.byType(findRecipeType).values.stream().filter { !it.isIncomplete }
|
||||||
|
|
||||||
if (ignoreDamageables) {
|
if (ignoreDamageables) {
|
||||||
stream = stream.filter { it.ingredients.stream().flatMap { it.items.stream() }.noneMatch { it.isDamageableItem } }
|
stream = stream.filter { it.ingredients.stream().flatMap { it.items.stream() }.noneMatch { it.isDamageableItem } }
|
||||||
|
Loading…
Reference in New Issue
Block a user