Skip to content

Commit

Permalink
port to forge
Browse files Browse the repository at this point in the history
  • Loading branch information
TexBlock committed Sep 2, 2023
1 parent aaa11b7 commit d9a0566
Show file tree
Hide file tree
Showing 24 changed files with 125 additions and 261 deletions.
45 changes: 0 additions & 45 deletions .github/workflows/gradle_publish.yml

This file was deleted.

95 changes: 12 additions & 83 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,37 +1,27 @@
plugins {
id 'fabric-loom' version '1.2.+'
id 'io.github.juuxel.loom-quiltflower' version '1.8.+'
id 'dev.architectury.loom' version '1.2-SNAPSHOT'
id 'io.github.juuxel.loom-vineflower' version '1.+'
id 'org.quiltmc.gradle.licenser' version '2.0.+'
id 'java-library'
id 'maven-publish'
}

import net.fabricmc.loom.task.RemapJarTask

group = project.maven_group
version = "${project.mod_version}+${getMCVersionString()}"
archivesBaseName = project.archives_base_name

// This field defines the Java version your mod target.
def targetJavaVersion = 17

Set<String> modules = [
'fabric-api-base',
'fabric-lifecycle-events-v1',
'fabric-rendering-v1',
'fabric-resource-loader-v0',
'fabric-screen-api-v1',
'fabric-key-binding-api-v1'
]

String getMCVersionString() {
return project.minecraft_version
}

