port to 1.9.4
This commit is contained in:
10
build.gradle
10
build.gradle
@@ -2,8 +2,8 @@ apply plugin: "net.minecraftforge.gradle.forge"
|
|||||||
apply plugin: 'kotlin'
|
apply plugin: 'kotlin'
|
||||||
|
|
||||||
group = 'com.github.octarine-noise'
|
group = 'com.github.octarine-noise'
|
||||||
version = "2.0.11"
|
version = "2.0.12b"
|
||||||
archivesBaseName = rootProject.name + '-MC1.9'
|
archivesBaseName = rootProject.name + '-MC1.9.4'
|
||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
ext.kotlin_version = '1.0.0'
|
ext.kotlin_version = '1.0.0'
|
||||||
@@ -19,7 +19,7 @@ buildscript {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath "net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT"
|
classpath "net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT"
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -32,8 +32,8 @@ dependencies {
|
|||||||
|
|
||||||
}
|
}
|
||||||
minecraft {
|
minecraft {
|
||||||
version = '1.9-12.16.1.1894'
|
version = '1.9.4-12.17.0.1968'
|
||||||
mappings = 'snapshot_20160509'
|
mappings = 'snapshot_20160619'
|
||||||
runDir = 'run'
|
runDir = 'run'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ 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.9]"
|
const val MC_VERSIONS = "[1.9.4]"
|
||||||
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
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import mods.betterfoliage.BetterFoliageMod
|
|||||||
import mods.betterfoliage.client.gui.BiomeListConfigEntry
|
import mods.betterfoliage.client.gui.BiomeListConfigEntry
|
||||||
import mods.octarinecore.common.config.*
|
import mods.octarinecore.common.config.*
|
||||||
import net.minecraft.client.Minecraft
|
import net.minecraft.client.Minecraft
|
||||||
import net.minecraft.world.biome.BiomeGenBase
|
import net.minecraft.world.biome.Biome
|
||||||
import net.minecraftforge.fml.client.event.ConfigChangedEvent
|
import net.minecraftforge.fml.client.event.ConfigChangedEvent
|
||||||
import net.minecraftforge.fml.relauncher.Side
|
import net.minecraftforge.fml.relauncher.Side
|
||||||
import net.minecraftforge.fml.relauncher.SideOnly
|
import net.minecraftforge.fml.relauncher.SideOnly
|
||||||
@@ -12,17 +12,17 @@ import net.minecraftforge.fml.relauncher.SideOnly
|
|||||||
// BetterFoliage-specific property delegates
|
// BetterFoliage-specific property delegates
|
||||||
private fun featureEnable() = boolean(true).lang("enabled")
|
private fun featureEnable() = boolean(true).lang("enabled")
|
||||||
private fun distanceLimit() = int(min=1, max=1000, default=1000).lang("distance")
|
private fun distanceLimit() = int(min=1, max=1000, default=1000).lang("distance")
|
||||||
fun biomeList(defaults: (BiomeGenBase) -> Boolean) = intList {
|
fun biomeList(defaults: (Biome) -> Boolean) = intList {
|
||||||
BiomeGenBase.REGISTRY
|
Biome.REGISTRY
|
||||||
.filter { it != null && defaults(it) }
|
.filter { it != null && defaults(it) }
|
||||||
.map { BiomeGenBase.REGISTRY.getIDForObject(it) }
|
.map { Biome.REGISTRY.getIDForObject(it) }
|
||||||
.toTypedArray()
|
.toTypedArray()
|
||||||
}.apply { guiClass = BiomeListConfigEntry::class.java }
|
}.apply { guiClass = BiomeListConfigEntry::class.java }
|
||||||
|
|
||||||
// Biome filter methods
|
// Biome filter methods
|
||||||
private fun BiomeGenBase.filterTemp(min: Float?, max: Float?) = (min == null || min <= temperature) && (max == null || max >= temperature)
|
private fun Biome.filterTemp(min: Float?, max: Float?) = (min == null || min <= temperature) && (max == null || max >= temperature)
|
||||||
private fun BiomeGenBase.filterRain(min: Float?, max: Float?) = (min == null || min <= rainfall) && (max == null || max >= rainfall)
|
private fun Biome.filterRain(min: Float?, max: Float?) = (min == null || min <= rainfall) && (max == null || max >= rainfall)
|
||||||
private fun BiomeGenBase.filterClass(vararg name: String) = name.any { it in this.javaClass.name.toLowerCase() }
|
private fun Biome.filterClass(vararg name: String) = name.any { it in this.javaClass.name.toLowerCase() }
|
||||||
|
|
||||||
// Config singleton
|
// Config singleton
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package mods.betterfoliage.client.gui
|
package mods.betterfoliage.client.gui
|
||||||
|
|
||||||
import mods.octarinecore.client.gui.IdListConfigEntry
|
import mods.octarinecore.client.gui.IdListConfigEntry
|
||||||
import net.minecraft.world.biome.BiomeGenBase
|
import net.minecraft.world.biome.Biome
|
||||||
import net.minecraftforge.fml.client.config.GuiConfig
|
import net.minecraftforge.fml.client.config.GuiConfig
|
||||||
import net.minecraftforge.fml.client.config.GuiConfigEntries
|
import net.minecraftforge.fml.client.config.GuiConfigEntries
|
||||||
import net.minecraftforge.fml.client.config.IConfigElement
|
import net.minecraftforge.fml.client.config.IConfigElement
|
||||||
@@ -11,9 +11,9 @@ class BiomeListConfigEntry(
|
|||||||
owningScreen: GuiConfig,
|
owningScreen: GuiConfig,
|
||||||
owningEntryList: GuiConfigEntries,
|
owningEntryList: GuiConfigEntries,
|
||||||
configElement: IConfigElement)
|
configElement: IConfigElement)
|
||||||
: IdListConfigEntry<BiomeGenBase>(owningScreen, owningEntryList, configElement) {
|
: IdListConfigEntry<Biome>(owningScreen, owningEntryList, configElement) {
|
||||||
|
|
||||||
override val baseSet: List<BiomeGenBase> get() = BiomeGenBase.REGISTRY.filterNotNull()
|
override val baseSet: List<Biome> get() = Biome.REGISTRY.filterNotNull()
|
||||||
override val BiomeGenBase.itemId: Int get() = BiomeGenBase.REGISTRY.getIDForObject(this)
|
override val Biome.itemId: Int get() = Biome.REGISTRY.getIDForObject(this)
|
||||||
override val BiomeGenBase.itemName: String get() = this.biomeName
|
override val Biome.itemName: String get() = this.biomeName
|
||||||
}
|
}
|
||||||
@@ -103,14 +103,14 @@ class BetterFoliageTransformer : Transformer() {
|
|||||||
transformMethod(Refs.rebuildChunk) {
|
transformMethod(Refs.rebuildChunk) {
|
||||||
find(invokeRef(Refs.renderBlock))?.replace {
|
find(invokeRef(Refs.renderBlock))?.replace {
|
||||||
log.info("Applying RenderChunk block render override")
|
log.info("Applying RenderChunk block render override")
|
||||||
varinsn(ALOAD, if (isOptifinePresent) 22 else 21)
|
varinsn(ALOAD, if (isOptifinePresent) 22 else 20)
|
||||||
invokeStatic(Refs.renderWorldBlock)
|
invokeStatic(Refs.renderWorldBlock)
|
||||||
}
|
}
|
||||||
if (isOptifinePresent) {
|
if (isOptifinePresent) {
|
||||||
find(varinsn(ISTORE, 23))?.insertAfter {
|
find(varinsn(ISTORE, 23))?.insertAfter {
|
||||||
log.info("Applying RenderChunk block layer override")
|
log.info("Applying RenderChunk block layer override")
|
||||||
varinsn(ALOAD, 19)
|
varinsn(ALOAD, 19)
|
||||||
varinsn(ALOAD, 20)
|
varinsn(ALOAD, 18)
|
||||||
varinsn(ALOAD, 22)
|
varinsn(ALOAD, 22)
|
||||||
invokeStatic(Refs.canRenderBlockInLayer)
|
invokeStatic(Refs.canRenderBlockInLayer)
|
||||||
varinsn(ISTORE, 23)
|
varinsn(ISTORE, 23)
|
||||||
|
|||||||
@@ -16,19 +16,19 @@ object Refs {
|
|||||||
|
|
||||||
// Minecraft
|
// Minecraft
|
||||||
val IBlockAccess = ClassRef("net.minecraft.world.IBlockAccess", "ahx")
|
val IBlockAccess = ClassRef("net.minecraft.world.IBlockAccess", "ahx")
|
||||||
val IBlockState = ClassRef("net.minecraft.block.state.IBlockState", "arc")
|
val IBlockState = ClassRef("net.minecraft.block.state.IBlockState", "ard")
|
||||||
val BlockStateBase = ClassRef("net.minecraft.block.state.BlockStateBase", "ara")
|
val BlockStateBase = ClassRef("net.minecraft.block.state.BlockStateBase", "ara")
|
||||||
val BlockPos = ClassRef("net.minecraft.util.math.BlockPos", "cj")
|
val BlockPos = ClassRef("net.minecraft.util.math.BlockPos", "cl")
|
||||||
val MutableBlockPos = ClassRef("net.minecraft.util.math.BlockPos\$MutableBlockPos", "cj\$a")
|
val MutableBlockPos = ClassRef("net.minecraft.util.math.BlockPos\$MutableBlockPos", "cl\$a")
|
||||||
val BlockRenderLayer = ClassRef("net.minecraft.util.BlockRenderLayer", "ahm")
|
val BlockRenderLayer = ClassRef("net.minecraft.util.BlockRenderLayer", "ahm")
|
||||||
val EnumFacing = ClassRef("net.minecraft.util.EnumFacing", "cq")
|
val EnumFacing = ClassRef("net.minecraft.util.EnumFacing", "cs")
|
||||||
|
|
||||||
val World = ClassRef("net.minecraft.world.World", "aht")
|
val World = ClassRef("net.minecraft.world.World", "aht")
|
||||||
val WorldClient = ClassRef("net.minecraft.client.multiplayer.WorldClient", "bku")
|
val WorldClient = ClassRef("net.minecraft.client.multiplayer.WorldClient", "bks")
|
||||||
val showBarrierParticles = MethodRef(WorldClient, "showBarrierParticles", "func_184153_a", "a", ClassRef.void, ClassRef.int, ClassRef.int, ClassRef.int, ClassRef.int, Random, ClassRef.boolean, MutableBlockPos)
|
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", "ajt")
|
val Block = ClassRef("net.minecraft.block.Block", "ajt")
|
||||||
val StateImplementation = ClassRef("net.minecraft.block.state.BlockStateContainer\$StateImplementation", "ard\$a")
|
val StateImplementation = ClassRef("net.minecraft.block.state.BlockStateContainer\$StateImplementation", "are\$a")
|
||||||
val canRenderInLayer = MethodRef(Block, "canRenderInLayer", ClassRef.boolean, IBlockState, BlockRenderLayer)
|
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", "j", ClassRef.float)
|
||||||
val useNeighborBrightness = MethodRef(StateImplementation, "useNeighborBrightness", "func_185916_f", "f", ClassRef.boolean)
|
val useNeighborBrightness = MethodRef(StateImplementation, "useNeighborBrightness", "func_185916_f", "f", ClassRef.boolean)
|
||||||
@@ -36,28 +36,28 @@ object Refs {
|
|||||||
val isOpaqueCube = MethodRef(StateImplementation, "isOpaqueCube", "", "p", ClassRef.boolean)
|
val isOpaqueCube = MethodRef(StateImplementation, "isOpaqueCube", "", "p", ClassRef.boolean)
|
||||||
val randomDisplayTick = MethodRef(Block, "randomDisplayTick", "func_180655_c", "a", ClassRef.void, IBlockState, World, BlockPos, Random)
|
val randomDisplayTick = MethodRef(Block, "randomDisplayTick", "func_180655_c", "a", ClassRef.void, IBlockState, World, BlockPos, Random)
|
||||||
|
|
||||||
val BlockModelRenderer = ClassRef("net.minecraft.client.renderer.BlockModelRenderer", "boe")
|
val BlockModelRenderer = ClassRef("net.minecraft.client.renderer.BlockModelRenderer", "bob")
|
||||||
val AmbientOcclusionFace = ClassRef("net.minecraft.client.renderer.BlockModelRenderer\$AmbientOcclusionFace", "boe\$b")
|
val AmbientOcclusionFace = ClassRef("net.minecraft.client.renderer.BlockModelRenderer\$AmbientOcclusionFace", "bob\$b")
|
||||||
val ChunkCompileTaskGenerator = ClassRef("net.minecraft.client.renderer.chunk.ChunkCompileTaskGenerator", "bpz")
|
val ChunkCompileTaskGenerator = ClassRef("net.minecraft.client.renderer.chunk.ChunkCompileTaskGenerator", "bpw")
|
||||||
val VertexBuffer = ClassRef("net.minecraft.client.renderer.VertexBuffer", "bmz")
|
val VertexBuffer = ClassRef("net.minecraft.client.renderer.VertexBuffer", "bmx")
|
||||||
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", "bqf")
|
val RenderChunk = ClassRef("net.minecraft.client.renderer.chunk.RenderChunk", "bqc")
|
||||||
val rebuildChunk = MethodRef(RenderChunk, "rebuildChunk", "func_178581_b", "b", ClassRef.void, ClassRef.float, ClassRef.float, ClassRef.float, ChunkCompileTaskGenerator)
|
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", "boc")
|
val BlockRendererDispatcher = ClassRef("net.minecraft.client.renderer.BlockRendererDispatcher", "bnz")
|
||||||
val renderBlock = MethodRef(BlockRendererDispatcher, "renderBlock", "func_175018_a", "a", ClassRef.boolean, IBlockState, BlockPos, IBlockAccess, VertexBuffer)
|
val renderBlock = MethodRef(BlockRendererDispatcher, "renderBlock", "func_175018_a", "a", ClassRef.boolean, IBlockState, BlockPos, IBlockAccess, VertexBuffer)
|
||||||
|
|
||||||
val TextureAtlasSprite = ClassRef("net.minecraft.client.renderer.texture.TextureAtlasSprite", "bvh")
|
val TextureAtlasSprite = ClassRef("net.minecraft.client.renderer.texture.TextureAtlasSprite", "bve")
|
||||||
|
|
||||||
val IRegistry = ClassRef("net.minecraft.util.registry.IRegistry", "db")
|
val IRegistry = ClassRef("net.minecraft.util.registry.IRegistry", "dd")
|
||||||
val ModelLoader = ClassRef("net.minecraftforge.client.model.ModelLoader")
|
val ModelLoader = ClassRef("net.minecraftforge.client.model.ModelLoader")
|
||||||
val stateModels = FieldRef(ModelLoader, "stateModels", Map)
|
val stateModels = FieldRef(ModelLoader, "stateModels", Map)
|
||||||
val setupModelRegistry = MethodRef(ModelLoader, "setupModelRegistry", "func_177570_a", "a", IRegistry)
|
val setupModelRegistry = MethodRef(ModelLoader, "setupModelRegistry", "func_177570_a", "a", IRegistry)
|
||||||
|
|
||||||
val IModel = ClassRef("net.minecraftforge.client.model.IModel")
|
val IModel = ClassRef("net.minecraftforge.client.model.IModel")
|
||||||
val ModelBlock = ClassRef("net.minecraft.client.renderer.block.model.ModelBlock", "bok")
|
val ModelBlock = ClassRef("net.minecraft.client.renderer.block.model.ModelBlock", "boh")
|
||||||
val ModelResourceLocation = ClassRef("net.minecraft.client.renderer.block.model.ModelResourceLocation", "bxt")
|
val ModelResourceLocation = ClassRef("net.minecraft.client.renderer.block.model.ModelResourceLocation", "bxc")
|
||||||
val VanillaModelWrapper = ClassRef("net.minecraftforge.client.model.ModelLoader\$VanillaModelWrapper")
|
val VanillaModelWrapper = ClassRef("net.minecraftforge.client.model.ModelLoader\$VanillaModelWrapper")
|
||||||
val model_VMW = FieldRef(VanillaModelWrapper, "model", ModelBlock)
|
val model_VMW = FieldRef(VanillaModelWrapper, "model", ModelBlock)
|
||||||
val location_VMW = FieldRef(VanillaModelWrapper, "location", ModelBlock)
|
val location_VMW = FieldRef(VanillaModelWrapper, "location", ModelBlock)
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import net.minecraft.util.BlockRenderLayer
|
|||||||
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.IBlockAccess
|
import net.minecraft.world.IBlockAccess
|
||||||
import net.minecraft.world.biome.BiomeGenBase
|
import net.minecraft.world.biome.Biome
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [ThreadLocal] instance of [BlockContext] representing the block being rendered.
|
* [ThreadLocal] instance of [BlockContext] representing the block being rendered.
|
||||||
@@ -83,7 +83,7 @@ class BlockContext() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Get the biome ID at the block position. */
|
/** Get the biome ID at the block position. */
|
||||||
val biomeId: Int get() = BiomeGenBase.getIdForBiome(world!!.getBiomeGenForCoords(pos))
|
val biomeId: Int get() = Biome.getIdForBiome(world!!.getBiome(pos))
|
||||||
|
|
||||||
/** Get the centerpoint of the block being rendered. */
|
/** Get the centerpoint of the block being rendered. */
|
||||||
val blockCenter: Double3 get() = Double3(pos.x + 0.5, pos.y + 0.5, pos.z + 0.5)
|
val blockCenter: Double3 get() = Double3(pos.x + 0.5, pos.y + 0.5, pos.z + 0.5)
|
||||||
|
|||||||
@@ -3,13 +3,13 @@ package mods.octarinecore.client.render
|
|||||||
import mods.octarinecore.PI2
|
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.EntityFX
|
import net.minecraft.client.particle.Particle
|
||||||
import net.minecraft.client.renderer.VertexBuffer
|
import net.minecraft.client.renderer.VertexBuffer
|
||||||
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
|
||||||
|
|
||||||
abstract class AbstractEntityFX(world: World, x: Double, y: Double, z: Double) : EntityFX(world, x, y, z) {
|
abstract class AbstractEntityFX(world: World, x: Double, y: Double, z: Double) : Particle(world, x, y, z) {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@JvmStatic val sin = Array(64) { idx -> Math.sin(PI2 / 64.0 * idx) }
|
@JvmStatic val sin = Array(64) { idx -> Math.sin(PI2 / 64.0 * idx) }
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class OffsetBlockAccess(val original: IBlockAccess, val modded: BlockPos, val ta
|
|||||||
if (pos != null && pos.x == modded.x && pos.y == modded.y && pos.z == modded.z) target else pos
|
if (pos != null && pos.x == modded.x && pos.y == modded.y && pos.z == modded.z) target else pos
|
||||||
|
|
||||||
override fun extendedLevelsInChunkCache() = original.extendedLevelsInChunkCache()
|
override fun extendedLevelsInChunkCache() = original.extendedLevelsInChunkCache()
|
||||||
override fun getBiomeGenForCoords(pos: BlockPos?) = original.getBiomeGenForCoords(actualPos(pos))
|
override fun getBiome(pos: BlockPos?) = original.getBiome(actualPos(pos))
|
||||||
override fun getBlockState(pos: BlockPos?) = original.getBlockState(actualPos(pos))
|
override fun getBlockState(pos: BlockPos?) = original.getBlockState(actualPos(pos))
|
||||||
override fun getCombinedLight(pos: BlockPos?, lightValue: Int) = original.getCombinedLight(actualPos(pos), lightValue)
|
override fun getCombinedLight(pos: BlockPos?, lightValue: Int) = original.getCombinedLight(actualPos(pos), lightValue)
|
||||||
override fun getStrongPower(pos: BlockPos?, direction: EnumFacing?) = original.getStrongPower(actualPos(pos), direction)
|
override fun getStrongPower(pos: BlockPos?, direction: EnumFacing?) = original.getStrongPower(actualPos(pos), direction)
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ val IModel.modelBlockAndLoc: Pair<ModelBlock, ResourceLocation>? get() {
|
|||||||
fun Pair<ModelBlock, ResourceLocation>.derivesFrom(targetLocation: String): Boolean {
|
fun Pair<ModelBlock, ResourceLocation>.derivesFrom(targetLocation: String): Boolean {
|
||||||
if (second.stripStart("models/") == ResourceLocation(targetLocation)) return true
|
if (second.stripStart("models/") == ResourceLocation(targetLocation)) return true
|
||||||
if (first.parent != null && first.parentLocation != null)
|
if (first.parent != null && first.parentLocation != null)
|
||||||
return Pair(first.parent, first.parentLocation).derivesFrom(targetLocation)
|
return Pair(first.parent, first.parentLocation!!).derivesFrom(targetLocation)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ package mods.octarinecore.client.resource
|
|||||||
import mods.octarinecore.metaprog.reflectField
|
import mods.octarinecore.metaprog.reflectField
|
||||||
import net.minecraft.client.resources.IResourcePack
|
import net.minecraft.client.resources.IResourcePack
|
||||||
import net.minecraft.client.resources.data.IMetadataSection
|
import net.minecraft.client.resources.data.IMetadataSection
|
||||||
import net.minecraft.client.resources.data.IMetadataSerializer
|
import net.minecraft.client.resources.data.IMetadataSectionSerializer
|
||||||
|
import net.minecraft.client.resources.data.MetadataSerializer
|
||||||
import net.minecraft.client.resources.data.PackMetadataSection
|
import net.minecraft.client.resources.data.PackMetadataSection
|
||||||
import net.minecraft.util.ResourceLocation
|
import net.minecraft.util.ResourceLocation
|
||||||
import net.minecraft.util.text.TextComponentString
|
import net.minecraft.util.text.TextComponentString
|
||||||
@@ -27,8 +28,8 @@ class GeneratorPack(val name: String, vararg val generators: GeneratorBase) : IR
|
|||||||
override fun getPackName() = name
|
override fun getPackName() = name
|
||||||
override fun getPackImage() = null
|
override fun getPackImage() = null
|
||||||
override fun getResourceDomains() = HashSet(generators.map { it.domain })
|
override fun getResourceDomains() = HashSet(generators.map { it.domain })
|
||||||
override fun <T: IMetadataSection> getPackMetadata(serializer: IMetadataSerializer?, type: String?) =
|
override fun <T : IMetadataSection?> getPackMetadata(serializer: MetadataSerializer?, sectionName: String?) =
|
||||||
if (type == "pack") PackMetadataSection(TextComponentString("Generated resources"), 1) as? T else null
|
if (sectionName == "pack") PackMetadataSection(TextComponentString("Generated resources"), 1) as? T else null
|
||||||
|
|
||||||
override fun resourceExists(location: ResourceLocation?): Boolean =
|
override fun resourceExists(location: ResourceLocation?): Boolean =
|
||||||
if (location == null) false
|
if (location == null) false
|
||||||
|
|||||||
Reference in New Issue
Block a user