From faaaf356d846d88f15bffb9315e3365792712fd7 Mon Sep 17 00:00:00 2001 From: MelanX Date: Fri, 4 Aug 2023 18:08:03 +0200 Subject: [PATCH] add client config to disable glue rendering closes #44 --- src/main/java/de/melanx/utilitix/UtilitiX.java | 6 ------ .../java/de/melanx/utilitix/UtilitiXConfig.java | 2 ++ .../utilitix/config/ArmorStandRotationMapper.java | 2 ++ .../de/melanx/utilitix/config/ClientConfig.java | 13 +++++++++++++ .../melanx/utilitix/content/slime/SlimeRender.java | 2 ++ 5 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 src/main/java/de/melanx/utilitix/config/ClientConfig.java diff --git a/src/main/java/de/melanx/utilitix/UtilitiX.java b/src/main/java/de/melanx/utilitix/UtilitiX.java index a6a6b24..d1e4091 100644 --- a/src/main/java/de/melanx/utilitix/UtilitiX.java +++ b/src/main/java/de/melanx/utilitix/UtilitiX.java @@ -1,7 +1,6 @@ package de.melanx.utilitix; import de.melanx.utilitix.client.ClientUtilitiX; -import de.melanx.utilitix.config.ArmorStandRotationMapper; import de.melanx.utilitix.content.BetterMending; import de.melanx.utilitix.content.shulkerboat.ShulkerBoatRenderer; import de.melanx.utilitix.content.slime.SlimyCapability; @@ -13,7 +12,6 @@ import de.melanx.utilitix.registration.ModEntities; import net.minecraft.client.gui.screens.MenuScreens; import net.minecraft.client.renderer.entity.EntityRenderers; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.raid.Raid; import net.minecraft.world.level.chunk.LevelChunk; @@ -24,7 +22,6 @@ import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import org.moddingx.libx.config.ConfigManager; import org.moddingx.libx.datagen.DatagenSystem; import org.moddingx.libx.mod.ModXRegistration; import org.moddingx.libx.registration.RegistrationBuilder; @@ -44,9 +41,6 @@ public UtilitiX() { instance = this; network = new UtiliNetwork(this); - ConfigManager.registerValueMapper("utilitix", new ArmorStandRotationMapper()); - ConfigManager.registerConfig(new ResourceLocation(this.modid, "common"), UtilitiXConfig.class, false); - DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> ClientUtilitiX::new); FMLJavaModLoadingContext.get().getModEventBus().addListener(SlimyCapability::registerCapability); diff --git a/src/main/java/de/melanx/utilitix/UtilitiXConfig.java b/src/main/java/de/melanx/utilitix/UtilitiXConfig.java index 1723003..decdfb7 100644 --- a/src/main/java/de/melanx/utilitix/UtilitiXConfig.java +++ b/src/main/java/de/melanx/utilitix/UtilitiXConfig.java @@ -2,6 +2,7 @@ import com.google.common.collect.ImmutableList; import de.melanx.utilitix.util.ArmorStandRotation; +import org.moddingx.libx.annotation.config.RegisterConfig; import org.moddingx.libx.config.Config; import org.moddingx.libx.config.Group; import org.moddingx.libx.config.validate.FloatRange; @@ -10,6 +11,7 @@ import java.util.List; +@RegisterConfig(value = "common") public class UtilitiXConfig { @Group("Config values for the two bells, mob bell and hand bell") diff --git a/src/main/java/de/melanx/utilitix/config/ArmorStandRotationMapper.java b/src/main/java/de/melanx/utilitix/config/ArmorStandRotationMapper.java index b33c6ab..42c0443 100644 --- a/src/main/java/de/melanx/utilitix/config/ArmorStandRotationMapper.java +++ b/src/main/java/de/melanx/utilitix/config/ArmorStandRotationMapper.java @@ -3,10 +3,12 @@ import com.google.gson.JsonObject; import de.melanx.utilitix.util.ArmorStandRotation; import net.minecraft.network.FriendlyByteBuf; +import org.moddingx.libx.annotation.config.RegisterMapper; import org.moddingx.libx.config.gui.ConfigEditor; import org.moddingx.libx.config.mapper.ValueMapper; import org.moddingx.libx.config.validator.ValidatorInfo; +@RegisterMapper public class ArmorStandRotationMapper implements ValueMapper { @Override diff --git a/src/main/java/de/melanx/utilitix/config/ClientConfig.java b/src/main/java/de/melanx/utilitix/config/ClientConfig.java new file mode 100644 index 0000000..226c8d8 --- /dev/null +++ b/src/main/java/de/melanx/utilitix/config/ClientConfig.java @@ -0,0 +1,13 @@ +package de.melanx.utilitix.config; + +import org.moddingx.libx.annotation.config.RegisterConfig; +import org.moddingx.libx.config.Config; + +@RegisterConfig(client = true, value = "client") +public class ClientConfig { + + @Config({"On some slower PCs, or in big modpacks, it seems like rendering glue drains a lot of performance.", + "You can disable it here to see if it improves your performance.", + "This will deactivate the glue rendering in the world, so you won't see any glue on any block."}) + public static boolean renderGlueOnBlocks = true; +} diff --git a/src/main/java/de/melanx/utilitix/content/slime/SlimeRender.java b/src/main/java/de/melanx/utilitix/content/slime/SlimeRender.java index 5e424bf..6857742 100644 --- a/src/main/java/de/melanx/utilitix/content/slime/SlimeRender.java +++ b/src/main/java/de/melanx/utilitix/content/slime/SlimeRender.java @@ -2,6 +2,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import de.melanx.utilitix.Textures; +import de.melanx.utilitix.config.ClientConfig; import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; @@ -23,6 +24,7 @@ public class SlimeRender { public static void renderWorld(RenderLevelStageEvent event) { + if (!ClientConfig.renderGlueOnBlocks) return; ClientLevel level = Minecraft.getInstance().level; if (level != null && event.getStage() == RenderLevelStageEvent.Stage.AFTER_SOLID_BLOCKS) { Minecraft.getInstance().getProfiler().push("utilitix_glue");