From b3cbce23c6d6e77d5e78271c4647cf88ef7f28cb Mon Sep 17 00:00:00 2001 From: hugeblank Date: Mon, 16 Sep 2024 21:05:04 -0700 Subject: [PATCH] fix: run configurations --- README.md | 8 ++- .../hugeblank/allium/loader/PackageLib.java | 8 ++- .../allium/loader/ScriptExecutor.java | 4 -- build.gradle.kts | 54 ++++++++---------- {allium/logos => logos}/banner.png | Bin {allium/logos => logos}/icon.png | Bin {allium/logos => logos}/logo.png | Bin 7 files changed, 37 insertions(+), 37 deletions(-) rename {allium/logos => logos}/banner.png (100%) rename {allium/logos => logos}/icon.png (100%) rename {allium/logos => logos}/logo.png (100%) diff --git a/README.md b/README.md index 2c9677c..2640879 100755 --- a/README.md +++ b/README.md @@ -26,8 +26,8 @@ these limitations will be resolved before version 1.0. ## Logos Allium's logos are under the same license as the rest of the project. Feel free to use these in your own project -Allium Icon Allium Logo -Powered by Allium +Allium Icon Allium Logo +Powered by Allium ## Contributing Allium is broken up into 2 gradle subprojects that each build into their own jars. When making a pull request please @@ -40,6 +40,10 @@ Found in the `allium` directory, this is the bare-minimum necessary for a Lua sc Found in the `bouquet` directory, this features additional quality of life libraries, as well as frequently used event hooks into the games logic. +### Dev Environment Notes +- To build both projects at the same time use the `buildMoonflower` gradle task. +- Multiple client run configurations are created. One is for running only allium, the other is for running both allium & bouquet. + ## Too much Allium... Since 2018 a project under the name Allium has existed. This is being addressed to suppress the Mandela Effect. diff --git a/allium/src/main/java/dev/hugeblank/allium/loader/PackageLib.java b/allium/src/main/java/dev/hugeblank/allium/loader/PackageLib.java index 0e5f5b5..62fc7ce 100644 --- a/allium/src/main/java/dev/hugeblank/allium/loader/PackageLib.java +++ b/allium/src/main/java/dev/hugeblank/allium/loader/PackageLib.java @@ -27,8 +27,6 @@ public PackageLib(Script script) { this.path = "./?.lua;./?/init.lua"; this.preload = new LuaTable(); this.loaded = new LuaTable(); - script.getExecutor().getGlobals() - .rawset("require", RegisteredFunction.ofV("require", this::require).create()); // When writing a loader in Java, anywhere where a module value can't be determined `nil` should be returned. loaders = ValueFactory.listOf( @@ -44,6 +42,12 @@ public PackageLib(Script script) { ); } + @Override + public LuaValue add(LuaState state, LuaTable globals) { + globals.rawset("require", RegisteredFunction.ofV("require", this::require).create()); + return WrappedLuaLibrary.super.add(state, globals); + } + public LuaValue preloadLoader(LuaState state, LuaValue arg) throws LuaError, UnwindThrowable { if (preload.rawget(arg).isFunction()){ return preload.rawget(arg).checkFunction().call(state, arg); diff --git a/allium/src/main/java/dev/hugeblank/allium/loader/ScriptExecutor.java b/allium/src/main/java/dev/hugeblank/allium/loader/ScriptExecutor.java index c203648..a33b13f 100755 --- a/allium/src/main/java/dev/hugeblank/allium/loader/ScriptExecutor.java +++ b/allium/src/main/java/dev/hugeblank/allium/loader/ScriptExecutor.java @@ -61,10 +61,6 @@ public LuaState getState() { return state; } - public LuaTable getGlobals() { - return globals; - } - public Varargs initialize(@Nullable InputStream sMain, @Nullable InputStream dMain) throws Throwable { Entrypoint entrypoints = script.getManifest().entrypoints(); LuaFunction staticFunction; diff --git a/build.gradle.kts b/build.gradle.kts index 9da52cd..c0ab937 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,3 +1,5 @@ +import java.util.Locale + plugins { id("fabric-loom") version "1.7-SNAPSHOT" id("maven-publish") @@ -51,25 +53,38 @@ allprojects { mappings("net.fabricmc", "yarn", yarnMappings, null, "v2") modImplementation("net.fabricmc", "fabric-loader", loaderVersion) - modImplementation(include("org.squiddev", "Cobalt", cobalt)) - modImplementation(include("me.basiqueevangelist","enhanced-reflection", enhancedReflections)) + modImplementation("org.squiddev", "Cobalt", cobalt) + modImplementation("me.basiqueevangelist","enhanced-reflection", enhancedReflections) + modImplementation("net.fabricmc", "tiny-mappings-parser", tinyParser) } -} -subprojects.forEach { tasks { processResources { - inputs.property("version", it.version) + inputs.property("version", project.version) filesMatching("fabric.mod.json") { - expand(mutableMapOf("version" to it.version)) + expand(mutableMapOf("version" to project.version)) } } jar { from("LICENSE") { - val archivesName = it.base.archivesName.get() - rename { "${it}_${archivesName}" } + rename { "${it}_${project.base.archivesName.get()}" } + } + } + + loom { + runs { + named("client") { + configName = "${ + project.name.replaceFirstChar { + if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() + } + } Client" + ideConfigGenerated(true) + runDir("../run") + programArgs("-username", "GradleDev") + } } } } @@ -84,30 +99,11 @@ dependencies { evaluationDependsOnChildren() tasks { - loom { - val loomRootDir = project.projectDir.relativeTo(project.rootDir) + loom { runs { named("client") { - client() - configName = "Moonflower Dev Client" - ideConfigGenerated(true) - runDir(loomRootDir.resolve("run").toString()) - programArgs("-username", "GradleDev") - dependencies { - implementation(project(path = ":allium", configuration = "namedElements")) - implementation(project(path = ":bouquet", configuration = "namedElements")) - } - } - register("allium") { - client() - configName = "Allium Only" - ideConfigGenerated(true) - runDir(loomRootDir.resolve("run").toString()) - programArgs("-username", "GradleDev") - dependencies { - implementation(project(path = ":allium", configuration = "namedElements")) - } + ideConfigGenerated(false) } } } diff --git a/allium/logos/banner.png b/logos/banner.png similarity index 100% rename from allium/logos/banner.png rename to logos/banner.png diff --git a/allium/logos/icon.png b/logos/icon.png similarity index 100% rename from allium/logos/icon.png rename to logos/icon.png diff --git a/allium/logos/logo.png b/logos/logo.png similarity index 100% rename from allium/logos/logo.png rename to logos/logo.png