fix compatibility with OptiFine AA & AF

This commit is contained in:
octarine-noise
2017-07-10 15:14:07 +02:00
parent 2a8a9c2703
commit 0bbf206569
3 changed files with 9 additions and 0 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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) }
}