From ceb3e5b11691c52aeb9efc82932900776e162c12 Mon Sep 17 00:00:00 2001 From: octarine-noise Date: Sat, 10 Dec 2016 21:30:55 +0100 Subject: [PATCH] port to MC 1.11 --- build.gradle | 7 ++- .../mods/betterfoliage/BetterFoliageMod.kt | 2 +- .../kotlin/mods/betterfoliage/client/Hooks.kt | 2 - .../betterfoliage/client/config/Config.kt | 22 ++++---- .../client/integration/ForestryIntegration.kt | 9 ++-- .../client/render/EntityFallingLeavesFX.kt | 6 +-- .../client/render/EntityRisingSoulFX.kt | 2 +- .../client/render/RenderCactus.kt | 9 ++-- .../betterfoliage/client/render/RenderLog.kt | 9 ++-- .../client/texture/GrassRegistry.kt | 7 +-- .../client/texture/LeafRegistry.kt | 4 +- .../betterfoliage/loader/BetterFoliageCore.kt | 2 +- .../kotlin/mods/betterfoliage/loader/Refs.kt | 52 ++++++++++--------- .../render/AbstractBlockRenderingHandler.kt | 12 ++--- .../client/resource/ResourceHandler.kt | 2 +- .../octarinecore/client/resource/Utils.kt | 4 +- .../{CactusDefault.cfg => cactus_default.cfg} | 0 .../{CropDefault.cfg => crop_default.cfg} | 0 .../{DirtDefault.cfg => dirt_default.cfg} | 0 ...ksDefault.cfg => grass_blocks_default.cfg} | 0 ...lsDefault.cfg => grass_models_default.cfg} | 0 ...Mappings.cfg => leaf_texture_mappings.cfg} | 0 ...sDefault.cfg => leaves_blocks_default.cfg} | 0 ...sDefault.cfg => leaves_models_default.cfg} | 0 ...LilypadDefault.cfg => lilypad_default.cfg} | 0 ...ocksDefault.cfg => log_blocks_default.cfg} | 0 ...delsDefault.cfg => log_models_default.cfg} | 0 .../{SandDefault.cfg => sand_default.cfg} | 0 28 files changed, 77 insertions(+), 74 deletions(-) rename src/main/resources/assets/betterfoliage/{CactusDefault.cfg => cactus_default.cfg} (100%) rename src/main/resources/assets/betterfoliage/{CropDefault.cfg => crop_default.cfg} (100%) rename src/main/resources/assets/betterfoliage/{DirtDefault.cfg => dirt_default.cfg} (100%) rename src/main/resources/assets/betterfoliage/{GrassBlocksDefault.cfg => grass_blocks_default.cfg} (100%) rename src/main/resources/assets/betterfoliage/{GrassModelsDefault.cfg => grass_models_default.cfg} (100%) rename src/main/resources/assets/betterfoliage/{leafTextureMappings.cfg => leaf_texture_mappings.cfg} (100%) rename src/main/resources/assets/betterfoliage/{LeavesBlocksDefault.cfg => leaves_blocks_default.cfg} (100%) rename src/main/resources/assets/betterfoliage/{LeavesModelsDefault.cfg => leaves_models_default.cfg} (100%) rename src/main/resources/assets/betterfoliage/{LilypadDefault.cfg => lilypad_default.cfg} (100%) rename src/main/resources/assets/betterfoliage/{LogBlocksDefault.cfg => log_blocks_default.cfg} (100%) rename src/main/resources/assets/betterfoliage/{LogModelsDefault.cfg => log_models_default.cfg} (100%) rename src/main/resources/assets/betterfoliage/{SandDefault.cfg => sand_default.cfg} (100%) diff --git a/build.gradle b/build.gradle index 9ba9703..3df0e28 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'kotlin' group = 'com.github.octarine-noise' version = "2.1.2" -archivesBaseName = rootProject.name + '-MC1.10.2' +archivesBaseName = rootProject.name + '-MC1.11' buildscript { ext.kotlin_version = '1.0.3' @@ -32,11 +32,10 @@ dependencies { shade "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" } minecraft { - version = '1.10.2-12.18.1.2075' - mappings = 'snapshot_20160905' + version = '1.11-13.19.1.2188' + mappings = 'snapshot_20161210' runDir = 'run' } - processResources { inputs.property "version", project.version inputs.property "mcversion", project.minecraft.version diff --git a/src/main/kotlin/mods/betterfoliage/BetterFoliageMod.kt b/src/main/kotlin/mods/betterfoliage/BetterFoliageMod.kt index 4019343..f9cffbb 100644 --- a/src/main/kotlin/mods/betterfoliage/BetterFoliageMod.kt +++ b/src/main/kotlin/mods/betterfoliage/BetterFoliageMod.kt @@ -30,7 +30,7 @@ object BetterFoliageMod { const val MOD_NAME = "Better Foliage" const val DOMAIN = "betterfoliage" const val LEGACY_DOMAIN = "bettergrassandleaves" - const val MC_VERSIONS = "[1.10.2]" + const val MC_VERSIONS = "[1.11]" const val GUI_FACTORY = "mods.betterfoliage.client.gui.ConfigGuiFactory" lateinit var log: Logger diff --git a/src/main/kotlin/mods/betterfoliage/client/Hooks.kt b/src/main/kotlin/mods/betterfoliage/client/Hooks.kt index 0ad951e..be7ffc6 100644 --- a/src/main/kotlin/mods/betterfoliage/client/Hooks.kt +++ b/src/main/kotlin/mods/betterfoliage/client/Hooks.kt @@ -15,7 +15,6 @@ import net.minecraft.block.Block import net.minecraft.block.state.IBlockState import net.minecraft.client.renderer.BlockRendererDispatcher import net.minecraft.client.renderer.VertexBuffer -import net.minecraft.client.renderer.block.model.IBakedModel import net.minecraft.init.Blocks import net.minecraft.util.BlockRenderLayer import net.minecraft.util.BlockRenderLayer.CUTOUT @@ -24,7 +23,6 @@ import net.minecraft.util.EnumFacing import net.minecraft.util.math.BlockPos import net.minecraft.world.IBlockAccess import net.minecraft.world.World -import net.minecraftforge.client.model.IModel import net.minecraftforge.client.model.ModelLoader import net.minecraftforge.common.MinecraftForge import net.minecraftforge.fml.relauncher.Side diff --git a/src/main/kotlin/mods/betterfoliage/client/config/Config.kt b/src/main/kotlin/mods/betterfoliage/client/config/Config.kt index 47ae564..a6787d6 100644 --- a/src/main/kotlin/mods/betterfoliage/client/config/Config.kt +++ b/src/main/kotlin/mods/betterfoliage/client/config/Config.kt @@ -32,17 +32,17 @@ object Config : DelegatingConfig(BetterFoliageMod.MOD_ID, BetterFoliageMod.DOMAI var enabled by boolean(true) object blocks { - val leavesClasses = ConfigurableBlockMatcher(BetterFoliageMod.DOMAIN, "LeavesBlocksDefault.cfg") - val leavesModels = ModelTextureListConfigOption(BetterFoliageMod.DOMAIN, "LeavesModelsDefault.cfg", 1) - val grassClasses = ConfigurableBlockMatcher(BetterFoliageMod.DOMAIN, "GrassBlocksDefault.cfg") - val grassModels = ModelTextureListConfigOption(BetterFoliageMod.DOMAIN, "GrassModelsDefault.cfg", 1) - val dirt = ConfigurableBlockMatcher(BetterFoliageMod.DOMAIN, "DirtDefault.cfg") - val crops = ConfigurableBlockMatcher(BetterFoliageMod.DOMAIN, "CropDefault.cfg") - val logClasses = ConfigurableBlockMatcher(BetterFoliageMod.DOMAIN, "LogBlocksDefault.cfg") - val logModels = ModelTextureListConfigOption(BetterFoliageMod.DOMAIN, "LogModelsDefault.cfg", 3) - val sand = ConfigurableBlockMatcher(BetterFoliageMod.DOMAIN, "SandDefault.cfg") - val lilypad = ConfigurableBlockMatcher(BetterFoliageMod.DOMAIN, "LilypadDefault.cfg") - val cactus = ConfigurableBlockMatcher(BetterFoliageMod.DOMAIN, "CactusDefault.cfg") + val leavesClasses = ConfigurableBlockMatcher(BetterFoliageMod.DOMAIN, "leaves_blocks_default.cfg") + val leavesModels = ModelTextureListConfigOption(BetterFoliageMod.DOMAIN, "leaves_models_default.cfg", 1) + val grassClasses = ConfigurableBlockMatcher(BetterFoliageMod.DOMAIN, "grass_blocks_default.cfg") + val grassModels = ModelTextureListConfigOption(BetterFoliageMod.DOMAIN, "grass_models_default.cfg", 1) + val dirt = ConfigurableBlockMatcher(BetterFoliageMod.DOMAIN, "dirt_default.cfg") + val crops = ConfigurableBlockMatcher(BetterFoliageMod.DOMAIN, "crop_default.cfg") + val logClasses = ConfigurableBlockMatcher(BetterFoliageMod.DOMAIN, "log_blocks_default.cfg") + val logModels = ModelTextureListConfigOption(BetterFoliageMod.DOMAIN, "log_models_default.cfg", 3) + val sand = ConfigurableBlockMatcher(BetterFoliageMod.DOMAIN, "sand_default.cfg") + val lilypad = ConfigurableBlockMatcher(BetterFoliageMod.DOMAIN, "lilypad_default.cfg") + val cactus = ConfigurableBlockMatcher(BetterFoliageMod.DOMAIN, "cactus_default.cfg") val leavesWhitelist = OBSOLETE val leavesBlacklist = OBSOLETE diff --git a/src/main/kotlin/mods/betterfoliage/client/integration/ForestryIntegration.kt b/src/main/kotlin/mods/betterfoliage/client/integration/ForestryIntegration.kt index e7c7324..c01600d 100644 --- a/src/main/kotlin/mods/betterfoliage/client/integration/ForestryIntegration.kt +++ b/src/main/kotlin/mods/betterfoliage/client/integration/ForestryIntegration.kt @@ -14,6 +14,7 @@ import mods.betterfoliage.client.texture.StandardLeafSupport import mods.betterfoliage.loader.Refs import mods.octarinecore.client.resource.ModelProcessor import mods.octarinecore.client.resource.get +import mods.octarinecore.client.resource.registerSprite import mods.octarinecore.metaprog.ClassRef import mods.octarinecore.metaprog.FieldRef import mods.octarinecore.metaprog.MethodRef @@ -95,8 +96,8 @@ object ForestryLeavesSupport : ILeafRegistry { } fun registerLeaf(textureLocation: ResourceLocation, atlas: TextureMap) { - val texture = atlas[textureLocation.toString()] ?: return - var leafType = LeafRegistry.typeMappings.getType(texture) ?: "default" + val texture = atlas.registerSprite(textureLocation) + val leafType = LeafRegistry.typeMappings.getType(texture) ?: "default" Client.logDetail("ForestryLeavesSupport: texture ${texture.iconName}") Client.logDetail("ForestryLeavesSupport: particle $leafType") val generated = atlas.registerSprite( @@ -156,8 +157,8 @@ object ForestryLogSupport : ModelProcessor, IColumnTextureResolver> } override fun processStitch(state: IBlockState, key: List, atlas: TextureMap): IColumnTextureResolver? { - val heart = atlas[key[0]] ?: return null - val bark = atlas[key[1]] ?: return null + val heart = atlas.registerSprite(key[0]) + val bark = atlas.registerSprite(key[1]) return StaticColumnInfo(heart, heart, bark) } diff --git a/src/main/kotlin/mods/betterfoliage/client/render/EntityFallingLeavesFX.kt b/src/main/kotlin/mods/betterfoliage/client/render/EntityFallingLeavesFX.kt index c6b65c0..da16229 100644 --- a/src/main/kotlin/mods/betterfoliage/client/render/EntityFallingLeavesFX.kt +++ b/src/main/kotlin/mods/betterfoliage/client/render/EntityFallingLeavesFX.kt @@ -38,7 +38,7 @@ AbstractEntityFX(world, pos.x.toDouble() + 0.5, pos.y.toDouble(), pos.z.toDouble var wasCollided = false init { - particleMaxAge = MathHelper.floor_double(random(0.6, 1.0) * Config.fallingLeaves.lifetime * 20.0) + particleMaxAge = MathHelper.floor(random(0.6, 1.0) * Config.fallingLeaves.lifetime * 20.0) motionY = -Config.fallingLeaves.speed particleScale = Config.fallingLeaves.size.toFloat() * 0.1f @@ -60,7 +60,7 @@ AbstractEntityFX(world, pos.x.toDouble() + 0.5, pos.y.toDouble(), pos.z.toDouble if (rand.nextFloat() > 0.95f) rotPositive = !rotPositive if (particleAge > particleMaxAge - 20) particleAlpha = 0.05f * (particleMaxAge - particleAge) - if (isCollided || wasCollided) { + if (onGround || wasCollided) { velocity.setTo(0.0, 0.0, 0.0) if (!wasCollided) { particleAge = Math.max(particleAge, particleMaxAge - 20) @@ -117,7 +117,7 @@ object LeafWindTracker { @SubscribeEvent fun handleWorldTick(event: TickEvent.ClientTickEvent) { - if (event.phase == TickEvent.Phase.START) Minecraft.getMinecraft().theWorld?.let { world -> + if (event.phase == TickEvent.Phase.START) Minecraft.getMinecraft().world?.let { world -> // change target wind speed if (world.worldInfo.worldTime >= nextChange) changeWind(world) diff --git a/src/main/kotlin/mods/betterfoliage/client/render/EntityRisingSoulFX.kt b/src/main/kotlin/mods/betterfoliage/client/render/EntityRisingSoulFX.kt index c7e14dc..3dce1c8 100644 --- a/src/main/kotlin/mods/betterfoliage/client/render/EntityRisingSoulFX.kt +++ b/src/main/kotlin/mods/betterfoliage/client/render/EntityRisingSoulFX.kt @@ -26,7 +26,7 @@ AbstractEntityFX(world, pos.x.toDouble() + 0.5, pos.y.toDouble() + 1.0, pos.z.to motionY = 0.1 particleGravity = 0.0f particleTexture = RisingSoulTextures.headIcons[rand.nextInt(256)] - particleMaxAge = MathHelper.floor_double((0.6 + 0.4 * rand.nextDouble()) * Config.risingSoul.lifetime * 20.0) + particleMaxAge = MathHelper.floor((0.6 + 0.4 * rand.nextDouble()) * Config.risingSoul.lifetime * 20.0) } override val isValid: Boolean get() = true diff --git a/src/main/kotlin/mods/betterfoliage/client/render/RenderCactus.kt b/src/main/kotlin/mods/betterfoliage/client/render/RenderCactus.kt index 3fbf34d..d1b7171 100644 --- a/src/main/kotlin/mods/betterfoliage/client/render/RenderCactus.kt +++ b/src/main/kotlin/mods/betterfoliage/client/render/RenderCactus.kt @@ -6,6 +6,7 @@ import mods.betterfoliage.client.config.Config import mods.octarinecore.client.render.* import mods.octarinecore.client.resource.TextureListModelProcessor import mods.octarinecore.client.resource.get +import mods.octarinecore.client.resource.registerSprite import mods.octarinecore.common.Int3 import mods.octarinecore.common.Rotation import mods.octarinecore.common.config.ConfigurableBlockMatcher @@ -45,10 +46,10 @@ class RenderCactus : AbstractBlockRenderingHandler(BetterFoliageMod.MOD_ID) { ) override fun processStitch(state: IBlockState, key: List, atlas: TextureMap): IColumnTextureResolver? { - val topTex = atlas[key[0]] - val bottomTex = atlas[key[1]] - val sideTex = atlas[key[2]] - return if (topTex != null && bottomTex != null && sideTex != null) StaticColumnInfo(topTex, bottomTex, sideTex) else null + val topTex = atlas.registerSprite(key[0]) + val bottomTex = atlas.registerSprite(key[1]) + val sideTex = atlas.registerSprite(key[2]) + return StaticColumnInfo(topTex, bottomTex, sideTex) } override fun get(state: IBlockState) = stateToValue[state] diff --git a/src/main/kotlin/mods/betterfoliage/client/render/RenderLog.kt b/src/main/kotlin/mods/betterfoliage/client/render/RenderLog.kt index 9de5aac..39e87bb 100644 --- a/src/main/kotlin/mods/betterfoliage/client/render/RenderLog.kt +++ b/src/main/kotlin/mods/betterfoliage/client/render/RenderLog.kt @@ -8,6 +8,7 @@ import mods.betterfoliage.client.texture.StandardGrassSupport import mods.octarinecore.client.render.BlockContext import mods.octarinecore.client.resource.TextureListModelProcessor import mods.octarinecore.client.resource.get +import mods.octarinecore.client.resource.registerSprite import mods.octarinecore.common.Int3 import mods.octarinecore.common.config.ConfigurableBlockMatcher import mods.octarinecore.common.config.ModelTextureList @@ -72,10 +73,10 @@ object StandardLogSupport : TextureListModelProcessor, I override val modelTextures: List get() = Config.blocks.logModels.list override fun processStitch(state: IBlockState, key: List, atlas: TextureMap): IColumnTextureResolver? { - val topTex = atlas[key[0]] - val bottomTex = atlas[key[1]] - val sideTex = atlas[key[2]] - return if (topTex != null && bottomTex != null && sideTex != null) StaticColumnInfo(topTex, bottomTex, sideTex) else null + val topTex = atlas.registerSprite(key[0]) + val bottomTex = atlas.registerSprite(key[1]) + val sideTex = atlas.registerSprite(key[2]) + return StaticColumnInfo(topTex, bottomTex, sideTex) } override fun get(state: IBlockState) = stateToValue[state] diff --git a/src/main/kotlin/mods/betterfoliage/client/texture/GrassRegistry.kt b/src/main/kotlin/mods/betterfoliage/client/texture/GrassRegistry.kt index f716a57..faa61e3 100644 --- a/src/main/kotlin/mods/betterfoliage/client/texture/GrassRegistry.kt +++ b/src/main/kotlin/mods/betterfoliage/client/texture/GrassRegistry.kt @@ -5,10 +5,7 @@ import mods.betterfoliage.client.config.Config import mods.betterfoliage.client.integration.OptifineCTM import mods.octarinecore.client.render.BlockContext import mods.octarinecore.client.render.HSB -import mods.octarinecore.client.resource.TextureListModelProcessor -import mods.octarinecore.client.resource.TextureMediatedRegistry -import mods.octarinecore.client.resource.averageColor -import mods.octarinecore.client.resource.get +import mods.octarinecore.client.resource.* import mods.octarinecore.common.Int3 import mods.octarinecore.common.config.ConfigurableBlockMatcher import mods.octarinecore.common.config.ModelTextureList @@ -83,7 +80,7 @@ object StandardGrassSupport : if (it == null) null else textureToValue[it] } - override fun processStitch(state: IBlockState, key: List, atlas: TextureMap) = atlas[key[0]] + override fun processStitch(state: IBlockState, key: List, atlas: TextureMap) = atlas.registerSprite(key[0]) override fun processTexture(states: List, texture: TextureAtlasSprite, atlas: TextureMap) { registerGrass(texture, atlas) diff --git a/src/main/kotlin/mods/betterfoliage/client/texture/LeafRegistry.kt b/src/main/kotlin/mods/betterfoliage/client/texture/LeafRegistry.kt index 55512d1..557e9d1 100644 --- a/src/main/kotlin/mods/betterfoliage/client/texture/LeafRegistry.kt +++ b/src/main/kotlin/mods/betterfoliage/client/texture/LeafRegistry.kt @@ -59,7 +59,7 @@ object LeafRegistry : ILeafRegistry { @SubscribeEvent(priority = EventPriority.HIGHEST) fun handlePreStitch(event: TextureStitchEvent.Pre) { particles.clear() - typeMappings.loadMappings(ResourceLocation(BetterFoliageMod.DOMAIN, "leafTextureMappings.cfg")) + typeMappings.loadMappings(ResourceLocation(BetterFoliageMod.DOMAIN, "leaf_texture_mappings.cfg")) } override fun get(state: IBlockState, world: IBlockAccess, pos: BlockPos, face: EnumFacing) = @@ -113,7 +113,7 @@ object StandardLeafSupport : if (it == null) null else textureToValue[it] } - override fun processStitch(state: IBlockState, key: List, atlas: TextureMap) = atlas[key[0]] + override fun processStitch(state: IBlockState, key: List, atlas: TextureMap) = atlas.registerSprite(key[0]) override fun processTexture(states: List, texture: TextureAtlasSprite, atlas: TextureMap) { logger?.log(Level.DEBUG, "$logName: leaf texture ${texture.iconName}") diff --git a/src/main/kotlin/mods/betterfoliage/loader/BetterFoliageCore.kt b/src/main/kotlin/mods/betterfoliage/loader/BetterFoliageCore.kt index 2e9c436..9a26922 100644 --- a/src/main/kotlin/mods/betterfoliage/loader/BetterFoliageCore.kt +++ b/src/main/kotlin/mods/betterfoliage/loader/BetterFoliageCore.kt @@ -13,7 +13,7 @@ import org.objectweb.asm.Opcodes.* "kotlin", "mods.octarinecore.kotlin" ) -@IFMLLoadingPlugin.MCVersion("1.10.2") +@IFMLLoadingPlugin.MCVersion("1.11") class BetterFoliageLoader : ASMPlugin(BetterFoliageTransformer::class.java) class BetterFoliageTransformer : Transformer() { diff --git a/src/main/kotlin/mods/betterfoliage/loader/Refs.kt b/src/main/kotlin/mods/betterfoliage/loader/Refs.kt index 8398e0e..5a7ca5b 100644 --- a/src/main/kotlin/mods/betterfoliage/loader/Refs.kt +++ b/src/main/kotlin/mods/betterfoliage/loader/Refs.kt @@ -16,50 +16,53 @@ object Refs { val Random = ClassRef("java.util.Random") // Minecraft - val IBlockAccess = ClassRef("net.minecraft.world.IBlockAccess", "aih") - val IBlockState = ClassRef("net.minecraft.block.state.IBlockState", "ars") - val BlockStateBase = ClassRef("net.minecraft.block.state.BlockStateBase", "arp") - val BlockPos = ClassRef("net.minecraft.util.math.BlockPos", "cm") - val MutableBlockPos = ClassRef("net.minecraft.util.math.BlockPos\$MutableBlockPos", "cm\$a") - val BlockRenderLayer = ClassRef("net.minecraft.util.BlockRenderLayer", "ahv") - val EnumFacing = ClassRef("net.minecraft.util.EnumFacing", "ct") + val IBlockAccess = ClassRef("net.minecraft.world.IBlockAccess", "aju") + val IBlockState = ClassRef("net.minecraft.block.state.IBlockState", "atj") + val BlockStateBase = ClassRef("net.minecraft.block.state.BlockStateBase", "agg") + val BlockPos = ClassRef("net.minecraft.util.math.BlockPos", "co") + val MutableBlockPos = ClassRef("net.minecraft.util.math.BlockPos\$MutableBlockPos", "co\$a") + val BlockRenderLayer = ClassRef("net.minecraft.util.BlockRenderLayer", "aji") + val EnumFacing = ClassRef("net.minecraft.util.EnumFacing", "cv") - val World = ClassRef("net.minecraft.world.World", "aid") - val WorldClient = ClassRef("net.minecraft.client.multiplayer.WorldClient", "bln") + val World = ClassRef("net.minecraft.world.World", "ajq") + val WorldClient = ClassRef("net.minecraft.client.multiplayer.WorldClient", "bno") val showBarrierParticles = MethodRef(WorldClient, "showBarrierParticles", "func_184153_a", "a", ClassRef.void, ClassRef.int, ClassRef.int, ClassRef.int, ClassRef.int, Random, ClassRef.boolean, MutableBlockPos) - val Block = ClassRef("net.minecraft.block.Block", "akf") - val StateImplementation = ClassRef("net.minecraft.block.state.BlockStateContainer\$StateImplementation", "art\$a") + val Block = ClassRef("net.minecraft.block.Block", "als") + val StateImplementation = ClassRef("net.minecraft.block.state.BlockStateContainer\$StateImplementation", "atk\$a") val canRenderInLayer = MethodRef(Block, "canRenderInLayer", ClassRef.boolean, IBlockState, BlockRenderLayer) - val getAmbientOcclusionLightValue = MethodRef(StateImplementation, "getAmbientOcclusionLightValue", "func_185892_j", "j", ClassRef.float) + val getAmbientOcclusionLightValue = MethodRef(StateImplementation, "getAmbientOcclusionLightValue", "func_185892_j", "k", ClassRef.float) val useNeighborBrightness = MethodRef(StateImplementation, "useNeighborBrightness", "func_185916_f", "f", ClassRef.boolean) val doesSideBlockRendering = MethodRef(StateImplementation, "doesSideBlockRendering", ClassRef.boolean, IBlockAccess, BlockPos, EnumFacing) - val isOpaqueCube = MethodRef(StateImplementation, "isOpaqueCube", "func_185914_p", "p", ClassRef.boolean) + val isOpaqueCube = MethodRef(StateImplementation, "isOpaqueCube", "func_185914_p", "q", ClassRef.boolean) val randomDisplayTick = MethodRef(Block, "randomDisplayTick", "func_180655_c", "a", ClassRef.void, IBlockState, World, BlockPos, Random) - val BlockModelRenderer = ClassRef("net.minecraft.client.renderer.BlockModelRenderer", "box") - val AmbientOcclusionFace = ClassRef("net.minecraft.client.renderer.BlockModelRenderer\$AmbientOcclusionFace", "box\$b") - val ChunkCompileTaskGenerator = ClassRef("net.minecraft.client.renderer.chunk.ChunkCompileTaskGenerator", "bqs") - val VertexBuffer = ClassRef("net.minecraft.client.renderer.VertexBuffer", "bnt") + val BlockModelRenderer = ClassRef("net.minecraft.client.renderer.BlockModelRenderer", "bra") + val AmbientOcclusionFace = ClassRef("net.minecraft.client.renderer.BlockModelRenderer\$AmbientOcclusionFace", "bra\$b") + val ChunkCompileTaskGenerator = ClassRef("net.minecraft.client.renderer.chunk.ChunkCompileTaskGenerator", "bsw") + val VertexBuffer = ClassRef("net.minecraft.client.renderer.VertexBuffer", "bpw") val AOF_constructor = MethodRef(AmbientOcclusionFace, "", ClassRef.void, BlockModelRenderer) - val RenderChunk = ClassRef("net.minecraft.client.renderer.chunk.RenderChunk", "bqy") + val RenderChunk = ClassRef("net.minecraft.client.renderer.chunk.RenderChunk", "btc") val rebuildChunk = MethodRef(RenderChunk, "rebuildChunk", "func_178581_b", "b", ClassRef.void, ClassRef.float, ClassRef.float, ClassRef.float, ChunkCompileTaskGenerator) - val BlockRendererDispatcher = ClassRef("net.minecraft.client.renderer.BlockRendererDispatcher", "bov") + val BlockRendererDispatcher = ClassRef("net.minecraft.client.renderer.BlockRendererDispatcher", "bqy") val renderBlock = MethodRef(BlockRendererDispatcher, "renderBlock", "func_175018_a", "a", ClassRef.boolean, IBlockState, BlockPos, IBlockAccess, VertexBuffer) - val TextureAtlasSprite = ClassRef("net.minecraft.client.renderer.texture.TextureAtlasSprite", "bwe") + val TextureAtlasSprite = ClassRef("net.minecraft.client.renderer.texture.TextureAtlasSprite", "byw") + val TextureMap = ClassRef("net.minecraft.client.renderer.texture.TextureMap", "byv") + val IResourceManager = ClassRef("net.minecraft.client.resources.IResourceManager", "bzv") + val loadTextureAtlas = MethodRef(TextureMap, "loadTextureAtlas", "func_110571_b", "b", ClassRef.void, IResourceManager) - val IRegistry = ClassRef("net.minecraft.util.registry.IRegistry", "de") + val IRegistry = ClassRef("net.minecraft.util.registry.IRegistry", "dh") val ModelLoader = ClassRef("net.minecraftforge.client.model.ModelLoader") val stateModels = FieldRef(ModelLoader, "stateModels", Map) val setupModelRegistry = MethodRef(ModelLoader, "setupModelRegistry", "func_177570_a", "a", IRegistry) val IModel = ClassRef("net.minecraftforge.client.model.IModel") - val ModelBlock = ClassRef("net.minecraft.client.renderer.block.model.ModelBlock", "bpd") - val ResourceLocation = ClassRef("net.minecraft.util.ResourceLocation", "kn") - val ModelResourceLocation = ClassRef("net.minecraft.client.renderer.block.model.ModelResourceLocation", "byq") + val ModelBlock = ClassRef("net.minecraft.client.renderer.block.model.ModelBlock", "brg") + val ResourceLocation = ClassRef("net.minecraft.util.ResourceLocation", "kq") + val ModelResourceLocation = ClassRef("net.minecraft.client.renderer.block.model.ModelResourceLocation", "cbj") val VanillaModelWrapper = ClassRef("net.minecraftforge.client.model.ModelLoader\$VanillaModelWrapper") val model_VMW = FieldRef(VanillaModelWrapper, "model", ModelBlock) val location_VMW = FieldRef(VanillaModelWrapper, "location", ModelBlock) @@ -85,6 +88,7 @@ object Refs { val onAfterBakeModels = MethodRef(BetterFoliageHooks, "onAfterBakeModels", ClassRef.void, Map) val renderWorldBlock = MethodRef(BetterFoliageHooks, "renderWorldBlock", ClassRef.boolean, BlockRendererDispatcher, IBlockState, BlockPos, IBlockAccess, VertexBuffer, BlockRenderLayer) val canRenderBlockInLayer = MethodRef(BetterFoliageHooks, "canRenderBlockInLayer", ClassRef.boolean, Block, IBlockState, BlockRenderLayer) + val onLoadAtlasPre = MethodRef(BetterFoliageHooks, "onLoadAtlasPre", ClassRef.void, TextureMap) // Optifine val OptifineClassTransformer = ClassRef("optifine.OptiFineClassTransformer") diff --git a/src/main/kotlin/mods/octarinecore/client/render/AbstractBlockRenderingHandler.kt b/src/main/kotlin/mods/octarinecore/client/render/AbstractBlockRenderingHandler.kt index 4aeb148..4dd93ea 100644 --- a/src/main/kotlin/mods/octarinecore/client/render/AbstractBlockRenderingHandler.kt +++ b/src/main/kotlin/mods/octarinecore/client/render/AbstractBlockRenderingHandler.kt @@ -48,9 +48,9 @@ abstract class AbstractBlockRenderingHandler(modId: String) : ResourceHandler(mo * Render the block in the current [BlockContext] */ fun renderWorldBlockBase(ctx: BlockContext, dispatcher: BlockRendererDispatcher, renderer: VertexBuffer, layer: BlockRenderLayer?): Boolean { - ctx.blockState(Int3.zero).let { - if (layer == null || it.block.canRenderInLayer(layer)) - return dispatcher.renderBlock(it, ctx.pos, ctx.world, renderer) + ctx.blockState(Int3.zero).let { state -> + if (layer == null || state.block.canRenderInLayer(state, layer)) + return dispatcher.renderBlock(state, ctx.pos, ctx.world, renderer) } return false } @@ -111,8 +111,8 @@ class BlockContext() { /** Get the distance of the block from the camera (player). */ val cameraDistance: Int get() { val camera = Minecraft.getMinecraft().renderViewEntity ?: return 0 - return Math.abs(pos.x - MathHelper.floor_double(camera.posX)) + - Math.abs(pos.y - MathHelper.floor_double(camera.posY)) + - Math.abs(pos.z - MathHelper.floor_double(camera.posZ)) + return Math.abs(pos.x - MathHelper.floor(camera.posX)) + + Math.abs(pos.y - MathHelper.floor(camera.posY)) + + Math.abs(pos.z - MathHelper.floor(camera.posZ)) } } \ No newline at end of file diff --git a/src/main/kotlin/mods/octarinecore/client/resource/ResourceHandler.kt b/src/main/kotlin/mods/octarinecore/client/resource/ResourceHandler.kt index 550c3d1..9080fb9 100644 --- a/src/main/kotlin/mods/octarinecore/client/resource/ResourceHandler.kt +++ b/src/main/kotlin/mods/octarinecore/client/resource/ResourceHandler.kt @@ -117,7 +117,7 @@ class SimplexNoise() : IWorldLoadListener { var noise = NoiseGeneratorSimplex() override fun onWorldLoad(world: World) { noise = NoiseGeneratorSimplex(Random(world.worldInfo.seed)) } - operator fun get(x: Int, z: Int) = MathHelper.floor_double((noise.getValue(x.toDouble(), z.toDouble()) + 1.0) * 32.0) + operator fun get(x: Int, z: Int) = MathHelper.floor((noise.getValue(x.toDouble(), z.toDouble()) + 1.0) * 32.0) operator fun get(pos: Int3) = get(pos.x, pos.z) operator fun get(pos: BlockPos) = get(pos.x, pos.z) } \ No newline at end of file diff --git a/src/main/kotlin/mods/octarinecore/client/resource/Utils.kt b/src/main/kotlin/mods/octarinecore/client/resource/Utils.kt index 56a9fac..f798f63 100644 --- a/src/main/kotlin/mods/octarinecore/client/resource/Utils.kt +++ b/src/main/kotlin/mods/octarinecore/client/resource/Utils.kt @@ -37,8 +37,10 @@ operator fun IResourceManager.get(location: ResourceLocation): IResource? = tryD /** Index operator to get a texture sprite. */ operator fun TextureMap.get(name: String): TextureAtlasSprite? = getTextureExtry(ResourceLocation(name).toString()) +fun TextureMap.registerSprite(name: String): TextureAtlasSprite = registerSprite(ResourceLocation(name))!! + /** Load an image resource. */ -fun IResource.loadImage() = ImageIO.read(this.inputStream) +fun IResource.loadImage(): BufferedImage? = ImageIO.read(this.inputStream) /** Get the lines of a text resource. */ fun IResource.getLines(): List { diff --git a/src/main/resources/assets/betterfoliage/CactusDefault.cfg b/src/main/resources/assets/betterfoliage/cactus_default.cfg similarity index 100% rename from src/main/resources/assets/betterfoliage/CactusDefault.cfg rename to src/main/resources/assets/betterfoliage/cactus_default.cfg diff --git a/src/main/resources/assets/betterfoliage/CropDefault.cfg b/src/main/resources/assets/betterfoliage/crop_default.cfg similarity index 100% rename from src/main/resources/assets/betterfoliage/CropDefault.cfg rename to src/main/resources/assets/betterfoliage/crop_default.cfg diff --git a/src/main/resources/assets/betterfoliage/DirtDefault.cfg b/src/main/resources/assets/betterfoliage/dirt_default.cfg similarity index 100% rename from src/main/resources/assets/betterfoliage/DirtDefault.cfg rename to src/main/resources/assets/betterfoliage/dirt_default.cfg diff --git a/src/main/resources/assets/betterfoliage/GrassBlocksDefault.cfg b/src/main/resources/assets/betterfoliage/grass_blocks_default.cfg similarity index 100% rename from src/main/resources/assets/betterfoliage/GrassBlocksDefault.cfg rename to src/main/resources/assets/betterfoliage/grass_blocks_default.cfg diff --git a/src/main/resources/assets/betterfoliage/GrassModelsDefault.cfg b/src/main/resources/assets/betterfoliage/grass_models_default.cfg similarity index 100% rename from src/main/resources/assets/betterfoliage/GrassModelsDefault.cfg rename to src/main/resources/assets/betterfoliage/grass_models_default.cfg diff --git a/src/main/resources/assets/betterfoliage/leafTextureMappings.cfg b/src/main/resources/assets/betterfoliage/leaf_texture_mappings.cfg similarity index 100% rename from src/main/resources/assets/betterfoliage/leafTextureMappings.cfg rename to src/main/resources/assets/betterfoliage/leaf_texture_mappings.cfg diff --git a/src/main/resources/assets/betterfoliage/LeavesBlocksDefault.cfg b/src/main/resources/assets/betterfoliage/leaves_blocks_default.cfg similarity index 100% rename from src/main/resources/assets/betterfoliage/LeavesBlocksDefault.cfg rename to src/main/resources/assets/betterfoliage/leaves_blocks_default.cfg diff --git a/src/main/resources/assets/betterfoliage/LeavesModelsDefault.cfg b/src/main/resources/assets/betterfoliage/leaves_models_default.cfg similarity index 100% rename from src/main/resources/assets/betterfoliage/LeavesModelsDefault.cfg rename to src/main/resources/assets/betterfoliage/leaves_models_default.cfg diff --git a/src/main/resources/assets/betterfoliage/LilypadDefault.cfg b/src/main/resources/assets/betterfoliage/lilypad_default.cfg similarity index 100% rename from src/main/resources/assets/betterfoliage/LilypadDefault.cfg rename to src/main/resources/assets/betterfoliage/lilypad_default.cfg diff --git a/src/main/resources/assets/betterfoliage/LogBlocksDefault.cfg b/src/main/resources/assets/betterfoliage/log_blocks_default.cfg similarity index 100% rename from src/main/resources/assets/betterfoliage/LogBlocksDefault.cfg rename to src/main/resources/assets/betterfoliage/log_blocks_default.cfg diff --git a/src/main/resources/assets/betterfoliage/LogModelsDefault.cfg b/src/main/resources/assets/betterfoliage/log_models_default.cfg similarity index 100% rename from src/main/resources/assets/betterfoliage/LogModelsDefault.cfg rename to src/main/resources/assets/betterfoliage/log_models_default.cfg diff --git a/src/main/resources/assets/betterfoliage/SandDefault.cfg b/src/main/resources/assets/betterfoliage/sand_default.cfg similarity index 100% rename from src/main/resources/assets/betterfoliage/SandDefault.cfg rename to src/main/resources/assets/betterfoliage/sand_default.cfg