diff options
Diffstat (limited to 'src/texturePacks/java/moe/nea/firmament/features')
| -rw-r--r-- | src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomBlockTextures.kt | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomBlockTextures.kt b/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomBlockTextures.kt index f6407fd..79d1e46 100644 --- a/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomBlockTextures.kt +++ b/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomBlockTextures.kt @@ -23,6 +23,7 @@ import net.minecraft.block.Block import net.minecraft.block.BlockState import net.minecraft.client.render.model.Baker import net.minecraft.client.render.model.BlockStateModel +import net.minecraft.client.render.model.ReferencedModelsCollector import net.minecraft.client.render.model.SimpleBlockStateModel import net.minecraft.client.render.model.json.ModelVariant import net.minecraft.registry.RegistryKey @@ -308,6 +309,19 @@ object CustomBlockTextures { }) } + fun simpleBlockModel(blockId: Identifier): SimpleBlockStateModel.Unbaked { + // TODO: does this need to be shared between resolving and baking? I think not, but it would probably be wise to do so in the future. + return SimpleBlockStateModel.Unbaked( + ModelVariant(blockId) + ) + } + + @JvmStatic + fun collectExtraModels(modelsCollector: ReferencedModelsCollector) { + preparationFuture.join().collectAllReplacements() + .forEach { modelsCollector.resolve(simpleBlockModel(it.blockModelIdentifier)) } + } + @JvmStatic fun createBakedModels(baker: Baker, executor: Executor): CompletableFuture<Void?> { return preparationFuture.thenComposeAsync(Function { replacements -> @@ -315,7 +329,7 @@ object CustomBlockTextures { val modelBakingTask = AsyncHelper.mapValues(byModel, { blockId, replacements -> val unbakedModel = SimpleBlockStateModel.Unbaked( ModelVariant(blockId) - ) // TODO: do i need to resolve models here? Maybe this needs to be resolved earlier before baking. + ) val baked = unbakedModel.bake(baker) replacements.forEach { it.blockModel = baked |
