fix shader mod integration

This commit is contained in:
octarine-noise
2019-03-02 12:04:30 +01:00
parent bcc1b04e6b
commit 71f0be0c93
3 changed files with 6 additions and 9 deletions

View File

@@ -1,11 +1,11 @@
group = com.github.octarine-noise group = com.github.octarine-noise
jarName = BetterFoliage-MC1.12 jarName = BetterFoliage-MC1.12
version = 2.2.0 version = 2.2.1
mc_version = 1.12.2 mc_version = 1.12.2
forge_version = 14.23.5.2768 forge_version = 14.23.5.2768
mcp_mappings = stable_39 mcp_mappings = stable_39
kotlin_version = 1.2.0 kotlin_version = 1.2.41
forgelin_version = 1.6.0 forgelin_version = 1.6.0

View File

@@ -19,7 +19,7 @@ import org.apache.logging.log4j.Level.INFO
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
object ShadersModIntegration { object ShadersModIntegration {
@JvmStatic var isPresent = false @JvmStatic var isAvailable = allAvailable(Refs.sVertexBuilder, Refs.pushEntity_state, Refs.pushEntity_num, Refs.popEntity)
@JvmStatic val tallGrassEntityData = entityDataFor(Blocks.TALLGRASS.defaultState.withProperty(BlockTallGrass.TYPE, BlockTallGrass.EnumType.GRASS)) @JvmStatic val tallGrassEntityData = entityDataFor(Blocks.TALLGRASS.defaultState.withProperty(BlockTallGrass.TYPE, BlockTallGrass.EnumType.GRASS))
@JvmStatic val leavesEntityData = entityDataFor(Blocks.LEAVES.defaultState) @JvmStatic val leavesEntityData = entityDataFor(Blocks.LEAVES.defaultState)
@@ -40,15 +40,12 @@ object ShadersModIntegration {
} }
init { init {
if (allAvailable(Refs.sVertexBuilder, Refs.pushEntity_state, Refs.pushEntity_num, Refs.popEntity)) { Client.log(INFO, "ShadersMod integration is ${if (isAvailable) "enabled" else "disabled" }")
Client.log(INFO, "ShadersMod integration enabled")
isPresent = true
}
} }
/** Quads rendered inside this block will use the given block entity data in shader programs. */ /** Quads rendered inside this block will use the given block entity data in shader programs. */
inline fun renderAs(blockEntityData: Long, renderer: BufferBuilder, enabled: Boolean = true, func: ()->Unit) { inline fun renderAs(blockEntityData: Long, renderer: BufferBuilder, enabled: Boolean = true, func: ()->Unit) {
if ((isPresent && enabled)) { if ((isAvailable && enabled)) {
val vertexBuilder = Refs.sVertexBuilder.get(renderer)!! val vertexBuilder = Refs.sVertexBuilder.get(renderer)!!
Refs.pushEntity_num.invoke(vertexBuilder, blockEntityData) Refs.pushEntity_num.invoke(vertexBuilder, blockEntityData)
func() func()

View File

@@ -112,7 +112,7 @@ object Refs {
// ShadersMod // ShadersMod
val SVertexBuilder = ClassRef("shadersmod.client.SVertexBuilder") val SVertexBuilder = ClassRef("net.optifine.shaders.SVertexBuilder")
val sVertexBuilder = FieldRef(BufferBuilder, "sVertexBuilder", SVertexBuilder) val sVertexBuilder = FieldRef(BufferBuilder, "sVertexBuilder", SVertexBuilder)
val pushEntity_state = MethodRef(SVertexBuilder, "pushEntity", ClassRef.void, IBlockState, BlockPos, IBlockAccess, BufferBuilder) val pushEntity_state = MethodRef(SVertexBuilder, "pushEntity", ClassRef.void, IBlockState, BlockPos, IBlockAccess, BufferBuilder)
val pushEntity_num = MethodRef(SVertexBuilder, "pushEntity", ClassRef.void, ClassRef.long) val pushEntity_num = MethodRef(SVertexBuilder, "pushEntity", ClassRef.void, ClassRef.long)