Fix machines turning into disco ball when one slot is working and other is errored

This commit is contained in:
DBotThePony 2024-01-06 23:10:14 +07:00
parent 4279840a23
commit e5b3d6bf0c
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

@ -151,12 +151,12 @@ abstract class MatteryWorkerBlockEntity<JobType : IJob>(
jobEventLoops.forEach { it.think() }
if (hasWorkerState) {
if (jobEventLoops.any { it.workingTicksAnim > 20 } && !isWorkingState) {
level?.setBlock(blockPos, blockState.setValue(WorkerState.WORKER_STATE, WorkerState.WORKING), Block.UPDATE_CLIENTS)
} else if (jobEventLoops.any { it.errorTicksAnim > 20 } && !isErrorState) {
level?.setBlock(blockPos, blockState.setValue(WorkerState.WORKER_STATE, WorkerState.ERROR), Block.UPDATE_CLIENTS)
} else if (jobEventLoops.all { it.idleTicksAnim > 20 } && !isIdleState) {
level?.setBlock(blockPos, blockState.setValue(WorkerState.WORKER_STATE, WorkerState.IDLE), Block.UPDATE_CLIENTS)
if (jobEventLoops.any { it.workingTicksAnim > 20 }) {
if (!isWorkingState) level?.setBlock(blockPos, blockState.setValue(WorkerState.WORKER_STATE, WorkerState.WORKING), Block.UPDATE_CLIENTS)
} else if (jobEventLoops.any { it.errorTicksAnim > 20 }) {
if (!isErrorState) level?.setBlock(blockPos, blockState.setValue(WorkerState.WORKER_STATE, WorkerState.ERROR), Block.UPDATE_CLIENTS)
} else if (jobEventLoops.all { it.idleTicksAnim > 20 }) {
if (!isIdleState) level?.setBlock(blockPos, blockState.setValue(WorkerState.WORKER_STATE, WorkerState.IDLE), Block.UPDATE_CLIENTS)
}
}
}