modularization, part 1

This commit is contained in:
Draylar
2021-03-12 14:10:21 -06:00
parent 5ab6b91dce
commit e6b551a0aa
29 changed files with 160 additions and 89 deletions
+26 -10
View File
@@ -25,18 +25,21 @@ archivesBaseName = project.archives_base_name
version = project.mod_version version = project.mod_version
group = project.maven_group group = project.maven_group
sourceSets { subprojects {
testmod { apply plugin: 'fabric-loom'
compileClasspath += main.compileClasspath apply plugin: 'maven-publish'
runtimeClasspath += main.runtimeClasspath
} archivesBaseName = project.name
} }
repositories { allprojects {
apply plugin: 'fabric-loom'
repositories {
maven { url = "https://maven.terraformersmc.com/releases/"} maven { url = "https://maven.terraformersmc.com/releases/"}
} }
dependencies { dependencies {
//to change the versions see the gradle.properties file //to change the versions see the gradle.properties file
minecraft "com.mojang:minecraft:${project.minecraft_version}" minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
@@ -50,9 +53,9 @@ dependencies {
afterEvaluate { afterEvaluate {
testmodImplementation sourceSets.main.output testmodImplementation sourceSets.main.output
} }
} }
processResources { processResources {
inputs.property "version", project.version inputs.property "version", project.version
from(sourceSets.main.resources.srcDirs) { from(sourceSets.main.resources.srcDirs) {
@@ -82,6 +85,19 @@ processResources {
println('Minified ' + jsonMinified + ' json files. Saved ' + jsonBytesSaved + ' bytes. Took ' + (System.currentTimeMillis() - jsonMinifyStart) + 'ms.') println('Minified ' + jsonMinified + ' json files. Saved ' + jsonBytesSaved + ' bytes. Took ' + (System.currentTimeMillis() - jsonMinifyStart) + 'ms.')
} }
}
sourceSets {
testmod {
compileClasspath += main.compileClasspath
runtimeClasspath += main.runtimeClasspath
}
}
}
dependencies {
compile project(":omega-config-base")
compile project(":omega-config-gui")
} }
// ensure that the encoding is set to UTF-8, no matter what the system default is // ensure that the encoding is set to UTF-8, no matter what the system default is
@@ -4,7 +4,7 @@
"package": "draylar.omegaconfig.mixin", "package": "draylar.omegaconfig.mixin",
"compatibilityLevel": "JAVA_8", "compatibilityLevel": "JAVA_8",
"mixins": [ "mixins": [
"ModMenuAccessor"
], ],
"client": [ "client": [
"ClientMixin" "ClientMixin"
+3
View File
@@ -0,0 +1,3 @@
dependencies {
compile project(":omega-config-base")
}
@@ -1,16 +1,16 @@
package draylar.omegaconfig; package draylar.omegaconfiggui;
import draylar.omegaconfig.api.Config; import draylar.omegaconfig.api.Config;
import draylar.omegaconfig.api.screen.ModMenuHelper; import draylar.omegaconfiggui.api.screen.ModMenuHelper;
import draylar.omegaconfig.api.screen.OmegaConfigScreen; import draylar.omegaconfiggui.api.screen.OmegaConfigScreen;
import draylar.omegaconfig.api.screen.OmegaConfigScreenSupplier; import draylar.omegaconfiggui.api.screen.OmegaConfigScreenSupplier;
import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.api.EnvType; import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment; import net.fabricmc.api.Environment;
import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.FabricLoader;
@Environment(EnvType.CLIENT) @Environment(EnvType.CLIENT)
public class OmegaConfigClient implements ClientModInitializer { public class OmegaConfigGui implements ClientModInitializer {
@Override @Override
public void onInitializeClient() { public void onInitializeClient() {
@@ -1,9 +1,9 @@
package draylar.omegaconfig.api.screen; package draylar.omegaconfiggui.api.screen;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.terraformersmc.modmenu.api.ConfigScreenFactory; import com.terraformersmc.modmenu.api.ConfigScreenFactory;
import draylar.omegaconfig.api.Config; import draylar.omegaconfig.api.Config;
import draylar.omegaconfig.mixin.ModMenuAccessor; import draylar.omegaconfiggui.mixin.ModMenuAccessor;
import net.fabricmc.api.EnvType; import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment; import net.fabricmc.api.Environment;
@@ -1,9 +1,9 @@
package draylar.omegaconfig.api.screen; package draylar.omegaconfiggui.api.screen;
import draylar.omegaconfig.api.Config; import draylar.omegaconfig.api.Config;
import draylar.omegaconfig.api.screen.widget.LabelWidget; import draylar.omegaconfiggui.api.screen.widget.LabelWidget;
import draylar.omegaconfig.api.screen.widget.TypeWidgets; import draylar.omegaconfiggui.api.screen.widget.TypeWidgets;
import draylar.omegaconfig.api.screen.widget.WidgetSupplier; import draylar.omegaconfiggui.api.screen.widget.WidgetSupplier;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.Drawable; import net.minecraft.client.gui.Drawable;
import net.minecraft.client.gui.Element; import net.minecraft.client.gui.Element;
@@ -17,7 +17,10 @@ import net.minecraft.util.Identifier;
import net.minecraft.util.Pair; import net.minecraft.util.Pair;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.*; import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class OmegaConfigScreen<T extends Config> extends Screen { public class OmegaConfigScreen<T extends Config> extends Screen {
@@ -1,4 +1,4 @@
package draylar.omegaconfig.api.screen; package draylar.omegaconfiggui.api.screen;
import draylar.omegaconfig.api.Config; import draylar.omegaconfig.api.Config;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
@@ -1,4 +1,4 @@
package draylar.omegaconfig.api.screen.widget; package draylar.omegaconfiggui.api.screen.widget;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.Drawable; import net.minecraft.client.gui.Drawable;
@@ -1,8 +1,8 @@
package draylar.omegaconfig.api.screen.widget; package draylar.omegaconfiggui.api.screen.widget;
import draylar.omegaconfig.api.screen.widget.supplier.BooleanWidgetSupplier; import draylar.omegaconfiggui.api.screen.widget.supplier.BooleanWidgetSupplier;
import draylar.omegaconfig.api.screen.widget.supplier.DoubleWidgetSupplier; import draylar.omegaconfiggui.api.screen.widget.supplier.DoubleWidgetSupplier;
import draylar.omegaconfig.api.screen.widget.supplier.StringWidgetSupplier; import draylar.omegaconfiggui.api.screen.widget.supplier.StringWidgetSupplier;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.HashMap; import java.util.HashMap;
@@ -1,4 +1,4 @@
package draylar.omegaconfig.api.screen.widget; package draylar.omegaconfiggui.api.screen.widget;
import net.minecraft.client.gui.widget.AbstractButtonWidget; import net.minecraft.client.gui.widget.AbstractButtonWidget;
import net.minecraft.text.LiteralText; import net.minecraft.text.LiteralText;
@@ -1,6 +1,6 @@
package draylar.omegaconfig.api.screen.widget.supplier; package draylar.omegaconfiggui.api.screen.widget.supplier;
import draylar.omegaconfig.api.screen.widget.WidgetSupplier; import draylar.omegaconfiggui.api.screen.widget.WidgetSupplier;
import net.minecraft.client.gui.widget.CheckboxWidget; import net.minecraft.client.gui.widget.CheckboxWidget;
import net.minecraft.text.LiteralText; import net.minecraft.text.LiteralText;
@@ -1,6 +1,6 @@
package draylar.omegaconfig.api.screen.widget.supplier; package draylar.omegaconfiggui.api.screen.widget.supplier;
import draylar.omegaconfig.api.screen.widget.WidgetSupplier; import draylar.omegaconfiggui.api.screen.widget.WidgetSupplier;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.widget.AbstractButtonWidget; import net.minecraft.client.gui.widget.AbstractButtonWidget;
import net.minecraft.client.gui.widget.TextFieldWidget; import net.minecraft.client.gui.widget.TextFieldWidget;
@@ -1,6 +1,6 @@
package draylar.omegaconfig.api.screen.widget.supplier; package draylar.omegaconfiggui.api.screen.widget.supplier;
import draylar.omegaconfig.api.screen.widget.WidgetSupplier; import draylar.omegaconfiggui.api.screen.widget.WidgetSupplier;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.widget.AbstractButtonWidget; import net.minecraft.client.gui.widget.AbstractButtonWidget;
import net.minecraft.client.gui.widget.TextFieldWidget; import net.minecraft.client.gui.widget.TextFieldWidget;
@@ -1,4 +1,4 @@
package draylar.omegaconfig.mixin; package draylar.omegaconfiggui.mixin;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.terraformersmc.modmenu.ModMenu; import com.terraformersmc.modmenu.ModMenu;
@@ -0,0 +1,27 @@
{
"schemaVersion": 1,
"id": "omega-config-gui",
"version": "${version}",
"name": "OmegaConfigGui",
"description": "GUI support for Omega Config.",
"authors": [
"Draylar"
],
"contact": {},
"license": "MIT",
"icon": "assets/omega-config/icon.png",
"environment": "*",
"entrypoints": {
"client": [
"draylar.omegaconfiggui.OmegaConfigGui"
]
},
"mixins": [
"omega-config-gui.mixins.json"
],
"depends": {
"fabricloader": ">=0.11.2",
"fabric": "*",
"minecraft": "1.16.5"
}
}
@@ -0,0 +1,15 @@
{
"required": true,
"minVersion": "0.8",
"package": "draylar.omegaconfiggui.mixin",
"compatibilityLevel": "JAVA_8",
"mixins": [
"ModMenuAccessor"
],
"client": [
],
"injectors": {
"defaultRequire": 1
}
}
+5
View File
@@ -8,3 +8,8 @@ pluginManagement {
gradlePluginPortal() gradlePluginPortal()
} }
} }
rootProject.name = 'omega-config'
include 'omega-config-base'
include 'omega-config-gui'
@@ -1,19 +1,20 @@
package draylar.omegaconfig; package draylar.omegatest;
import draylar.omegaconfiggui.OmegaConfigGui;
import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback; import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.text.LiteralText; import net.minecraft.text.LiteralText;
public class OmegaConfigClientTest implements ClientModInitializer { public class OmegaTestClient implements ClientModInitializer {
@Override @Override
public void onInitializeClient() { public void onInitializeClient() {
OmegaConfigClient.registerConfigScreen(OmegaConfigTest.CONFIG); OmegaConfigGui.registerConfigScreen(OmegaTestMain.CONFIG);
HudRenderCallback.EVENT.register((stack, delta) -> { HudRenderCallback.EVENT.register((stack, delta) -> {
MinecraftClient.getInstance().textRenderer.draw(stack, new LiteralText(String.valueOf(OmegaConfigTest.CONFIG.v)), 15, 15, 0xffffff); MinecraftClient.getInstance().textRenderer.draw(stack, new LiteralText(String.valueOf(OmegaTestMain.CONFIG.v)), 15, 15, 0xffffff);
MinecraftClient.getInstance().textRenderer.draw(stack, new LiteralText(String.valueOf(OmegaConfigTest.CONFIG.doubleTest)), 15, 30, 0xffffff); MinecraftClient.getInstance().textRenderer.draw(stack, new LiteralText(String.valueOf(OmegaTestMain.CONFIG.doubleTest)), 15, 30, 0xffffff);
}); });
} }
} }
@@ -1,8 +1,9 @@
package draylar.omegaconfig; package draylar.omegatest;
import draylar.omegaconfig.OmegaConfig;
import net.fabricmc.api.ModInitializer; import net.fabricmc.api.ModInitializer;
public class OmegaConfigTest implements ModInitializer { public class OmegaTestMain implements ModInitializer {
public static final TestConfig CONFIG = OmegaConfig.register(TestConfig.class); public static final TestConfig CONFIG = OmegaConfig.register(TestConfig.class);
@@ -1,4 +1,4 @@
package draylar.omegaconfig; package draylar.omegatest;
import draylar.omegaconfig.api.Comment; import draylar.omegaconfig.api.Comment;
import draylar.omegaconfig.api.Config; import draylar.omegaconfig.api.Config;
+2 -2
View File
@@ -13,10 +13,10 @@
"environment": "*", "environment": "*",
"entrypoints": { "entrypoints": {
"main": [ "main": [
"draylar.omegaconfig.OmegaConfigTest" "draylar.omegatest.OmegaTestMain"
], ],
"client": [ "client": [
"draylar.omegaconfig.OmegaConfigClientTest" "draylar.omegatest.OmegaTestClient"
] ]
}, },
"depends": { "depends": {