44 lines
1.8 KiB
Kotlin
44 lines
1.8 KiB
Kotlin
package mods.betterfoliage.render.block.vanillaold
|
|
|
|
import mods.betterfoliage.BetterFoliageMod
|
|
import mods.betterfoliage.config.Config
|
|
import mods.betterfoliage.render.lighting.cornerAo
|
|
import mods.betterfoliage.render.lighting.cornerFlat
|
|
import mods.betterfoliage.render.lighting.faceOrientedAuto
|
|
import mods.betterfoliage.render.old.CombinedContext
|
|
import mods.betterfoliage.render.old.RenderDecorator
|
|
import mods.betterfoliage.render.toCross
|
|
import mods.betterfoliage.render.xzDisk
|
|
import mods.betterfoliage.resource.Identifier
|
|
import mods.betterfoliage.util.randomD
|
|
import net.minecraft.block.Blocks
|
|
import net.minecraft.util.Direction.Axis
|
|
import net.minecraft.util.Direction.*
|
|
|
|
class RenderNetherrack : RenderDecorator(BetterFoliageMod.MOD_ID, BetterFoliageMod.bus) {
|
|
|
|
val netherrackIcon = spriteSet { idx -> Identifier(BetterFoliageMod.MOD_ID, "blocks/better_netherrack_$idx") }
|
|
val netherrackModel = modelSet(64) { modelIdx ->
|
|
verticalRectangle(x1 = -0.5, z1 = 0.5, x2 = 0.5, z2 = -0.5, yTop = -0.5,
|
|
yBottom = -0.5 - randomD(Config.netherrack.heightMin, Config.netherrack.heightMax))
|
|
.setAoShader(faceOrientedAuto(overrideFace = DOWN, corner = cornerAo(Axis.Y)))
|
|
.setFlatShader(faceOrientedAuto(overrideFace = DOWN, corner = cornerFlat))
|
|
.toCross(UP) { it.move(xzDisk(modelIdx) * Config.shortGrass.hOffset) }.addAll()
|
|
|
|
}
|
|
|
|
override fun isEligible(ctx: CombinedContext) =
|
|
Config.enabled && Config.netherrack.enabled && ctx.state.block == Blocks.NETHERRACK
|
|
|
|
override fun render(ctx: CombinedContext) {
|
|
ctx.render()
|
|
if (!ctx.isCutout) return
|
|
if (ctx.offset(DOWN).isNormalCube) return
|
|
|
|
val rand = ctx.semiRandomArray(2)
|
|
ctx.render(
|
|
netherrackModel[rand[0]],
|
|
icon = { _, qi, _ -> netherrackIcon[rand[qi and 1]] }
|
|
)
|
|
}
|
|
} |