Skip to content

Commit

Permalink
Disable custom baked block models for modules if Sodium is present.
Browse files Browse the repository at this point in the history
It completely replaces the render pipeline but does not re-implement FabricBakedModel facilities, so these cannot work.
Means we also have to disable the facade module. It gets hidden in the creative tab and in REI via a plugin.
See #171.
  • Loading branch information
fnuecke committed Jan 8, 2023
1 parent 43d4c79 commit 7851f43
Show file tree
Hide file tree
Showing 10 changed files with 87 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package li.cil.tis3d.common.item;

import dev.architectury.injectables.annotations.ExpectPlatform;
import dev.architectury.registry.CreativeTabRegistry;
import li.cil.tis3d.api.API;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;

import java.util.Map;
Expand All @@ -19,9 +21,15 @@ public final class ModCreativeTabs {
BuiltInRegistries.ITEM.entrySet().stream()
.filter(entry -> entry.getKey().location().getNamespace().equals(API.MOD_ID))
.map(Map.Entry::getValue)
.filter(ModCreativeTabs::isItemEnabled)
.forEach(item -> output.accept(new ItemStack(item)));
}));

public static void initialize() {
}

@ExpectPlatform
private static boolean isItemEnabled(final Item item) {
throw new AssertionError();
}
}
7 changes: 4 additions & 3 deletions fabric/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,12 @@ dependencies {

modImplementation "fuzs.forgeconfigapiport:forgeconfigapiport-fabric:5.0.3"
modImplementation "curse.maven:markdownmanual-502485:4306715"

modRuntimeOnly "curse.maven:tooltipfix-411557:4167237"
modRuntimeOnly("me.shedaniel:RoughlyEnoughItems-fabric:10.0.581") {
modImplementation("me.shedaniel:RoughlyEnoughItems-fabric:10.0.581") {
exclude(group: "net.fabricmc.fabric-api")
}

modRuntimeOnly "curse.maven:tooltipfix-411557:4167237"
modRuntimeOnly "curse.maven:sodium-394468:4291859"
}

processResources {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,17 @@
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientChunkEvents;
import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry;
import net.fabricmc.fabric.api.event.client.player.ClientPickBlockGatherCallback;
import net.fabricmc.loader.api.FabricLoader;
import net.fabricmc.loader.impl.entrypoint.EntrypointUtils;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.phys.BlockHitResult;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public final class ClientBootstrapFabric implements ClientModInitializer {
private static final Logger LOGGER = LogManager.getLogger();

@Override
public void onInitializeClient() {
ClientBootstrap.run();
Expand Down Expand Up @@ -45,6 +50,10 @@ public void onInitializeClient() {
return ItemStack.EMPTY;
});

ModelLoadingRegistry.INSTANCE.registerResourceProvider(rm -> new ModuleModelLoader());
if (FabricLoader.getInstance().isModLoaded("sodium")) {
LOGGER.warn("Sodium detected, disabling modules that need custom block model rendering. See https://github.com/MightyPirates/TIS-3D/issues/171");
} else {
ModelLoadingRegistry.INSTANCE.registerResourceProvider(rm -> new ModuleModelLoader());
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package li.cil.tis3d.client.integration.roughlyenoughitems;

import li.cil.tis3d.common.item.Items;
import me.shedaniel.rei.api.client.entry.filtering.base.BasicFilteringRule;
import me.shedaniel.rei.api.client.plugins.REIClientPlugin;
import me.shedaniel.rei.api.common.util.EntryStacks;
import net.fabricmc.loader.api.FabricLoader;

import java.util.Collections;

public final class ModREIClientPlugin implements REIClientPlugin {
@Override
public void registerBasicEntryFiltering(final BasicFilteringRule<?> rule) {
if (FabricLoader.getInstance().isModLoaded("sodium")) {
rule.hide(() -> Collections.singleton(EntryStacks.of(Items.FACADE_MODULE.get())));
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
package li.cil.tis3d.client.integration.roughlyenoughitems;

import net.minecraft.MethodsReturnNonnullByDefault;

import javax.annotation.ParametersAreNonnullByDefault;
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package li.cil.tis3d.common.item.fabric;

import li.cil.tis3d.common.item.Items;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.world.item.Item;

public final class ModCreativeTabsImpl {
public static boolean isItemEnabled(final Item item) {
if (FabricLoader.getInstance().isModLoaded("sodium") && item == Items.FACADE_MODULE.get()) {
return false;
}
return true;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
package li.cil.tis3d.common.item.fabric;

import net.minecraft.MethodsReturnNonnullByDefault;

import javax.annotation.ParametersAreNonnullByDefault;
3 changes: 3 additions & 0 deletions fabric/src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@
],
"markdown_manual:registration": [
"li.cil.tis3d.client.fabric.ManualInitializer"
],
"rei_client": [
"li.cil.tis3d.client.integration.roughlyenoughitems.ModREIClientPlugin"
]
},
"depends": {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package li.cil.tis3d.common.item.forge;

import net.minecraft.world.item.Item;

public final class ModCreativeTabsImpl {
public static boolean isItemEnabled(final Item item) {
return true;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
package li.cil.tis3d.common.item.forge;

import net.minecraft.MethodsReturnNonnullByDefault;

import javax.annotation.ParametersAreNonnullByDefault;

0 comments on commit 7851f43

Please sign in to comment.