diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterReplicatorBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterReplicatorBlockEntity.kt index 1adca7549..74ade4275 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterReplicatorBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterReplicatorBlockEntity.kt @@ -233,18 +233,17 @@ class MatterReplicatorBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : } else { // в тик требуется меньше материи, чем её может хранить репликатор // примем из сети недостающее количество бака материи, или 200 тиков репликации, что меньше - val drain = graph.extractMatter(matter.missingMatter - .coerceAtMost(drainPerTick * DRAIN_MULT) + val drain = graph.extractMatter((drainPerTick * DRAIN_MULT) .coerceAtMost(job.matterPerTick * (job.ticks - workTicks - ticksAdvanced)) - .coerceAtLeast(Decimal.ONE), true) + .coerceAtLeast(Decimal.ONE) + .coerceAtMost(matter.missingMatter), false) if (drain.isZero) { // в сети нет материи return Status.FAILURE_MATTER } - val received = matter.receiveMatter(drain, false) - graph.extractMatter(received, false) + matter.receiveMatter(drain, false) // получили материю, проверяем возможность работы if (matter.extractMatterInner(drainPerTick, true) >= drainPerTick) {