package mods.octarinecore import mods.octarinecore.metaprog.ClassRef import mods.octarinecore.metaprog.ClassRef.Companion.void import mods.octarinecore.metaprog.FieldRef import mods.octarinecore.metaprog.MethodRef import net.minecraft.block.Block import net.minecraft.block.BlockState import net.minecraft.client.renderer.BlockRendererDispatcher import net.minecraft.client.renderer.BufferBuilder import net.minecraft.client.renderer.chunk.ChunkRenderCache import net.minecraft.client.renderer.model.BakedQuad import net.minecraft.client.renderer.texture.TextureAtlasSprite import net.minecraft.util.BlockRenderLayer import net.minecraft.util.ResourceLocation import net.minecraft.util.math.BlockPos import net.minecraft.world.IBlockReader import net.minecraft.world.IEnviromentBlockReader import java.util.* typealias Sprite = TextureAtlasSprite // Java val String = ClassRef("java.lang.String") val Map = ClassRef>("java.util.Map") val List = ClassRef>("java.util.List") val Random = ClassRef("java.util.Random") // Minecraft val IBlockReader = ClassRef("net.minecraft.world.IBlockReader") val IEnvironmentBlockReader = ClassRef("net.minecraft.world.IEnviromentBlockReader") val BlockState = ClassRef("net.minecraft.block.BlockState") val BlockPos = ClassRef("net.minecraft.util.math.BlockPos") val BlockRenderLayer = ClassRef("net.minecraft.util.BlockRenderLayer") val Block = ClassRef("net.minecraft.block.Block") val TextureAtlasSprite = ClassRef("net.minecraft.client.renderer.texture.TextureAtlasSprite") val BufferBuilder = ClassRef("net.minecraft.client.renderer.BufferBuilder") val BufferBuilder_setSprite = MethodRef(BufferBuilder, "setSprite", void, TextureAtlasSprite) val BufferBuilder_sVertexBuilder = FieldRef(BufferBuilder, "sVertexBuilder", SVertexBuilder) val BlockRendererDispatcher = ClassRef("net.minecraft.client.renderer.BlockRendererDispatcher") val ChunkRenderCache = ClassRef("net.minecraft.client.renderer.chunk.ChunkRenderCache") val ResourceLocation = ClassRef("net.minecraft.util.ResourceLocation") val BakedQuad = ClassRef("net.minecraft.client.renderer.model.BakedQuad") // Optifine val OptifineClassTransformer = ClassRef("optifine.OptiFineClassTransformer") val BlockPosM = ClassRef("net.optifine.BlockPosM") object ChunkCacheOF : ClassRef("net.optifine.override.ChunkCacheOF") { val chunkCache = FieldRef(this, "chunkCache", ChunkRenderCache) } object RenderEnv : ClassRef("net.optifine.render.RenderEnv") { val reset = MethodRef(this, "reset", void, BlockState, BlockPos) } // Optifine custom colors val IColorizer = ClassRef("net.optifine.CustomColors\$IColorizer") object CustomColors : ClassRef("net.optifine.CustomColors") { val getColorMultiplier = MethodRef(this, "getColorMultiplier", int, BakedQuad, BlockState, IEnvironmentBlockReader, BlockPos, RenderEnv) } // Optifine shaders object SVertexBuilder : ClassRef("net.optifine.shaders.SVertexBuilder") { val pushState = MethodRef(this, "pushEntity", void, long) val popState = MethodRef(this, "popEntity", void) } object BlockAliases : ClassRef("net.optifine.shaders.BlockAliases") { val getAliasBlockId = MethodRef(this, "getAliasBlockId", int, BlockState) }