Update IPatternStorage pattern signature
This commit is contained in:
parent
1e2611fd2e
commit
07d698aeb5
@ -17,7 +17,11 @@ import net.minecraft.world.level.Level
|
|||||||
import net.minecraft.world.level.block.Block
|
import net.minecraft.world.level.block.Block
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryDeviceBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.MatteryDeviceBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.capability.matter.*
|
import ru.dbotthepony.mc.otm.capability.matter.*
|
||||||
|
import ru.dbotthepony.mc.otm.container.stream
|
||||||
import ru.dbotthepony.mc.otm.core.collect.iterator
|
import ru.dbotthepony.mc.otm.core.collect.iterator
|
||||||
|
import ru.dbotthepony.mc.otm.core.filterNotNull
|
||||||
|
import ru.dbotthepony.mc.otm.core.isNotEmpty
|
||||||
|
import ru.dbotthepony.mc.otm.core.orNull
|
||||||
import ru.dbotthepony.mc.otm.graph.matter.SimpleMatterNode
|
import ru.dbotthepony.mc.otm.graph.matter.SimpleMatterNode
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
import java.util.ArrayList
|
import java.util.ArrayList
|
||||||
@ -94,14 +98,12 @@ class PatternStorageBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) :
|
|||||||
return PatternStorageMenu(containerID, inventory, this)
|
return PatternStorageMenu(containerID, inventory, this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override val patterns: Stream<out PatternState> get() {
|
override val patterns: Stream<PatternState> get() {
|
||||||
val streams = ArrayList<Stream<out PatternState>>()
|
return container.stream()
|
||||||
|
.filter { it.isNotEmpty }
|
||||||
for (provider in this.container.iterator(MatteryCapability.PATTERN)) {
|
.map { it.getCapability(MatteryCapability.PATTERN).orNull() }
|
||||||
streams.add(provider.second.patterns)
|
.filterNotNull()
|
||||||
}
|
.flatMap { it.patterns }
|
||||||
|
|
||||||
return Streams.concat(*streams.toTypedArray())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override val patternCapacity: Int get() {
|
override val patternCapacity: Int get() {
|
||||||
|
@ -13,9 +13,9 @@ import kotlin.math.roundToInt
|
|||||||
|
|
||||||
interface IPatternStorage {
|
interface IPatternStorage {
|
||||||
/**
|
/**
|
||||||
* It must return new stream each time
|
* Patterns stored in this pattern storage
|
||||||
*/
|
*/
|
||||||
val patterns: Stream<out PatternState>
|
val patterns: Stream<PatternState>
|
||||||
|
|
||||||
fun findPatterns(item: Item): Collection<PatternState> {
|
fun findPatterns(item: Item): Collection<PatternState> {
|
||||||
return findPatterns { item == it.item }
|
return findPatterns { item == it.item }
|
||||||
|
@ -28,7 +28,7 @@ class CreativePatternItem : Item(Properties().rarity(Rarity.EPIC).stacksTo(1)) {
|
|||||||
private object Patterns : IPatternStorage, ICapabilityProvider {
|
private object Patterns : IPatternStorage, ICapabilityProvider {
|
||||||
private val resolver = LazyOptional.of<IPatternStorage> { this }
|
private val resolver = LazyOptional.of<IPatternStorage> { this }
|
||||||
|
|
||||||
override val patterns: Stream<out PatternState>
|
override val patterns: Stream<PatternState>
|
||||||
get() = MatterManager.map.keys.stream().map { PatternState(UUID(34783464838L, 4463458382L + ForgeRegistries.ITEMS.getID(it)), it, 1.0) }
|
get() = MatterManager.map.keys.stream().map { PatternState(UUID(34783464838L, 4463458382L + ForgeRegistries.ITEMS.getID(it)), it, 1.0) }
|
||||||
|
|
||||||
override val patternCapacity: Int
|
override val patternCapacity: Int
|
||||||
|
@ -16,6 +16,7 @@ import net.minecraft.world.level.Level
|
|||||||
import net.minecraftforge.common.capabilities.Capability
|
import net.minecraftforge.common.capabilities.Capability
|
||||||
import ru.dbotthepony.mc.otm.core.TranslatableComponent
|
import ru.dbotthepony.mc.otm.core.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.capability.matter.*
|
import ru.dbotthepony.mc.otm.capability.matter.*
|
||||||
|
import ru.dbotthepony.mc.otm.core.filterNotNull
|
||||||
import ru.dbotthepony.mc.otm.core.nbt.map
|
import ru.dbotthepony.mc.otm.core.nbt.map
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.stream.Stream
|
import java.util.stream.Stream
|
||||||
@ -108,9 +109,9 @@ class PatternStorageItem : Item {
|
|||||||
return if (cap == MatteryCapability.PATTERN) resolver.cast() else LazyOptional.empty()
|
return if (cap == MatteryCapability.PATTERN) resolver.cast() else LazyOptional.empty()
|
||||||
}
|
}
|
||||||
|
|
||||||
override val patterns: Stream<out PatternState> get() {
|
override val patterns: Stream<PatternState> get() {
|
||||||
return stack.tag?.map("otm_patterns") { it: ListTag ->
|
return stack.tag?.map("otm_patterns") { it: ListTag ->
|
||||||
it.stream().map { PatternState.deserializeNBT(it) }.filter { it != null } as Stream<out PatternState>
|
it.stream().map { PatternState.deserializeNBT(it) }.filterNotNull()
|
||||||
} ?: Stream.empty()
|
} ?: Stream.empty()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user