diff --git a/src/main/kotlin/mods/betterfoliage/loader/Refs.kt b/src/main/kotlin/mods/betterfoliage/loader/Refs.kt index a5de296..67c208b 100644 --- a/src/main/kotlin/mods/betterfoliage/loader/Refs.kt +++ b/src/main/kotlin/mods/betterfoliage/loader/Refs.kt @@ -102,6 +102,8 @@ object Refs { val CPmatchesBlock = MethodRef(ConnectedProperties, "matchesBlock", ClassRef.boolean, ClassRef.int, ClassRef.int) val CPmatchesIcon = MethodRef(ConnectedProperties, "matchesIcon", ClassRef.boolean, TextureAtlasSprite) + val quadSprite = FieldRef(VertexBuffer, "quadSprite", TextureAtlasSprite) + // ShadersMod val SVertexBuilder = ClassRef("shadersmod.client.SVertexBuilder") val sVertexBuilder = FieldRef(VertexBuffer, "sVertexBuilder", SVertexBuilder) diff --git a/src/main/kotlin/mods/octarinecore/client/render/ModelRenderer.kt b/src/main/kotlin/mods/octarinecore/client/render/ModelRenderer.kt index 98b31ff..7040cfe 100644 --- a/src/main/kotlin/mods/octarinecore/client/render/ModelRenderer.kt +++ b/src/main/kotlin/mods/octarinecore/client/render/ModelRenderer.kt @@ -1,5 +1,6 @@ package mods.octarinecore.client.render +import mods.betterfoliage.loader.Refs import mods.octarinecore.common.* import net.minecraft.client.Minecraft import net.minecraft.client.renderer.VertexBuffer @@ -48,6 +49,10 @@ class ModelRenderer : ShadingContext() { if (quadFilter(quadIdx, quad)) { val drawIcon = icon(this, quadIdx, quad) if (drawIcon != null) { + // let OptiFine know the texture we're using, so it can + // transform UV coordinates to quad-relative + Refs.quadSprite.set(worldRenderer, drawIcon) + quad.verts.forEachIndexed { vertIdx, vert -> temp.init(vert).rotate(rotation).translate(trans) val shader = if (aoEnabled && !forceFlat) vert.aoShader else vert.flatShader diff --git a/src/main/kotlin/mods/octarinecore/metaprog/Reflection.kt b/src/main/kotlin/mods/octarinecore/metaprog/Reflection.kt index debe1fc..98729ec 100644 --- a/src/main/kotlin/mods/octarinecore/metaprog/Reflection.kt +++ b/src/main/kotlin/mods/octarinecore/metaprog/Reflection.kt @@ -164,4 +164,6 @@ class FieldRef(val parentClass: ClassRef, /** Get this static field using reflection. */ fun getStatic() = get(null) + + fun set(receiver: Any?, obj: Any?) { element?.set(receiver, obj) } } \ No newline at end of file