Compare commits

...

2 Commits

4 changed files with 29 additions and 3 deletions

View File

@ -97,13 +97,14 @@ class HoloSignBlockEntity(blockPos: BlockPos, blockState: BlockState) : MatteryB
override fun loadAdditional(nbt: CompoundTag, registry: HolderLookup.Provider) {
super.loadAdditional(nbt, registry)
if (!isLocked)
if (!isLocked) {
signText = truncate(signText)
}
}
companion object {
const val DEFAULT_MAX_NEWLINES = 8
const val DEFAULT_MAX_LINE_LENGTH = 15
const val DEFAULT_MAX_NEWLINES = 10
const val DEFAULT_MAX_LINE_LENGTH = 60
private val NEWLINES = Regex("\r?\n")
fun truncate(input: String): String {

View File

@ -4,6 +4,7 @@ import com.mojang.blaze3d.vertex.PoseStack
import net.minecraft.client.renderer.MultiBufferSource
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider
import net.minecraft.world.phys.AABB
import ru.dbotthepony.mc.otm.block.entity.blackhole.BlackHoleGeneratorBlockEntity
import ru.dbotthepony.mc.otm.client.render.DynamicBufferSource
import ru.dbotthepony.mc.otm.client.render.render
@ -21,4 +22,12 @@ class BlackHoleGeneratorRenderer(private val context: BlockEntityRendererProvide
tile.multiblock?.render(poseStack, DynamicBufferSource.WORLD, tile.blockPos)
}
}
override fun getRenderBoundingBox(blockEntity: BlackHoleGeneratorBlockEntity): AABB {
if (blockEntity.drawBuildingGuide) {
return blockEntity.multiblock?.boundingBox ?: super.getRenderBoundingBox(blockEntity)
}
return super.getRenderBoundingBox(blockEntity)
}
}

View File

@ -7,6 +7,7 @@ import net.minecraft.world.level.Level
import net.minecraft.world.level.block.Block
import net.minecraft.world.level.block.entity.BlockEntity
import net.minecraft.world.level.block.state.BlockState
import net.minecraft.world.phys.AABB
import ru.dbotthepony.mc.otm.core.collect.WeakHashSet
import java.util.*
@ -18,6 +19,8 @@ interface IMultiblockAccess {
val currentDirection: Direction?
val currentNodes: Map<BlockPos, IMultiblockNode>
val boundingBox: AABB?
/**
* Returns block counts present on nodes tagged by [tag]
*/

View File

@ -14,11 +14,14 @@ import net.minecraft.world.level.LevelAccessor
import net.minecraft.world.level.block.Block
import net.minecraft.world.level.block.entity.BlockEntity
import net.minecraft.world.level.block.state.BlockState
import net.minecraft.world.phys.AABB
import ru.dbotthepony.mc.otm.core.AABB
import ru.dbotthepony.mc.otm.core.addAll
import ru.dbotthepony.mc.otm.core.collect.collect
import ru.dbotthepony.mc.otm.core.collect.map
import ru.dbotthepony.mc.otm.core.getBlockEntityNow
import ru.dbotthepony.mc.otm.core.getBlockStateNow
import ru.dbotthepony.mc.otm.core.math.Vector
import ru.dbotthepony.mc.otm.core.math.plus
import ru.dbotthepony.mc.otm.core.registryName
import ru.dbotthepony.mc.otm.network.syncher.IRemoteState
@ -257,6 +260,13 @@ class ShapedMultiblock(pos: BlockPos, factory: ShapedMultiblockFactory) : IMulti
override val currentNodes: Map<BlockPos, IMultiblockNode>
get() = parts
override val boundingBox: AABB by lazy {
AABB(
Vector(parts.minOf { it.pos.x }.toDouble(), parts.minOf { it.pos.y }.toDouble(), parts.minOf { it.pos.z }.toDouble()),
Vector(parts.maxOf { it.pos.x + 1.0 }, parts.maxOf { it.pos.y + 1.0 }, parts.maxOf { it.pos.z + 1.0 }),
)
}
private val tag2BlockEntity = HashMap<BlockEntityTag<*>, BlockEntitySet<*>>()
private val tag2BlockState = HashMap<Any, Reference2IntMap<BlockState>>()
private val tag2Block = HashMap<Any, Reference2IntMap<Block>>()
@ -525,6 +535,9 @@ class ShapedMultiblock(pos: BlockPos, factory: ShapedMultiblockFactory) : IMulti
override val currentDirection: Direction?
get() = if (isValid) activeConfig.currentDirection else null
override val boundingBox: AABB?
get() = if (isValid) activeConfig.boundingBox else null
override val currentNodes: Map<BlockPos, IMultiblockNode>
get() = activeConfig.parts