diff --git a/build.gradle.kts b/build.gradle.kts index c07e82bd1..480cc5988 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -67,9 +67,6 @@ dependencies { // FIXME remove when NG not loading this from NF itself is fixed implementation("io.github.llamalad7:mixinextras-neoforge:0.3.5") - // Mods - compatCompileOnly("curse.maven:codechickenlib-242818:${"codechicken_fileid"()}") - compileOnly("org.projectlombok:lombok:1.18.30") annotationProcessor("org.projectlombok:lombok:1.18.30") } diff --git a/gradle.properties b/gradle.properties index 80a842f05..962839a35 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,7 +19,6 @@ archives_base_name = embeddium forge_version=21.1.61 -codechicken_fileid=4382729 ie_fileid=1.20.4-10.0.1-pre.163 base_mc_version_commit=ccc1876c44610a5b810bf75fe4ea998bba553122 diff --git a/src/compat/java/org/embeddedt/embeddium/compat/ccl/CCLCompat.java b/src/compat/java/org/embeddedt/embeddium/compat/ccl/CCLCompat.java deleted file mode 100644 index 5ce713f3d..000000000 --- a/src/compat/java/org/embeddedt/embeddium/compat/ccl/CCLCompat.java +++ /dev/null @@ -1,107 +0,0 @@ -package org.embeddedt.embeddium.compat.ccl; - -import codechicken.lib.render.block.BlockRenderingRegistry; -import codechicken.lib.render.block.ICCBlockRenderer; -import com.mojang.blaze3d.vertex.PoseStack; -import net.minecraft.core.Holder; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.material.Fluid; -import net.neoforged.bus.api.SubscribeEvent; -import net.neoforged.fml.ModList; -import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; -import org.embeddedt.embeddium.api.BlockRendererRegistry; -import org.jetbrains.annotations.NotNull; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.lang.reflect.Field; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -public class CCLCompat { - private static final Logger LOGGER = LoggerFactory.getLogger("Embeddium-CCL"); - private static Map, ICCBlockRenderer> customBlockRenderers; - private static Map, ICCBlockRenderer> customFluidRenderers; - private static List customGlobalRenderers; - - private static final Map ccRendererToSodium = new ConcurrentHashMap<>(); - private static final ThreadLocal STACK_THREAD_LOCAL = ThreadLocal.withInitial(PoseStack::new); - - /** - * Wrap a CodeChickenLib renderer in Embeddium's API. - */ - private static BlockRendererRegistry.Renderer createBridge(ICCBlockRenderer r) { - return ccRendererToSodium.computeIfAbsent(r, ccRenderer -> (ctx, random, consumer) -> { - if(true) - throw new UnsupportedOperationException("Not ported yet."); - ccRenderer.renderBlock(ctx.state(), ctx.pos(), ctx.world(), STACK_THREAD_LOCAL.get(), consumer, random, null /*ctx.modelData()*/, ctx.renderLayer()); - return BlockRendererRegistry.RenderResult.OVERRIDE; - }); - } - - public static void onClientSetup(FMLClientSetupEvent event) { - if(ModList.get().isLoaded("codechickenlib")) { - init(); - BlockRendererRegistry.instance().registerRenderPopulator((resultList, ctx) -> { - if(!customGlobalRenderers.isEmpty()) { - for(ICCBlockRenderer r : customGlobalRenderers) { - if(r.canHandleBlock(ctx.world(), ctx.pos(), ctx.state(), ctx.renderLayer())) { - resultList.add(createBridge(r)); - } - } - } - if(!customBlockRenderers.isEmpty()) { - Block block = ctx.state().getBlock(); - for(Map.Entry, ICCBlockRenderer> entry : customBlockRenderers.entrySet()) { - if(entry.getKey().value() == block && entry.getValue().canHandleBlock(ctx.world(), ctx.pos(), ctx.state(), ctx.renderLayer())) { - resultList.add(createBridge(entry.getValue())); - } - } - } - if(!customFluidRenderers.isEmpty()) { - Fluid fluid = ctx.state().getFluidState().getType(); - for(Map.Entry, ICCBlockRenderer> entry : customFluidRenderers.entrySet()) { - if(entry.getKey().value().isSame(fluid) && entry.getValue().canHandleBlock(ctx.world(), ctx.pos(), ctx.state(), ctx.renderLayer())) { - resultList.add(createBridge(entry.getValue())); - } - } - } - }); - } - } - - - @SuppressWarnings("unchecked") - public static void init() { - try { - LOGGER.info("Retrieving block renderers"); - final Field blockRenderersField = BlockRenderingRegistry.class.getDeclaredField("blockRenderers"); - blockRenderersField.setAccessible(true); - customBlockRenderers = (Map, ICCBlockRenderer>) blockRenderersField.get(null); - - LOGGER.info("Retrieving fluid renderers"); - final Field fluidRenderersField = BlockRenderingRegistry.class.getDeclaredField("fluidRenderers"); - fluidRenderersField.setAccessible(true); - customFluidRenderers = (Map, ICCBlockRenderer>) fluidRenderersField.get(null); - - LOGGER.info("Retrieving global renderers"); - final Field globalRenderersField = BlockRenderingRegistry.class.getDeclaredField("globalRenderers"); - globalRenderersField.setAccessible(true); - customGlobalRenderers = (List) globalRenderersField.get(null); - - if(customBlockRenderers == null) - customBlockRenderers = Collections.emptyMap(); - if(customFluidRenderers == null) - customFluidRenderers = Collections.emptyMap(); - if(customGlobalRenderers == null) - customGlobalRenderers = Collections.emptyList(); - } - catch (final @NotNull Throwable t) { - LOGGER.error("Could not retrieve custom renderers"); - } - - } - -} diff --git a/src/compat/java/org/embeddedt/embeddium/compat/ccl/CCLCompatBootstrap.java b/src/compat/java/org/embeddedt/embeddium/compat/ccl/CCLCompatBootstrap.java deleted file mode 100644 index a3902c52e..000000000 --- a/src/compat/java/org/embeddedt/embeddium/compat/ccl/CCLCompatBootstrap.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.embeddedt.embeddium.compat.ccl; - -import net.neoforged.api.distmarker.Dist; -import net.neoforged.bus.api.SubscribeEvent; -import net.neoforged.fml.ModList; -import net.neoforged.fml.common.EventBusSubscriber; -import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; -import org.embeddedt.embeddium.impl.Embeddium; - -@EventBusSubscriber(modid = Embeddium.MODID, value = Dist.CLIENT, bus = EventBusSubscriber.Bus.MOD) -public class CCLCompatBootstrap { - @SubscribeEvent - public static void onClientSetup(FMLClientSetupEvent event) { - if (ModList.get().isLoaded("codechickenlib")) { - CCLCompat.onClientSetup(event); - } - } -}