port to MC 1.12
This commit is contained in:
@@ -3,7 +3,7 @@ apply plugin: 'kotlin'
|
|||||||
|
|
||||||
group = 'com.github.octarine-noise'
|
group = 'com.github.octarine-noise'
|
||||||
version = "2.1.6"
|
version = "2.1.6"
|
||||||
archivesBaseName = rootProject.name + '-MC1.11.2'
|
archivesBaseName = rootProject.name + '-MC1.12'
|
||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
ext.kotlin_version = '1.1.1'
|
ext.kotlin_version = '1.1.1'
|
||||||
@@ -19,7 +19,7 @@ buildscript {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath "net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT"
|
classpath "net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT"
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -32,8 +32,8 @@ dependencies {
|
|||||||
shade "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
|
shade "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
|
||||||
}
|
}
|
||||||
minecraft {
|
minecraft {
|
||||||
version = '1.11.2-13.20.0.2232'
|
version = '1.12-14.21.0.2373'
|
||||||
mappings = 'snapshot_20161210'
|
mappings = 'snapshot_20170626'
|
||||||
runDir = 'run'
|
runDir = 'run'
|
||||||
}
|
}
|
||||||
processResources {
|
processResources {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package mods.betterfoliage
|
|||||||
|
|
||||||
import mods.betterfoliage.client.Client
|
import mods.betterfoliage.client.Client
|
||||||
import mods.betterfoliage.client.config.Config
|
import mods.betterfoliage.client.config.Config
|
||||||
|
import mods.betterfoliage.client.isAfterPostInit
|
||||||
import net.minecraftforge.common.config.Configuration
|
import net.minecraftforge.common.config.Configuration
|
||||||
import net.minecraftforge.fml.common.FMLCommonHandler
|
import net.minecraftforge.fml.common.FMLCommonHandler
|
||||||
import net.minecraftforge.fml.common.Mod
|
import net.minecraftforge.fml.common.Mod
|
||||||
@@ -30,19 +31,23 @@ object BetterFoliageMod {
|
|||||||
const val MOD_NAME = "Better Foliage"
|
const val MOD_NAME = "Better Foliage"
|
||||||
const val DOMAIN = "betterfoliage"
|
const val DOMAIN = "betterfoliage"
|
||||||
const val LEGACY_DOMAIN = "bettergrassandleaves"
|
const val LEGACY_DOMAIN = "bettergrassandleaves"
|
||||||
const val MC_VERSIONS = "[1.11.2]"
|
const val MC_VERSIONS = "[1.12]"
|
||||||
const val GUI_FACTORY = "mods.betterfoliage.client.gui.ConfigGuiFactory"
|
const val GUI_FACTORY = "mods.betterfoliage.client.gui.ConfigGuiFactory"
|
||||||
|
|
||||||
lateinit var log: Logger
|
lateinit var log: Logger
|
||||||
lateinit var logDetail: Logger
|
lateinit var logDetail: Logger
|
||||||
|
|
||||||
var config: Configuration? = null
|
var config: Configuration? = null
|
||||||
var isAfterPostInit = false
|
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
@Mod.InstanceFactory
|
@Mod.InstanceFactory
|
||||||
// the fun never stops with the fun factory! :)
|
// the fun never stops with the fun factory! :)
|
||||||
fun factory() = this
|
fun factory(): BetterFoliageMod {
|
||||||
|
// inject pack into default list at construction time to get domains enumerated
|
||||||
|
// there's no 2nd resource reload pass anymore
|
||||||
|
Client.generatorPack.inject()
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
@Mod.EventHandler
|
@Mod.EventHandler
|
||||||
fun preInit(event: FMLPreInitializationEvent) {
|
fun preInit(event: FMLPreInitializationEvent) {
|
||||||
@@ -61,12 +66,10 @@ object BetterFoliageMod {
|
|||||||
PrintStream(logDetailFile)
|
PrintStream(logDetailFile)
|
||||||
)
|
)
|
||||||
config = Configuration(event.suggestedConfigurationFile, null, true)
|
config = Configuration(event.suggestedConfigurationFile, null, true)
|
||||||
}
|
|
||||||
|
|
||||||
@Mod.EventHandler
|
|
||||||
fun postInit(event: FMLPostInitializationEvent) {
|
|
||||||
if (FMLCommonHandler.instance().effectiveSide == Side.CLIENT) {
|
if (FMLCommonHandler.instance().effectiveSide == Side.CLIENT) {
|
||||||
Config.attach(config!!)
|
Config.attach(config!!)
|
||||||
|
Client.init()
|
||||||
Client.log(INFO, "BetterFoliage initialized")
|
Client.log(INFO, "BetterFoliage initialized")
|
||||||
isAfterPostInit = true
|
isAfterPostInit = true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import mods.betterfoliage.client.render.*
|
|||||||
import mods.betterfoliage.client.texture.*
|
import mods.betterfoliage.client.texture.*
|
||||||
import mods.octarinecore.client.KeyHandler
|
import mods.octarinecore.client.KeyHandler
|
||||||
import mods.octarinecore.client.gui.textComponent
|
import mods.octarinecore.client.gui.textComponent
|
||||||
|
import mods.octarinecore.client.render.AbstractBlockRenderingHandler
|
||||||
import mods.octarinecore.client.resource.CenteringTextureGenerator
|
import mods.octarinecore.client.resource.CenteringTextureGenerator
|
||||||
import mods.octarinecore.client.resource.GeneratorPack
|
import mods.octarinecore.client.resource.GeneratorPack
|
||||||
import net.minecraft.block.Block
|
import net.minecraft.block.Block
|
||||||
@@ -31,12 +32,10 @@ import org.apache.logging.log4j.Level
|
|||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
object Client {
|
object Client {
|
||||||
|
|
||||||
val configKey = KeyHandler(BetterFoliageMod.MOD_NAME, 66, "key.betterfoliage.gui") {
|
lateinit var renderers: List<AbstractBlockRenderingHandler>
|
||||||
FMLClientHandler.instance().showGuiScreen(
|
val suppressRenderErrors = mutableSetOf<IBlockState>()
|
||||||
ConfigGuiFactory.ConfigGuiBetterFoliage(Minecraft.getMinecraft().currentScreen)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// texture generation stuff
|
||||||
val genGrass = GrassGenerator("bf_gen_grass")
|
val genGrass = GrassGenerator("bf_gen_grass")
|
||||||
val genLeaves = LeafGenerator("bf_gen_leaves")
|
val genLeaves = LeafGenerator("bf_gen_leaves")
|
||||||
val genReeds = CenteringTextureGenerator("bf_gen_reeds", 1, 2)
|
val genReeds = CenteringTextureGenerator("bf_gen_reeds", 1, 2)
|
||||||
@@ -48,9 +47,9 @@ object Client {
|
|||||||
genReeds
|
genReeds
|
||||||
)
|
)
|
||||||
|
|
||||||
val logRenderer = RenderLog()
|
fun init() {
|
||||||
|
// init renderers
|
||||||
val renderers = listOf(
|
renderers = listOf(
|
||||||
RenderGrass(),
|
RenderGrass(),
|
||||||
RenderMycelium(),
|
RenderMycelium(),
|
||||||
RenderLeaves(),
|
RenderLeaves(),
|
||||||
@@ -59,12 +58,13 @@ object Client {
|
|||||||
RenderReeds(),
|
RenderReeds(),
|
||||||
RenderAlgae(),
|
RenderAlgae(),
|
||||||
RenderCoral(),
|
RenderCoral(),
|
||||||
logRenderer,
|
RenderLog(),
|
||||||
RenderNetherrack(),
|
RenderNetherrack(),
|
||||||
RenderConnectedGrass(),
|
RenderConnectedGrass(),
|
||||||
RenderConnectedGrassLog()
|
RenderConnectedGrassLog()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// init singletons
|
||||||
val singletons = listOf(
|
val singletons = listOf(
|
||||||
LeafRegistry,
|
LeafRegistry,
|
||||||
GrassRegistry,
|
GrassRegistry,
|
||||||
@@ -78,7 +78,14 @@ object Client {
|
|||||||
StandardLogSupport // add _after_ all other log registries
|
StandardLogSupport // add _after_ all other log registries
|
||||||
)
|
)
|
||||||
|
|
||||||
val suppressRenderErrors = mutableSetOf<IBlockState>()
|
// init config hotkey
|
||||||
|
val configKey = KeyHandler(BetterFoliageMod.MOD_NAME, 66, "key.betterfoliage.gui") {
|
||||||
|
FMLClientHandler.instance().showGuiScreen(
|
||||||
|
ConfigGuiFactory.createBFConfigGui(Minecraft.getMinecraft().currentScreen)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
fun log(level: Level, msg: String) {
|
fun log(level: Level, msg: String) {
|
||||||
BetterFoliageMod.log.log(level, "[BetterFoliage] $msg")
|
BetterFoliageMod.log.log(level, "[BetterFoliage] $msg")
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import mods.octarinecore.common.plus
|
|||||||
import net.minecraft.block.Block
|
import net.minecraft.block.Block
|
||||||
import net.minecraft.block.state.IBlockState
|
import net.minecraft.block.state.IBlockState
|
||||||
import net.minecraft.client.renderer.BlockRendererDispatcher
|
import net.minecraft.client.renderer.BlockRendererDispatcher
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.init.Blocks
|
import net.minecraft.init.Blocks
|
||||||
import net.minecraft.util.BlockRenderLayer
|
import net.minecraft.util.BlockRenderLayer
|
||||||
import net.minecraft.util.BlockRenderLayer.CUTOUT
|
import net.minecraft.util.BlockRenderLayer.CUTOUT
|
||||||
@@ -25,13 +25,15 @@ import net.minecraftforge.common.MinecraftForge
|
|||||||
import net.minecraftforge.fml.relauncher.Side
|
import net.minecraftforge.fml.relauncher.Side
|
||||||
import net.minecraftforge.fml.relauncher.SideOnly
|
import net.minecraftforge.fml.relauncher.SideOnly
|
||||||
|
|
||||||
|
var isAfterPostInit = false
|
||||||
|
|
||||||
fun doesSideBlockRenderingOverride(original: Boolean, blockAccess: IBlockAccess, pos: BlockPos, side: EnumFacing): Boolean {
|
fun doesSideBlockRenderingOverride(original: Boolean, blockAccess: IBlockAccess, pos: BlockPos, side: EnumFacing): Boolean {
|
||||||
return original && !(Config.enabled && Config.roundLogs.enabled && Config.blocks.logClasses.matchesClass(blockAccess.getBlockState(pos).block));
|
return original && !(Config.enabled && Config.roundLogs.enabled && Config.blocks.logClasses.matchesClass(blockAccess.getBlockState(pos).block));
|
||||||
}
|
}
|
||||||
|
|
||||||
fun isOpaqueCubeOverride(original: Boolean, state: IBlockState): Boolean {
|
fun isOpaqueCubeOverride(original: Boolean, state: IBlockState): Boolean {
|
||||||
// caution: blocks are initialized and the method called during startup
|
// caution: blocks are initialized and the method called during startup
|
||||||
if (!BetterFoliageMod.isAfterPostInit) return original
|
if (!isAfterPostInit) return original
|
||||||
return original && !(Config.enabled && Config.roundLogs.enabled && Config.blocks.logClasses.matchesClass(state.block))
|
return original && !(Config.enabled && Config.roundLogs.enabled && Config.blocks.logClasses.matchesClass(state.block))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,7 +72,7 @@ fun renderWorldBlock(dispatcher: BlockRendererDispatcher,
|
|||||||
state: IBlockState,
|
state: IBlockState,
|
||||||
pos: BlockPos,
|
pos: BlockPos,
|
||||||
blockAccess: IBlockAccess,
|
blockAccess: IBlockAccess,
|
||||||
worldRenderer: VertexBuffer,
|
worldRenderer: BufferBuilder,
|
||||||
layer: BlockRenderLayer
|
layer: BlockRenderLayer
|
||||||
): Boolean {
|
): Boolean {
|
||||||
blockContext.let { ctx ->
|
blockContext.let { ctx ->
|
||||||
|
|||||||
@@ -9,12 +9,14 @@ import net.minecraftforge.fml.client.config.GuiConfig
|
|||||||
|
|
||||||
class ConfigGuiFactory : IModGuiFactory {
|
class ConfigGuiFactory : IModGuiFactory {
|
||||||
|
|
||||||
override fun mainConfigGuiClass() = ConfigGuiBetterFoliage::class.java
|
|
||||||
override fun runtimeGuiCategories() = hashSetOf<IModGuiFactory.RuntimeOptionCategoryElement>()
|
|
||||||
override fun getHandlerFor(element: IModGuiFactory.RuntimeOptionCategoryElement?) = null
|
|
||||||
override fun initialize(minecraftInstance: Minecraft?) { }
|
override fun initialize(minecraftInstance: Minecraft?) { }
|
||||||
|
override fun hasConfigGui() = true
|
||||||
|
override fun runtimeGuiCategories() = hashSetOf<IModGuiFactory.RuntimeOptionCategoryElement>()
|
||||||
|
override fun createConfigGui(parentScreen: GuiScreen?) = createBFConfigGui(parentScreen)
|
||||||
|
|
||||||
class ConfigGuiBetterFoliage(parentScreen: GuiScreen?) : GuiConfig(
|
companion object {
|
||||||
|
@JvmStatic
|
||||||
|
fun createBFConfigGui(parentScreen: GuiScreen?) = GuiConfig(
|
||||||
parentScreen,
|
parentScreen,
|
||||||
Config.rootGuiElements,
|
Config.rootGuiElements,
|
||||||
BetterFoliageMod.MOD_ID,
|
BetterFoliageMod.MOD_ID,
|
||||||
@@ -23,4 +25,5 @@ class ConfigGuiFactory : IModGuiFactory {
|
|||||||
false,
|
false,
|
||||||
BetterFoliageMod.MOD_NAME
|
BetterFoliageMod.MOD_NAME
|
||||||
)
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import mods.octarinecore.metaprog.allAvailable
|
|||||||
import net.minecraft.block.Block
|
import net.minecraft.block.Block
|
||||||
import net.minecraft.block.BlockTallGrass
|
import net.minecraft.block.BlockTallGrass
|
||||||
import net.minecraft.block.state.IBlockState
|
import net.minecraft.block.state.IBlockState
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.init.Blocks
|
import net.minecraft.init.Blocks
|
||||||
import net.minecraftforge.fml.relauncher.Side
|
import net.minecraftforge.fml.relauncher.Side
|
||||||
import net.minecraftforge.fml.relauncher.SideOnly
|
import net.minecraftforge.fml.relauncher.SideOnly
|
||||||
@@ -47,7 +47,7 @@ object ShadersModIntegration {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** 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: VertexBuffer, enabled: Boolean = true, func: ()->Unit) {
|
inline fun renderAs(blockEntityData: Long, renderer: BufferBuilder, enabled: Boolean = true, func: ()->Unit) {
|
||||||
if ((isPresent && enabled)) {
|
if ((isPresent && 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)
|
||||||
@@ -59,14 +59,14 @@ object ShadersModIntegration {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** 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(state: IBlockState, renderer: VertexBuffer, enabled: Boolean = true, func: ()->Unit) =
|
inline fun renderAs(state: IBlockState, renderer: BufferBuilder, enabled: Boolean = true, func: ()->Unit) =
|
||||||
renderAs(entityDataFor(state), renderer, enabled, func)
|
renderAs(entityDataFor(state), renderer, enabled, func)
|
||||||
|
|
||||||
/** Quads rendered inside this block will behave as tallgrass blocks in shader programs. */
|
/** Quads rendered inside this block will behave as tallgrass blocks in shader programs. */
|
||||||
inline fun grass(renderer: VertexBuffer, enabled: Boolean = true, func: ()->Unit) =
|
inline fun grass(renderer: BufferBuilder, enabled: Boolean = true, func: ()->Unit) =
|
||||||
renderAs(tallGrassEntityData, renderer, enabled, func)
|
renderAs(tallGrassEntityData, renderer, enabled, func)
|
||||||
|
|
||||||
/** Quads rendered inside this block will behave as leaf blocks in shader programs. */
|
/** Quads rendered inside this block will behave as leaf blocks in shader programs. */
|
||||||
inline fun leaves(renderer: VertexBuffer, enabled: Boolean = true, func: ()->Unit) =
|
inline fun leaves(renderer: BufferBuilder, enabled: Boolean = true, func: ()->Unit) =
|
||||||
renderAs(leavesEntityData, renderer, enabled, func)
|
renderAs(leavesEntityData, renderer, enabled, func)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,10 +10,9 @@ import mods.octarinecore.client.render.*
|
|||||||
import mods.octarinecore.common.*
|
import mods.octarinecore.common.*
|
||||||
import net.minecraft.block.state.IBlockState
|
import net.minecraft.block.state.IBlockState
|
||||||
import net.minecraft.client.renderer.BlockRendererDispatcher
|
import net.minecraft.client.renderer.BlockRendererDispatcher
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite
|
import net.minecraft.client.renderer.texture.TextureAtlasSprite
|
||||||
import net.minecraft.util.BlockRenderLayer
|
import net.minecraft.util.BlockRenderLayer
|
||||||
import net.minecraft.util.EnumFacing
|
|
||||||
import net.minecraft.util.EnumFacing.*
|
import net.minecraft.util.EnumFacing.*
|
||||||
import net.minecraftforge.fml.relauncher.Side
|
import net.minecraftforge.fml.relauncher.Side
|
||||||
import net.minecraftforge.fml.relauncher.SideOnly
|
import net.minecraftforge.fml.relauncher.SideOnly
|
||||||
@@ -138,7 +137,7 @@ abstract class AbstractRenderColumn(modId: String) : AbstractBlockRenderingHandl
|
|||||||
abstract val registry: IColumnRegistry
|
abstract val registry: IColumnRegistry
|
||||||
|
|
||||||
@Suppress("NON_EXHAUSTIVE_WHEN")
|
@Suppress("NON_EXHAUSTIVE_WHEN")
|
||||||
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: VertexBuffer, layer: BlockRenderLayer): Boolean {
|
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: BufferBuilder, layer: BlockRenderLayer): Boolean {
|
||||||
if (ctx.isSurroundedBy(surroundPredicate) ) return false
|
if (ctx.isSurroundedBy(surroundPredicate) ) return false
|
||||||
|
|
||||||
val columnTextures = registry[ctx.blockState(Int3.zero)]
|
val columnTextures = registry[ctx.blockState(Int3.zero)]
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package mods.betterfoliage.client.render
|
|||||||
|
|
||||||
import mods.betterfoliage.client.config.Config
|
import mods.betterfoliage.client.config.Config
|
||||||
import mods.betterfoliage.client.texture.LeafRegistry
|
import mods.betterfoliage.client.texture.LeafRegistry
|
||||||
import mods.betterfoliage.client.texture.defaultLeafColor
|
|
||||||
import mods.octarinecore.PI2
|
import mods.octarinecore.PI2
|
||||||
import mods.octarinecore.client.render.AbstractEntityFX
|
import mods.octarinecore.client.render.AbstractEntityFX
|
||||||
import mods.octarinecore.client.render.HSB
|
import mods.octarinecore.client.render.HSB
|
||||||
@@ -10,7 +9,7 @@ import mods.octarinecore.common.Double3
|
|||||||
import mods.octarinecore.minmax
|
import mods.octarinecore.minmax
|
||||||
import mods.octarinecore.random
|
import mods.octarinecore.random
|
||||||
import net.minecraft.client.Minecraft
|
import net.minecraft.client.Minecraft
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.util.EnumFacing.DOWN
|
import net.minecraft.util.EnumFacing.DOWN
|
||||||
import net.minecraft.util.math.BlockPos
|
import net.minecraft.util.math.BlockPos
|
||||||
import net.minecraft.util.math.MathHelper
|
import net.minecraft.util.math.MathHelper
|
||||||
@@ -74,7 +73,7 @@ AbstractEntityFX(world, pos.x.toDouble() + 0.5, pos.y.toDouble(), pos.z.toDouble
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun render(worldRenderer: VertexBuffer, partialTickTime: Float) {
|
override fun render(worldRenderer: BufferBuilder, partialTickTime: Float) {
|
||||||
if (Config.fallingLeaves.opacityHack) GL11.glDepthMask(true)
|
if (Config.fallingLeaves.opacityHack) GL11.glDepthMask(true)
|
||||||
renderParticleQuad(worldRenderer, partialTickTime, rotation = particleRot, isMirrored = isMirrored)
|
renderParticleQuad(worldRenderer, partialTickTime, rotation = particleRot, isMirrored = isMirrored)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import mods.octarinecore.client.render.AbstractEntityFX
|
|||||||
import mods.octarinecore.client.resource.ResourceHandler
|
import mods.octarinecore.client.resource.ResourceHandler
|
||||||
import mods.octarinecore.common.Double3
|
import mods.octarinecore.common.Double3
|
||||||
import mods.octarinecore.forEachPairIndexed
|
import mods.octarinecore.forEachPairIndexed
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.util.math.BlockPos
|
import net.minecraft.util.math.BlockPos
|
||||||
import net.minecraft.util.math.MathHelper
|
import net.minecraft.util.math.MathHelper
|
||||||
import net.minecraft.world.World
|
import net.minecraft.world.World
|
||||||
@@ -42,7 +42,7 @@ AbstractEntityFX(world, pos.x.toDouble() + 0.5, pos.y.toDouble() + 1.0, pos.z.to
|
|||||||
if (!Config.enabled) setExpired()
|
if (!Config.enabled) setExpired()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun render(worldRenderer: VertexBuffer, partialTickTime: Float) {
|
override fun render(worldRenderer: BufferBuilder, partialTickTime: Float) {
|
||||||
var alpha = Config.risingSoul.opacity
|
var alpha = Config.risingSoul.opacity
|
||||||
if (particleAge > particleMaxAge - 40) alpha *= (particleMaxAge - particleAge) / 40.0f
|
if (particleAge > particleMaxAge - 40) alpha *= (particleMaxAge - particleAge) / 40.0f
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import mods.octarinecore.common.Int3
|
|||||||
import mods.octarinecore.common.Rotation
|
import mods.octarinecore.common.Rotation
|
||||||
import net.minecraft.block.material.Material
|
import net.minecraft.block.material.Material
|
||||||
import net.minecraft.client.renderer.BlockRendererDispatcher
|
import net.minecraft.client.renderer.BlockRendererDispatcher
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.util.BlockRenderLayer
|
import net.minecraft.util.BlockRenderLayer
|
||||||
import net.minecraftforge.fml.relauncher.Side
|
import net.minecraftforge.fml.relauncher.Side
|
||||||
import net.minecraftforge.fml.relauncher.SideOnly
|
import net.minecraftforge.fml.relauncher.SideOnly
|
||||||
@@ -36,7 +36,7 @@ class RenderAlgae : AbstractBlockRenderingHandler(BetterFoliageMod.MOD_ID) {
|
|||||||
ctx.biomeId in Config.algae.biomes &&
|
ctx.biomeId in Config.algae.biomes &&
|
||||||
noise[ctx.pos] < Config.algae.population
|
noise[ctx.pos] < Config.algae.population
|
||||||
|
|
||||||
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: VertexBuffer, layer: BlockRenderLayer): Boolean {
|
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: BufferBuilder, layer: BlockRenderLayer): Boolean {
|
||||||
val baseRender = renderWorldBlockBase(ctx, dispatcher, renderer, layer)
|
val baseRender = renderWorldBlockBase(ctx, dispatcher, renderer, layer)
|
||||||
if (!layer.isCutout) return baseRender
|
if (!layer.isCutout) return baseRender
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import mods.octarinecore.common.config.modelTextures
|
|||||||
import net.minecraft.block.BlockCactus
|
import net.minecraft.block.BlockCactus
|
||||||
import net.minecraft.block.state.IBlockState
|
import net.minecraft.block.state.IBlockState
|
||||||
import net.minecraft.client.renderer.BlockRendererDispatcher
|
import net.minecraft.client.renderer.BlockRendererDispatcher
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.client.renderer.texture.TextureMap
|
import net.minecraft.client.renderer.texture.TextureMap
|
||||||
import net.minecraft.util.BlockRenderLayer
|
import net.minecraft.util.BlockRenderLayer
|
||||||
import net.minecraft.util.EnumFacing.*
|
import net.minecraft.util.EnumFacing.*
|
||||||
@@ -92,7 +92,7 @@ class RenderCactus : AbstractBlockRenderingHandler(BetterFoliageMod.MOD_ID) {
|
|||||||
ctx.cameraDistance < Config.cactus.distance &&
|
ctx.cameraDistance < Config.cactus.distance &&
|
||||||
Config.blocks.cactus.matchesClass(ctx.block)
|
Config.blocks.cactus.matchesClass(ctx.block)
|
||||||
|
|
||||||
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: VertexBuffer, layer: BlockRenderLayer): Boolean {
|
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: BufferBuilder, layer: BlockRenderLayer): Boolean {
|
||||||
// render the whole block on the cutout layer
|
// render the whole block on the cutout layer
|
||||||
if (!layer.isCutout) return false
|
if (!layer.isCutout) return false
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import mods.octarinecore.common.Int3
|
|||||||
import mods.octarinecore.common.forgeDirsHorizontal
|
import mods.octarinecore.common.forgeDirsHorizontal
|
||||||
import mods.octarinecore.common.offset
|
import mods.octarinecore.common.offset
|
||||||
import net.minecraft.client.renderer.BlockRendererDispatcher
|
import net.minecraft.client.renderer.BlockRendererDispatcher
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.util.BlockRenderLayer
|
import net.minecraft.util.BlockRenderLayer
|
||||||
import net.minecraftforge.fml.relauncher.Side
|
import net.minecraftforge.fml.relauncher.Side
|
||||||
import net.minecraftforge.fml.relauncher.SideOnly
|
import net.minecraftforge.fml.relauncher.SideOnly
|
||||||
@@ -22,7 +22,7 @@ class RenderConnectedGrass : AbstractBlockRenderingHandler(BetterFoliageMod.MOD_
|
|||||||
Config.blocks.grassClasses.matchesClass(ctx.block(up1)) &&
|
Config.blocks.grassClasses.matchesClass(ctx.block(up1)) &&
|
||||||
(Config.connectedGrass.snowEnabled || !ctx.blockState(up2).isSnow)
|
(Config.connectedGrass.snowEnabled || !ctx.blockState(up2).isSnow)
|
||||||
|
|
||||||
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: VertexBuffer, layer: BlockRenderLayer): Boolean {
|
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: BufferBuilder, layer: BlockRenderLayer): Boolean {
|
||||||
// if the block sides are not visible anyway, render normally
|
// if the block sides are not visible anyway, render normally
|
||||||
if (forgeDirsHorizontal.all { ctx.blockState(it.offset).isOpaqueCube }) return renderWorldBlockBase(ctx, dispatcher, renderer, layer)
|
if (forgeDirsHorizontal.all { ctx.blockState(it.offset).isOpaqueCube }) return renderWorldBlockBase(ctx, dispatcher, renderer, layer)
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import mods.octarinecore.client.render.withOffset
|
|||||||
import mods.octarinecore.common.Int3
|
import mods.octarinecore.common.Int3
|
||||||
import mods.octarinecore.common.offset
|
import mods.octarinecore.common.offset
|
||||||
import net.minecraft.client.renderer.BlockRendererDispatcher
|
import net.minecraft.client.renderer.BlockRendererDispatcher
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.util.BlockRenderLayer
|
import net.minecraft.util.BlockRenderLayer
|
||||||
import net.minecraft.util.EnumFacing.*
|
import net.minecraft.util.EnumFacing.*
|
||||||
import net.minecraftforge.fml.relauncher.Side
|
import net.minecraftforge.fml.relauncher.Side
|
||||||
@@ -24,7 +24,7 @@ class RenderConnectedGrassLog : AbstractBlockRenderingHandler(BetterFoliageMod.M
|
|||||||
Config.blocks.dirt.matchesClass(ctx.block) &&
|
Config.blocks.dirt.matchesClass(ctx.block) &&
|
||||||
Config.blocks.logClasses.matchesClass(ctx.block(up1))
|
Config.blocks.logClasses.matchesClass(ctx.block(up1))
|
||||||
|
|
||||||
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: VertexBuffer, layer: BlockRenderLayer): Boolean {
|
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: BufferBuilder, layer: BlockRenderLayer): Boolean {
|
||||||
val grassDir = grassCheckDirs.find {
|
val grassDir = grassCheckDirs.find {
|
||||||
Config.blocks.grassClasses.matchesClass(ctx.block(it.offset))
|
Config.blocks.grassClasses.matchesClass(ctx.block(it.offset))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import mods.octarinecore.common.forgeDirs
|
|||||||
import mods.octarinecore.random
|
import mods.octarinecore.random
|
||||||
import net.minecraft.block.material.Material
|
import net.minecraft.block.material.Material
|
||||||
import net.minecraft.client.renderer.BlockRendererDispatcher
|
import net.minecraft.client.renderer.BlockRendererDispatcher
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.util.BlockRenderLayer
|
import net.minecraft.util.BlockRenderLayer
|
||||||
import net.minecraft.util.EnumFacing.Axis
|
import net.minecraft.util.EnumFacing.Axis
|
||||||
import net.minecraft.util.EnumFacing.UP
|
import net.minecraft.util.EnumFacing.UP
|
||||||
@@ -54,7 +54,7 @@ class RenderCoral : AbstractBlockRenderingHandler(BetterFoliageMod.MOD_ID) {
|
|||||||
ctx.biomeId in Config.coral.biomes &&
|
ctx.biomeId in Config.coral.biomes &&
|
||||||
noise[ctx.pos] < Config.coral.population
|
noise[ctx.pos] < Config.coral.population
|
||||||
|
|
||||||
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: VertexBuffer, layer: BlockRenderLayer): Boolean {
|
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: BufferBuilder, layer: BlockRenderLayer): Boolean {
|
||||||
val baseRender = renderWorldBlockBase(ctx, dispatcher, renderer, layer)
|
val baseRender = renderWorldBlockBase(ctx, dispatcher, renderer, layer)
|
||||||
if (!layer.isCutout) return baseRender
|
if (!layer.isCutout) return baseRender
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import mods.octarinecore.client.render.*
|
|||||||
import mods.octarinecore.common.*
|
import mods.octarinecore.common.*
|
||||||
import mods.octarinecore.random
|
import mods.octarinecore.random
|
||||||
import net.minecraft.client.renderer.BlockRendererDispatcher
|
import net.minecraft.client.renderer.BlockRendererDispatcher
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.util.BlockRenderLayer
|
import net.minecraft.util.BlockRenderLayer
|
||||||
import net.minecraft.util.EnumFacing.Axis
|
import net.minecraft.util.EnumFacing.Axis
|
||||||
import net.minecraft.util.EnumFacing.UP
|
import net.minecraft.util.EnumFacing.UP
|
||||||
@@ -51,7 +51,7 @@ class RenderGrass : AbstractBlockRenderingHandler(BetterFoliageMod.MOD_ID) {
|
|||||||
(Config.shortGrass.grassEnabled || Config.connectedGrass.enabled) &&
|
(Config.shortGrass.grassEnabled || Config.connectedGrass.enabled) &&
|
||||||
GrassRegistry[ctx, UP] != null
|
GrassRegistry[ctx, UP] != null
|
||||||
|
|
||||||
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: VertexBuffer, layer: BlockRenderLayer): Boolean {
|
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: BufferBuilder, layer: BlockRenderLayer): Boolean {
|
||||||
// render the whole block on the cutout layer
|
// render the whole block on the cutout layer
|
||||||
if (!layer.isCutout) return false
|
if (!layer.isCutout) return false
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import mods.octarinecore.common.vec
|
|||||||
import mods.octarinecore.random
|
import mods.octarinecore.random
|
||||||
import net.minecraft.block.material.Material
|
import net.minecraft.block.material.Material
|
||||||
import net.minecraft.client.renderer.BlockRendererDispatcher
|
import net.minecraft.client.renderer.BlockRendererDispatcher
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.util.BlockRenderLayer
|
import net.minecraft.util.BlockRenderLayer
|
||||||
import net.minecraft.util.EnumFacing.DOWN
|
import net.minecraft.util.EnumFacing.DOWN
|
||||||
import net.minecraft.util.EnumFacing.UP
|
import net.minecraft.util.EnumFacing.UP
|
||||||
@@ -47,7 +47,7 @@ class RenderLeaves : AbstractBlockRenderingHandler(BetterFoliageMod.MOD_ID) {
|
|||||||
ctx.cameraDistance < Config.leaves.distance &&
|
ctx.cameraDistance < Config.leaves.distance &&
|
||||||
LeafRegistry[ctx, DOWN] != null
|
LeafRegistry[ctx, DOWN] != null
|
||||||
|
|
||||||
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: VertexBuffer, layer: BlockRenderLayer): Boolean {
|
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: BufferBuilder, layer: BlockRenderLayer): Boolean {
|
||||||
val isSnowed = ctx.blockState(up1).material.let {
|
val isSnowed = ctx.blockState(up1).material.let {
|
||||||
it == Material.SNOW || it == Material.CRAFTED_SNOW
|
it == Material.SNOW || it == Material.CRAFTED_SNOW
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import mods.octarinecore.client.render.*
|
|||||||
import mods.octarinecore.common.Int3
|
import mods.octarinecore.common.Int3
|
||||||
import mods.octarinecore.common.Rotation
|
import mods.octarinecore.common.Rotation
|
||||||
import net.minecraft.client.renderer.BlockRendererDispatcher
|
import net.minecraft.client.renderer.BlockRendererDispatcher
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.util.BlockRenderLayer
|
import net.minecraft.util.BlockRenderLayer
|
||||||
import net.minecraft.util.EnumFacing.DOWN
|
import net.minecraft.util.EnumFacing.DOWN
|
||||||
import net.minecraft.util.EnumFacing.UP
|
import net.minecraft.util.EnumFacing.UP
|
||||||
@@ -44,7 +44,7 @@ class RenderLilypad : AbstractBlockRenderingHandler(BetterFoliageMod.MOD_ID) {
|
|||||||
ctx.cameraDistance < Config.lilypad.distance &&
|
ctx.cameraDistance < Config.lilypad.distance &&
|
||||||
Config.blocks.lilypad.matchesClass(ctx.block)
|
Config.blocks.lilypad.matchesClass(ctx.block)
|
||||||
|
|
||||||
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: VertexBuffer, layer: BlockRenderLayer): Boolean {
|
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: BufferBuilder, layer: BlockRenderLayer): Boolean {
|
||||||
// render the whole block on the cutout layer
|
// render the whole block on the cutout layer
|
||||||
if (!layer.isCutout) return false
|
if (!layer.isCutout) return false
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import mods.octarinecore.client.render.noPost
|
|||||||
import mods.octarinecore.common.Double3
|
import mods.octarinecore.common.Double3
|
||||||
import mods.octarinecore.common.Rotation
|
import mods.octarinecore.common.Rotation
|
||||||
import net.minecraft.client.renderer.BlockRendererDispatcher
|
import net.minecraft.client.renderer.BlockRendererDispatcher
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.init.Blocks
|
import net.minecraft.init.Blocks
|
||||||
import net.minecraft.util.BlockRenderLayer
|
import net.minecraft.util.BlockRenderLayer
|
||||||
import net.minecraftforge.fml.relauncher.Side
|
import net.minecraftforge.fml.relauncher.Side
|
||||||
@@ -33,7 +33,7 @@ class RenderMycelium : AbstractBlockRenderingHandler(BetterFoliageMod.MOD_ID) {
|
|||||||
ctx.cameraDistance < Config.shortGrass.distance
|
ctx.cameraDistance < Config.shortGrass.distance
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: VertexBuffer, layer: BlockRenderLayer): Boolean {
|
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: BufferBuilder, layer: BlockRenderLayer): Boolean {
|
||||||
// render the whole block on the cutout layer
|
// render the whole block on the cutout layer
|
||||||
if (!layer.isCutout) return false
|
if (!layer.isCutout) return false
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import mods.octarinecore.common.Int3
|
|||||||
import mods.octarinecore.common.Rotation
|
import mods.octarinecore.common.Rotation
|
||||||
import mods.octarinecore.random
|
import mods.octarinecore.random
|
||||||
import net.minecraft.client.renderer.BlockRendererDispatcher
|
import net.minecraft.client.renderer.BlockRendererDispatcher
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.init.Blocks
|
import net.minecraft.init.Blocks
|
||||||
import net.minecraft.util.BlockRenderLayer
|
import net.minecraft.util.BlockRenderLayer
|
||||||
import net.minecraft.util.EnumFacing.*
|
import net.minecraft.util.EnumFacing.*
|
||||||
@@ -39,7 +39,7 @@ class RenderNetherrack : AbstractBlockRenderingHandler(BetterFoliageMod.MOD_ID)
|
|||||||
ctx.cameraDistance < Config.netherrack.distance
|
ctx.cameraDistance < Config.netherrack.distance
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: VertexBuffer, layer: BlockRenderLayer): Boolean {
|
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: BufferBuilder, layer: BlockRenderLayer): Boolean {
|
||||||
val baseRender = renderWorldBlockBase(ctx, dispatcher, renderer, layer)
|
val baseRender = renderWorldBlockBase(ctx, dispatcher, renderer, layer)
|
||||||
if (!layer.isCutout) return baseRender
|
if (!layer.isCutout) return baseRender
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import mods.octarinecore.common.Rotation
|
|||||||
import mods.octarinecore.random
|
import mods.octarinecore.random
|
||||||
import net.minecraft.block.material.Material
|
import net.minecraft.block.material.Material
|
||||||
import net.minecraft.client.renderer.BlockRendererDispatcher
|
import net.minecraft.client.renderer.BlockRendererDispatcher
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.util.BlockRenderLayer
|
import net.minecraft.util.BlockRenderLayer
|
||||||
import net.minecraft.util.EnumFacing.UP
|
import net.minecraft.util.EnumFacing.UP
|
||||||
import net.minecraftforge.fml.relauncher.Side
|
import net.minecraftforge.fml.relauncher.Side
|
||||||
@@ -53,7 +53,7 @@ class RenderReeds : AbstractBlockRenderingHandler(BetterFoliageMod.MOD_ID) {
|
|||||||
ctx.biomeId in Config.reed.biomes &&
|
ctx.biomeId in Config.reed.biomes &&
|
||||||
noise[ctx.pos] < Config.reed.population
|
noise[ctx.pos] < Config.reed.population
|
||||||
|
|
||||||
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: VertexBuffer, layer: BlockRenderLayer): Boolean {
|
override fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: BufferBuilder, layer: BlockRenderLayer): Boolean {
|
||||||
val baseRender = renderWorldBlockBase(ctx, dispatcher, renderer, layer)
|
val baseRender = renderWorldBlockBase(ctx, dispatcher, renderer, layer)
|
||||||
if (!layer.isCutout) return baseRender
|
if (!layer.isCutout) return baseRender
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import org.objectweb.asm.Opcodes.*
|
|||||||
"kotlin",
|
"kotlin",
|
||||||
"mods.octarinecore.kotlin"
|
"mods.octarinecore.kotlin"
|
||||||
)
|
)
|
||||||
@IFMLLoadingPlugin.MCVersion("1.11.2")
|
@IFMLLoadingPlugin.MCVersion("1.12")
|
||||||
@IFMLLoadingPlugin.SortingIndex(1400)
|
@IFMLLoadingPlugin.SortingIndex(1400)
|
||||||
class BetterFoliageLoader : ASMPlugin(BetterFoliageTransformer::class.java)
|
class BetterFoliageLoader : ASMPlugin(BetterFoliageTransformer::class.java)
|
||||||
|
|
||||||
|
|||||||
@@ -40,14 +40,14 @@ object Refs {
|
|||||||
val BlockModelRenderer = ClassRef("net.minecraft.client.renderer.BlockModelRenderer")
|
val BlockModelRenderer = ClassRef("net.minecraft.client.renderer.BlockModelRenderer")
|
||||||
val AmbientOcclusionFace = ClassRef("net.minecraft.client.renderer.BlockModelRenderer\$AmbientOcclusionFace")
|
val AmbientOcclusionFace = ClassRef("net.minecraft.client.renderer.BlockModelRenderer\$AmbientOcclusionFace")
|
||||||
val ChunkCompileTaskGenerator = ClassRef("net.minecraft.client.renderer.chunk.ChunkCompileTaskGenerator")
|
val ChunkCompileTaskGenerator = ClassRef("net.minecraft.client.renderer.chunk.ChunkCompileTaskGenerator")
|
||||||
val VertexBuffer = ClassRef("net.minecraft.client.renderer.VertexBuffer")
|
val BufferBuilder = ClassRef("net.minecraft.client.renderer.BufferBuilder")
|
||||||
val AOF_constructor = MethodRef(AmbientOcclusionFace, "<init>", ClassRef.void, BlockModelRenderer)
|
val AOF_constructor = MethodRef(AmbientOcclusionFace, "<init>", ClassRef.void, BlockModelRenderer)
|
||||||
|
|
||||||
val RenderChunk = ClassRef("net.minecraft.client.renderer.chunk.RenderChunk")
|
val RenderChunk = ClassRef("net.minecraft.client.renderer.chunk.RenderChunk")
|
||||||
val rebuildChunk = MethodRef(RenderChunk, "rebuildChunk", "func_178581_b", ClassRef.void, ClassRef.float, ClassRef.float, ClassRef.float, ChunkCompileTaskGenerator)
|
val rebuildChunk = MethodRef(RenderChunk, "rebuildChunk", "func_178581_b", ClassRef.void, ClassRef.float, ClassRef.float, ClassRef.float, ChunkCompileTaskGenerator)
|
||||||
|
|
||||||
val BlockRendererDispatcher = ClassRef("net.minecraft.client.renderer.BlockRendererDispatcher")
|
val BlockRendererDispatcher = ClassRef("net.minecraft.client.renderer.BlockRendererDispatcher")
|
||||||
val renderBlock = MethodRef(BlockRendererDispatcher, "renderBlock", "func_175018_a", ClassRef.boolean, IBlockState, BlockPos, IBlockAccess, VertexBuffer)
|
val renderBlock = MethodRef(BlockRendererDispatcher, "renderBlock", "func_175018_a", ClassRef.boolean, IBlockState, BlockPos, IBlockAccess, BufferBuilder)
|
||||||
|
|
||||||
val TextureAtlasSprite = ClassRef("net.minecraft.client.renderer.texture.TextureAtlasSprite")
|
val TextureAtlasSprite = ClassRef("net.minecraft.client.renderer.texture.TextureAtlasSprite")
|
||||||
|
|
||||||
@@ -81,7 +81,7 @@ object Refs {
|
|||||||
val onRandomDisplayTick = MethodRef(BetterFoliageHooks, "onRandomDisplayTick", ClassRef.void, World, IBlockState, BlockPos)
|
val onRandomDisplayTick = MethodRef(BetterFoliageHooks, "onRandomDisplayTick", ClassRef.void, World, IBlockState, BlockPos)
|
||||||
val onAfterLoadModelDefinitions = MethodRef(BetterFoliageHooks, "onAfterLoadModelDefinitions", ClassRef.void, ModelLoader)
|
val onAfterLoadModelDefinitions = MethodRef(BetterFoliageHooks, "onAfterLoadModelDefinitions", ClassRef.void, ModelLoader)
|
||||||
val onAfterBakeModels = MethodRef(BetterFoliageHooks, "onAfterBakeModels", ClassRef.void, Map)
|
val onAfterBakeModels = MethodRef(BetterFoliageHooks, "onAfterBakeModels", ClassRef.void, Map)
|
||||||
val renderWorldBlock = MethodRef(BetterFoliageHooks, "renderWorldBlock", ClassRef.boolean, BlockRendererDispatcher, IBlockState, BlockPos, IBlockAccess, VertexBuffer, BlockRenderLayer)
|
val renderWorldBlock = MethodRef(BetterFoliageHooks, "renderWorldBlock", ClassRef.boolean, BlockRendererDispatcher, IBlockState, BlockPos, IBlockAccess, BufferBuilder, BlockRenderLayer)
|
||||||
val canRenderBlockInLayer = MethodRef(BetterFoliageHooks, "canRenderBlockInLayer", ClassRef.boolean, Block, IBlockState, BlockRenderLayer)
|
val canRenderBlockInLayer = MethodRef(BetterFoliageHooks, "canRenderBlockInLayer", ClassRef.boolean, Block, IBlockState, BlockRenderLayer)
|
||||||
|
|
||||||
// Optifine
|
// Optifine
|
||||||
@@ -104,8 +104,8 @@ object Refs {
|
|||||||
|
|
||||||
// ShadersMod
|
// ShadersMod
|
||||||
val SVertexBuilder = ClassRef("shadersmod.client.SVertexBuilder")
|
val SVertexBuilder = ClassRef("shadersmod.client.SVertexBuilder")
|
||||||
val sVertexBuilder = FieldRef(VertexBuffer, "sVertexBuilder", SVertexBuilder)
|
val sVertexBuilder = FieldRef(BufferBuilder, "sVertexBuilder", SVertexBuilder)
|
||||||
val pushEntity_state = MethodRef(SVertexBuilder, "pushEntity", ClassRef.void, IBlockState, BlockPos, IBlockAccess, VertexBuffer)
|
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)
|
||||||
val popEntity = MethodRef(SVertexBuilder, "popEntity", ClassRef.void)
|
val popEntity = MethodRef(SVertexBuilder, "popEntity", ClassRef.void)
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ class NonVerboseArrayEntry(
|
|||||||
init {
|
init {
|
||||||
stripTooltipDefaultText(toolTip as MutableList<String>)
|
stripTooltipDefaultText(toolTip as MutableList<String>)
|
||||||
val shortDefaults = I18n.format("${configElement.languageKey}.arrayEntry", configElement.defaults.size)
|
val shortDefaults = I18n.format("${configElement.languageKey}.arrayEntry", configElement.defaults.size)
|
||||||
toolTip.addAll(mc.fontRendererObj.listFormattedStringToWidth("$AQUA${I18n.format("fml.configgui.tooltip.default", shortDefaults)}", 300))
|
toolTip.addAll(mc.fontRenderer.listFormattedStringToWidth("$AQUA${I18n.format("fml.configgui.tooltip.default", shortDefaults)}", 300))
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun updateValueButtonText() {
|
override fun updateValueButtonText() {
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import net.minecraft.block.Block
|
|||||||
import net.minecraft.block.state.IBlockState
|
import net.minecraft.block.state.IBlockState
|
||||||
import net.minecraft.client.Minecraft
|
import net.minecraft.client.Minecraft
|
||||||
import net.minecraft.client.renderer.BlockRendererDispatcher
|
import net.minecraft.client.renderer.BlockRendererDispatcher
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.client.renderer.color.BlockColors
|
import net.minecraft.client.renderer.color.BlockColors
|
||||||
import net.minecraft.util.BlockRenderLayer
|
import net.minecraft.util.BlockRenderLayer
|
||||||
import net.minecraft.util.math.BlockPos
|
import net.minecraft.util.math.BlockPos
|
||||||
@@ -39,7 +39,7 @@ abstract class AbstractBlockRenderingHandler(modId: String) : ResourceHandler(mo
|
|||||||
// Custom rendering
|
// Custom rendering
|
||||||
// ============================
|
// ============================
|
||||||
abstract fun isEligible(ctx: BlockContext): Boolean
|
abstract fun isEligible(ctx: BlockContext): Boolean
|
||||||
abstract fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: VertexBuffer, layer: BlockRenderLayer): Boolean
|
abstract fun render(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: BufferBuilder, layer: BlockRenderLayer): Boolean
|
||||||
|
|
||||||
// ============================
|
// ============================
|
||||||
// Vanilla rendering wrapper
|
// Vanilla rendering wrapper
|
||||||
@@ -47,7 +47,7 @@ abstract class AbstractBlockRenderingHandler(modId: String) : ResourceHandler(mo
|
|||||||
/**
|
/**
|
||||||
* Render the block in the current [BlockContext]
|
* Render the block in the current [BlockContext]
|
||||||
*/
|
*/
|
||||||
fun renderWorldBlockBase(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: VertexBuffer, layer: BlockRenderLayer?): Boolean {
|
fun renderWorldBlockBase(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: BufferBuilder, layer: BlockRenderLayer?): Boolean {
|
||||||
ctx.blockState(Int3.zero).let { state ->
|
ctx.blockState(Int3.zero).let { state ->
|
||||||
if (layer == null || state.block.canRenderInLayer(state, layer))
|
if (layer == null || state.block.canRenderInLayer(state, layer))
|
||||||
return dispatcher.renderBlock(state, ctx.pos, ctx.world, renderer)
|
return dispatcher.renderBlock(state, ctx.pos, ctx.world, renderer)
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import mods.octarinecore.PI2
|
|||||||
import mods.octarinecore.common.Double3
|
import mods.octarinecore.common.Double3
|
||||||
import net.minecraft.client.Minecraft
|
import net.minecraft.client.Minecraft
|
||||||
import net.minecraft.client.particle.Particle
|
import net.minecraft.client.particle.Particle
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite
|
import net.minecraft.client.renderer.texture.TextureAtlasSprite
|
||||||
import net.minecraft.entity.Entity
|
import net.minecraft.entity.Entity
|
||||||
import net.minecraft.world.World
|
import net.minecraft.world.World
|
||||||
@@ -32,7 +32,7 @@ abstract class AbstractEntityFX(world: World, x: Double, y: Double, z: Double) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Render the particle. */
|
/** Render the particle. */
|
||||||
abstract fun render(worldRenderer: VertexBuffer, partialTickTime: Float)
|
abstract fun render(worldRenderer: BufferBuilder, partialTickTime: Float)
|
||||||
|
|
||||||
/** Update particle on world tick. */
|
/** Update particle on world tick. */
|
||||||
abstract fun update()
|
abstract fun update()
|
||||||
@@ -43,7 +43,7 @@ abstract class AbstractEntityFX(world: World, x: Double, y: Double, z: Double) :
|
|||||||
/** Add the particle to the effect renderer if it is valid. */
|
/** Add the particle to the effect renderer if it is valid. */
|
||||||
fun addIfValid() { if (isValid) Minecraft.getMinecraft().effectRenderer.addEffect(this) }
|
fun addIfValid() { if (isValid) Minecraft.getMinecraft().effectRenderer.addEffect(this) }
|
||||||
|
|
||||||
override fun renderParticle(worldRenderer: VertexBuffer, entity: Entity, partialTickTime: Float, rotX: Float, rotZ: Float, rotYZ: Float, rotXY: Float, rotXZ: Float) {
|
override fun renderParticle(worldRenderer: BufferBuilder, entity: Entity, partialTickTime: Float, rotX: Float, rotZ: Float, rotYZ: Float, rotXY: Float, rotXZ: Float) {
|
||||||
billboardRot.first.setTo(rotX + rotXY, rotZ, rotYZ + rotXZ)
|
billboardRot.first.setTo(rotX + rotXY, rotZ, rotYZ + rotXZ)
|
||||||
billboardRot.second.setTo(rotX - rotXY, -rotZ, rotYZ - rotXZ)
|
billboardRot.second.setTo(rotX - rotXY, -rotZ, rotYZ - rotXZ)
|
||||||
render(worldRenderer, partialTickTime)
|
render(worldRenderer, partialTickTime)
|
||||||
@@ -61,7 +61,7 @@ abstract class AbstractEntityFX(world: World, x: Double, y: Double, z: Double) :
|
|||||||
* @param[isMirrored] mirror particle texture along V-axis
|
* @param[isMirrored] mirror particle texture along V-axis
|
||||||
* @param[alpha] aplha blending
|
* @param[alpha] aplha blending
|
||||||
*/
|
*/
|
||||||
fun renderParticleQuad(worldRenderer: VertexBuffer,
|
fun renderParticleQuad(worldRenderer: BufferBuilder,
|
||||||
partialTickTime: Float,
|
partialTickTime: Float,
|
||||||
currentPos: Double3 = this.currentPos,
|
currentPos: Double3 = this.currentPos,
|
||||||
prevPos: Double3 = this.prevPos,
|
prevPos: Double3 = this.prevPos,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package mods.octarinecore.client.render
|
|||||||
|
|
||||||
import mods.octarinecore.common.*
|
import mods.octarinecore.common.*
|
||||||
import net.minecraft.client.Minecraft
|
import net.minecraft.client.Minecraft
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.BufferBuilder
|
||||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite
|
import net.minecraft.client.renderer.texture.TextureAtlasSprite
|
||||||
import net.minecraft.util.EnumFacing
|
import net.minecraft.util.EnumFacing
|
||||||
import net.minecraft.util.EnumFacing.*
|
import net.minecraft.util.EnumFacing.*
|
||||||
@@ -29,7 +29,7 @@ class ModelRenderer : ShadingContext() {
|
|||||||
* @param[postProcess] lambda to perform arbitrary modifications on the [RenderVertex] just before it goes to the [Tessellator]
|
* @param[postProcess] lambda to perform arbitrary modifications on the [RenderVertex] just before it goes to the [Tessellator]
|
||||||
*/
|
*/
|
||||||
fun render(
|
fun render(
|
||||||
worldRenderer: VertexBuffer,
|
worldRenderer: BufferBuilder,
|
||||||
model: Model,
|
model: Model,
|
||||||
rot: Rotation = Rotation.identity,
|
rot: Rotation = Rotation.identity,
|
||||||
trans: Double3 = blockContext.blockCenter,
|
trans: Double3 = blockContext.blockCenter,
|
||||||
@@ -164,7 +164,7 @@ class RenderVertex() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun VertexBuffer.ensureSpaceForQuads(num: Int) {
|
fun BufferBuilder.ensureSpaceForQuads(num: Int) {
|
||||||
rawIntBuffer.position(bufferSize)
|
rawIntBuffer.position(bufferSize)
|
||||||
growBuffer(num * vertexFormat.nextOffset)
|
growBuffer(num * vertexFormat.nextOffset)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import java.util.*
|
|||||||
*/
|
*/
|
||||||
class GeneratorPack(val name: String, vararg val generators: GeneratorBase) : IResourcePack {
|
class GeneratorPack(val name: String, vararg val generators: GeneratorBase) : IResourcePack {
|
||||||
|
|
||||||
init {
|
fun inject() {
|
||||||
FMLClientHandler.instance().reflectField<MutableList<IResourcePack>>("resourcePackList")!!.add(this)
|
FMLClientHandler.instance().reflectField<MutableList<IResourcePack>>("resourcePackList")!!.add(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ public net.minecraft.client.renderer.block.model.ModelBakery field_177610_k # bl
|
|||||||
|
|
||||||
public net.minecraft.client.renderer.block.statemap.BlockStateMapper field_178450_a # blockStateMap
|
public net.minecraft.client.renderer.block.statemap.BlockStateMapper field_178450_a # blockStateMap
|
||||||
|
|
||||||
public net.minecraft.client.renderer.VertexBuffer field_178999_b # rawIntBuffer
|
public net.minecraft.client.renderer.BufferBuilder field_178999_b # rawIntBuffer
|
||||||
public net.minecraft.client.renderer.VertexBuffer func_181670_b(I)V # growBuffer
|
public net.minecraft.client.renderer.BufferBuilder func_181670_b(I)V # growBuffer
|
||||||
public net.minecraft.client.renderer.VertexBuffer func_181664_j()I # getBufferSize
|
public net.minecraft.client.renderer.BufferBuilder func_181664_j()I # getBufferSize
|
||||||
|
|
||||||
public net.minecraft.client.renderer.BlockModelRenderer field_187499_a # blockColors
|
public net.minecraft.client.renderer.BlockModelRenderer field_187499_a # blockColors
|
||||||
Reference in New Issue
Block a user