diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index dfe0770..0000000 --- a/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 12f8644..0000000 --- a/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -# eclipse -bin -*.launch -.settings -.metadata -.classpath -.project - -# idea -out -*.ipr -*.iws -*.iml -.idea - -# gradle -build -.gradle - -# other -eclipse -run - -# Files from Forge MDK -forge*changelog.txt diff --git a/README.md b/README.md deleted file mode 100644 index 748de15..0000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# Forge-Tutorial-1.20.X - diff --git a/build.gradle b/build.gradle index 8b14f39..b8f421b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,192 +1,151 @@ plugins { + id 'java-library' id 'eclipse' id 'idea' id 'maven-publish' - id 'net.minecraftforge.gradle' version '[6.0,6.2)' - id 'org.parchmentmc.librarian.forgegradle' version '1.+' - id 'org.spongepowered.mixin' version '0.7-SNAPSHOT' apply true + id 'net.neoforged.gradle.userdev' version '7.0.41' } version = mod_version group = mod_group_id +repositories { + + mavenLocal() +} + base { - archivesName = mod_id + archivesName = "tutorialmod-" + mod_version + "-neoforge" + neo_version } // Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. java.toolchain.languageVersion = JavaLanguageVersion.of(17) -println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" -minecraft { - // The mappings can be changed at any time and must be in the following format. - // Channel: Version: - // official MCVersion Official field/method names from Mojang mapping files - // parchment YYYY.MM.DD-MCVersion Open community-sourced parameter names and javadocs layered on top of official - // - // You must be aware of the Mojang license when using the 'official' or 'parchment' mappings. - // See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md - // - // Parchment is an unofficial project maintained by ParchmentMC, separate from MinecraftForge - // Additional setup is needed to use their mappings: https://parchmentmc.org/docs/getting-started - // - // Use non-default mappings at your own risk. They may not always work. - // Simply re-run your setup task after changing the mappings to update your workspace. - mappings channel: mapping_channel, version: mapping_version - - // When true, this property will have all Eclipse run configurations run the "prepareX" task for the given run configuration before launching the game. - // In most cases, it is not necessary to enable. - // enableEclipsePrepareRuns = true - - // When true, this property will have all IntelliJ IDEA run configurations run the "prepareX" task for the given run configuration before launching the game. - // In most cases, it is not necessary to enable. - // enableIdeaPrepareRuns = true - - // This property allows configuring Gradle's ProcessResources task(s) to run on IDE output locations before launching the game. - // It is REQUIRED to be set to true for this template to function. - // See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html - copyIdeResources = true - - // When true, this property will add the folder name of all declared run configurations to generated IDE run configurations. - // The folder name can be set on a run configuration using the "folderName" property. - // By default, the folder name of a run configuration is the name of the Gradle project containing it. - // generateRunFolders = true - - // This property enables access transformers for use in development. - // They will be applied to the Minecraft artifact. - // The access transformer file can be anywhere in the project. - // However, it must be at "META-INF/accesstransformer.cfg" in the final mod jar to be loaded by Forge. - // This default location is a best practice to automatically put the file in the right place in the final jar. - // See https://docs.minecraftforge.net/en/latest/advanced/accesstransformers/ for more information. - // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') - - // Default run configurations. - // These can be tweaked, removed, or duplicated as needed. - runs { - client { - workingDirectory project.file('run') - - // Recommended logging data for a userdev environment - // The markers can be added/remove as needed separated by commas. - // "SCAN": For mods scan. - // "REGISTRIES": For firing of registry events. - // "REGISTRYDUMP": For getting the contents of all registries. - property 'forge.logging.markers', 'REGISTRIES' - - // Recommended logging level for the console - // You can set various levels here. - // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels - property 'forge.logging.console.level', 'debug' - - // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. - property 'forge.enabledGameTestNamespaces', mod_id - - mods { - "${mod_id}" { - source sourceSets.main - } - } - } - - server { - workingDirectory project.file('run') - - property 'forge.logging.markers', 'REGISTRIES' - - property 'forge.logging.console.level', 'debug' - - property 'forge.enabledGameTestNamespaces', mod_id - - mods { - "${mod_id}" { - source sourceSets.main - } - } - } - - // This run config launches GameTestServer and runs all registered gametests, then exits. - // By default, the server will crash when no gametests are provided. - // The gametest system is also enabled by default for other run configs under the /test command. - gameTestServer { - workingDirectory project.file('run') - - property 'forge.logging.markers', 'REGISTRIES' - - property 'forge.logging.console.level', 'debug' - - property 'forge.enabledGameTestNamespaces', mod_id - - mods { - "${mod_id}" { - source sourceSets.main - } - } - } +//minecraft.accessTransformers.file rootProject.file('src/main/resources/META-INF/accesstransformer.cfg') +//minecraft.accessTransformers.entry public net.minecraft.client.Minecraft textureManager # textureManager + +// Default run configurations. +// These can be tweaked, removed, or duplicated as needed. +runs { + // applies to all the run configs below + configureEach { + // Recommended logging data for a userdev environment + // The markers can be added/remove as needed separated by commas. + // "SCAN": For mods scan. + // "REGISTRIES": For firing of registry events. + // "REGISTRYDUMP": For getting the contents of all registries. + systemProperty 'forge.logging.markers', 'REGISTRIES' + + // Recommended logging level for the console + // You can set various levels here. + // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels + systemProperty 'forge.logging.console.level', 'debug' + + modSource project.sourceSets.main + } - data { - workingDirectory project.file('run') + client { + // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. + systemProperty 'forge.enabledGameTestNamespaces', project.mod_id + } - property 'forge.logging.markers', 'REGISTRIES' + server { + systemProperty 'forge.enabledGameTestNamespaces', project.mod_id + programArgument '--nogui' + } - property 'forge.logging.console.level', 'debug' + // This run config launches GameTestServer and runs all registered gametests, then exits. + // By default, the server will crash when no gametests are provided. + // The gametest system is also enabled by default for other run configs under the /test command. + gameTestServer { + systemProperty 'forge.enabledGameTestNamespaces', project.mod_id + } - // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. - args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') + data { + // example of overriding the workingDirectory set in configureEach above, uncomment if you want to use it + // workingDirectory project.file('run-data') - mods { - "${mod_id}" { - source sourceSets.main - } - } - } + // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. + programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() } } // Include resources generated by data generators. -sourceSets.main.resources { srcDir 'src/generated/resources' } +//sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { // Put repositories for dependencies here // ForgeGradle automatically adds the Forge maven and Maven Central for you - // If you have mod jar dependencies in ./libs, you can declare them as a repository like so. - // See https://docs.gradle.org/current/userguide/declaring_repositories.html#sub:flat_dir_resolver + // If you have mod jar dependencies in ./libs, you can declare them as a repository like so: // flatDir { // dir 'libs' // } + + maven { + name = 'GeckoLib' + url 'https://dl.cloudsmith.io/public/geckolib3/geckolib/maven/' + } + + maven { + url "https://cursemaven.com" + content { + includeGroup "curse.maven" + } + } + maven { - // location of the maven that hosts JEI files since January 2023 - name = "Jared's maven" - url = "https://maven.blamejared.com/" + // location of a maven mirror for JEI files, as a fallback + name = "ModMaven" + url = "https://modmaven.dev" } + mavenCentral() } dependencies { // Specify the version of Minecraft to use. - // Any artifact can be supplied so long as it has a "userdev" classifier artifact and is a compatible patcher artifact. - // The "userdev" classifier will be requested and setup by ForgeGradle. - // If the group id is "net.minecraft" and the artifact id is one of ["client", "server", "joined"], - // then special handling is done to allow a setup of a vanilla dependency without the use of an external repository. - minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" - - // Example mod dependency with JEI - using fg.deobf() ensures the dependency is remapped to your development mappings + // Depending on the plugin applied there are several options. We will assume you applied the userdev plugin as shown above. + // The group for userdev is net.neoforged, the module name is neoforge, and the version is the same as the neoforge version. + // You can however also use the vanilla plugin (net.neoforged.gradle.vanilla) to use a version of Minecraft without the neoforge loader. + // And its provides the option to then use net.minecraft as the group, and one of; client, server or joined as the module name, plus the game version as version. + // For all intends and purposes: You can treat this dependency as if it is a normal library you would use. + implementation "net.neoforged:neoforge:${neo_version}" + implementation "curse.maven:azurelib-817423:4829907" + implementation "curse.maven:jade-324717:4845321" + implementation "curse.maven:roughly-enough-items-310111:4878204" + implementation "curse.maven:architectury-api-419699:4878099" + implementation "curse.maven:cloth-config-348521:4877825" + implementation "curse.maven:terrablender-neoforge-940057:4879423" + + + //implementation "curse.maven:harvest-with-ease-602171:4829143" + //implementation ('software.bernie.geckolib:geckolib-forge-1.20.2:4.2.4') + //compileOnly ("mezz.jei:jei-1.20.2-common-api:16.0.0.28") + //compileOnly ("mezz.jei:jei-1.20.2-forge-api:16.0.0.28") + //runtimeOnly ("mezz.jei:jei-1.20.2-common:16.0.0.28") + //runtimeOnly ("mezz.jei:jei-1.20.2-forge:16.0.0.28") + + //jarJar(group: 'com.google.code.gson', name: 'gson', version: '[2.0,3.0)') + + // Example mod dependency with JEI // The JEI API is declared for compile time use, while the full JEI artifact is used at runtime - // compileOnly fg.deobf("mezz.jei:jei-${mc_version}-common-api:${jei_version}") - // compileOnly fg.deobf("mezz.jei:jei-${mc_version}-forge-api:${jei_version}") - // runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}-forge:${jei_version}") - - // compile against the JEI API but do not include it at runtime - compileOnly(fg.deobf("mezz.jei:jei-${minecraft_version}-common-api:${jei_version}")) - compileOnly(fg.deobf("mezz.jei:jei-${minecraft_version}-forge-api:${jei_version}")) - // at runtime, use the full JEI jar for Forge - runtimeOnly(fg.deobf("mezz.jei:jei-${minecraft_version}-forge:${jei_version}")) - - implementation fg.deobf("com.github.glitchfiend:TerraBlender-forge:${minecraft_version}-${terrablender_version}") + // compileOnly "mezz.jei:jei-${mc_version}-common-api:${jei_version}" + // compileOnly "mezz.jei:jei-${mc_version}-forge-api:${jei_version}" + // runtimeOnly "mezz.jei:jei-${mc_version}-forge:${jei_version}" // Example mod dependency using a mod jar from ./libs with a flat dir repository // This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar // The group id is ignored when searching -- in this case, it is "blank" - // implementation fg.deobf("blank:coolmod-${mc_version}:${coolmod_version}") + // implementation "blank:coolmod-${mc_version}:${coolmod_version}" + + // Example mod dependency using a file as dependency + // implementation files("libs/coolmod-${mc_version}-${coolmod_version}.jar") + //compileOnly files("extrajars/architectury-neoforge-10.0.9999.jar") + // compileOnly files("extrajars/cloth-config-neoforge-12.0.9999.jar") + //compileOnly files("extrajars/RoughlyEnoughItems-13.0.9999.jar") + + // Example project dependency using a sister or child project: + // implementation project(":myproject") // For more info: // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html @@ -197,54 +156,31 @@ dependencies { // A missing property will result in an error. Properties are expanded using ${} Groovy notation. // When "copyIdeResources" is enabled, this will also run before the game launches in IDE environments. // See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html -def resourceTargets = ['META-INF/mods.toml', 'pack.mcmeta'] -def replaceProperties = [ - minecraft_version: minecraft_version, minecraft_version_range: minecraft_version_range, - forge_version: forge_version, forge_version_range: forge_version_range, - loader_version_range: loader_version_range, - mod_id: mod_id, mod_name: mod_name, mod_license: mod_license, mod_version: mod_version, - mod_authors: mod_authors, mod_description: mod_description, - terrablender_version_range: terrablender_version_range -] -processResources { +tasks.withType(ProcessResources).configureEach { + var replaceProperties = [ + minecraft_version : minecraft_version, minecraft_version_range: minecraft_version_range, + neo_version : neo_version, neo_version_range: neo_version_range, + loader_version_range: loader_version_range, + mod_id : mod_id, mod_name: mod_name, mod_license: mod_license, mod_version: mod_version, + mod_authors : mod_authors, mod_description: mod_description, pack_format_number: pack_format_number, + ] inputs.properties replaceProperties - replaceProperties.put 'project', project - filesMatching(resourceTargets) { - expand replaceProperties - } -} - -// Example for how to get properties into the manifest for reading at runtime. -jar { - manifest { - attributes([ - "Specification-Title" : mod_id, - "Specification-Vendor" : mod_authors, - "Specification-Version" : "1", // We are version 1 of ourselves - "Implementation-Title" : project.name, - "Implementation-Version" : project.jar.archiveVersion, - "Implementation-Vendor" : mod_authors, - "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") - ]) + filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) { + expand replaceProperties + [project: project] } } // Example configuration to allow publishing using the maven-publish plugin -// This is the preferred method to reobfuscate your jar file -jar.finalizedBy('reobfJar') -// However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing -// publish.dependsOn('reobfJar') - publishing { publications { - mavenJava(MavenPublication) { - artifact jar + register('mavenJava', MavenPublication) { + from components.java } } repositories { maven { - url "file://${project.projectDir}/mcmodsrepo" + url "file://${project.projectDir}/repo" } } } diff --git a/gradle.properties b/gradle.properties index ae99435..36c9570 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,22 +2,22 @@ # This is required to provide enough memory for the Minecraft decompilation process. org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false - +org.gradle.debug=false ## Environment Properties -# The Minecraft version must agree with the Forge version to get a valid artifact -minecraft_version=1.20.1 +# The Minecraft version must agree with the Neo version to get a valid artifact +minecraft_version=1.20.2 # The Minecraft version range can use any release version of Minecraft as bounds. # Snapshots, pre-releases, and release candidates are not guaranteed to sort properly # as they do not follow standard versioning conventions. -minecraft_version_range=[1.20.1,1.21) -# The Forge version must agree with the Minecraft version to get a valid artifact -forge_version=47.1.3 -# The Forge version range can use any version of Forge as bounds or match the loader version range -forge_version_range=[47.1.3,) -# The loader version range can only use the major version of Forge/FML as bounds -loader_version_range=[47,) +minecraft_version_range=[1.20.2,1.21) +# The Neo version must agree with the Minecraft version to get a valid artifact +neo_version=20.2.53-beta +# The Neo version range can use any version of Neo as bounds or match the loader version range +neo_version_range=[20.2,) +# The loader version range can only use the major version of Neo/FML as bounds +loader_version_range=[1,) # The mapping channel to use for mappings. # The default set of supported mapping channels are ["official", "snapshot", "snapshot_nodoc", "stable", "stable_nodoc"]. # Additional mapping channels can be registered through the "channelProviders" extension in a Gradle plugin. @@ -28,23 +28,17 @@ loader_version_range=[47,) # | parchment | YYYY.MM.DD-MCVersion | Open community-sourced parameter names and javadocs layered on top of official | # # You must be aware of the Mojang license when using the 'official' or 'parchment' mappings. -# See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md +# See more information here: https://github.com/neoforged/NeoForm/blob/main/Mojang.md # # Parchment is an unofficial project maintained by ParchmentMC, separate from Minecraft Forge. # Additional setup is needed to use their mappings, see https://parchmentmc.org/docs/getting-started -mapping_channel=parchment +mapping_channel=official # The mapping version to query from the mapping channel. # This must match the format required by the mapping channel. -mapping_version=2023.06.26-1.20.1 - - -## Dependency Properties -jei_version=15.2.0.27 - -terrablender_version=3.0.0.169 -terrablender_version_range=[3.0.0.169,) - +mapping_version=1.20.2 +terrablender_version=3.2.0.8 +terrablender_version_range=[3.2.0.8,) ## Mod Properties # The unique mod identifier for the mod. Must be lowercase in English locale. Must fit the regex [a-z][a-z0-9_]{1,63} @@ -53,14 +47,16 @@ mod_id=tutorialmod # The human-readable display name for the mod. mod_name=Tutorial Mod # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. -mod_license=MIT +mod_license=All Rights Reserved # The mod version. See https://semver.org/ -mod_version=0.1-1.20.1 +mod_version=1.0.0 # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # This should match the base package used for the mod sources. # See https://maven.apache.org/guides/mini/guide-naming-conventions.html mod_group_id=net.kaupenjoe.tutorialmod # The authors of the mod. This is a simple text string that is used for display purposes in the mod list. -mod_authors=Kaupenjoe +mod_authors=Tarantel # The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list. -mod_description=This is a Tutorialmod made by Kaupenjoe :) \ No newline at end of file +mod_description=bla bla +# Pack version - this changes each minecraft release, in general. +pack_format_number=18 diff --git a/settings.gradle b/settings.gradle index 1e4b6e7..b359a59 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,15 +1,11 @@ pluginManagement { repositories { + mavenLocal() gradlePluginPortal() - maven { - name = 'MinecraftForge' - url = 'https://maven.minecraftforge.net/' - } - maven { url = 'https://maven.parchmentmc.org' } - maven { url = 'https://repo.spongepowered.org/repository/maven-public/' } + maven { url = 'https://maven.neoforged.net/releases' } } } plugins { id 'org.gradle.toolchains.foojay-resolver-convention' version '0.5.0' -} \ No newline at end of file +} diff --git a/src/main/java/net/kaupenjoe/tutorialmod/TutorialMod.java b/src/main/java/net/kaupenjoe/tutorialmod/TutorialMod.java index 8c043c8..50ed32c 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/TutorialMod.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/TutorialMod.java @@ -28,16 +28,16 @@ import net.minecraft.world.item.CreativeModeTabs; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.FlowerPotBlock; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.BuildCreativeModeTabContentsEvent; -import net.minecraftforge.event.server.ServerStartingEvent; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; -import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; -import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.Mod; +import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; +import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent; +import net.neoforged.fml.javafmlmod.FMLJavaModLoadingContext; +import net.neoforged.neoforge.common.NeoForge; +import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent; +import net.neoforged.neoforge.event.server.ServerStartingEvent; import org.slf4j.Logger; import terrablender.api.SurfaceRuleManager; @@ -72,7 +72,7 @@ public TutorialMod() { modEventBus.addListener(this::commonSetup); - MinecraftForge.EVENT_BUS.register(this); + NeoForge.EVENT_BUS.register(this); modEventBus.addListener(this::addCreative); } diff --git a/src/main/java/net/kaupenjoe/tutorialmod/block/ModBlocks.java b/src/main/java/net/kaupenjoe/tutorialmod/block/ModBlocks.java index 9e316fa..15aee89 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/block/ModBlocks.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/block/ModBlocks.java @@ -18,10 +18,10 @@ import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockSetType; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.neoforged.neoforge.registries.ForgeRegistries; +import net.neoforged.neoforge.registries.RegistryObject; import java.util.function.Supplier; diff --git a/src/main/java/net/kaupenjoe/tutorialmod/block/custom/CornCropBlock.java b/src/main/java/net/kaupenjoe/tutorialmod/block/custom/CornCropBlock.java index 0242a86..805246c 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/block/custom/CornCropBlock.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/block/custom/CornCropBlock.java @@ -17,7 +17,8 @@ import net.minecraft.world.level.block.state.properties.IntegerProperty; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; -import net.minecraftforge.common.IPlantable; +import net.neoforged.neoforge.common.IPlantable; + public class CornCropBlock extends CropBlock { public static final int FIRST_STAGE_MAX_AGE = 7; @@ -53,7 +54,7 @@ public void randomTick(BlockState pState, ServerLevel pLevel, BlockPos pPos, Ran if (currentAge < this.getMaxAge()) { float growthSpeed = getGrowthSpeed(this, pLevel, pPos); - if (net.minecraftforge.common.ForgeHooks.onCropsGrowPre(pLevel, pPos, pState, pRandom.nextInt((int)(25.0F / growthSpeed) + 1) == 0)) { + if (net.neoforged.neoforge.common.CommonHooks.onCropsGrowPre(pLevel, pPos, pState, pRandom.nextInt((int)(25.0F / growthSpeed) + 1) == 0)) { if(currentAge == FIRST_STAGE_MAX_AGE) { if(pLevel.getBlockState(pPos.above(1)).is(Blocks.AIR)) { pLevel.setBlock(pPos.above(1), this.getStateForAge(currentAge + 1), 2); @@ -62,7 +63,7 @@ public void randomTick(BlockState pState, ServerLevel pLevel, BlockPos pPos, Ran pLevel.setBlock(pPos, this.getStateForAge(currentAge + 1), 2); } - net.minecraftforge.common.ForgeHooks.onCropsGrowPost(pLevel, pPos, pState); + net.neoforged.neoforge.common.CommonHooks.onCropsGrowPost(pLevel, pPos, pState); } } } diff --git a/src/main/java/net/kaupenjoe/tutorialmod/block/custom/GemPolishingStationBlock.java b/src/main/java/net/kaupenjoe/tutorialmod/block/custom/GemPolishingStationBlock.java index 1e2bca4..281c6a6 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/block/custom/GemPolishingStationBlock.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/block/custom/GemPolishingStationBlock.java @@ -19,7 +19,7 @@ import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; -import net.minecraftforge.network.NetworkHooks; +import net.neoforged.neoforge.network.NetworkHooks; import org.jetbrains.annotations.Nullable; public class GemPolishingStationBlock extends BaseEntityBlock { diff --git a/src/main/java/net/kaupenjoe/tutorialmod/block/custom/ModFlammableRotatedPillarBlock.java b/src/main/java/net/kaupenjoe/tutorialmod/block/custom/ModFlammableRotatedPillarBlock.java index 7775007..092a71a 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/block/custom/ModFlammableRotatedPillarBlock.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/block/custom/ModFlammableRotatedPillarBlock.java @@ -8,7 +8,7 @@ import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.block.RotatedPillarBlock; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.common.ToolAction; +import net.neoforged.neoforge.common.ToolAction; import org.checkerframework.checker.units.qual.A; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/net/kaupenjoe/tutorialmod/block/entity/GemPolishingStationBlockEntity.java b/src/main/java/net/kaupenjoe/tutorialmod/block/entity/GemPolishingStationBlockEntity.java index 975bd7e..72a5eda 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/block/entity/GemPolishingStationBlockEntity.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/block/entity/GemPolishingStationBlockEntity.java @@ -1,6 +1,5 @@ package net.kaupenjoe.tutorialmod.block.entity; -import net.kaupenjoe.tutorialmod.item.ModItems; import net.kaupenjoe.tutorialmod.recipe.GemPolishingRecipe; import net.kaupenjoe.tutorialmod.screen.GemPolishingStationMenu; import net.minecraft.core.BlockPos; @@ -10,7 +9,6 @@ import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; -import net.minecraft.world.Container; import net.minecraft.world.Containers; import net.minecraft.world.MenuProvider; import net.minecraft.world.SimpleContainer; @@ -20,15 +18,15 @@ import net.minecraft.world.inventory.ContainerData; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.RecipeHolder; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ForgeCapabilities; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.items.IItemHandler; -import net.minecraftforge.items.ItemStackHandler; +import net.neoforged.neoforge.common.capabilities.Capabilities; +import net.neoforged.neoforge.common.capabilities.Capability; +import net.neoforged.neoforge.common.util.LazyOptional; +import net.neoforged.neoforge.items.IItemHandler; +import net.neoforged.neoforge.items.ItemStackHandler; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -91,7 +89,7 @@ public ItemStack getRenderStack() { @Override public @NotNull LazyOptional getCapability(@NotNull Capability cap, @Nullable Direction side) { - if(cap == ForgeCapabilities.ITEM_HANDLER) { + if(cap == Capabilities.ITEM_HANDLER) { return lazyItemHandler.cast(); } @@ -163,8 +161,8 @@ private void resetProgress() { } private void craftItem() { - Optional recipe = getCurrentRecipe(); - ItemStack result = recipe.get().getResultItem(null); + Optional> recipe = getCurrentRecipe(); + ItemStack result = recipe.get().value().getResultItem(null); this.itemHandler.extractItem(INPUT_SLOT, 1, false); @@ -173,17 +171,17 @@ private void craftItem() { } private boolean hasRecipe() { - Optional recipe = getCurrentRecipe(); + Optional> recipe = getCurrentRecipe(); if(recipe.isEmpty()) { return false; } - ItemStack result = recipe.get().getResultItem(getLevel().registryAccess()); + ItemStack result = recipe.get().value().getResultItem(getLevel().registryAccess()); return canInsertAmountIntoOutputSlot(result.getCount()) && canInsertItemIntoOutputSlot(result.getItem()); } - private Optional getCurrentRecipe() { + private Optional> getCurrentRecipe() { SimpleContainer inventory = new SimpleContainer(this.itemHandler.getSlots()); for(int i = 0; i < itemHandler.getSlots(); i++) { inventory.setItem(i, this.itemHandler.getStackInSlot(i)); diff --git a/src/main/java/net/kaupenjoe/tutorialmod/block/entity/ModBlockEntities.java b/src/main/java/net/kaupenjoe/tutorialmod/block/entity/ModBlockEntities.java index c2d485b..bd88ddf 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/block/entity/ModBlockEntities.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/block/entity/ModBlockEntities.java @@ -3,10 +3,11 @@ import net.kaupenjoe.tutorialmod.TutorialMod; import net.kaupenjoe.tutorialmod.block.ModBlocks; import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.neoforged.neoforge.registries.ForgeRegistries; +import net.neoforged.neoforge.registries.RegistryObject; + public class ModBlockEntities { public static final DeferredRegister> BLOCK_ENTITIES = diff --git a/src/main/java/net/kaupenjoe/tutorialmod/compat/GemPolishingCategory.java b/src/main/java/net/kaupenjoe/tutorialmod/compat/GemPolishingCategory.java index e83a11a..dfcfdbe 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/compat/GemPolishingCategory.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/compat/GemPolishingCategory.java @@ -1,60 +1,61 @@ -package net.kaupenjoe.tutorialmod.compat; - -import mezz.jei.api.constants.VanillaTypes; -import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; -import mezz.jei.api.gui.drawable.IDrawable; -import mezz.jei.api.helpers.IGuiHelper; -import mezz.jei.api.recipe.IFocusGroup; -import mezz.jei.api.recipe.RecipeIngredientRole; -import mezz.jei.api.recipe.RecipeType; -import mezz.jei.api.recipe.category.IRecipeCategory; -import net.kaupenjoe.tutorialmod.TutorialMod; -import net.kaupenjoe.tutorialmod.block.ModBlocks; -import net.kaupenjoe.tutorialmod.recipe.GemPolishingRecipe; -import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.ItemStack; - -public class GemPolishingCategory implements IRecipeCategory { - public static final ResourceLocation UID = new ResourceLocation(TutorialMod.MOD_ID, "gem_polishing"); - public static final ResourceLocation TEXTURE = new ResourceLocation(TutorialMod.MOD_ID, - "textures/gui/gem_polishing_station_gui.png"); - - public static final RecipeType GEM_POLISHING_TYPE = - new RecipeType<>(UID, GemPolishingRecipe.class); - - private final IDrawable background; - private final IDrawable icon; - - public GemPolishingCategory(IGuiHelper helper) { - this.background = helper.createDrawable(TEXTURE, 0, 0, 176, 85); - this.icon = helper.createDrawableIngredient(VanillaTypes.ITEM_STACK, new ItemStack(ModBlocks.GEM_POLISHING_STATION.get())); - } - - @Override - public RecipeType getRecipeType() { - return GEM_POLISHING_TYPE; - } - - @Override - public Component getTitle() { - return Component.translatable("block.tutorialmod.gem_polishing_station"); - } - - @Override - public IDrawable getBackground() { - return this.background; - } - - @Override - public IDrawable getIcon() { - return this.icon; - } - - @Override - public void setRecipe(IRecipeLayoutBuilder builder, GemPolishingRecipe recipe, IFocusGroup focuses) { - builder.addSlot(RecipeIngredientRole.INPUT, 80, 11).addIngredients(recipe.getIngredients().get(0)); - - builder.addSlot(RecipeIngredientRole.OUTPUT, 80, 59).addItemStack(recipe.getResultItem(null)); - } -} +//package net.kaupenjoe.tutorialmod.compat; +// +//import mezz.jei.api.constants.VanillaTypes; +//import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; +//import mezz.jei.api.gui.drawable.IDrawable; +//import mezz.jei.api.helpers.IGuiHelper; +//import mezz.jei.api.recipe.IFocusGroup; +//import mezz.jei.api.recipe.RecipeIngredientRole; +//import mezz.jei.api.recipe.RecipeType; +//import mezz.jei.api.recipe.category.IRecipeCategory; +//import net.kaupenjoe.tutorialmod.TutorialMod; +//import net.kaupenjoe.tutorialmod.block.ModBlocks; +//import net.kaupenjoe.tutorialmod.recipe.GemPolishingRecipe; +//import net.minecraft.network.chat.Component; +//import net.minecraft.resources.ResourceLocation; +//import net.minecraft.world.item.ItemStack; +// +//public class GemPolishingCategory implements IRecipeCategory { +// public static final ResourceLocation UID = new ResourceLocation(TutorialMod.MOD_ID, "gem_polishing"); +// public static final ResourceLocation TEXTURE = new ResourceLocation(TutorialMod.MOD_ID, +// "textures/gui/gem_polishing_station_gui.png"); +// +// public static final RecipeType GEM_POLISHING_TYPE = +// new RecipeType<>(UID, GemPolishingRecipe.class); +// +// private final IDrawable background; +// private final IDrawable icon; +// +// public GemPolishingCategory(IGuiHelper helper) { +// this.background = helper.createDrawable(TEXTURE, 0, 0, 176, 85); +// this.icon = helper.createDrawableIngredient(VanillaTypes.ITEM_STACK, new ItemStack(ModBlocks.GEM_POLISHING_STATION.get())); +// } +// +// @Override +// public RecipeType getRecipeType() { +// return GEM_POLISHING_TYPE; +// } +// +// @Override +// public Component getTitle() { +// return Component.translatable("block.tutorialmod.gem_polishing_station"); +// } +// +// @Override +// public IDrawable getBackground() { +// return this.background; +// } +// +// @Override +// public IDrawable getIcon() { +// return this.icon; +// } +// +// @Override +// public void setRecipe(IRecipeLayoutBuilder builder, GemPolishingRecipe recipe, IFocusGroup focuses) { +// builder.addSlot(RecipeIngredientRole.INPUT, 80, 11).addIngredients(recipe.getIngredients().get(0)); +// +// builder.addSlot(RecipeIngredientRole.OUTPUT, 80, 59).addItemStack(recipe.getResultItem(null)); +// } +//} +// \ No newline at end of file diff --git a/src/main/java/net/kaupenjoe/tutorialmod/compat/JEITutorialModPlugin.java b/src/main/java/net/kaupenjoe/tutorialmod/compat/JEITutorialModPlugin.java index edcd018..93bf211 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/compat/JEITutorialModPlugin.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/compat/JEITutorialModPlugin.java @@ -1,42 +1,43 @@ -package net.kaupenjoe.tutorialmod.compat; - -import mezz.jei.api.IModPlugin; -import mezz.jei.api.JeiPlugin; -import mezz.jei.api.registration.IGuiHandlerRegistration; -import mezz.jei.api.registration.IRecipeCategoryRegistration; -import mezz.jei.api.registration.IRecipeRegistration; -import net.kaupenjoe.tutorialmod.TutorialMod; -import net.kaupenjoe.tutorialmod.recipe.GemPolishingRecipe; -import net.kaupenjoe.tutorialmod.screen.GemPolishingStationScreen; -import net.minecraft.client.Minecraft; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.crafting.RecipeManager; - -import java.util.List; - -@JeiPlugin -public class JEITutorialModPlugin implements IModPlugin { - @Override - public ResourceLocation getPluginUid() { - return new ResourceLocation(TutorialMod.MOD_ID, "jei_plugin"); - } - - @Override - public void registerCategories(IRecipeCategoryRegistration registration) { - registration.addRecipeCategories(new GemPolishingCategory(registration.getJeiHelpers().getGuiHelper())); - } - - @Override - public void registerRecipes(IRecipeRegistration registration) { - RecipeManager recipeManager = Minecraft.getInstance().level.getRecipeManager(); - - List polishingRecipes = recipeManager.getAllRecipesFor(GemPolishingRecipe.Type.INSTANCE); - registration.addRecipes(GemPolishingCategory.GEM_POLISHING_TYPE, polishingRecipes); - } - - @Override - public void registerGuiHandlers(IGuiHandlerRegistration registration) { - registration.addRecipeClickArea(GemPolishingStationScreen.class, 60, 30, 20, 30, - GemPolishingCategory.GEM_POLISHING_TYPE); - } -} +//package net.kaupenjoe.tutorialmod.compat; +// +//import mezz.jei.api.IModPlugin; +//import mezz.jei.api.JeiPlugin; +//import mezz.jei.api.registration.IGuiHandlerRegistration; +//import mezz.jei.api.registration.IRecipeCategoryRegistration; +//import mezz.jei.api.registration.IRecipeRegistration; +//import net.kaupenjoe.tutorialmod.TutorialMod; +//import net.kaupenjoe.tutorialmod.recipe.GemPolishingRecipe; +//import net.kaupenjoe.tutorialmod.screen.GemPolishingStationScreen; +//import net.minecraft.client.Minecraft; +//import net.minecraft.resources.ResourceLocation; +//import net.minecraft.world.item.crafting.RecipeManager; +// +//import java.util.List; +// +//@JeiPlugin +//public class JEITutorialModPlugin implements IModPlugin { +// @Override +// public ResourceLocation getPluginUid() { +// return new ResourceLocation(TutorialMod.MOD_ID, "jei_plugin"); +// } +// +// @Override +// public void registerCategories(IRecipeCategoryRegistration registration) { +// registration.addRecipeCategories(new GemPolishingCategory(registration.getJeiHelpers().getGuiHelper())); +// } +// +// @Override +// public void registerRecipes(IRecipeRegistration registration) { +// RecipeManager recipeManager = Minecraft.getInstance().level.getRecipeManager(); +// +// List polishingRecipes = recipeManager.getAllRecipesFor(GemPolishingRecipe.Type.INSTANCE); +// registration.addRecipes(GemPolishingCategory.GEM_POLISHING_TYPE, polishingRecipes); +// } +// +// @Override +// public void registerGuiHandlers(IGuiHandlerRegistration registration) { +// registration.addRecipeClickArea(GemPolishingStationScreen.class, 60, 30, 20, 30, +// GemPolishingCategory.GEM_POLISHING_TYPE); +// } +//} +// \ No newline at end of file diff --git a/src/main/java/net/kaupenjoe/tutorialmod/compat/rei/REICategoryIdentifiers.java b/src/main/java/net/kaupenjoe/tutorialmod/compat/rei/REICategoryIdentifiers.java new file mode 100644 index 0000000..750556b --- /dev/null +++ b/src/main/java/net/kaupenjoe/tutorialmod/compat/rei/REICategoryIdentifiers.java @@ -0,0 +1,13 @@ +package net.kaupenjoe.tutorialmod.compat.rei; + +import me.shedaniel.rei.api.common.category.CategoryIdentifier; +import net.kaupenjoe.tutorialmod.compat.rei.displays.GemPolishingREIDisplay; +import net.kaupenjoe.tutorialmod.recipe.GemPolishingRecipe; + +public class REICategoryIdentifiers { + public static final CategoryIdentifier GEM_POLISHING_REI_DISPLAY_CATEGORY_IDENTIFIER = CategoryIdentifier.of(GemPolishingRecipe.Type.ID); + + private REICategoryIdentifiers() { + + } +} \ No newline at end of file diff --git a/src/main/java/net/kaupenjoe/tutorialmod/compat/rei/REIPlugin.java b/src/main/java/net/kaupenjoe/tutorialmod/compat/rei/REIPlugin.java new file mode 100644 index 0000000..9287412 --- /dev/null +++ b/src/main/java/net/kaupenjoe/tutorialmod/compat/rei/REIPlugin.java @@ -0,0 +1,96 @@ +package net.kaupenjoe.tutorialmod.compat.rei; + +import me.shedaniel.math.Point; +import me.shedaniel.math.Rectangle; +import me.shedaniel.rei.api.client.gui.widgets.Arrow; +import me.shedaniel.rei.api.client.gui.widgets.Slot; +import me.shedaniel.rei.api.client.gui.widgets.Widgets; +import me.shedaniel.rei.api.client.plugins.REIClientPlugin; +import me.shedaniel.rei.api.client.registry.category.CategoryRegistry; +import me.shedaniel.rei.api.client.registry.display.DisplayRegistry; +import me.shedaniel.rei.api.client.registry.screen.ScreenRegistry; +import me.shedaniel.rei.api.common.display.basic.BasicDisplay; +import me.shedaniel.rei.api.common.entry.EntryIngredient; +import me.shedaniel.rei.api.common.util.EntryStacks; +import me.shedaniel.rei.forge.REIPluginClient; +import net.kaupenjoe.tutorialmod.block.ModBlocks; +import net.kaupenjoe.tutorialmod.compat.rei.category.GemPolishingREICategory; +import net.kaupenjoe.tutorialmod.compat.rei.displays.GemPolishingREIDisplay; +import net.kaupenjoe.tutorialmod.recipe.GemPolishingRecipe; +import net.kaupenjoe.tutorialmod.screen.GemPolishingStationScreen; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.RecipeHolder; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.fml.common.Mod; + +import java.util.List; + +@REIPluginClient +public class REIPlugin implements REIClientPlugin { + + public static final int SLOT_SIZE = 19; + public REIPlugin() { + } + + @Override + public void registerCategories(CategoryRegistry registry) { + registry.add(new GemPolishingREICategory()); + registry.addWorkstations(REICategoryIdentifiers.GEM_POLISHING_REI_DISPLAY_CATEGORY_IDENTIFIER, EntryStacks.of(ModBlocks.GEM_POLISHING_STATION.get())); + + + } + + @Override + public void registerDisplays(DisplayRegistry helper) { + helper.registerRecipeFiller(GemPolishingRecipe.class, GemPolishingRecipe.Type.INSTANCE, GemPolishingREIDisplay::new); + } + + @Override + public void registerScreens(ScreenRegistry registry) { + registry.registerContainerClickArea(new Rectangle(53, 30, 40, 10), GemPolishingStationScreen.class, GemPolishingREIDisplay.ID); + } + /** + * Creates an input slot at a specified point with the specified ingredient index. + * + * @param display the display to get recipe data from. + * @param index the index of the input ingredient to display. + * @param x the x-coordinate of the top left corner of the slot. + * @param y the y-coordinate of the top left corner of the slot. + * @return a widget object to be added to display widget list. + */ + public static Slot createInputSlot(BasicDisplay display, int index, int x, int y) { + if (index >= display.getInputEntries().size()) { + return Widgets.createSlot(new Point(x, y)); + } + EntryIngredient ingredient = display.getInputEntries().get(index); + return Widgets.createSlot(new Point(x, y)).entries(ingredient).markInput(); + } + + /** + * Creates an output slot at a specified point with the specified ingredient index. + * + * @param display the display to get recipe data from. + * @param index the index of the output ingredient to display. + * @param x the x-coordinate of the top left corner of the slot. + * @param y the y-coordinate of the top left corner of the slot. + * @return a widget object to be added to display widget list. + */ + public static Slot createOutputSlot(BasicDisplay display, int index, int x, int y) { + if (index >= display.getOutputEntries().size()) { + return Widgets.createSlot(new Point(x, y)); + } + EntryIngredient outputIngredient = display.getOutputEntries().get(index); + return Widgets.createSlot(new Point(x, y)).entries(outputIngredient).disableBackground().markOutput(); + } + + /** + * Creates an animated progress bar starting at point x,y. + * + * @param x the x-coordinate of the starting point. + * @param y the y-coordinate of the starting point. + * @return arrow widget object to be added to display widget list. + */ + public static Arrow createAnimatedArrow(int x, int y) { + return Widgets.createArrow(new Point(x, y)).animationDurationTicks(20*3); + } +} \ No newline at end of file diff --git a/src/main/java/net/kaupenjoe/tutorialmod/compat/rei/REIRecipeDisplay.java b/src/main/java/net/kaupenjoe/tutorialmod/compat/rei/REIRecipeDisplay.java new file mode 100644 index 0000000..0da66f3 --- /dev/null +++ b/src/main/java/net/kaupenjoe/tutorialmod/compat/rei/REIRecipeDisplay.java @@ -0,0 +1,48 @@ +package net.kaupenjoe.tutorialmod.compat.rei; + +import me.shedaniel.rei.api.common.display.basic.BasicDisplay; +import me.shedaniel.rei.api.common.entry.EntryIngredient; +import me.shedaniel.rei.api.common.util.EntryIngredients; +import me.shedaniel.rei.api.common.display.Display; + + +import me.shedaniel.rei.forge.REIPluginClient; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.SimpleContainer; +import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeHolder; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.fml.common.Mod; +import org.jetbrains.annotations.NotNull; +import java.util.Collections; +import java.util.List; +import java.util.Optional; + +//@REIPluginClient +public abstract class REIRecipeDisplay> implements Display { + protected final T recipe; + protected List inputs; + protected EntryIngredient outputs; + + public REIRecipeDisplay(T recipe) { + this.recipe = recipe; + this.inputs = EntryIngredients.ofIngredients(recipe.getIngredients()); + this.outputs = EntryIngredients.of(recipe.getResultItem(BasicDisplay.registryAccess())); + } + + @Override + public @NotNull List getInputEntries() { + return this.inputs; + } + + + @Override + public @NotNull List getOutputEntries() { + return Collections.singletonList(this.outputs); + } + + @Override + public Optional getDisplayLocation() { + return Optional.empty(); + } +} \ No newline at end of file diff --git a/src/main/java/net/kaupenjoe/tutorialmod/compat/rei/category/GemPolishingREICategory.java b/src/main/java/net/kaupenjoe/tutorialmod/compat/rei/category/GemPolishingREICategory.java new file mode 100644 index 0000000..1600ec6 --- /dev/null +++ b/src/main/java/net/kaupenjoe/tutorialmod/compat/rei/category/GemPolishingREICategory.java @@ -0,0 +1,66 @@ +package net.kaupenjoe.tutorialmod.compat.rei.category; + +import com.google.common.collect.Lists; +import me.shedaniel.math.Point; +import me.shedaniel.math.Rectangle; +import me.shedaniel.rei.api.client.gui.Renderer; +import me.shedaniel.rei.api.client.gui.widgets.Widget; +import me.shedaniel.rei.api.client.gui.widgets.Widgets; +import me.shedaniel.rei.api.client.registry.display.DisplayCategory; +import me.shedaniel.rei.api.common.category.CategoryIdentifier; +import me.shedaniel.rei.api.common.entry.EntryStack; +import me.shedaniel.rei.api.common.util.EntryStacks; +import net.kaupenjoe.tutorialmod.TutorialMod; +import net.kaupenjoe.tutorialmod.block.ModBlocks; +import net.kaupenjoe.tutorialmod.compat.rei.displays.GemPolishingREIDisplay; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ItemStack; + +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +import static net.kaupenjoe.tutorialmod.compat.rei.REIPlugin.*; + +public class GemPolishingREICategory implements DisplayCategory { + private final EntryStack blaster = EntryStacks.of(new ItemStack(ModBlocks.GEM_POLISHING_STATION.get())); + + public static final CategoryIdentifier SOULEXTRACTOR = + CategoryIdentifier.of(TutorialMod.MOD_ID, "gem_polishing"); + + @Override + public CategoryIdentifier getCategoryIdentifier() { + return SOULEXTRACTOR; + } + + @Override + public @NotNull Renderer getIcon() { + return blaster; + } + + @Override + public Component getTitle() { + return Component.literal("Gem Polishing Station"); + } + + @Override + public List setupDisplay(GemPolishingREIDisplay display, Rectangle bounds) { + // Setup background + Point startPoint = new Point(bounds.getCenterX() - 36, bounds.getCenterY() - 13); + List widgets = Lists.newArrayList(); + widgets.add(Widgets.createRecipeBase(bounds)); + + // Add arrow + widgets.add(createAnimatedArrow(startPoint.x + 27, startPoint.y + 4)); + + //Add output slot + widgets.add(Widgets.createResultSlotBackground(new Point(startPoint.x + 61, startPoint.y + 5))); + widgets.add(createOutputSlot(display, 0, startPoint.x + 61, startPoint.y + 5)); + + // Add input slots + int x = startPoint.x-14; + int y = startPoint.y - 5; + widgets.add(createInputSlot(display, 0, x, y)); + return widgets; + } +} \ No newline at end of file diff --git a/src/main/java/net/kaupenjoe/tutorialmod/compat/rei/displays/GemPolishingREIDisplay.java b/src/main/java/net/kaupenjoe/tutorialmod/compat/rei/displays/GemPolishingREIDisplay.java new file mode 100644 index 0000000..cb5a8b5 --- /dev/null +++ b/src/main/java/net/kaupenjoe/tutorialmod/compat/rei/displays/GemPolishingREIDisplay.java @@ -0,0 +1,48 @@ +package net.kaupenjoe.tutorialmod.compat.rei.displays; + +import me.shedaniel.rei.api.common.category.CategoryIdentifier; + +import me.shedaniel.rei.api.common.display.basic.BasicDisplay; +import me.shedaniel.rei.api.common.entry.EntryIngredient; +import me.shedaniel.rei.api.common.util.EntryIngredients; +import net.kaupenjoe.tutorialmod.TutorialMod; +import net.kaupenjoe.tutorialmod.recipe.GemPolishingRecipe; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.crafting.RecipeHolder; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Optional; + +public class GemPolishingREIDisplay extends BasicDisplay { + + public GemPolishingREIDisplay(List inputs, List outputs) { + super(inputs, outputs); + } + + public static final CategoryIdentifier ID = CategoryIdentifier.of(TutorialMod.MOD_ID, "gem_polishing"); + /*public BreederREIDisplay(Breeder_Recipe recipe) { + this(EntryIngredients.ofIngredients(recipe.getIngredients()), Collections.singletonList(EntryIngredients.of(recipe.output.getItem())), Optional.of(recipe.getId())); + }*/ + + public GemPolishingREIDisplay(RecipeHolder recipe){ + super(getInputList(recipe.value()), List.of(EntryIngredient.of(EntryIngredients.of(recipe.value().getResultItem(null))))); + } + + public GemPolishingREIDisplay(List input, List output, Optional location) { + super(input, output, location); + } + + private static List getInputList(GemPolishingRecipe recipe) { + if(recipe == null) return Collections.emptyList(); + List list = new ArrayList<>(); + list.add(EntryIngredients.ofIngredient(recipe.getIngredients().get(0))); + return list; + } + + @Override + public CategoryIdentifier getCategoryIdentifier() { + return ID; + } +} \ No newline at end of file diff --git a/src/main/java/net/kaupenjoe/tutorialmod/datagen/DataGenerators.java b/src/main/java/net/kaupenjoe/tutorialmod/datagen/DataGenerators.java index cfef5d7..1b3cc78 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/datagen/DataGenerators.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/datagen/DataGenerators.java @@ -4,10 +4,11 @@ import net.minecraft.core.HolderLookup; import net.minecraft.data.DataGenerator; import net.minecraft.data.PackOutput; -import net.minecraftforge.common.data.ExistingFileHelper; -import net.minecraftforge.data.event.GatherDataEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.Mod; +import net.neoforged.neoforge.common.data.ExistingFileHelper; +import net.neoforged.neoforge.data.event.GatherDataEvent; + import java.util.concurrent.CompletableFuture; @@ -20,7 +21,7 @@ public static void gatherData(GatherDataEvent event) { ExistingFileHelper existingFileHelper = event.getExistingFileHelper(); CompletableFuture lookupProvider = event.getLookupProvider(); - generator.addProvider(event.includeServer(), new ModRecipeProvider(packOutput)); + generator.addProvider(event.includeServer(), new ModRecipeProvider(packOutput,lookupProvider )); generator.addProvider(event.includeServer(), ModLootTableProvider.create(packOutput)); generator.addProvider(event.includeClient(), new ModBlockStateProvider(packOutput, existingFileHelper)); diff --git a/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModBlockStateProvider.java b/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModBlockStateProvider.java index 3fce7e8..106496e 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModBlockStateProvider.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModBlockStateProvider.java @@ -9,12 +9,13 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.*; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.client.model.generators.BlockStateProvider; -import net.minecraftforge.client.model.generators.ConfiguredModel; -import net.minecraftforge.client.model.generators.ModelFile; -import net.minecraftforge.common.data.ExistingFileHelper; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; +import net.neoforged.neoforge.client.model.generators.BlockStateProvider; +import net.neoforged.neoforge.client.model.generators.ConfiguredModel; +import net.neoforged.neoforge.client.model.generators.ModelFile; +import net.neoforged.neoforge.common.data.ExistingFileHelper; +import net.neoforged.neoforge.registries.ForgeRegistries; +import net.neoforged.neoforge.registries.RegistryObject; + import java.util.function.Function; diff --git a/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModBlockTagGenerator.java b/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModBlockTagGenerator.java index 1ec6176..743c214 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModBlockTagGenerator.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModBlockTagGenerator.java @@ -6,9 +6,10 @@ import net.minecraft.core.HolderLookup; import net.minecraft.data.PackOutput; import net.minecraft.tags.BlockTags; -import net.minecraftforge.common.Tags; -import net.minecraftforge.common.data.BlockTagsProvider; -import net.minecraftforge.common.data.ExistingFileHelper; + +import net.neoforged.neoforge.common.Tags; +import net.neoforged.neoforge.common.data.BlockTagsProvider; +import net.neoforged.neoforge.common.data.ExistingFileHelper; import org.jetbrains.annotations.Nullable; import java.util.concurrent.CompletableFuture; diff --git a/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModGlobalLootModifiersProvider.java b/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModGlobalLootModifiersProvider.java index d5fdac3..5756e2c 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModGlobalLootModifiersProvider.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModGlobalLootModifiersProvider.java @@ -10,8 +10,9 @@ import net.minecraft.world.level.storage.loot.predicates.LootItemBlockStatePropertyCondition; import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; import net.minecraft.world.level.storage.loot.predicates.LootItemRandomChanceCondition; -import net.minecraftforge.common.data.GlobalLootModifierProvider; -import net.minecraftforge.common.loot.LootTableIdCondition; +import net.neoforged.neoforge.common.data.GlobalLootModifierProvider; +import net.neoforged.neoforge.common.loot.LootTableIdCondition; + public class ModGlobalLootModifiersProvider extends GlobalLootModifierProvider { public ModGlobalLootModifiersProvider(PackOutput output) { diff --git a/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModItemModelProvider.java b/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModItemModelProvider.java index 1f7a852..952a7d6 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModItemModelProvider.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModItemModelProvider.java @@ -12,12 +12,13 @@ import net.minecraft.world.item.armortrim.TrimMaterial; import net.minecraft.world.item.armortrim.TrimMaterials; import net.minecraft.world.level.block.Block; -import net.minecraftforge.client.model.generators.ItemModelBuilder; -import net.minecraftforge.client.model.generators.ItemModelProvider; -import net.minecraftforge.client.model.generators.ModelFile; -import net.minecraftforge.common.data.ExistingFileHelper; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; +import net.neoforged.neoforge.client.model.generators.ItemModelBuilder; +import net.neoforged.neoforge.client.model.generators.ItemModelProvider; +import net.neoforged.neoforge.client.model.generators.ModelFile; +import net.neoforged.neoforge.common.data.ExistingFileHelper; +import net.neoforged.neoforge.registries.ForgeRegistries; +import net.neoforged.neoforge.registries.RegistryObject; + import java.util.LinkedHashMap; diff --git a/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModItemTagGenerator.java b/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModItemTagGenerator.java index b407386..9a10356 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModItemTagGenerator.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModItemTagGenerator.java @@ -8,7 +8,8 @@ import net.minecraft.data.tags.ItemTagsProvider; import net.minecraft.tags.ItemTags; import net.minecraft.world.level.block.Block; -import net.minecraftforge.common.data.ExistingFileHelper; + +import net.neoforged.neoforge.common.data.ExistingFileHelper; import org.jetbrains.annotations.Nullable; import java.util.concurrent.CompletableFuture; diff --git a/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModPoiTypeTagsProvider.java b/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModPoiTypeTagsProvider.java index 9db1bf3..c621956 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModPoiTypeTagsProvider.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModPoiTypeTagsProvider.java @@ -6,7 +6,8 @@ import net.minecraft.data.tags.PoiTypeTagsProvider; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.PoiTypeTags; -import net.minecraftforge.common.data.ExistingFileHelper; + +import net.neoforged.neoforge.common.data.ExistingFileHelper; import org.jetbrains.annotations.Nullable; import java.util.concurrent.CompletableFuture; diff --git a/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModRecipeProvider.java b/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModRecipeProvider.java index d26a548..1aea4e4 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModRecipeProvider.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModRecipeProvider.java @@ -3,15 +3,18 @@ import net.kaupenjoe.tutorialmod.TutorialMod; import net.kaupenjoe.tutorialmod.block.ModBlocks; import net.kaupenjoe.tutorialmod.item.ModItems; +import net.minecraft.core.HolderLookup; import net.minecraft.data.PackOutput; import net.minecraft.data.recipes.*; import net.minecraft.world.item.crafting.AbstractCookingRecipe; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.level.ItemLike; -import net.minecraftforge.common.crafting.conditions.IConditionBuilder; +import net.neoforged.neoforge.common.conditions.IConditionBuilder; + import java.util.List; +import java.util.concurrent.CompletableFuture; import java.util.function.Consumer; public class ModRecipeProvider extends RecipeProvider implements IConditionBuilder { @@ -19,12 +22,12 @@ public class ModRecipeProvider extends RecipeProvider implements IConditionBuild ModBlocks.SAPPHIRE_ORE.get(), ModBlocks.DEEPSLATE_SAPPHIRE_ORE.get(), ModBlocks.NETHER_SAPPHIRE_ORE.get(), ModBlocks.END_STONE_SAPPHIRE_ORE.get()); - public ModRecipeProvider(PackOutput pOutput) { - super(pOutput); + public ModRecipeProvider(PackOutput output, CompletableFuture provider) { + super(output, provider); } @Override - protected void buildRecipes(Consumer pWriter) { + protected void buildRecipes(RecipeOutput pWriter) { oreSmelting(pWriter, SAPPHIRE_SMELTABLES, RecipeCategory.MISC, ModItems.SAPPHIRE.get(), 0.25f, 200, "sapphire"); oreBlasting(pWriter, SAPPHIRE_SMELTABLES, RecipeCategory.MISC, ModItems.SAPPHIRE.get(), 0.25f, 100, "sapphire"); @@ -42,15 +45,15 @@ protected void buildRecipes(Consumer pWriter) { .save(pWriter); } - protected static void oreSmelting(Consumer pFinishedRecipeConsumer, List pIngredients, RecipeCategory pCategory, ItemLike pResult, float pExperience, int pCookingTIme, String pGroup) { + protected static void oreSmelting(RecipeOutput pFinishedRecipeConsumer, List pIngredients, RecipeCategory pCategory, ItemLike pResult, float pExperience, int pCookingTIme, String pGroup) { oreCooking(pFinishedRecipeConsumer, RecipeSerializer.SMELTING_RECIPE, pIngredients, pCategory, pResult, pExperience, pCookingTIme, pGroup, "_from_smelting"); } - protected static void oreBlasting(Consumer pFinishedRecipeConsumer, List pIngredients, RecipeCategory pCategory, ItemLike pResult, float pExperience, int pCookingTime, String pGroup) { + protected static void oreBlasting(RecipeOutput pFinishedRecipeConsumer, List pIngredients, RecipeCategory pCategory, ItemLike pResult, float pExperience, int pCookingTime, String pGroup) { oreCooking(pFinishedRecipeConsumer, RecipeSerializer.BLASTING_RECIPE, pIngredients, pCategory, pResult, pExperience, pCookingTime, pGroup, "_from_blasting"); } - protected static void oreCooking(Consumer pFinishedRecipeConsumer, RecipeSerializer pCookingSerializer, List pIngredients, RecipeCategory pCategory, ItemLike pResult, float pExperience, int pCookingTime, String pGroup, String pRecipeName) { + protected static void oreCooking(RecipeOutput pFinishedRecipeConsumer, RecipeSerializer pCookingSerializer, List pIngredients, RecipeCategory pCategory, ItemLike pResult, float pExperience, int pCookingTime, String pGroup, String pRecipeName) { for(ItemLike itemlike : pIngredients) { SimpleCookingRecipeBuilder.generic(Ingredient.of(itemlike), pCategory, pResult, pExperience, pCookingTime, pCookingSerializer) diff --git a/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModWorldGenProvider.java b/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModWorldGenProvider.java index 6026017..ae878a9 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModWorldGenProvider.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModWorldGenProvider.java @@ -10,8 +10,9 @@ import net.minecraft.core.RegistrySetBuilder; import net.minecraft.core.registries.Registries; import net.minecraft.data.PackOutput; -import net.minecraftforge.common.data.DatapackBuiltinEntriesProvider; -import net.minecraftforge.registries.ForgeRegistries; +import net.neoforged.neoforge.common.data.DatapackBuiltinEntriesProvider; +import net.neoforged.neoforge.registries.ForgeRegistries; + import java.util.Set; import java.util.concurrent.CompletableFuture; diff --git a/src/main/java/net/kaupenjoe/tutorialmod/datagen/loot/ModBlockLootTables.java b/src/main/java/net/kaupenjoe/tutorialmod/datagen/loot/ModBlockLootTables.java index f5c2e59..1fca06e 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/datagen/loot/ModBlockLootTables.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/datagen/loot/ModBlockLootTables.java @@ -19,7 +19,7 @@ import net.minecraft.world.level.storage.loot.predicates.LootItemBlockStatePropertyCondition; import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator; -import net.minecraftforge.registries.RegistryObject; +import net.neoforged.neoforge.registries.RegistryObject; import java.util.Set; diff --git a/src/main/java/net/kaupenjoe/tutorialmod/entity/ModEntities.java b/src/main/java/net/kaupenjoe/tutorialmod/entity/ModEntities.java index 49882ab..66f238e 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/entity/ModEntities.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/entity/ModEntities.java @@ -7,10 +7,11 @@ import net.kaupenjoe.tutorialmod.entity.custom.RhinoEntity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobCategory; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.neoforged.neoforge.registries.ForgeRegistries; +import net.neoforged.neoforge.registries.RegistryObject; + public class ModEntities { public static final DeferredRegister> ENTITY_TYPES = diff --git a/src/main/java/net/kaupenjoe/tutorialmod/entity/ai/RhinoAttackGoal.java b/src/main/java/net/kaupenjoe/tutorialmod/entity/ai/RhinoAttackGoal.java index 0d450fb..233d7c8 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/entity/ai/RhinoAttackGoal.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/entity/ai/RhinoAttackGoal.java @@ -24,7 +24,7 @@ public void start() { ticksUntilNextAttack = 40; } - @Override + protected void checkAndPerformAttack(LivingEntity pEnemy, double pDistToEnemySqr) { if (isEnemyWithinAttackDistance(pEnemy, pDistToEnemySqr)) { shouldCountTillNextAttack = true; @@ -45,6 +45,11 @@ protected void checkAndPerformAttack(LivingEntity pEnemy, double pDistToEnemySqr } } + + + protected double getAttackReachSqr(LivingEntity p_25556_) { + return (double)(this.mob.getBbWidth() * 2.0F * this.mob.getBbWidth() * 2.0F + p_25556_.getBbWidth()); + } private boolean isEnemyWithinAttackDistance(LivingEntity pEnemy, double pDistToEnemySqr) { return pDistToEnemySqr <= this.getAttackReachSqr(pEnemy); } diff --git a/src/main/java/net/kaupenjoe/tutorialmod/event/ModEventBusClientEvents.java b/src/main/java/net/kaupenjoe/tutorialmod/event/ModEventBusClientEvents.java index 8751e48..359066d 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/event/ModEventBusClientEvents.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/event/ModEventBusClientEvents.java @@ -9,10 +9,11 @@ import net.minecraft.client.model.ChestBoatModel; import net.minecraft.client.renderer.blockentity.HangingSignRenderer; import net.minecraft.client.renderer.blockentity.SignRenderer; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.client.event.EntityRenderersEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.Mod; +import net.neoforged.neoforge.client.event.EntityRenderersEvent; + @Mod.EventBusSubscriber(modid = TutorialMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) public class ModEventBusClientEvents { diff --git a/src/main/java/net/kaupenjoe/tutorialmod/event/ModEventBusEvents.java b/src/main/java/net/kaupenjoe/tutorialmod/event/ModEventBusEvents.java index cb31bd0..40dabd0 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/event/ModEventBusEvents.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/event/ModEventBusEvents.java @@ -3,9 +3,10 @@ import net.kaupenjoe.tutorialmod.TutorialMod; import net.kaupenjoe.tutorialmod.entity.ModEntities; import net.kaupenjoe.tutorialmod.entity.custom.RhinoEntity; -import net.minecraftforge.event.entity.EntityAttributeCreationEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.Mod; +import net.neoforged.neoforge.event.entity.EntityAttributeCreationEvent; + @Mod.EventBusSubscriber(modid = TutorialMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD) public class ModEventBusEvents { diff --git a/src/main/java/net/kaupenjoe/tutorialmod/event/ModEvents.java b/src/main/java/net/kaupenjoe/tutorialmod/event/ModEvents.java index 7d7d828..afb72b4 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/event/ModEvents.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/event/ModEvents.java @@ -14,10 +14,11 @@ import net.minecraft.world.item.enchantment.EnchantmentInstance; import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.item.trading.MerchantOffer; -import net.minecraftforge.event.village.VillagerTradesEvent; -import net.minecraftforge.event.village.WandererTradesEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.Mod; +import net.neoforged.neoforge.event.village.VillagerTradesEvent; +import net.neoforged.neoforge.event.village.WandererTradesEvent; + import java.util.List; diff --git a/src/main/java/net/kaupenjoe/tutorialmod/item/ModCreativeModTabs.java b/src/main/java/net/kaupenjoe/tutorialmod/item/ModCreativeModTabs.java index e0b92dc..de48a1e 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/item/ModCreativeModTabs.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/item/ModCreativeModTabs.java @@ -7,9 +7,10 @@ import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.RegistryObject; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.neoforged.neoforge.registries.RegistryObject; + public class ModCreativeModTabs { public static final DeferredRegister CREATIVE_MODE_TABS = diff --git a/src/main/java/net/kaupenjoe/tutorialmod/item/ModItems.java b/src/main/java/net/kaupenjoe/tutorialmod/item/ModItems.java index 8ccdada..df82704 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/item/ModItems.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/item/ModItems.java @@ -7,11 +7,12 @@ import net.kaupenjoe.tutorialmod.item.custom.*; import net.kaupenjoe.tutorialmod.sound.ModSounds; import net.minecraft.world.item.*; -import net.minecraftforge.common.ForgeSpawnEggItem; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.common.DeferredSpawnEggItem; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.neoforged.neoforge.registries.ForgeRegistries; +import net.neoforged.neoforge.registries.RegistryObject; + public class ModItems { public static final DeferredRegister ITEMS = @@ -67,7 +68,7 @@ public class ModItems { () -> new RecordItem(6, ModSounds.BAR_BRAWL, new Item.Properties().stacksTo(1), 2440)); public static final RegistryObject RHINO_SPANW_EGG = ITEMS.register("rhino_spawn_egg", - () -> new ForgeSpawnEggItem(ModEntities.RHINO, 0x7e9680, 0xc5d1c5, new Item.Properties())); + () -> new DeferredSpawnEggItem(ModEntities.RHINO, 0x7e9680, 0xc5d1c5, new Item.Properties())); public static final RegistryObject PINE_SIGN = ITEMS.register("pine_sign", () -> new SignItem(new Item.Properties().stacksTo(16), ModBlocks.PINE_SIGN.get(), ModBlocks.PINE_WALL_SIGN.get())); diff --git a/src/main/java/net/kaupenjoe/tutorialmod/item/ModToolTiers.java b/src/main/java/net/kaupenjoe/tutorialmod/item/ModToolTiers.java index 39258c9..554fe3c 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/item/ModToolTiers.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/item/ModToolTiers.java @@ -6,14 +6,15 @@ import net.minecraft.world.item.Tier; import net.minecraft.world.item.Tiers; import net.minecraft.world.item.crafting.Ingredient; -import net.minecraftforge.common.ForgeTier; -import net.minecraftforge.common.TierSortingRegistry; +import net.neoforged.neoforge.common.SimpleTier; +import net.neoforged.neoforge.common.TierSortingRegistry; + import java.util.List; public class ModToolTiers { public static final Tier SAPPHIRE = TierSortingRegistry.registerTier( - new ForgeTier(5, 1500, 5f, 4f, 25, + new SimpleTier(5, 1500, 5f, 4f, 25, ModTags.Blocks.NEEDS_SAPPHIRE_TOOL, () -> Ingredient.of(ModItems.SAPPHIRE.get())), new ResourceLocation(TutorialMod.MOD_ID, "sapphire"), List.of(Tiers.NETHERITE), List.of()); diff --git a/src/main/java/net/kaupenjoe/tutorialmod/loot/AddItemModifier.java b/src/main/java/net/kaupenjoe/tutorialmod/loot/AddItemModifier.java index 451a28b..4408c87 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/loot/AddItemModifier.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/loot/AddItemModifier.java @@ -8,9 +8,10 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; -import net.minecraftforge.common.loot.IGlobalLootModifier; -import net.minecraftforge.common.loot.LootModifier; -import net.minecraftforge.registries.ForgeRegistries; + +import net.neoforged.neoforge.common.loot.IGlobalLootModifier; +import net.neoforged.neoforge.common.loot.LootModifier; +import net.neoforged.neoforge.registries.ForgeRegistries; import org.jetbrains.annotations.NotNull; import java.util.function.Supplier; diff --git a/src/main/java/net/kaupenjoe/tutorialmod/loot/AddSusSandItemModifier.java b/src/main/java/net/kaupenjoe/tutorialmod/loot/AddSusSandItemModifier.java index 32380aa..38bb975 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/loot/AddSusSandItemModifier.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/loot/AddSusSandItemModifier.java @@ -8,9 +8,10 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; -import net.minecraftforge.common.loot.IGlobalLootModifier; -import net.minecraftforge.common.loot.LootModifier; -import net.minecraftforge.registries.ForgeRegistries; + +import net.neoforged.neoforge.common.loot.IGlobalLootModifier; +import net.neoforged.neoforge.common.loot.LootModifier; +import net.neoforged.neoforge.registries.ForgeRegistries; import org.jetbrains.annotations.NotNull; import java.util.function.Supplier; diff --git a/src/main/java/net/kaupenjoe/tutorialmod/loot/ModLootModifiers.java b/src/main/java/net/kaupenjoe/tutorialmod/loot/ModLootModifiers.java index d0d4279..0b833c7 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/loot/ModLootModifiers.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/loot/ModLootModifiers.java @@ -2,11 +2,12 @@ import com.mojang.serialization.Codec; import net.kaupenjoe.tutorialmod.TutorialMod; -import net.minecraftforge.common.loot.IGlobalLootModifier; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.common.loot.IGlobalLootModifier; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.neoforged.neoforge.registries.ForgeRegistries; +import net.neoforged.neoforge.registries.RegistryObject; + public class ModLootModifiers { public static final DeferredRegister> LOOT_MODIFIER_SERIALIZERS = diff --git a/src/main/java/net/kaupenjoe/tutorialmod/recipe/CodecFix.java b/src/main/java/net/kaupenjoe/tutorialmod/recipe/CodecFix.java new file mode 100644 index 0000000..a253643 --- /dev/null +++ b/src/main/java/net/kaupenjoe/tutorialmod/recipe/CodecFix.java @@ -0,0 +1,28 @@ +package net.kaupenjoe.tutorialmod.recipe; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.ItemLike; +import net.neoforged.neoforge.registries.ForgeRegistries; + +import java.util.Optional; + +public final class CodecFix { + private CodecFix() {} + + public static final Codec ITEM_STACK_CODEC = RecordCodecBuilder.create((instance) -> { + return instance.group(ForgeRegistries.ITEMS.getCodec().fieldOf("item").forGetter(ItemStack::getItem), + Codec.INT.optionalFieldOf("count", 1).forGetter(ItemStack::getCount), + CompoundTag.CODEC.optionalFieldOf("tag").forGetter((stack) -> { + return Optional.ofNullable(stack.getTag()); + })).apply(instance, CodecFix::createItemStackFix); + }); + + private static ItemStack createItemStackFix(ItemLike item, int count, Optional nbt) { + ItemStack itemStack = new ItemStack(item, count); + nbt.ifPresent(itemStack::setTag); + return itemStack; + } +} \ No newline at end of file diff --git a/src/main/java/net/kaupenjoe/tutorialmod/recipe/GemPolishingRecipe.java b/src/main/java/net/kaupenjoe/tutorialmod/recipe/GemPolishingRecipe.java index 5f51f74..0d1bf12 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/recipe/GemPolishingRecipe.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/recipe/GemPolishingRecipe.java @@ -2,6 +2,8 @@ import com.google.gson.JsonArray; import com.google.gson.JsonObject; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; import net.kaupenjoe.tutorialmod.TutorialMod; import net.minecraft.core.NonNullList; import net.minecraft.core.RegistryAccess; @@ -15,14 +17,14 @@ import org.jetbrains.annotations.Nullable; public class GemPolishingRecipe implements Recipe { - private final NonNullList inputItems; + //private final NonNullList inputItems; private final ItemStack output; - private final ResourceLocation id; + // private final ResourceLocation id; + public final Ingredient ingredient0; - public GemPolishingRecipe(NonNullList inputItems, ItemStack output, ResourceLocation id) { - this.inputItems = inputItems; + public GemPolishingRecipe(ItemStack output, Ingredient ingredient0) { this.output = output; - this.id = id; + this.ingredient0 = ingredient0; } @Override @@ -30,13 +32,14 @@ public boolean matches(SimpleContainer pContainer, Level pLevel) { if(pLevel.isClientSide()) { return false; } - - return inputItems.get(0).test(pContainer.getItem(0)); + return ingredient0.test(pContainer.getItem(0)); } @Override public NonNullList getIngredients() { - return inputItems; + NonNullList ingredients = NonNullList.createWithCapacity(1); + ingredients.add(0, ingredient0); + return ingredients; } @Override @@ -54,9 +57,9 @@ public ItemStack getResultItem(RegistryAccess pRegistryAccess) { return output.copy(); } - @Override + public ResourceLocation getId() { - return id; + return new ResourceLocation("gem_polishing"); } @Override @@ -78,41 +81,31 @@ public static class Serializer implements RecipeSerializer { public static final Serializer INSTANCE = new Serializer(); public static final ResourceLocation ID = new ResourceLocation(TutorialMod.MOD_ID, "gem_polishing"); - @Override - public GemPolishingRecipe fromJson(ResourceLocation pRecipeId, JsonObject pSerializedRecipe) { - ItemStack output = ShapedRecipe.itemStackFromJson(GsonHelper.getAsJsonObject(pSerializedRecipe, "output")); - - JsonArray ingredients = GsonHelper.getAsJsonArray(pSerializedRecipe, "ingredients"); - NonNullList inputs = NonNullList.withSize(1, Ingredient.EMPTY); + private final Codec CODEC = RecordCodecBuilder.create((instance) -> { + return instance.group(CodecFix.ITEM_STACK_CODEC.fieldOf("output").forGetter((recipe) -> { + return recipe.output; + }), Ingredient.CODEC_NONEMPTY.fieldOf("item").forGetter((recipe) -> { + return recipe.ingredient0; + })).apply(instance, GemPolishingRecipe::new); + }); - for(int i = 0; i < inputs.size(); i++) { - inputs.set(i, Ingredient.fromJson(ingredients.get(i))); - } - - return new GemPolishingRecipe(inputs, output, pRecipeId); + @Override + public Codec codec() { + return CODEC; } @Override - public @Nullable GemPolishingRecipe fromNetwork(ResourceLocation pRecipeId, FriendlyByteBuf pBuffer) { - NonNullList inputs = NonNullList.withSize(pBuffer.readInt(), Ingredient.EMPTY); - - for(int i = 0; i < inputs.size(); i++) { - inputs.set(i, Ingredient.fromNetwork(pBuffer)); - } + public GemPolishingRecipe fromNetwork(FriendlyByteBuf buffer) { + Ingredient input0 = Ingredient.fromNetwork(buffer); + ItemStack output = buffer.readItem(); - ItemStack output = pBuffer.readItem(); - return new GemPolishingRecipe(inputs, output, pRecipeId); + return new GemPolishingRecipe(output, input0); } @Override - public void toNetwork(FriendlyByteBuf pBuffer, GemPolishingRecipe pRecipe) { - pBuffer.writeInt(pRecipe.inputItems.size()); - - for (Ingredient ingredient : pRecipe.getIngredients()) { - ingredient.toNetwork(pBuffer); - } - - pBuffer.writeItemStack(pRecipe.getResultItem(null), false); + public void toNetwork(FriendlyByteBuf buffer, GemPolishingRecipe recipe) { + recipe.ingredient0.toNetwork(buffer); + buffer.writeItemStack(recipe.output, false); } } } diff --git a/src/main/java/net/kaupenjoe/tutorialmod/recipe/ModRecipes.java b/src/main/java/net/kaupenjoe/tutorialmod/recipe/ModRecipes.java index d15bbae..e745ab3 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/recipe/ModRecipes.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/recipe/ModRecipes.java @@ -2,10 +2,11 @@ import net.kaupenjoe.tutorialmod.TutorialMod; import net.minecraft.world.item.crafting.RecipeSerializer; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.neoforged.neoforge.registries.ForgeRegistries; +import net.neoforged.neoforge.registries.RegistryObject; + public class ModRecipes { public static final DeferredRegister> SERIALIZERS = diff --git a/src/main/java/net/kaupenjoe/tutorialmod/screen/GemPolishingStationMenu.java b/src/main/java/net/kaupenjoe/tutorialmod/screen/GemPolishingStationMenu.java index e26da6f..1548113 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/screen/GemPolishingStationMenu.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/screen/GemPolishingStationMenu.java @@ -9,8 +9,9 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraftforge.common.capabilities.ForgeCapabilities; -import net.minecraftforge.items.SlotItemHandler; +import net.neoforged.neoforge.common.capabilities.Capabilities; +import net.neoforged.neoforge.items.SlotItemHandler; + public class GemPolishingStationMenu extends AbstractContainerMenu { public final GemPolishingStationBlockEntity blockEntity; @@ -31,7 +32,7 @@ public GemPolishingStationMenu(int pContainerId, Inventory inv, BlockEntity enti addPlayerInventory(inv); addPlayerHotbar(inv); - this.blockEntity.getCapability(ForgeCapabilities.ITEM_HANDLER).ifPresent(iItemHandler -> { + this.blockEntity.getCapability(Capabilities.ITEM_HANDLER).ifPresent(iItemHandler -> { this.addSlot(new SlotItemHandler(iItemHandler, 0, 80, 11)); this.addSlot(new SlotItemHandler(iItemHandler, 1, 80, 59)); }); diff --git a/src/main/java/net/kaupenjoe/tutorialmod/screen/GemPolishingStationScreen.java b/src/main/java/net/kaupenjoe/tutorialmod/screen/GemPolishingStationScreen.java index 3e5d8f8..06e9322 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/screen/GemPolishingStationScreen.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/screen/GemPolishingStationScreen.java @@ -45,7 +45,7 @@ private void renderProgressArrow(GuiGraphics guiGraphics, int x, int y) { @Override public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float delta) { - renderBackground(guiGraphics); + renderBackground(guiGraphics, mouseX, mouseY, delta); super.render(guiGraphics, mouseX, mouseY, delta); renderTooltip(guiGraphics, mouseX, mouseY); } diff --git a/src/main/java/net/kaupenjoe/tutorialmod/screen/ModMenuTypes.java b/src/main/java/net/kaupenjoe/tutorialmod/screen/ModMenuTypes.java index 68d24aa..906cf5a 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/screen/ModMenuTypes.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/screen/ModMenuTypes.java @@ -3,12 +3,13 @@ import net.kaupenjoe.tutorialmod.TutorialMod; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.MenuType; -import net.minecraftforge.common.extensions.IForgeMenuType; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.network.IContainerFactory; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.common.extensions.IMenuTypeExtension; +import net.neoforged.neoforge.network.IContainerFactory; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.neoforged.neoforge.registries.ForgeRegistries; +import net.neoforged.neoforge.registries.RegistryObject; + public class ModMenuTypes { public static final DeferredRegister> MENUS = @@ -18,8 +19,8 @@ public class ModMenuTypes { registerMenuType("gem_polishing_menu", GemPolishingStationMenu::new); - private static RegistryObject> registerMenuType(String name, IContainerFactory factory) { - return MENUS.register(name, () -> IForgeMenuType.create(factory)); + private static RegistryObject> registerMenuType(String name, IContainerFactory factory) { + return MENUS.register(name, () -> IMenuTypeExtension.create(factory)); } public static void register(IEventBus eventBus) { diff --git a/src/main/java/net/kaupenjoe/tutorialmod/sound/ModSounds.java b/src/main/java/net/kaupenjoe/tutorialmod/sound/ModSounds.java index 0378844..f45e425 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/sound/ModSounds.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/sound/ModSounds.java @@ -3,11 +3,12 @@ import net.kaupenjoe.tutorialmod.TutorialMod; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; -import net.minecraftforge.common.util.ForgeSoundType; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.common.util.DeferredSoundType; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.neoforged.neoforge.registries.ForgeRegistries; +import net.neoforged.neoforge.registries.RegistryObject; + public class ModSounds { public static final DeferredRegister SOUND_EVENTS = @@ -24,7 +25,7 @@ public class ModSounds { public static final RegistryObject BAR_BRAWL = registerSoundEvents("bar_brawl"); - public static final ForgeSoundType SOUND_BLOCK_SOUNDS = new ForgeSoundType(1f, 1f, + public static final DeferredSoundType SOUND_BLOCK_SOUNDS = new DeferredSoundType(1f, 1f, ModSounds.SOUND_BLOCK_BREAK, ModSounds.SOUND_BLOCK_STEP, ModSounds.SOUND_BLOCK_PLACE, ModSounds.SOUND_BLOCK_HIT, ModSounds.SOUND_BLOCK_FALL); diff --git a/src/main/java/net/kaupenjoe/tutorialmod/villager/ModVillagers.java b/src/main/java/net/kaupenjoe/tutorialmod/villager/ModVillagers.java index c03f7f8..f969eb7 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/villager/ModVillagers.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/villager/ModVillagers.java @@ -6,10 +6,11 @@ import net.minecraft.sounds.SoundEvents; import net.minecraft.world.entity.ai.village.poi.PoiType; import net.minecraft.world.entity.npc.VillagerProfession; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.neoforged.neoforge.registries.ForgeRegistries; +import net.neoforged.neoforge.registries.RegistryObject; + public class ModVillagers { public static final DeferredRegister POI_TYPES = diff --git a/src/main/java/net/kaupenjoe/tutorialmod/worldgen/ModBiomeModifiers.java b/src/main/java/net/kaupenjoe/tutorialmod/worldgen/ModBiomeModifiers.java index 54e8ae9..1375657 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/worldgen/ModBiomeModifiers.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/worldgen/ModBiomeModifiers.java @@ -8,10 +8,11 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.BiomeTags; import net.minecraft.world.level.levelgen.GenerationStep; -import net.minecraftforge.common.Tags; -import net.minecraftforge.common.world.BiomeModifier; -import net.minecraftforge.common.world.ForgeBiomeModifiers; -import net.minecraftforge.registries.ForgeRegistries; +import net.neoforged.neoforge.common.Tags; +import net.neoforged.neoforge.common.world.BiomeModifier; +import net.neoforged.neoforge.common.world.BiomeModifiers; +import net.neoforged.neoforge.registries.ForgeRegistries; + public class ModBiomeModifiers { public static final ResourceKey ADD_SAPPHIRE_ORE = registerKey("add_sapphire_ore"); @@ -25,22 +26,22 @@ public static void bootstrap(BootstapContext context) { var placedFeatures = context.lookup(Registries.PLACED_FEATURE); var biomes = context.lookup(Registries.BIOME); - context.register(ADD_SAPPHIRE_ORE, new ForgeBiomeModifiers.AddFeaturesBiomeModifier( + context.register(ADD_SAPPHIRE_ORE, new BiomeModifiers.AddFeaturesBiomeModifier( biomes.getOrThrow(BiomeTags.IS_OVERWORLD), HolderSet.direct(placedFeatures.getOrThrow(ModPlacedFeatures.SAPPHIRE_ORE_PLACED_KEY)), GenerationStep.Decoration.UNDERGROUND_ORES)); - context.register(ADD_NETHER_SAPPHIRE_ORE, new ForgeBiomeModifiers.AddFeaturesBiomeModifier( + context.register(ADD_NETHER_SAPPHIRE_ORE, new BiomeModifiers.AddFeaturesBiomeModifier( biomes.getOrThrow(BiomeTags.IS_NETHER), HolderSet.direct(placedFeatures.getOrThrow(ModPlacedFeatures.NETHER_SAPPHIRE_ORE_PLACED_KEY)), GenerationStep.Decoration.UNDERGROUND_ORES)); - context.register(ADD_END_SAPPHIRE_ORE, new ForgeBiomeModifiers.AddFeaturesBiomeModifier( + context.register(ADD_END_SAPPHIRE_ORE, new BiomeModifiers.AddFeaturesBiomeModifier( biomes.getOrThrow(BiomeTags.IS_END), HolderSet.direct(placedFeatures.getOrThrow(ModPlacedFeatures.END_SAPPHIRE_ORE_PLACED_KEY)), GenerationStep.Decoration.UNDERGROUND_ORES)); - context.register(ADD_TREE_PINE, new ForgeBiomeModifiers.AddFeaturesBiomeModifier( + context.register(ADD_TREE_PINE, new BiomeModifiers.AddFeaturesBiomeModifier( biomes.getOrThrow(Tags.Biomes.IS_PLAINS), HolderSet.direct(placedFeatures.getOrThrow(ModPlacedFeatures.PINE_PLACED_KEY)), GenerationStep.Decoration.VEGETAL_DECORATION)); diff --git a/src/main/java/net/kaupenjoe/tutorialmod/worldgen/portal/ModTeleporter.java b/src/main/java/net/kaupenjoe/tutorialmod/worldgen/portal/ModTeleporter.java index 52b14c4..cfe904c 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/worldgen/portal/ModTeleporter.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/worldgen/portal/ModTeleporter.java @@ -7,7 +7,8 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.Fluids; -import net.minecraftforge.common.util.ITeleporter; +import net.neoforged.neoforge.common.util.ITeleporter; + import java.util.function.Function; diff --git a/src/main/java/net/kaupenjoe/tutorialmod/worldgen/tree/ModFoliagePlacers.java b/src/main/java/net/kaupenjoe/tutorialmod/worldgen/tree/ModFoliagePlacers.java index 20916f6..c62bf61 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/worldgen/tree/ModFoliagePlacers.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/worldgen/tree/ModFoliagePlacers.java @@ -4,9 +4,10 @@ import net.kaupenjoe.tutorialmod.worldgen.tree.custom.PineFoliagePlacer; import net.minecraft.core.registries.Registries; import net.minecraft.world.level.levelgen.feature.foliageplacers.FoliagePlacerType; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.RegistryObject; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.neoforged.neoforge.registries.RegistryObject; + public class ModFoliagePlacers { public static final DeferredRegister> FOLIAGE_PLACERS = diff --git a/src/main/java/net/kaupenjoe/tutorialmod/worldgen/tree/ModTrunkPlacerTypes.java b/src/main/java/net/kaupenjoe/tutorialmod/worldgen/tree/ModTrunkPlacerTypes.java index 97a5dca..02ba2c8 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/worldgen/tree/ModTrunkPlacerTypes.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/worldgen/tree/ModTrunkPlacerTypes.java @@ -4,9 +4,10 @@ import net.kaupenjoe.tutorialmod.worldgen.tree.custom.PineTrunkPlacer; import net.minecraft.core.registries.Registries; import net.minecraft.world.level.levelgen.feature.trunkplacers.TrunkPlacerType; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.RegistryObject; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.neoforged.neoforge.registries.RegistryObject; + public class ModTrunkPlacerTypes { public static final DeferredRegister> TRUNK_PLACER = diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 701aab7..1755bcf 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -15,7 +15,7 @@ license="${mod_license}" # A list of mods - how many allowed here is determined by the individual mod loader [[mods]] #mandatory # The modid of the mod -modId="${mod_id}" #mandatory +modId="tutorialmod" #mandatory # The version number of the mod version="${mod_version}" #mandatory # A display name for the mod @@ -41,31 +41,31 @@ authors="${mod_authors}" #optional # The description text for the mod (multi line!) (#mandatory) description='''${mod_description}''' # A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional. -[[dependencies.${mod_id}]] #optional - # the modid of the dependency - modId="forge" #mandatory - # Does this dependency have to exist - if not, ordering below must be specified - mandatory=true #mandatory - # The version range of the dependency - versionRange="${forge_version_range}" #mandatory - # An ordering relationship for the dependency - BEFORE or AFTER required if the dependency is not mandatory - # BEFORE - This mod is loaded BEFORE the dependency - # AFTER - This mod is loaded AFTER the dependency - ordering="NONE" - # Side this dependency is applied on - BOTH, CLIENT, or SERVER - side="BOTH" +[[dependencies.tutorialmod]] #optional +# the modid of the dependency +modId="neoforge" #mandatory +# Does this dependency have to exist - if not, ordering below must be specified +mandatory=true #mandatory +# The version range of the dependency +versionRange="${neo_version_range}" #mandatory +# An ordering relationship for the dependency - BEFORE or AFTER required if the dependency is not mandatory +# BEFORE - This mod is loaded BEFORE the dependency +# AFTER - This mod is loaded AFTER the dependency +ordering="NONE" +# Side this dependency is applied on - BOTH, CLIENT, or SERVER +side="BOTH" # Here's another dependency -[[dependencies.${mod_id}]] +[[dependencies.tutorialmod]] modId="minecraft" mandatory=true # This version range declares a minimum of the current minecraft version up to but not including the next major version versionRange="${minecraft_version_range}" ordering="NONE" side="BOTH" -[[dependencies.${mod_id}]] +[[dependencies.tutorialmod]] modId="terrablender" mandatory=true # This version range declares a minimum of the current minecraft version up to but not including the next major version - versionRange="${terrablender_version_range}" + versionRange="[3.2.0.8,)" ordering="NONE" side="BOTH" diff --git a/src/main/resources/assets/tutorialmod/blockstates/catmint.json b/src/main/resources/assets/tutorialmod/blockstates/catmint.json new file mode 100644 index 0000000..0078cb3 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/catmint.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/catmint" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/corn_crop.json b/src/main/resources/assets/tutorialmod/blockstates/corn_crop.json new file mode 100644 index 0000000..f889ce4 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/corn_crop.json @@ -0,0 +1,31 @@ +{ + "variants": { + "age=0": { + "model": "tutorialmod:block/corn_stage_0" + }, + "age=1": { + "model": "tutorialmod:block/corn_stage_1" + }, + "age=2": { + "model": "tutorialmod:block/corn_stage_2" + }, + "age=3": { + "model": "tutorialmod:block/corn_stage_3" + }, + "age=4": { + "model": "tutorialmod:block/corn_stage_4" + }, + "age=5": { + "model": "tutorialmod:block/corn_stage_5" + }, + "age=6": { + "model": "tutorialmod:block/corn_stage_6" + }, + "age=7": { + "model": "tutorialmod:block/corn_stage_7" + }, + "age=8": { + "model": "tutorialmod:block/corn_stage_8" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/deepslate_sapphire_ore.json b/src/main/resources/assets/tutorialmod/blockstates/deepslate_sapphire_ore.json new file mode 100644 index 0000000..2756aa7 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/deepslate_sapphire_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/deepslate_sapphire_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/end_stone_sapphire_ore.json b/src/main/resources/assets/tutorialmod/blockstates/end_stone_sapphire_ore.json new file mode 100644 index 0000000..f9cc4d2 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/end_stone_sapphire_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/end_stone_sapphire_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/gem_polishing_station.json b/src/main/resources/assets/tutorialmod/blockstates/gem_polishing_station.json new file mode 100644 index 0000000..bdea5fa --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/gem_polishing_station.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/gem_polishing_station" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/mod_portal.json b/src/main/resources/assets/tutorialmod/blockstates/mod_portal.json new file mode 100644 index 0000000..3cad2d6 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/mod_portal.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/mod_portal" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/nether_sapphire_ore.json b/src/main/resources/assets/tutorialmod/blockstates/nether_sapphire_ore.json new file mode 100644 index 0000000..6920b75 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/nether_sapphire_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/nether_sapphire_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/pine_hanging_sign.json b/src/main/resources/assets/tutorialmod/blockstates/pine_hanging_sign.json new file mode 100644 index 0000000..49b59cf --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/pine_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/pine_hanging_sign" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/pine_leaves.json b/src/main/resources/assets/tutorialmod/blockstates/pine_leaves.json new file mode 100644 index 0000000..a4507b0 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/pine_leaves.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/pine_leaves" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/pine_log.json b/src/main/resources/assets/tutorialmod/blockstates/pine_log.json new file mode 100644 index 0000000..2bb0fec --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/pine_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "tutorialmod:block/pine_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "tutorialmod:block/pine_log" + }, + "axis=z": { + "model": "tutorialmod:block/pine_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/pine_planks.json b/src/main/resources/assets/tutorialmod/blockstates/pine_planks.json new file mode 100644 index 0000000..0805adf --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/pine_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/pine_planks" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/pine_sapling.json b/src/main/resources/assets/tutorialmod/blockstates/pine_sapling.json new file mode 100644 index 0000000..f1b37ae --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/pine_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/pine_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/pine_sign.json b/src/main/resources/assets/tutorialmod/blockstates/pine_sign.json new file mode 100644 index 0000000..34357ab --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/pine_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/pine_sign" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/pine_wall_hanging_sign.json b/src/main/resources/assets/tutorialmod/blockstates/pine_wall_hanging_sign.json new file mode 100644 index 0000000..49b59cf --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/pine_wall_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/pine_hanging_sign" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/pine_wall_sign.json b/src/main/resources/assets/tutorialmod/blockstates/pine_wall_sign.json new file mode 100644 index 0000000..34357ab --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/pine_wall_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/pine_sign" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/pine_wood.json b/src/main/resources/assets/tutorialmod/blockstates/pine_wood.json new file mode 100644 index 0000000..458e362 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/pine_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "tutorialmod:block/pine_wood_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "tutorialmod:block/pine_wood" + }, + "axis=z": { + "model": "tutorialmod:block/pine_wood_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/potted_catmint.json b/src/main/resources/assets/tutorialmod/blockstates/potted_catmint.json new file mode 100644 index 0000000..bada2e9 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/potted_catmint.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/potted_catmint" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/raw_sapphire_block.json b/src/main/resources/assets/tutorialmod/blockstates/raw_sapphire_block.json new file mode 100644 index 0000000..e280ba1 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/raw_sapphire_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/raw_sapphire_block" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/sapphire_block.json b/src/main/resources/assets/tutorialmod/blockstates/sapphire_block.json new file mode 100644 index 0000000..af7d8a3 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/sapphire_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/sapphire_block" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/sapphire_button.json b/src/main/resources/assets/tutorialmod/blockstates/sapphire_button.json new file mode 100644 index 0000000..95c1bc0 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/sapphire_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "tutorialmod:block/sapphire_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "tutorialmod:block/sapphire_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "tutorialmod:block/sapphire_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "tutorialmod:block/sapphire_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "tutorialmod:block/sapphire_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "tutorialmod:block/sapphire_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "tutorialmod:block/sapphire_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "tutorialmod:block/sapphire_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "tutorialmod:block/sapphire_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "tutorialmod:block/sapphire_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "tutorialmod:block/sapphire_button" + }, + "face=floor,facing=north,powered=true": { + "model": "tutorialmod:block/sapphire_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "tutorialmod:block/sapphire_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "tutorialmod:block/sapphire_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "tutorialmod:block/sapphire_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "tutorialmod:block/sapphire_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "tutorialmod:block/sapphire_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "tutorialmod:block/sapphire_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "tutorialmod:block/sapphire_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "tutorialmod:block/sapphire_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "tutorialmod:block/sapphire_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "tutorialmod:block/sapphire_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "tutorialmod:block/sapphire_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "tutorialmod:block/sapphire_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/sapphire_door.json b/src/main/resources/assets/tutorialmod/blockstates/sapphire_door.json new file mode 100644 index 0000000..245e0bc --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/sapphire_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "tutorialmod:block/sapphire_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "tutorialmod:block/sapphire_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "tutorialmod:block/sapphire_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "tutorialmod:block/sapphire_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "tutorialmod:block/sapphire_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "tutorialmod:block/sapphire_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "tutorialmod:block/sapphire_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "tutorialmod:block/sapphire_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "tutorialmod:block/sapphire_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "tutorialmod:block/sapphire_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "tutorialmod:block/sapphire_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "tutorialmod:block/sapphire_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "tutorialmod:block/sapphire_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "tutorialmod:block/sapphire_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "tutorialmod:block/sapphire_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "tutorialmod:block/sapphire_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "tutorialmod:block/sapphire_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "tutorialmod:block/sapphire_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "tutorialmod:block/sapphire_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "tutorialmod:block/sapphire_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "tutorialmod:block/sapphire_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "tutorialmod:block/sapphire_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "tutorialmod:block/sapphire_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "tutorialmod:block/sapphire_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "tutorialmod:block/sapphire_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "tutorialmod:block/sapphire_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "tutorialmod:block/sapphire_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "tutorialmod:block/sapphire_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "tutorialmod:block/sapphire_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "tutorialmod:block/sapphire_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "tutorialmod:block/sapphire_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "tutorialmod:block/sapphire_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/sapphire_fence.json b/src/main/resources/assets/tutorialmod/blockstates/sapphire_fence.json new file mode 100644 index 0000000..8579044 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/sapphire_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "tutorialmod:block/sapphire_fence_post" + } + }, + { + "apply": { + "model": "tutorialmod:block/sapphire_fence_side", + "uvlock": true + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "tutorialmod:block/sapphire_fence_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "tutorialmod:block/sapphire_fence_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "tutorialmod:block/sapphire_fence_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/sapphire_fence_gate.json b/src/main/resources/assets/tutorialmod/blockstates/sapphire_fence_gate.json new file mode 100644 index 0000000..f7cfc04 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/sapphire_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "model": "tutorialmod:block/sapphire_fence_gate", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=false,open=true": { + "model": "tutorialmod:block/sapphire_fence_gate_open", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=false": { + "model": "tutorialmod:block/sapphire_fence_gate_wall", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=true": { + "model": "tutorialmod:block/sapphire_fence_gate_wall_open", + "uvlock": true, + "y": 270 + }, + "facing=north,in_wall=false,open=false": { + "model": "tutorialmod:block/sapphire_fence_gate", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=false,open=true": { + "model": "tutorialmod:block/sapphire_fence_gate_open", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=false": { + "model": "tutorialmod:block/sapphire_fence_gate_wall", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=true": { + "model": "tutorialmod:block/sapphire_fence_gate_wall_open", + "uvlock": true, + "y": 180 + }, + "facing=south,in_wall=false,open=false": { + "model": "tutorialmod:block/sapphire_fence_gate", + "uvlock": true + }, + "facing=south,in_wall=false,open=true": { + "model": "tutorialmod:block/sapphire_fence_gate_open", + "uvlock": true + }, + "facing=south,in_wall=true,open=false": { + "model": "tutorialmod:block/sapphire_fence_gate_wall", + "uvlock": true + }, + "facing=south,in_wall=true,open=true": { + "model": "tutorialmod:block/sapphire_fence_gate_wall_open", + "uvlock": true + }, + "facing=west,in_wall=false,open=false": { + "model": "tutorialmod:block/sapphire_fence_gate", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=false,open=true": { + "model": "tutorialmod:block/sapphire_fence_gate_open", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=false": { + "model": "tutorialmod:block/sapphire_fence_gate_wall", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=true": { + "model": "tutorialmod:block/sapphire_fence_gate_wall_open", + "uvlock": true, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/sapphire_ore.json b/src/main/resources/assets/tutorialmod/blockstates/sapphire_ore.json new file mode 100644 index 0000000..89d1ea8 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/sapphire_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/sapphire_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/sapphire_pressure_plate.json b/src/main/resources/assets/tutorialmod/blockstates/sapphire_pressure_plate.json new file mode 100644 index 0000000..68fbda8 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/sapphire_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "tutorialmod:block/sapphire_pressure_plate" + }, + "powered=true": { + "model": "tutorialmod:block/sapphire_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/sapphire_slab.json b/src/main/resources/assets/tutorialmod/blockstates/sapphire_slab.json new file mode 100644 index 0000000..adc9125 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/sapphire_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "tutorialmod:block/sapphire_slab" + }, + "type=double": { + "model": "tutorialmod:block/sapphire_block" + }, + "type=top": { + "model": "tutorialmod:block/sapphire_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/sapphire_stairs.json b/src/main/resources/assets/tutorialmod/blockstates/sapphire_stairs.json new file mode 100644 index 0000000..e9a6561 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/sapphire_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "tutorialmod:block/sapphire_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "tutorialmod:block/sapphire_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "tutorialmod:block/sapphire_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "tutorialmod:block/sapphire_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "tutorialmod:block/sapphire_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "tutorialmod:block/sapphire_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "tutorialmod:block/sapphire_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "tutorialmod:block/sapphire_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "tutorialmod:block/sapphire_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "tutorialmod:block/sapphire_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "tutorialmod:block/sapphire_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "tutorialmod:block/sapphire_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "tutorialmod:block/sapphire_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "tutorialmod:block/sapphire_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "tutorialmod:block/sapphire_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "tutorialmod:block/sapphire_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "tutorialmod:block/sapphire_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "tutorialmod:block/sapphire_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "tutorialmod:block/sapphire_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "tutorialmod:block/sapphire_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "tutorialmod:block/sapphire_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "tutorialmod:block/sapphire_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "tutorialmod:block/sapphire_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "tutorialmod:block/sapphire_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "tutorialmod:block/sapphire_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "tutorialmod:block/sapphire_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "tutorialmod:block/sapphire_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "tutorialmod:block/sapphire_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "tutorialmod:block/sapphire_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "tutorialmod:block/sapphire_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "tutorialmod:block/sapphire_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "tutorialmod:block/sapphire_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "tutorialmod:block/sapphire_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "tutorialmod:block/sapphire_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "tutorialmod:block/sapphire_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "tutorialmod:block/sapphire_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "tutorialmod:block/sapphire_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "tutorialmod:block/sapphire_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "tutorialmod:block/sapphire_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "tutorialmod:block/sapphire_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/sapphire_trapdoor.json b/src/main/resources/assets/tutorialmod/blockstates/sapphire_trapdoor.json new file mode 100644 index 0000000..1003ace --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/sapphire_trapdoor.json @@ -0,0 +1,68 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "tutorialmod:block/sapphire_trapdoor_bottom", + "y": 90 + }, + "facing=east,half=bottom,open=true": { + "model": "tutorialmod:block/sapphire_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "tutorialmod:block/sapphire_trapdoor_top", + "y": 90 + }, + "facing=east,half=top,open=true": { + "model": "tutorialmod:block/sapphire_trapdoor_open", + "x": 180, + "y": 270 + }, + "facing=north,half=bottom,open=false": { + "model": "tutorialmod:block/sapphire_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "tutorialmod:block/sapphire_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "tutorialmod:block/sapphire_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "tutorialmod:block/sapphire_trapdoor_open", + "x": 180, + "y": 180 + }, + "facing=south,half=bottom,open=false": { + "model": "tutorialmod:block/sapphire_trapdoor_bottom", + "y": 180 + }, + "facing=south,half=bottom,open=true": { + "model": "tutorialmod:block/sapphire_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "tutorialmod:block/sapphire_trapdoor_top", + "y": 180 + }, + "facing=south,half=top,open=true": { + "model": "tutorialmod:block/sapphire_trapdoor_open", + "x": 180 + }, + "facing=west,half=bottom,open=false": { + "model": "tutorialmod:block/sapphire_trapdoor_bottom", + "y": 270 + }, + "facing=west,half=bottom,open=true": { + "model": "tutorialmod:block/sapphire_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "tutorialmod:block/sapphire_trapdoor_top", + "y": 270 + }, + "facing=west,half=top,open=true": { + "model": "tutorialmod:block/sapphire_trapdoor_open", + "x": 180, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/sapphire_wall.json b/src/main/resources/assets/tutorialmod/blockstates/sapphire_wall.json new file mode 100644 index 0000000..a43aa77 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/sapphire_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "tutorialmod:block/sapphire_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "tutorialmod:block/sapphire_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "tutorialmod:block/sapphire_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "tutorialmod:block/sapphire_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "tutorialmod:block/sapphire_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "tutorialmod:block/sapphire_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "tutorialmod:block/sapphire_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "tutorialmod:block/sapphire_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "tutorialmod:block/sapphire_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/sound_block.json b/src/main/resources/assets/tutorialmod/blockstates/sound_block.json new file mode 100644 index 0000000..4eb82d5 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/sound_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/sound_block" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/strawberry_crop.json b/src/main/resources/assets/tutorialmod/blockstates/strawberry_crop.json new file mode 100644 index 0000000..947e187 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/strawberry_crop.json @@ -0,0 +1,22 @@ +{ + "variants": { + "age=0": { + "model": "tutorialmod:block/strawberry_stage0" + }, + "age=1": { + "model": "tutorialmod:block/strawberry_stage1" + }, + "age=2": { + "model": "tutorialmod:block/strawberry_stage2" + }, + "age=3": { + "model": "tutorialmod:block/strawberry_stage3" + }, + "age=4": { + "model": "tutorialmod:block/strawberry_stage4" + }, + "age=5": { + "model": "tutorialmod:block/strawberry_stage5" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/stripped_pine_log.json b/src/main/resources/assets/tutorialmod/blockstates/stripped_pine_log.json new file mode 100644 index 0000000..d9071e0 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/stripped_pine_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "tutorialmod:block/stripped_pine_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "tutorialmod:block/stripped_pine_log" + }, + "axis=z": { + "model": "tutorialmod:block/stripped_pine_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/blockstates/stripped_pine_wood.json b/src/main/resources/assets/tutorialmod/blockstates/stripped_pine_wood.json new file mode 100644 index 0000000..d331346 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/stripped_pine_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "tutorialmod:block/stripped_pine_wood_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "tutorialmod:block/stripped_pine_wood" + }, + "axis=z": { + "model": "tutorialmod:block/stripped_pine_wood_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/catmint.json b/src/main/resources/assets/tutorialmod/models/block/catmint.json new file mode 100644 index 0000000..01e71f5 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/catmint.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cross", + "render_type": "minecraft:cutout", + "textures": { + "cross": "tutorialmod:block/catmint" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/corn_stage_0.json b/src/main/resources/assets/tutorialmod/models/block/corn_stage_0.json new file mode 100644 index 0000000..1ab237e --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/corn_stage_0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "render_type": "minecraft:cutout", + "textures": { + "crop": "tutorialmod:block/corn_stage_0" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/corn_stage_1.json b/src/main/resources/assets/tutorialmod/models/block/corn_stage_1.json new file mode 100644 index 0000000..6e2eb26 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/corn_stage_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "render_type": "minecraft:cutout", + "textures": { + "crop": "tutorialmod:block/corn_stage_1" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/corn_stage_2.json b/src/main/resources/assets/tutorialmod/models/block/corn_stage_2.json new file mode 100644 index 0000000..a0450e8 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/corn_stage_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "render_type": "minecraft:cutout", + "textures": { + "crop": "tutorialmod:block/corn_stage_2" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/corn_stage_3.json b/src/main/resources/assets/tutorialmod/models/block/corn_stage_3.json new file mode 100644 index 0000000..5ca3809 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/corn_stage_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "render_type": "minecraft:cutout", + "textures": { + "crop": "tutorialmod:block/corn_stage_3" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/corn_stage_4.json b/src/main/resources/assets/tutorialmod/models/block/corn_stage_4.json new file mode 100644 index 0000000..09ed456 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/corn_stage_4.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "render_type": "minecraft:cutout", + "textures": { + "crop": "tutorialmod:block/corn_stage_4" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/corn_stage_5.json b/src/main/resources/assets/tutorialmod/models/block/corn_stage_5.json new file mode 100644 index 0000000..af796b9 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/corn_stage_5.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "render_type": "minecraft:cutout", + "textures": { + "crop": "tutorialmod:block/corn_stage_5" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/corn_stage_6.json b/src/main/resources/assets/tutorialmod/models/block/corn_stage_6.json new file mode 100644 index 0000000..b3717b5 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/corn_stage_6.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "render_type": "minecraft:cutout", + "textures": { + "crop": "tutorialmod:block/corn_stage_6" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/corn_stage_7.json b/src/main/resources/assets/tutorialmod/models/block/corn_stage_7.json new file mode 100644 index 0000000..e9760a3 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/corn_stage_7.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "render_type": "minecraft:cutout", + "textures": { + "crop": "tutorialmod:block/corn_stage_7" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/corn_stage_8.json b/src/main/resources/assets/tutorialmod/models/block/corn_stage_8.json new file mode 100644 index 0000000..f27c0ad --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/corn_stage_8.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "render_type": "minecraft:cutout", + "textures": { + "crop": "tutorialmod:block/corn_stage_8" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/deepslate_sapphire_ore.json b/src/main/resources/assets/tutorialmod/models/block/deepslate_sapphire_ore.json new file mode 100644 index 0000000..ff7cb75 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/deepslate_sapphire_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tutorialmod:block/deepslate_sapphire_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/end_stone_sapphire_ore.json b/src/main/resources/assets/tutorialmod/models/block/end_stone_sapphire_ore.json new file mode 100644 index 0000000..c40d85a --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/end_stone_sapphire_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tutorialmod:block/end_stone_sapphire_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/mod_portal.json b/src/main/resources/assets/tutorialmod/models/block/mod_portal.json new file mode 100644 index 0000000..fd6c37f --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/mod_portal.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tutorialmod:block/mod_portal" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/nether_sapphire_ore.json b/src/main/resources/assets/tutorialmod/models/block/nether_sapphire_ore.json new file mode 100644 index 0000000..61a6094 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/nether_sapphire_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tutorialmod:block/nether_sapphire_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/pine_hanging_sign.json b/src/main/resources/assets/tutorialmod/models/block/pine_hanging_sign.json new file mode 100644 index 0000000..8f9d591 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/pine_hanging_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "tutorialmod:block/pine_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/pine_leaves.json b/src/main/resources/assets/tutorialmod/models/block/pine_leaves.json new file mode 100644 index 0000000..1fde300 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/pine_leaves.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/leaves", + "render_type": "minecraft:cutout", + "textures": { + "all": "tutorialmod:block/pine_leaves" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/pine_log.json b/src/main/resources/assets/tutorialmod/models/block/pine_log.json new file mode 100644 index 0000000..403697d --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/pine_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "tutorialmod:block/pine_log_top", + "side": "tutorialmod:block/pine_log" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/pine_log_horizontal.json b/src/main/resources/assets/tutorialmod/models/block/pine_log_horizontal.json new file mode 100644 index 0000000..b246b02 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/pine_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "tutorialmod:block/pine_log_top", + "side": "tutorialmod:block/pine_log" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/pine_planks.json b/src/main/resources/assets/tutorialmod/models/block/pine_planks.json new file mode 100644 index 0000000..9adcc51 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/pine_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tutorialmod:block/pine_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/pine_sapling.json b/src/main/resources/assets/tutorialmod/models/block/pine_sapling.json new file mode 100644 index 0000000..0a43adb --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/pine_sapling.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cross", + "render_type": "minecraft:cutout", + "textures": { + "cross": "tutorialmod:block/pine_sapling" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/pine_sign.json b/src/main/resources/assets/tutorialmod/models/block/pine_sign.json new file mode 100644 index 0000000..8f9d591 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/pine_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "tutorialmod:block/pine_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/pine_wood.json b/src/main/resources/assets/tutorialmod/models/block/pine_wood.json new file mode 100644 index 0000000..7f79019 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/pine_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "tutorialmod:block/pine_log", + "side": "tutorialmod:block/pine_log" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/pine_wood_horizontal.json b/src/main/resources/assets/tutorialmod/models/block/pine_wood_horizontal.json new file mode 100644 index 0000000..23a83cf --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/pine_wood_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "tutorialmod:block/pine_log", + "side": "tutorialmod:block/pine_log" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/potted_catmint.json b/src/main/resources/assets/tutorialmod/models/block/potted_catmint.json new file mode 100644 index 0000000..416473a --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/potted_catmint.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "render_type": "minecraft:cutout", + "textures": { + "plant": "tutorialmod:block/catmint" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/raw_sapphire_block.json b/src/main/resources/assets/tutorialmod/models/block/raw_sapphire_block.json new file mode 100644 index 0000000..986e636 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/raw_sapphire_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tutorialmod:block/raw_sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_block.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_block.json new file mode 100644 index 0000000..b0f290d --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_button.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_button.json new file mode 100644 index 0000000..ba5fbf9 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_button_pressed.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_button_pressed.json new file mode 100644 index 0000000..8a9c42d --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_door_bottom_left.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_door_bottom_left.json new file mode 100644 index 0000000..b8c51cb --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_door_bottom_left.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "render_type": "minecraft:cutout", + "textures": { + "bottom": "tutorialmod:block/sapphire_door_bottom", + "top": "tutorialmod:block/sapphire_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_door_bottom_left_open.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_door_bottom_left_open.json new file mode 100644 index 0000000..ea13d7c --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_door_bottom_left_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "render_type": "minecraft:cutout", + "textures": { + "bottom": "tutorialmod:block/sapphire_door_bottom", + "top": "tutorialmod:block/sapphire_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_door_bottom_right.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_door_bottom_right.json new file mode 100644 index 0000000..9407dce --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_door_bottom_right.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "render_type": "minecraft:cutout", + "textures": { + "bottom": "tutorialmod:block/sapphire_door_bottom", + "top": "tutorialmod:block/sapphire_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_door_bottom_right_open.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_door_bottom_right_open.json new file mode 100644 index 0000000..6e52fc5 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_door_bottom_right_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "render_type": "minecraft:cutout", + "textures": { + "bottom": "tutorialmod:block/sapphire_door_bottom", + "top": "tutorialmod:block/sapphire_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_door_top_left.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_door_top_left.json new file mode 100644 index 0000000..0bc7bf9 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_door_top_left.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/door_top_left", + "render_type": "minecraft:cutout", + "textures": { + "bottom": "tutorialmod:block/sapphire_door_bottom", + "top": "tutorialmod:block/sapphire_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_door_top_left_open.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_door_top_left_open.json new file mode 100644 index 0000000..e405cc9 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_door_top_left_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "render_type": "minecraft:cutout", + "textures": { + "bottom": "tutorialmod:block/sapphire_door_bottom", + "top": "tutorialmod:block/sapphire_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_door_top_right.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_door_top_right.json new file mode 100644 index 0000000..3fa2f0e --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_door_top_right.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/door_top_right", + "render_type": "minecraft:cutout", + "textures": { + "bottom": "tutorialmod:block/sapphire_door_bottom", + "top": "tutorialmod:block/sapphire_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_door_top_right_open.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_door_top_right_open.json new file mode 100644 index 0000000..22aa40e --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_door_top_right_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "render_type": "minecraft:cutout", + "textures": { + "bottom": "tutorialmod:block/sapphire_door_bottom", + "top": "tutorialmod:block/sapphire_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_fence_gate.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_fence_gate.json new file mode 100644 index 0000000..9504bd6 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_fence_gate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate", + "textures": { + "texture": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_fence_gate_open.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_fence_gate_open.json new file mode 100644 index 0000000..3e945ab --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_fence_gate_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_open", + "textures": { + "texture": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_fence_gate_wall.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_fence_gate_wall.json new file mode 100644 index 0000000..5f98c30 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_fence_gate_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall", + "textures": { + "texture": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_fence_gate_wall_open.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_fence_gate_wall_open.json new file mode 100644 index 0000000..062963d --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_fence_gate_wall_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall_open", + "textures": { + "texture": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_fence_post.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_fence_post.json new file mode 100644 index 0000000..98fcd4b --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_fence_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_post", + "textures": { + "texture": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_fence_side.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_fence_side.json new file mode 100644 index 0000000..7dac80c --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_fence_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_side", + "textures": { + "texture": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_ore.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_ore.json new file mode 100644 index 0000000..83a7741 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tutorialmod:block/sapphire_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_pressure_plate.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_pressure_plate.json new file mode 100644 index 0000000..7a98e99 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_pressure_plate_down.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_pressure_plate_down.json new file mode 100644 index 0000000..76918b9 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_slab.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_slab.json new file mode 100644 index 0000000..8a4e14c --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "tutorialmod:block/sapphire_block", + "side": "tutorialmod:block/sapphire_block", + "top": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_slab_top.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_slab_top.json new file mode 100644 index 0000000..50e18fb --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "tutorialmod:block/sapphire_block", + "side": "tutorialmod:block/sapphire_block", + "top": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_stairs.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_stairs.json new file mode 100644 index 0000000..fe7bba9 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "tutorialmod:block/sapphire_block", + "side": "tutorialmod:block/sapphire_block", + "top": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_stairs_inner.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_stairs_inner.json new file mode 100644 index 0000000..dbb4094 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "tutorialmod:block/sapphire_block", + "side": "tutorialmod:block/sapphire_block", + "top": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_stairs_outer.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_stairs_outer.json new file mode 100644 index 0000000..9e0d36b --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "tutorialmod:block/sapphire_block", + "side": "tutorialmod:block/sapphire_block", + "top": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_trapdoor_bottom.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_trapdoor_bottom.json new file mode 100644 index 0000000..2a95296 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_trapdoor_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_bottom", + "render_type": "minecraft:cutout", + "textures": { + "texture": "tutorialmod:block/sapphire_trapdoor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_trapdoor_open.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_trapdoor_open.json new file mode 100644 index 0000000..e38640e --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_trapdoor_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_open", + "render_type": "minecraft:cutout", + "textures": { + "texture": "tutorialmod:block/sapphire_trapdoor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_trapdoor_top.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_trapdoor_top.json new file mode 100644 index 0000000..bd289a8 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_trapdoor_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_top", + "render_type": "minecraft:cutout", + "textures": { + "texture": "tutorialmod:block/sapphire_trapdoor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_wall_post.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_wall_post.json new file mode 100644 index 0000000..ac2d6af --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_wall_side.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_wall_side.json new file mode 100644 index 0000000..7acb246 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_wall_side_tall.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_wall_side_tall.json new file mode 100644 index 0000000..518ca58 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/sound_block.json b/src/main/resources/assets/tutorialmod/models/block/sound_block.json new file mode 100644 index 0000000..770381f --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sound_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tutorialmod:block/sound_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/strawberry_stage0.json b/src/main/resources/assets/tutorialmod/models/block/strawberry_stage0.json new file mode 100644 index 0000000..7098c5f --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/strawberry_stage0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "render_type": "minecraft:cutout", + "textures": { + "crop": "tutorialmod:block/strawberry_stage0" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/strawberry_stage1.json b/src/main/resources/assets/tutorialmod/models/block/strawberry_stage1.json new file mode 100644 index 0000000..66cf996 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/strawberry_stage1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "render_type": "minecraft:cutout", + "textures": { + "crop": "tutorialmod:block/strawberry_stage1" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/strawberry_stage2.json b/src/main/resources/assets/tutorialmod/models/block/strawberry_stage2.json new file mode 100644 index 0000000..371c1de --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/strawberry_stage2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "render_type": "minecraft:cutout", + "textures": { + "crop": "tutorialmod:block/strawberry_stage2" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/strawberry_stage3.json b/src/main/resources/assets/tutorialmod/models/block/strawberry_stage3.json new file mode 100644 index 0000000..26cc8f7 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/strawberry_stage3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "render_type": "minecraft:cutout", + "textures": { + "crop": "tutorialmod:block/strawberry_stage3" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/strawberry_stage4.json b/src/main/resources/assets/tutorialmod/models/block/strawberry_stage4.json new file mode 100644 index 0000000..356cd31 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/strawberry_stage4.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "render_type": "minecraft:cutout", + "textures": { + "crop": "tutorialmod:block/strawberry_stage4" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/strawberry_stage5.json b/src/main/resources/assets/tutorialmod/models/block/strawberry_stage5.json new file mode 100644 index 0000000..4e49d21 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/strawberry_stage5.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "render_type": "minecraft:cutout", + "textures": { + "crop": "tutorialmod:block/strawberry_stage5" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/stripped_pine_log.json b/src/main/resources/assets/tutorialmod/models/block/stripped_pine_log.json new file mode 100644 index 0000000..a3c162d --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/stripped_pine_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "tutorialmod:block/stripped_pine_log_top", + "side": "tutorialmod:block/stripped_pine_log" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/stripped_pine_log_horizontal.json b/src/main/resources/assets/tutorialmod/models/block/stripped_pine_log_horizontal.json new file mode 100644 index 0000000..7c1e555 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/stripped_pine_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "tutorialmod:block/stripped_pine_log_top", + "side": "tutorialmod:block/stripped_pine_log" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/stripped_pine_wood.json b/src/main/resources/assets/tutorialmod/models/block/stripped_pine_wood.json new file mode 100644 index 0000000..9ddd981 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/stripped_pine_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "tutorialmod:block/stripped_pine_log", + "side": "tutorialmod:block/stripped_pine_log" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/block/stripped_pine_wood_horizontal.json b/src/main/resources/assets/tutorialmod/models/block/stripped_pine_wood_horizontal.json new file mode 100644 index 0000000..39466a1 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/stripped_pine_wood_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "tutorialmod:block/stripped_pine_log", + "side": "tutorialmod:block/stripped_pine_log" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/bar_brawl_music_disc.json b/src/main/resources/assets/tutorialmod/models/item/bar_brawl_music_disc.json new file mode 100644 index 0000000..8cac548 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/bar_brawl_music_disc.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/bar_brawl_music_disc" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/catmint.json b/src/main/resources/assets/tutorialmod/models/item/catmint.json new file mode 100644 index 0000000..7f4dcbc --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/catmint.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:block/catmint" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/corn.json b/src/main/resources/assets/tutorialmod/models/item/corn.json new file mode 100644 index 0000000..cafd4bb --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/corn.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/corn" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/corn_seeds.json b/src/main/resources/assets/tutorialmod/models/item/corn_seeds.json new file mode 100644 index 0000000..7bb8694 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/corn_seeds.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/corn_seeds" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/deepslate_sapphire_ore.json b/src/main/resources/assets/tutorialmod/models/item/deepslate_sapphire_ore.json new file mode 100644 index 0000000..80f764c --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/deepslate_sapphire_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/deepslate_sapphire_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/dice.json b/src/main/resources/assets/tutorialmod/models/item/dice.json new file mode 100644 index 0000000..56f42fe --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/dice.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/dice" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/end_stone_sapphire_ore.json b/src/main/resources/assets/tutorialmod/models/item/end_stone_sapphire_ore.json new file mode 100644 index 0000000..e5c3997 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/end_stone_sapphire_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/end_stone_sapphire_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/gem_polishing_station.json b/src/main/resources/assets/tutorialmod/models/item/gem_polishing_station.json new file mode 100644 index 0000000..6d025b3 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/gem_polishing_station.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/gem_polishing_station" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/metal_detector.json b/src/main/resources/assets/tutorialmod/models/item/metal_detector.json new file mode 100644 index 0000000..e52ec34 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/metal_detector.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/metal_detector" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/mod_portal.json b/src/main/resources/assets/tutorialmod/models/item/mod_portal.json new file mode 100644 index 0000000..afd204b --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/mod_portal.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/mod_portal" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/nether_sapphire_ore.json b/src/main/resources/assets/tutorialmod/models/item/nether_sapphire_ore.json new file mode 100644 index 0000000..f2f3f82 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/nether_sapphire_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/nether_sapphire_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/pine_boat.json b/src/main/resources/assets/tutorialmod/models/item/pine_boat.json new file mode 100644 index 0000000..051d488 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/pine_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/pine_boat" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/pine_chest_boat.json b/src/main/resources/assets/tutorialmod/models/item/pine_chest_boat.json new file mode 100644 index 0000000..05eb838 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/pine_chest_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/pine_chest_boat" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/pine_cone.json b/src/main/resources/assets/tutorialmod/models/item/pine_cone.json new file mode 100644 index 0000000..3b6fbb3 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/pine_cone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/pine_cone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/pine_hanging_sign.json b/src/main/resources/assets/tutorialmod/models/item/pine_hanging_sign.json new file mode 100644 index 0000000..bd1007b --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/pine_hanging_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/pine_hanging_sign" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/pine_leaves.json b/src/main/resources/assets/tutorialmod/models/item/pine_leaves.json new file mode 100644 index 0000000..8011c72 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/pine_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/pine_leaves" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/pine_log.json b/src/main/resources/assets/tutorialmod/models/item/pine_log.json new file mode 100644 index 0000000..54316fd --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/pine_log.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/pine_log" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/pine_planks.json b/src/main/resources/assets/tutorialmod/models/item/pine_planks.json new file mode 100644 index 0000000..c276b40 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/pine_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/pine_planks" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/pine_sapling.json b/src/main/resources/assets/tutorialmod/models/item/pine_sapling.json new file mode 100644 index 0000000..12cfe3c --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/pine_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:block/pine_sapling" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/pine_sign.json b/src/main/resources/assets/tutorialmod/models/item/pine_sign.json new file mode 100644 index 0000000..6409bb0 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/pine_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/pine_sign" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/pine_wood.json b/src/main/resources/assets/tutorialmod/models/item/pine_wood.json new file mode 100644 index 0000000..ab17333 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/pine_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/pine_wood" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/potted_catmint.json b/src/main/resources/assets/tutorialmod/models/item/potted_catmint.json new file mode 100644 index 0000000..35be4db --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/potted_catmint.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/potted_catmint" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/raw_sapphire.json b/src/main/resources/assets/tutorialmod/models/item/raw_sapphire.json new file mode 100644 index 0000000..4f66a8f --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/raw_sapphire.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/raw_sapphire" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/raw_sapphire_block.json b/src/main/resources/assets/tutorialmod/models/item/raw_sapphire_block.json new file mode 100644 index 0000000..d7da7fe --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/raw_sapphire_block.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/raw_sapphire_block" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/rhino_spawn_egg.json b/src/main/resources/assets/tutorialmod/models/item/rhino_spawn_egg.json new file mode 100644 index 0000000..d1aaa9d --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/rhino_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire.json b/src/main/resources/assets/tutorialmod/models/item/sapphire.json new file mode 100644 index 0000000..e702288 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_axe.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_axe.json new file mode 100644 index 0000000..090e0fe --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_axe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "tutorialmod:item/sapphire_axe" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_block.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_block.json new file mode 100644 index 0000000..4a0f3ac --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_block.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/sapphire_block" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_boots.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots.json new file mode 100644 index 0000000..768da5c --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "tutorialmod:item/sapphire_boots_quartz_trim", + "predicate": { + "minecraft:trim_type": 0.1 + } + }, + { + "model": "tutorialmod:item/sapphire_boots_iron_trim", + "predicate": { + "minecraft:trim_type": 0.2 + } + }, + { + "model": "tutorialmod:item/sapphire_boots_netherite_trim", + "predicate": { + "minecraft:trim_type": 0.3 + } + }, + { + "model": "tutorialmod:item/sapphire_boots_redstone_trim", + "predicate": { + "minecraft:trim_type": 0.4 + } + }, + { + "model": "tutorialmod:item/sapphire_boots_copper_trim", + "predicate": { + "minecraft:trim_type": 0.5 + } + }, + { + "model": "tutorialmod:item/sapphire_boots_gold_trim", + "predicate": { + "minecraft:trim_type": 0.6 + } + }, + { + "model": "tutorialmod:item/sapphire_boots_emerald_trim", + "predicate": { + "minecraft:trim_type": 0.7 + } + }, + { + "model": "tutorialmod:item/sapphire_boots_diamond_trim", + "predicate": { + "minecraft:trim_type": 0.8 + } + }, + { + "model": "tutorialmod:item/sapphire_boots_lapis_trim", + "predicate": { + "minecraft:trim_type": 0.9 + } + }, + { + "model": "tutorialmod:item/sapphire_boots_amethyst_trim", + "predicate": { + "minecraft:trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "tutorialmod:item/sapphire_boots" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_amethyst_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_amethyst_trim.json new file mode 100644 index 0000000..133956a --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_boots", + "layer1": "minecraft:trims/items/boots_trim_amethyst" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_copper_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_copper_trim.json new file mode 100644 index 0000000..5b1b723 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_boots", + "layer1": "minecraft:trims/items/boots_trim_copper" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_diamond_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_diamond_trim.json new file mode 100644 index 0000000..b202b35 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_boots", + "layer1": "minecraft:trims/items/boots_trim_diamond" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_emerald_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_emerald_trim.json new file mode 100644 index 0000000..60bf73b --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_boots", + "layer1": "minecraft:trims/items/boots_trim_emerald" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_gold_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_gold_trim.json new file mode 100644 index 0000000..3d59a8f --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_boots", + "layer1": "minecraft:trims/items/boots_trim_gold" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_iron_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_iron_trim.json new file mode 100644 index 0000000..8a37deb --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_boots", + "layer1": "minecraft:trims/items/boots_trim_iron" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_lapis_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_lapis_trim.json new file mode 100644 index 0000000..7e2b36a --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_boots", + "layer1": "minecraft:trims/items/boots_trim_lapis" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_netherite_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_netherite_trim.json new file mode 100644 index 0000000..5a0ccdb --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_boots", + "layer1": "minecraft:trims/items/boots_trim_netherite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_quartz_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_quartz_trim.json new file mode 100644 index 0000000..dfea1a6 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_boots", + "layer1": "minecraft:trims/items/boots_trim_quartz" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_redstone_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_redstone_trim.json new file mode 100644 index 0000000..033092a --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_boots_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_boots", + "layer1": "minecraft:trims/items/boots_trim_redstone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_button.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_button.json new file mode 100644 index 0000000..0566d92 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate.json new file mode 100644 index 0000000..c5e8f6a --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "tutorialmod:item/sapphire_chestplate_quartz_trim", + "predicate": { + "minecraft:trim_type": 0.1 + } + }, + { + "model": "tutorialmod:item/sapphire_chestplate_iron_trim", + "predicate": { + "minecraft:trim_type": 0.2 + } + }, + { + "model": "tutorialmod:item/sapphire_chestplate_netherite_trim", + "predicate": { + "minecraft:trim_type": 0.3 + } + }, + { + "model": "tutorialmod:item/sapphire_chestplate_redstone_trim", + "predicate": { + "minecraft:trim_type": 0.4 + } + }, + { + "model": "tutorialmod:item/sapphire_chestplate_copper_trim", + "predicate": { + "minecraft:trim_type": 0.5 + } + }, + { + "model": "tutorialmod:item/sapphire_chestplate_gold_trim", + "predicate": { + "minecraft:trim_type": 0.6 + } + }, + { + "model": "tutorialmod:item/sapphire_chestplate_emerald_trim", + "predicate": { + "minecraft:trim_type": 0.7 + } + }, + { + "model": "tutorialmod:item/sapphire_chestplate_diamond_trim", + "predicate": { + "minecraft:trim_type": 0.8 + } + }, + { + "model": "tutorialmod:item/sapphire_chestplate_lapis_trim", + "predicate": { + "minecraft:trim_type": 0.9 + } + }, + { + "model": "tutorialmod:item/sapphire_chestplate_amethyst_trim", + "predicate": { + "minecraft:trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "tutorialmod:item/sapphire_chestplate" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_amethyst_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_amethyst_trim.json new file mode 100644 index 0000000..e24b65e --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_amethyst" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_copper_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_copper_trim.json new file mode 100644 index 0000000..bf94ef8 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_copper" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_diamond_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_diamond_trim.json new file mode 100644 index 0000000..acd92b9 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_diamond" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_emerald_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_emerald_trim.json new file mode 100644 index 0000000..b90806a --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_emerald" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_gold_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_gold_trim.json new file mode 100644 index 0000000..9bd8f83 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_gold" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_iron_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_iron_trim.json new file mode 100644 index 0000000..317fb1c --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_iron" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_lapis_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_lapis_trim.json new file mode 100644 index 0000000..5165051 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_lapis" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_netherite_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_netherite_trim.json new file mode 100644 index 0000000..f7486e9 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_netherite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_quartz_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_quartz_trim.json new file mode 100644 index 0000000..b627e32 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_quartz" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_redstone_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_redstone_trim.json new file mode 100644 index 0000000..91fc56a --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_chestplate_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_redstone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_door.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_door.json new file mode 100644 index 0000000..f3b889c --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_door" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_fence.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_fence.json new file mode 100644 index 0000000..97ec5de --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_fence.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_inventory", + "textures": { + "texture": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_fence_gate.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_fence_gate.json new file mode 100644 index 0000000..a7d6ab5 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/sapphire_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet.json new file mode 100644 index 0000000..6110a80 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "tutorialmod:item/sapphire_helmet_quartz_trim", + "predicate": { + "minecraft:trim_type": 0.1 + } + }, + { + "model": "tutorialmod:item/sapphire_helmet_iron_trim", + "predicate": { + "minecraft:trim_type": 0.2 + } + }, + { + "model": "tutorialmod:item/sapphire_helmet_netherite_trim", + "predicate": { + "minecraft:trim_type": 0.3 + } + }, + { + "model": "tutorialmod:item/sapphire_helmet_redstone_trim", + "predicate": { + "minecraft:trim_type": 0.4 + } + }, + { + "model": "tutorialmod:item/sapphire_helmet_copper_trim", + "predicate": { + "minecraft:trim_type": 0.5 + } + }, + { + "model": "tutorialmod:item/sapphire_helmet_gold_trim", + "predicate": { + "minecraft:trim_type": 0.6 + } + }, + { + "model": "tutorialmod:item/sapphire_helmet_emerald_trim", + "predicate": { + "minecraft:trim_type": 0.7 + } + }, + { + "model": "tutorialmod:item/sapphire_helmet_diamond_trim", + "predicate": { + "minecraft:trim_type": 0.8 + } + }, + { + "model": "tutorialmod:item/sapphire_helmet_lapis_trim", + "predicate": { + "minecraft:trim_type": 0.9 + } + }, + { + "model": "tutorialmod:item/sapphire_helmet_amethyst_trim", + "predicate": { + "minecraft:trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "tutorialmod:item/sapphire_helmet" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_amethyst_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_amethyst_trim.json new file mode 100644 index 0000000..cf515c3 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_helmet", + "layer1": "minecraft:trims/items/helmet_trim_amethyst" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_copper_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_copper_trim.json new file mode 100644 index 0000000..3db0f47 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_helmet", + "layer1": "minecraft:trims/items/helmet_trim_copper" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_diamond_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_diamond_trim.json new file mode 100644 index 0000000..adc2e76 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_helmet", + "layer1": "minecraft:trims/items/helmet_trim_diamond" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_emerald_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_emerald_trim.json new file mode 100644 index 0000000..8188332 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_helmet", + "layer1": "minecraft:trims/items/helmet_trim_emerald" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_gold_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_gold_trim.json new file mode 100644 index 0000000..633441f --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_helmet", + "layer1": "minecraft:trims/items/helmet_trim_gold" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_iron_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_iron_trim.json new file mode 100644 index 0000000..171d151 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_helmet", + "layer1": "minecraft:trims/items/helmet_trim_iron" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_lapis_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_lapis_trim.json new file mode 100644 index 0000000..edae2d3 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_helmet", + "layer1": "minecraft:trims/items/helmet_trim_lapis" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_netherite_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_netherite_trim.json new file mode 100644 index 0000000..aaccae6 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_helmet", + "layer1": "minecraft:trims/items/helmet_trim_netherite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_quartz_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_quartz_trim.json new file mode 100644 index 0000000..fb459b2 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_helmet", + "layer1": "minecraft:trims/items/helmet_trim_quartz" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_redstone_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_redstone_trim.json new file mode 100644 index 0000000..c647659 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_helmet_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_helmet", + "layer1": "minecraft:trims/items/helmet_trim_redstone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_hoe.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_hoe.json new file mode 100644 index 0000000..fd3d0ae --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_hoe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "tutorialmod:item/sapphire_hoe" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings.json new file mode 100644 index 0000000..da2445d --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "tutorialmod:item/sapphire_leggings_quartz_trim", + "predicate": { + "minecraft:trim_type": 0.1 + } + }, + { + "model": "tutorialmod:item/sapphire_leggings_iron_trim", + "predicate": { + "minecraft:trim_type": 0.2 + } + }, + { + "model": "tutorialmod:item/sapphire_leggings_netherite_trim", + "predicate": { + "minecraft:trim_type": 0.3 + } + }, + { + "model": "tutorialmod:item/sapphire_leggings_redstone_trim", + "predicate": { + "minecraft:trim_type": 0.4 + } + }, + { + "model": "tutorialmod:item/sapphire_leggings_copper_trim", + "predicate": { + "minecraft:trim_type": 0.5 + } + }, + { + "model": "tutorialmod:item/sapphire_leggings_gold_trim", + "predicate": { + "minecraft:trim_type": 0.6 + } + }, + { + "model": "tutorialmod:item/sapphire_leggings_emerald_trim", + "predicate": { + "minecraft:trim_type": 0.7 + } + }, + { + "model": "tutorialmod:item/sapphire_leggings_diamond_trim", + "predicate": { + "minecraft:trim_type": 0.8 + } + }, + { + "model": "tutorialmod:item/sapphire_leggings_lapis_trim", + "predicate": { + "minecraft:trim_type": 0.9 + } + }, + { + "model": "tutorialmod:item/sapphire_leggings_amethyst_trim", + "predicate": { + "minecraft:trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "tutorialmod:item/sapphire_leggings" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_amethyst_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_amethyst_trim.json new file mode 100644 index 0000000..db4c969 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_leggings", + "layer1": "minecraft:trims/items/leggings_trim_amethyst" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_copper_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_copper_trim.json new file mode 100644 index 0000000..d0ed243 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_leggings", + "layer1": "minecraft:trims/items/leggings_trim_copper" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_diamond_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_diamond_trim.json new file mode 100644 index 0000000..a65005c --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_leggings", + "layer1": "minecraft:trims/items/leggings_trim_diamond" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_emerald_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_emerald_trim.json new file mode 100644 index 0000000..433f074 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_leggings", + "layer1": "minecraft:trims/items/leggings_trim_emerald" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_gold_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_gold_trim.json new file mode 100644 index 0000000..c179e92 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_leggings", + "layer1": "minecraft:trims/items/leggings_trim_gold" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_iron_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_iron_trim.json new file mode 100644 index 0000000..017b796 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_leggings", + "layer1": "minecraft:trims/items/leggings_trim_iron" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_lapis_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_lapis_trim.json new file mode 100644 index 0000000..43866cc --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_leggings", + "layer1": "minecraft:trims/items/leggings_trim_lapis" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_netherite_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_netherite_trim.json new file mode 100644 index 0000000..4e5f7ce --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_leggings", + "layer1": "minecraft:trims/items/leggings_trim_netherite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_quartz_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_quartz_trim.json new file mode 100644 index 0000000..e825908 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_leggings", + "layer1": "minecraft:trims/items/leggings_trim_quartz" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_redstone_trim.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_redstone_trim.json new file mode 100644 index 0000000..78e8df9 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_leggings_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire_leggings", + "layer1": "minecraft:trims/items/leggings_trim_redstone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_ore.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_ore.json new file mode 100644 index 0000000..77c041d --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/sapphire_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_pickaxe.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_pickaxe.json new file mode 100644 index 0000000..4dc5cc9 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_pickaxe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "tutorialmod:item/sapphire_pickaxe" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_pressure_plate.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_pressure_plate.json new file mode 100644 index 0000000..5c893e7 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/sapphire_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_shovel.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_shovel.json new file mode 100644 index 0000000..968cef9 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_shovel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "tutorialmod:item/sapphire_shovel" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_slab.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_slab.json new file mode 100644 index 0000000..ecb18c7 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/sapphire_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_stairs.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_stairs.json new file mode 100644 index 0000000..b10eb86 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/sapphire_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_sword.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_sword.json new file mode 100644 index 0000000..f64db4b --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_sword.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "tutorialmod:item/sapphire_sword" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_trapdoor.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_trapdoor.json new file mode 100644 index 0000000..6a524c9 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/sapphire_trapdoor_bottom" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_wall.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_wall.json new file mode 100644 index 0000000..6e1c988 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "tutorialmod:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/sound_block.json b/src/main/resources/assets/tutorialmod/models/item/sound_block.json new file mode 100644 index 0000000..b5aad15 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sound_block.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/sound_block" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/strawberry.json b/src/main/resources/assets/tutorialmod/models/item/strawberry.json new file mode 100644 index 0000000..b689efe --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/strawberry.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/strawberry" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/strawberry_seeds.json b/src/main/resources/assets/tutorialmod/models/item/strawberry_seeds.json new file mode 100644 index 0000000..ff21e16 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/strawberry_seeds.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tutorialmod:item/strawberry_seeds" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/stripped_pine_log.json b/src/main/resources/assets/tutorialmod/models/item/stripped_pine_log.json new file mode 100644 index 0000000..d7abf5f --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/stripped_pine_log.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/stripped_pine_log" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorialmod/models/item/stripped_pine_wood.json b/src/main/resources/assets/tutorialmod/models/item/stripped_pine_wood.json new file mode 100644 index 0000000..8fc6afc --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/stripped_pine_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/stripped_pine_wood" +} \ No newline at end of file diff --git a/src/main/resources/data/forge/loot_modifiers/global_loot_modifiers.json b/src/main/resources/data/forge/loot_modifiers/global_loot_modifiers.json new file mode 100644 index 0000000..ce8ed53 --- /dev/null +++ b/src/main/resources/data/forge/loot_modifiers/global_loot_modifiers.json @@ -0,0 +1,9 @@ +{ + "entries": [ + "tutorialmod:pine_cone_from_grass", + "tutorialmod:pine_cone_from_creeper", + "tutorialmod:metal_detector_from_suspicious_sand", + "tutorialmod:metal_detector_from_jungle_temples" + ], + "replace": false +} \ No newline at end of file diff --git a/src/main/resources/data/forge/tags/blocks/needs_netherite_tool.json b/src/main/resources/data/forge/tags/blocks/needs_netherite_tool.json new file mode 100644 index 0000000..c167c56 --- /dev/null +++ b/src/main/resources/data/forge/tags/blocks/needs_netherite_tool.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tutorialmod:end_stone_sapphire_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/fence_gates.json b/src/main/resources/data/minecraft/tags/blocks/fence_gates.json new file mode 100644 index 0000000..5249912 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/fence_gates.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tutorialmod:sapphire_fence_gate" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/fences.json b/src/main/resources/data/minecraft/tags/blocks/fences.json new file mode 100644 index 0000000..8b3082d --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/fences.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tutorialmod:sapphire_fence" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/logs_that_burn.json b/src/main/resources/data/minecraft/tags/blocks/logs_that_burn.json new file mode 100644 index 0000000..476cd80 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/logs_that_burn.json @@ -0,0 +1,8 @@ +{ + "values": [ + "tutorialmod:pine_log", + "tutorialmod:pine_wood", + "tutorialmod:stripped_pine_log", + "tutorialmod:stripped_pine_wood" + ] +} \ No newline at end of file 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..05735ff --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -0,0 +1,11 @@ +{ + "values": [ + "tutorialmod:sapphire_block", + "tutorialmod:raw_sapphire_block", + "tutorialmod:sapphire_ore", + "tutorialmod:deepslate_sapphire_ore", + "tutorialmod:nether_sapphire_ore", + "tutorialmod:end_stone_sapphire_ore", + "tutorialmod:sound_block" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json b/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json new file mode 100644 index 0000000..b8ebaf1 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tutorialmod:raw_sapphire_block" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json b/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json new file mode 100644 index 0000000..fadde0e --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tutorialmod:sapphire_block" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json b/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json new file mode 100644 index 0000000..e8003f8 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tutorialmod:nether_sapphire_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/planks.json b/src/main/resources/data/minecraft/tags/blocks/planks.json new file mode 100644 index 0000000..37d27db --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/planks.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tutorialmod:pine_planks" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/walls.json b/src/main/resources/data/minecraft/tags/blocks/walls.json new file mode 100644 index 0000000..6a0cc75 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/walls.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tutorialmod:sapphire_wall" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/creeper_drop_music_discs.json b/src/main/resources/data/minecraft/tags/items/creeper_drop_music_discs.json new file mode 100644 index 0000000..91bfcd6 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/creeper_drop_music_discs.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tutorialmod:bar_brawl_music_disc" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/logs_that_burn.json b/src/main/resources/data/minecraft/tags/items/logs_that_burn.json new file mode 100644 index 0000000..476cd80 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/logs_that_burn.json @@ -0,0 +1,8 @@ +{ + "values": [ + "tutorialmod:pine_log", + "tutorialmod:pine_wood", + "tutorialmod:stripped_pine_log", + "tutorialmod:stripped_pine_wood" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/music_discs.json b/src/main/resources/data/minecraft/tags/items/music_discs.json new file mode 100644 index 0000000..91bfcd6 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/music_discs.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tutorialmod:bar_brawl_music_disc" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/planks.json b/src/main/resources/data/minecraft/tags/items/planks.json new file mode 100644 index 0000000..37d27db --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/planks.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tutorialmod:pine_planks" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/trimmable_armor.json b/src/main/resources/data/minecraft/tags/items/trimmable_armor.json new file mode 100644 index 0000000..c73a085 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/trimmable_armor.json @@ -0,0 +1,8 @@ +{ + "values": [ + "tutorialmod:sapphire_helmet", + "tutorialmod:sapphire_chestplate", + "tutorialmod:sapphire_leggings", + "tutorialmod:sapphire_boots" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/point_of_interest_type/acquirable_job_site.json b/src/main/resources/data/minecraft/tags/point_of_interest_type/acquirable_job_site.json new file mode 100644 index 0000000..06fcd4f --- /dev/null +++ b/src/main/resources/data/minecraft/tags/point_of_interest_type/acquirable_job_site.json @@ -0,0 +1,8 @@ +{ + "values": [ + { + "id": "tutorialmod:sound_poi", + "required": false + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire.json b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire.json new file mode 100644 index 0000000..60c3abf --- /dev/null +++ b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sapphire_block": { + "conditions": { + "items": [ + { + "items": [ + "tutorialmod:sapphire_block" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tutorialmod:sapphire" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_sapphire_block", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "tutorialmod:sapphire" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_block.json b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_block.json new file mode 100644 index 0000000..9ee7a6d --- /dev/null +++ b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_block.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sapphire": { + "conditions": { + "items": [ + { + "items": [ + "tutorialmod:sapphire" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tutorialmod:sapphire_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_sapphire", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "tutorialmod:sapphire_block" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_blasting_deepslate_sapphire_ore.json b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_blasting_deepslate_sapphire_ore.json new file mode 100644 index 0000000..3cba069 --- /dev/null +++ b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_blasting_deepslate_sapphire_ore.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_sapphire_ore": { + "conditions": { + "items": [ + { + "items": [ + "tutorialmod:deepslate_sapphire_ore" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tutorialmod:sapphire_from_blasting_deepslate_sapphire_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_deepslate_sapphire_ore", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "tutorialmod:sapphire_from_blasting_deepslate_sapphire_ore" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_blasting_end_stone_sapphire_ore.json b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_blasting_end_stone_sapphire_ore.json new file mode 100644 index 0000000..1e0ab2a --- /dev/null +++ b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_blasting_end_stone_sapphire_ore.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_end_stone_sapphire_ore": { + "conditions": { + "items": [ + { + "items": [ + "tutorialmod:end_stone_sapphire_ore" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tutorialmod:sapphire_from_blasting_end_stone_sapphire_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_end_stone_sapphire_ore", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "tutorialmod:sapphire_from_blasting_end_stone_sapphire_ore" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_blasting_nether_sapphire_ore.json b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_blasting_nether_sapphire_ore.json new file mode 100644 index 0000000..80b90d0 --- /dev/null +++ b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_blasting_nether_sapphire_ore.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_sapphire_ore": { + "conditions": { + "items": [ + { + "items": [ + "tutorialmod:nether_sapphire_ore" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tutorialmod:sapphire_from_blasting_nether_sapphire_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_nether_sapphire_ore", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "tutorialmod:sapphire_from_blasting_nether_sapphire_ore" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_blasting_raw_sapphire.json b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_blasting_raw_sapphire.json new file mode 100644 index 0000000..5036e67 --- /dev/null +++ b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_blasting_raw_sapphire.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raw_sapphire": { + "conditions": { + "items": [ + { + "items": [ + "tutorialmod:raw_sapphire" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tutorialmod:sapphire_from_blasting_raw_sapphire" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_raw_sapphire", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "tutorialmod:sapphire_from_blasting_raw_sapphire" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_blasting_sapphire_ore.json b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_blasting_sapphire_ore.json new file mode 100644 index 0000000..4ddd24f --- /dev/null +++ b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_blasting_sapphire_ore.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sapphire_ore": { + "conditions": { + "items": [ + { + "items": [ + "tutorialmod:sapphire_ore" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tutorialmod:sapphire_from_blasting_sapphire_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_sapphire_ore", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "tutorialmod:sapphire_from_blasting_sapphire_ore" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_smelting_deepslate_sapphire_ore.json b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_smelting_deepslate_sapphire_ore.json new file mode 100644 index 0000000..4e25e1f --- /dev/null +++ b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_smelting_deepslate_sapphire_ore.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_sapphire_ore": { + "conditions": { + "items": [ + { + "items": [ + "tutorialmod:deepslate_sapphire_ore" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tutorialmod:sapphire_from_smelting_deepslate_sapphire_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_deepslate_sapphire_ore", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "tutorialmod:sapphire_from_smelting_deepslate_sapphire_ore" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_smelting_end_stone_sapphire_ore.json b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_smelting_end_stone_sapphire_ore.json new file mode 100644 index 0000000..a8abb59 --- /dev/null +++ b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_smelting_end_stone_sapphire_ore.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_end_stone_sapphire_ore": { + "conditions": { + "items": [ + { + "items": [ + "tutorialmod:end_stone_sapphire_ore" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tutorialmod:sapphire_from_smelting_end_stone_sapphire_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_end_stone_sapphire_ore", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "tutorialmod:sapphire_from_smelting_end_stone_sapphire_ore" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_smelting_nether_sapphire_ore.json b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_smelting_nether_sapphire_ore.json new file mode 100644 index 0000000..1bcf62a --- /dev/null +++ b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_smelting_nether_sapphire_ore.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_sapphire_ore": { + "conditions": { + "items": [ + { + "items": [ + "tutorialmod:nether_sapphire_ore" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tutorialmod:sapphire_from_smelting_nether_sapphire_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_nether_sapphire_ore", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "tutorialmod:sapphire_from_smelting_nether_sapphire_ore" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_smelting_raw_sapphire.json b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_smelting_raw_sapphire.json new file mode 100644 index 0000000..3b38478 --- /dev/null +++ b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_smelting_raw_sapphire.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raw_sapphire": { + "conditions": { + "items": [ + { + "items": [ + "tutorialmod:raw_sapphire" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tutorialmod:sapphire_from_smelting_raw_sapphire" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_raw_sapphire", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "tutorialmod:sapphire_from_smelting_raw_sapphire" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_smelting_sapphire_ore.json b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_smelting_sapphire_ore.json new file mode 100644 index 0000000..7474254 --- /dev/null +++ b/src/main/resources/data/tutorialmod/advancements/recipes/misc/sapphire_from_smelting_sapphire_ore.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sapphire_ore": { + "conditions": { + "items": [ + { + "items": [ + "tutorialmod:sapphire_ore" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tutorialmod:sapphire_from_smelting_sapphire_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_sapphire_ore", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "tutorialmod:sapphire_from_smelting_sapphire_ore" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/dimension/kaupendim.json b/src/main/resources/data/tutorialmod/dimension/kaupendim.json new file mode 100644 index 0000000..9250c63 --- /dev/null +++ b/src/main/resources/data/tutorialmod/dimension/kaupendim.json @@ -0,0 +1,60 @@ +{ + "type": "tutorialmod:kaupendim_type", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:multi_noise", + "biomes": [ + { + "biome": "tutorialmod:test_biome", + "parameters": { + "continentalness": 0.0, + "depth": 0.0, + "erosion": 0.0, + "humidity": 0.0, + "offset": 0.0, + "temperature": 0.0, + "weirdness": 0.0 + } + }, + { + "biome": "minecraft:birch_forest", + "parameters": { + "continentalness": 0.0, + "depth": 0.0, + "erosion": 0.2, + "humidity": 0.2, + "offset": 0.0, + "temperature": 0.1, + "weirdness": 0.0 + } + }, + { + "biome": "minecraft:ocean", + "parameters": { + "continentalness": 0.1, + "depth": 0.0, + "erosion": 0.1, + "humidity": 0.6, + "offset": 0.0, + "temperature": 0.3, + "weirdness": 0.0 + } + }, + { + "biome": "minecraft:dark_forest", + "parameters": { + "continentalness": 0.2, + "depth": 0.0, + "erosion": 0.1, + "humidity": 0.3, + "offset": 0.0, + "temperature": 0.4, + "weirdness": 0.0 + } + } + ] + }, + "settings": "minecraft:amplified" + } +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/dimension_type/kaupendim_type.json b/src/main/resources/data/tutorialmod/dimension_type/kaupendim_type.json new file mode 100644 index 0000000..260c0bc --- /dev/null +++ b/src/main/resources/data/tutorialmod/dimension_type/kaupendim_type.json @@ -0,0 +1,20 @@ +{ + "ambient_light": 1.0, + "bed_works": true, + "coordinate_scale": 1.0, + "effects": "minecraft:overworld", + "fixed_time": 12000, + "has_ceiling": false, + "has_raids": false, + "has_skylight": false, + "height": 256, + "infiniburn": "#minecraft:infiniburn_overworld", + "logical_height": 256, + "min_y": 0, + "monster_spawn_block_light_limit": 0, + "monster_spawn_light_level": 0, + "natural": false, + "piglin_safe": false, + "respawn_anchor_works": false, + "ultrawarm": false +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/forge/biome_modifier/add_end_sapphire_ore.json b/src/main/resources/data/tutorialmod/forge/biome_modifier/add_end_sapphire_ore.json new file mode 100644 index 0000000..eed27c8 --- /dev/null +++ b/src/main/resources/data/tutorialmod/forge/biome_modifier/add_end_sapphire_ore.json @@ -0,0 +1,6 @@ +{ + "type": "forge:add_features", + "biomes": "#minecraft:is_end", + "features": "tutorialmod:end_sapphire_ore_placed", + "step": "underground_ores" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/forge/biome_modifier/add_nether_sapphire_ore.json b/src/main/resources/data/tutorialmod/forge/biome_modifier/add_nether_sapphire_ore.json new file mode 100644 index 0000000..00d35ec --- /dev/null +++ b/src/main/resources/data/tutorialmod/forge/biome_modifier/add_nether_sapphire_ore.json @@ -0,0 +1,6 @@ +{ + "type": "forge:add_features", + "biomes": "#minecraft:is_nether", + "features": "tutorialmod:nether_sapphire_ore_placed", + "step": "underground_ores" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/forge/biome_modifier/add_sapphire_ore.json b/src/main/resources/data/tutorialmod/forge/biome_modifier/add_sapphire_ore.json new file mode 100644 index 0000000..2d21711 --- /dev/null +++ b/src/main/resources/data/tutorialmod/forge/biome_modifier/add_sapphire_ore.json @@ -0,0 +1,6 @@ +{ + "type": "forge:add_features", + "biomes": "#minecraft:is_overworld", + "features": "tutorialmod:sapphire_ore_placed", + "step": "underground_ores" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/forge/biome_modifier/add_tree_pine.json b/src/main/resources/data/tutorialmod/forge/biome_modifier/add_tree_pine.json new file mode 100644 index 0000000..bb829e3 --- /dev/null +++ b/src/main/resources/data/tutorialmod/forge/biome_modifier/add_tree_pine.json @@ -0,0 +1,6 @@ +{ + "type": "forge:add_features", + "biomes": "#forge:is_plains", + "features": "tutorialmod:pine_placed", + "step": "vegetal_decoration" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_modifiers/metal_detector_from_jungle_temples.json b/src/main/resources/data/tutorialmod/loot_modifiers/metal_detector_from_jungle_temples.json new file mode 100644 index 0000000..edd4365 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_modifiers/metal_detector_from_jungle_temples.json @@ -0,0 +1,10 @@ +{ + "type": "tutorialmod:add_item", + "conditions": [ + { + "condition": "forge:loot_table_id", + "loot_table_id": "minecraft:chests/jungle_temple" + } + ], + "item": "tutorialmod:metal_detector" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_modifiers/metal_detector_from_suspicious_sand.json b/src/main/resources/data/tutorialmod/loot_modifiers/metal_detector_from_suspicious_sand.json new file mode 100644 index 0000000..b9e2e90 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_modifiers/metal_detector_from_suspicious_sand.json @@ -0,0 +1,10 @@ +{ + "type": "tutorialmod:add_sus_sand_item", + "conditions": [ + { + "condition": "forge:loot_table_id", + "loot_table_id": "minecraft:archaeology/desert_pyramid" + } + ], + "item": "tutorialmod:metal_detector" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_modifiers/pine_cone_from_creeper.json b/src/main/resources/data/tutorialmod/loot_modifiers/pine_cone_from_creeper.json new file mode 100644 index 0000000..c292342 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_modifiers/pine_cone_from_creeper.json @@ -0,0 +1,10 @@ +{ + "type": "tutorialmod:add_item", + "conditions": [ + { + "condition": "forge:loot_table_id", + "loot_table_id": "minecraft:entities/creeper" + } + ], + "item": "tutorialmod:pine_cone" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_modifiers/pine_cone_from_grass.json b/src/main/resources/data/tutorialmod/loot_modifiers/pine_cone_from_grass.json new file mode 100644 index 0000000..5f89c91 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_modifiers/pine_cone_from_grass.json @@ -0,0 +1,14 @@ +{ + "type": "tutorialmod:add_item", + "conditions": [ + { + "block": "minecraft:grass", + "condition": "minecraft:block_state_property" + }, + { + "chance": 0.35, + "condition": "minecraft:random_chance" + } + ], + "item": "tutorialmod:pine_cone" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/catmint.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/catmint.json new file mode 100644 index 0000000..e2992f0 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/catmint.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:catmint" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/catmint" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/corn_crop.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/corn_crop.json new file mode 100644 index 0000000..fe96da6 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/corn_crop.json @@ -0,0 +1,93 @@ +{ + "type": "minecraft:block", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "block": "tutorialmod:corn_crop", + "condition": "minecraft:block_state_property", + "properties": { + "age": "7" + } + }, + { + "block": "tutorialmod:corn_crop", + "condition": "minecraft:block_state_property", + "properties": { + "age": "8" + } + } + ] + } + ], + "name": "tutorialmod:corn" + }, + { + "type": "minecraft:item", + "name": "tutorialmod:corn_seeds" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "block": "tutorialmod:corn_crop", + "condition": "minecraft:block_state_property", + "properties": { + "age": "7" + } + }, + { + "block": "tutorialmod:corn_crop", + "condition": "minecraft:block_state_property", + "properties": { + "age": "8" + } + } + ] + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:binomial_with_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "extra": 3, + "probability": 0.5714286 + } + } + ], + "name": "tutorialmod:corn_seeds" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/corn_crop" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/deepslate_sapphire_ore.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/deepslate_sapphire_ore.json new file mode 100644 index 0000000..04694db --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/deepslate_sapphire_ore.json @@ -0,0 +1,59 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "tutorialmod:deepslate_sapphire_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "tutorialmod:raw_sapphire" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/deepslate_sapphire_ore" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/end_stone_sapphire_ore.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/end_stone_sapphire_ore.json new file mode 100644 index 0000000..206f08c --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/end_stone_sapphire_ore.json @@ -0,0 +1,59 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "tutorialmod:end_stone_sapphire_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "tutorialmod:raw_sapphire" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/end_stone_sapphire_ore" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/gem_polishing_station.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/gem_polishing_station.json new file mode 100644 index 0000000..b971891 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/gem_polishing_station.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:gem_polishing_station" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/gem_polishing_station" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/nether_sapphire_ore.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/nether_sapphire_ore.json new file mode 100644 index 0000000..5e78f6e --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/nether_sapphire_ore.json @@ -0,0 +1,59 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "tutorialmod:nether_sapphire_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "tutorialmod:raw_sapphire" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/nether_sapphire_ore" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_hanging_sign.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_hanging_sign.json new file mode 100644 index 0000000..5b21333 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:pine_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/pine_hanging_sign" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_leaves.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_leaves.json new file mode 100644 index 0000000..bc02430 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_leaves.json @@ -0,0 +1,136 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "minecraft:shears" + ] + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ], + "name": "tutorialmod:pine_leaves" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chances": [ + 0.05, + 0.0625, + 0.083333336, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "tutorialmod:pine_sapling" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "minecraft:shears" + ] + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.02, + 0.022222223, + 0.025, + 0.033333335, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stick" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/pine_leaves" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_log.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_log.json new file mode 100644 index 0000000..7e25d54 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:pine_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/pine_log" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_planks.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_planks.json new file mode 100644 index 0000000..28e06a6 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:pine_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/pine_planks" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_sapling.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_sapling.json new file mode 100644 index 0000000..356483c --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_sapling.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:pine_sapling" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/pine_sapling" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_sign.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_sign.json new file mode 100644 index 0000000..4c382c8 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:pine_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/pine_sign" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_wall_hanging_sign.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_wall_hanging_sign.json new file mode 100644 index 0000000..4eab20e --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_wall_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:pine_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/pine_wall_hanging_sign" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_wall_sign.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_wall_sign.json new file mode 100644 index 0000000..fa5c9a8 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_wall_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:pine_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/pine_wall_sign" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_wood.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_wood.json new file mode 100644 index 0000000..e714652 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/pine_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:pine_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/pine_wood" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/potted_catmint.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/potted_catmint.json new file mode 100644 index 0000000..1d8cb3d --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/potted_catmint.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:catmint" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/potted_catmint" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/raw_sapphire_block.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/raw_sapphire_block.json new file mode 100644 index 0000000..ca3ff4c --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/raw_sapphire_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:raw_sapphire_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/raw_sapphire_block" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_block.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_block.json new file mode 100644 index 0000000..5f1acab --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:sapphire_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/sapphire_block" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_button.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_button.json new file mode 100644 index 0000000..7f9c312 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:sapphire_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/sapphire_button" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_door.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_door.json new file mode 100644 index 0000000..8786326 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "tutorialmod:sapphire_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "tutorialmod:sapphire_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/sapphire_door" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_fence.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_fence.json new file mode 100644 index 0000000..ffdcadf --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:sapphire_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/sapphire_fence" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_fence_gate.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_fence_gate.json new file mode 100644 index 0000000..6c365e5 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:sapphire_fence_gate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/sapphire_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_ore.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_ore.json new file mode 100644 index 0000000..0159bb4 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_ore.json @@ -0,0 +1,59 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "tutorialmod:sapphire_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "tutorialmod:raw_sapphire" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/sapphire_ore" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_pressure_plate.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_pressure_plate.json new file mode 100644 index 0000000..b873d56 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:sapphire_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/sapphire_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_slab.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_slab.json new file mode 100644 index 0000000..a531100 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "tutorialmod:sapphire_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "tutorialmod:sapphire_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/sapphire_slab" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_stairs.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_stairs.json new file mode 100644 index 0000000..3687156 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:sapphire_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/sapphire_stairs" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_trapdoor.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_trapdoor.json new file mode 100644 index 0000000..c17fbb5 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:sapphire_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/sapphire_trapdoor" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_wall.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_wall.json new file mode 100644 index 0000000..8792fee --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:sapphire_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/sapphire_wall" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/sound_block.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/sound_block.json new file mode 100644 index 0000000..60f1575 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/sound_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:sound_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/sound_block" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/strawberry_crop.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/strawberry_crop.json new file mode 100644 index 0000000..ab38b6a --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/strawberry_crop.json @@ -0,0 +1,69 @@ +{ + "type": "minecraft:block", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "tutorialmod:strawberry_crop", + "condition": "minecraft:block_state_property", + "properties": { + "age": "5" + } + } + ], + "name": "tutorialmod:strawberry" + }, + { + "type": "minecraft:item", + "name": "tutorialmod:strawberry_seeds" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "tutorialmod:strawberry_crop", + "condition": "minecraft:block_state_property", + "properties": { + "age": "5" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:binomial_with_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "extra": 3, + "probability": 0.5714286 + } + } + ], + "name": "tutorialmod:strawberry_seeds" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/strawberry_crop" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/stripped_pine_log.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/stripped_pine_log.json new file mode 100644 index 0000000..a139932 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/stripped_pine_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:stripped_pine_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/stripped_pine_log" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/stripped_pine_wood.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/stripped_pine_wood.json new file mode 100644 index 0000000..b9c6c4d --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/stripped_pine_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:stripped_pine_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/stripped_pine_wood" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/recipes/diamond_from_gem_polishing.json b/src/main/resources/data/tutorialmod/recipes/diamond_from_gem_polishing.json index fe74442..6d7c00f 100644 --- a/src/main/resources/data/tutorialmod/recipes/diamond_from_gem_polishing.json +++ b/src/main/resources/data/tutorialmod/recipes/diamond_from_gem_polishing.json @@ -1,10 +1,8 @@ { "type": "tutorialmod:gem_polishing", - "ingredients": [ - { - "item": "minecraft:coal" - } - ], + "item": { + "item": "minecraft:coal" + }, "output": { "count": 7, "item": "minecraft:diamond" diff --git a/src/main/resources/data/tutorialmod/recipes/sapphire.json b/src/main/resources/data/tutorialmod/recipes/sapphire.json new file mode 100644 index 0000000..5530fa9 --- /dev/null +++ b/src/main/resources/data/tutorialmod/recipes/sapphire.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "tutorialmod:sapphire_block" + } + ], + "result": { + "count": 9, + "item": "tutorialmod:sapphire" + } +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/recipes/sapphire_block.json b/src/main/resources/data/tutorialmod/recipes/sapphire_block.json new file mode 100644 index 0000000..d060036 --- /dev/null +++ b/src/main/resources/data/tutorialmod/recipes/sapphire_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "S": { + "item": "tutorialmod:sapphire" + } + }, + "pattern": [ + "SSS", + "SSS", + "SSS" + ], + "result": { + "item": "tutorialmod:sapphire_block" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/recipes/sapphire_from_blasting_deepslate_sapphire_ore.json b/src/main/resources/data/tutorialmod/recipes/sapphire_from_blasting_deepslate_sapphire_ore.json new file mode 100644 index 0000000..0801b9b --- /dev/null +++ b/src/main/resources/data/tutorialmod/recipes/sapphire_from_blasting_deepslate_sapphire_ore.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.25, + "group": "sapphire", + "ingredient": { + "item": "tutorialmod:deepslate_sapphire_ore" + }, + "result": "tutorialmod:sapphire" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/recipes/sapphire_from_blasting_end_stone_sapphire_ore.json b/src/main/resources/data/tutorialmod/recipes/sapphire_from_blasting_end_stone_sapphire_ore.json new file mode 100644 index 0000000..a6e54de --- /dev/null +++ b/src/main/resources/data/tutorialmod/recipes/sapphire_from_blasting_end_stone_sapphire_ore.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.25, + "group": "sapphire", + "ingredient": { + "item": "tutorialmod:end_stone_sapphire_ore" + }, + "result": "tutorialmod:sapphire" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/recipes/sapphire_from_blasting_nether_sapphire_ore.json b/src/main/resources/data/tutorialmod/recipes/sapphire_from_blasting_nether_sapphire_ore.json new file mode 100644 index 0000000..eb89fb5 --- /dev/null +++ b/src/main/resources/data/tutorialmod/recipes/sapphire_from_blasting_nether_sapphire_ore.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.25, + "group": "sapphire", + "ingredient": { + "item": "tutorialmod:nether_sapphire_ore" + }, + "result": "tutorialmod:sapphire" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/recipes/sapphire_from_blasting_raw_sapphire.json b/src/main/resources/data/tutorialmod/recipes/sapphire_from_blasting_raw_sapphire.json new file mode 100644 index 0000000..2dc23e1 --- /dev/null +++ b/src/main/resources/data/tutorialmod/recipes/sapphire_from_blasting_raw_sapphire.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.25, + "group": "sapphire", + "ingredient": { + "item": "tutorialmod:raw_sapphire" + }, + "result": "tutorialmod:sapphire" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/recipes/sapphire_from_blasting_sapphire_ore.json b/src/main/resources/data/tutorialmod/recipes/sapphire_from_blasting_sapphire_ore.json new file mode 100644 index 0000000..404c664 --- /dev/null +++ b/src/main/resources/data/tutorialmod/recipes/sapphire_from_blasting_sapphire_ore.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.25, + "group": "sapphire", + "ingredient": { + "item": "tutorialmod:sapphire_ore" + }, + "result": "tutorialmod:sapphire" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/recipes/sapphire_from_gem_polishing.json b/src/main/resources/data/tutorialmod/recipes/sapphire_from_gem_polishing.json index fff14ff..a728794 100644 --- a/src/main/resources/data/tutorialmod/recipes/sapphire_from_gem_polishing.json +++ b/src/main/resources/data/tutorialmod/recipes/sapphire_from_gem_polishing.json @@ -1,10 +1,8 @@ { "type": "tutorialmod:gem_polishing", - "ingredients": [ - { - "item": "tutorialmod:raw_sapphire" - } - ], + "item": { + "item": "tutorialmod:raw_sapphire" + }, "output": { "count": 3, "item": "tutorialmod:sapphire" diff --git a/src/main/resources/data/tutorialmod/recipes/sapphire_from_smelting_deepslate_sapphire_ore.json b/src/main/resources/data/tutorialmod/recipes/sapphire_from_smelting_deepslate_sapphire_ore.json new file mode 100644 index 0000000..0943abc --- /dev/null +++ b/src/main/resources/data/tutorialmod/recipes/sapphire_from_smelting_deepslate_sapphire_ore.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.25, + "group": "sapphire", + "ingredient": { + "item": "tutorialmod:deepslate_sapphire_ore" + }, + "result": "tutorialmod:sapphire" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/recipes/sapphire_from_smelting_end_stone_sapphire_ore.json b/src/main/resources/data/tutorialmod/recipes/sapphire_from_smelting_end_stone_sapphire_ore.json new file mode 100644 index 0000000..57711c7 --- /dev/null +++ b/src/main/resources/data/tutorialmod/recipes/sapphire_from_smelting_end_stone_sapphire_ore.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.25, + "group": "sapphire", + "ingredient": { + "item": "tutorialmod:end_stone_sapphire_ore" + }, + "result": "tutorialmod:sapphire" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/recipes/sapphire_from_smelting_nether_sapphire_ore.json b/src/main/resources/data/tutorialmod/recipes/sapphire_from_smelting_nether_sapphire_ore.json new file mode 100644 index 0000000..998f4c4 --- /dev/null +++ b/src/main/resources/data/tutorialmod/recipes/sapphire_from_smelting_nether_sapphire_ore.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.25, + "group": "sapphire", + "ingredient": { + "item": "tutorialmod:nether_sapphire_ore" + }, + "result": "tutorialmod:sapphire" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/recipes/sapphire_from_smelting_raw_sapphire.json b/src/main/resources/data/tutorialmod/recipes/sapphire_from_smelting_raw_sapphire.json new file mode 100644 index 0000000..d8e214f --- /dev/null +++ b/src/main/resources/data/tutorialmod/recipes/sapphire_from_smelting_raw_sapphire.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.25, + "group": "sapphire", + "ingredient": { + "item": "tutorialmod:raw_sapphire" + }, + "result": "tutorialmod:sapphire" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/recipes/sapphire_from_smelting_sapphire_ore.json b/src/main/resources/data/tutorialmod/recipes/sapphire_from_smelting_sapphire_ore.json new file mode 100644 index 0000000..5b6bc37 --- /dev/null +++ b/src/main/resources/data/tutorialmod/recipes/sapphire_from_smelting_sapphire_ore.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.25, + "group": "sapphire", + "ingredient": { + "item": "tutorialmod:sapphire_ore" + }, + "result": "tutorialmod:sapphire" +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/tags/blocks/metal_detector_valuables.json b/src/main/resources/data/tutorialmod/tags/blocks/metal_detector_valuables.json new file mode 100644 index 0000000..9c30ac8 --- /dev/null +++ b/src/main/resources/data/tutorialmod/tags/blocks/metal_detector_valuables.json @@ -0,0 +1,6 @@ +{ + "values": [ + "tutorialmod:sapphire_ore", + "#forge:ores" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/tags/blocks/needs_sapphire_tool.json b/src/main/resources/data/tutorialmod/tags/blocks/needs_sapphire_tool.json new file mode 100644 index 0000000..915e391 --- /dev/null +++ b/src/main/resources/data/tutorialmod/tags/blocks/needs_sapphire_tool.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tutorialmod:sound_block" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/worldgen/biome/test_biome.json b/src/main/resources/data/tutorialmod/worldgen/biome/test_biome.json new file mode 100644 index 0000000..c5cbb2a --- /dev/null +++ b/src/main/resources/data/tutorialmod/worldgen/biome/test_biome.json @@ -0,0 +1,207 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.8, + "effects": { + "fog_color": 2269670, + "foliage_color": 13763580, + "grass_color": 8324092, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "tutorialmod:bar_brawl" + }, + "sky_color": 3197208, + "water_color": 15216187, + "water_fog_color": 12524326 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode", + "minecraft:forest_rock" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:ore_gold_extra" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:forest_flowers", + "minecraft:patch_large_fern", + "minecraft:trees_plains", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin", + "tutorialmod:pine_placed" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "tutorialmod:rhino", + "maxCount": 5, + "minCount": 3, + "weight": 2 + }, + { + "type": "minecraft:wolf", + "maxCount": 4, + "minCount": 4, + "weight": 5 + }, + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.7 +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/worldgen/configured_feature/end_sapphire_ore.json b/src/main/resources/data/tutorialmod/worldgen/configured_feature/end_sapphire_ore.json new file mode 100644 index 0000000..df44808 --- /dev/null +++ b/src/main/resources/data/tutorialmod/worldgen/configured_feature/end_sapphire_ore.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 9, + "targets": [ + { + "state": { + "Name": "tutorialmod:end_stone_sapphire_ore" + }, + "target": { + "block": "minecraft:end_stone", + "predicate_type": "minecraft:block_match" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/worldgen/configured_feature/nether_sapphire_ore.json b/src/main/resources/data/tutorialmod/worldgen/configured_feature/nether_sapphire_ore.json new file mode 100644 index 0000000..539939e --- /dev/null +++ b/src/main/resources/data/tutorialmod/worldgen/configured_feature/nether_sapphire_ore.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 9, + "targets": [ + { + "state": { + "Name": "tutorialmod:nether_sapphire_ore" + }, + "target": { + "block": "minecraft:netherrack", + "predicate_type": "minecraft:block_match" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/worldgen/configured_feature/pine.json b/src/main/resources/data/tutorialmod/worldgen/configured_feature/pine.json new file mode 100644 index 0000000..b579ac3 --- /dev/null +++ b/src/main/resources/data/tutorialmod/worldgen/configured_feature/pine.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "tutorialmod:pine_foliage_placer", + "height": 3, + "offset": 2, + "radius": 3 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "tutorialmod:pine_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": false, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 2 + }, + "trunk_placer": { + "type": "tutorialmod:pine_trunk_placer", + "base_height": 5, + "height_rand_a": 4, + "height_rand_b": 3 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "tutorialmod:pine_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/worldgen/configured_feature/sapphire_ore.json b/src/main/resources/data/tutorialmod/worldgen/configured_feature/sapphire_ore.json new file mode 100644 index 0000000..18b6526 --- /dev/null +++ b/src/main/resources/data/tutorialmod/worldgen/configured_feature/sapphire_ore.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 9, + "targets": [ + { + "state": { + "Name": "tutorialmod:sapphire_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "tutorialmod:deepslate_sapphire_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/worldgen/placed_feature/end_sapphire_ore_placed.json b/src/main/resources/data/tutorialmod/worldgen/placed_feature/end_sapphire_ore_placed.json new file mode 100644 index 0000000..d8e6fcc --- /dev/null +++ b/src/main/resources/data/tutorialmod/worldgen/placed_feature/end_sapphire_ore_placed.json @@ -0,0 +1,27 @@ +{ + "feature": "tutorialmod:end_sapphire_ore", + "placement": [ + { + "type": "minecraft:count", + "count": 12 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 80 + }, + "min_inclusive": { + "absolute": -64 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/worldgen/placed_feature/nether_sapphire_ore_placed.json b/src/main/resources/data/tutorialmod/worldgen/placed_feature/nether_sapphire_ore_placed.json new file mode 100644 index 0000000..fa6d740 --- /dev/null +++ b/src/main/resources/data/tutorialmod/worldgen/placed_feature/nether_sapphire_ore_placed.json @@ -0,0 +1,27 @@ +{ + "feature": "tutorialmod:nether_sapphire_ore", + "placement": [ + { + "type": "minecraft:count", + "count": 12 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 80 + }, + "min_inclusive": { + "absolute": -64 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/worldgen/placed_feature/pine_placed.json b/src/main/resources/data/tutorialmod/worldgen/placed_feature/pine_placed.json new file mode 100644 index 0000000..d807752 --- /dev/null +++ b/src/main/resources/data/tutorialmod/worldgen/placed_feature/pine_placed.json @@ -0,0 +1,47 @@ +{ + "feature": "tutorialmod:pine", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 3, + "weight": 9 + }, + { + "data": 5, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "tutorialmod:pine_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/tutorialmod/worldgen/placed_feature/sapphire_ore_placed.json b/src/main/resources/data/tutorialmod/worldgen/placed_feature/sapphire_ore_placed.json new file mode 100644 index 0000000..ae8a72d --- /dev/null +++ b/src/main/resources/data/tutorialmod/worldgen/placed_feature/sapphire_ore_placed.json @@ -0,0 +1,27 @@ +{ + "feature": "tutorialmod:sapphire_ore", + "placement": [ + { + "type": "minecraft:count", + "count": 12 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 80 + }, + "min_inclusive": { + "absolute": -64 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file