Move to new model loading API.
This commit is contained in:
parent
aa4abdfdb5
commit
a31af2bd7c
2 changed files with 28 additions and 19 deletions
|
@ -9,8 +9,8 @@ mod_version=5.8.5
|
||||||
# check these on https://modmuss50.me/fabric.html
|
# check these on https://modmuss50.me/fabric.html
|
||||||
minecraft_version=1.20.1
|
minecraft_version=1.20.1
|
||||||
yarn_version=1.20.1+build.1
|
yarn_version=1.20.1+build.1
|
||||||
loader_version=0.14.21
|
loader_version=0.14.22
|
||||||
fapi_version=0.83.0+1.20.1
|
fapi_version=0.86.1+1.20.1
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
energy_version=3.0.0
|
energy_version=3.0.0
|
||||||
|
|
|
@ -26,7 +26,7 @@ package techreborn;
|
||||||
|
|
||||||
import net.fabricmc.api.ClientModInitializer;
|
import net.fabricmc.api.ClientModInitializer;
|
||||||
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
|
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
|
||||||
import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry;
|
import net.fabricmc.fabric.api.client.model.loading.v1.PreparableModelLoadingPlugin;
|
||||||
import net.fabricmc.fabric.api.client.rendering.v1.EntityRendererRegistry;
|
import net.fabricmc.fabric.api.client.rendering.v1.EntityRendererRegistry;
|
||||||
import net.fabricmc.fabric.api.renderer.v1.RendererAccess;
|
import net.fabricmc.fabric.api.renderer.v1.RendererAccess;
|
||||||
import net.minecraft.client.item.ClampedModelPredicateProvider;
|
import net.minecraft.client.item.ClampedModelPredicateProvider;
|
||||||
|
@ -80,6 +80,7 @@ import techreborn.items.tool.industrial.NanosaberItem;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
@ -87,38 +88,46 @@ public class TechRebornClient implements ClientModInitializer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInitializeClient() {
|
public void onInitializeClient() {
|
||||||
ModelLoadingRegistry.INSTANCE.registerModelProvider((manager, out) -> {
|
PreparableModelLoadingPlugin.register((resourceManager, executor) -> CompletableFuture.completedFuture(null), (data, pluginContext) -> {
|
||||||
out.accept(new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "cell_base"), "inventory"));
|
pluginContext.addModels(
|
||||||
out.accept(new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "cell_fluid"), "inventory"));
|
new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "cell_base"), "inventory"),
|
||||||
out.accept(new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "cell_background"), "inventory"));
|
new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "cell_fluid"), "inventory"),
|
||||||
out.accept(new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "cell_glass"), "inventory"));
|
new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "cell_background"), "inventory"),
|
||||||
|
new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "cell_glass"), "inventory"),
|
||||||
|
new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "bucket_base"), "inventory"),
|
||||||
|
new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "bucket_fluid"), "inventory"),
|
||||||
|
new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "bucket_background"), "inventory")
|
||||||
|
);
|
||||||
|
|
||||||
out.accept(new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "bucket_base"), "inventory"));
|
pluginContext.modifyModelBeforeBake().register((model, context) -> {
|
||||||
out.accept(new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "bucket_fluid"), "inventory"));
|
final Identifier id = context.id();
|
||||||
out.accept(new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "bucket_background"), "inventory"));
|
|
||||||
});
|
|
||||||
|
|
||||||
ModelLoadingRegistry.INSTANCE.registerVariantProvider(resourceManager -> (modelIdentifier, modelProviderContext) -> {
|
if (!id.getNamespace().equals(TechReborn.MOD_ID)) {
|
||||||
if (modelIdentifier.getNamespace().equals(TechReborn.MOD_ID)) {
|
return model;
|
||||||
if (modelIdentifier.getPath().equals("cell")) {
|
}
|
||||||
|
|
||||||
|
if (id.getPath().equals("cell")) {
|
||||||
if (!RendererAccess.INSTANCE.hasRenderer()) {
|
if (!RendererAccess.INSTANCE.hasRenderer()) {
|
||||||
return JsonUnbakedModel.deserialize("{\"parent\":\"minecraft:item/generated\",\"textures\":{\"layer0\":\"techreborn:item/cell_background\"}}");
|
return JsonUnbakedModel.deserialize("{\"parent\":\"minecraft:item/generated\",\"textures\":{\"layer0\":\"techreborn:item/cell_background\"}}");
|
||||||
}
|
}
|
||||||
|
|
||||||
return new UnbakedDynamicModel(DynamicCellBakedModel::new);
|
return new UnbakedDynamicModel(DynamicCellBakedModel::new);
|
||||||
}
|
}
|
||||||
Fluid fluid = Registries.FLUID.get(new Identifier(TechReborn.MOD_ID, modelIdentifier.getPath().split("_bucket")[0]));
|
|
||||||
if (modelIdentifier.getPath().endsWith("_bucket") && fluid != Fluids.EMPTY) {
|
Fluid fluid = Registries.FLUID.get(new Identifier(TechReborn.MOD_ID, id.getPath().split("_bucket")[0]));
|
||||||
|
if (id.getPath().endsWith("_bucket") && fluid != Fluids.EMPTY) {
|
||||||
if (!RendererAccess.INSTANCE.hasRenderer()) {
|
if (!RendererAccess.INSTANCE.hasRenderer()) {
|
||||||
return JsonUnbakedModel.deserialize("{\"parent\":\"minecraft:item/generated\",\"textures\":{\"layer0\":\"minecraft:item/bucket\"}}");
|
return JsonUnbakedModel.deserialize("{\"parent\":\"minecraft:item/generated\",\"textures\":{\"layer0\":\"minecraft:item/bucket\"}}");
|
||||||
}
|
}
|
||||||
|
|
||||||
return new UnbakedDynamicModel(DynamicBucketBakedModel::new);
|
return new UnbakedDynamicModel(DynamicBucketBakedModel::new);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return null;
|
return model;
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
StackToolTipHandler.setup();
|
StackToolTipHandler.setup();
|
||||||
ClientboundPacketHandlers.init();
|
ClientboundPacketHandlers.init();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue