From 9af5b77a1fd5aca2606e025d0ba19aecf82bedeb Mon Sep 17 00:00:00 2001 From: mewhenthe Date: Sat, 11 Apr 2026 14:00:05 +0200 Subject: [PATCH] add test stuff, may or may not have totally cooked the project for you guys --- build.gradle.kts | 224 ++++++++++++- gradle.properties | 1 - gradle/wrapper/gradle-wrapper.jar | Bin 96608 -> 46175 bytes gradle/wrapper/gradle-wrapper.properties | 4 +- gradlew | 310 +++++++++++------- gradlew.bat | 79 +++-- .../platforms/fabric/ModMenuIntegration.java | 4 +- .../platforms/fabric/NeoComputersFabric.java | 4 +- .../neoforge/NeoComputersNeoForge.java | 12 +- .../org/neoflock/neocomputers/NeoComputers.kt | 15 + .../neoflock/neocomputers/block/BaseBlock.kt | 7 +- .../org/neoflock/neocomputers/block/Blocks.kt | 56 ++-- .../org/neoflock/neocomputers/item/Items.kt | 10 + .../org/neoflock/neocomputers/item/Tabs.kt | 22 ++ .../neocomputers/util/TieredSupplier.kt | 5 + stonecutter.gradle.kts | 2 +- 16 files changed, 560 insertions(+), 195 deletions(-) mode change 100644 => 100755 gradlew create mode 100644 src/main/kotlin/org/neoflock/neocomputers/item/Items.kt create mode 100644 src/main/kotlin/org/neoflock/neocomputers/item/Tabs.kt create mode 100644 src/main/kotlin/org/neoflock/neocomputers/util/TieredSupplier.kt diff --git a/build.gradle.kts b/build.gradle.kts index 7296096..6c026e5 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -21,6 +21,7 @@ architectury.common(stonecutter.tree.branches.mapNotNull { if (stonecutter.current.project !in it) null else it.prop("loom.platform") }) + repositories { maven("https://maven.neoforged.net/releases/") @@ -37,7 +38,18 @@ dependencies { minecraft("com.mojang:minecraft:$minecraft") mappings(loom.officialMojangMappings()) - modApi("dev.architectury:architectury:${mod.dep("architectury_version")}") + var archversion = "idk" + println(minecraft) + when(minecraft) { // NOTE: add more entries if you want to add more versions + "1.20.1" -> archversion = "9.2.14" + "1.20.4" -> archversion = "11.1.17" + "1.21.9" -> archversion = "18.0.5" + else -> archversion = "19.0.1" + } + + // modImplementation("dev.architectury:architectury:$rootProject.architectury_api_version") + // modImplementation("dev.architectury:architectury:${archversion}") + modImplementation("dev.architectury:architectury:${archversion}") if (loader == "fabric") { modImplementation("net.fabricmc:fabric-loader:${mod.dep("fabric_loader")}") // mappings("net.fabricmc:yarn:$minecraft+build.${mod.dep("yarn_build")}:v2") @@ -45,16 +57,17 @@ dependencies { //some features (like automatic resource loading from non vanilla namespaces) work only with fabric API installed //for example translations from assets/modid/lang/en_us.json won't be working, same stuff with textures //but we keep runtime only to not accidentally depend on fabric's api, because it doesn't exist in neo/forge + println(archversion) modRuntimeOnly("net.fabricmc.fabric-api:fabric-api:${mod.dep("fabric_version")}") modImplementation("net.fabricmc:fabric-language-kotlin:1.13.10+kotlin.2.3.20") - modApi("dev.architectury:architectury-fabric:${mod.dep("architectury_version")}") + modApi("dev.architectury:architectury-fabric:${archversion}") } if (loader == "forge") { "forge"("net.minecraftforge:forge:${minecraft}-${mod.dep("forge_loader")}") //implementation("thedarkcolour:kotlinforforge:1.16.0") // mappings("net.fabricmc:yarn:$minecraft+build.${mod.dep("yarn_build")}:v2") - modApi("dev.architectury:architectury-forge:${mod.dep("architectury_version")}") + modApi("dev.architectury:architectury-forge:${archversion}") "io.github.llamalad7:mixinextras-forge:${mod.dep("mixin_extras")}".let { implementation(it) include(it) @@ -69,7 +82,8 @@ dependencies { // } // }) - modApi("dev.architectury:architectury-forge:${mod.dep("architectury_version")}") + if (minecraft=="1.21.9" || minecraft=="1.21.11") modApi("dev.architectury:architectury-neoforge:${archversion}") + else modApi("dev.architectury:architectury-forge:${archversion}") // NOTE: this could be wrong implementation("thedarkcolour:kotlinforforge-neoforge:6.0.0") } } @@ -225,3 +239,205 @@ tasks.build { group = "versioned" description = "Must run through 'chiseledBuild'" } + +//import java.util.* +// +//plugins { +// id("dev.architectury.loom") +// id("architectury-plugin") +// id("me.modmuss50.mod-publish-plugin") +// id("com.gradleup.shadow") +//} +// +//val minecraft = stonecutter.current.version +//val loader = loom.platform.get().name.lowercase() +// +//version = "${mod.version}+$minecraft" +//group = mod.group +//base { +// archivesName.set("${mod.id}-$loader") +//} +// +//architectury.common(stonecutter.tree.branches.mapNotNull { +// if (stonecutter.current.project !in it) null +// else it.prop("loom.platform") +//}) +//repositories { +// maven("https://maven.neoforged.net/releases/") +// +// //modmenu +// maven("https://maven.terraformersmc.com/") +// //placeholder api (modmenu depencency) +// maven("https://maven.nucleoid.xyz/") +//} +//dependencies { +// minecraft("com.mojang:minecraft:$minecraft") +// mappings(loom.officialMojangMappings()) +// +// if (loader == "fabric") { +// modImplementation("net.fabricmc:fabric-loader:${mod.dep("fabric_loader")}") +//// mappings("net.fabricmc:yarn:$minecraft+build.${mod.dep("yarn_build")}:v2") +// modImplementation("com.terraformersmc:modmenu:${mod.dep("modmenu_version")}") +// +// //some features (like automatic resource loading from non vanilla namespaces) work only with fabric API installed +// //for example translations from assets/modid/lang/en_us.json won't be working, same stuff with textures +// //but we keep runtime only to not accidentally depend on fabric's api, because it doesn't exist in neo/forge +// modRuntimeOnly("net.fabricmc.fabric-api:fabric-api:${mod.dep("fabric_version")}") +// +// } +// if (loader == "forge") { +// "forge"("net.minecraftforge:forge:${minecraft}-${mod.dep("forge_loader")}") +//// mappings("net.fabricmc:yarn:$minecraft+build.${mod.dep("yarn_build")}:v2") +// +// "io.github.llamalad7:mixinextras-forge:${mod.dep("mixin_extras")}".let { +// implementation(it) +// include(it) +// } +// } +// if (loader == "neoforge") { +// "neoForge"("net.neoforged:neoforge:${mod.dep("neoforge_loader")}") +//// mappings(loom.layered { +//// mappings("net.fabricmc:yarn:$minecraft+build.${mod.dep("yarn_build")}:v2") +//// mod.dep("neoforge_patch").takeUnless { it.startsWith('[') }?.let { +//// mappings("dev.architectury:yarn-mappings-patch-neoforge:$it") +//// } +//// }) +// +// } +//} +// +//loom { +//// accessWidenerPath = rootProject.file("src/main/resources/template.accesswidener") +// +// decompilers { +// get("vineflower").apply { // Adds names to lambdas - useful for mixins +// options.put("mark-corresponding-synthetics", "1") +// } +// } +// if (loader == "forge") { +// forge.mixinConfigs( +// "template-common.mixins.json", +// "template-forge.mixins.json", +// ) +// } +//} +// +// +//val localProperties = Properties() +//val localPropertiesFile = rootProject.file("local.properties") +//if (localPropertiesFile.exists()) { +// localProperties.load(localPropertiesFile.inputStream()) +//} +//publishMods { +// val modrinthToken = localProperties.getProperty("publish.modrinthToken", "") +// val curseforgeToken = localProperties.getProperty("publish.curseforgeToken", "") +// +// +// file = project.tasks.remapJar.get().archiveFile +// dryRun = modrinthToken == null || curseforgeToken == null +// +// displayName = "${mod.name} ${loader.replaceFirstChar { it.uppercase() }} ${property("mod.mc_title")}-${mod.version}" +// version = mod.version +// changelog = rootProject.file("CHANGELOG.md").readText() +// type = BETA +// +// modLoaders.add(loader) +// +// val targets = property("mod.mc_targets").toString().split(' ') +// modrinth { +// projectId = property("publish.modrinth").toString() +// accessToken = modrinthToken +// targets.forEach(minecraftVersions::add) +// if (loader == "fabric") { +// requires("fabric-api") +// optional("modmenu") +// } +// } +// +// curseforge { +// projectId = property("publish.curseforge").toString() +// accessToken = curseforgeToken.toString() +// targets.forEach(minecraftVersions::add) +// if (loader == "fabric") { +// requires("fabric-api") +// optional("modmenu") +// } +// } +//} +// +//java { +// withSourcesJar() +// val java = if (stonecutter.eval(minecraft, ">=1.20.5")) JavaVersion.VERSION_21 else JavaVersion.VERSION_17 +// targetCompatibility = java +// sourceCompatibility = java +//} +// +//val shadowBundle: Configuration by configurations.creating { +// isCanBeConsumed = false +// isCanBeResolved = true +//} +// +//tasks.shadowJar { +// configurations = listOf(shadowBundle) +// archiveClassifier = "dev-shadow" +//} +// +//tasks.remapJar { +// injectAccessWidener = true +// input = tasks.shadowJar.get().archiveFile +// archiveClassifier = null +// dependsOn(tasks.shadowJar) +//} +// +//tasks.jar { +// archiveClassifier = "dev" +//} +// +//val buildAndCollect = tasks.register("buildAndCollect") { +// group = "versioned" +// description = "Must run through 'chiseledBuild'" +// from(tasks.remapJar.get().archiveFile, tasks.remapSourcesJar.get().archiveFile) +// into(rootProject.layout.buildDirectory.file("libs/${mod.version}/$loader")) +// dependsOn("build") +//} +// +//if (stonecutter.current.isActive) { +// rootProject.tasks.register("buildActive") { +// group = "project" +// dependsOn(buildAndCollect) +// } +// +// rootProject.tasks.register("runActive") { +// group = "project" +// dependsOn(tasks.named("runClient")) +// } +//} +// +//tasks.processResources { +// properties( +// listOf("fabric.mod.json"), +// "id" to mod.id, +// "name" to mod.name, +// "version" to mod.version, +// "minecraft" to mod.prop("mc_dep_fabric") +// ) +// properties( +// listOf("META-INF/mods.toml", "pack.mcmeta"), +// "id" to mod.id, +// "name" to mod.name, +// "version" to mod.version, +// "minecraft" to mod.prop("mc_dep_forgelike") +// ) +// properties( +// listOf("META-INF/neoforge.mods.toml", "pack.mcmeta"), +// "id" to mod.id, +// "name" to mod.name, +// "version" to mod.version, +// "minecraft" to mod.prop("mc_dep_forgelike") +// ) +//} +// +//tasks.build { +// group = "versioned" +// description = "Must run through 'chiseledBuild'" +//} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 2e7a830..4b92127 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,7 +24,6 @@ mod.mc_targets=[VERSIONED] deps.mixin_extras=0.4.1 deps.fabric_loader=0.18.3 deps.fabric_version=[VERSIONED] -deps.architectury_version=9.1.12 deps.forge_loader=[VERSIONED] deps.neoforge_loader=[VERSIONED] diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 757bb917f7341ab73f23ed39d480a215d3592e71..61285a659d17295f1de7c53e24fdf13ad755c379 100644 GIT binary patch literal 46175 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

pVX@HRij*jw$g4?}Pn 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 literal 96608 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%0Dn=Nf0_ATmhi5PI;1L<3hjI%7 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 \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -81,96 +131,118 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=$(save "$@") +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. -# Collect all arguments for the java command, following the shell quoting and substitution rules -if $JAVACMD --add-opens java.base/java.lang=ALL-UNNAMED -version ; then - DEFAULT_JVM_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED $DEFAULT_JVM_OPTS" +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done fi -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" fi +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index f955316..c4bdd3a 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,4 +1,22 @@ -@if "%DEBUG%" == "" @echo off +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -9,25 +27,29 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -35,48 +57,35 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/src/main/java/org/neoflock/neocomputers/platforms/fabric/ModMenuIntegration.java b/src/main/java/org/neoflock/neocomputers/platforms/fabric/ModMenuIntegration.java index df742f9..7c7a5d6 100644 --- a/src/main/java/org/neoflock/neocomputers/platforms/fabric/ModMenuIntegration.java +++ b/src/main/java/org/neoflock/neocomputers/platforms/fabric/ModMenuIntegration.java @@ -1,5 +1,5 @@ //? if fabric { -/*package org.neoflock.neocomputers.platforms.fabric; +package org.neoflock.neocomputers.platforms.fabric; import com.terraformersmc.modmenu.api.ConfigScreenFactory; import com.terraformersmc.modmenu.api.ModMenuApi; @@ -10,4 +10,4 @@ public class ModMenuIntegration implements ModMenuApi { return ConfigScreen::createConfigScreen; } } -*///?} +//?} diff --git a/src/main/java/org/neoflock/neocomputers/platforms/fabric/NeoComputersFabric.java b/src/main/java/org/neoflock/neocomputers/platforms/fabric/NeoComputersFabric.java index a78593e..5503c9b 100644 --- a/src/main/java/org/neoflock/neocomputers/platforms/fabric/NeoComputersFabric.java +++ b/src/main/java/org/neoflock/neocomputers/platforms/fabric/NeoComputersFabric.java @@ -1,5 +1,5 @@ //? if fabric { -/*package org.neoflock.neocomputers.platforms.fabric; +package org.neoflock.neocomputers.platforms.fabric; import org.neoflock.neocomputers.ModPlatform; import net.fabricmc.api.ModInitializer; @@ -24,4 +24,4 @@ public class NeoComputersFabric implements ModInitializer { } } } -*///?} \ No newline at end of file +//?} \ No newline at end of file diff --git a/src/main/java/org/neoflock/neocomputers/platforms/neoforge/NeoComputersNeoForge.java b/src/main/java/org/neoflock/neocomputers/platforms/neoforge/NeoComputersNeoForge.java index cd5c939..6afd1e4 100644 --- a/src/main/java/org/neoflock/neocomputers/platforms/neoforge/NeoComputersNeoForge.java +++ b/src/main/java/org/neoflock/neocomputers/platforms/neoforge/NeoComputersNeoForge.java @@ -1,5 +1,5 @@ //? if neoforge { -package org.neoflock.neocomputers.platforms.neoforge; +/*package org.neoflock.neocomputers.platforms.neoforge; import org.neoflock.neocomputers.ConfigScreen; import org.neoflock.neocomputers.ModPlatform; @@ -8,8 +8,8 @@ import net.neoforged.fml.ModLoadingContext; import net.neoforged.fml.common.Mod; import org.neoflock.neocomputers.NeoComputers; //? if <1.21 { -/*import net.neoforged.neoforge.client.ConfigScreenHandler; -*///?} else { +/^import net.neoforged.neoforge.client.ConfigScreenHandler; +^///?} else { import net.neoforged.neoforge.client.gui.IConfigScreenFactory; //?} @Mod("neocomputers") @@ -18,11 +18,11 @@ public class NeoComputersNeoForge { NeoComputers.INSTANCE.entrypoint(new NeoForgePlatform()); ModLoadingContext.get().registerExtensionPoint( //? if <1.21 { - /*ConfigScreenHandler.ConfigScreenFactory.class, + /^ConfigScreenHandler.ConfigScreenFactory.class, () -> new ConfigScreenHandler.ConfigScreenFactory( ((client, parent) -> ConfigScreen.createConfigScreen(parent)) ) - *///?} else { + ^///?} else { IConfigScreenFactory.class, () -> (client, parent) -> ConfigScreen.createConfigScreen(parent) //?} @@ -40,4 +40,4 @@ public class NeoComputersNeoForge { } } } -//?} \ No newline at end of file +*///?} \ No newline at end of file diff --git a/src/main/kotlin/org/neoflock/neocomputers/NeoComputers.kt b/src/main/kotlin/org/neoflock/neocomputers/NeoComputers.kt index 9abefdd..44fe2bc 100644 --- a/src/main/kotlin/org/neoflock/neocomputers/NeoComputers.kt +++ b/src/main/kotlin/org/neoflock/neocomputers/NeoComputers.kt @@ -1,7 +1,14 @@ package org.neoflock.neocomputers +import com.google.common.base.Suppliers +import dev.architectury.event.events.common.LifecycleEvent +import dev.architectury.registry.registries.RegistrarManager +import org.neoflock.neocomputers.block.Blocks +import org.neoflock.neocomputers.item.Items +import org.neoflock.neocomputers.item.Tabs import org.slf4j.Logger import org.slf4j.LoggerFactory +import java.util.function.Supplier object NeoComputers { @@ -9,8 +16,16 @@ object NeoComputers { val LOGGER: Logger = LoggerFactory.getLogger("NeoComputers") var PLATFORM: ModPlatform? = null + fun entrypoint(platform: ModPlatform?) { PLATFORM = platform + + Blocks.BLOCKS.register(); + Blocks.registerBlockItems(); + Items.ITEMS.register(); + + Tabs.TABS.register(); + LOGGER.info("Registered!") //LOGGER.info("Started mod in %s loader".formatted(NeoComputersInit.PLATFORM.getModloader())) //LOGGER.info("Kotlin: %s".formatted(NeoComputers.hello())) LOGGER.info("Started mod in ${NeoComputers.PLATFORM?.modloader} loader") diff --git a/src/main/kotlin/org/neoflock/neocomputers/block/BaseBlock.kt b/src/main/kotlin/org/neoflock/neocomputers/block/BaseBlock.kt index 044edd2..7299515 100644 --- a/src/main/kotlin/org/neoflock/neocomputers/block/BaseBlock.kt +++ b/src/main/kotlin/org/neoflock/neocomputers/block/BaseBlock.kt @@ -3,12 +3,9 @@ package org.neoflock.neocomputers.block import net.minecraft.world.level.block.Block class BaseBlock : Block { - protected val tier: Int + val tier: Int + constructor(tier: Int): super(Properties.of()) { this.tier = tier } - - public fun getTier(): Int { - return tier - } } \ No newline at end of file diff --git a/src/main/kotlin/org/neoflock/neocomputers/block/Blocks.kt b/src/main/kotlin/org/neoflock/neocomputers/block/Blocks.kt index bbcd831..06491cf 100644 --- a/src/main/kotlin/org/neoflock/neocomputers/block/Blocks.kt +++ b/src/main/kotlin/org/neoflock/neocomputers/block/Blocks.kt @@ -1,50 +1,68 @@ -package org.libreflock.neocomputers.block +package org.neoflock.neocomputers.block +import com.google.common.base.Suppliers import dev.architectury.registry.registries.DeferredRegister +import dev.architectury.registry.registries.Registrar +import dev.architectury.registry.registries.RegistrarManager import dev.architectury.registry.registries.RegistrySupplier import net.minecraft.core.registries.Registries +import net.minecraft.resources.Identifier +import net.minecraft.resources.ResourceKey import net.minecraft.world.item.BlockItem import net.minecraft.world.item.Item import net.minecraft.world.level.block.Block -import org.libreflock.neocomputers.item.Items -import org.libreflock.neocomputers.item.Tabs +import net.minecraft.world.level.block.state.BlockBehaviour +// import org.neoflock.neocomputers.item.Tabs +// import org.neoflock.neocomputers.item.Items import org.neoflock.neocomputers.NeoComputers import org.neoflock.neocomputers.block.BaseBlock +import org.neoflock.neocomputers.item.Items +import org.neoflock.neocomputers.item.Tabs import java.util.function.Consumer import java.util.function.Supplier object Blocks { + // val CASE: MutableList?>? = + // BaseBlock.register(intArrayOf(0, 1, 2), "case", { tier -> CaseBlock(tier) }) + + val BLOCKS: DeferredRegister = DeferredRegister.create(NeoComputers.MODID, Registries.BLOCK) + // val TESTBLOCK : RegistrySupplier = registerBlock("test") + val TESTBLOCK: RegistrySupplier = BLOCKS.register("test") { Block(BlockBehaviour.Properties.of().setId(ResourceKey.create(Registries.BLOCK, Identifier.fromNamespaceAndPath(NeoComputers.MODID, "test")))) } - val CASE: MutableList?>? = - BaseBlock.register(intArrayOf(0, 1, 2), "case", { tier -> CaseBlock(tier) }) - // public static final RegistrySupplier CASE0 = BLOCKS.register("case0", () -> new CaseBlock(0)); // public static final RegistrySupplier CASE1 = BLOCKS.register("case1", () -> new CaseBlock(1)); // public static final RegistrySupplier CASE2 = BLOCKS.register("case2", () -> new CaseBlock(2)); // public static final RegistrySupplier CABLE = BLOCKS.register("cable", () -> new CableBlock()); - val SCREEN: RegistrySupplier? = BLOCKS.register("screen", Supplier { ScreenBlock() }) - val CABLE: RegistrySupplier? = BLOCKS.register("cable", Supplier { CableBlock() }) + // val SCREEN: RegistrySupplier? = BLOCKS.register("screen", Supplier { ScreenBlock() }) + // val CABLE: RegistrySupplier? = BLOCKS.register("cable", Supplier { CableBlock() }) + + // fun registerBlock(name: String): RegistrySupplier { + // // var Registrar items = MANAGER.get().get(Registries.ITEM); + // var blocks: Registrar = NeoComputers.MANAGER.get().get(Registries.BLOCK); + // return blocks.register(Identifier.fromNamespaceAndPath(NeoComputers.MODID, name)) { + // Block( + // BlockBehaviour.Properties.of().setId( + // ResourceKey.create( + // Registries.BLOCK, + // Identifier.fromNamespaceAndPath(NeoComputers.MODID, name) + // ) + // ) + // ) + // } + // } fun registerBlockItems() { BLOCKS.forEach(Consumer { sup: RegistrySupplier? -> - // sup.pre - // sup.((blk) -> { - // NeoComputers.LOGGER.info(blk.getDescriptionId()); + NeoComputers.LOGGER.info("mango viagra") + // TODO: base blocks // if (blk instanceof BaseBlock) { // Items.ITEMS.register(sup.getId().getPath(), () -> new BaseBlock.BaseBlockItem(blk, new Item.Properties().arch$tab(Tabs.TAB))); // } else { // Items.ITEMS.register(sup.getId().getPath(), () -> new BlockItem(blk, new Item.Properties().arch$tab(Tabs.TAB))); // } - // }); - Items.ITEMS.register(sup!!.getId().getPath(), { - if (sup.get() is BaseBlock) { - return@register BaseBlockItem(sup.get(), Item.Properties().`arch$tab`(Tabs.TAB)) - } else { - return@register BlockItem(sup.get(), Item.Properties().`arch$tab`(Tabs.TAB)) - } - }) + Items.ITEMS.register(sup!!.id.path) { BlockItem(sup.get()!!, Item.Properties().`arch$tab`(Tabs.TAB).setId(ResourceKey.create(Registries.ITEM, sup.id)))} }) } } \ No newline at end of file diff --git a/src/main/kotlin/org/neoflock/neocomputers/item/Items.kt b/src/main/kotlin/org/neoflock/neocomputers/item/Items.kt new file mode 100644 index 0000000..d79388c --- /dev/null +++ b/src/main/kotlin/org/neoflock/neocomputers/item/Items.kt @@ -0,0 +1,10 @@ +package org.neoflock.neocomputers.item; + +import dev.architectury.registry.registries.DeferredRegister +import net.minecraft.core.registries.Registries +import net.minecraft.world.item.Item +import org.neoflock.neocomputers.NeoComputers + +object Items { + val ITEMS: DeferredRegister = DeferredRegister.create(NeoComputers.MODID, Registries.ITEM) +} \ No newline at end of file diff --git a/src/main/kotlin/org/neoflock/neocomputers/item/Tabs.kt b/src/main/kotlin/org/neoflock/neocomputers/item/Tabs.kt new file mode 100644 index 0000000..071758f --- /dev/null +++ b/src/main/kotlin/org/neoflock/neocomputers/item/Tabs.kt @@ -0,0 +1,22 @@ +package org.neoflock.neocomputers.item; + +import dev.architectury.registry.CreativeTabRegistry +import dev.architectury.registry.registries.DeferredRegister +import dev.architectury.registry.registries.RegistrySupplier +import net.minecraft.core.registries.Registries +import net.minecraft.network.chat.Component +import net.minecraft.world.item.CreativeModeTab +import net.minecraft.world.item.ItemStack +import net.minecraft.world.item.Items +import org.neoflock.neocomputers.NeoComputers +import java.util.function.Supplier + + +object Tabs { + val TABS: DeferredRegister = DeferredRegister.create(NeoComputers.MODID, Registries.CREATIVE_MODE_TAB) + + val TAB: RegistrySupplier = TABS.register("neocomputers_tab", Supplier {CreativeTabRegistry.create( + Component.literal("NeoComputers"), + Supplier { ItemStack(Items.ACACIA_BOAT) } + )}) +} \ No newline at end of file diff --git a/src/main/kotlin/org/neoflock/neocomputers/util/TieredSupplier.kt b/src/main/kotlin/org/neoflock/neocomputers/util/TieredSupplier.kt new file mode 100644 index 0000000..d080747 --- /dev/null +++ b/src/main/kotlin/org/neoflock/neocomputers/util/TieredSupplier.kt @@ -0,0 +1,5 @@ +package org.neoflock.neocomputers.util + +fun interface TieredSupplier { + fun get(tier: Int): T +} \ No newline at end of file diff --git a/stonecutter.gradle.kts b/stonecutter.gradle.kts index cb9313f..2be3523 100644 --- a/stonecutter.gradle.kts +++ b/stonecutter.gradle.kts @@ -5,7 +5,7 @@ plugins { id("com.gradleup.shadow") version "9.3.0" apply false id("me.modmuss50.mod-publish-plugin") version "0.8.4" apply false } -stonecutter active "1.21.11-neoforge" /* [SC] DO NOT EDIT */ +stonecutter active "1.21.11-fabric" /* [SC] DO NOT EDIT */ stonecutter.automaticPlatformConstants = true // Builds every version into `build/libs/{mod.version}/{loader}`