diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..4740853 --- /dev/null +++ b/.classpath @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2f459b0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,22 @@ +# gradle + +.gradle/ +build/ +out/ +classes/ +bin/ + +# eclipse + +*.launch + +# fabric + +run/ + +# java + +hs_err_*.log +replay_*.log +*.hprof +*.jfr diff --git a/.project b/.project new file mode 100644 index 0000000..6b24044 --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + quickiemod + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.buildship.core.gradleprojectbuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.buildship.core.gradleprojectnature + + diff --git a/.settings/org.eclipse.buildship.core.prefs b/.settings/org.eclipse.buildship.core.prefs new file mode 100644 index 0000000..a40ec5d --- /dev/null +++ b/.settings/org.eclipse.buildship.core.prefs @@ -0,0 +1,13 @@ +arguments= +auto.sync=false +build.scans.enabled=false +connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) +connection.project.dir= +eclipse.preferences.version=1 +gradle.user.home= +java.home= +jvm.arguments= +offline.mode=false +override.workspace.settings=false +show.console.view=true +show.executions.view=true diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..06d2104 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,13 @@ +# +#Sat Jun 01 10:37:20 CEST 2024 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=21 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=21 diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..4131d38 --- /dev/null +++ b/build.gradle @@ -0,0 +1,80 @@ +plugins { + id 'fabric-loom' version '1.6-SNAPSHOT' + id 'maven-publish' +} + +version = project.mod_version +group = project.maven_group + +base { + archivesName = project.archives_base_name +} + +repositories { + // Add repositories to retrieve artifacts from in here. + // You should only use this when depending on other mods because + // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. + // See https://docs.gradle.org/current/userguide/declaring_repositories.html + // for more information about repositories. +} + +fabricApi { + configureDataGeneration() +} + +dependencies { + // To change the versions see the gradle.properties file + minecraft "com.mojang:minecraft:${project.minecraft_version}" + mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" + modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" + + // Fabric API. This is technically optional, but you probably want it anyway. + modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + +} + +processResources { + inputs.property "version", project.version + + filesMatching("fabric.mod.json") { + expand "version": project.version + } +} + +tasks.withType(JavaCompile).configureEach { + it.options.release = 21 +} + +java { + // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task + // if it is present. + // If you remove this line, sources will not be generated. + withSourcesJar() + + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 +} + +jar { + from("LICENSE") { + rename { "${it}_${project.base.archivesName.get()}"} + } +} + +// configure the maven publication +publishing { + publications { + create("mavenJava", MavenPublication) { + artifactId = project.archives_base_name + from components.java + } + } + + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. + repositories { + // Add repositories to publish to here. + // Notice: This block does NOT have the same function as the block in the top level. + // The repositories here will be used for publishing your artifact, not for + // retrieving dependencies. + } +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..03e7047 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,17 @@ +# Done to increase the memory available to gradle. +org.gradle.jvmargs=-Xmx1G +org.gradle.parallel=true + +# Fabric Properties +# check these on https://fabricmc.net/develop +minecraft_version=1.20.6 +yarn_mappings=1.20.6+build.3 +loader_version=0.15.11 + +# Mod Properties +mod_version=1.20.6.0 +maven_group=de.jottyfan.quickiemod +archives_base_name=quickiemod + +# Dependencies +fabric_version=0.99.4+1.20.6 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..e644113 Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..b82aa23 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..1aa94a4 --- /dev/null +++ b/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +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 + +# 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 "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +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 ;; #( + 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 + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + 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" && ! "$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 + +# 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. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + 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 + + +# 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, 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" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# 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 new file mode 100644 index 0000000..7101f8e --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,92 @@ +@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 + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +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="-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% equ 0 goto execute + +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 + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +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 + +: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 %* + +:end +@rem End local scope for the variables with windows NT shell +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! +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 + +:omega diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..75c4d72 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,10 @@ +pluginManagement { + repositories { + maven { + name = 'Fabric' + url = 'https://maven.fabricmc.net/' + } + mavenCentral() + gradlePluginPortal() + } +} \ No newline at end of file diff --git a/src/main/java/de/jottyfan/quickiemod/QuickieMod.java b/src/main/java/de/jottyfan/quickiemod/QuickieMod.java new file mode 100644 index 0000000..d53c7dd --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/QuickieMod.java @@ -0,0 +1,27 @@ +package de.jottyfan.quickiemod; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import de.jottyfan.quickiemod.init.RegistryManager; +import net.fabricmc.api.ModInitializer; + +/** + * + * @author jotty + * + */ +public class QuickieMod implements ModInitializer { + public static final String MODID = "quickiemod"; + + private static final Logger LOGGER = LoggerFactory.getLogger(MODID); + + @Override + public void onInitialize() { + LOGGER.info("loading {}", MODID); + RegistryManager.registerItems(); + RegistryManager.registerBlocks(); + RegistryManager.registerFeatures(); + RegistryManager.registerItemGroup(); + } +} \ No newline at end of file diff --git a/src/main/java/de/jottyfan/quickiemod/QuickieModClient.java b/src/main/java/de/jottyfan/quickiemod/QuickieModClient.java new file mode 100644 index 0000000..415f51d --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/QuickieModClient.java @@ -0,0 +1,17 @@ +package de.jottyfan.quickiemod; + +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +/** + * + * @author jotty + * + */ +@Environment(EnvType.CLIENT) +public class QuickieModClient implements ClientModInitializer { + @Override + public void onInitializeClient() { + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/QuickieModDataGenerator.java b/src/main/java/de/jottyfan/quickiemod/QuickieModDataGenerator.java new file mode 100644 index 0000000..395d3db --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/QuickieModDataGenerator.java @@ -0,0 +1,23 @@ +package de.jottyfan.quickiemod; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; + +/** + * + * @author jotty + * + */ +public class QuickieModDataGenerator implements DataGeneratorEntrypoint { + private static final Logger LOGGER = LoggerFactory.getLogger(QuickieMod.MODID); + + + @Override + public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { + // TODO: implement + LOGGER.debug("initializing data generator"); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockDirtSalpeter.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockDirtSalpeter.java new file mode 100644 index 0000000..51c91f8 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/blocks/BlockDirtSalpeter.java @@ -0,0 +1,46 @@ +package de.jottyfan.quickiemod.blocks; + +import java.util.Arrays; +import java.util.List; +import java.util.Random; + +import com.mojang.serialization.MapCodec; + +import de.jottyfan.quickiemod.items.QuickieItems; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.FallingBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.loot.context.LootContextParameterSet.Builder; + +/** + * + * @author jotty + * + */ +public class BlockDirtSalpeter extends FallingBlock { + + public BlockDirtSalpeter() { + super(AbstractBlock.Settings.create().hardness(3.1f)); + } + + @Override + public List getDroppedStacks(BlockState blockState, Builder builder) { + Integer count = (Double.valueOf(new Random().nextDouble() * 10).intValue() / 4) + 1; + boolean spawnBoneMeal = new Random().nextDouble() > 0.5f; + ItemStack boneMealStack = new ItemStack(Items.BONE_MEAL); + ItemStack salpeterStack = new ItemStack(QuickieItems.SALPETER.getItem(), count); + ItemStack dirtStack = new ItemStack(Blocks.DIRT); + ItemStack[] spawnies = spawnBoneMeal ? new ItemStack[] { boneMealStack, salpeterStack, dirtStack } + : new ItemStack[] { salpeterStack, dirtStack }; + return Arrays.asList(spawnies); + } + + @Override + protected MapCodec getCodec() { + // TODO Auto-generated method stub + return null; + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockKelpstack.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockKelpstack.java new file mode 100644 index 0000000..8d84f20 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/blocks/BlockKelpstack.java @@ -0,0 +1,38 @@ +package de.jottyfan.quickiemod.blocks; + +import java.util.Arrays; +import java.util.List; + +import com.mojang.serialization.MapCodec; + +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.BlockState; +import net.minecraft.block.FallingBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.loot.context.LootContextParameterSet.Builder; +import net.minecraft.sound.BlockSoundGroup; + +/** + * + * @author jotty + * + */ +public class BlockKelpstack extends FallingBlock { + + public BlockKelpstack() { + super(AbstractBlock.Settings.create().hardness(0.1f).slipperiness(1.0f) + .breakInstantly().sounds(BlockSoundGroup.WET_GRASS)); + } + + @Override + public List getDroppedStacks(BlockState blockState, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(Items.KELP, 9) }); + } + + @Override + protected MapCodec getCodec() { + // TODO Auto-generated method stub + return null; + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreDeepslateSulphor.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreDeepslateSulphor.java new file mode 100644 index 0000000..fad79b6 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreDeepslateSulphor.java @@ -0,0 +1,30 @@ +package de.jottyfan.quickiemod.blocks; + +import java.util.Arrays; +import java.util.List; + +import de.jottyfan.quickiemod.blocks.help.IntProviderHelper; +import de.jottyfan.quickiemod.items.QuickieItems; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.BlockState; +import net.minecraft.block.ExperienceDroppingBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContextParameterSet.Builder; + + +/** + * + * @author jotty + * + */ +public class BlockOreDeepslateSulphor extends ExperienceDroppingBlock { + + public BlockOreDeepslateSulphor() { + super(IntProviderHelper.of(0, 2), AbstractBlock.Settings.create().hardness(1.9f).requiresTool()); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(QuickieItems.SULPHOR.getItem(), 4) }); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreNetherSulphor.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreNetherSulphor.java new file mode 100644 index 0000000..8350eae --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreNetherSulphor.java @@ -0,0 +1,29 @@ +package de.jottyfan.quickiemod.blocks; + +import java.util.Arrays; +import java.util.List; + +import de.jottyfan.quickiemod.blocks.help.IntProviderHelper; +import de.jottyfan.quickiemod.items.QuickieItems; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.BlockState; +import net.minecraft.block.ExperienceDroppingBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContextParameterSet.Builder; + +/** + * + * @author jotty + * + */ +public class BlockOreNetherSulphor extends ExperienceDroppingBlock { + + public BlockOreNetherSulphor() { + super(IntProviderHelper.of(0, 2), AbstractBlock.Settings.create().hardness(2.1f).requiresTool()); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(QuickieItems.SULPHOR.getItem()) }); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreSalpeter.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreSalpeter.java new file mode 100644 index 0000000..3c5d085 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreSalpeter.java @@ -0,0 +1,30 @@ +package de.jottyfan.quickiemod.blocks; + +import java.util.Arrays; +import java.util.List; + +import de.jottyfan.quickiemod.blocks.help.IntProviderHelper; +import de.jottyfan.quickiemod.items.QuickieItems; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.BlockState; +import net.minecraft.block.ExperienceDroppingBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContextParameterSet.Builder; +import net.minecraft.util.math.random.Random; + +/** + * + * @author jotty + * + */ +public class BlockOreSalpeter extends ExperienceDroppingBlock { + + public BlockOreSalpeter() { + super(IntProviderHelper.of(0, 2), AbstractBlock.Settings.create().hardness(3.1f).requiresTool()); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(QuickieItems.SALPETER.getItem(), 2 + Random.create().nextInt(3)) }); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreSandSalpeter.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreSandSalpeter.java new file mode 100644 index 0000000..6f40080 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreSandSalpeter.java @@ -0,0 +1,31 @@ +package de.jottyfan.quickiemod.blocks; + +import java.util.Arrays; +import java.util.List; + +import de.jottyfan.quickiemod.blocks.help.IntProviderHelper; +import de.jottyfan.quickiemod.items.QuickieItems; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.ExperienceDroppingBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContextParameterSet.Builder; +import net.minecraft.util.math.random.Random; + +/** + * + * @author jotty + * + */ +public class BlockOreSandSalpeter extends ExperienceDroppingBlock { + + public BlockOreSandSalpeter() { + super(IntProviderHelper.of(0, 2), AbstractBlock.Settings.create().hardness(2.9f).requiresTool()); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(QuickieItems.SALPETER.getItem(), 7 + Random.create().nextInt(4)), new ItemStack(Blocks.SAND) }); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreSulphor.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreSulphor.java new file mode 100644 index 0000000..e1d22f4 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreSulphor.java @@ -0,0 +1,30 @@ +package de.jottyfan.quickiemod.blocks; + +import java.util.Arrays; +import java.util.List; + +import de.jottyfan.quickiemod.blocks.help.IntProviderHelper; +import de.jottyfan.quickiemod.items.QuickieItems; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.BlockState; +import net.minecraft.block.ExperienceDroppingBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContextParameterSet.Builder; + + +/** + * + * @author jotty + * + */ +public class BlockOreSulphor extends ExperienceDroppingBlock { + + public BlockOreSulphor() { + super(IntProviderHelper.of(0, 2), AbstractBlock.Settings.create().hardness(1.9f).requiresTool()); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(QuickieItems.SULPHOR.getItem()) }); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockSalpeter.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockSalpeter.java new file mode 100644 index 0000000..9a4426a --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/blocks/BlockSalpeter.java @@ -0,0 +1,29 @@ +package de.jottyfan.quickiemod.blocks; + +import java.util.Arrays; +import java.util.List; + +import de.jottyfan.quickiemod.blocks.help.IntProviderHelper; +import de.jottyfan.quickiemod.items.QuickieItems; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.BlockState; +import net.minecraft.block.ExperienceDroppingBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContextParameterSet.Builder; + +/** + * + * @author jotty + * + */ +public class BlockSalpeter extends ExperienceDroppingBlock { + + public BlockSalpeter() { + super(IntProviderHelper.of(0, 2), AbstractBlock.Settings.create().hardness(0.5f)); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(QuickieItems.SALPETER.getItem(), 9) }); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockSandSalpeter.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockSandSalpeter.java new file mode 100644 index 0000000..35c8be4 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/blocks/BlockSandSalpeter.java @@ -0,0 +1,38 @@ +package de.jottyfan.quickiemod.blocks; + +import java.util.Arrays; +import java.util.List; + +import com.mojang.serialization.MapCodec; + +import de.jottyfan.quickiemod.items.QuickieItems; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.FallingBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContextParameterSet.Builder; +import net.minecraft.util.math.random.Random; + +/** + * + * @author jotty + * + */ +public class BlockSandSalpeter extends FallingBlock { + + public BlockSandSalpeter() { + super(AbstractBlock.Settings.create().hardness(3.1f).requiresTool()); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(QuickieItems.SALPETER.getItem(), 3 + Random.create().nextInt(2)), new ItemStack(Blocks.SAND) }); + } + + @Override + protected MapCodec getCodec() { + // TODO Auto-generated method stub + return null; + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockSulphor.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockSulphor.java new file mode 100644 index 0000000..5769b06 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/blocks/BlockSulphor.java @@ -0,0 +1,29 @@ +package de.jottyfan.quickiemod.blocks; + +import java.util.Arrays; +import java.util.List; + +import de.jottyfan.quickiemod.blocks.help.IntProviderHelper; +import de.jottyfan.quickiemod.items.QuickieItems; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.BlockState; +import net.minecraft.block.ExperienceDroppingBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContextParameterSet.Builder; + +/** + * + * @author jotty + * + */ +public class BlockSulphor extends ExperienceDroppingBlock { + + public BlockSulphor() { + super(IntProviderHelper.of(0, 2), AbstractBlock.Settings.create().hardness(0.5f)); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(QuickieItems.SULPHOR.getItem(), 9) }); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/QuickieBlocks.java b/src/main/java/de/jottyfan/quickiemod/blocks/QuickieBlocks.java new file mode 100644 index 0000000..7ffb15a --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/blocks/QuickieBlocks.java @@ -0,0 +1,39 @@ +package de.jottyfan.quickiemod.blocks; + +import net.minecraft.block.Block; + +/** + * + * @author jotty + * + */ +public enum QuickieBlocks { + // @formatter:off + KELPSTACK(new BlockKelpstack(), "kelpstack"), + DIRT_SALPETER(new BlockDirtSalpeter(), "dirtsalpeter"), + ORE_NETHER_SULPHOR(new BlockOreNetherSulphor(), "orenethersulphor"), + ORE_SALPETER(new BlockOreSalpeter(), "oresalpeter"), + ORE_SAND_SALPETER(new BlockSandSalpeter(), "oresandsalpeter"), + ORE_SULPHOR(new BlockOreSulphor(), "oresulphor"), + ORE_DEEPSLATESULPHOR(new BlockOreDeepslateSulphor(), "oredeepslatesulphor"), + SAND_SALPETER(new BlockSandSalpeter(), "sandsalpeter"), + BLOCKSULPHOR(new BlockSulphor(), "blocksulphor"), + BLOCKSALPETER(new BlockSalpeter(), "blocksalpeter"); + // @formatter:on + + private final Block block; + private final String name; + + private QuickieBlocks(Block block, String name) { + this.block = block; + this.name = name; + } + + public final Block getBlock() { + return block; + } + + public final String getName() { + return name; + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/help/IntProviderHelper.java b/src/main/java/de/jottyfan/quickiemod/blocks/help/IntProviderHelper.java new file mode 100644 index 0000000..c73f186 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/blocks/help/IntProviderHelper.java @@ -0,0 +1,37 @@ +package de.jottyfan.quickiemod.blocks.help; + +import net.minecraft.util.math.intprovider.IntProvider; +import net.minecraft.util.math.intprovider.IntProviderType; +import net.minecraft.util.math.random.Random; + +/** + * + * @author jotty + * + */ +public class IntProviderHelper { + public static final IntProvider of(Integer min, Integer max) { + return new IntProvider() { + + @Override + public IntProviderType getType() { + return IntProviderType.CONSTANT; + } + + @Override + public int getMin() { + return min; + } + + @Override + public int getMax() { + return max; + } + + @Override + public int get(Random random) { + return random.nextBetween(min, max); + } + }; + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/init/FeaturesManager.java b/src/main/java/de/jottyfan/quickiemod/init/FeaturesManager.java new file mode 100644 index 0000000..f355d0a --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/init/FeaturesManager.java @@ -0,0 +1,66 @@ +package de.jottyfan.quickiemod.init; + +import java.util.function.BiConsumer; + +import de.jottyfan.quickiemod.QuickieMod; +import net.fabricmc.fabric.api.biome.v1.BiomeModificationContext; +import net.fabricmc.fabric.api.biome.v1.BiomeSelectionContext; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.util.Identifier; +import net.minecraft.world.gen.GenerationStep; +import net.minecraft.world.gen.feature.ConfiguredFeature; +import net.minecraft.world.gen.feature.PlacedFeature; + +/** + * + * @author jotty + * + */ +public class FeaturesManager { + + public static final RegistryKey> CF_ORESULFUR = genCf("oresulphor"); + public static final RegistryKey> CF_OREDEEPSLATESULFUR = genCf("oredepslatesulphor"); + public static final RegistryKey> CF_ORESALPETER = genCf("oresalpeter"); + public static final RegistryKey> CF_ORENETHERSULPHOR = genCf("orenethersulphore"); + public static final RegistryKey> CF_BLOCKSULPHOR = genCf("blocksulphor"); + public static final RegistryKey> CF_DIRTSALPETER = genCf("dirtsalpeter"); + public static final RegistryKey> CF_SANDSALPETER = genCf("sandsalpeter"); + public static final RegistryKey> CF_ORESANDSALPETER = genCf("oresandsalpeter"); + + public static final RegistryKey PF_ORESULPHOR = genPf("oresulphor"); + public static final RegistryKey PF_OREDEEPSLATESULPHOR = genPf("oredeepslatesulphor"); + public static final RegistryKey PF_ORESALPETER = genPf("oresalpeter"); + public static final RegistryKey PF_ORENETHERSULPHOR = genPf("orenethersulphor"); + public static final RegistryKey PF_BLOCKSULPHOR = genPf("blocksulphor"); + public static final RegistryKey PF_DIRTSALPETER = genPf("dirtsalpeter"); + public static final RegistryKey PF_SANDSALPETER = genPf("sandsalpeter"); + public static final RegistryKey PF_ORESANDSALPETER = genPf("oresandsalpeter"); + + private static final RegistryKey> genCf(String name) { + return RegistryKey.of(RegistryKeys.CONFIGURED_FEATURE, new Identifier(QuickieMod.MODID, name)); + } + + private static final RegistryKey genPf(String name) { + return RegistryKey.of(RegistryKeys.PLACED_FEATURE, new Identifier(QuickieMod.MODID, name)); + } + + protected static final BiConsumer overworldOres() { + return (bsc, bmc) -> { + bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_ORESULPHOR); + bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_ORESALPETER); + bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_DIRTSALPETER); + bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_SANDSALPETER); + bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_ORESANDSALPETER); + bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_OREDEEPSLATESULPHOR); + }; + } + + protected static final BiConsumer netherOres() { + return (bsc, bmc) -> { + bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_ORENETHERSULPHOR); + bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_BLOCKSULPHOR); + }; + } + +} diff --git a/src/main/java/de/jottyfan/quickiemod/init/RegistryManager.java b/src/main/java/de/jottyfan/quickiemod/init/RegistryManager.java new file mode 100644 index 0000000..5fe7d21 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/init/RegistryManager.java @@ -0,0 +1,71 @@ +package de.jottyfan.quickiemod.init; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import de.jottyfan.quickiemod.QuickieMod; +import de.jottyfan.quickiemod.blocks.QuickieBlocks; +import de.jottyfan.quickiemod.items.QuickieItems; +import net.fabricmc.fabric.api.biome.v1.BiomeModifications; +import net.fabricmc.fabric.api.biome.v1.BiomeSelectors; +import net.fabricmc.fabric.api.biome.v1.ModificationPhase; +import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup; +import net.fabricmc.fabric.api.registry.FuelRegistry; +import net.minecraft.item.BlockItem; +import net.minecraft.item.Item.Settings; +import net.minecraft.item.ItemStack; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; + +/** + * + * @author jotty + * + */ +public class RegistryManager { + private static final Logger LOGGER = LoggerFactory.getLogger(QuickieMod.MODID); + + public static final void registerItemGroup() { + Registry.register(Registries.ITEM_GROUP, RegistryKey.of(RegistryKeys.ITEM_GROUP, new Identifier(QuickieMod.MODID, "itemgroups")), + FabricItemGroup.builder().icon(() -> new ItemStack(QuickieItems.ROTTEN_FLESH_STRIPES.getItem())).displayName(Text.literal(QuickieMod.MODID)) + .entries((enabledFeatures, stacks) -> { + for (QuickieItems i : QuickieItems.values()) { + stacks.add(new ItemStack(i.getItem())); + } + for (QuickieBlocks b : QuickieBlocks.values()) { + stacks.add(new ItemStack(b.getBlock())); + } + }).build()); + } + + public static final void registerItems() { + LOGGER.debug("registering items"); + for (QuickieItems i : QuickieItems.values()) { + Registry.register(Registries.ITEM, new Identifier(QuickieMod.MODID, i.getName()), i.getItem()); + } + FuelRegistry.INSTANCE.add(QuickieItems.SULPHOR.getItem(), 200); + FuelRegistry.INSTANCE.add(QuickieBlocks.BLOCKSULPHOR.getBlock(), 2000); + } + + public static final void registerBlocks() { + LOGGER.debug("registering blocks"); + for (QuickieBlocks b : QuickieBlocks.values()) { + Registry.register(Registries.BLOCK, new Identifier(QuickieMod.MODID, b.getName()), b.getBlock()); + Registry.register(Registries.ITEM, new Identifier(QuickieMod.MODID, b.getName()), new BlockItem(b.getBlock(), new Settings())); + } + } + + public static final void registerFeatures() { + // Overworld features + BiomeModifications.create(new Identifier(QuickieMod.MODID, "features")).add(ModificationPhase.ADDITIONS, + BiomeSelectors.foundInOverworld(), FeaturesManager.overworldOres()); + + // Nether features + BiomeModifications.create(new Identifier(QuickieMod.MODID, "nether_features")).add(ModificationPhase.ADDITIONS, + BiomeSelectors.foundInTheNether(), FeaturesManager.netherOres()); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/item/ModdedItemUsageContext.java b/src/main/java/de/jottyfan/quickiemod/item/ModdedItemUsageContext.java new file mode 100644 index 0000000..8e98bc6 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/item/ModdedItemUsageContext.java @@ -0,0 +1,21 @@ +package de.jottyfan.quickiemod.item; + +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemUsageContext; +import net.minecraft.util.Hand; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.world.World; + +/** + * + * @author jotty + * + */ +public class ModdedItemUsageContext extends ItemUsageContext { + + public ModdedItemUsageContext(World world, PlayerEntity player, Hand hand, ItemStack stack, BlockHitResult hit) { + super(world, player, hand, stack, hit); + } + +} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemCarrotstack.java b/src/main/java/de/jottyfan/quickiemod/items/ItemCarrotstack.java new file mode 100644 index 0000000..a79f52e --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/items/ItemCarrotstack.java @@ -0,0 +1,17 @@ +package de.jottyfan.quickiemod.items; + +import net.minecraft.component.type.FoodComponent; +import net.minecraft.item.Item; + +/** + * + * @author jotty + * + */ +public class ItemCarrotstack extends Item { + + public ItemCarrotstack() { + super(new Item.Settings().maxCount(64) + .food(new FoodComponent.Builder().nutrition(12).saturationModifier(0.6F).build())); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemRottenFleshStripes.java b/src/main/java/de/jottyfan/quickiemod/items/ItemRottenFleshStripes.java new file mode 100644 index 0000000..2a6f385 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/items/ItemRottenFleshStripes.java @@ -0,0 +1,15 @@ +package de.jottyfan.quickiemod.items; + +import net.minecraft.item.Item; + +/** + * + * @author jotty + * + */ +public class ItemRottenFleshStripes extends Item { + + public ItemRottenFleshStripes() { + super(new Item.Settings().maxCount(64)); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemSalpeter.java b/src/main/java/de/jottyfan/quickiemod/items/ItemSalpeter.java new file mode 100644 index 0000000..96a0760 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/items/ItemSalpeter.java @@ -0,0 +1,15 @@ +package de.jottyfan.quickiemod.items; + +import net.minecraft.item.Item; + +/** + * + * @author jotty + * + */ +public class ItemSalpeter extends Item { + + public ItemSalpeter() { + super(new Item.Settings()); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemStub.java b/src/main/java/de/jottyfan/quickiemod/items/ItemStub.java new file mode 100644 index 0000000..e4d7850 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/items/ItemStub.java @@ -0,0 +1,14 @@ +package de.jottyfan.quickiemod.items; + +import net.minecraft.item.Item; + +/** + * + * @author jotty + * + */ +public class ItemStub extends Item { + public ItemStub() { + super(new Item.Settings().maxCount(64)); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemSulphor.java b/src/main/java/de/jottyfan/quickiemod/items/ItemSulphor.java new file mode 100644 index 0000000..bf7cc5e --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/items/ItemSulphor.java @@ -0,0 +1,41 @@ +package de.jottyfan.quickiemod.items; + +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Hand; +import net.minecraft.util.TypedActionResult; +import net.minecraft.world.World; + +/** + * + * @author jotty + * + */ +public class ItemSulphor extends Item { + + public ItemSulphor() { + super(new Item.Settings()); + } + + @Override + public TypedActionResult use(World world, PlayerEntity user, Hand hand) { + ItemStack itemStack = user.getStackInHand(hand); + // TODO: reactivate when sulforpad is available +// BlockHitResult hitResult = BoatItem.raycast(world, user, RaycastContext.FluidHandling.SOURCE_ONLY); +// if (((HitResult) hitResult).getType() == HitResult.Type.MISS) { +// return TypedActionResult.pass(itemStack); +// } +// if (((HitResult) hitResult).getType() == HitResult.Type.BLOCK) { +// if (!world.isClient) { +// BlockPos pos = hitResult.getBlockPos(); +// if (BlockSulforpad.getAllowedBlockHolder().contains(world.getBlockState(pos).getBlock()) && world.getBlockState(pos.up()).isAir()) { +// world.setBlockState(pos.up(), QuickieBlocks.SULFORPAD.getDefaultState()); +// itemStack.decrement(1); +// } +// } +// return TypedActionResult.success(itemStack, world.isClient()); +// } + return TypedActionResult.pass(itemStack); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/items/QuickieItems.java b/src/main/java/de/jottyfan/quickiemod/items/QuickieItems.java new file mode 100644 index 0000000..b011800 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/items/QuickieItems.java @@ -0,0 +1,34 @@ +package de.jottyfan.quickiemod.items; + +import net.minecraft.item.Item; + +/** + * + * @author jotty + * + */ +public enum QuickieItems { + // @formatter:off + ROTTEN_FLESH_STRIPES(new ItemRottenFleshStripes(), "rotten_flesh_stripes"), + CARROTSTACK(new ItemCarrotstack(), "carrotstack"), + STUB(new ItemStub(), "stub"), + SALPETER(new ItemSalpeter(), "salpeter"), + SULPHOR(new ItemSulphor(), "sulphor"); + // @formatter:on + + private final Item item; + private final String name; + + private QuickieItems(Item item, String name) { + this.item = item; + this.name = name; + } + + public final Item getItem() { + return item; + } + + public final String getName() { + return name; + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/text/PrefixedText.java b/src/main/java/de/jottyfan/quickiemod/text/PrefixedText.java new file mode 100644 index 0000000..175229b --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/text/PrefixedText.java @@ -0,0 +1,52 @@ +package de.jottyfan.quickiemod.text; + +import java.util.List; + +import net.minecraft.text.OrderedText; +import net.minecraft.text.Style; +import net.minecraft.text.Text; +import net.minecraft.text.TextContent; + +/** + * + * @author jotty + * + */ +public class PrefixedText implements Text { + + private final String pattern; + private final Text text; + + private PrefixedText(String pattern, Text text) { + this.pattern = pattern; + this.text = text; + } + + public final static PrefixedText instance(String pattern, Text text) { + return new PrefixedText(pattern, text); + } + + private Text generateText() { + return Text.of(pattern.replace("%s", text.getString())); + } + + @Override + public OrderedText asOrderedText() { + return generateText().asOrderedText(); + } + + @Override + public TextContent getContent() { + return generateText().getContent(); + } + + @Override + public List getSiblings() { + return generateText().getSiblings(); + } + + @Override + public Style getStyle() { + return text.getStyle(); + } +} diff --git a/src/main/resources/assets/quickiemod/blockstates/blocksalpeter.json b/src/main/resources/assets/quickiemod/blockstates/blocksalpeter.json new file mode 100644 index 0000000..6dfbf76 --- /dev/null +++ b/src/main/resources/assets/quickiemod/blockstates/blocksalpeter.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiemod:block/blocksalpeter" + } + } +} diff --git a/src/main/resources/assets/quickiemod/blockstates/blocksulphor.json b/src/main/resources/assets/quickiemod/blockstates/blocksulphor.json new file mode 100644 index 0000000..53372bf --- /dev/null +++ b/src/main/resources/assets/quickiemod/blockstates/blocksulphor.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiemod:block/blocksulphor" + } + } +} diff --git a/src/main/resources/assets/quickiemod/blockstates/kelpstack.json b/src/main/resources/assets/quickiemod/blockstates/kelpstack.json new file mode 100644 index 0000000..44308ba --- /dev/null +++ b/src/main/resources/assets/quickiemod/blockstates/kelpstack.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiemod:block/kelpstack" + } + } +} diff --git a/src/main/resources/assets/quickiemod/blockstates/oredeepslatesulphor.json b/src/main/resources/assets/quickiemod/blockstates/oredeepslatesulphor.json new file mode 100644 index 0000000..55bcfb7 --- /dev/null +++ b/src/main/resources/assets/quickiemod/blockstates/oredeepslatesulphor.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiemod:block/oredeepslatesulphor" + } + } +} diff --git a/src/main/resources/assets/quickiemod/blockstates/orenethersulphor.json b/src/main/resources/assets/quickiemod/blockstates/orenethersulphor.json new file mode 100644 index 0000000..96fe466 --- /dev/null +++ b/src/main/resources/assets/quickiemod/blockstates/orenethersulphor.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiemod:block/orenethersulphor" + } + } +} diff --git a/src/main/resources/assets/quickiemod/blockstates/oresalpeter.json b/src/main/resources/assets/quickiemod/blockstates/oresalpeter.json new file mode 100644 index 0000000..5e645db --- /dev/null +++ b/src/main/resources/assets/quickiemod/blockstates/oresalpeter.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiemod:block/oresalpeter" + } + } +} diff --git a/src/main/resources/assets/quickiemod/blockstates/oresandsalpeter.json b/src/main/resources/assets/quickiemod/blockstates/oresandsalpeter.json new file mode 100644 index 0000000..aaea60d --- /dev/null +++ b/src/main/resources/assets/quickiemod/blockstates/oresandsalpeter.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiemod:block/oresandsalpeter" + } + } +} diff --git a/src/main/resources/assets/quickiemod/blockstates/oresulphor.json b/src/main/resources/assets/quickiemod/blockstates/oresulphor.json new file mode 100644 index 0000000..fb0d815 --- /dev/null +++ b/src/main/resources/assets/quickiemod/blockstates/oresulphor.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiemod:block/oresulphor" + } + } +} diff --git a/src/main/resources/assets/quickiemod/blockstates/sandsalpeter.json b/src/main/resources/assets/quickiemod/blockstates/sandsalpeter.json new file mode 100644 index 0000000..f187967 --- /dev/null +++ b/src/main/resources/assets/quickiemod/blockstates/sandsalpeter.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiemod:block/sandsalpeter" + } + } +} diff --git a/src/main/resources/assets/quickiemod/icon.png b/src/main/resources/assets/quickiemod/icon.png new file mode 100644 index 0000000..0e4cf1a Binary files /dev/null and b/src/main/resources/assets/quickiemod/icon.png differ diff --git a/src/main/resources/assets/quickiemod/lang/de_de.json b/src/main/resources/assets/quickiemod/lang/de_de.json new file mode 100644 index 0000000..ab4efb8 --- /dev/null +++ b/src/main/resources/assets/quickiemod/lang/de_de.json @@ -0,0 +1,110 @@ +{ + "itemGroup.quickiemod.all": "quickiemod Items", + "item.quickiemod.speedpowderaxe": "Fluchtpulveraxt", + "item.quickiemod.speedpowderpickaxe": "Fluchtpulverspitzhacke", + "item.quickiemod.speedpowdershovel": "Fluchtpulverschaufel", + "item.quickiemod.speedpowderhoe": "Fluchtpulverfeldhacke", + "item.quickiemod.speedpowderwaterhoe": "bewässerte Fluchtpulverfeldhacke", + "item.quickiemod.speedpowder": "Fluchtpulver", + "item.quickiemod.quickiepowder": "Eilpulver", + "item.quickiemod.quickiepowderaxe": "Eilpulveraxt", + "item.quickiemod.quickiepowderpickaxe": "Eilpulverspitzhacke", + "item.quickiemod.quickiepowdershovel": "Eilpulverschaufel", + "item.quickiemod.quickiepowderhoe": "Eilpulverfeldhacke", + "item.quickiemod.quickiepowderwaterhoe": "bewässerte Eilpulverfeldhacke", + "item.quickiemod.sulphor": "Schwefel", + "item.quickiemod.salpeter": "Salpeter", + "item.quickiemod.construction0": "leerer Bauplan", + "item.quickiemod.construction1": "begonnener Bauplan", + "item.quickiemod.construction2": "fertiger Bauplan", + "item.quickiemod.pencil": "Bleistift", + "item.quickiemod.levelup": "Aufwerter", + "item.quickiemod.backpack_black": "schwarzer Rucksack", + "item.quickiemod.backpack_blue": "blauer Rucksack", + "item.quickiemod.backpack_brown": "brauner Rucksack", + "item.quickiemod.backpack_cyan": "türkiser Rucksack", + "item.quickiemod.backpack_green": "grüner Rucksack", + "item.quickiemod.backpack_pink": "rosaner Rucksack", + "item.quickiemod.backpack_red": "roter Rucksack", + "item.quickiemod.backpack_white": "weißer Rucksack", + "item.quickiemod.backpack_yellow": "gelber Rucksack", + "item.quickiemod.backpack_darkgray": "dunkelgrauer Rucksack", + "item.quickiemod.backpack_lightgray": "hellgrauer Rucksack", + "item.quickiemod.backpack_lightgreen": "hellgrüner Rucksack", + "item.quickiemod.backpack_magenta": "pinker Rucksack", + "item.quickiemod.backpack_orange": "orangener Rucksack", + "item.quickiemod.backpack_purple": "lilaner Rucksack", + "item.quickiemod.backpack_lightblue": "hellblauer Rucksack", + "item.quickiemod.bag": "Beutel", + "item.quickiemod.rotten_flesh_stripes": "geschnittenes Gammelfleisch", + "item.quickiemod.carrotstack": "Karottenbündel", + "item.quickiemod.cotton": "Baumwolle", + "item.quickiemod.cottonseed": "Baumwollsaat", + "item.quickiemod.canola": "Raps", + "item.quickiemod.canolaseed": "Rapssaat", + "item.quickiemod.canolabottle": "Rapsöl", + "item.quickiemod.canolabottlestack": "Rapsölsammlung", + "item.quickiemod.stub": "Stummel", + "item.quickiemod.oxidizedcopperpowder": "oxidiertes Kupferpulver", + "item.quickiemod.speedingot": "Fluchtpulverbarren", + "item.quickiemod.quickieingot": "Eilpulverbarren", + "block.quickiemod.orenethersulphor": "Nether-Schwefel", + "block.quickiemod.oresalpeter": "Salpetererz", + "block.quickiemod.oresandsalpeter": "Salpetergestein", + "block.quickiemod.oresulphor": "Schwefelgestein", + "block.quickiemod.oredeepslatesulphor": "Schwefeltiefengestein", + "block.quickiemod.dirtsalpeter": "Salpetererde", + "block.quickiemod.sandsalpeter": "Salpetersand", + "block.quickiemod.constructionborder": "Bauplangrenzblock", + "block.quickiemod.rotateclockwise": "im Urzeigersinn Bauplandreher", + "block.quickiemod.rotatecounterclockwise": "gegen den Urzeigersinn Bauplandreher", + "block.quickiemod.mirrorhorizontal": "horizontaler Bauplanspiegler", + "block.quickiemod.mirrorvertical": "vertikaler Bauplanspiegler", + "block.quickiemod.moveup": "Höhenpositionsaddierer", + "block.quickiemod.movedown": "Höhenpositionssubtrahierer", + "block.quickiemod.menu": "Bauplanwerkbank", + "block.quickiemod.lavahoarder": "voller Lavasauger", + "block.quickiemod.emptylavahoarder": "Lavasauger", + "block.quickiemod.itemhoarder": "Itemsauger", + "block.quickiemod.monsterhoarder": "Monstersauger", + "block.quickiemod.kelpstack": "Seegrassbündel", + "block.quickiemod.cottonplant": "Baumwollpflanze", + "block.quickiemod.blocksulphor": "Schwefelblock", + "block.quickiemod.blocksalpeter": "Salpeterblock", + "block.quickiemod.blockspeedpowder": "Fluchtpulverblock", + "block.quickiemod.blockquickiepowder": "Eilpulverblock", + "block.quickiemod.drill": "Bohrer", + "block.quickiemod.drilleast": "Ost-Bohrer", + "block.quickiemod.drillsouth": "Süd-Bohrer", + "block.quickiemod.drillwest": "West-Bohrer", + "block.quickiemod.drillnorth": "Nord-Bohrer", + "block.quickiemod.drillstop": "Bohrerstopper", + "block.quickiemod.blockstackerup": "Hochstapler", + "block.quickiemod.blockstackerdown": "Tiefstapler", + "block.quickiemod.blockstackereast": "Oststapler", + "block.quickiemod.blockstackerwest": "Weststapler", + "block.quickiemod.blockstackernorth": "Nordstapler", + "block.quickiemod.blockstackersouth": "Südstapler", + "block.quickiemod.blockspreader": "Blockverteiler", + "block.quickiemod.sulforpad": "Schwefelablagerung", + "container.quickiemod.backpack": "Rucksack", + "container.quickiemod.blockstacker": "Blockstapler", + "msg.buildingplan.start": "beginne Konstruktionsaufnahme bei %s,%s,%s", + "msg.buildingplan.end": "beende Konstruktionsaufnahme bei %s,%s,%s", + "msg.buildingplan.null": "Der Bauplan ist kaputt.", + "msg.buildingplan.missing": "Zum Bauen fehlt noch: %s", + "msg.buildingplan.rotateclockwise": "Der Bauplan wurde im Uhrzeigersinn gedreht.", + "msg.buildingplan.rotatecounterclockwise": "Der Bauplan wurde gegen den Uhrzeigersinn gedreht.", + "msg.buildingplan.mirrorhorizontal": "Der Bauplan wurde horizontal gespiegelt.", + "msg.buildingplan.mirrorvertical": "Der Bauplan wurde vertikal gespiegelt.", + "msg.buildingplan.move": "Der Bauplan wurde in der Höhe um %s Blöcke verschoben.", + "msg.buildingplan.failonblock": "Der Bau wurde abgelehnt, es ist im Weg: %s", + "msg.buildingplan.failonplayer": "Der Bau wurde abgelehnt, um Spieler %s nicht zu gefährden.", + "msg.itemhoarder.summary": "Der Itemsauger enthält: %s", + "msg.notyetimplemented": "leider noch nicht verfügbar", + "msg.backpack.transfer.filled": "Der Rucksack wurde befüllt.", + "msg.backpack.transfer.cleared": "Der Rucksackinhalt wurde soweit möglich geleert.", + "msg.backpack.transfer.cancel": "Entweder der Rucksack oder die Kiste sind nicht komplett leer.", + "msg.drill.fuelinfo": "Der Bohrer hat noch eine Ladung für den Abbau von %s Blöcken. Er kann mit Rapsöl aufgeladen werden.", + "error.unleveling.inventory.full": "Es ist kein Platz mehr frei, um die Aufwertungen abzulegen." +} diff --git a/src/main/resources/assets/quickiemod/lang/en_us.json b/src/main/resources/assets/quickiemod/lang/en_us.json new file mode 100644 index 0000000..d2070c8 --- /dev/null +++ b/src/main/resources/assets/quickiemod/lang/en_us.json @@ -0,0 +1,110 @@ +{ + "itemGroup.quickiemod.all": "quickiemod items", + "item.quickiemod.speedpowderaxe": "speedpowder axe", + "item.quickiemod.speedpowderpickaxe": "speedpowder pickaxe", + "item.quickiemod.speedpowdershovel": "speedpowder shovel", + "item.quickiemod.speedpowderhoe": "speedpowder hoe", + "item.quickiemod.speedpowderwaterhoe": "watered speedpowder hoe", + "item.quickiemod.speedpowder": "speedpowder", + "item.quickiemod.quickiepowder": "hurrypowder", + "item.quickiemod.quickiepowderaxe": "hurrypowder axe", + "item.quickiemod.quickiepowderpickaxe": "hurrypowder pickaxe", + "item.quickiemod.quickiepowdershovel": "hurrypowder shovel", + "item.quickiemod.quickiepowderhoe": "hurrypowder hoe", + "item.quickiemod.quickiepowderwaterhoe": "watered hurrypowder hoe", + "item.quickiemod.sulphor": "sulfur", + "item.quickiemod.salpeter": "salpeter", + "item.quickiemod.construction0": "empty building plan", + "item.quickiemod.construction1": "started building plan", + "item.quickiemod.construction2": "finished building plan", + "item.quickiemod.pencil": "pencil", + "item.quickiemod.levelup": "level up", + "item.quickiemod.backpack_black": "black backpack", + "item.quickiemod.backpack_blue": "blue backpack", + "item.quickiemod.backpack_brown": "brown backpack", + "item.quickiemod.backpack_cyan": "cyan backpack", + "item.quickiemod.backpack_green": "green backpack", + "item.quickiemod.backpack_pink": "pink backpack", + "item.quickiemod.backpack_red": "red backpack", + "item.quickiemod.backpack_white": "white backpack", + "item.quickiemod.backpack_yellow": "yellow backpack", + "item.quickiemod.backpack_darkgray": "dark gray backpack", + "item.quickiemod.backpack_lightgray": "light gray backpack", + "item.quickiemod.backpack_lightgreen": "lime backpack", + "item.quickiemod.backpack_magenta": "magenta backpack", + "item.quickiemod.backpack_orange": "orange backpack", + "item.quickiemod.backpack_purple": "purple backpack", + "item.quickiemod.backpack_lightblue": "light blue backpack", + "item.quickiemod.bag": "bag", + "item.quickiemod.rotten_flesh_stripes": "rotten flesh stripes", + "item.quickiemod.carrotstack": "a bundle of carrots", + "item.quickiemod.cotton": "cotton", + "item.quickiemod.cottonseed": "cotton seed", + "item.quickiemod.canola": "canola", + "item.quickiemod.canolaseed": "canola seed", + "item.quickiemod.canolabottle": "canola oil", + "item.quickiemod.canolabottlestack": "canola oil collection", + "item.quickiemod.stub": "stub", + "item.quickiemod.oxidizedcopperpowder": "oxidized copper powder", + "item.quickiemod.speedingot": "Speedpowderingot", + "item.quickiemod.quickieingot": "Hurrypowderingot", + "block.quickiemod.orenethersulphor": "nether sulfur", + "block.quickiemod.oresalpeter": "salpeter ore", + "block.quickiemod.oresandsalpeter": "salpeter stone", + "block.quickiemod.oresulphor": "sulfur stone", + "block.quickiemod.oredeepslatesulphor": "deepslate sulfur stone", + "block.quickiemod.dirtsalpeter": "salpeter dirt", + "block.quickiemod.sandsalpeter": "salpeter sand", + "block.quickiemod.constructionborder": "building plan border block", + "block.quickiemod.rotateclockwise": "rotate clockwise building plan", + "block.quickiemod.rotatecounterclockwise": "rotate counterclockwise building plan", + "block.quickiemod.mirrorhorizontal": "horizontal building plan mirror", + "block.quickiemod.mirrorvertical": "vertical building plan mirror", + "block.quickiemod.moveup": "height position adder", + "block.quickiemod.movedown": "height position substractor", + "block.quickiemod.menu": "building plan crafting table", + "block.quickiemod.lavahoarder": "filled lava hoarder", + "block.quickiemod.emptylavahoarder": "lava hoarder", + "block.quickiemod.itemhoarder": "item hoarder", + "block.quickiemod.monsterhoarder": "monster hoarder", + "block.quickiemod.kelpstack": "kelp bundle", + "block.quickiemod.cottonplant": "cotton plant", + "block.quickiemod.blocksulphor": "block of sulfur", + "block.quickiemod.blocksalpeter": "block of salpeter", + "block.quickiemod.blockspeedpowder": "block of speedpowder", + "block.quickiemod.blockquickiepowder": "block of hurrypowder", + "block.quickiemod.drill": "drill", + "block.quickiemod.drilleast": "east drill", + "block.quickiemod.drillsouth": "south drill", + "block.quickiemod.drillwest": "west drill", + "block.quickiemod.drillnorth": "north drill", + "block.quickiemod.drillstop": "drill stopper", + "block.quickiemod.blockstackerup": "up stacker", + "block.quickiemod.blockstackerdown": "down stacker", + "block.quickiemod.blockstackereast": "east stacker", + "block.quickiemod.blockstackerwest": "west stacker", + "block.quickiemod.blockstackernorth": "north stacker", + "block.quickiemod.blockstackersouth": "south stacker", + "block.quickiemod.blockspreader": "block spreader", + "block.quickiemod.sulforpad": "sulphur deposition", + "container.quickiemod.backpack": "backpack", + "container.quickiemod.blockstacker": "block stacker", + "msg.buildingplan.start": "started recording of construction at %s,%s,%s", + "msg.buildingplan.end": "finished recording of construction at %s,%s,%s", + "msg.buildingplan.null": "The building plan is damaged.", + "msg.buildingplan.missing": "Cannot complete until you deliver %s", + "msg.buildingplan.rotateclockwise": "Rotated the building plan clockwise", + "msg.buildingplan.rotatecounterclockwise": "Rotated the building plan counterclockwise", + "msg.buildingplan.mirrorhorizontal": "Mirrored the building plan horizontally", + "msg.buildingplan.mirrorvertical": "Mirrored the building plan vertically", + "msg.buildingplan.move": "The building plan has been moved in height for %s blocks.", + "msg.buildingplan.failonblock": "The building execution was rejected because of %s", + "msg.buildingplan.failonplayer": "The building execution was rejected because of %s who could be injured.", + "msg.itemhoarder.summary": "The item hoarder contains: %s", + "msg.notyetimplemented": "not yet implemented", + "msg.backpack.transfer.filled": "Filled the backpack.", + "msg.backpack.transfer.cleared": "Cleared the backpack as much as possible.", + "msg.backpack.transfer.cancel": "Eigther backpack or chest are not completely empty.", + "msg.drill.fuelinfo": "The drill still has a charge for mining %s blocks. It can be charged with canola oil.", + "error.unleveling.inventory.full": "There is no free stack in your inventory for the level ups." +} diff --git a/src/main/resources/assets/quickiemod/models/block/blocksalpeter.json b/src/main/resources/assets/quickiemod/models/block/blocksalpeter.json new file mode 100644 index 0000000..d1b361e --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/block/blocksalpeter.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickiemod:block/blocksalpeter" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/block/blocksulphor.json b/src/main/resources/assets/quickiemod/models/block/blocksulphor.json new file mode 100644 index 0000000..5436927 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/block/blocksulphor.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickiemod:block/blocksulphor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/block/dirtsalpeter.json b/src/main/resources/assets/quickiemod/models/block/dirtsalpeter.json new file mode 100644 index 0000000..863507e --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/block/dirtsalpeter.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickiemod:block/dirtsalpeter" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/block/kelpstack.json b/src/main/resources/assets/quickiemod/models/block/kelpstack.json new file mode 100644 index 0000000..7a09f11 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/block/kelpstack.json @@ -0,0 +1,25 @@ +{ + "parent": "block/block", + "textures": { + "particle": "quickiemod:block/kelpstack_side", + "down": "quickiemod:block/kelpstack_bottom", + "up": "quickiemod:block/kelpstack_top", + "north": "quickiemod:block/kelpstack_side", + "east": "quickiemod:block/kelpstack_side", + "south": "quickiemod:block/kelpstack_side", + "west": "quickiemod:block/kelpstack_side" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "texture": "#down", "cullface": "down" }, + "up": { "texture": "#up", "cullface": "up" }, + "north": { "texture": "#north", "cullface": "north" }, + "south": { "uv": [16, 0, 0, 16], "texture": "#south", "cullface": "south" }, + "west": { "texture": "#west", "cullface": "west" }, + "east": { "uv": [16, 0, 0, 16], "texture": "#east", "cullface": "east" } + } + } + ] +} diff --git a/src/main/resources/assets/quickiemod/models/block/oredeepslatesulphor.json b/src/main/resources/assets/quickiemod/models/block/oredeepslatesulphor.json new file mode 100644 index 0000000..c8f4f98 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/block/oredeepslatesulphor.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickiemod:block/oredeepslatesulphor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/block/orenethersulphor.json b/src/main/resources/assets/quickiemod/models/block/orenethersulphor.json new file mode 100644 index 0000000..95df982 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/block/orenethersulphor.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickiemod:block/orenethersulphor" + } +} diff --git a/src/main/resources/assets/quickiemod/models/block/oresalpeter.json b/src/main/resources/assets/quickiemod/models/block/oresalpeter.json new file mode 100644 index 0000000..67cedfc --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/block/oresalpeter.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickiemod:block/oresalpeter" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/block/oresandsalpeter.json b/src/main/resources/assets/quickiemod/models/block/oresandsalpeter.json new file mode 100644 index 0000000..0b6e904 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/block/oresandsalpeter.json @@ -0,0 +1,7 @@ +{ + "parent": "block/cube_column", + "textures": { + "end" : "minecraft:block/sandstone_top", + "side": "quickiemod:block/oresandsalpeter" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/block/oresulphor.json b/src/main/resources/assets/quickiemod/models/block/oresulphor.json new file mode 100644 index 0000000..b247f00 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/block/oresulphor.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickiemod:block/oresulphor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/block/sandsalpeter.json b/src/main/resources/assets/quickiemod/models/block/sandsalpeter.json new file mode 100644 index 0000000..1b1260f --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/block/sandsalpeter.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickiemod:block/sandsalpeter" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/blocksalpeter.json b/src/main/resources/assets/quickiemod/models/item/blocksalpeter.json new file mode 100644 index 0000000..9c55fd2 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/blocksalpeter.json @@ -0,0 +1,10 @@ +{ + "parent": "quickiemod:block/blocksalpeter", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/blocksulphor.json b/src/main/resources/assets/quickiemod/models/item/blocksulphor.json new file mode 100644 index 0000000..838c873 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/blocksulphor.json @@ -0,0 +1,10 @@ +{ + "parent": "quickiemod:block/blocksulphor", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/carrotstack.json b/src/main/resources/assets/quickiemod/models/item/carrotstack.json new file mode 100644 index 0000000..a129d6e --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/carrotstack.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "quickiemod:item/carrotstack" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/dirtsalpeter.json b/src/main/resources/assets/quickiemod/models/item/dirtsalpeter.json new file mode 100644 index 0000000..e3ca1fd --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/dirtsalpeter.json @@ -0,0 +1,10 @@ +{ + "parent": "quickiemod:block/dirtsalpeter", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/kelpstack.json b/src/main/resources/assets/quickiemod/models/item/kelpstack.json new file mode 100644 index 0000000..b3c3481 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/kelpstack.json @@ -0,0 +1,10 @@ +{ + "parent": "quickiemod:block/kelpstack", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/oredeepslatesulphor.json b/src/main/resources/assets/quickiemod/models/item/oredeepslatesulphor.json new file mode 100644 index 0000000..bc87ddc --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/oredeepslatesulphor.json @@ -0,0 +1,10 @@ +{ + "parent": "quickiemod:block/oredeepslatesulphor", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/orenethersulphor.json b/src/main/resources/assets/quickiemod/models/item/orenethersulphor.json new file mode 100644 index 0000000..f1f86d7 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/orenethersulphor.json @@ -0,0 +1,10 @@ +{ + "parent": "quickiemod:block/orenethersulphor", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/oresalpeter.json b/src/main/resources/assets/quickiemod/models/item/oresalpeter.json new file mode 100644 index 0000000..c8e2ce9 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/oresalpeter.json @@ -0,0 +1,10 @@ +{ + "parent": "quickiemod:block/oresalpeter", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/oresandsalpeter.json b/src/main/resources/assets/quickiemod/models/item/oresandsalpeter.json new file mode 100644 index 0000000..ce2e6e3 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/oresandsalpeter.json @@ -0,0 +1,10 @@ +{ + "parent": "quickiemod:block/oresandsalpeter", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/oresulphor.json b/src/main/resources/assets/quickiemod/models/item/oresulphor.json new file mode 100644 index 0000000..06fdb4c --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/oresulphor.json @@ -0,0 +1,10 @@ +{ + "parent": "quickiemod:block/oresulphor", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/rotten_flesh_stripes.json b/src/main/resources/assets/quickiemod/models/item/rotten_flesh_stripes.json new file mode 100644 index 0000000..df2eaa1 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/rotten_flesh_stripes.json @@ -0,0 +1,6 @@ +{ + "parent": "item/coal", + "textures": { + "layer0": "quickiemod:item/rotten_flesh_stripes" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/salpeter.json b/src/main/resources/assets/quickiemod/models/item/salpeter.json new file mode 100644 index 0000000..98f1001 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/salpeter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/coal", + "textures": { + "layer0": "quickiemod:item/salpeter" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/sandsalpeter.json b/src/main/resources/assets/quickiemod/models/item/sandsalpeter.json new file mode 100644 index 0000000..228b847 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/sandsalpeter.json @@ -0,0 +1,10 @@ +{ + "parent": "quickiemod:block/sandsalpeter", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/stub.json b/src/main/resources/assets/quickiemod/models/item/stub.json new file mode 100644 index 0000000..9950e1a --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/stub.json @@ -0,0 +1,6 @@ +{ + "parent": "item/stick", + "textures": { + "layer0": "quickiemod:item/stub" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/sulphor.json b/src/main/resources/assets/quickiemod/models/item/sulphor.json new file mode 100644 index 0000000..25184d5 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/sulphor.json @@ -0,0 +1,6 @@ +{ + "parent": "item/coal", + "textures": { + "layer0": "quickiemod:item/sulphor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/textures/block/blocksalpeter.png b/src/main/resources/assets/quickiemod/textures/block/blocksalpeter.png new file mode 100644 index 0000000..2d5f6f9 Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/blocksalpeter.png differ diff --git a/src/main/resources/assets/quickiemod/textures/block/blocksulphor.png b/src/main/resources/assets/quickiemod/textures/block/blocksulphor.png new file mode 100644 index 0000000..ff97253 Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/blocksulphor.png differ diff --git a/src/main/resources/assets/quickiemod/textures/block/dirtsalpeter.png b/src/main/resources/assets/quickiemod/textures/block/dirtsalpeter.png new file mode 100644 index 0000000..c4ab012 Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/dirtsalpeter.png differ diff --git a/src/main/resources/assets/quickiemod/textures/block/kelpstack_bottom.png b/src/main/resources/assets/quickiemod/textures/block/kelpstack_bottom.png new file mode 100644 index 0000000..d9b32b5 Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/kelpstack_bottom.png differ diff --git a/src/main/resources/assets/quickiemod/textures/block/kelpstack_side.png b/src/main/resources/assets/quickiemod/textures/block/kelpstack_side.png new file mode 100644 index 0000000..7e60401 Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/kelpstack_side.png differ diff --git a/src/main/resources/assets/quickiemod/textures/block/kelpstack_top.png b/src/main/resources/assets/quickiemod/textures/block/kelpstack_top.png new file mode 100644 index 0000000..cba95e6 Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/kelpstack_top.png differ diff --git a/src/main/resources/assets/quickiemod/textures/block/oredeepslatesulphor.png b/src/main/resources/assets/quickiemod/textures/block/oredeepslatesulphor.png new file mode 100644 index 0000000..da2828b Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/oredeepslatesulphor.png differ diff --git a/src/main/resources/assets/quickiemod/textures/block/orenethersulphor.png b/src/main/resources/assets/quickiemod/textures/block/orenethersulphor.png new file mode 100644 index 0000000..a2ea4fc Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/orenethersulphor.png differ diff --git a/src/main/resources/assets/quickiemod/textures/block/oresalpeter.png b/src/main/resources/assets/quickiemod/textures/block/oresalpeter.png new file mode 100644 index 0000000..0c46350 Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/oresalpeter.png differ diff --git a/src/main/resources/assets/quickiemod/textures/block/oresandsalpeter.png b/src/main/resources/assets/quickiemod/textures/block/oresandsalpeter.png new file mode 100644 index 0000000..db9326b Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/oresandsalpeter.png differ diff --git a/src/main/resources/assets/quickiemod/textures/block/oresulphor.png b/src/main/resources/assets/quickiemod/textures/block/oresulphor.png new file mode 100644 index 0000000..f408b21 Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/oresulphor.png differ diff --git a/src/main/resources/assets/quickiemod/textures/block/sandsalpeter.png b/src/main/resources/assets/quickiemod/textures/block/sandsalpeter.png new file mode 100644 index 0000000..0cbd907 Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/sandsalpeter.png differ diff --git a/src/main/resources/assets/quickiemod/textures/item/carrotstack.png b/src/main/resources/assets/quickiemod/textures/item/carrotstack.png new file mode 100644 index 0000000..6c3737a Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/item/carrotstack.png differ diff --git a/src/main/resources/assets/quickiemod/textures/item/rotten_flesh_stripes.png b/src/main/resources/assets/quickiemod/textures/item/rotten_flesh_stripes.png new file mode 100644 index 0000000..229a057 Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/item/rotten_flesh_stripes.png differ diff --git a/src/main/resources/assets/quickiemod/textures/item/salpeter.png b/src/main/resources/assets/quickiemod/textures/item/salpeter.png new file mode 100644 index 0000000..cd765cc Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/item/salpeter.png differ diff --git a/src/main/resources/assets/quickiemod/textures/item/stub.png b/src/main/resources/assets/quickiemod/textures/item/stub.png new file mode 100644 index 0000000..cd67920 Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/item/stub.png differ diff --git a/src/main/resources/assets/quickiemod/textures/item/sulphor.png b/src/main/resources/assets/quickiemod/textures/item/sulphor.png new file mode 100644 index 0000000..8dc98aa Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/item/sulphor.png differ diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json new file mode 100644 index 0000000..406d026 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -0,0 +1,12 @@ + { + "replace": false, + "values": [ + "quickiemod:oresulphor", + "quickiemod:oredeepslatesulphor", + "quickiemod:orenethersulphor", + "quickiemod:oresalpeter", + "quickiemod:oresandsalpeter", + "quickiemod:sandsalpeter", + "quickiemod:dirtsalpeter" + ] + } \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipes/blasting_salpeter_from_brain_coral.json b/src/main/resources/data/quickiemod/recipes/blasting_salpeter_from_brain_coral.json new file mode 100644 index 0000000..0b889dd --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/blasting_salpeter_from_brain_coral.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:blasting", + "group": "ores", + "ingredient": [ + { + "item": "minecraft:dead_brain_coral_block" + } + ], + "result": { + "id":"quickiemod:salpeter" + }, + "count": 3, + "experience": 0.5, + "cookingtime": 200 +} diff --git a/src/main/resources/data/quickiemod/recipes/blasting_salpeter_from_bubble_coral.json b/src/main/resources/data/quickiemod/recipes/blasting_salpeter_from_bubble_coral.json new file mode 100644 index 0000000..520fe09 --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/blasting_salpeter_from_bubble_coral.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:blasting", + "group": "ores", + "ingredient": [ + { + "item": "minecraft:dead_bubble_coral_block" + } + ], + "result": { + "id":"quickiemod:salpeter" + }, + "count": 3, + "experience": 0.5, + "cookingtime": 200 +} diff --git a/src/main/resources/data/quickiemod/recipes/blasting_salpeter_from_fire_coral.json b/src/main/resources/data/quickiemod/recipes/blasting_salpeter_from_fire_coral.json new file mode 100644 index 0000000..c73e6bf --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/blasting_salpeter_from_fire_coral.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:blasting", + "group": "ores", + "ingredient": [ + { + "item": "minecraft:dead_fire_coral_block" + } + ], + "result": { + "id":"quickiemod:salpeter" + }, + "count": 3, + "experience": 0.5, + "cookingtime": 200 +} diff --git a/src/main/resources/data/quickiemod/recipes/blasting_salpeter_from_horn_coral.json b/src/main/resources/data/quickiemod/recipes/blasting_salpeter_from_horn_coral.json new file mode 100644 index 0000000..387ae41 --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/blasting_salpeter_from_horn_coral.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:blasting", + "group": "ores", + "ingredient": [ + { + "item": "minecraft:dead_horn_coral_block" + } + ], + "result": { + "id":"quickiemod:salpeter" + }, + "count": 3, + "experience": 0.5, + "cookingtime": 200 +} diff --git a/src/main/resources/data/quickiemod/recipes/blasting_salpeter_from_tube_coral.json b/src/main/resources/data/quickiemod/recipes/blasting_salpeter_from_tube_coral.json new file mode 100644 index 0000000..d960c8e --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/blasting_salpeter_from_tube_coral.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:blasting", + "group": "ores", + "ingredient": [ + { + "item": "minecraft:dead_tube_coral_block" + } + ], + "result": { + "id":"quickiemod:salpeter" + }, + "count": 3, + "experience": 0.5, + "cookingtime": 200 +} diff --git a/src/main/resources/data/quickiemod/recipes/campfire_dried_kelpblock.json b/src/main/resources/data/quickiemod/recipes/campfire_dried_kelpblock.json new file mode 100644 index 0000000..7f8a3cf --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/campfire_dried_kelpblock.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:campfire_cooking", + "ingredient": { + "item": "quickiemod:kelpstack" + }, + "result": { + "id": "minecraft:dried_kelp_block" + }, + "experience": 0.9, + "cookingtime": 615 +} diff --git a/src/main/resources/data/quickiemod/recipes/campfire_torch.json b/src/main/resources/data/quickiemod/recipes/campfire_torch.json new file mode 100644 index 0000000..4921fb6 --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/campfire_torch.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:campfire_cooking", + "ingredient": { + "item": "quickiemod:stub" + }, + "result": { + "id":"minecraft:torch" + }, + "experience": 0.1, + "cookingtime": 20 +} diff --git a/src/main/resources/data/quickiemod/recipes/shaped_blocksalpeter.json b/src/main/resources/data/quickiemod/recipes/shaped_blocksalpeter.json new file mode 100644 index 0000000..6803764 --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/shaped_blocksalpeter.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "sss", + "sss", + "sss" + ], + "key": { + "s": { + "item": "quickiemod:salpeter" + } + }, + "result": { + "id": "quickiemod:blocksalpeter", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipes/shaped_blocksulphor.json b/src/main/resources/data/quickiemod/recipes/shaped_blocksulphor.json new file mode 100644 index 0000000..5fb16d7 --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/shaped_blocksulphor.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "sss", + "sss", + "sss" + ], + "key": { + "s": { + "item": "quickiemod:sulphor" + } + }, + "result": { + "id": "quickiemod:blocksulphor", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipes/shaped_carrotstack_from_carrots.json b/src/main/resources/data/quickiemod/recipes/shaped_carrotstack_from_carrots.json new file mode 100644 index 0000000..cb32703 --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/shaped_carrotstack_from_carrots.json @@ -0,0 +1,15 @@ +{ + "type": "crafting_shaped", + "pattern": [ + "cc", + "cc" + ], + "key": { + "c": { + "item": "minecraft:carrot" + } + }, + "result": { + "id": "quickiemod:carrotstack" + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipes/shaped_kelpstack_from_kelp.json b/src/main/resources/data/quickiemod/recipes/shaped_kelpstack_from_kelp.json new file mode 100644 index 0000000..785c73f --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/shaped_kelpstack_from_kelp.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "kkk", + "kkk", + "kkk" + ], + "key": { + "k": { + "item": "minecraft:kelp" + } + }, + "result": { + "id": "quickiemod:kelpstack", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipes/shapeless_carrots_from_carrotstack.json b/src/main/resources/data/quickiemod/recipes/shapeless_carrots_from_carrotstack.json new file mode 100644 index 0000000..0724312 --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/shapeless_carrots_from_carrotstack.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "quickiemod:carrotstack" + } + ], + "result": { + "id": "minecraft:carrot", + "count": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipes/shapeless_salpeter_from_block.json b/src/main/resources/data/quickiemod/recipes/shapeless_salpeter_from_block.json new file mode 100644 index 0000000..1758e0f --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/shapeless_salpeter_from_block.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "quickiemod:blocksalpeter" + } + ], + "result": { + "id": "quickiemod:salpeter", + "count": 9 + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipes/shapeless_string_from_wool.json b/src/main/resources/data/quickiemod/recipes/shapeless_string_from_wool.json new file mode 100644 index 0000000..187497d --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/shapeless_string_from_wool.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:white_wool" + } + ], + "result": { + "id": "minecraft:string", + "count": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipes/shapeless_stub.json b/src/main/resources/data/quickiemod/recipes/shapeless_stub.json new file mode 100644 index 0000000..19325e8 --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/shapeless_stub.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:stick" + } + ], + "result": { + "id": "quickiemod:stub", + "count": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipes/shapeless_sulphor_from_block.json b/src/main/resources/data/quickiemod/recipes/shapeless_sulphor_from_block.json new file mode 100644 index 0000000..449b3db --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/shapeless_sulphor_from_block.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "quickiemod:blocksulphor" + } + ], + "result": { + "id": "quickiemod:sulphor", + "count": 9 + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipes/smelting_salpeter1.json b/src/main/resources/data/quickiemod/recipes/smelting_salpeter1.json new file mode 100644 index 0000000..c17f95f --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/smelting_salpeter1.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:smelting", + "group": "ores", + "ingredient": [ + { + "item": "quickiemod:dirtsalpeter" + } + ], + "result": { + "id":"quickiemod:salpeter" + }, + "count": 1, + "experience": 0.5, + "cookingtime": 200 +} diff --git a/src/main/resources/data/quickiemod/recipes/smelting_salpeter2.json b/src/main/resources/data/quickiemod/recipes/smelting_salpeter2.json new file mode 100644 index 0000000..27ccf61 --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/smelting_salpeter2.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:smelting", + "group": "ores", + "ingredient": [ + { + "item": "quickiemod:oresalpeter" + } + ], + "result": { + "id":"quickiemod:salpeter" + }, + "count": 1, + "experience": 0.5, + "cookingtime": 200 +} diff --git a/src/main/resources/data/quickiemod/recipes/smelting_salpeter3.json b/src/main/resources/data/quickiemod/recipes/smelting_salpeter3.json new file mode 100644 index 0000000..4450012 --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/smelting_salpeter3.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:smelting", + "group": "ores", + "ingredient": [ + { + "item": "quickiemod:oresandsalpeter" + } + ], + "result": { + "id":"quickiemod:salpeter" + }, + "count": 1, + "experience": 0.5, + "cookingtime": 200 +} diff --git a/src/main/resources/data/quickiemod/recipes/smelting_salpeter4.json b/src/main/resources/data/quickiemod/recipes/smelting_salpeter4.json new file mode 100644 index 0000000..732cb25 --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/smelting_salpeter4.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:smelting", + "group": "ores", + "ingredient": [ + { + "item": "quickiemod:sandsalpeter" + } + ], + "result": { + "id":"quickiemod:salpeter" + }, + "count": 1, + "experience": 0.5, + "cookingtime": 200 +} diff --git a/src/main/resources/data/quickiemod/recipes/smelting_sulfur1.json b/src/main/resources/data/quickiemod/recipes/smelting_sulfur1.json new file mode 100644 index 0000000..8b658df --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/smelting_sulfur1.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:smelting", + "group": "ores", + "ingredient": [ + { + "item": "quickiemod:orenethersulphor" + } + ], + "result": { + "id":"quickiemod:sulphor" + }, + "count": 1, + "experience": 0.5, + "cookingtime": 200 +} diff --git a/src/main/resources/data/quickiemod/recipes/smelting_sulfur2.json b/src/main/resources/data/quickiemod/recipes/smelting_sulfur2.json new file mode 100644 index 0000000..41bd30a --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/smelting_sulfur2.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:smelting", + "group": "ores", + "ingredient": [ + { + "item": "quickiemod:oresulphor" + } + ], + "result": { + "id": "quickiemod:sulphor" + }, + "count": 1, + "experience": 0.5, + "cookingtime": 200 +} diff --git a/src/main/resources/data/quickiemod/recipes/smoking_dried_kelpblock.json b/src/main/resources/data/quickiemod/recipes/smoking_dried_kelpblock.json new file mode 100644 index 0000000..4424036 --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/smoking_dried_kelpblock.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:smoking", + "ingredient": { + "item": "quickiemod:kelpstack" + }, + "result": { + "id": "minecraft:dried_kelp_block" + }, + "experience": 0, + "cookingtime": 100 +} diff --git a/src/main/resources/data/quickiemod/recipes/smoking_leather_from_flesh_stripes.json b/src/main/resources/data/quickiemod/recipes/smoking_leather_from_flesh_stripes.json new file mode 100644 index 0000000..41aea97 --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/smoking_leather_from_flesh_stripes.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:smoking", + "ingredient": { + "item": "quickiemod:rotten_flesh_stripes" + }, + "result": { + "id":"minecraft:leather" + }, + "experience": 0, + "cookingtime": 100 +} diff --git a/src/main/resources/data/quickiemod/recipes/stonecutting_flesh_stripes.json b/src/main/resources/data/quickiemod/recipes/stonecutting_flesh_stripes.json new file mode 100644 index 0000000..636154a --- /dev/null +++ b/src/main/resources/data/quickiemod/recipes/stonecutting_flesh_stripes.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:rotten_flesh" + }, + "result": { + "id": "quickiemod:rotten_flesh_stripes" + }, + "count": 2 +} diff --git a/src/main/resources/data/quickiemod/tag/items/ores/oresalpeter.json b/src/main/resources/data/quickiemod/tag/items/ores/oresalpeter.json new file mode 100644 index 0000000..ca98968 --- /dev/null +++ b/src/main/resources/data/quickiemod/tag/items/ores/oresalpeter.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "quickiemod:oresalpeter" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/tag/items/ores/oresulphor.json b/src/main/resources/data/quickiemod/tag/items/ores/oresulphor.json new file mode 100644 index 0000000..7345052 --- /dev/null +++ b/src/main/resources/data/quickiemod/tag/items/ores/oresulphor.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "quickiemod:oresulphor" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/worldgen/configured_feature/blocksulphor.json b/src/main/resources/data/quickiemod/worldgen/configured_feature/blocksulphor.json new file mode 100644 index 0000000..a736aeb --- /dev/null +++ b/src/main/resources/data/quickiemod/worldgen/configured_feature/blocksulphor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 3, + "targets": [ + { + "state": { + "Name": "quickiemod:blocksulphor" + }, + "target": { + "predicate_type": "minecraft:block_match", + "block": "minecraft:netherrack" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/worldgen/configured_feature/dirtsalpeter.json b/src/main/resources/data/quickiemod/worldgen/configured_feature/dirtsalpeter.json new file mode 100644 index 0000000..f48442f --- /dev/null +++ b/src/main/resources/data/quickiemod/worldgen/configured_feature/dirtsalpeter.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 4, + "targets": [ + { + "state": { + "Name": "quickiemod:dirtsalpeter" + }, + "target": { + "predicate_type": "minecraft:block_match", + "block": "minecraft:dirt" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/worldgen/configured_feature/oredeepslatesulphor.json b/src/main/resources/data/quickiemod/worldgen/configured_feature/oredeepslatesulphor.json new file mode 100644 index 0000000..906a1e4 --- /dev/null +++ b/src/main/resources/data/quickiemod/worldgen/configured_feature/oredeepslatesulphor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 20, + "targets": [ + { + "state": { + "Name": "quickiemod:oredeepslatesulphor" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/worldgen/configured_feature/orenethersulphor.json b/src/main/resources/data/quickiemod/worldgen/configured_feature/orenethersulphor.json new file mode 100644 index 0000000..98720cd --- /dev/null +++ b/src/main/resources/data/quickiemod/worldgen/configured_feature/orenethersulphor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 20, + "targets": [ + { + "state": { + "Name": "quickiemod:orenethersulphor" + }, + "target": { + "predicate_type": "minecraft:block_match", + "block": "minecraft:netherrack" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/worldgen/configured_feature/oresalpeter.json b/src/main/resources/data/quickiemod/worldgen/configured_feature/oresalpeter.json new file mode 100644 index 0000000..0c2fe76 --- /dev/null +++ b/src/main/resources/data/quickiemod/worldgen/configured_feature/oresalpeter.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 12, + "targets": [ + { + "state": { + "Name": "quickiemod:oresalpeter" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/worldgen/configured_feature/oresandsalpeter.json b/src/main/resources/data/quickiemod/worldgen/configured_feature/oresandsalpeter.json new file mode 100644 index 0000000..b52da16 --- /dev/null +++ b/src/main/resources/data/quickiemod/worldgen/configured_feature/oresandsalpeter.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 6, + "targets": [ + { + "state": { + "Name": "quickiemod:oresandsalpeter" + }, + "target": { + "predicate_type": "minecraft:block_match", + "block": "minecraft:sandstone" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/worldgen/configured_feature/oresulphor.json b/src/main/resources/data/quickiemod/worldgen/configured_feature/oresulphor.json new file mode 100644 index 0000000..fa022cd --- /dev/null +++ b/src/main/resources/data/quickiemod/worldgen/configured_feature/oresulphor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 10, + "targets": [ + { + "state": { + "Name": "quickiemod:oresulphor" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/worldgen/configured_feature/sandsalpeter.json b/src/main/resources/data/quickiemod/worldgen/configured_feature/sandsalpeter.json new file mode 100644 index 0000000..f539992 --- /dev/null +++ b/src/main/resources/data/quickiemod/worldgen/configured_feature/sandsalpeter.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 8, + "targets": [ + { + "state": { + "Name": "quickiemod:sandsalpeter" + }, + "target": { + "predicate_type": "minecraft:block_match", + "block": "minecraft:sand" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/worldgen/placed_feature/blocksulphor.json b/src/main/resources/data/quickiemod/worldgen/placed_feature/blocksulphor.json new file mode 100644 index 0000000..f60d526 --- /dev/null +++ b/src/main/resources/data/quickiemod/worldgen/placed_feature/blocksulphor.json @@ -0,0 +1,24 @@ +{ + "feature": "quickiemod:blocksulphor", + "placement": [ + { + "type": "minecraft:count", + "count": 4 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 125 + }, + "min_inclusive": { + "absolute": 5 + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/worldgen/placed_feature/dirtsalpeter.json b/src/main/resources/data/quickiemod/worldgen/placed_feature/dirtsalpeter.json new file mode 100644 index 0000000..7e9cc41 --- /dev/null +++ b/src/main/resources/data/quickiemod/worldgen/placed_feature/dirtsalpeter.json @@ -0,0 +1,24 @@ +{ + "feature": "quickiemod:dirtsalpeter", + "placement": [ + { + "type": "minecraft:count", + "count": 5 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 125 + }, + "min_inclusive": { + "absolute": 16 + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/worldgen/placed_feature/oredeepslatesulphor.json b/src/main/resources/data/quickiemod/worldgen/placed_feature/oredeepslatesulphor.json new file mode 100644 index 0000000..d05d339 --- /dev/null +++ b/src/main/resources/data/quickiemod/worldgen/placed_feature/oredeepslatesulphor.json @@ -0,0 +1,24 @@ +{ + "feature": "quickiemod:oredeepslatesulphor", + "placement": [ + { + "type": "minecraft:count", + "count": 9 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 0 + }, + "min_inclusive": { + "absolute": -125 + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/worldgen/placed_feature/orenethersulphor.json b/src/main/resources/data/quickiemod/worldgen/placed_feature/orenethersulphor.json new file mode 100644 index 0000000..9beffb3 --- /dev/null +++ b/src/main/resources/data/quickiemod/worldgen/placed_feature/orenethersulphor.json @@ -0,0 +1,24 @@ +{ + "feature": "quickiemod:orenethersulphor", + "placement": [ + { + "type": "minecraft:count", + "count": 12 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 125 + }, + "min_inclusive": { + "absolute": 5 + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/worldgen/placed_feature/oresalpeter.json b/src/main/resources/data/quickiemod/worldgen/placed_feature/oresalpeter.json new file mode 100644 index 0000000..7c5f6e6 --- /dev/null +++ b/src/main/resources/data/quickiemod/worldgen/placed_feature/oresalpeter.json @@ -0,0 +1,24 @@ +{ + "feature": "quickiemod:oresalpeter", + "placement": [ + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 125 + }, + "min_inclusive": { + "absolute": 0 + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/worldgen/placed_feature/oresandsalpeter.json b/src/main/resources/data/quickiemod/worldgen/placed_feature/oresandsalpeter.json new file mode 100644 index 0000000..0c62c27 --- /dev/null +++ b/src/main/resources/data/quickiemod/worldgen/placed_feature/oresandsalpeter.json @@ -0,0 +1,24 @@ +{ + "feature": "quickiemod:oresandsalpeter", + "placement": [ + { + "type": "minecraft:count", + "count": 15 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 125 + }, + "min_inclusive": { + "absolute": 32 + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/worldgen/placed_feature/oresulphor.json b/src/main/resources/data/quickiemod/worldgen/placed_feature/oresulphor.json new file mode 100644 index 0000000..b6a3f9b --- /dev/null +++ b/src/main/resources/data/quickiemod/worldgen/placed_feature/oresulphor.json @@ -0,0 +1,24 @@ +{ + "feature": "quickiemod:oresulphor", + "placement": [ + { + "type": "minecraft:count", + "count": 9 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 64 + }, + "min_inclusive": { + "absolute": 0 + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/worldgen/placed_feature/sandsalpeter.json b/src/main/resources/data/quickiemod/worldgen/placed_feature/sandsalpeter.json new file mode 100644 index 0000000..3a95911 --- /dev/null +++ b/src/main/resources/data/quickiemod/worldgen/placed_feature/sandsalpeter.json @@ -0,0 +1,24 @@ +{ + "feature": "quickiemod:sandsalpeter", + "placement": [ + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 125 + }, + "min_inclusive": { + "absolute": 32 + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..42f9ac7 --- /dev/null +++ b/src/main/resources/fabric.mod.json @@ -0,0 +1,37 @@ +{ + "schemaVersion": 1, + "id": "quickiemod", + "version": "${version}", + "name": "QuickieMod", + "description": "Speed up daily work in Minecraft.", + "authors": [ + "jottyfan" + ], + "contact": { + "homepage": "https://gitlab.com/jottyfan/quickiemod/", + "sources": "https://gitlab.com/jottyfan/quickiemod/" + }, + "license": "see license file", + "icon": "assets/quickiemod/icon.png", + "environment": "*", + "entrypoints": { + "main": [ + "de.jottyfan.quickiemod.QuickieMod" + ], + "fabric-datagen": [ + "de.jottyfan.quickiemod.QuickieModDataGenerator" + ], + "client": [ + "de.jottyfan.quickiemod.QuickieModClient" + ] + }, + "depends": { + "fabricloader": ">=0.15.11", + "minecraft": "~1.20.6", + "java": ">=21", + "fabric-api": "*" + }, + "suggests": { + "flamingo": "*" + } +}