fix shader mod integration
This commit is contained in:
@@ -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
|
||||||
@@ -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()
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user