Skip to content

Commit acec611

Browse files
committed
Remove all remaining hard dependency on Fabric API modules
1 parent 7e77762 commit acec611

File tree

5 files changed

+26
-10
lines changed

5 files changed

+26
-10
lines changed

fabric/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ dependencies {
3232
modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
3333
testImplementation "net.fabricmc:fabric-loader-junit:${rootProject.fabric_loader_version}"
3434

35-
modIncludeImplementation(fabricApi.module("fabric-api-base", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
35+
modImplementation(fabricApi.module("fabric-api-base", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
3636
modImplementation(fabricApi.module("fabric-screen-api-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
37-
modIncludeImplementation(fabricApi.module("fabric-command-api-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
38-
modIncludeImplementation(fabricApi.module("fabric-models-v0", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
37+
modImplementation(fabricApi.module("fabric-command-api-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
38+
modImplementation(fabricApi.module("fabric-models-v0", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
3939
modImplementation(fabricApi.module("fabric-resource-loader-v0", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
4040
modImplementation("com.terraformersmc:modmenu:${rootProject.modmenu_version}") { transitive false }
4141
modImplementation "curse.maven:spark-361579:${rootProject.spark_fabric_version}"
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package org.embeddedt.modernfix.fabric.bridge;
2+
3+
import net.fabricmc.fabric.impl.client.model.ModelLoadingRegistryImpl;
4+
import net.minecraft.client.resources.model.ModelBakery;
5+
import net.minecraft.resources.ResourceLocation;
6+
import net.minecraft.server.packs.resources.ResourceManager;
7+
8+
import java.util.function.Consumer;
9+
10+
public class ModelV0Bridge {
11+
public static void populate(Consumer<ResourceLocation> modelConsumer, ModelBakery bakery, ResourceManager manager) {
12+
ModelLoadingRegistryImpl.LoaderInstance instance = ModelLoadingRegistryImpl.begin(bakery, manager);
13+
instance.onModelPopulation(modelConsumer);
14+
instance.finish();
15+
}
16+
}

fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/dynamic_resources/ModelBakeryMixin.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import com.google.common.collect.ImmutableList;
99
import com.mojang.math.Transformation;
1010
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
11-
import net.fabricmc.fabric.impl.client.model.ModelLoadingRegistryImpl;
11+
import net.fabricmc.loader.api.FabricLoader;
1212
import net.minecraft.client.Minecraft;
1313
import net.minecraft.client.renderer.block.model.BlockModel;
1414
import net.minecraft.client.renderer.block.model.BlockModelDefinition;
@@ -39,6 +39,7 @@
3939
import org.embeddedt.modernfix.duck.IExtendedModelBakery;
4040
import org.embeddedt.modernfix.dynamicresources.DynamicBakedModelProvider;
4141
import org.embeddedt.modernfix.dynamicresources.ModelBakeryHelpers;
42+
import org.embeddedt.modernfix.fabric.bridge.ModelV0Bridge;
4243
import org.embeddedt.modernfix.util.LayeredForwardingMap;
4344
import org.jetbrains.annotations.Nullable;
4445
import org.spongepowered.asm.mixin.*;
@@ -138,9 +139,9 @@ public UnbakedModel put(ResourceLocation key, UnbakedModel value) {
138139
};
139140
filler.push(s);
140141
this.injectedModels = new ObjectOpenHashSet<>();
141-
ModelLoadingRegistryImpl.LoaderInstance instance = ModelLoadingRegistryImpl.begin((ModelBakery)(Object)this, this.resourceManager);
142-
instance.onModelPopulation(this.injectedModels::add);
143-
instance.finish();
142+
if(FabricLoader.getInstance().isModLoaded("fabric-models-v0")) {
143+
ModelV0Bridge.populate(this.injectedModels::add, (ModelBakery)(Object)this, this.resourceManager);
144+
}
144145
}
145146

146147
private <K, V> void onModelRemoved(RemovalNotification<K, V> notification) {

fabric/src/main/java/org/embeddedt/modernfix/platform/fabric/ModernFixPlatformHooksImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ public void applyASMTransformers(String mixinClassName, ClassNode targetClass) {
9393
}
9494

9595
public void onServerCommandRegister(Consumer<CommandDispatcher<CommandSourceStack>> handler) {
96-
CommandRegistrationCallback.EVENT.register((dispatcher, arg) -> handler.accept(dispatcher));
96+
if(FabricLoader.getInstance().isModLoaded("fabric-command-api-v1"))
97+
CommandRegistrationCallback.EVENT.register((dispatcher, arg) -> handler.accept(dispatcher));
9798
}
9899

99100
private static Multimap<String, String> modOptions;

fabric/src/main/resources/fabric.mod.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@
3232
"modernfix-common.mixins.json"
3333
],
3434
"depends": {
35-
"fabric-command-api-v1": "*",
36-
"fabric-models-v0": "*",
3735
"minecraft": ">=1.16.2"
3836
},
3937
"breaks": {

0 commit comments

Comments
 (0)