.idea
*.ipr
*.iws
+.vscode
# Sekrit files
private.properties
import java.util.zip.ZipOutputStream
plugins {
- id "architectury-plugin" version "1.3.39"
- id "forgified-fabric-loom" version "0.5.16" apply false
+ id "architectury-plugin" version "3.0.76"
+ id "forgified-fabric-loom" version "0.6.67" apply false
}
-architect {
+architectury {
minecraft = minecraft_version
}
dependencies {
- minecraft "com.mojang:minecraft:${rootProject.architect.minecraft}"
+ minecraft "com.mojang:minecraft:${rootProject.architectury.minecraft}"
mappings minecraft.officialMojangMappings()
modCompile "me.shedaniel:architectury:${rootProject.architectury_version}"
modCompile "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
+ modCompileOnly("me.shedaniel.cloth:cloth-config:${rootProject.cloth_config_version}") {
+ exclude(group: "net.fabricmc.fabric-api")
+ }
}
-architect {
+architectury {
common()
}
\ No newline at end of file
--- /dev/null
+package me.shedaniel.lightoverlay.common;
+
+import me.shedaniel.clothconfig2.api.ConfigBuilder;
+import me.shedaniel.clothconfig2.api.ConfigCategory;
+import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
+import me.shedaniel.clothconfig2.gui.entries.IntegerSliderEntry;
+import net.minecraft.client.gui.screens.Screen;
+import net.minecraft.client.resources.language.I18n;
+import net.minecraft.network.chat.Component;
+import net.minecraft.network.chat.TextComponent;
+import net.minecraft.network.chat.TranslatableComponent;
+import net.minecraft.util.Mth;
+
+import java.util.Optional;
+
+public class ClothScreen {
+ public static Screen getConfigScreenByCloth(Screen parent) {
+ ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle(new TranslatableComponent("key.lightoverlay.category"));
+
+ ConfigEntryBuilder eb = builder.entryBuilder();
+ ConfigCategory general = builder.getOrCreateCategory(new TranslatableComponent("config.lightoverlay.general"));
+ general.addEntry(eb.startTextDescription(Component.nullToEmpty("§7" + I18n.get("description.lightoverlay.caching"))).build());
+ general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.caching"), LightOverlay.caching).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.caching = bool).build());
+ general.addEntry(eb.startIntSlider(new TranslatableComponent("config.lightoverlay.reach"), LightOverlay.reach, 1, 64).setDefaultValue(12).setTextGetter(integer -> Component.nullToEmpty("Reach: " + integer + " Blocks")).setSaveConsumer(integer -> LightOverlay.reach = integer).build());
+ IntegerSliderEntry crossLevel = eb.startIntSlider(new TranslatableComponent("config.lightoverlay.crossLevel"), LightOverlay.crossLevel, 0, 15).setDefaultValue(7).setTextGetter(integer -> Component.nullToEmpty("Cross Level: " + integer)).setSaveConsumer(integer -> LightOverlay.crossLevel = integer).build();
+ general.addEntry(crossLevel);
+ general.addEntry(eb.startIntSlider(new TranslatableComponent("config.lightoverlay.secondaryLevel"), LightOverlay.secondaryLevel, -1, 15)
+ .setErrorSupplier(integer -> {
+ if (integer >= 0 && integer >= crossLevel.getValue())
+ return Optional.of(new TextComponent("Secondary Level cannot be higher than Cross Level!"));
+ return Optional.empty();
+ }).setDefaultValue(-1).setTextGetter(integer -> new TextComponent(integer < 0 ? "Off" : "Level: " + integer)).setSaveConsumer(integer -> LightOverlay.secondaryLevel = integer).build());
+ general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.showNumber"), LightOverlay.showNumber).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.showNumber = bool).build());
+ general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.smoothLines"), LightOverlay.smoothLines).setDefaultValue(true).setSaveConsumer(bool -> LightOverlay.smoothLines = bool).build());
+ general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.underwater"), LightOverlay.underwater).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.underwater = bool).build());
+ general.addEntry(eb.startIntSlider(new TranslatableComponent("config.lightoverlay.lineWidth"), Mth.floor(LightOverlay.lineWidth * 100), 100, 700).setDefaultValue(100).setTextGetter(integer -> new TextComponent("Light Width: " + LightOverlay.FORMAT.format(integer / 100d))).setSaveConsumer(integer -> LightOverlay.lineWidth = integer / 100f).build());
+ general.addEntry(eb.startColorField(new TranslatableComponent("config.lightoverlay.yellowColor"), LightOverlay.yellowColor).setDefaultValue(0xFFFF00).setSaveConsumer(color -> LightOverlay.yellowColor = color).build());
+ general.addEntry(eb.startColorField(new TranslatableComponent("config.lightoverlay.redColor"), LightOverlay.redColor).setDefaultValue(0xFF0000).setSaveConsumer(color -> LightOverlay.redColor = color).build());
+ general.addEntry(eb.startColorField(new TranslatableComponent("config.lightoverlay.secondaryColor"), LightOverlay.secondaryColor).setDefaultValue(0x0000FF).setSaveConsumer(color -> LightOverlay.secondaryColor = color).build());
+
+ return builder.setSavingRunnable(() -> {
+ try {
+ LightOverlay.saveConfig(LightOverlay.configFile);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ LightOverlay.loadConfig(LightOverlay.configFile);
+ }).build();
+ }
+}
architectury {
platformSetupLoomIde()
+ fabric()
}
processResources {
}
dependencies {
- minecraft "com.mojang:minecraft:${rootProject.architect.minecraft}"
+ minecraft "com.mojang:minecraft:${rootProject.architectury.minecraft}"
mappings minecraft.officialMojangMappings()
modCompile "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
modCompile "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}"
- modImplementation("me.shedaniel.cloth:config-2:${rootProject.cloth_config_version}") {
+ modImplementation("me.shedaniel.cloth:cloth-config-fabric:${rootProject.cloth_config_version}") {
exclude(group: "net.fabricmc.fabric-api")
}
modImplementation("io.github.prospector:modmenu:${rootProject.modmenu_version}") {
transitive = false
}
- include("me.shedaniel.cloth:config-2:${rootProject.cloth_config_version}") {
- transitive = false
- }
modCompile("me.shedaniel:architectury:${rootProject.architectury_version}:fabric")
- compileOnly(project(path: ":common")) {
+ implementation(project(path: ":common")) {
transitive = false
}
- runtimeOnly(project(path: ":common", configuration: "transformedRuntime")) {
+ developmentFabric(project(path: ":common")) {
transitive = false
}
- shadow(project(path: ":common", configuration: "transformed")) {
+ shadow(project(path: ":common", configuration: "transformProductionFabric")) {
transitive = false
}
}
import io.github.prospector.modmenu.api.ConfigScreenFactory;
import io.github.prospector.modmenu.api.ModMenuApi;
-import me.shedaniel.clothconfig2.api.ConfigBuilder;
-import me.shedaniel.clothconfig2.api.ConfigCategory;
-import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
-import me.shedaniel.clothconfig2.gui.entries.IntegerSliderEntry;
-import me.shedaniel.lightoverlay.common.LightOverlay;
-import net.minecraft.client.gui.screens.Screen;
-import net.minecraft.client.resources.language.I18n;
-import net.minecraft.network.chat.Component;
-import net.minecraft.network.chat.TextComponent;
-import net.minecraft.network.chat.TranslatableComponent;
-import net.minecraft.util.Mth;
-
-import java.util.Optional;
+import me.shedaniel.lightoverlay.common.ClothScreen;
public class LOModMenuEntry implements ModMenuApi {
@Override
public ConfigScreenFactory<?> getModConfigScreenFactory() {
- return this::getConfigScreenByCloth;
- }
-
- public Screen getConfigScreenByCloth(Screen parent) {
- ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle(new TranslatableComponent("key.lightoverlay.category"));
-
- ConfigEntryBuilder eb = builder.entryBuilder();
- ConfigCategory general = builder.getOrCreateCategory(new TranslatableComponent("config.lightoverlay.general"));
- general.addEntry(eb.startTextDescription(Component.nullToEmpty("§7" + I18n.get("description.lightoverlay.caching"))).build());
- general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.caching"), LightOverlay.caching).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.caching = bool).build());
- general.addEntry(eb.startIntSlider(new TranslatableComponent("config.lightoverlay.reach"), LightOverlay.reach, 1, 64).setDefaultValue(12).setTextGetter(integer -> Component.nullToEmpty("Reach: " + integer + " Blocks")).setSaveConsumer(integer -> LightOverlay.reach = integer).build());
- IntegerSliderEntry crossLevel = eb.startIntSlider(new TranslatableComponent("config.lightoverlay.crossLevel"), LightOverlay.crossLevel, 0, 15).setDefaultValue(7).setTextGetter(integer -> Component.nullToEmpty("Cross Level: " + integer)).setSaveConsumer(integer -> LightOverlay.crossLevel = integer).build();
- general.addEntry(crossLevel);
- general.addEntry(eb.startIntSlider(new TranslatableComponent("config.lightoverlay.secondaryLevel"), LightOverlay.secondaryLevel, -1, 15)
- .setErrorSupplier(integer -> {
- if (integer >= 0 && integer >= crossLevel.getValue())
- return Optional.of(new TextComponent("Secondary Level cannot be higher than Cross Level!"));
- return Optional.empty();
- }).setDefaultValue(-1).setTextGetter(integer -> new TextComponent(integer < 0 ? "Off" : "Level: " + integer)).setSaveConsumer(integer -> LightOverlay.secondaryLevel = integer).build());
- general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.showNumber"), LightOverlay.showNumber).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.showNumber = bool).build());
- general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.smoothLines"), LightOverlay.smoothLines).setDefaultValue(true).setSaveConsumer(bool -> LightOverlay.smoothLines = bool).build());
- general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.underwater"), LightOverlay.underwater).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.underwater = bool).build());
- general.addEntry(eb.startIntSlider(new TranslatableComponent("config.lightoverlay.lineWidth"), Mth.floor(LightOverlay.lineWidth * 100), 100, 700).setDefaultValue(100).setTextGetter(integer -> new TextComponent("Light Width: " + LightOverlay.FORMAT.format(integer / 100d))).setSaveConsumer(integer -> LightOverlay.lineWidth = integer / 100f).build());
- general.addEntry(eb.startColorField(new TranslatableComponent("config.lightoverlay.yellowColor"), LightOverlay.yellowColor).setDefaultValue(0xFFFF00).setSaveConsumer(color -> LightOverlay.yellowColor = color).build());
- general.addEntry(eb.startColorField(new TranslatableComponent("config.lightoverlay.redColor"), LightOverlay.redColor).setDefaultValue(0xFF0000).setSaveConsumer(color -> LightOverlay.redColor = color).build());
- general.addEntry(eb.startColorField(new TranslatableComponent("config.lightoverlay.secondaryColor"), LightOverlay.secondaryColor).setDefaultValue(0x0000FF).setSaveConsumer(color -> LightOverlay.secondaryColor = color).build());
-
- return builder.setSavingRunnable(() -> {
- try {
- LightOverlay.saveConfig(LightOverlay.configFile);
- } catch (Exception e) {
- e.printStackTrace();
- }
- LightOverlay.loadConfig(LightOverlay.configFile);
- }).build();
+ return ClothScreen::getConfigScreenByCloth;
}
}
},
"depends": {
"fabric": ">=0.29.1",
- "architectury": ">=1.2.67"
+ "architectury": ">=1.5.112",
+ "cloth-config2": ">=4.10.13"
}
}
architectury {
platformSetupLoomIde()
+ forge()
}
loom {
- mixinConfig = "lightoverlay-forge.mixins.json"
+ mixinConfig "lightoverlay-forge.mixins.json"
}
repositories {
}
dependencies {
- minecraft("com.mojang:minecraft:${rootProject.architect.minecraft}")
+ minecraft("com.mojang:minecraft:${rootProject.architectury.minecraft}")
mappings(minecraft.officialMojangMappings())
- forge("net.minecraftforge:forge:${rootProject.architect.minecraft}-${project.forge_version}")
- modCompile("me.shedaniel.cloth:cloth-config-forge:${rootProject.cloth_config_forge}")
+ forge("net.minecraftforge:forge:${rootProject.architectury.minecraft}-${project.forge_version}")
+ modCompile("me.shedaniel.cloth:cloth-config-forge:${rootProject.cloth_config_version}")
modCompile("me.shedaniel:architectury:${rootProject.architectury_version}:forge")
- compileOnly(project(path: ":common")) {
+ implementation(project(path: ":common")) {
transitive = false
}
- runtimeOnly(project(path: ":common", configuration: "transformForgeFakeMod")) {
+ developmentForge(project(path: ":common")) {
transitive = false
}
- shadow(project(path: ":common", configuration: "transformForge")) {
+ shadow(project(path: ":common", configuration: "transformProductionForge")) {
transitive = false
}
}
package me.shedaniel.lightoverlay.forge;
-import me.shedaniel.clothconfig2.forge.api.ConfigBuilder;
-import me.shedaniel.clothconfig2.forge.api.ConfigCategory;
-import me.shedaniel.clothconfig2.forge.api.ConfigEntryBuilder;
-import me.shedaniel.clothconfig2.forge.gui.entries.IntegerSliderEntry;
-import me.shedaniel.lightoverlay.common.LightOverlay;
-import net.minecraft.client.resources.language.I18n;
-import net.minecraft.network.chat.Component;
-import net.minecraft.network.chat.TranslatableComponent;
-import net.minecraft.util.Mth;
+import me.shedaniel.lightoverlay.common.ClothScreen;
import net.minecraftforge.fml.ExtensionPoint;
import net.minecraftforge.fml.ModLoadingContext;
-import java.util.Optional;
-
public class LightOverlayCloth {
public static void register() {
ModLoadingContext.get().registerExtensionPoint(ExtensionPoint.CONFIGGUIFACTORY, () -> (client, parent) -> {
- ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle(new TranslatableComponent("key.lightoverlay.category"));
-
- ConfigEntryBuilder eb = builder.entryBuilder();
- ConfigCategory general = builder.getOrCreateCategory(new TranslatableComponent("config.lightoverlay.general"));
- general.addEntry(eb.startTextDescription(Component.nullToEmpty("§7" + I18n.get("description.lightoverlay.caching"))).build());
- general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.caching"), LightOverlay.caching).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.caching = bool).build());
- general.addEntry(eb.startIntSlider(new TranslatableComponent("config.lightoverlay.reach"), LightOverlay.reach, 1, 64).setDefaultValue(12).setTextGetter(integer -> Component.nullToEmpty("Reach: " + integer + " Blocks")).setSaveConsumer(integer -> LightOverlay.reach = integer).build());
- IntegerSliderEntry crossLevel = eb.startIntSlider(new TranslatableComponent("config.lightoverlay.crossLevel"), LightOverlay.crossLevel, 0, 15).setDefaultValue(7).setTextGetter(integer -> Component.nullToEmpty("Cross Level: " + integer)).setSaveConsumer(integer -> LightOverlay.crossLevel = integer).build();
- general.addEntry(crossLevel);
- general.addEntry(eb.startIntSlider(new TranslatableComponent("config.lightoverlay.secondaryLevel"), LightOverlay.secondaryLevel, -1, 15)
- .setErrorSupplier(integer -> {
- if (integer >= 0 && integer >= crossLevel.getValue())
- return Optional.of(Component.nullToEmpty("Secondary Level cannot be higher than Cross Level!"));
- return Optional.empty();
- }).setDefaultValue(-1).setTextGetter(integer -> Component.nullToEmpty(integer < 0 ? "Off" : "Level: " + integer)).setSaveConsumer(integer -> LightOverlay.secondaryLevel = integer).build());
- general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.showNumber"), LightOverlay.showNumber).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.showNumber = bool).build());
- general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.smoothLines"), LightOverlay.smoothLines).setDefaultValue(true).setSaveConsumer(bool -> LightOverlay.smoothLines = bool).build());
- general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.underwater"), LightOverlay.underwater).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.underwater = bool).build());
- general.addEntry(eb.startIntSlider(new TranslatableComponent("config.lightoverlay.lineWidth"), Mth.floor(LightOverlay.lineWidth * 100), 100, 700).setDefaultValue(100).setTextGetter(integer -> Component.nullToEmpty("Light Width: " + LightOverlay.FORMAT.format(integer / 100d))).setSaveConsumer(integer -> LightOverlay.lineWidth = integer / 100f).build());
- general.addEntry(eb.startColorField(new TranslatableComponent("config.lightoverlay.yellowColor"), LightOverlay.yellowColor).setDefaultValue(0xFFFF00).setSaveConsumer(color -> LightOverlay.yellowColor = color).build());
- general.addEntry(eb.startColorField(new TranslatableComponent("config.lightoverlay.redColor"), LightOverlay.redColor).setDefaultValue(0xFF0000).setSaveConsumer(color -> LightOverlay.redColor = color).build());
- general.addEntry(eb.startColorField(new TranslatableComponent("config.lightoverlay.secondaryColor"), LightOverlay.secondaryColor).setDefaultValue(0x0000FF).setSaveConsumer(color -> LightOverlay.secondaryColor = color).build());
-
- return builder.setSavingRunnable(() -> {
- try {
- LightOverlay.saveConfig(LightOverlay.configFile);
- } catch (Exception e) {
- e.printStackTrace();
- }
- LightOverlay.loadConfig(LightOverlay.configFile);
- }).build();
+ return ClothScreen.getConfigScreenByCloth(parent);
});
}
}
[[dependencies.lightoverlay]]
modId = "cloth-config"
mandatory = true
-versionRange = "[4.1.3,)"
+versionRange = "[4.10.13,)"
ordering = "NONE"
side = "CLIENT"
[[dependencies.lightoverlay]]
modId = "architectury"
mandatory = true
-versionRange = "[1.2.67,)"
+versionRange = "[1.5.112,)"
ordering = "NONE"
side = "CLIENT"
\ No newline at end of file
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false
-mod_version=5.6.1
+mod_version=5.7.0
minecraft_version=1.16.4
-architectury_version=1.2.67
+architectury_version=1.5.112
# fabric
fabric_loader_version=0.10.8
fabric_api_version=0.29.1+1.16
-cloth_config_version=4.8.3
+cloth_config_version=4.10.13
modmenu_version=1.14.6+build.31
# forge
-forge_version=35.1.7
-cloth_config_forge=4.1.3
\ No newline at end of file
+forge_version=35.1.7
\ No newline at end of file
pluginManagement {
repositories {
- jcenter()
maven { url "https://maven.fabricmc.net/" }
- maven { url "https://dl.bintray.com/shedaniel/cloth" }
+ maven { url "https://maven.shedaniel.me/" }
maven { url "https://files.minecraftforge.net/maven/" }
gradlePluginPortal()
}