From efebf29c64a81b400c4e865c960060eb9ca52746 Mon Sep 17 00:00:00 2001 From: octarine-noise Date: Fri, 1 Apr 2016 18:21:49 +0200 Subject: [PATCH 1/7] bump version to 2.0.7 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 98059ea..8499cf6 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ apply plugin: "net.minecraftforge.gradle.forge" apply plugin: 'kotlin' group = 'com.github.octarine-noise' -version = "2.0.4" +version = "2.0.7" archivesBaseName = rootProject.name + '-MC1.8' buildscript { From a0aad5d60856e1a1c8e92df6b5cc37de93e41d6f Mon Sep 17 00:00:00 2001 From: octarine-noise Date: Tue, 19 Apr 2016 20:20:58 +0200 Subject: [PATCH 2/7] fixed startup crash on null block in blockstate --- .../mods/octarinecore/client/resource/ModelDataInspector.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/mods/octarinecore/client/resource/ModelDataInspector.kt b/src/main/kotlin/mods/octarinecore/client/resource/ModelDataInspector.kt index 70ab715..bbbcd20 100644 --- a/src/main/kotlin/mods/octarinecore/client/resource/ModelDataInspector.kt +++ b/src/main/kotlin/mods/octarinecore/client/resource/ModelDataInspector.kt @@ -42,7 +42,8 @@ abstract class ModelDataInspector { onAfterModelLoad() stateMappings.forEach { mapping -> - stateModels[mapping.value]?.let { processModelDefinition(mapping.key, mapping.value, it) } + if (mapping.key.block != null) + stateModels[mapping.value]?.let { processModelDefinition(mapping.key, mapping.value, it) } } } From befb64b8fc92cb13f444753292665f225d592592 Mon Sep 17 00:00:00 2001 From: octarine-noise Date: Tue, 19 Apr 2016 20:21:17 +0200 Subject: [PATCH 3/7] animated texture support for generated short grass --- .../client/texture/GrassGenerator.kt | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/mods/betterfoliage/client/texture/GrassGenerator.kt b/src/main/kotlin/mods/betterfoliage/client/texture/GrassGenerator.kt index b0d6c6d..cbfd4b4 100644 --- a/src/main/kotlin/mods/betterfoliage/client/texture/GrassGenerator.kt +++ b/src/main/kotlin/mods/betterfoliage/client/texture/GrassGenerator.kt @@ -18,10 +18,25 @@ class GrassGenerator(domain: String) : TextureGenerator(domain) { val baseTexture = resourceManager[target.second]?.loadImage() ?: return null - // draw bottom half of texture val result = BufferedImage(baseTexture.width, baseTexture.height, BufferedImage.TYPE_4BYTE_ABGR) val graphics = result.createGraphics() - graphics.drawImage(baseTexture, 0, 3 * baseTexture.height / 8, null) + + val size = baseTexture.width + val frames = baseTexture.height / size + + // iterate all frames + for (frame in 0 .. frames - 1) { + val baseFrame = baseTexture.getSubimage(0, size * frame, size, size) + val grassFrame = BufferedImage(size, size, BufferedImage.TYPE_4BYTE_ABGR) + + // draw bottom half of texture + grassFrame.createGraphics().apply { + drawImage(baseFrame, 0, 3 * size / 8, null) + } + + // add to animated png + graphics.drawImage(grassFrame, 0, size * frame, null) + } // blend with white if snowed if (isSnowed && target.first == ResourceType.COLOR) { From 57cae957f863881c340a7effbc7b349db5f3a03b Mon Sep 17 00:00:00 2001 From: octarine-noise Date: Tue, 19 Apr 2016 20:23:07 +0200 Subject: [PATCH 4/7] keep round logs on the SOLID rendering layer --- src/main/kotlin/mods/betterfoliage/client/render/RenderLog.kt | 2 ++ .../octarinecore/client/render/AbstractBlockRenderingHandler.kt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/mods/betterfoliage/client/render/RenderLog.kt b/src/main/kotlin/mods/betterfoliage/client/render/RenderLog.kt index 7e2d7cf..c78f1fa 100644 --- a/src/main/kotlin/mods/betterfoliage/client/render/RenderLog.kt +++ b/src/main/kotlin/mods/betterfoliage/client/render/RenderLog.kt @@ -18,6 +18,8 @@ import net.minecraft.util.EnumFacing.* class RenderLog : AbstractRenderColumn(BetterFoliageMod.MOD_ID) { + override val moveToCutout: Boolean get() = false + override fun isEligible(ctx: BlockContext) = Config.enabled && Config.roundLogs.enabled && ctx.cameraDistance < Config.roundLogs.distance && diff --git a/src/main/kotlin/mods/octarinecore/client/render/AbstractBlockRenderingHandler.kt b/src/main/kotlin/mods/octarinecore/client/render/AbstractBlockRenderingHandler.kt index b235964..aff7786 100644 --- a/src/main/kotlin/mods/octarinecore/client/render/AbstractBlockRenderingHandler.kt +++ b/src/main/kotlin/mods/octarinecore/client/render/AbstractBlockRenderingHandler.kt @@ -29,7 +29,7 @@ val modelRenderer by ThreadLocalDelegate { ModelRenderer() } abstract class AbstractBlockRenderingHandler(modId: String) : ResourceHandler(modId) { - val moveToCutout: Boolean get() = true + open val moveToCutout: Boolean get() = true // ============================ // Custom rendering From 2f45abcd7cf0a93b53c0e179aba6672b1db98d0e Mon Sep 17 00:00:00 2001 From: octarine-noise Date: Tue, 19 Apr 2016 20:47:53 +0200 Subject: [PATCH 5/7] bump version to 2.0.9 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 8499cf6..b1b228f 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ apply plugin: "net.minecraftforge.gradle.forge" apply plugin: 'kotlin' group = 'com.github.octarine-noise' -version = "2.0.7" +version = "2.0.9" archivesBaseName = rootProject.name + '-MC1.8' buildscript { From 8fe43469224b6c22a5e70507804b72df16caa72a Mon Sep 17 00:00:00 2001 From: octarine-noise Date: Tue, 19 Apr 2016 20:18:21 +0200 Subject: [PATCH 6/7] fix shallow water coral config option --- src/main/kotlin/mods/betterfoliage/client/render/RenderCoral.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/mods/betterfoliage/client/render/RenderCoral.kt b/src/main/kotlin/mods/betterfoliage/client/render/RenderCoral.kt index 1ed55a5..1966311 100644 --- a/src/main/kotlin/mods/betterfoliage/client/render/RenderCoral.kt +++ b/src/main/kotlin/mods/betterfoliage/client/render/RenderCoral.kt @@ -45,7 +45,7 @@ class RenderCoral : AbstractBlockRenderingHandler(BetterFoliageMod.MOD_ID) { override fun isEligible(ctx: BlockContext) = Config.enabled && Config.coral.enabled && ctx.cameraDistance < Config.coral.distance && - ctx.block(up2).material == Material.water && + (ctx.block(up2).material == Material.water || Config.coral.shallowWater) && ctx.block(up1).material == Material.water && Config.blocks.sand.matchesID(ctx.block) && ctx.biomeId in Config.coral.biomes && From a6cc3549655765b16ce01d2ae529ecf84ea8afda Mon Sep 17 00:00:00 2001 From: octarine-noise Date: Tue, 19 Apr 2016 20:56:28 +0200 Subject: [PATCH 7/7] fix wrong height range used for algae --- .../kotlin/mods/betterfoliage/client/render/RenderAlgae.kt | 2 +- .../kotlin/mods/betterfoliage/client/render/RenderGrass.kt | 6 +++--- .../mods/betterfoliage/client/render/RenderMycelium.kt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/mods/betterfoliage/client/render/RenderAlgae.kt b/src/main/kotlin/mods/betterfoliage/client/render/RenderAlgae.kt index 1d5506a..c99a457 100644 --- a/src/main/kotlin/mods/betterfoliage/client/render/RenderAlgae.kt +++ b/src/main/kotlin/mods/betterfoliage/client/render/RenderAlgae.kt @@ -18,7 +18,7 @@ class RenderAlgae : AbstractBlockRenderingHandler(BetterFoliageMod.MOD_ID) { val noise = simplexNoise() val algaeIcons = iconSet(BetterFoliageMod.LEGACY_DOMAIN, "blocks/better_algae_%d") - val algaeModels = modelSet(64, RenderGrass.grassTopQuads) + val algaeModels = modelSet(64, RenderGrass.grassTopQuads(Config.algae.heightMin, Config.algae.heightMax)) override fun afterStitch() { Client.log(INFO, "Registered ${algaeIcons.num} algae textures") diff --git a/src/main/kotlin/mods/betterfoliage/client/render/RenderGrass.kt b/src/main/kotlin/mods/betterfoliage/client/render/RenderGrass.kt index a197334..8e6f967 100644 --- a/src/main/kotlin/mods/betterfoliage/client/render/RenderGrass.kt +++ b/src/main/kotlin/mods/betterfoliage/client/render/RenderGrass.kt @@ -22,9 +22,9 @@ import org.apache.logging.log4j.Level.INFO class RenderGrass : AbstractBlockRenderingHandler(BetterFoliageMod.MOD_ID) { companion object { - @JvmStatic val grassTopQuads: Model.(Int)->Unit = { modelIdx -> + @JvmStatic fun grassTopQuads(heightMin: Double, heightMax: Double): Model.(Int)->Unit = { modelIdx -> verticalRectangle(x1 = -0.5, z1 = 0.5, x2 = 0.5, z2 = -0.5, yBottom = 0.5, - yTop = 0.5 + random(Config.shortGrass.heightMin, Config.shortGrass.heightMax) + yTop = 0.5 + random(heightMin, heightMax) ) .setAoShader(faceOrientedAuto(overrideFace = UP, corner = cornerAo(Axis.Y))) .setFlatShader(faceOrientedAuto(overrideFace = UP, corner = cornerFlat)) @@ -37,7 +37,7 @@ class RenderGrass : AbstractBlockRenderingHandler(BetterFoliageMod.MOD_ID) { val normalGenIcon = iconStatic(Client.genGrass.generatedResource("minecraft:blocks/tallgrass", "snowed" to false)) val snowedGenIcon = iconStatic(Client.genGrass.generatedResource("minecraft:blocks/tallgrass", "snowed" to true)) - val grassModels = modelSet(64, grassTopQuads) + val grassModels = modelSet(64, grassTopQuads(Config.shortGrass.heightMin, Config.shortGrass.heightMax)) override fun afterStitch() { Client.log(INFO, "Registered ${normalIcons.num} grass textures") diff --git a/src/main/kotlin/mods/betterfoliage/client/render/RenderMycelium.kt b/src/main/kotlin/mods/betterfoliage/client/render/RenderMycelium.kt index 34ed242..b0f6f89 100644 --- a/src/main/kotlin/mods/betterfoliage/client/render/RenderMycelium.kt +++ b/src/main/kotlin/mods/betterfoliage/client/render/RenderMycelium.kt @@ -19,7 +19,7 @@ import org.apache.logging.log4j.Level.INFO class RenderMycelium : AbstractBlockRenderingHandler(BetterFoliageMod.MOD_ID) { val myceliumIcon = iconSet(BetterFoliageMod.LEGACY_DOMAIN, "blocks/better_mycel_%d") - val myceliumModel = modelSet(64, RenderGrass.grassTopQuads) + val myceliumModel = modelSet(64, RenderGrass.grassTopQuads(Config.shortGrass.heightMin, Config.shortGrass.heightMax)) override fun afterStitch() { Client.log(INFO, "Registered ${myceliumIcon.num} mycelium textures")