port to MC 1.12

This commit is contained in:
octarine-noise
2017-07-05 15:17:23 +02:00
parent b5d87bb148
commit fb078ab365
28 changed files with 120 additions and 107 deletions

View File

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

View File

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

View File

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

View File

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

View File

@@ -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,
@@ -24,3 +26,4 @@ class ConfigGuiFactory : IModGuiFactory {
BetterFoliageMod.MOD_NAME BetterFoliageMod.MOD_NAME
) )
} }
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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