Skip to content

Commit

Permalink
moved modmenuConfig to main
Browse files Browse the repository at this point in the history
  • Loading branch information
1foxy2 committed Sep 29, 2024
1 parent cfe7ca9 commit 6fa82fc
Show file tree
Hide file tree
Showing 8 changed files with 36 additions and 332 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import ca.fxco.moreculling.api.config.defaults.ConfigIntOption;
import ca.fxco.moreculling.config.cloth.*;
import ca.fxco.moreculling.config.option.LeavesCullingMode;
import ca.fxco.moreculling.platform.Services;
import it.unimi.dsi.fastutil.objects.Object2BooleanMap;
import me.shedaniel.autoconfig.AutoConfig;
import me.shedaniel.clothconfig2.api.ConfigBuilder;
Expand All @@ -17,8 +18,6 @@
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.network.chat.Component;
import net.neoforged.fml.ModContainer;
import net.neoforged.fml.ModList;

import java.util.ArrayList;
import java.util.List;
Expand All @@ -28,7 +27,7 @@ public class ModMenuConfig {

//TODO: Convert all settings to ConfigOption using the MoreCulling config API if those settings can be converted

public static Screen createConfigScreen(ModContainer container, Screen parent) {
public static Screen createConfigScreen(Screen parent) {
ConfigBuilder builder = MoreCullingClothConfigBuilder.create().setParentScreen(parent);
builder.setSavingRunnable(() -> AutoConfig.getConfigHolder(MoreCullingConfig.class).save());
ConfigCategory generalCategory = builder.getOrCreateCategory(Component.translatable("moreculling.config.category.general"));
Expand All @@ -48,8 +47,7 @@ public static Screen createConfigScreen(ModContainer container, Screen parent) {
if (modId.equals("minecraft")) {
continue;
}
ModContainer con = ModList.get().getModContainerById(modId).orElse(null);
DynamicBooleanListEntry aMod = new DynamicBooleanBuilder(con == null ? modId : con.getModInfo().getDisplayName())
DynamicBooleanListEntry aMod = new DynamicBooleanBuilder(Services.PLATFORM.getModName(modId))
.setValue(entry.getBooleanValue())
.setDefaultValue(MoreCulling.CONFIG.useOnModdedBlocksByDefault)
.setTooltip(Component.literal(modId))
Expand Down Expand Up @@ -292,13 +290,13 @@ public static void generateConfigCategories(ConfigBuilder builder, ConfigCategor
});
if (option instanceof ConfigModLimit configModLimit) {
optionBuilder.setModLimited(
ModList.get().isLoaded(configModLimit.getLimitedModId()),
Services.PLATFORM.isModLoaded(configModLimit.getLimitedModId()),
Component.translatable(configModLimit.getTranslationKey())
);
}
if (option instanceof ConfigModIncompatibility configModIncompatibility) {
optionBuilder.setModIncompatibility(
ModList.get().isLoaded(configModIncompatibility.getIncompatibleModId()),
Services.PLATFORM.isModLoaded(configModIncompatibility.getIncompatibleModId()),
configModIncompatibility.getMessage()
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ public interface IPlatformHelper {
* @return The name of the environment type.
*/
default String getEnvironmentName() {

return isDevelopmentEnvironment() ? "development" : "production";
}

String getModName(String modId);
}
11 changes: 11 additions & 0 deletions fabric/src/main/java/ca/fxco/moreculling/config/ModMenuCompat.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package ca.fxco.moreculling.config;

import com.terraformersmc.modmenu.api.ConfigScreenFactory;
import com.terraformersmc.modmenu.api.ModMenuApi;

public class ModMenuCompat implements ModMenuApi {
@Override
public ConfigScreenFactory<?> getModConfigScreenFactory() {
return ModMenuConfig::createConfigScreen;
}
}
320 changes: 0 additions & 320 deletions fabric/src/main/java/ca/fxco/moreculling/config/ModMenuConfig.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import ca.fxco.moreculling.platform.services.IPlatformHelper;
import net.fabricmc.loader.api.FabricLoader;
import net.fabricmc.loader.api.ModContainer;

public class FabricPlatformHelper implements IPlatformHelper {

Expand All @@ -18,7 +19,13 @@ public boolean isModLoaded(String modId) {

@Override
public boolean isDevelopmentEnvironment() {

return FabricLoader.getInstance().isDevelopmentEnvironment();
}

@Override
public String getModName(String modId) {
ModContainer container = FabricLoader.getInstance().getModContainer(modId).orElse(null);

return container == null ? modId : container.getMetadata().getName();
}
}
2 changes: 1 addition & 1 deletion fabric/src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"ca.fxco.moreculling.MoreCullingFabric"
],
"modmenu": [
"ca.fxco.moreculling.config.ModMenuConfig"
"ca.fxco.moreculling.config.ModMenuCompat"
]
},
"mixins": [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ public class MoreCullingNeoforge {
public MoreCullingNeoforge(ModContainer container) {
MoreCulling.init();

container.registerExtensionPoint(IConfigScreenFactory.class, ModMenuConfig::createConfigScreen);
container.registerExtensionPoint(IConfigScreenFactory.class, (con, screen) -> ModMenuConfig.createConfigScreen(screen));
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package ca.fxco.moreculling.platform;

import ca.fxco.moreculling.platform.services.IPlatformHelper;
import net.neoforged.fml.ModContainer;
import net.neoforged.fml.ModList;
import net.neoforged.fml.loading.FMLLoader;

Expand All @@ -20,7 +21,13 @@ public boolean isModLoaded(String modId) {

@Override
public boolean isDevelopmentEnvironment() {

return !FMLLoader.isProduction();
}

@Override
public String getModName(String modId) {
ModContainer container = ModList.get().getModContainerById(modId).orElse(null);

return container == null ? modId : container.getModInfo().getDisplayName();
}
}

0 comments on commit 6fa82fc

Please sign in to comment.