From 5f6da754f93b9e2cd1dc1a96c40786621555c7be Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Fri, 10 Jan 2025 20:02:25 +0700 Subject: [PATCH] I just need multiblock rendering Have to add a little multiblock rendering Are you okay? - Yeah, i just need to `add a little more multiblock rendering` Rend-er-ing Rend and R in ING is RENDER-MAN Hard Rendy the Bender Render Fender --- .../mc/otm/client/render/MultiblockRendering.kt | 16 ++++++++++++++++ .../mc/otm/core/multiblock/IMultiblockNode.kt | 4 ++++ .../mc/otm/core/multiblock/ShapedMultiblock.kt | 2 ++ .../core/multiblock/ShapedMultiblockBuilder.kt | 2 ++ .../core/multiblock/ShapedMultiblockFactory.kt | 2 ++ 5 files changed, 26 insertions(+) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/MultiblockRendering.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/MultiblockRendering.kt index d80ce6f76..327032fc9 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/MultiblockRendering.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/MultiblockRendering.kt @@ -54,6 +54,22 @@ fun IMultiblockAccess.render( val nodes = currentNodes for (node in nodes.values) { + if (node.displayBlocks.isNotEmpty() && node.status == NodeStatus.VALID) { + continue + } + + // TODO: rendering + // TODO: rendering + // TODO: rendering + // TODO: Rendering + // TODO: Rendering... + // TODO: Rendering!.. + // TODO: Rendering!.. + // TODO: Rendering! + // TODO: Rendering!! + // TODO: RENDERING!! + // TODO: RENDERING!!! + val color = when (node.status) { NodeStatus.UNKNOWN -> UNKNOWN NodeStatus.VALID -> VALID diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/core/multiblock/IMultiblockNode.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/core/multiblock/IMultiblockNode.kt index 68931119e..191c8a578 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/core/multiblock/IMultiblockNode.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/core/multiblock/IMultiblockNode.kt @@ -1,8 +1,12 @@ package ru.dbotthepony.mc.otm.core.multiblock import net.minecraft.core.BlockPos +import net.minecraft.world.level.block.state.BlockState interface IMultiblockNode { val pos: BlockPos val status: NodeStatus + + val displayBlocks: List + get() = listOf() } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/core/multiblock/ShapedMultiblock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/core/multiblock/ShapedMultiblock.kt index 0ad869a0c..c12e8fe8b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/core/multiblock/ShapedMultiblock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/core/multiblock/ShapedMultiblock.kt @@ -85,6 +85,8 @@ class ShapedMultiblock(pos: BlockPos, factory: ShapedMultiblockFactory) : IMulti private var lastSuccessfulPathPredicate = -1 private var lastSuccessfulPathChildren = -1 + override val displayBlocks: List = prototype.displayBlocks.asList() + override var status: NodeStatus = NodeStatus.UNKNOWN private set diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/core/multiblock/ShapedMultiblockBuilder.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/core/multiblock/ShapedMultiblockBuilder.kt index 91868056d..a93484ac9 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/core/multiblock/ShapedMultiblockBuilder.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/core/multiblock/ShapedMultiblockBuilder.kt @@ -51,6 +51,7 @@ class ShapedMultiblockBuilder { val blockStateTags = ObjectArraySet() val blockTags = ObjectArraySet() val blockEntityTags = ObjectArraySet>() + val displayBlocks = HashSet() /** * Marks this node report its block in [ShapedMultiblock.blockStates] method when called with specified [value] @@ -192,6 +193,7 @@ class ShapedMultiblockBuilder { ImmutableSet.copyOf(blockStateTags), ImmutableSet.copyOf(blockTags), ImmutableSet.copyOf(blockEntityTags), + ImmutableSet.copyOf(displayBlocks) ) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/core/multiblock/ShapedMultiblockFactory.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/core/multiblock/ShapedMultiblockFactory.kt index 9e25d9018..556f08292 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/core/multiblock/ShapedMultiblockFactory.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/core/multiblock/ShapedMultiblockFactory.kt @@ -4,6 +4,7 @@ import com.google.common.collect.ImmutableList import com.google.common.collect.ImmutableSet import net.minecraft.core.BlockPos import net.minecraft.world.level.block.Rotation +import net.minecraft.world.level.block.state.BlockState import ru.dbotthepony.mc.otm.core.collect.collect import ru.dbotthepony.mc.otm.core.collect.map import java.util.function.Predicate @@ -17,6 +18,7 @@ class ShapedMultiblockFactory(val north: ImmutableSet, val customChecks: I val blockStateTags: ImmutableSet, val blockTags: ImmutableSet, val blockEntityTags: ImmutableSet>, + val displayBlocks: ImmutableSet, ) /**