From d1480ed3be8552bd191639b7f893920eb6007646 Mon Sep 17 00:00:00 2001 From: octarine-noise Date: Sat, 30 Jan 2016 00:46:15 +0100 Subject: [PATCH] improved Log block axis detection --- .../betterfoliage/client/render/AbstractRenderColumn.kt | 6 +++--- .../kotlin/mods/betterfoliage/client/render/RenderLog.kt | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/mods/betterfoliage/client/render/AbstractRenderColumn.kt b/src/main/kotlin/mods/betterfoliage/client/render/AbstractRenderColumn.kt index 4df4e03..a605633 100644 --- a/src/main/kotlin/mods/betterfoliage/client/render/AbstractRenderColumn.kt +++ b/src/main/kotlin/mods/betterfoliage/client/render/AbstractRenderColumn.kt @@ -116,7 +116,7 @@ abstract class AbstractRenderColumn(modId: String) : AbstractBlockRenderingHandl inline fun continous(q1: QuadrantType, q2: QuadrantType) = q1 == q2 || ((q1 == SQUARE || q1 == INVISIBLE) && (q2 == SQUARE || q2 == INVISIBLE)) - abstract val axisFunc: (IBlockState)->EnumFacing.Axis + abstract val axisFunc: (IBlockState)->EnumFacing.Axis? abstract val blockPredicate: (IBlockState)->Boolean abstract val sideTexture: (ShadingContext, Int, Quad)->TextureAtlasSprite? @@ -131,7 +131,7 @@ abstract class AbstractRenderColumn(modId: String) : AbstractBlockRenderingHandl modelRenderer.updateShading(Int3.zero, allFaces) // check log neighborhood - val logAxis = ctx.blockAxis + val logAxis = ctx.blockAxis ?: return renderWorldBlockBase(ctx, dispatcher, renderer, layer) val baseRotation = rotationFromUp[(logAxis to AxisDirection.POSITIVE).face.ordinal] val upType = ctx.blockType(baseRotation, logAxis, Int3(0, 1, 0)) @@ -314,7 +314,7 @@ abstract class AbstractRenderColumn(modId: String) : AbstractBlockRenderingHandl } /** Get the axis of the block */ - val BlockContext.blockAxis: Axis get() = axisFunc(blockState(Int3.zero)) + val BlockContext.blockAxis: Axis? get() = axisFunc(blockState(Int3.zero)) /** * Get the type of the block at the given offset in a rotated reference frame. diff --git a/src/main/kotlin/mods/betterfoliage/client/render/RenderLog.kt b/src/main/kotlin/mods/betterfoliage/client/render/RenderLog.kt index f0d1bf4..e78d04c 100644 --- a/src/main/kotlin/mods/betterfoliage/client/render/RenderLog.kt +++ b/src/main/kotlin/mods/betterfoliage/client/render/RenderLog.kt @@ -22,11 +22,13 @@ class RenderLog : AbstractRenderColumn(BetterFoliageMod.MOD_ID) { Config.blocks.logs.matchesID(ctx.block) override var axisFunc = { state: IBlockState -> - val axis = tryDefault("none") { state.getValue(BlockLog.LOG_AXIS).toString() } + val axis = tryDefault(null) { state.getValue(BlockLog.LOG_AXIS).toString() } ?: + state.properties.entries.find { it.key.getName().toLowerCase() == "axis" }?.let { it.value.toString() } when (axis) { "x" -> Axis.X + "y" -> Axis.Y "z" -> Axis.Z - else -> Axis.Y + else -> null } }