fix crash with OptiFine 1.9 (pre A series)
bump to 2.0.5
This commit is contained in:
@@ -2,7 +2,7 @@ apply plugin: "net.minecraftforge.gradle.forge"
|
|||||||
apply plugin: 'kotlin'
|
apply plugin: 'kotlin'
|
||||||
|
|
||||||
group = 'com.github.octarine-noise'
|
group = 'com.github.octarine-noise'
|
||||||
version = "2.0.4"
|
version = "2.0.5"
|
||||||
archivesBaseName = rootProject.name + '-MC1.9'
|
archivesBaseName = rootProject.name + '-MC1.9'
|
||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
@@ -32,8 +32,8 @@ dependencies {
|
|||||||
|
|
||||||
}
|
}
|
||||||
minecraft {
|
minecraft {
|
||||||
version = '1.9-12.16.0.1776-1.9'
|
version = '1.9-12.16.0.1810-1.9'
|
||||||
mappings = 'snapshot_20160320'
|
mappings = 'snapshot_20160326'
|
||||||
runDir = 'run'
|
runDir = 'run'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import mods.octarinecore.metaprog.Transformer
|
|||||||
import mods.octarinecore.metaprog.allAvailable
|
import mods.octarinecore.metaprog.allAvailable
|
||||||
import net.minecraftforge.fml.relauncher.FMLLaunchHandler
|
import net.minecraftforge.fml.relauncher.FMLLaunchHandler
|
||||||
import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin
|
import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin
|
||||||
|
import org.objectweb.asm.Opcodes
|
||||||
import org.objectweb.asm.Opcodes.*
|
import org.objectweb.asm.Opcodes.*
|
||||||
|
|
||||||
@IFMLLoadingPlugin.TransformerExclusions(
|
@IFMLLoadingPlugin.TransformerExclusions(
|
||||||
@@ -93,16 +94,16 @@ class BetterFoliageTransformer : Transformer() {
|
|||||||
transformMethod(Refs.rebuildChunk) {
|
transformMethod(Refs.rebuildChunk) {
|
||||||
find(invokeRef(Refs.renderBlock))?.replace {
|
find(invokeRef(Refs.renderBlock))?.replace {
|
||||||
log.info("Applying RenderChunk block render override")
|
log.info("Applying RenderChunk block render override")
|
||||||
varinsn(ALOAD, if (isOptifinePresent) 24 else 21)
|
varinsn(ALOAD, if (isOptifinePresent) 22 else 21)
|
||||||
invokeStatic(Refs.renderWorldBlock)
|
invokeStatic(Refs.renderWorldBlock)
|
||||||
}
|
}
|
||||||
if (isOptifinePresent) {
|
if (isOptifinePresent) {
|
||||||
find(varinsn(ISTORE, 25))?.insertAfter {
|
find(varinsn(ISTORE, 23))?.insertAfter {
|
||||||
log.info("Applying RenderChunk block layer override")
|
log.info("Applying RenderChunk block layer override")
|
||||||
varinsn(ALOAD, 20)
|
varinsn(ALOAD, 19)
|
||||||
varinsn(ALOAD, 24)
|
varinsn(ALOAD, 22)
|
||||||
invokeStatic(Refs.canRenderBlockInLayer)
|
invokeStatic(Refs.canRenderBlockInLayer)
|
||||||
varinsn(ISTORE, 25)
|
varinsn(ISTORE, 23)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
find(invokeRef(Refs.canRenderInLayer))?.replace {
|
find(invokeRef(Refs.canRenderInLayer))?.replace {
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package mods.octarinecore.client.render
|
package mods.octarinecore.client.render
|
||||||
|
|
||||||
|
import mods.betterfoliage.loader.Refs
|
||||||
import mods.octarinecore.common.*
|
import mods.octarinecore.common.*
|
||||||
|
import mods.octarinecore.metaprog.allAvailable
|
||||||
import net.minecraft.client.Minecraft
|
import net.minecraft.client.Minecraft
|
||||||
import net.minecraft.client.renderer.BlockModelRenderer
|
import net.minecraft.client.renderer.BlockModelRenderer
|
||||||
import net.minecraft.util.EnumFacing
|
import net.minecraft.util.EnumFacing
|
||||||
@@ -41,7 +43,11 @@ class AoData() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class AoFaceData(val face: EnumFacing) {
|
class AoFaceData(val face: EnumFacing) {
|
||||||
val ao = BlockModelRenderer(Minecraft.getMinecraft().blockColors).AmbientOcclusionFace()
|
val ao = Refs.AmbientOcclusionFace.element!!.let {
|
||||||
|
if (allAvailable(Refs.OptifineClassTransformer)) it.getDeclaredConstructor().newInstance()
|
||||||
|
else it.getDeclaredConstructor(Refs.BlockModelRenderer.element!!)
|
||||||
|
.newInstance(BlockModelRenderer(Minecraft.getMinecraft().blockColors))
|
||||||
|
} as BlockModelRenderer.AmbientOcclusionFace
|
||||||
val top = faceCorners[face.ordinal].topLeft.first
|
val top = faceCorners[face.ordinal].topLeft.first
|
||||||
val left = faceCorners[face.ordinal].topLeft.second
|
val left = faceCorners[face.ordinal].topLeft.second
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user