sourceSets {
testmod {
compileClasspath += sourceSets.main.compileClasspath
runtimeClasspath += sourceSets.main.runtimeClasspath
loom {
forge {
mixinConfigs = [
"spruceui.mixins.json","spruceui.test.mixins.json"
]
}
}

Expand All @@ -57,19 +47,10 @@ configurations {

dependencies {
minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings "org.quiltmc:quilt-mappings:${minecraft_version}+build.${quilt_mappings}:intermediary-v2"
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
mappings "org.quiltmc:quilt-mappings:${project.quilt_mappings}:intermediary-v2"
forge "net.minecraftforge:forge:${project.forge_version}"

modules.stream().map { fabricApi.module(it, project.fabric_api_version) }.forEach {
modImplementation it
}

modLocalRuntime("com.terraformersmc:modmenu:${project.modmenu_version}") {
transitive = false
}
modLocalRuntime fabricApi.module("fabric-key-binding-api-v1", project.fabric_api_version)

testmodImplementation sourceSets.main.output
modImplementation("dev.architectury:architectury-forge:${project.architectury_version}")
}

java {
Expand Down Expand Up @@ -100,30 +81,6 @@ jar {
}
}

loom {
runs {
testmodClient {
client()
source(sourceSets.testmod)
}
}
}

task testmodJar(type: Jar) {
group "build"
from sourceSets.testmod.output
archiveClassifier = "testmod-dev"
destinationDirectory = project.file("build/devlibs")
}

task remapTestmodJar(type: RemapJarTask, dependsOn: testmodJar) {
group "build"
inputFile = testmodJar.archiveFile
classpath.from sourceSets.testmod.compileClasspath
archiveClassifier = "testmod"
}
build.dependsOn remapTestmodJar

license {
rule file('HEADER')
include '**/*.java'
Expand All @@ -134,39 +91,11 @@ publishing {
publications {
mavenJava(MavenPublication) {
from components.java

pom {
name = 'SpruceUI'
description = 'A Minecraft mod API which adds some GUI utilities.'
}
}
}

// select the repositories you want to publish to
repositories {
mavenLocal()
maven {
name 'BuildDirLocal'
url "$buildDir/repo"
}
maven {
name 'GithubPackages'
url 'https://maven.pkg.github.com/LambdAurora/SpruceUI'
credentials {
username = project.findProperty('gpr.user') ?: System.getenv('USERNAME')
password = project.findProperty('gpr.key') ?: System.getenv('TOKEN')
}
}

def spruceuiMaven = System.getenv('SPRUCEUI_MAVEN')
if (spruceuiMaven) {
maven {
name = 'SpruceUIMaven'
url = uri(spruceuiMaven)
credentials {
username = project.findProperty('gpr.user') ?: System.getenv('MAVEN_USERNAME')
password = project.findProperty('gpr.key') ?: System.getenv('MAVEN_PASSWORD')
}
}
}
}
}
}
13 changes: 6 additions & 7 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
# Done to increase the memory available to gradle.
org.gradle.jvmargs=-Xmx1G
loom.platform=forge

minecraft_version=1.20
quilt_mappings=1
loader_version=0.14.21
minecraft_version=1.20.1
quilt_mappings=1.20.1+build.23
forge_version=1.20.1-47.1.43

# Mod Properties
mod_version = 5.0.2
mod_version = 0.1.0
maven_group = dev.lambdaurora
archives_base_name = spruceui

# Dependencies
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
fabric_api_version=0.83.0+1.20
modmenu_version=7.0.0
architectury_version=9.1.12
12 changes: 4 additions & 8 deletions settings.gradle
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
pluginManagement {
repositories {
maven {
name 'Quilt'
url 'https://maven.quiltmc.org/repository/release'
}
maven {
name 'Fabric'
url 'https://maven.fabricmc.net/'
}
maven { url "https://maven.quiltmc.org/repository/release" }
maven { url "https://maven.fabricmc.net/" }
maven { url "https://maven.architectury.dev/" }
maven { url "https://files.minecraftforge.net/maven/" }
gradlePluginPortal()
}
}
Expand Down
30 changes: 30 additions & 0 deletions src/main/java/dev/lambdaurora/spruceui/SpruceUI.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package dev.lambdaurora.spruceui;

import dev.architectury.platform.forge.EventBuses;
import dev.architectury.utils.EnvExecutor;
import dev.lambdaurora.spruceui.hud.HudManager;
import dev.lambdaurora.spruceui.test.SpruceUITest;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.fml.IExtensionPoint;
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.network.NetworkConstants;

@Mod(SpruceUI.MODID)
public class SpruceUI {
public static final String MODID = "spruceui";

public SpruceUI() {
ModLoadingContext.get().registerExtensionPoint(IExtensionPoint.DisplayTest.class, () -> new IExtensionPoint.DisplayTest(() -> NetworkConstants.IGNORESERVERONLY, (a, b) -> true));
EventBuses.registerModEventBus(MODID, FMLJavaModLoadingContext.get().getModEventBus());
EnvExecutor.runInEnv(Dist.CLIENT, () -> this::onInitializeClient);
}

public void onInitializeClient() {
HudManager.initialize();
//SpruceUITest.INSTANCE = new SpruceUITest();
}
}
10 changes: 3 additions & 7 deletions src/main/java/dev/lambdaurora/spruceui/event/EventUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

package dev.lambdaurora.spruceui.event;

import net.fabricmc.fabric.api.event.Event;
import net.fabricmc.fabric.api.event.EventFactory;
import dev.architectury.event.Event;
import dev.architectury.event.EventFactory;

/**
* Represents a set of utilities for SpruceUI's events.
Expand All @@ -25,11 +25,7 @@ private EventUtil() {
}

static Event<OpenScreenCallback> makeOpenScreenEvent() {
return EventFactory.createArrayBacked(OpenScreenCallback.class, listeners -> (client, screen) -> {
for (var event : listeners) {
event.apply(client, screen);
}
});
return EventFactory.createLoop();
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

package dev.lambdaurora.spruceui.event;

import net.fabricmc.fabric.api.event.Event;
import dev.architectury.event.Event;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen;
import org.jetbrains.annotations.Nullable;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

package dev.lambdaurora.spruceui.event;

import net.fabricmc.fabric.api.event.Event;
import net.fabricmc.fabric.api.event.EventFactory;
import dev.architectury.event.Event;
import dev.architectury.event.EventFactory;
import net.minecraft.client.MinecraftClient;

/**
Expand All @@ -22,11 +22,7 @@
*/
@FunctionalInterface
public interface ResolutionChangeCallback {
Event<ResolutionChangeCallback> EVENT = EventFactory.createArrayBacked(ResolutionChangeCallback.class, listeners -> client -> {
for (var event : listeners) {
event.apply(client);
}
});
Event<ResolutionChangeCallback> EVENT = EventFactory.createEventResult();

void apply(MinecraftClient client);
}
10 changes: 5 additions & 5 deletions src/main/java/dev/lambdaurora/spruceui/hud/HudManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@

package dev.lambdaurora.spruceui.hud;

import dev.architectury.event.events.client.ClientGuiEvent;
import dev.architectury.event.events.client.ClientTickEvent;
import dev.lambdaurora.spruceui.event.OpenScreenCallback;
import dev.lambdaurora.spruceui.event.ResolutionChangeCallback;
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback;
import net.minecraft.client.MinecraftClient;
import net.minecraft.util.Identifier;
import org.jetbrains.annotations.NotNull;
Expand All @@ -32,12 +32,12 @@
public class HudManager {
private static final Map<Identifier, Hud> HUDS = new Object2ObjectOpenHashMap<>();

public void initialize() {
HudRenderCallback.EVENT.register((graphics, tickDelta) -> HUDS.forEach((id, hud) -> {
public static void initialize() {
ClientGuiEvent.RENDER_HUD.register((graphics, tickDelta) -> HUDS.forEach((id, hud) -> {
if (hud.isEnabled() && hud.isVisible())
hud.render(graphics, tickDelta);
}));
ClientTickEvents.END_CLIENT_TICK.register(client -> {
ClientTickEvent.CLIENT_POST.register(client -> {
if (!canRenderHuds(client))
return;
HUDS.forEach((id, hud) -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,23 @@

package dev.lambdaurora.spruceui.test;

import dev.lambdaurora.spruceui.option.*;
import dev.lambdaurora.spruceui.widget.container.SpruceOptionListWidget;
import dev.architectury.platform.forge.EventBuses;
import dev.architectury.utils.EnvExecutor;
import dev.lambdaurora.spruceui.Position;
import dev.lambdaurora.spruceui.SpruceTexts;
import dev.lambdaurora.spruceui.option.*;
import dev.lambdaurora.spruceui.widget.SpruceButtonWidget;
import dev.lambdaurora.spruceui.widget.container.SpruceContainerWidget;
import dev.lambdaurora.spruceui.widget.container.SpruceOptionListWidget;
import dev.lambdaurora.spruceui.widget.text.SpruceTextAreaWidget;
import net.fabricmc.api.ClientModInitializer;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.toast.SystemToast;
import net.minecraft.text.Text;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import org.jetbrains.annotations.Nullable;

import java.util.Arrays;
Expand All @@ -30,7 +36,7 @@
*
* @author LambdAurora
*/
public class SpruceUITest implements ClientModInitializer {
public class SpruceUITest {
private static SpruceUITest INSTANCE;

private final SpruceOption booleanOption;
Expand All @@ -56,6 +62,8 @@ public class SpruceUITest implements ClientModInitializer {
public Consumer<SpruceButtonWidget> resetConsumer;

public SpruceUITest() {
EnvExecutor.runInEnv(Dist.CLIENT, () -> this::onInitializeClient);

this.booleanOption = new SpruceBooleanOption("spruceui_test.option.boolean",
() -> this.aBoolean,
newValue -> this.aBoolean = newValue,
Expand Down Expand Up @@ -130,7 +138,6 @@ public SpruceUITest() {
+ "You have to manage screen re-initialization and reset logic yourself."));
}

@Override
public void onInitializeClient() {
INSTANCE = this;
}
Expand Down
Loading

0 comments on commit d9a0566

Please sign in to comment.