diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0a56402..389300d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,23 +1,15 @@ name: Build -on: - push: - branches: - - main - - dev +on: [pull_request, push] jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: gradle/actions/wrapper-validation@v3 + - uses: gradle/actions/wrapper-validation@v4 - uses: actions/setup-java@v4 with: java-version: '21' distribution: 'microsoft' - run: chmod +x ./gradlew - run: ./gradlew build - - uses: actions/upload-artifact@v3 - with: - name: Artifacts - path: build/libs/ \ No newline at end of file diff --git a/.github/workflows/crowdin.yml b/.github/workflows/crowdin.yml new file mode 100644 index 0000000..968f6f6 --- /dev/null +++ b/.github/workflows/crowdin.yml @@ -0,0 +1,32 @@ +name: Crowdin +on: + workflow_dispatch: + inputs: + upload: + description: "Whether to upload translations from this repo to Crowdin" + type: boolean + required: true + default: false + +jobs: + sync: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Crowdin Action + uses: crowdin/github-action@v2 + with: + upload_sources: true + upload_translations: ${{ github.event.inputs.upload }} + download_translations: true + localization_branch_name: 'crowdin' + create_pull_request: true + pull_request_title: 'New Crowdin Translations' + pull_request_body: 'New Crowdin translations by [Crowdin GH Action](https://github.com/crowdin/github-action)' + pull_request_base_branch_name: 'dev' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }} + CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} \ No newline at end of file diff --git a/LICENSE b/LICENSE index 0cca851..c2e8800 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2024 Spirit Studios +Copyright (c) 2024 - 2025 Spirit Studios This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/LICENSE-MUSIC b/LICENSE-MUSIC new file mode 100644 index 0000000..ad46c2a --- /dev/null +++ b/LICENSE-MUSIC @@ -0,0 +1,13 @@ +The music for Hollow is created by WorldWidePixel. + +Spirit Studios has full rights to use and profit off this music for any work created that may use this music. + +You are authorised to use Hollow's music, with a few restrictions. In short: +- You must provide credit to WorldWidePixel +- You can not reupload this soundtrack verbatim +- You may use this soundtrack under the fair use doctrine including but not limited to the following: + - Using this soundtrack in videos or streams + +This music is not free, please contact WorldWidePixel for licensing at hello@worldwidepixel.ca. + +Copyright (c) (2024 - 2025) WorldWidePixel, All Rights Reserved. \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index fcbd513..79041f9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,3 +1,5 @@ +import com.modrinth.minotaur.ModrinthExtension + plugins { java alias(libs.plugins.fabric.loom) @@ -92,7 +94,7 @@ modrinth { projectId.set(mod.id) versionNumber.set(mod.version) uploadFile.set(tasks.remapJar) - gameVersions.addAll(libs.versions.minecraft.get(), "1.21.1") + gameVersions.addAll(libs.versions.minecraft.get()) loaders.addAll("fabric", "quilt") syncBodyFrom.set(rootProject.file("README.md").readText()) dependencies { diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 0000000..6776333 --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,30 @@ +"project_id_env": "CROWDIN_PROJECT_ID" +"api_token_env": "CROWDIN_PERSONAL_TOKEN" +"base_path": "." + +"preserve_hierarchy": true + +"files": [ + { + "source": "/**/lang/en_us.json", + "translation": "/**/lang/%locale%.json", + "languages_mapping": { + "locale": { + "zh-CN": "zh_cn", + "zh-HK": "zh_hk", + "zh-TW": "zh_tw", + "en-GB": "en_gb", + "en-US": "en_us", + "fr": "fr_fr", + "de": "de_de", + "id": "id_id", + "it": "it_it", + "ja": "ja_jp", + "pt-PT": "pt_pt", + "pt-BR": "pt_br", + "ru": "ru_ru", + "uk": "uk_ua" + } + } + } +] \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index c0c660e..64ea13c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ org.gradle.jvmargs=-Xmx2G org.gradle.parallel=true -mod.version = 1.3.1 +mod.version = 1.3.2 mod.group = dev.spiritstudios mod.id = hollow \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 97853c8..fb88038 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,16 +1,16 @@ [versions] -fabric_loom = "1.9-SNAPSHOT" +fabric_loom = "1.11-SNAPSHOT" minotaur = "2.+" -minecraft = "1.21" -yarn = "1.21+build.9" +minecraft = "1.21.5" +yarn = "1.21.5+build.1" -fabric_loader = "0.16.5" -fabric_api = "0.109.0+1.21.1" +fabric_loader = "0.16.14" +fabric_api = "0.128.1+1.21.5" -specter = "1.1.1" +specter = "1.1.9" -lambdynamiclights = "3.1.2+1.21.1" +lambdynamiclights = "4.2.9+1.21.5" [plugins] fabric_loom = { id = "fabric-loom", version.ref = "fabric_loom" } @@ -28,6 +28,7 @@ specter_block = { group = "dev.spiritstudios.specter", name = "specter-block", v specter_config = { group = "dev.spiritstudios.specter", name = "specter-config", version.ref = "specter" } specter_core = { group = "dev.spiritstudios.specter", name = "specter-core", version.ref = "specter" } specter_serialization = { group = "dev.spiritstudios.specter", name = "specter-serialization", version.ref = "specter" } +specter_gui = { group = "dev.spiritstudios.specter", name = "specter-gui", version.ref = "specter" } specter_entity = { group = "dev.spiritstudios.specter", name = "specter-entity", version.ref = "specter" } specter_item = { group = "dev.spiritstudios.specter", name = "specter-item", version.ref = "specter" } specter_registry = { group = "dev.spiritstudios.specter", name = "specter-registry", version.ref = "specter" } @@ -45,5 +46,6 @@ specter = [ "specter_item", "specter_registry", "specter_render", + "specter_gui", "specter_serialization" ] \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index a4b76b9..1b33c55 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 94113f2..ca025c8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index f5feea6..23d15a9 100755 --- a/gradlew +++ b/gradlew @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -214,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 9b42019..5eed7ee 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/src/client/java/dev/spiritstudios/hollow/HollowClient.java b/src/client/java/dev/spiritstudios/hollow/HollowClient.java index 7657730..0783846 100644 --- a/src/client/java/dev/spiritstudios/hollow/HollowClient.java +++ b/src/client/java/dev/spiritstudios/hollow/HollowClient.java @@ -1,24 +1,21 @@ package dev.spiritstudios.hollow; import dev.spiritstudios.hollow.particle.FireflyJarParticle; -import dev.spiritstudios.hollow.registry.HollowBlockEntityTypes; -import dev.spiritstudios.hollow.registry.HollowBlocks; -import dev.spiritstudios.hollow.registry.HollowEntityTypes; -import dev.spiritstudios.hollow.registry.HollowItems; +import dev.spiritstudios.hollow.particle.ScreamParticle; +import dev.spiritstudios.hollow.block.entity.HollowBlockEntityTypes; +import dev.spiritstudios.hollow.block.HollowBlocks; +import dev.spiritstudios.hollow.entity.HollowEntityTypes; import dev.spiritstudios.hollow.registry.HollowParticleTypes; import dev.spiritstudios.hollow.render.block.EchoingPotBlockEntityRenderer; +import dev.spiritstudios.hollow.render.block.EchoingVaseBlockEntityRenderer; +import dev.spiritstudios.hollow.render.block.JarBlockEntityRenderer; import dev.spiritstudios.hollow.render.entity.FireflyEntityRenderer; -import dev.spiritstudios.hollow.render.entity.JarBlockEntityRenderer; -import dev.spiritstudios.specter.api.config.ModMenuHelper; +import dev.spiritstudios.specter.api.config.client.ModMenuHelper; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.particle.v1.ParticleFactoryRegistry; import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; import net.fabricmc.fabric.api.client.rendering.v1.EntityRendererRegistry; -import net.minecraft.client.color.world.BiomeColors; -import net.minecraft.client.item.ModelPredicateProviderRegistry; import net.minecraft.client.render.block.entity.BlockEntityRendererFactories; -import net.minecraft.util.Identifier; -import net.minecraft.world.biome.GrassColors; public class HollowClient implements ClientModInitializer { @Override @@ -27,22 +24,8 @@ public void onInitializeClient() { EntityRendererRegistry.register(HollowEntityTypes.FIREFLY, FireflyEntityRenderer::new); - ParticleFactoryRegistry.getInstance().register( - HollowParticleTypes.FIREFLY_JAR, - FireflyJarParticle.Factory::new - ); - - ModelPredicateProviderRegistry.register( - HollowItems.COPPER_HORN, - Identifier.ofVanilla("tooting"), - (stack, world, entity, seed) -> entity != null && entity.isUsingItem() && entity.getActiveItem() == stack ? 1.0F : 0.0F - ); - - // region Color Providers - ColorProviderRegistry.ITEM.register( - (stack, tintIndex) -> tintIndex == 0 ? 0x71C35C : -1, - HollowItems.GIANT_LILYPAD, HollowItems.LOTUS_LILYPAD - ); + ParticleFactoryRegistry.getInstance().register(HollowParticleTypes.FIREFLY_JAR, FireflyJarParticle.Factory::new); + ParticleFactoryRegistry.getInstance().register(HollowParticleTypes.SCREAM, ScreamParticle.Factory::new); ColorProviderRegistry.BLOCK.register( (state, world, pos, tintIndex) -> @@ -50,28 +33,21 @@ public void onInitializeClient() { HollowBlocks.GIANT_LILYPAD, HollowBlocks.LOTUS_LILYPAD ); - -// ColorProviderRegistry.BLOCK.register((state, world, pos, tintIndex) -> -// tintIndex != 0 ? -// world != null && pos != null ? BiomeColors.getGrassColor(world, pos) : GrassColors.getDefaultColor() : -// -1, -// HollowBlocks.BLUE_WILDFLOWER, -// HollowBlocks.WHITE_WILDFLOWER, -// HollowBlocks.PURPLE_WILDFLOWER, -// HollowBlocks.PINK_WILDFLOWER -// ); - // endregion - // region Block Entity Renderers BlockEntityRendererFactories.register( - HollowBlockEntityTypes.JAR_BLOCK_ENTITY, + HollowBlockEntityTypes.JAR, JarBlockEntityRenderer::new ); BlockEntityRendererFactories.register( - HollowBlockEntityTypes.ECHOING_POT_BLOCK_ENTITY, + HollowBlockEntityTypes.ECHOING_POT, EchoingPotBlockEntityRenderer::new ); + + BlockEntityRendererFactories.register( + HollowBlockEntityTypes.ECHOING_VASE, + EchoingVaseBlockEntityRenderer::new + ); // endregion } } \ No newline at end of file diff --git a/src/client/java/dev/spiritstudios/hollow/HollowDynamicLights.java b/src/client/java/dev/spiritstudios/hollow/HollowDynamicLights.java deleted file mode 100644 index 556df17..0000000 --- a/src/client/java/dev/spiritstudios/hollow/HollowDynamicLights.java +++ /dev/null @@ -1,17 +0,0 @@ -package dev.spiritstudios.hollow; - -import dev.lambdaurora.lambdynlights.api.DynamicLightHandlers; -import dev.lambdaurora.lambdynlights.api.item.ItemLightSourceManager; -import dev.spiritstudios.hollow.registry.HollowEntityTypes; -import dev.lambdaurora.lambdynlights.api.DynamicLightsInitializer; -import net.minecraft.util.math.MathHelper; - -public class HollowDynamicLights implements DynamicLightsInitializer { - @Override - public void onInitializeDynamicLights(ItemLightSourceManager itemLightSourceManager) { - DynamicLightHandlers.registerDynamicLightHandler( - HollowEntityTypes.FIREFLY, - entity -> (int) MathHelper.clampedLerp(15.0F, 0.0F, (1.0F - entity.getLightTicks() / 10.0F)) - ); - } -} diff --git a/src/client/java/dev/spiritstudios/hollow/datagen/ClientBlockMetatagProvider.java b/src/client/java/dev/spiritstudios/hollow/datagen/HollowClientBlockMetatagProvider.java similarity index 70% rename from src/client/java/dev/spiritstudios/hollow/datagen/ClientBlockMetatagProvider.java rename to src/client/java/dev/spiritstudios/hollow/datagen/HollowClientBlockMetatagProvider.java index 94d86a9..b69d97a 100644 --- a/src/client/java/dev/spiritstudios/hollow/datagen/ClientBlockMetatagProvider.java +++ b/src/client/java/dev/spiritstudios/hollow/datagen/HollowClientBlockMetatagProvider.java @@ -1,22 +1,23 @@ package dev.spiritstudios.hollow.datagen; import dev.spiritstudios.hollow.block.HollowLogBlock; -import dev.spiritstudios.hollow.registry.HollowBlocks; +import dev.spiritstudios.hollow.block.HollowBlocks; import dev.spiritstudios.specter.api.core.reflect.ReflectionHelper; import dev.spiritstudios.specter.api.registry.metatag.datagen.MetatagProvider; -import dev.spiritstudios.specter.api.render.BlockRenderLayer; -import dev.spiritstudios.specter.api.render.RenderMetatags; +import dev.spiritstudios.specter.api.render.client.BlockRenderLayer; +import dev.spiritstudios.specter.api.render.client.RenderMetatags; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.minecraft.block.Block; import net.minecraft.data.DataOutput; +import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.RegistryWrapper; import java.util.concurrent.CompletableFuture; import java.util.function.Consumer; -public class ClientBlockMetatagProvider extends MetatagProvider { - protected ClientBlockMetatagProvider(FabricDataOutput dataOutput, CompletableFuture registriesFuture) { - super(dataOutput, registriesFuture, DataOutput.OutputType.RESOURCE_PACK); +public class HollowClientBlockMetatagProvider extends MetatagProvider { + protected HollowClientBlockMetatagProvider(FabricDataOutput dataOutput, CompletableFuture registriesFuture) { + super(dataOutput, RegistryKeys.BLOCK, registriesFuture, DataOutput.OutputType.RESOURCE_PACK); } @Override @@ -29,10 +30,6 @@ protected void configure(Consumer> provider, RegistryWr ).forEach(pair -> renderLayer.put(pair.value(), BlockRenderLayer.CUTOUT_MIPPED)); -// renderLayer.put(HollowBlocks.BLUE_WILDFLOWER, BlockRenderLayer.CUTOUT); -// renderLayer.put(HollowBlocks.WHITE_WILDFLOWER, BlockRenderLayer.CUTOUT); -// renderLayer.put(HollowBlocks.PURPLE_WILDFLOWER, BlockRenderLayer.CUTOUT); -// renderLayer.put(HollowBlocks.PINK_WILDFLOWER, BlockRenderLayer.CUTOUT); renderLayer.put(HollowBlocks.PAEONIA, BlockRenderLayer.CUTOUT); renderLayer.put(HollowBlocks.POTTED_PAEONIA, BlockRenderLayer.CUTOUT); renderLayer.put(HollowBlocks.ROOTED_ORCHID, BlockRenderLayer.CUTOUT); @@ -55,6 +52,6 @@ protected void configure(Consumer> provider, RegistryWr @Override public String getName() { - return super.getName() + " for Blocks (Client)"; + return super.getName() + " (Client)"; } } diff --git a/src/client/java/dev/spiritstudios/hollow/datagen/HollowDatagen.java b/src/client/java/dev/spiritstudios/hollow/datagen/HollowDatagen.java index edddacb..6a8c611 100644 --- a/src/client/java/dev/spiritstudios/hollow/datagen/HollowDatagen.java +++ b/src/client/java/dev/spiritstudios/hollow/datagen/HollowDatagen.java @@ -1,8 +1,9 @@ package dev.spiritstudios.hollow.datagen; -import dev.spiritstudios.hollow.datagen.tag.BiomeTagProvider; -import dev.spiritstudios.hollow.datagen.tag.BlockTagProvider; -import dev.spiritstudios.hollow.datagen.tag.EntityTypeTagProvider; +import dev.spiritstudios.hollow.component.CopperInstruments; +import dev.spiritstudios.hollow.entity.HollowDamageTypes; +import dev.spiritstudios.hollow.registry.HollowRegistryKeys; +import dev.spiritstudios.hollow.sound.HollowJukeboxSongs; import dev.spiritstudios.hollow.worldgen.feature.HollowConfiguredFeatures; import dev.spiritstudios.hollow.worldgen.feature.HollowPlacedFeatures; import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; @@ -17,28 +18,31 @@ public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { pack.addProvider(AdvancementProvider::new); - pack.addProvider(ModelProvider::new); - pack.addProvider(ClientBlockMetatagProvider::new); + pack.addProvider(HollowModelProvider::new); + pack.addProvider(HollowSoundsProvider::new); + pack.addProvider(HollowClientBlockMetatagProvider::new); pack.addProvider(LootTableProvider::new); - pack.addProvider(RecipeProvider::new); + pack.addProvider(HollowRecipeProvider::new); pack.addProvider(ConfiguredFeatureProvider::new); pack.addProvider(PlacedFeatureProvider::new); - pack.addProvider(BlockMetatagProvider::new); + pack.addProvider(HollowDamageTypeProvider::new); + pack.addProvider(HollowCopperInstrumentProvider::new); + pack.addProvider(HollowJukeboxSongProvider::new); - pack.addProvider(BlockTagProvider::new); - pack.addProvider(BiomeTagProvider::new); - pack.addProvider(EntityTypeTagProvider::new); + MetatagProviders.addAll(pack); + TagProviders.addAll(pack); } @Override public void buildRegistry(RegistryBuilder registryBuilder) { registryBuilder .addRegistry(RegistryKeys.CONFIGURED_FEATURE, HollowConfiguredFeatures::bootstrap) - .addRegistry(RegistryKeys.PLACED_FEATURE, HollowPlacedFeatures::bootstrap); + .addRegistry(RegistryKeys.PLACED_FEATURE, HollowPlacedFeatures::bootstrap) + .addRegistry(RegistryKeys.DAMAGE_TYPE, HollowDamageTypes::bootstrap) + .addRegistry(RegistryKeys.JUKEBOX_SONG, HollowJukeboxSongs::bootstrap) + .addRegistry(HollowRegistryKeys.COPPER_INSTRUMENT, CopperInstruments::bootstrap); } - - } diff --git a/src/client/java/dev/spiritstudios/hollow/datagen/HollowModelProvider.java b/src/client/java/dev/spiritstudios/hollow/datagen/HollowModelProvider.java new file mode 100644 index 0000000..4ce1d4c --- /dev/null +++ b/src/client/java/dev/spiritstudios/hollow/datagen/HollowModelProvider.java @@ -0,0 +1,388 @@ +package dev.spiritstudios.hollow.datagen; + +import com.google.common.collect.ImmutableMap; +import dev.spiritstudios.hollow.block.CattailStemBlock; +import dev.spiritstudios.hollow.block.GiantLilyPadBlock; +import dev.spiritstudios.hollow.block.HollowLogBlock; +import dev.spiritstudios.hollow.block.PolyporeBlock; +import dev.spiritstudios.hollow.block.SculkJawBlock; +import dev.spiritstudios.hollow.block.StoneChestBlock; +import dev.spiritstudios.hollow.block.VerticalDoubleBlock; +import dev.spiritstudios.hollow.block.HollowBlocks; +import dev.spiritstudios.hollow.item.HollowItems; +import dev.spiritstudios.specter.api.core.exception.UnreachableException; +import dev.spiritstudios.specter.api.core.reflect.ReflectionHelper; +import net.fabricmc.fabric.api.client.datagen.v1.provider.FabricModelProvider; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.minecraft.block.Block; +import net.minecraft.block.Blocks; +import net.minecraft.block.enums.ChestType; +import net.minecraft.block.enums.DoubleBlockHalf; +import net.minecraft.client.data.BlockModelDefinitionCreator; +import net.minecraft.client.data.BlockStateModelGenerator; +import net.minecraft.client.data.BlockStateVariantMap; +import net.minecraft.client.data.ItemModelGenerator; +import net.minecraft.client.data.ItemModels; +import net.minecraft.client.data.Model; +import net.minecraft.client.data.ModelIds; +import net.minecraft.client.data.Models; +import net.minecraft.client.data.TextureKey; +import net.minecraft.client.data.TextureMap; +import net.minecraft.client.data.TexturedModel; +import net.minecraft.client.data.VariantsBlockModelDefinitionCreator; +import net.minecraft.client.render.model.json.ModelVariant; +import net.minecraft.client.render.model.json.ModelVariantOperator; +import net.minecraft.client.render.model.json.WeightedVariant; +import net.minecraft.registry.Registries; +import net.minecraft.state.property.Properties; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.Direction; + +import java.util.Map; +import java.util.Optional; + +import static dev.spiritstudios.hollow.Hollow.MODID; +import static dev.spiritstudios.hollow.Hollow.id; +import static net.minecraft.client.data.BlockStateModelGenerator.NO_OP; +import static net.minecraft.client.data.BlockStateModelGenerator.ROTATE_X_270; +import static net.minecraft.client.data.BlockStateModelGenerator.ROTATE_X_90; +import static net.minecraft.client.data.BlockStateModelGenerator.ROTATE_Y_180; +import static net.minecraft.client.data.BlockStateModelGenerator.ROTATE_Y_270; +import static net.minecraft.client.data.BlockStateModelGenerator.ROTATE_Y_90; +import static net.minecraft.client.data.BlockStateModelGenerator.createBooleanModelMap; +import static net.minecraft.client.data.BlockStateModelGenerator.createModelVariant; +import static net.minecraft.client.data.BlockStateModelGenerator.createWeightedVariant; +import static net.minecraft.client.data.BlockStateModelGenerator.modelWithYRotation; + +public class HollowModelProvider extends FabricModelProvider { + private static final BlockStateVariantMap NORTH_DEFAULT_HORIZONTAL_ROTATION_OPERATIONS = BlockStateVariantMap.operations(Properties.HORIZONTAL_FACING) + .register(Direction.EAST, ROTATE_Y_90) + .register(Direction.SOUTH, ROTATE_Y_180) + .register(Direction.WEST, ROTATE_Y_270) + .register(Direction.NORTH, NO_OP); + + private static final BlockStateVariantMap NORTH_DEFAULT_ROTATION_OPERATIONS = BlockStateVariantMap.operations(Properties.FACING) + .register(Direction.DOWN, ROTATE_X_90) + .register(Direction.UP, ROTATE_X_270) + .register(Direction.NORTH, NO_OP) + .register(Direction.SOUTH, ROTATE_Y_180) + .register(Direction.WEST, ROTATE_Y_270) + .register(Direction.EAST, ROTATE_Y_90); + + public HollowModelProvider(FabricDataOutput output) { + super(output); + } + + @Override + public void generateBlockStateModels(BlockStateModelGenerator generator) { + ReflectionHelper.getStaticFields(HollowBlocks.class, HollowLogBlock.class) + .forEach(pair -> registerHollowLog(generator, pair.value())); + + generator.registerFlowerPotPlantAndItem(HollowBlocks.PAEONIA, HollowBlocks.POTTED_PAEONIA, BlockStateModelGenerator.CrossType.NOT_TINTED); + + generator.registerFlowerPotPlantAndItem(HollowBlocks.ROOTED_ORCHID, HollowBlocks.POTTED_ROOTED_ORCHID, BlockStateModelGenerator.CrossType.NOT_TINTED); + + generator.registerDoubleBlock(HollowBlocks.CAMPION, BlockStateModelGenerator.CrossType.NOT_TINTED); + generator.registerItemModel(HollowBlocks.CAMPION.asItem()); + + + registerWithRandomHorizontalRotations(generator, HollowBlocks.TWIG); + registerWithRandomHorizontalRotations(generator, HollowBlocks.LOTUS_LILYPAD); + + generator.registerNorthDefaultHorizontalRotation(HollowBlocks.ECHOING_POT); + registerDoubleTallRotated(HollowBlocks.ECHOING_VASE, generator, false); + registerDoubleTallRotated(HollowBlocks.SCREAMING_VASE, generator, true); + + registerSculkJaw(generator); + + registerStoneChest(HollowBlocks.STONE_CHEST, generator); + generator.registerItemModel( + HollowBlocks.STONE_CHEST.asItem(), + ModelIds.getBlockModelId(HollowBlocks.STONE_CHEST) + ); + + registerStoneChest(HollowBlocks.STONE_CHEST_LID, generator); + generator.registerItemModel( + HollowBlocks.STONE_CHEST_LID.asItem(), + ModelIds.getBlockModelId(HollowBlocks.STONE_CHEST_LID) + ); + + + registerGiantLilypad(generator); + registerCattailStem(generator); + + registerPolypore(generator); + generator.registerItemModel(HollowBlocks.POLYPORE.asItem()); + + generator.registerTintableCross( + HollowBlocks.CATTAIL, + BlockStateModelGenerator.CrossType.NOT_TINTED, + TextureMap.cross(HollowBlocks.CATTAIL) + ); + + generator.registerAxisRotated(HollowBlocks.COPPER_PILLAR, TexturedModel.END_FOR_TOP_CUBE_COLUMN, TexturedModel.END_FOR_TOP_CUBE_COLUMN_HORIZONTAL); + generator.registerAxisRotated(HollowBlocks.EXPOSED_COPPER_PILLAR, TexturedModel.END_FOR_TOP_CUBE_COLUMN, TexturedModel.END_FOR_TOP_CUBE_COLUMN_HORIZONTAL); + generator.registerAxisRotated(HollowBlocks.WEATHERED_COPPER_PILLAR, TexturedModel.END_FOR_TOP_CUBE_COLUMN, TexturedModel.END_FOR_TOP_CUBE_COLUMN_HORIZONTAL); + generator.registerAxisRotated(HollowBlocks.OXIDIZED_COPPER_PILLAR, TexturedModel.END_FOR_TOP_CUBE_COLUMN, TexturedModel.END_FOR_TOP_CUBE_COLUMN_HORIZONTAL); + + registerCopperPillarWaxed(generator, HollowBlocks.WAXED_COPPER_PILLAR, HollowBlocks.COPPER_PILLAR); + registerCopperPillarWaxed(generator, HollowBlocks.WAXED_EXPOSED_COPPER_PILLAR, HollowBlocks.EXPOSED_COPPER_PILLAR); + registerCopperPillarWaxed(generator, HollowBlocks.WAXED_WEATHERED_COPPER_PILLAR, HollowBlocks.WEATHERED_COPPER_PILLAR); + registerCopperPillarWaxed(generator, HollowBlocks.WAXED_OXIDIZED_COPPER_PILLAR, HollowBlocks.OXIDIZED_COPPER_PILLAR); + + generator.registerItemModel(HollowBlocks.JAR.asItem()); + generator.registerSimpleState(HollowBlocks.JAR); + + generator.registerItemModel(HollowBlocks.FIREFLY_JAR.asItem()); + generator.registerStateWithModelReference(HollowBlocks.FIREFLY_JAR, HollowBlocks.JAR); + } + + @Override + public void generateItemModels(ItemModelGenerator generator) { + generator.register(HollowItems.MUSIC_DISC_POSTMORTEM, Models.GENERATED); + +// generator.registerSpawnEgg( +// HollowItems.FIREFLY_SPAWN_EGG, +// 0x102F4E, 0xCAAF94 +// ); + + generator.registerCondition( + HollowItems.COPPER_HORN, + ItemModels.usingItemProperty(), + ItemModels.basic(Registries.ITEM.getId(HollowItems.COPPER_HORN).withPrefixedPath("item/tooting_")), + ItemModels.basic(ModelIds.getItemModelId(HollowItems.COPPER_HORN)) + ); + + generator.output.accept( + HollowItems.GIANT_LILYPAD, + ItemModels.tinted( + generator.upload( + HollowItems.GIANT_LILYPAD, + Models.GENERATED + ), + ItemModels.constantTintSource(0x71C35C), ItemModels.constantTintSource(-1) + ) + ); + + generator.output.accept( + HollowItems.LOTUS_LILYPAD, + ItemModels.tinted( + generator.uploadTwoLayers( + HollowItems.LOTUS_LILYPAD, + TextureMap.getId(Blocks.LILY_PAD), + TextureMap.getId(HollowItems.LOTUS_LILYPAD) + ), + ItemModels.constantTintSource(0x71C35C), ItemModels.constantTintSource(-1) + ) + ); + } + + // region Helpers + public final void registerSculkJaw(BlockStateModelGenerator generator) { + WeightedVariant inactive = createWeightedVariant(Models.CUBE_TOP.upload( + HollowBlocks.SCULK_JAW, + new TextureMap() + .put(TextureKey.TOP, TextureMap.getId(HollowBlocks.SCULK_JAW)) + .put(TextureKey.SIDE, TextureMap.getId(Blocks.SCULK)), + generator.modelCollector + )); + + WeightedVariant active = createWeightedVariant(Models.CUBE_TOP.upload( + ModelIds.getBlockSubModelId(HollowBlocks.SCULK_JAW, "_active"), + new TextureMap() + .put(TextureKey.TOP, TextureMap.getSubId(HollowBlocks.SCULK_JAW, "_active")) + .put(TextureKey.SIDE, TextureMap.getId(Blocks.SCULK)), + generator.modelCollector + )); + + generator.blockStateCollector.accept(VariantsBlockModelDefinitionCreator.of(HollowBlocks.SCULK_JAW) + .with(createBooleanModelMap( + SculkJawBlock.ACTIVE, + active, inactive + ))); + } + + public final void registerDoubleTallRotated(Block block, BlockStateModelGenerator generator, boolean up) { + generator.blockStateCollector.accept(VariantsBlockModelDefinitionCreator.of(block) + .with(BlockStateVariantMap.models(VerticalDoubleBlock.HALF) + .register(DoubleBlockHalf.LOWER, createWeightedVariant(ModelIds.getBlockModelId(block))) + .register(DoubleBlockHalf.UPPER, createWeightedVariant(ModelIds.getBlockSubModelId(block, "_upper"))) + ) + .coordinate(up ? NORTH_DEFAULT_ROTATION_OPERATIONS : NORTH_DEFAULT_HORIZONTAL_ROTATION_OPERATIONS)); + } + + public final void registerPolypore(BlockStateModelGenerator generator) { + generator.blockStateCollector.accept(VariantsBlockModelDefinitionCreator.of(HollowBlocks.POLYPORE) + .with(BlockStateVariantMap.models(PolyporeBlock.POLYPORE_AMOUNT) + .register( + 1, + createWeightedVariant(id("block/one_polypore")) + ) + .register( + 2, + createWeightedVariant(id("block/two_polypore")) + ) + .register( + 3, + createWeightedVariant(id("block/three_polypore")) + ) + ).coordinate(NORTH_DEFAULT_HORIZONTAL_ROTATION_OPERATIONS)); + } + + public final void registerStoneChest(Block block, BlockStateModelGenerator generator) { + generator.blockStateCollector.accept(VariantsBlockModelDefinitionCreator.of(block) + .with(BlockStateVariantMap.models(StoneChestBlock.CHEST_TYPE) + .register( + ChestType.SINGLE, + createWeightedVariant(ModelIds.getBlockModelId(block)) + ) + .register( + ChestType.LEFT, + createWeightedVariant(ModelIds.getBlockSubModelId(block, "_left")) + ) + .register( + ChestType.RIGHT, + createWeightedVariant(ModelIds.getBlockSubModelId(block, "_right")) + ) + ).coordinate(NORTH_DEFAULT_HORIZONTAL_ROTATION_OPERATIONS)); + } + + private void registerWithRandomHorizontalRotations(BlockStateModelGenerator generator, Block block) { + ModelVariant modelVariant = createModelVariant(ModelIds.getBlockModelId(block)); + generator.blockStateCollector.accept(VariantsBlockModelDefinitionCreator.of(block, modelWithYRotation(modelVariant))); + } + + public final void registerCattailStem(BlockStateModelGenerator generator) { + Identifier middle = Models.CROSS.upload( + HollowBlocks.CATTAIL_STEM, + TextureMap.cross(HollowBlocks.CATTAIL_STEM), + generator.modelCollector + ); + + Identifier middle2 = Models.CROSS.upload( + ModelIds.getBlockSubModelId(HollowBlocks.CATTAIL_STEM, "_2"), + TextureMap.cross(TextureMap.getSubId(HollowBlocks.CATTAIL_STEM, "_2")), + generator.modelCollector + ); + + Identifier bottom = Models.CROSS.upload( + ModelIds.getBlockSubModelId(HollowBlocks.CATTAIL_STEM, "_bottom"), + TextureMap.cross(TextureMap.getSubId(HollowBlocks.CATTAIL_STEM, "_bottom")), + generator.modelCollector + ); + + generator.blockStateCollector.accept(VariantsBlockModelDefinitionCreator.of(HollowBlocks.CATTAIL_STEM) + .with(createBooleanModelMap( + CattailStemBlock.BOTTOM, + createWeightedVariant(bottom), + createWeightedVariant(createModelVariant(middle), createModelVariant(middle2)) + ))); + } + + private static void registerHollowLog(BlockStateModelGenerator generator, HollowLogBlock block) { + Identifier hollowLog = HollowTexturedModels.HOLLOW_LOG.upload(block, generator.modelCollector); + Identifier hollowLogHorizontal = HollowTexturedModels.HOLLOW_LOG_HORIZONTAL.upload(block, generator.modelCollector); + Identifier hollowLogHorizontalMoss = HollowTexturedModels.HOLLOW_LOG_HORIZONTAL_MOSS.upload(block, generator.modelCollector); + Identifier hollowLogHorizontalPaleMoss = HollowTexturedModels.HOLLOW_LOG_HORIZONTAL_PALE_MOSS.upload(block, generator.modelCollector); + Identifier hollowLogHorizontalSnow = HollowTexturedModels.HOLLOW_LOG_HORIZONTAL_SNOW.upload(block, generator.modelCollector); + + generator.blockStateCollector.accept(createAxisRotatedBlockStateWithLayer(block, hollowLog, hollowLogHorizontal, hollowLogHorizontalMoss, hollowLogHorizontalPaleMoss, hollowLogHorizontalSnow)); + } + + private static void registerCopperPillarWaxed(BlockStateModelGenerator blockStateModelGenerator, Block block, Block unWaxed) { + blockStateModelGenerator.registerAxisRotated( + block, + TexturedModel.makeFactory(b -> TextureMap.sideAndEndForTop(unWaxed), Models.CUBE_COLUMN), + TexturedModel.makeFactory(b -> TextureMap.sideAndEndForTop(unWaxed), Models.CUBE_COLUMN_HORIZONTAL) + ); + } + + private static void registerGiantLilypad(BlockStateModelGenerator generator) { + WeightedVariant[] modelIds = new WeightedVariant[4]; + for (int i = 0; i < 4; i++) { + TextureMap textureMap = TextureMap.texture(TextureMap.getSubId( + HollowBlocks.GIANT_LILYPAD, "_" + i + )); + Model model = new Model( + Optional.of(Identifier.of(MODID, "block/giant_lilypad_template")), + Optional.of("_" + i), + TextureKey.TEXTURE + ); + + modelIds[i] = createWeightedVariant(model.upload(HollowBlocks.GIANT_LILYPAD, textureMap, generator.modelCollector)); + } + + Map north = ImmutableMap.of( + GiantLilyPadBlock.Piece.NORTH_WEST, modelIds[1], + GiantLilyPadBlock.Piece.NORTH_EAST, modelIds[0], + GiantLilyPadBlock.Piece.SOUTH_EAST, modelIds[3], + GiantLilyPadBlock.Piece.SOUTH_WEST, modelIds[2] + ); + + Map south = ImmutableMap.of( + GiantLilyPadBlock.Piece.NORTH_WEST, modelIds[3], + GiantLilyPadBlock.Piece.NORTH_EAST, modelIds[2], + GiantLilyPadBlock.Piece.SOUTH_EAST, modelIds[1], + GiantLilyPadBlock.Piece.SOUTH_WEST, modelIds[0] + ); + + Map east = ImmutableMap.of( + GiantLilyPadBlock.Piece.NORTH_WEST, modelIds[2], + GiantLilyPadBlock.Piece.NORTH_EAST, modelIds[1], + GiantLilyPadBlock.Piece.SOUTH_EAST, modelIds[0], + GiantLilyPadBlock.Piece.SOUTH_WEST, modelIds[3] + ); + + Map west = ImmutableMap.of( + GiantLilyPadBlock.Piece.NORTH_WEST, modelIds[0], + GiantLilyPadBlock.Piece.NORTH_EAST, modelIds[3], + GiantLilyPadBlock.Piece.SOUTH_EAST, modelIds[2], + GiantLilyPadBlock.Piece.SOUTH_WEST, modelIds[1] + ); + + generator.blockStateCollector.accept(VariantsBlockModelDefinitionCreator.of(HollowBlocks.GIANT_LILYPAD) + .with(BlockStateVariantMap.models(GiantLilyPadBlock.FACING, GiantLilyPadBlock.PIECE).generate( + (direction, piece) -> (switch (direction) { + case DOWN, UP -> throw new UnreachableException(); + case NORTH -> north.get(piece); + case SOUTH -> south.get(piece); + case EAST -> east.get(piece); + case WEST -> west.get(piece); + }).apply(facingNorthDefault(direction)) + ))); + } + + private static BlockModelDefinitionCreator createAxisRotatedBlockStateWithLayer(Block block, Identifier verticalModelId, Identifier horizontalModelId, Identifier horizontalMossModelId, Identifier horizontalPaleMossModelId, Identifier horizontalSnowModelId) { + return VariantsBlockModelDefinitionCreator.of(block) + .with(BlockStateVariantMap.models(Properties.AXIS, HollowLogBlock.LAYER) + .generate((axis, layer) -> switch (axis) { + case Y -> createWeightedVariant(verticalModelId); + case X, Z -> createWeightedVariant(switch (layer) { + case NONE -> horizontalModelId; + case MOSS -> horizontalMossModelId; + case PALE_MOSS -> horizontalPaleMossModelId; + case SNOW -> horizontalSnowModelId; + }).apply(axisNorthDefault(axis)); + })); + } + + private static ModelVariantOperator axisNorthDefault(Direction.Axis axis) { + return switch (axis) { + case Y -> NO_OP; + case Z -> ROTATE_X_90; + case X -> ROTATE_X_90.then(ROTATE_Y_90); + }; + } + + private static ModelVariantOperator facingNorthDefault(Direction direction) { + return switch (direction) { + case Direction.DOWN -> ROTATE_X_90; + case Direction.UP -> ROTATE_X_270; + case Direction.NORTH -> NO_OP; + case Direction.SOUTH -> ROTATE_Y_180; + case Direction.WEST -> ROTATE_Y_270; + case Direction.EAST -> ROTATE_Y_90; + }; + } + // endregion +} diff --git a/src/client/java/dev/spiritstudios/hollow/datagen/HollowModels.java b/src/client/java/dev/spiritstudios/hollow/datagen/HollowModels.java new file mode 100644 index 0000000..75ecfcb --- /dev/null +++ b/src/client/java/dev/spiritstudios/hollow/datagen/HollowModels.java @@ -0,0 +1,41 @@ +package dev.spiritstudios.hollow.datagen; + +import dev.spiritstudios.hollow.Hollow; +import net.minecraft.client.data.Model; +import net.minecraft.client.data.TextureKey; + +import java.util.Optional; + +import static dev.spiritstudios.hollow.datagen.HollowTextureKeys.OVERLAY; +import static net.minecraft.client.data.TextureKey.END; +import static net.minecraft.client.data.TextureKey.INSIDE; +import static net.minecraft.client.data.TextureKey.SIDE; + +public final class HollowModels { + public static final Model HOLLOW_LOG = block("hollow_log", SIDE, INSIDE, END); + public static final Model HOLLOW_LOG_HORIZONTAL = block("hollow_log_horizontal", "_horizontal", SIDE, INSIDE, END); + + public static final Model HOLLOW_LOG_HORIZONTAL_MOSS = hollowLogHorizontalOverlay("moss"); + public static final Model HOLLOW_LOG_HORIZONTAL_PALE_MOSS = hollowLogHorizontalOverlay("pale_moss"); + public static final Model HOLLOW_LOG_HORIZONTAL_SNOW = hollowLogHorizontalOverlay("snow"); + + private static Model make(TextureKey... requiredTextureKeys) { + return new Model(Optional.empty(), Optional.empty(), requiredTextureKeys); + } + + private static Model block(String parent, TextureKey... requiredTextureKeys) { + return new Model(Optional.of(Hollow.id("block/" + parent)), Optional.empty(), requiredTextureKeys); + } + + private static Model item(String parent, TextureKey... requiredTextureKeys) { + return new Model(Optional.of(Hollow.id("item/" + parent)), Optional.empty(), requiredTextureKeys); + } + + private static Model block(String parent, String variant, TextureKey... requiredTextureKeys) { + return new Model(Optional.of(Hollow.id("block/" + parent)), Optional.of(variant), requiredTextureKeys); + } + + private static Model hollowLogHorizontalOverlay(String overlay) { + return block("hollow_log_horizontal_layer", "_horizontal_" + overlay, SIDE, INSIDE, END, OVERLAY); + } +} diff --git a/src/client/java/dev/spiritstudios/hollow/datagen/HollowSoundsProvider.java b/src/client/java/dev/spiritstudios/hollow/datagen/HollowSoundsProvider.java new file mode 100644 index 0000000..86d5398 --- /dev/null +++ b/src/client/java/dev/spiritstudios/hollow/datagen/HollowSoundsProvider.java @@ -0,0 +1,146 @@ +package dev.spiritstudios.hollow.datagen; + +import dev.spiritstudios.hollow.Hollow; +import dev.spiritstudios.hollow.sound.HollowSoundEvents; +import net.fabricmc.fabric.api.client.datagen.v1.builder.SoundTypeBuilder; +import net.fabricmc.fabric.api.client.datagen.v1.provider.FabricSoundsProvider; +import net.minecraft.data.DataOutput; +import net.minecraft.registry.RegistryWrapper; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvent; +import net.minecraft.sound.SoundEvents; +import net.minecraft.util.Identifier; + +import java.util.concurrent.CompletableFuture; + +public final class HollowSoundsProvider extends FabricSoundsProvider { + public HollowSoundsProvider(DataOutput output, CompletableFuture registriesFuture) { + super(output, registriesFuture); + } + + @Override + protected void configure(RegistryWrapper.WrapperLookup wrapperLookup, SoundExporter exporter) { + exporter.add( + HollowSoundEvents.MUSIC_DISC_POSTMORTEM, + SoundTypeBuilder.of() + .sound(ofFile("records/postmortem").stream(true)) + .category(SoundCategory.RECORDS) + ); + + exporter.add( + HollowSoundEvents.MUSIC_OVERWORLD_BIRCH_FOREST, + SoundTypeBuilder.of() + .sound(ofFile("music/game/birch_forest/wildflower").stream(true).volume(0.4F)) + .sound(ofFile("music/game/birch_forest/floraison").stream(true).volume(0.4F)) + .category(SoundCategory.MUSIC) + ); + + exporter.add( + HollowSoundEvents.BLOCK_STONE_CHEST_EXTRACT, + SoundTypeBuilder.of(HollowSoundEvents.BLOCK_STONE_CHEST_EXTRACT) + .sound(ofVanillaFile("block/decorated_pot/insert1").volume(0.9F)) + .sound(ofVanillaFile("block/decorated_pot/insert2").volume(0.9F)) + .sound(ofVanillaFile("block/decorated_pot/insert3").volume(0.9F)) + .sound(ofVanillaFile("block/decorated_pot/insert4").volume(0.9F)) + .category(SoundCategory.BLOCKS) + ); + + exporter.add( + HollowSoundEvents.BLOCK_SCULK_JAW_BITE, + SoundTypeBuilder.of(HollowSoundEvents.BLOCK_SCULK_JAW_BITE) + .sound(ofVanillaFile("mob/goat/horn_break1").volume(0.9F)) + .sound(ofVanillaFile("mob/goat/horn_break2").volume(0.9F)) + .sound(ofVanillaFile("mob/goat/horn_break3").volume(0.9F)) + .sound(ofVanillaFile("mob/goat/horn_break4").volume(0.9F)) + .category(SoundCategory.BLOCKS) + ); + + // region Copper Horn + addCopperHornCall(exporter, HollowSoundEvents.ITEM_COPPER_HORN_CALL_GREAT, "great"); + addCopperHornCall(exporter, HollowSoundEvents.ITEM_COPPER_HORN_CALL_OLD, "old"); + addCopperHornCall(exporter, HollowSoundEvents.ITEM_COPPER_HORN_CALL_PURE, "pure"); + addCopperHornCall(exporter, HollowSoundEvents.ITEM_COPPER_HORN_CALL_HUMBLE, "humble"); + addCopperHornCall(exporter, HollowSoundEvents.ITEM_COPPER_HORN_CALL_DRY, "dry"); + addCopperHornCall(exporter, HollowSoundEvents.ITEM_COPPER_HORN_CALL_CLEAR, "clear"); + addCopperHornCall(exporter, HollowSoundEvents.ITEM_COPPER_HORN_CALL_FRESH, "fresh"); + addCopperHornCall(exporter, HollowSoundEvents.ITEM_COPPER_HORN_CALL_SECRET, "secret"); + addCopperHornCall(exporter, HollowSoundEvents.ITEM_COPPER_HORN_CALL_FEARLESS, "fearless"); + addCopperHornCall(exporter, HollowSoundEvents.ITEM_COPPER_HORN_CALL_SWEET, "sweet"); + + addCopperHornMelody(exporter, HollowSoundEvents.ITEM_COPPER_HORN_MELODY_SKY, "sky"); + addCopperHornMelody(exporter, HollowSoundEvents.ITEM_COPPER_HORN_MELODY_HYMN, "hymn"); + addCopperHornMelody(exporter, HollowSoundEvents.ITEM_COPPER_HORN_MELODY_WATER, "water"); + addCopperHornMelody(exporter, HollowSoundEvents.ITEM_COPPER_HORN_MELODY_FIRE, "fire"); + addCopperHornMelody(exporter, HollowSoundEvents.ITEM_COPPER_HORN_MELODY_URGE, "urge"); + addCopperHornMelody(exporter, HollowSoundEvents.ITEM_COPPER_HORN_MELODY_TEMPER, "temper"); + addCopperHornMelody(exporter, HollowSoundEvents.ITEM_COPPER_HORN_MELODY_NEST, "nest"); + addCopperHornMelody(exporter, HollowSoundEvents.ITEM_COPPER_HORN_MELODY_LAKE, "lake"); + addCopperHornMelody(exporter, HollowSoundEvents.ITEM_COPPER_HORN_MELODY_RIVER, "river"); + addCopperHornMelody(exporter, HollowSoundEvents.ITEM_COPPER_HORN_MELODY_MOON, "moon"); + + addCopperHornBass(exporter, HollowSoundEvents.ITEM_COPPER_HORN_BASS_FALLING, "falling"); + addCopperHornBass(exporter, HollowSoundEvents.ITEM_COPPER_HORN_BASS_RESTING, "resting"); + addCopperHornBass(exporter, HollowSoundEvents.ITEM_COPPER_HORN_BASS_DESIRE, "desire"); + addCopperHornBass(exporter, HollowSoundEvents.ITEM_COPPER_HORN_BASS_MEMORY, "memory"); + addCopperHornBass(exporter, HollowSoundEvents.ITEM_COPPER_HORN_BASS_ANGER, "anger"); + addCopperHornBass(exporter, HollowSoundEvents.ITEM_COPPER_HORN_BASS_JOURNEY, "journey"); + addCopperHornBass(exporter, HollowSoundEvents.ITEM_COPPER_HORN_BASS_THOUGHT, "thought"); + addCopperHornBass(exporter, HollowSoundEvents.ITEM_COPPER_HORN_BASS_TEAR, "tear"); + + exporter.add( + HollowSoundEvents.ITEM_COPPER_HORN_BASS_GIFT, + SoundTypeBuilder.of(HollowSoundEvents.ITEM_COPPER_HORN_BASS_GIFT) + .sound(ofFile("item/copper_horn/bass/gift").pitch(1.07F)) + ); + + exporter.add( + HollowSoundEvents.ITEM_COPPER_HORN_BASS_LOVE, + SoundTypeBuilder.of(HollowSoundEvents.ITEM_COPPER_HORN_BASS_LOVE) + .sound(ofFile("item/copper_horn/bass/love").pitch(1.7F)) + ); + + // endregion + + // Vanilla Additions + exporter.add( + SoundEvents.MUSIC_OVERWORLD_SWAMP, + SoundTypeBuilder.of() + .sound(ofFile("music/game/swamp/waterlily").stream(true).volume(0.4F)) + ); + + exporter.add( + SoundEvents.MUSIC_OVERWORLD_DEEP_DARK, + SoundTypeBuilder.of() + .sound(ofFile("music/game/echo").stream(true)) + ); + } + + private void addCopperHorn(SoundExporter exporter, SoundEvent event, String type, String name) { + exporter.add(event, SoundTypeBuilder.of(event).sound(ofFile("item/copper_horn/" + type + "/" + name))); + } + + private void addCopperHornCall(SoundExporter exporter, SoundEvent event, String name) { + addCopperHorn(exporter, event, "call", name); + } + + private void addCopperHornMelody(SoundExporter exporter, SoundEvent event, String name) { + addCopperHorn(exporter, event, "melody", name); + } + + private void addCopperHornBass(SoundExporter exporter, SoundEvent event, String name) { + addCopperHorn(exporter, event, "bass", name); + } + + private SoundTypeBuilder.EntryBuilder ofFile(String path) { + return SoundTypeBuilder.EntryBuilder.ofFile(Hollow.id(path)); + } + + private SoundTypeBuilder.EntryBuilder ofVanillaFile(String path) { + return SoundTypeBuilder.EntryBuilder.ofFile(Identifier.ofVanilla(path)); + } + + @Override + public String getName() { + return "Sound Events"; + } +} diff --git a/src/client/java/dev/spiritstudios/hollow/datagen/HollowTextureKeys.java b/src/client/java/dev/spiritstudios/hollow/datagen/HollowTextureKeys.java new file mode 100644 index 0000000..a75e647 --- /dev/null +++ b/src/client/java/dev/spiritstudios/hollow/datagen/HollowTextureKeys.java @@ -0,0 +1,7 @@ +package dev.spiritstudios.hollow.datagen; + +import net.minecraft.client.data.TextureKey; + +public final class HollowTextureKeys { + public static final TextureKey OVERLAY = TextureKey.of("overlay"); +} diff --git a/src/client/java/dev/spiritstudios/hollow/datagen/HollowTextureMaps.java b/src/client/java/dev/spiritstudios/hollow/datagen/HollowTextureMaps.java new file mode 100644 index 0000000..464c095 --- /dev/null +++ b/src/client/java/dev/spiritstudios/hollow/datagen/HollowTextureMaps.java @@ -0,0 +1,34 @@ +package dev.spiritstudios.hollow.datagen; + +import dev.spiritstudios.hollow.block.HollowLogBlock; +import net.minecraft.block.Block; +import net.minecraft.client.data.TextureMap; +import net.minecraft.util.Identifier; + +import static dev.spiritstudios.hollow.datagen.HollowTextureKeys.OVERLAY; +import static net.minecraft.client.data.TextureKey.END; +import static net.minecraft.client.data.TextureKey.INSIDE; +import static net.minecraft.client.data.TextureKey.SIDE; + +public final class HollowTextureMaps { + public static TextureMap hollowLog(Block block) { + if (!(block instanceof HollowLogBlock hollowLog)) + throw new IllegalArgumentException(); + + return new TextureMap() + .put(SIDE, hollowLog.typeData.sideTexture()) + .put(INSIDE, hollowLog.typeData.insideTexture()) + .put(END, hollowLog.typeData.endTexture()); + } + + public static TextureMap hollowLogOverlay(Block block, Identifier overlay) { + if (!(block instanceof HollowLogBlock hollowLog)) + throw new IllegalArgumentException(); + + return new TextureMap() + .put(SIDE, hollowLog.typeData.sideTexture()) + .put(INSIDE, hollowLog.typeData.insideTexture()) + .put(END, hollowLog.typeData.endTexture()) + .put(OVERLAY, overlay); + } +} diff --git a/src/client/java/dev/spiritstudios/hollow/datagen/HollowTexturedModels.java b/src/client/java/dev/spiritstudios/hollow/datagen/HollowTexturedModels.java new file mode 100644 index 0000000..7c373b3 --- /dev/null +++ b/src/client/java/dev/spiritstudios/hollow/datagen/HollowTexturedModels.java @@ -0,0 +1,31 @@ +package dev.spiritstudios.hollow.datagen; + +import dev.spiritstudios.hollow.Hollow; +import net.minecraft.client.data.TexturedModel; + +public final class HollowTexturedModels { + public static final TexturedModel.Factory HOLLOW_LOG = TexturedModel.makeFactory( + HollowTextureMaps::hollowLog, + HollowModels.HOLLOW_LOG + ); + + public static final TexturedModel.Factory HOLLOW_LOG_HORIZONTAL = TexturedModel.makeFactory( + HollowTextureMaps::hollowLog, + HollowModels.HOLLOW_LOG_HORIZONTAL + ); + + public static final TexturedModel.Factory HOLLOW_LOG_HORIZONTAL_MOSS = TexturedModel.makeFactory( + block -> HollowTextureMaps.hollowLogOverlay(block, Hollow.id("block/moss_overlay")), + HollowModels.HOLLOW_LOG_HORIZONTAL_MOSS + ); + + public static final TexturedModel.Factory HOLLOW_LOG_HORIZONTAL_PALE_MOSS = TexturedModel.makeFactory( + block -> HollowTextureMaps.hollowLogOverlay(block, Hollow.id("block/pale_moss_overlay")), + HollowModels.HOLLOW_LOG_HORIZONTAL_PALE_MOSS + ); + + public static final TexturedModel.Factory HOLLOW_LOG_HORIZONTAL_SNOW = TexturedModel.makeFactory( + block -> HollowTextureMaps.hollowLogOverlay(block, Hollow.id("block/snow_overlay")), + HollowModels.HOLLOW_LOG_HORIZONTAL_SNOW + ); +} diff --git a/src/client/java/dev/spiritstudios/hollow/lambdynamiclights/FireflyEntityLuminance.java b/src/client/java/dev/spiritstudios/hollow/lambdynamiclights/FireflyEntityLuminance.java new file mode 100644 index 0000000..9a2efb9 --- /dev/null +++ b/src/client/java/dev/spiritstudios/hollow/lambdynamiclights/FireflyEntityLuminance.java @@ -0,0 +1,30 @@ +package dev.spiritstudios.hollow.lambdynamiclights; + +import dev.lambdaurora.lambdynlights.api.entity.luminance.EntityLuminance; +import dev.lambdaurora.lambdynlights.api.item.ItemLightSourceManager; +import dev.spiritstudios.hollow.entity.FireflyEntity; +import net.minecraft.entity.Entity; +import net.minecraft.util.math.MathHelper; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Range; + +public class FireflyEntityLuminance implements EntityLuminance { + public static final FireflyEntityLuminance INSTANCE = new FireflyEntityLuminance(); + + private FireflyEntityLuminance() { + } + + @Override + public @NotNull EntityLuminance.Type type() { + return HollowDynamicLights.FIREFLY_LUMINANCE; + } + + @Override + public @Range(from = 0, to = 15) int getLuminance(@NotNull ItemLightSourceManager itemLightSourceManager, @NotNull Entity entity) { + if (entity instanceof FireflyEntity firefly) { + return MathHelper.floor(MathHelper.clampedLerp(15.0F, 0.0F, (1.0F - firefly.getLightTicks() / 10.0F))); + } + + return 0; + } +} diff --git a/src/client/java/dev/spiritstudios/hollow/lambdynamiclights/HollowDynamicLights.java b/src/client/java/dev/spiritstudios/hollow/lambdynamiclights/HollowDynamicLights.java new file mode 100644 index 0000000..6010051 --- /dev/null +++ b/src/client/java/dev/spiritstudios/hollow/lambdynamiclights/HollowDynamicLights.java @@ -0,0 +1,22 @@ +package dev.spiritstudios.hollow.lambdynamiclights; + +import dev.lambdaurora.lambdynlights.api.DynamicLightsContext; +import dev.lambdaurora.lambdynlights.api.DynamicLightsInitializer; +import dev.lambdaurora.lambdynlights.api.entity.luminance.EntityLuminance; +import dev.spiritstudios.hollow.Hollow; +import dev.spiritstudios.hollow.entity.HollowEntityTypes; + +public class HollowDynamicLights implements DynamicLightsInitializer { + public static final EntityLuminance.Type FIREFLY_LUMINANCE = EntityLuminance.Type.registerSimple( + Hollow.id("firefly"), + FireflyEntityLuminance.INSTANCE + ); + + @Override + public void onInitializeDynamicLights(DynamicLightsContext context) { + context.entityLightSourceManager().onRegisterEvent().register(registerContext -> registerContext.register( + HollowEntityTypes.FIREFLY, + FireflyEntityLuminance.INSTANCE + )); + } +} diff --git a/src/client/java/dev/spiritstudios/hollow/mixin/client/BackgroundRendererMixin.java b/src/client/java/dev/spiritstudios/hollow/mixin/client/BackgroundRendererMixin.java index 84f8c6a..b819e9c 100644 --- a/src/client/java/dev/spiritstudios/hollow/mixin/client/BackgroundRendererMixin.java +++ b/src/client/java/dev/spiritstudios/hollow/mixin/client/BackgroundRendererMixin.java @@ -1,5 +1,7 @@ package dev.spiritstudios.hollow.mixin.client; +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.llamalad7.mixinextras.sugar.Local; import dev.spiritstudios.hollow.HollowConfig; import dev.spiritstudios.hollow.data.HollowBiomeTags; @@ -7,17 +9,18 @@ import net.minecraft.block.enums.CameraSubmersionType; import net.minecraft.client.render.BackgroundRenderer; import net.minecraft.client.render.Camera; +import net.minecraft.client.render.Fog; import net.minecraft.client.render.FogShape; import net.minecraft.entity.Entity; import net.minecraft.util.math.MathHelper; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(BackgroundRenderer.class) public abstract class BackgroundRendererMixin { + @Shadow private static boolean fogEnabled; @Unique private static float prevEnd; @@ -30,25 +33,26 @@ public abstract class BackgroundRendererMixin { @Unique private static final float DURATION = 50F; - @Inject(method = "applyFog", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/systems/RenderSystem;setShaderFogStart(F)V", shift = At.Shift.BEFORE)) - private static void applyCloserFog( - Camera camera, - BackgroundRenderer.FogType fogType, - float viewDistance, - boolean thickFog, - float tickDelta, - CallbackInfo ci, - @Local BackgroundRenderer.FogData fogData, - @Local Entity entity + @WrapOperation(method = "applyFog", at = @At(value = "NEW", target = "(FFLnet/minecraft/client/render/FogShape;FFFF)Lnet/minecraft/client/render/Fog;")) + private static Fog applyCloserFog( + float fogStart, float fogEnd, + FogShape fogShape, + float r, float g, float b, float a, + Operation original, + @Local(argsOnly = true) Camera camera, + @Local(ordinal = 0, argsOnly = true) float viewDistance, + @Local(ordinal = 1, argsOnly = true) float tickDelta ) { - if (!HollowConfig.INSTANCE.closerFog.get()) return; - if (camera.getSubmersionType() == CameraSubmersionType.WATER) return; + if (camera.getSubmersionType() == CameraSubmersionType.WATER || !HollowConfig.INSTANCE.closerFog.get()) + return original.call(fogStart, fogEnd, fogShape, r, g, b, a); + + Entity entity = camera.getFocusedEntity(); boolean closerFog = entity.getWorld().getBiome(entity.getBlockPos()).isIn(HollowBiomeTags.HAS_CLOSER_FOG); if (closerFog) { if (prevStart == 0.0F && prevEnd == 0.0F) { - prevEnd = fogData.fogEnd; - prevStart = fogData.fogStart; + prevEnd = fogEnd; + prevStart = fogStart; transitionProgress = 0.0F; } @@ -56,21 +60,22 @@ private static void applyCloserFog( } else if (transitionProgress > 0.0F) transitionProgress -= tickDelta; if (transitionProgress > 0.0F) { - fogData.fogStart = (float) Easing.QUINT.out( + fogStart = (float) Easing.QUINT.out( transitionProgress, prevStart, viewDistance * 0.05F, DURATION ); - fogData.fogEnd = (float) Easing.QUINT.out( + fogEnd = (float) Easing.QUINT.out( transitionProgress, prevEnd, Math.min(viewDistance, 148) * 0.5F, DURATION ); - fogData.fogShape = FogShape.SPHERE; + fogShape = FogShape.SPHERE; } transitionProgress = MathHelper.clamp(transitionProgress, 0.0F, DURATION); + return original.call(fogStart, fogEnd, fogShape, r, g, b, a); } } diff --git a/src/client/java/dev/spiritstudios/hollow/particle/FireflyJarParticle.java b/src/client/java/dev/spiritstudios/hollow/particle/FireflyJarParticle.java index ce76c00..0fbda5f 100644 --- a/src/client/java/dev/spiritstudios/hollow/particle/FireflyJarParticle.java +++ b/src/client/java/dev/spiritstudios/hollow/particle/FireflyJarParticle.java @@ -1,5 +1,6 @@ package dev.spiritstudios.hollow.particle; +import dev.spiritstudios.specter.api.core.math.Easing; import net.minecraft.client.particle.*; import net.minecraft.client.world.ClientWorld; import net.minecraft.particle.SimpleParticleType; @@ -47,16 +48,15 @@ public void tick() { this.z += xMover ? newXZ : -newXZ; this.y += counterClockwise ? newY : -newY; - if (this.age < 20 && this.alpha < 1.0F) this.alpha += 0.05f; - if (this.age > this.maxAge - 20 && this.alpha > 0.0F) this.alpha -= 0.05f; + this.alpha = (float) Easing.QUART.yoyoOutIn(age, 0, 1, getMaxAge()); if (this.age >= this.maxAge) this.markDead(); - int color = ColorHelper.Argb.lerp(MathHelper.clampedLerp(0.0F, 15.0F, (1.0F - lightTicks / 10.0F)) / 15.0F, 0xFF92CF40, 0xFF1A1E1B); + int color = ColorHelper.lerp(MathHelper.clampedLerp(0.0F, 15.0F, (1.0F - lightTicks / 10.0F)) / 15.0F, 0xFF92CF40, 0xFF1A1E1B); - this.red = ColorHelper.Argb.getRed(color) / 255f; - this.green = ColorHelper.Argb.getGreen(color) / 255f; - this.blue = ColorHelper.Argb.getBlue(color) / 255f; + this.red = ColorHelper.getRed(color) / 255f; + this.green = ColorHelper.getGreen(color) / 255f; + this.blue = ColorHelper.getBlue(color) / 255f; } public static class Factory implements ParticleFactory { diff --git a/src/client/java/dev/spiritstudios/hollow/particle/ScreamParticle.java b/src/client/java/dev/spiritstudios/hollow/particle/ScreamParticle.java new file mode 100644 index 0000000..f76a13e --- /dev/null +++ b/src/client/java/dev/spiritstudios/hollow/particle/ScreamParticle.java @@ -0,0 +1,191 @@ +package dev.spiritstudios.hollow.particle; + +import dev.spiritstudios.specter.api.core.math.Easing; +import net.minecraft.client.particle.Particle; +import net.minecraft.client.particle.ParticleFactory; +import net.minecraft.client.particle.ParticleTextureSheet; +import net.minecraft.client.particle.SpriteBillboardParticle; +import net.minecraft.client.particle.SpriteProvider; +import net.minecraft.client.render.Camera; +import net.minecraft.client.render.LightmapTextureManager; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.world.ClientWorld; +import net.minecraft.particle.SimpleParticleType; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec3d; +import org.jetbrains.annotations.Nullable; +import org.joml.Quaternionf; +import org.joml.Vector3f; + +public class ScreamParticle extends SpriteBillboardParticle { + public static final Quaternionf FLAT = new Quaternionf().rotationXYZ( + -MathHelper.HALF_PI, + 0, + 0 + ); + + protected ScreamParticle(ClientWorld clientWorld, SpriteProvider spriteProvider, double x, double y, double z) { + super(clientWorld, x, y, z); + + this.setBoundingBoxSpacing(0.01F, 0.01F); + this.setSprite(spriteProvider); + this.scale = 10; + this.maxAge = 50; + + this.collidesWithWorld = false; + this.velocityMultiplier = 1.0F; + this.gravityStrength = 0.0F; + } + + + @Override + public float getSize(float tickDelta) { + return (float) Easing.CIRC.out(Math.min(age + tickDelta, getMaxAge()), 0, scale, getMaxAge()); + } + + @Override + public void render(VertexConsumer vertexConsumer, Camera camera, float tickProgress) { + this.alpha = 1.0F - MathHelper.clamp(((float) this.age + tickProgress) / (float) this.maxAge, 0.0F, 1.0F); + + Quaternionf relativeRotation = getRotation( + camera, + 0, + new Vector3f((float) x, (float) y, (float) z) + ); + + this.renderQuad( + vertexConsumer, + new Vector3f(0, MathHelper.EPSILON, 0), + camera, + relativeRotation, + tickProgress, + getSize(tickProgress) + ); + } + + @Override + public void tick() { + age++; + + this.lastX = this.x; + this.lastY = this.y; + this.lastZ = this.z; + + if (alpha < 0.0F) this.markDead(); + } + + @Override + public ParticleTextureSheet getType() { + return ParticleTextureSheet.PARTICLE_SHEET_TRANSLUCENT; + } + + public static class Factory implements ParticleFactory { + private final SpriteProvider spriteProvider; + + public Factory(SpriteProvider spriteProvider) { + this.spriteProvider = spriteProvider; + } + + @Override + public @Nullable Particle createParticle(SimpleParticleType parameters, ClientWorld world, double x, double y, double z, double velocityX, double velocityY, double velocityZ) { + ScreamParticle particle = new ScreamParticle( + world, + this.spriteProvider, + x, y, z + ); + + particle.setColor(1.0F, 1.0F, 0.75F); + particle.setVelocity(velocityX, velocityY, velocityZ); + + return particle; + } + } + + public static Quaternionf getRotation(Camera camera, double z, Vector3f pos) { + Quaternionf rotation = new Quaternionf(FLAT); + + Vector3f forward = new Vector3f(0, 0, -1).rotate(rotation); + Vector3f cameraDelta = pos.sub(camera.getPos().toVector3f()); + + if (forward.dot(cameraDelta) < 0) rotation.rotateY(MathHelper.PI); + + rotation.rotateZ((float) z); + + return rotation; + } + + protected void renderQuad(VertexConsumer vertexConsumer, Vector3f offset, Camera camera, Quaternionf rotation, float tickDelta, float size) { + Vec3d pos = camera.getPos(); + float x = (float) (MathHelper.lerp(tickDelta, this.lastX + offset.x, this.x + offset.x) - pos.getX()); + float y = (float) (MathHelper.lerp(tickDelta, this.lastY + offset.y, this.y + offset.y) - pos.getY()); + float z = (float) (MathHelper.lerp(tickDelta, this.lastZ + offset.z, this.z + offset.z) - pos.getZ()); + + int brightness = this.getBrightness(tickDelta); + + this.quad( + vertexConsumer, + rotation, + x, + y, + z, + 1.0F, + -1.0F, + size, + this.getMaxU(), + this.getMaxV(), + brightness + ); + + this.quad( + vertexConsumer, + rotation, + x, + y, + z, + 1.0F, + 1.0F, + size, + this.getMaxU(), + this.getMinV(), + brightness + ); + + this.quad( + vertexConsumer, + rotation, + x, + y, + z, + -1.0F, + 1.0F, + size, + this.getMinU(), + this.getMinV(), + brightness + ); + + this.quad( + vertexConsumer, + rotation, + x, + y, + z, + -1.0F, + -1.0F, + size, + this.getMinU(), + this.getMaxV(), + brightness + ); + } + + @Override + protected int getBrightness(float tint) { + return LightmapTextureManager.MAX_BLOCK_LIGHT_COORDINATE; + } + + private void quad(VertexConsumer vertexConsumer, Quaternionf quaternionf, float f, float g, float h, float i, float j, float k, float l, float m, int n) { + Vector3f vector3f = (new Vector3f(i, j, 0.0F)).rotate(quaternionf).mul(k).add(f, g, h); + vertexConsumer.vertex(vector3f.x(), vector3f.y(), vector3f.z()).texture(l, m).color(this.red, this.green, this.blue, this.alpha).light(n); + } +} \ No newline at end of file diff --git a/src/client/java/dev/spiritstudios/hollow/render/block/EchoingPotBlockEntityRenderer.java b/src/client/java/dev/spiritstudios/hollow/render/block/EchoingPotBlockEntityRenderer.java index 6380d92..6233709 100644 --- a/src/client/java/dev/spiritstudios/hollow/render/block/EchoingPotBlockEntityRenderer.java +++ b/src/client/java/dev/spiritstudios/hollow/render/block/EchoingPotBlockEntityRenderer.java @@ -1,19 +1,14 @@ package dev.spiritstudios.hollow.render.block; import dev.spiritstudios.hollow.block.entity.EchoingPotBlockEntity; -import dev.spiritstudios.specter.api.render.block.BlockModelBlockEntityRenderer; +import dev.spiritstudios.specter.api.render.client.block.BlockModelBlockEntityRenderer; import net.minecraft.block.entity.DecoratedPotBlockEntity; -import net.minecraft.client.render.RenderLayers; -import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.block.BlockRenderManager; -import net.minecraft.client.render.block.entity.BlockEntityRenderer; import net.minecraft.client.render.block.entity.BlockEntityRendererFactory; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.RotationAxis; - -import java.util.Objects; +import net.minecraft.util.math.Vec3d; public class EchoingPotBlockEntityRenderer extends BlockModelBlockEntityRenderer { @@ -22,12 +17,12 @@ public EchoingPotBlockEntityRenderer(BlockEntityRendererFactory.Context context) } @Override - public void render(EchoingPotBlockEntity entity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) { + public void render(EchoingPotBlockEntity entity, float tickProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, Vec3d cameraPos) { matrices.push(); DecoratedPotBlockEntity.WobbleType wobbleType = entity.lastWobbleType; if (wobbleType != null && entity.getWorld() != null) { - float wobbleProgress = ((float) (entity.getWorld().getTime() - entity.lastWobbleTime) + tickDelta) / (float) wobbleType.lengthInTicks; + float wobbleProgress = ((float) (entity.getWorld().getTime() - entity.lastWobbleTime) + tickProgress) / (float) wobbleType.lengthInTicks; if (wobbleProgress >= 0.0F && wobbleProgress <= 1.0F) { if (wobbleType == DecoratedPotBlockEntity.WobbleType.POSITIVE) { float progressRadians = wobbleProgress * MathHelper.TAU; @@ -48,7 +43,7 @@ public void render(EchoingPotBlockEntity entity, float tickDelta, MatrixStack ma } } - renderBlockModel(entity, matrices, vertexConsumers, light, overlay); + renderBlockModel(entity, matrices, vertexConsumers, overlay); matrices.pop(); } diff --git a/src/client/java/dev/spiritstudios/hollow/render/block/EchoingVaseBlockEntityRenderer.java b/src/client/java/dev/spiritstudios/hollow/render/block/EchoingVaseBlockEntityRenderer.java new file mode 100644 index 0000000..3b55e32 --- /dev/null +++ b/src/client/java/dev/spiritstudios/hollow/render/block/EchoingVaseBlockEntityRenderer.java @@ -0,0 +1,94 @@ +package dev.spiritstudios.hollow.render.block; + +import dev.spiritstudios.hollow.block.entity.EchoingVaseBlockEntity; +import dev.spiritstudios.specter.api.core.math.Easing; +import dev.spiritstudios.specter.api.render.client.block.BlockModelBlockEntityRenderer; +import net.minecraft.block.entity.DecoratedPotBlockEntity; +import net.minecraft.block.enums.DoubleBlockHalf; +import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.block.entity.BlockEntityRendererFactory; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.state.property.Properties; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.RotationAxis; +import net.minecraft.util.math.Vec3d; +import org.joml.Vector3f; + +public class EchoingVaseBlockEntityRenderer extends BlockModelBlockEntityRenderer { + public EchoingVaseBlockEntityRenderer(BlockEntityRendererFactory.Context context) { + super(context); + } + + private static final float tiltAngle = 0.6283f / 2; + private static final float fallAngle = MathHelper.HALF_PI - tiltAngle; + + @Override + public void render(EchoingVaseBlockEntity entity, float tickProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, Vec3d cameraPos) { + + matrices.push(); + + DecoratedPotBlockEntity.WobbleType wobbleType = entity.lastWobbleType; + if (entity.getWorld() == null) { + renderBlockModel(entity, matrices, vertexConsumers, overlay); + + matrices.pop(); + return; + } + + if (entity.fallTime > 0) { + Vector3f fallDir = entity.fallDirection.getUnitVector(); + + if (entity.fallTime >= EchoingVaseBlockEntity.TILT_TIME) { + float pct = (float) Math.min(1, Easing.QUART.in((entity.fallTime - EchoingVaseBlockEntity.TILT_TIME + tickProgress) / (EchoingVaseBlockEntity.FALL_TIME - EchoingVaseBlockEntity.TILT_TIME))); + + float angle = Math.min( + tiltAngle + fallAngle * pct, + MathHelper.HALF_PI + ); + + matrices.multiply( + RotationAxis.of(entity.fallDirection.rotateYCounterclockwise().getUnitVector()).rotation(angle), + 0.5f + fallDir.x / 2, entity.getCachedState().get(Properties.DOUBLE_BLOCK_HALF).equals(DoubleBlockHalf.LOWER) ? 0 : -1, 0.5f + fallDir.z / 2 + ); + } else { + float pct = (entity.fallTime + tickProgress) / EchoingVaseBlockEntity.TILT_TIME; + float angle = (float) (tiltAngle * Easing.SINE.inOut(pct)); + + matrices.multiply( + RotationAxis.of(entity.fallDirection.rotateCounterclockwise(Direction.Axis.Y).getUnitVector()).rotation(angle), + 0.5f + fallDir.x / 2, entity.getCachedState().get(Properties.DOUBLE_BLOCK_HALF).equals(DoubleBlockHalf.LOWER) ? 0 : -1, 0.5f + fallDir.z / 2 + ); + } + } else if (wobbleType != null) { + float wobbleProgress = ((float) (entity.getWorld().getTime() - entity.lastWobbleTime) + tickProgress) / (float) wobbleType.lengthInTicks; + if (wobbleProgress >= 0.0F && wobbleProgress <= 1.0F) { + if (wobbleType == DecoratedPotBlockEntity.WobbleType.POSITIVE) { + float progressRadians = wobbleProgress * MathHelper.TAU; + + matrices.multiply( + RotationAxis.POSITIVE_X.rotation((-1.5F * (MathHelper.cos(progressRadians) + 0.5F) * MathHelper.sin(progressRadians / 2.0F)) * 0.015625F), + 0.5F, 0.0F, 0.5F + ); + + matrices.multiply( + RotationAxis.POSITIVE_Z.rotation(MathHelper.sin(progressRadians) * 0.015625F), + 0.5F, 0.0F, 0.5F + ); + } else matrices.multiply( + RotationAxis.POSITIVE_Y.rotation(MathHelper.sin(-wobbleProgress * 3.0F * MathHelper.PI) * 0.125F * (1.0F - wobbleProgress)), + 0.5F, 0.0F, 0.5F + ); + } + } + + renderBlockModel(entity, matrices, vertexConsumers, overlay); + + matrices.pop(); + } + + @Override + public boolean rendersOutsideBoundingBox(EchoingVaseBlockEntity blockEntity) { + return true; + } +} \ No newline at end of file diff --git a/src/client/java/dev/spiritstudios/hollow/render/block/JarBlockEntityRenderer.java b/src/client/java/dev/spiritstudios/hollow/render/block/JarBlockEntityRenderer.java new file mode 100644 index 0000000..3adf17f --- /dev/null +++ b/src/client/java/dev/spiritstudios/hollow/render/block/JarBlockEntityRenderer.java @@ -0,0 +1,64 @@ +package dev.spiritstudios.hollow.render.block; + +import dev.spiritstudios.hollow.block.entity.JarBlockEntity; +import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.block.entity.BlockEntityRenderer; +import net.minecraft.client.render.block.entity.BlockEntityRendererFactory; +import net.minecraft.client.render.item.ItemRenderer; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.item.ItemDisplayContext; +import net.minecraft.item.ItemStack; +import net.minecraft.util.collection.DefaultedList; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.RotationAxis; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.World; + +public class JarBlockEntityRenderer implements BlockEntityRenderer { + private final ItemRenderer itemRenderer; + + public JarBlockEntityRenderer(BlockEntityRendererFactory.Context ctx) { + this.itemRenderer = ctx.getItemRenderer(); + } + + + @Override + public void render(JarBlockEntity entity, float tickProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, Vec3d cameraPos) { + World world = entity.getWorld(); + DefaultedList items = entity.getItems(); + if (items.isEmpty() || world == null) return; + + matrices.push(); + matrices.translate(0.5F, 0.05F, 0.5F); + matrices.scale(0.45F, 0.45F, 0.45F); + matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(90.0F)); + + int index = 0; + float deg = 0; + + for (ItemStack item : items) { + matrices.translate(0.0F, 0.0F, -0.0625F); + long hashCode = MathHelper.hashCode(entity.getPos().getX(), index, entity.getPos().getY()); + float max = 0.05F; + + double x = MathHelper.clamp(((double)((float)(hashCode & 15L) / 15.0F) - 0.5) * 0.5, -max, max); + double z = MathHelper.clamp(((double)((float)(hashCode >> 8 & 15L) / 15.0F) - 0.5) * 0.5, -max, max); + + deg += MathHelper.clamp(((double)((float)(hashCode >> 16 & 15L) / 15.0F) - 0.5) * 0.5, -max, max) * 5000; + + matrices.push(); + + matrices.translate(x, z, 0); + + matrices.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(deg)); + + this.itemRenderer.renderItem(item, ItemDisplayContext.FIXED, light, overlay, matrices, vertexConsumers, world, (int) entity.getPos().asLong() + index); + + matrices.pop(); + + index++; + } + + matrices.pop(); + } +} diff --git a/src/client/java/dev/spiritstudios/hollow/render/entity/FireflyEntityRenderState.java b/src/client/java/dev/spiritstudios/hollow/render/entity/FireflyEntityRenderState.java new file mode 100644 index 0000000..ea44a98 --- /dev/null +++ b/src/client/java/dev/spiritstudios/hollow/render/entity/FireflyEntityRenderState.java @@ -0,0 +1,8 @@ +package dev.spiritstudios.hollow.render.entity; + +import net.minecraft.client.render.entity.state.LivingEntityRenderState; + +public class FireflyEntityRenderState extends LivingEntityRenderState { + public boolean isJeb; + public int lightTicks; +} diff --git a/src/client/java/dev/spiritstudios/hollow/render/entity/FireflyEntityRenderer.java b/src/client/java/dev/spiritstudios/hollow/render/entity/FireflyEntityRenderer.java index dca3811..6dbcb6b 100644 --- a/src/client/java/dev/spiritstudios/hollow/render/entity/FireflyEntityRenderer.java +++ b/src/client/java/dev/spiritstudios/hollow/render/entity/FireflyEntityRenderer.java @@ -9,12 +9,13 @@ import net.minecraft.client.render.entity.EntityRenderer; import net.minecraft.client.render.entity.EntityRendererFactory; import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.util.Formatting; import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.RotationAxis; -public class FireflyEntityRenderer extends EntityRenderer { +public class FireflyEntityRenderer extends EntityRenderer { private static final Identifier TEXTURE = Hollow.id("textures/entity/firefly.png"); private static final RenderLayer LAYER = RenderLayer.getEntityCutoutNoCull(TEXTURE); @@ -23,13 +24,8 @@ public FireflyEntityRenderer(EntityRendererFactory.Context ctx) { } @Override - public Identifier getTexture(FireflyEntity entity) { - return TEXTURE; - } - - @Override - public void render(FireflyEntity entity, float yaw, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light) { - super.render(entity, yaw, tickDelta, matrices, vertexConsumers, light); + public void render(FireflyEntityRenderState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light) { + super.render(state, matrices, vertexConsumers, light); matrices.push(); matrices.multiply(this.dispatcher.getRotation()); @@ -37,25 +33,19 @@ public void render(FireflyEntity entity, float yaw, float tickDelta, MatrixStack VertexConsumer vertexConsumer = vertexConsumers.getBuffer(LAYER); - boolean isJeb = entity.hasCustomName() && "jeb_".equals(entity.getName().getString()); + float delta = MathHelper.clamp(1.0F - state.lightTicks / 10.0F, 0, 1); - float delta = MathHelper.clampedLerp( - 0.0F, - 1.0F, - 1.0F - entity.getLightTicks() / 10.0F - ); - - float r = !isJeb ? + float r = !state.isJeb ? MathHelper.lerp(delta, 146, 48) : - MathHelper.sin(entity.age * 0.1F) * 128F + 128F; + MathHelper.sin(state.age * 0.1F) * 128F + 128F; - float g = !isJeb ? + float g = !state.isJeb ? MathHelper.lerp(delta, 207, 53) : - MathHelper.sin(entity.age * 0.1F + (240.0F * MathHelper.RADIANS_PER_DEGREE)) * 128.0F + 128.0F; + MathHelper.sin(state.age * 0.1F + (240.0F * MathHelper.RADIANS_PER_DEGREE)) * 128.0F + 128.0F; - float b = !isJeb ? + float b = !state.isJeb ? MathHelper.lerp(delta, 64, 47) : - MathHelper.sin(entity.age * 0.1F + (120.0F * MathHelper.RADIANS_PER_DEGREE)) * 128.0F + 128.0F; + MathHelper.sin(state.age * 0.1F + (120.0F * MathHelper.RADIANS_PER_DEGREE)) * 128.0F + 128.0F; r /= 255F; g /= 255F; @@ -75,17 +65,26 @@ protected int getBlockLight(FireflyEntity entity, BlockPos pos) { return 15; } + @Override + public FireflyEntityRenderState createRenderState() { + return new FireflyEntityRenderState(); + } + + @Override + public void updateRenderState(FireflyEntity entity, FireflyEntityRenderState state, float tickDelta) { + super.updateRenderState(entity, state, tickDelta); + + state.lightTicks = entity.getLightTicks(); + state.isJeb = "jeb_".equals(Formatting.strip(entity.getName().getString())); + } + private void renderVertex( VertexConsumer vertexConsumer, MatrixStack.Entry entry, - float x, - float y, - float u, - float v, + float x, float y, + float u, float v, int light, - float r, - float g, - float b + float r, float g, float b ) { vertexConsumer.vertex(entry, x - 0.5F, y - 0.25F, 0.0F) .color(r, g, b, 1.0F) diff --git a/src/client/java/dev/spiritstudios/hollow/render/entity/JarBlockEntityRenderer.java b/src/client/java/dev/spiritstudios/hollow/render/entity/JarBlockEntityRenderer.java deleted file mode 100644 index e0c81ea..0000000 --- a/src/client/java/dev/spiritstudios/hollow/render/entity/JarBlockEntityRenderer.java +++ /dev/null @@ -1,41 +0,0 @@ -package dev.spiritstudios.hollow.render.entity; - -import dev.spiritstudios.hollow.block.entity.JarBlockEntity; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.block.entity.BlockEntityRenderer; -import net.minecraft.client.render.block.entity.BlockEntityRendererFactory; -import net.minecraft.client.render.item.ItemRenderer; -import net.minecraft.client.render.model.json.ModelTransformationMode; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.item.ItemStack; -import net.minecraft.util.collection.DefaultedList; -import net.minecraft.util.math.RotationAxis; -import net.minecraft.world.World; - -public class JarBlockEntityRenderer implements BlockEntityRenderer { - private final ItemRenderer itemRenderer; - - public JarBlockEntityRenderer(BlockEntityRendererFactory.Context ctx) { - this.itemRenderer = ctx.getItemRenderer(); - } - - @Override - public void render(JarBlockEntity blockEntity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) { - World world = blockEntity.getWorld(); - DefaultedList items = blockEntity.getItems(); - if (items.isEmpty() || world == null) return; - - matrices.push(); - matrices.translate(0.5F, 0.05F, 0.5F); - matrices.scale(0.45F, 0.45F, 0.45F); - matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(90.0F)); - - for (ItemStack item : items) { - matrices.translate(0.0F, 0.0F, -0.0625F); - matrices.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(22.5F)); - this.itemRenderer.renderItem(item, ModelTransformationMode.FIXED, light, overlay, matrices, vertexConsumers, world, (int) blockEntity.getPos().asLong()); - } - - matrices.pop(); - } -} diff --git a/src/main/generated/assets/hollow/blockstates/acacia_hollow_log.json b/src/main/generated/assets/hollow/blockstates/acacia_hollow_log.json index 89ffc2f..d264ef0 100644 --- a/src/main/generated/assets/hollow/blockstates/acacia_hollow_log.json +++ b/src/main/generated/assets/hollow/blockstates/acacia_hollow_log.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/acacia_hollow_log_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/acacia_hollow_log_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/acacia_hollow_log_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/acacia_hollow_log_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/acacia_hollow_log_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/acacia_hollow_log" + }, + "axis=y,layer=none": { + "model": "hollow:block/acacia_hollow_log" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/acacia_hollow_log" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/acacia_hollow_log" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/acacia_hollow_log_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/acacia_hollow_log_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/acacia_hollow_log_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/acacia_hollow_log_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/acacia_hollow_log_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/blockstates/birch_hollow_log.json b/src/main/generated/assets/hollow/blockstates/birch_hollow_log.json index 7f9e356..58c8a69 100644 --- a/src/main/generated/assets/hollow/blockstates/birch_hollow_log.json +++ b/src/main/generated/assets/hollow/blockstates/birch_hollow_log.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/birch_hollow_log_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/birch_hollow_log_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/birch_hollow_log_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/birch_hollow_log_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/birch_hollow_log_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/birch_hollow_log" + }, + "axis=y,layer=none": { + "model": "hollow:block/birch_hollow_log" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/birch_hollow_log" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/birch_hollow_log" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/birch_hollow_log_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/birch_hollow_log_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/birch_hollow_log_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/birch_hollow_log_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/birch_hollow_log_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/blockstates/cattail_stem.json b/src/main/generated/assets/hollow/blockstates/cattail_stem.json new file mode 100644 index 0000000..eee016d --- /dev/null +++ b/src/main/generated/assets/hollow/blockstates/cattail_stem.json @@ -0,0 +1,15 @@ +{ + "variants": { + "bottom=false": [ + { + "model": "hollow:block/cattail_stem" + }, + { + "model": "hollow:block/cattail_stem_2" + } + ], + "bottom=true": { + "model": "hollow:block/cattail_stem_bottom" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/blockstates/cherry_hollow_log.json b/src/main/generated/assets/hollow/blockstates/cherry_hollow_log.json index 19d77be..51999a6 100644 --- a/src/main/generated/assets/hollow/blockstates/cherry_hollow_log.json +++ b/src/main/generated/assets/hollow/blockstates/cherry_hollow_log.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/cherry_hollow_log_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/cherry_hollow_log_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/cherry_hollow_log_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/cherry_hollow_log_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/cherry_hollow_log_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/cherry_hollow_log" + }, + "axis=y,layer=none": { + "model": "hollow:block/cherry_hollow_log" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/cherry_hollow_log" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/cherry_hollow_log" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/cherry_hollow_log_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/cherry_hollow_log_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/cherry_hollow_log_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/cherry_hollow_log_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/cherry_hollow_log_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/blockstates/crimson_hollow_stem.json b/src/main/generated/assets/hollow/blockstates/crimson_hollow_stem.json index c5447a5..600b6f8 100644 --- a/src/main/generated/assets/hollow/blockstates/crimson_hollow_stem.json +++ b/src/main/generated/assets/hollow/blockstates/crimson_hollow_stem.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/crimson_hollow_stem_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/crimson_hollow_stem_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/crimson_hollow_stem_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/crimson_hollow_stem_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/crimson_hollow_stem_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/crimson_hollow_stem" + }, + "axis=y,layer=none": { + "model": "hollow:block/crimson_hollow_stem" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/crimson_hollow_stem" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/crimson_hollow_stem" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/crimson_hollow_stem_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/crimson_hollow_stem_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/crimson_hollow_stem_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/crimson_hollow_stem_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/crimson_hollow_stem_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/blockstates/dark_oak_hollow_log.json b/src/main/generated/assets/hollow/blockstates/dark_oak_hollow_log.json index aa4b391..f930178 100644 --- a/src/main/generated/assets/hollow/blockstates/dark_oak_hollow_log.json +++ b/src/main/generated/assets/hollow/blockstates/dark_oak_hollow_log.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/dark_oak_hollow_log_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/dark_oak_hollow_log_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/dark_oak_hollow_log_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/dark_oak_hollow_log_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/dark_oak_hollow_log_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/dark_oak_hollow_log" + }, + "axis=y,layer=none": { + "model": "hollow:block/dark_oak_hollow_log" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/dark_oak_hollow_log" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/dark_oak_hollow_log" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/dark_oak_hollow_log_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/dark_oak_hollow_log_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/dark_oak_hollow_log_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/dark_oak_hollow_log_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/dark_oak_hollow_log_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/blockstates/echoing_vase.json b/src/main/generated/assets/hollow/blockstates/echoing_vase.json new file mode 100644 index 0000000..0759d00 --- /dev/null +++ b/src/main/generated/assets/hollow/blockstates/echoing_vase.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=east,half=lower": { + "model": "hollow:block/echoing_vase", + "y": 90 + }, + "facing=east,half=upper": { + "model": "hollow:block/echoing_vase_upper", + "y": 90 + }, + "facing=north,half=lower": { + "model": "hollow:block/echoing_vase" + }, + "facing=north,half=upper": { + "model": "hollow:block/echoing_vase_upper" + }, + "facing=south,half=lower": { + "model": "hollow:block/echoing_vase", + "y": 180 + }, + "facing=south,half=upper": { + "model": "hollow:block/echoing_vase_upper", + "y": 180 + }, + "facing=west,half=lower": { + "model": "hollow:block/echoing_vase", + "y": 270 + }, + "facing=west,half=upper": { + "model": "hollow:block/echoing_vase_upper", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/blockstates/jungle_hollow_log.json b/src/main/generated/assets/hollow/blockstates/jungle_hollow_log.json index 1716717..724911b 100644 --- a/src/main/generated/assets/hollow/blockstates/jungle_hollow_log.json +++ b/src/main/generated/assets/hollow/blockstates/jungle_hollow_log.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/jungle_hollow_log_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/jungle_hollow_log_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/jungle_hollow_log_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/jungle_hollow_log_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/jungle_hollow_log_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/jungle_hollow_log" + }, + "axis=y,layer=none": { + "model": "hollow:block/jungle_hollow_log" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/jungle_hollow_log" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/jungle_hollow_log" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/jungle_hollow_log_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/jungle_hollow_log_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/jungle_hollow_log_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/jungle_hollow_log_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/jungle_hollow_log_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/blockstates/mangrove_hollow_log.json b/src/main/generated/assets/hollow/blockstates/mangrove_hollow_log.json index b4c258d..3d49687 100644 --- a/src/main/generated/assets/hollow/blockstates/mangrove_hollow_log.json +++ b/src/main/generated/assets/hollow/blockstates/mangrove_hollow_log.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/mangrove_hollow_log_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/mangrove_hollow_log_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/mangrove_hollow_log_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/mangrove_hollow_log_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/mangrove_hollow_log_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/mangrove_hollow_log" + }, + "axis=y,layer=none": { + "model": "hollow:block/mangrove_hollow_log" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/mangrove_hollow_log" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/mangrove_hollow_log" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/mangrove_hollow_log_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/mangrove_hollow_log_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/mangrove_hollow_log_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/mangrove_hollow_log_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/mangrove_hollow_log_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/blockstates/oak_hollow_log.json b/src/main/generated/assets/hollow/blockstates/oak_hollow_log.json index a041d2d..784517c 100644 --- a/src/main/generated/assets/hollow/blockstates/oak_hollow_log.json +++ b/src/main/generated/assets/hollow/blockstates/oak_hollow_log.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/oak_hollow_log_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/oak_hollow_log_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/oak_hollow_log_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/oak_hollow_log_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/oak_hollow_log_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/oak_hollow_log" + }, + "axis=y,layer=none": { + "model": "hollow:block/oak_hollow_log" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/oak_hollow_log" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/oak_hollow_log" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/oak_hollow_log_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/oak_hollow_log_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/oak_hollow_log_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/oak_hollow_log_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/oak_hollow_log_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/blockstates/pale_oak_hollow_log.json b/src/main/generated/assets/hollow/blockstates/pale_oak_hollow_log.json new file mode 100644 index 0000000..7a1a9e1 --- /dev/null +++ b/src/main/generated/assets/hollow/blockstates/pale_oak_hollow_log.json @@ -0,0 +1,52 @@ +{ + "variants": { + "axis=x,layer=moss": { + "model": "hollow:block/pale_oak_hollow_log_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { + "model": "hollow:block/pale_oak_hollow_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=x,layer=pale_moss": { + "model": "hollow:block/pale_oak_hollow_log_horizontal_pale_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=snow": { + "model": "hollow:block/pale_oak_hollow_log_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/pale_oak_hollow_log" + }, + "axis=y,layer=none": { + "model": "hollow:block/pale_oak_hollow_log" + }, + "axis=y,layer=pale_moss": { + "model": "hollow:block/pale_oak_hollow_log" + }, + "axis=y,layer=snow": { + "model": "hollow:block/pale_oak_hollow_log" + }, + "axis=z,layer=moss": { + "model": "hollow:block/pale_oak_hollow_log_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { + "model": "hollow:block/pale_oak_hollow_log_horizontal", + "x": 90 + }, + "axis=z,layer=pale_moss": { + "model": "hollow:block/pale_oak_hollow_log_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/pale_oak_hollow_log_horizontal_snow", + "x": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/blockstates/polypore.json b/src/main/generated/assets/hollow/blockstates/polypore.json similarity index 99% rename from src/main/resources/assets/hollow/blockstates/polypore.json rename to src/main/generated/assets/hollow/blockstates/polypore.json index 2d9f2c1..d79094d 100644 --- a/src/main/resources/assets/hollow/blockstates/polypore.json +++ b/src/main/generated/assets/hollow/blockstates/polypore.json @@ -2,50 +2,48 @@ "variants": { "amount=1,facing=east": { "model": "hollow:block/one_polypore", - "y": 180 + "y": 90 }, "amount=1,facing=north": { - "model": "hollow:block/one_polypore", - "y": 90 + "model": "hollow:block/one_polypore" }, "amount=1,facing=south": { "model": "hollow:block/one_polypore", - "y": 270 + "y": 180 }, "amount=1,facing=west": { - "model": "hollow:block/one_polypore" + "model": "hollow:block/one_polypore", + "y": 270 }, - "amount=2,facing=east": { "model": "hollow:block/two_polypore", - "y": 180 + "y": 90 }, "amount=2,facing=north": { - "model": "hollow:block/two_polypore", - "y": 90 + "model": "hollow:block/two_polypore" }, "amount=2,facing=south": { "model": "hollow:block/two_polypore", - "y": 270 + "y": 180 }, "amount=2,facing=west": { - "model": "hollow:block/two_polypore" + "model": "hollow:block/two_polypore", + "y": 270 }, - "amount=3,facing=east": { "model": "hollow:block/three_polypore", - "y": 180 + "y": 90 }, "amount=3,facing=north": { - "model": "hollow:block/three_polypore", - "y": 90 + "model": "hollow:block/three_polypore" }, "amount=3,facing=south": { "model": "hollow:block/three_polypore", - "y": 270 + "y": 180 }, "amount=3,facing=west": { - "model": "hollow:block/three_polypore" + "model": "hollow:block/three_polypore", + "y": 270 } } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/blockstates/screaming_vase.json b/src/main/generated/assets/hollow/blockstates/screaming_vase.json new file mode 100644 index 0000000..b725608 --- /dev/null +++ b/src/main/generated/assets/hollow/blockstates/screaming_vase.json @@ -0,0 +1,50 @@ +{ + "variants": { + "facing=down,half=lower": { + "model": "hollow:block/screaming_vase", + "x": 90 + }, + "facing=down,half=upper": { + "model": "hollow:block/screaming_vase_upper", + "x": 90 + }, + "facing=east,half=lower": { + "model": "hollow:block/screaming_vase", + "y": 90 + }, + "facing=east,half=upper": { + "model": "hollow:block/screaming_vase_upper", + "y": 90 + }, + "facing=north,half=lower": { + "model": "hollow:block/screaming_vase" + }, + "facing=north,half=upper": { + "model": "hollow:block/screaming_vase_upper" + }, + "facing=south,half=lower": { + "model": "hollow:block/screaming_vase", + "y": 180 + }, + "facing=south,half=upper": { + "model": "hollow:block/screaming_vase_upper", + "y": 180 + }, + "facing=up,half=lower": { + "model": "hollow:block/screaming_vase", + "x": 270 + }, + "facing=up,half=upper": { + "model": "hollow:block/screaming_vase_upper", + "x": 270 + }, + "facing=west,half=lower": { + "model": "hollow:block/screaming_vase", + "y": 270 + }, + "facing=west,half=upper": { + "model": "hollow:block/screaming_vase_upper", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/blockstates/spruce_hollow_log.json b/src/main/generated/assets/hollow/blockstates/spruce_hollow_log.json index bd1b8c1..87b5983 100644 --- a/src/main/generated/assets/hollow/blockstates/spruce_hollow_log.json +++ b/src/main/generated/assets/hollow/blockstates/spruce_hollow_log.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/spruce_hollow_log_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/spruce_hollow_log_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/spruce_hollow_log_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/spruce_hollow_log_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/spruce_hollow_log_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/spruce_hollow_log" + }, + "axis=y,layer=none": { + "model": "hollow:block/spruce_hollow_log" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/spruce_hollow_log" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/spruce_hollow_log" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/spruce_hollow_log_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/spruce_hollow_log_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/spruce_hollow_log_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/spruce_hollow_log_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/spruce_hollow_log_horizontal_snow", "x": 90 } } diff --git a/src/main/resources/assets/hollow/blockstates/stone_chest.json b/src/main/generated/assets/hollow/blockstates/stone_chest.json similarity index 66% rename from src/main/resources/assets/hollow/blockstates/stone_chest.json rename to src/main/generated/assets/hollow/blockstates/stone_chest.json index 769a8d8..448836c 100644 --- a/src/main/resources/assets/hollow/blockstates/stone_chest.json +++ b/src/main/generated/assets/hollow/blockstates/stone_chest.json @@ -1,52 +1,49 @@ { "variants": { - "type=single,facing=north": { - "model": "hollow:block/stone_chest" - }, - "type=left,facing=north": { - "model": "hollow:block/stone_chest_left" - }, - "type=right,facing=north": { - "model": "hollow:block/stone_chest_right" - }, - - "type=single,facing=east": { - "model": "hollow:block/stone_chest", - "y": 90 - }, - "type=left,facing=east": { + "facing=east,type=left": { "model": "hollow:block/stone_chest_left", "y": 90 }, - "type=right,facing=east": { + "facing=east,type=right": { "model": "hollow:block/stone_chest_right", "y": 90 }, - - "type=single,facing=south": { + "facing=east,type=single": { "model": "hollow:block/stone_chest", - "y": 180 + "y": 90 }, - "type=left,facing=south": { + "facing=north,type=left": { + "model": "hollow:block/stone_chest_left" + }, + "facing=north,type=right": { + "model": "hollow:block/stone_chest_right" + }, + "facing=north,type=single": { + "model": "hollow:block/stone_chest" + }, + "facing=south,type=left": { "model": "hollow:block/stone_chest_left", "y": 180 }, - "type=right,facing=south": { + "facing=south,type=right": { "model": "hollow:block/stone_chest_right", "y": 180 }, - - "type=single,facing=west": { + "facing=south,type=single": { "model": "hollow:block/stone_chest", - "y": 270 + "y": 180 }, - "type=left,facing=west": { + "facing=west,type=left": { "model": "hollow:block/stone_chest_left", "y": 270 }, - "type=right,facing=west": { + "facing=west,type=right": { "model": "hollow:block/stone_chest_right", "y": 270 + }, + "facing=west,type=single": { + "model": "hollow:block/stone_chest", + "y": 270 } } } \ No newline at end of file diff --git a/src/main/resources/assets/hollow/blockstates/stone_chest_lid.json b/src/main/generated/assets/hollow/blockstates/stone_chest_lid.json similarity index 67% rename from src/main/resources/assets/hollow/blockstates/stone_chest_lid.json rename to src/main/generated/assets/hollow/blockstates/stone_chest_lid.json index 19899d5..7ff49be 100644 --- a/src/main/resources/assets/hollow/blockstates/stone_chest_lid.json +++ b/src/main/generated/assets/hollow/blockstates/stone_chest_lid.json @@ -1,52 +1,49 @@ { "variants": { - "type=single,facing=north": { - "model": "hollow:block/stone_chest_lid" - }, - "type=left,facing=north": { - "model": "hollow:block/stone_chest_lid_left" - }, - "type=right,facing=north": { - "model": "hollow:block/stone_chest_lid_right" - }, - - "type=single,facing=east": { - "model": "hollow:block/stone_chest_lid", - "y": 90 - }, - "type=left,facing=east": { + "facing=east,type=left": { "model": "hollow:block/stone_chest_lid_left", "y": 90 }, - "type=right,facing=east": { + "facing=east,type=right": { "model": "hollow:block/stone_chest_lid_right", "y": 90 }, - - "type=single,facing=south": { + "facing=east,type=single": { "model": "hollow:block/stone_chest_lid", - "y": 180 + "y": 90 }, - "type=left,facing=south": { + "facing=north,type=left": { + "model": "hollow:block/stone_chest_lid_left" + }, + "facing=north,type=right": { + "model": "hollow:block/stone_chest_lid_right" + }, + "facing=north,type=single": { + "model": "hollow:block/stone_chest_lid" + }, + "facing=south,type=left": { "model": "hollow:block/stone_chest_lid_left", "y": 180 }, - "type=right,facing=south": { + "facing=south,type=right": { "model": "hollow:block/stone_chest_lid_right", "y": 180 }, - - "type=single,facing=west": { + "facing=south,type=single": { "model": "hollow:block/stone_chest_lid", - "y": 270 + "y": 180 }, - "type=left,facing=west": { + "facing=west,type=left": { "model": "hollow:block/stone_chest_lid_left", "y": 270 }, - "type=right,facing=west": { + "facing=west,type=right": { "model": "hollow:block/stone_chest_lid_right", "y": 270 + }, + "facing=west,type=single": { + "model": "hollow:block/stone_chest_lid", + "y": 270 } } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/blockstates/stripped_acacia_hollow_log.json b/src/main/generated/assets/hollow/blockstates/stripped_acacia_hollow_log.json index 24b589f..836f5be 100644 --- a/src/main/generated/assets/hollow/blockstates/stripped_acacia_hollow_log.json +++ b/src/main/generated/assets/hollow/blockstates/stripped_acacia_hollow_log.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/stripped_acacia_hollow_log_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/stripped_acacia_hollow_log_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/stripped_acacia_hollow_log_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/stripped_acacia_hollow_log_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/stripped_acacia_hollow_log_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/stripped_acacia_hollow_log" + }, + "axis=y,layer=none": { + "model": "hollow:block/stripped_acacia_hollow_log" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/stripped_acacia_hollow_log" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/stripped_acacia_hollow_log" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/stripped_acacia_hollow_log_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/stripped_acacia_hollow_log_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/stripped_acacia_hollow_log_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/stripped_acacia_hollow_log_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/stripped_acacia_hollow_log_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/blockstates/stripped_birch_hollow_log.json b/src/main/generated/assets/hollow/blockstates/stripped_birch_hollow_log.json index 03bdd67..cb5b58c 100644 --- a/src/main/generated/assets/hollow/blockstates/stripped_birch_hollow_log.json +++ b/src/main/generated/assets/hollow/blockstates/stripped_birch_hollow_log.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/stripped_birch_hollow_log_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/stripped_birch_hollow_log_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/stripped_birch_hollow_log_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/stripped_birch_hollow_log_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/stripped_birch_hollow_log_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/stripped_birch_hollow_log" + }, + "axis=y,layer=none": { + "model": "hollow:block/stripped_birch_hollow_log" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/stripped_birch_hollow_log" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/stripped_birch_hollow_log" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/stripped_birch_hollow_log_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/stripped_birch_hollow_log_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/stripped_birch_hollow_log_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/stripped_birch_hollow_log_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/stripped_birch_hollow_log_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/blockstates/stripped_cherry_hollow_log.json b/src/main/generated/assets/hollow/blockstates/stripped_cherry_hollow_log.json index 2ce6427..273dcf5 100644 --- a/src/main/generated/assets/hollow/blockstates/stripped_cherry_hollow_log.json +++ b/src/main/generated/assets/hollow/blockstates/stripped_cherry_hollow_log.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/stripped_cherry_hollow_log_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/stripped_cherry_hollow_log_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/stripped_cherry_hollow_log_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/stripped_cherry_hollow_log_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/stripped_cherry_hollow_log_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/stripped_cherry_hollow_log" + }, + "axis=y,layer=none": { + "model": "hollow:block/stripped_cherry_hollow_log" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/stripped_cherry_hollow_log" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/stripped_cherry_hollow_log" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/stripped_cherry_hollow_log_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/stripped_cherry_hollow_log_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/stripped_cherry_hollow_log_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/stripped_cherry_hollow_log_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/stripped_cherry_hollow_log_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/blockstates/stripped_crimson_hollow_stem.json b/src/main/generated/assets/hollow/blockstates/stripped_crimson_hollow_stem.json index 1fc0647..867e0d8 100644 --- a/src/main/generated/assets/hollow/blockstates/stripped_crimson_hollow_stem.json +++ b/src/main/generated/assets/hollow/blockstates/stripped_crimson_hollow_stem.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/stripped_crimson_hollow_stem_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/stripped_crimson_hollow_stem_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/stripped_crimson_hollow_stem_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/stripped_crimson_hollow_stem_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/stripped_crimson_hollow_stem_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/stripped_crimson_hollow_stem" + }, + "axis=y,layer=none": { + "model": "hollow:block/stripped_crimson_hollow_stem" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/stripped_crimson_hollow_stem" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/stripped_crimson_hollow_stem" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/stripped_crimson_hollow_stem_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/stripped_crimson_hollow_stem_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/stripped_crimson_hollow_stem_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/stripped_crimson_hollow_stem_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/stripped_crimson_hollow_stem_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/blockstates/stripped_dark_oak_hollow_log.json b/src/main/generated/assets/hollow/blockstates/stripped_dark_oak_hollow_log.json index 5ce0c22..cc499f6 100644 --- a/src/main/generated/assets/hollow/blockstates/stripped_dark_oak_hollow_log.json +++ b/src/main/generated/assets/hollow/blockstates/stripped_dark_oak_hollow_log.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/stripped_dark_oak_hollow_log_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/stripped_dark_oak_hollow_log_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/stripped_dark_oak_hollow_log_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/stripped_dark_oak_hollow_log_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/stripped_dark_oak_hollow_log_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/stripped_dark_oak_hollow_log" + }, + "axis=y,layer=none": { + "model": "hollow:block/stripped_dark_oak_hollow_log" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/stripped_dark_oak_hollow_log" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/stripped_dark_oak_hollow_log" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/stripped_dark_oak_hollow_log_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/stripped_dark_oak_hollow_log_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/stripped_dark_oak_hollow_log_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/stripped_dark_oak_hollow_log_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/stripped_dark_oak_hollow_log_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/blockstates/stripped_jungle_hollow_log.json b/src/main/generated/assets/hollow/blockstates/stripped_jungle_hollow_log.json index 9f0f517..861cb73 100644 --- a/src/main/generated/assets/hollow/blockstates/stripped_jungle_hollow_log.json +++ b/src/main/generated/assets/hollow/blockstates/stripped_jungle_hollow_log.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/stripped_jungle_hollow_log_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/stripped_jungle_hollow_log_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/stripped_jungle_hollow_log_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/stripped_jungle_hollow_log_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/stripped_jungle_hollow_log_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/stripped_jungle_hollow_log" + }, + "axis=y,layer=none": { + "model": "hollow:block/stripped_jungle_hollow_log" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/stripped_jungle_hollow_log" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/stripped_jungle_hollow_log" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/stripped_jungle_hollow_log_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/stripped_jungle_hollow_log_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/stripped_jungle_hollow_log_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/stripped_jungle_hollow_log_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/stripped_jungle_hollow_log_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/blockstates/stripped_mangrove_hollow_log.json b/src/main/generated/assets/hollow/blockstates/stripped_mangrove_hollow_log.json index c8f53f3..fc85017 100644 --- a/src/main/generated/assets/hollow/blockstates/stripped_mangrove_hollow_log.json +++ b/src/main/generated/assets/hollow/blockstates/stripped_mangrove_hollow_log.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/stripped_mangrove_hollow_log_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/stripped_mangrove_hollow_log_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/stripped_mangrove_hollow_log_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/stripped_mangrove_hollow_log_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/stripped_mangrove_hollow_log_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/stripped_mangrove_hollow_log" + }, + "axis=y,layer=none": { + "model": "hollow:block/stripped_mangrove_hollow_log" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/stripped_mangrove_hollow_log" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/stripped_mangrove_hollow_log" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/stripped_mangrove_hollow_log_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/stripped_mangrove_hollow_log_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/stripped_mangrove_hollow_log_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/stripped_mangrove_hollow_log_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/stripped_mangrove_hollow_log_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/blockstates/stripped_oak_hollow_log.json b/src/main/generated/assets/hollow/blockstates/stripped_oak_hollow_log.json index ee5b298..6920824 100644 --- a/src/main/generated/assets/hollow/blockstates/stripped_oak_hollow_log.json +++ b/src/main/generated/assets/hollow/blockstates/stripped_oak_hollow_log.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/stripped_oak_hollow_log_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/stripped_oak_hollow_log_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/stripped_oak_hollow_log_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/stripped_oak_hollow_log_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/stripped_oak_hollow_log_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/stripped_oak_hollow_log" + }, + "axis=y,layer=none": { + "model": "hollow:block/stripped_oak_hollow_log" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/stripped_oak_hollow_log" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/stripped_oak_hollow_log" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/stripped_oak_hollow_log_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/stripped_oak_hollow_log_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/stripped_oak_hollow_log_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/stripped_oak_hollow_log_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/stripped_oak_hollow_log_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/blockstates/stripped_pale_oak_hollow_log.json b/src/main/generated/assets/hollow/blockstates/stripped_pale_oak_hollow_log.json new file mode 100644 index 0000000..e5e3a67 --- /dev/null +++ b/src/main/generated/assets/hollow/blockstates/stripped_pale_oak_hollow_log.json @@ -0,0 +1,52 @@ +{ + "variants": { + "axis=x,layer=moss": { + "model": "hollow:block/stripped_pale_oak_hollow_log_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { + "model": "hollow:block/stripped_pale_oak_hollow_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=x,layer=pale_moss": { + "model": "hollow:block/stripped_pale_oak_hollow_log_horizontal_pale_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=snow": { + "model": "hollow:block/stripped_pale_oak_hollow_log_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/stripped_pale_oak_hollow_log" + }, + "axis=y,layer=none": { + "model": "hollow:block/stripped_pale_oak_hollow_log" + }, + "axis=y,layer=pale_moss": { + "model": "hollow:block/stripped_pale_oak_hollow_log" + }, + "axis=y,layer=snow": { + "model": "hollow:block/stripped_pale_oak_hollow_log" + }, + "axis=z,layer=moss": { + "model": "hollow:block/stripped_pale_oak_hollow_log_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { + "model": "hollow:block/stripped_pale_oak_hollow_log_horizontal", + "x": 90 + }, + "axis=z,layer=pale_moss": { + "model": "hollow:block/stripped_pale_oak_hollow_log_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/stripped_pale_oak_hollow_log_horizontal_snow", + "x": 90 + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/blockstates/stripped_spruce_hollow_log.json b/src/main/generated/assets/hollow/blockstates/stripped_spruce_hollow_log.json index beb4b67..51e5442 100644 --- a/src/main/generated/assets/hollow/blockstates/stripped_spruce_hollow_log.json +++ b/src/main/generated/assets/hollow/blockstates/stripped_spruce_hollow_log.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/stripped_spruce_hollow_log_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/stripped_spruce_hollow_log_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/stripped_spruce_hollow_log_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/stripped_spruce_hollow_log_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/stripped_spruce_hollow_log_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/stripped_spruce_hollow_log" + }, + "axis=y,layer=none": { + "model": "hollow:block/stripped_spruce_hollow_log" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/stripped_spruce_hollow_log" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/stripped_spruce_hollow_log" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/stripped_spruce_hollow_log_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/stripped_spruce_hollow_log_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/stripped_spruce_hollow_log_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/stripped_spruce_hollow_log_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/stripped_spruce_hollow_log_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/blockstates/stripped_warped_hollow_stem.json b/src/main/generated/assets/hollow/blockstates/stripped_warped_hollow_stem.json index 293a3e6..197aabb 100644 --- a/src/main/generated/assets/hollow/blockstates/stripped_warped_hollow_stem.json +++ b/src/main/generated/assets/hollow/blockstates/stripped_warped_hollow_stem.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/stripped_warped_hollow_stem_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/stripped_warped_hollow_stem_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/stripped_warped_hollow_stem_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/stripped_warped_hollow_stem_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/stripped_warped_hollow_stem_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/stripped_warped_hollow_stem" + }, + "axis=y,layer=none": { + "model": "hollow:block/stripped_warped_hollow_stem" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/stripped_warped_hollow_stem" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/stripped_warped_hollow_stem" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/stripped_warped_hollow_stem_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/stripped_warped_hollow_stem_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/stripped_warped_hollow_stem_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/stripped_warped_hollow_stem_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/stripped_warped_hollow_stem_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/blockstates/warped_hollow_stem.json b/src/main/generated/assets/hollow/blockstates/warped_hollow_stem.json index 8af1c69..970cd98 100644 --- a/src/main/generated/assets/hollow/blockstates/warped_hollow_stem.json +++ b/src/main/generated/assets/hollow/blockstates/warped_hollow_stem.json @@ -1,27 +1,51 @@ { "variants": { - "axis=x,mossy=false": { + "axis=x,layer=moss": { + "model": "hollow:block/warped_hollow_stem_horizontal_moss", + "x": 90, + "y": 90 + }, + "axis=x,layer=none": { "model": "hollow:block/warped_hollow_stem_horizontal", "x": 90, "y": 90 }, - "axis=x,mossy=true": { - "model": "hollow:block/warped_hollow_stem_horizontal_mossy", + "axis=x,layer=pale_moss": { + "model": "hollow:block/warped_hollow_stem_horizontal_pale_moss", "x": 90, "y": 90 }, - "axis=y,mossy=false": { + "axis=x,layer=snow": { + "model": "hollow:block/warped_hollow_stem_horizontal_snow", + "x": 90, + "y": 90 + }, + "axis=y,layer=moss": { + "model": "hollow:block/warped_hollow_stem" + }, + "axis=y,layer=none": { + "model": "hollow:block/warped_hollow_stem" + }, + "axis=y,layer=pale_moss": { "model": "hollow:block/warped_hollow_stem" }, - "axis=y,mossy=true": { + "axis=y,layer=snow": { "model": "hollow:block/warped_hollow_stem" }, - "axis=z,mossy=false": { + "axis=z,layer=moss": { + "model": "hollow:block/warped_hollow_stem_horizontal_moss", + "x": 90 + }, + "axis=z,layer=none": { "model": "hollow:block/warped_hollow_stem_horizontal", "x": 90 }, - "axis=z,mossy=true": { - "model": "hollow:block/warped_hollow_stem_horizontal_mossy", + "axis=z,layer=pale_moss": { + "model": "hollow:block/warped_hollow_stem_horizontal_pale_moss", + "x": 90 + }, + "axis=z,layer=snow": { + "model": "hollow:block/warped_hollow_stem_horizontal_snow", "x": 90 } } diff --git a/src/main/generated/assets/hollow/items/acacia_hollow_log.json b/src/main/generated/assets/hollow/items/acacia_hollow_log.json new file mode 100644 index 0000000..4994d5f --- /dev/null +++ b/src/main/generated/assets/hollow/items/acacia_hollow_log.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/acacia_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/birch_hollow_log.json b/src/main/generated/assets/hollow/items/birch_hollow_log.json new file mode 100644 index 0000000..e24c89b --- /dev/null +++ b/src/main/generated/assets/hollow/items/birch_hollow_log.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/birch_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/campion.json b/src/main/generated/assets/hollow/items/campion.json new file mode 100644 index 0000000..d63577e --- /dev/null +++ b/src/main/generated/assets/hollow/items/campion.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:item/campion" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/cattail.json b/src/main/generated/assets/hollow/items/cattail.json new file mode 100644 index 0000000..f6d83c7 --- /dev/null +++ b/src/main/generated/assets/hollow/items/cattail.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:item/cattail" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/cherry_hollow_log.json b/src/main/generated/assets/hollow/items/cherry_hollow_log.json new file mode 100644 index 0000000..e0a8cf5 --- /dev/null +++ b/src/main/generated/assets/hollow/items/cherry_hollow_log.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/cherry_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/copper_horn.json b/src/main/generated/assets/hollow/items/copper_horn.json new file mode 100644 index 0000000..ae976be --- /dev/null +++ b/src/main/generated/assets/hollow/items/copper_horn.json @@ -0,0 +1,14 @@ +{ + "model": { + "type": "minecraft:condition", + "on_false": { + "type": "minecraft:model", + "model": "hollow:item/copper_horn" + }, + "on_true": { + "type": "minecraft:model", + "model": "hollow:item/tooting_copper_horn" + }, + "property": "minecraft:using_item" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/copper_pillar.json b/src/main/generated/assets/hollow/items/copper_pillar.json new file mode 100644 index 0000000..e94d055 --- /dev/null +++ b/src/main/generated/assets/hollow/items/copper_pillar.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/copper_pillar" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/crimson_hollow_stem.json b/src/main/generated/assets/hollow/items/crimson_hollow_stem.json new file mode 100644 index 0000000..cd0105a --- /dev/null +++ b/src/main/generated/assets/hollow/items/crimson_hollow_stem.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/crimson_hollow_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/dark_oak_hollow_log.json b/src/main/generated/assets/hollow/items/dark_oak_hollow_log.json new file mode 100644 index 0000000..34e63a0 --- /dev/null +++ b/src/main/generated/assets/hollow/items/dark_oak_hollow_log.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/dark_oak_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/echoing_pot.json b/src/main/generated/assets/hollow/items/echoing_pot.json new file mode 100644 index 0000000..a67a1d6 --- /dev/null +++ b/src/main/generated/assets/hollow/items/echoing_pot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/echoing_pot" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/echoing_vase.json b/src/main/generated/assets/hollow/items/echoing_vase.json new file mode 100644 index 0000000..f41ffda --- /dev/null +++ b/src/main/generated/assets/hollow/items/echoing_vase.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/echoing_vase" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/exposed_copper_pillar.json b/src/main/generated/assets/hollow/items/exposed_copper_pillar.json new file mode 100644 index 0000000..3130e37 --- /dev/null +++ b/src/main/generated/assets/hollow/items/exposed_copper_pillar.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/exposed_copper_pillar" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/firefly_jar.json b/src/main/generated/assets/hollow/items/firefly_jar.json new file mode 100644 index 0000000..b727185 --- /dev/null +++ b/src/main/generated/assets/hollow/items/firefly_jar.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:item/firefly_jar" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/giant_lilypad.json b/src/main/generated/assets/hollow/items/giant_lilypad.json new file mode 100644 index 0000000..2372429 --- /dev/null +++ b/src/main/generated/assets/hollow/items/giant_lilypad.json @@ -0,0 +1,16 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:item/giant_lilypad", + "tints": [ + { + "type": "minecraft:constant", + "value": -9321636 + }, + { + "type": "minecraft:constant", + "value": -1 + } + ] + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/jar.json b/src/main/generated/assets/hollow/items/jar.json new file mode 100644 index 0000000..ad94942 --- /dev/null +++ b/src/main/generated/assets/hollow/items/jar.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:item/jar" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/jungle_hollow_log.json b/src/main/generated/assets/hollow/items/jungle_hollow_log.json new file mode 100644 index 0000000..03859da --- /dev/null +++ b/src/main/generated/assets/hollow/items/jungle_hollow_log.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/jungle_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/lotus_lilypad.json b/src/main/generated/assets/hollow/items/lotus_lilypad.json new file mode 100644 index 0000000..156f459 --- /dev/null +++ b/src/main/generated/assets/hollow/items/lotus_lilypad.json @@ -0,0 +1,16 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:item/lotus_lilypad", + "tints": [ + { + "type": "minecraft:constant", + "value": -9321636 + }, + { + "type": "minecraft:constant", + "value": -1 + } + ] + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/mangrove_hollow_log.json b/src/main/generated/assets/hollow/items/mangrove_hollow_log.json new file mode 100644 index 0000000..88c304e --- /dev/null +++ b/src/main/generated/assets/hollow/items/mangrove_hollow_log.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/mangrove_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/music_disc_postmortem.json b/src/main/generated/assets/hollow/items/music_disc_postmortem.json new file mode 100644 index 0000000..4065c5f --- /dev/null +++ b/src/main/generated/assets/hollow/items/music_disc_postmortem.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:item/music_disc_postmortem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/oak_hollow_log.json b/src/main/generated/assets/hollow/items/oak_hollow_log.json new file mode 100644 index 0000000..699ea58 --- /dev/null +++ b/src/main/generated/assets/hollow/items/oak_hollow_log.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/oak_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/oxidized_copper_pillar.json b/src/main/generated/assets/hollow/items/oxidized_copper_pillar.json new file mode 100644 index 0000000..2dc4cec --- /dev/null +++ b/src/main/generated/assets/hollow/items/oxidized_copper_pillar.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/oxidized_copper_pillar" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/paeonia.json b/src/main/generated/assets/hollow/items/paeonia.json new file mode 100644 index 0000000..4a6e9bc --- /dev/null +++ b/src/main/generated/assets/hollow/items/paeonia.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:item/paeonia" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/pale_oak_hollow_log.json b/src/main/generated/assets/hollow/items/pale_oak_hollow_log.json new file mode 100644 index 0000000..e0bb2d3 --- /dev/null +++ b/src/main/generated/assets/hollow/items/pale_oak_hollow_log.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/pale_oak_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/polypore.json b/src/main/generated/assets/hollow/items/polypore.json new file mode 100644 index 0000000..9517fc1 --- /dev/null +++ b/src/main/generated/assets/hollow/items/polypore.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:item/polypore" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/rooted_orchid.json b/src/main/generated/assets/hollow/items/rooted_orchid.json new file mode 100644 index 0000000..8aa88d7 --- /dev/null +++ b/src/main/generated/assets/hollow/items/rooted_orchid.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:item/rooted_orchid" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/screaming_vase.json b/src/main/generated/assets/hollow/items/screaming_vase.json new file mode 100644 index 0000000..413f936 --- /dev/null +++ b/src/main/generated/assets/hollow/items/screaming_vase.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/screaming_vase" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/sculk_jaw.json b/src/main/generated/assets/hollow/items/sculk_jaw.json new file mode 100644 index 0000000..d86abf7 --- /dev/null +++ b/src/main/generated/assets/hollow/items/sculk_jaw.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/sculk_jaw" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/spruce_hollow_log.json b/src/main/generated/assets/hollow/items/spruce_hollow_log.json new file mode 100644 index 0000000..0aa0130 --- /dev/null +++ b/src/main/generated/assets/hollow/items/spruce_hollow_log.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/spruce_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/stone_chest.json b/src/main/generated/assets/hollow/items/stone_chest.json new file mode 100644 index 0000000..3f72559 --- /dev/null +++ b/src/main/generated/assets/hollow/items/stone_chest.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/stone_chest" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/stone_chest_lid.json b/src/main/generated/assets/hollow/items/stone_chest_lid.json new file mode 100644 index 0000000..c56332a --- /dev/null +++ b/src/main/generated/assets/hollow/items/stone_chest_lid.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/stone_chest_lid" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/stripped_acacia_hollow_log.json b/src/main/generated/assets/hollow/items/stripped_acacia_hollow_log.json new file mode 100644 index 0000000..e286acd --- /dev/null +++ b/src/main/generated/assets/hollow/items/stripped_acacia_hollow_log.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/stripped_acacia_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/stripped_birch_hollow_log.json b/src/main/generated/assets/hollow/items/stripped_birch_hollow_log.json new file mode 100644 index 0000000..9dbc661 --- /dev/null +++ b/src/main/generated/assets/hollow/items/stripped_birch_hollow_log.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/stripped_birch_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/stripped_cherry_hollow_log.json b/src/main/generated/assets/hollow/items/stripped_cherry_hollow_log.json new file mode 100644 index 0000000..e8cf38d --- /dev/null +++ b/src/main/generated/assets/hollow/items/stripped_cherry_hollow_log.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/stripped_cherry_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/stripped_crimson_hollow_stem.json b/src/main/generated/assets/hollow/items/stripped_crimson_hollow_stem.json new file mode 100644 index 0000000..dd3ae3f --- /dev/null +++ b/src/main/generated/assets/hollow/items/stripped_crimson_hollow_stem.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/stripped_crimson_hollow_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/stripped_dark_oak_hollow_log.json b/src/main/generated/assets/hollow/items/stripped_dark_oak_hollow_log.json new file mode 100644 index 0000000..9cbb807 --- /dev/null +++ b/src/main/generated/assets/hollow/items/stripped_dark_oak_hollow_log.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/stripped_dark_oak_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/stripped_jungle_hollow_log.json b/src/main/generated/assets/hollow/items/stripped_jungle_hollow_log.json new file mode 100644 index 0000000..27a2f77 --- /dev/null +++ b/src/main/generated/assets/hollow/items/stripped_jungle_hollow_log.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/stripped_jungle_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/stripped_mangrove_hollow_log.json b/src/main/generated/assets/hollow/items/stripped_mangrove_hollow_log.json new file mode 100644 index 0000000..8d0844b --- /dev/null +++ b/src/main/generated/assets/hollow/items/stripped_mangrove_hollow_log.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/stripped_mangrove_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/stripped_oak_hollow_log.json b/src/main/generated/assets/hollow/items/stripped_oak_hollow_log.json new file mode 100644 index 0000000..472326d --- /dev/null +++ b/src/main/generated/assets/hollow/items/stripped_oak_hollow_log.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/stripped_oak_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/stripped_pale_oak_hollow_log.json b/src/main/generated/assets/hollow/items/stripped_pale_oak_hollow_log.json new file mode 100644 index 0000000..3d28b1a --- /dev/null +++ b/src/main/generated/assets/hollow/items/stripped_pale_oak_hollow_log.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/stripped_pale_oak_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/stripped_spruce_hollow_log.json b/src/main/generated/assets/hollow/items/stripped_spruce_hollow_log.json new file mode 100644 index 0000000..183ad12 --- /dev/null +++ b/src/main/generated/assets/hollow/items/stripped_spruce_hollow_log.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/stripped_spruce_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/stripped_warped_hollow_stem.json b/src/main/generated/assets/hollow/items/stripped_warped_hollow_stem.json new file mode 100644 index 0000000..8c0e3fa --- /dev/null +++ b/src/main/generated/assets/hollow/items/stripped_warped_hollow_stem.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/stripped_warped_hollow_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/twig.json b/src/main/generated/assets/hollow/items/twig.json new file mode 100644 index 0000000..eababe4 --- /dev/null +++ b/src/main/generated/assets/hollow/items/twig.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/twig" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/warped_hollow_stem.json b/src/main/generated/assets/hollow/items/warped_hollow_stem.json new file mode 100644 index 0000000..d49234c --- /dev/null +++ b/src/main/generated/assets/hollow/items/warped_hollow_stem.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/warped_hollow_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/waxed_copper_pillar.json b/src/main/generated/assets/hollow/items/waxed_copper_pillar.json new file mode 100644 index 0000000..6e22efe --- /dev/null +++ b/src/main/generated/assets/hollow/items/waxed_copper_pillar.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/waxed_copper_pillar" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/waxed_exposed_copper_pillar.json b/src/main/generated/assets/hollow/items/waxed_exposed_copper_pillar.json new file mode 100644 index 0000000..48dd126 --- /dev/null +++ b/src/main/generated/assets/hollow/items/waxed_exposed_copper_pillar.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/waxed_exposed_copper_pillar" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/waxed_oxidized_copper_pillar.json b/src/main/generated/assets/hollow/items/waxed_oxidized_copper_pillar.json new file mode 100644 index 0000000..e3631c1 --- /dev/null +++ b/src/main/generated/assets/hollow/items/waxed_oxidized_copper_pillar.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/waxed_oxidized_copper_pillar" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/waxed_weathered_copper_pillar.json b/src/main/generated/assets/hollow/items/waxed_weathered_copper_pillar.json new file mode 100644 index 0000000..11baf17 --- /dev/null +++ b/src/main/generated/assets/hollow/items/waxed_weathered_copper_pillar.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/waxed_weathered_copper_pillar" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/items/weathered_copper_pillar.json b/src/main/generated/assets/hollow/items/weathered_copper_pillar.json new file mode 100644 index 0000000..30912a5 --- /dev/null +++ b/src/main/generated/assets/hollow/items/weathered_copper_pillar.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "hollow:block/weathered_copper_pillar" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/acacia_hollow_log.json b/src/main/generated/assets/hollow/models/block/acacia_hollow_log.json index 1bec75b..5e87001 100644 --- a/src/main/generated/assets/hollow/models/block/acacia_hollow_log.json +++ b/src/main/generated/assets/hollow/models/block/acacia_hollow_log.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/acacia_log_top", "inside": "minecraft:block/stripped_acacia_log", diff --git a/src/main/generated/assets/hollow/models/block/acacia_hollow_log_horizontal.json b/src/main/generated/assets/hollow/models/block/acacia_hollow_log_horizontal.json index 2a1336a..aecac68 100644 --- a/src/main/generated/assets/hollow/models/block/acacia_hollow_log_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/acacia_hollow_log_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/acacia_log_top", "inside": "minecraft:block/stripped_acacia_log", diff --git a/src/main/generated/assets/hollow/models/block/acacia_hollow_log_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/acacia_hollow_log_horizontal_moss.json similarity index 61% rename from src/main/generated/assets/hollow/models/block/acacia_hollow_log_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/acacia_hollow_log_horizontal_moss.json index abaeb4a..8e25877 100644 --- a/src/main/generated/assets/hollow/models/block/acacia_hollow_log_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/acacia_hollow_log_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/acacia_log_top", "inside": "minecraft:block/stripped_acacia_log", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/acacia_log" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/acacia_hollow_log_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/acacia_hollow_log_horizontal_pale_moss.json new file mode 100644 index 0000000..124a3a0 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/acacia_hollow_log_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/acacia_log_top", + "inside": "minecraft:block/stripped_acacia_log", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/acacia_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/acacia_hollow_log_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/acacia_hollow_log_horizontal_snow.json new file mode 100644 index 0000000..6a49f16 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/acacia_hollow_log_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/acacia_log_top", + "inside": "minecraft:block/stripped_acacia_log", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/acacia_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/birch_hollow_log.json b/src/main/generated/assets/hollow/models/block/birch_hollow_log.json index 7647d84..0eced75 100644 --- a/src/main/generated/assets/hollow/models/block/birch_hollow_log.json +++ b/src/main/generated/assets/hollow/models/block/birch_hollow_log.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/birch_log_top", "inside": "minecraft:block/stripped_birch_log", diff --git a/src/main/generated/assets/hollow/models/block/birch_hollow_log_horizontal.json b/src/main/generated/assets/hollow/models/block/birch_hollow_log_horizontal.json index 46a0721..e81bfd9 100644 --- a/src/main/generated/assets/hollow/models/block/birch_hollow_log_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/birch_hollow_log_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/birch_log_top", "inside": "minecraft:block/stripped_birch_log", diff --git a/src/main/generated/assets/hollow/models/block/birch_hollow_log_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/birch_hollow_log_horizontal_moss.json similarity index 61% rename from src/main/generated/assets/hollow/models/block/birch_hollow_log_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/birch_hollow_log_horizontal_moss.json index 7e83775..9025925 100644 --- a/src/main/generated/assets/hollow/models/block/birch_hollow_log_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/birch_hollow_log_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/birch_log_top", "inside": "minecraft:block/stripped_birch_log", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/birch_log" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/birch_hollow_log_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/birch_hollow_log_horizontal_pale_moss.json new file mode 100644 index 0000000..efa2864 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/birch_hollow_log_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/birch_log_top", + "inside": "minecraft:block/stripped_birch_log", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/birch_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/birch_hollow_log_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/birch_hollow_log_horizontal_snow.json new file mode 100644 index 0000000..d750ae0 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/birch_hollow_log_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/birch_log_top", + "inside": "minecraft:block/stripped_birch_log", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/birch_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/cattail.json b/src/main/generated/assets/hollow/models/block/cattail.json index 5f8e9ae..22005e6 100644 --- a/src/main/generated/assets/hollow/models/block/cattail.json +++ b/src/main/generated/assets/hollow/models/block/cattail.json @@ -1,6 +1,6 @@ { "parent": "minecraft:block/cross", "textures": { - "cross": "hollow:block/cattail_top" + "cross": "hollow:block/cattail" } } \ No newline at end of file diff --git a/src/main/resources/assets/hollow/models/block/cattail_base.json b/src/main/generated/assets/hollow/models/block/cattail_stem.json similarity index 59% rename from src/main/resources/assets/hollow/models/block/cattail_base.json rename to src/main/generated/assets/hollow/models/block/cattail_stem.json index 1126801..221875e 100644 --- a/src/main/resources/assets/hollow/models/block/cattail_base.json +++ b/src/main/generated/assets/hollow/models/block/cattail_stem.json @@ -1,6 +1,6 @@ { "parent": "minecraft:block/cross", "textures": { - "cross": "hollow:block/cattail_base" + "cross": "hollow:block/cattail_stem" } } \ No newline at end of file diff --git a/src/main/resources/assets/hollow/models/block/cattail_middle.json b/src/main/generated/assets/hollow/models/block/cattail_stem_2.json similarity index 58% rename from src/main/resources/assets/hollow/models/block/cattail_middle.json rename to src/main/generated/assets/hollow/models/block/cattail_stem_2.json index ad6ae11..384a13b 100644 --- a/src/main/resources/assets/hollow/models/block/cattail_middle.json +++ b/src/main/generated/assets/hollow/models/block/cattail_stem_2.json @@ -1,6 +1,6 @@ { "parent": "minecraft:block/cross", "textures": { - "cross": "hollow:block/cattail_middle" + "cross": "hollow:block/cattail_stem_2" } } \ No newline at end of file diff --git a/src/main/resources/assets/hollow/models/block/cattail_middle_2.json b/src/main/generated/assets/hollow/models/block/cattail_stem_bottom.json similarity index 55% rename from src/main/resources/assets/hollow/models/block/cattail_middle_2.json rename to src/main/generated/assets/hollow/models/block/cattail_stem_bottom.json index b5f20f1..2ec5f50 100644 --- a/src/main/resources/assets/hollow/models/block/cattail_middle_2.json +++ b/src/main/generated/assets/hollow/models/block/cattail_stem_bottom.json @@ -1,6 +1,6 @@ { "parent": "minecraft:block/cross", "textures": { - "cross": "hollow:block/cattail_middle_2" + "cross": "hollow:block/cattail_stem_bottom" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/cherry_hollow_log.json b/src/main/generated/assets/hollow/models/block/cherry_hollow_log.json index 3836bc5..9a22750 100644 --- a/src/main/generated/assets/hollow/models/block/cherry_hollow_log.json +++ b/src/main/generated/assets/hollow/models/block/cherry_hollow_log.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/cherry_log_top", "inside": "minecraft:block/stripped_cherry_log", diff --git a/src/main/generated/assets/hollow/models/block/cherry_hollow_log_horizontal.json b/src/main/generated/assets/hollow/models/block/cherry_hollow_log_horizontal.json index 55e7b38..1b0777f 100644 --- a/src/main/generated/assets/hollow/models/block/cherry_hollow_log_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/cherry_hollow_log_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/cherry_log_top", "inside": "minecraft:block/stripped_cherry_log", diff --git a/src/main/generated/assets/hollow/models/block/cherry_hollow_log_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/cherry_hollow_log_horizontal_moss.json similarity index 61% rename from src/main/generated/assets/hollow/models/block/cherry_hollow_log_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/cherry_hollow_log_horizontal_moss.json index 608f6c0..380f2b5 100644 --- a/src/main/generated/assets/hollow/models/block/cherry_hollow_log_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/cherry_hollow_log_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/cherry_log_top", "inside": "minecraft:block/stripped_cherry_log", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/cherry_log" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/cherry_hollow_log_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/cherry_hollow_log_horizontal_pale_moss.json new file mode 100644 index 0000000..cb7e3c8 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/cherry_hollow_log_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/cherry_log_top", + "inside": "minecraft:block/stripped_cherry_log", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/cherry_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/cherry_hollow_log_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/cherry_hollow_log_horizontal_snow.json new file mode 100644 index 0000000..ab66aff --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/cherry_hollow_log_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/cherry_log_top", + "inside": "minecraft:block/stripped_cherry_log", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/cherry_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/crimson_hollow_stem.json b/src/main/generated/assets/hollow/models/block/crimson_hollow_stem.json index 127c515..90a34d8 100644 --- a/src/main/generated/assets/hollow/models/block/crimson_hollow_stem.json +++ b/src/main/generated/assets/hollow/models/block/crimson_hollow_stem.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/crimson_stem_top", "inside": "minecraft:block/stripped_crimson_stem", diff --git a/src/main/generated/assets/hollow/models/block/crimson_hollow_stem_horizontal.json b/src/main/generated/assets/hollow/models/block/crimson_hollow_stem_horizontal.json index 119c1e9..3e9835e 100644 --- a/src/main/generated/assets/hollow/models/block/crimson_hollow_stem_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/crimson_hollow_stem_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/crimson_stem_top", "inside": "minecraft:block/stripped_crimson_stem", diff --git a/src/main/generated/assets/hollow/models/block/crimson_hollow_stem_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/crimson_hollow_stem_horizontal_moss.json similarity index 62% rename from src/main/generated/assets/hollow/models/block/crimson_hollow_stem_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/crimson_hollow_stem_horizontal_moss.json index 3b0c459..5ca44d8 100644 --- a/src/main/generated/assets/hollow/models/block/crimson_hollow_stem_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/crimson_hollow_stem_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/crimson_stem_top", "inside": "minecraft:block/stripped_crimson_stem", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/crimson_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/crimson_hollow_stem_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/crimson_hollow_stem_horizontal_pale_moss.json new file mode 100644 index 0000000..e8a6287 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/crimson_hollow_stem_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/crimson_stem_top", + "inside": "minecraft:block/stripped_crimson_stem", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/crimson_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/crimson_hollow_stem_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/crimson_hollow_stem_horizontal_snow.json new file mode 100644 index 0000000..571d9ce --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/crimson_hollow_stem_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/crimson_stem_top", + "inside": "minecraft:block/stripped_crimson_stem", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/crimson_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/dark_oak_hollow_log.json b/src/main/generated/assets/hollow/models/block/dark_oak_hollow_log.json index c8f956e..02094cb 100644 --- a/src/main/generated/assets/hollow/models/block/dark_oak_hollow_log.json +++ b/src/main/generated/assets/hollow/models/block/dark_oak_hollow_log.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/dark_oak_log_top", "inside": "minecraft:block/stripped_dark_oak_log", diff --git a/src/main/generated/assets/hollow/models/block/dark_oak_hollow_log_horizontal.json b/src/main/generated/assets/hollow/models/block/dark_oak_hollow_log_horizontal.json index b7e7cc7..64e0d7e 100644 --- a/src/main/generated/assets/hollow/models/block/dark_oak_hollow_log_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/dark_oak_hollow_log_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/dark_oak_log_top", "inside": "minecraft:block/stripped_dark_oak_log", diff --git a/src/main/generated/assets/hollow/models/block/dark_oak_hollow_log_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/dark_oak_hollow_log_horizontal_moss.json similarity index 62% rename from src/main/generated/assets/hollow/models/block/dark_oak_hollow_log_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/dark_oak_hollow_log_horizontal_moss.json index 6ff0677..b584548 100644 --- a/src/main/generated/assets/hollow/models/block/dark_oak_hollow_log_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/dark_oak_hollow_log_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/dark_oak_log_top", "inside": "minecraft:block/stripped_dark_oak_log", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/dark_oak_log" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/dark_oak_hollow_log_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/dark_oak_hollow_log_horizontal_pale_moss.json new file mode 100644 index 0000000..ba89dff --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/dark_oak_hollow_log_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/dark_oak_log_top", + "inside": "minecraft:block/stripped_dark_oak_log", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/dark_oak_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/dark_oak_hollow_log_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/dark_oak_hollow_log_horizontal_snow.json new file mode 100644 index 0000000..18e2068 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/dark_oak_hollow_log_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/dark_oak_log_top", + "inside": "minecraft:block/stripped_dark_oak_log", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/dark_oak_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/jungle_hollow_log.json b/src/main/generated/assets/hollow/models/block/jungle_hollow_log.json index a24a653..0977a6a 100644 --- a/src/main/generated/assets/hollow/models/block/jungle_hollow_log.json +++ b/src/main/generated/assets/hollow/models/block/jungle_hollow_log.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/jungle_log_top", "inside": "minecraft:block/stripped_jungle_log", diff --git a/src/main/generated/assets/hollow/models/block/jungle_hollow_log_horizontal.json b/src/main/generated/assets/hollow/models/block/jungle_hollow_log_horizontal.json index d2a7c65..56b649f 100644 --- a/src/main/generated/assets/hollow/models/block/jungle_hollow_log_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/jungle_hollow_log_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/jungle_log_top", "inside": "minecraft:block/stripped_jungle_log", diff --git a/src/main/generated/assets/hollow/models/block/jungle_hollow_log_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/jungle_hollow_log_horizontal_moss.json similarity index 61% rename from src/main/generated/assets/hollow/models/block/jungle_hollow_log_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/jungle_hollow_log_horizontal_moss.json index 27eb993..180035f 100644 --- a/src/main/generated/assets/hollow/models/block/jungle_hollow_log_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/jungle_hollow_log_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/jungle_log_top", "inside": "minecraft:block/stripped_jungle_log", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/jungle_log" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/jungle_hollow_log_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/jungle_hollow_log_horizontal_pale_moss.json new file mode 100644 index 0000000..bd5510f --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/jungle_hollow_log_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/jungle_log_top", + "inside": "minecraft:block/stripped_jungle_log", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/jungle_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/jungle_hollow_log_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/jungle_hollow_log_horizontal_snow.json new file mode 100644 index 0000000..715b984 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/jungle_hollow_log_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/jungle_log_top", + "inside": "minecraft:block/stripped_jungle_log", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/jungle_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/mangrove_hollow_log.json b/src/main/generated/assets/hollow/models/block/mangrove_hollow_log.json index 0c6a5b1..7639678 100644 --- a/src/main/generated/assets/hollow/models/block/mangrove_hollow_log.json +++ b/src/main/generated/assets/hollow/models/block/mangrove_hollow_log.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/mangrove_log_top", "inside": "minecraft:block/stripped_mangrove_log", diff --git a/src/main/generated/assets/hollow/models/block/mangrove_hollow_log_horizontal.json b/src/main/generated/assets/hollow/models/block/mangrove_hollow_log_horizontal.json index 6f7dbad..7e0f9c7 100644 --- a/src/main/generated/assets/hollow/models/block/mangrove_hollow_log_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/mangrove_hollow_log_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/mangrove_log_top", "inside": "minecraft:block/stripped_mangrove_log", diff --git a/src/main/generated/assets/hollow/models/block/mangrove_hollow_log_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/mangrove_hollow_log_horizontal_moss.json similarity index 62% rename from src/main/generated/assets/hollow/models/block/mangrove_hollow_log_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/mangrove_hollow_log_horizontal_moss.json index fcf12af..e365653 100644 --- a/src/main/generated/assets/hollow/models/block/mangrove_hollow_log_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/mangrove_hollow_log_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/mangrove_log_top", "inside": "minecraft:block/stripped_mangrove_log", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/mangrove_log" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/mangrove_hollow_log_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/mangrove_hollow_log_horizontal_pale_moss.json new file mode 100644 index 0000000..c01d45e --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/mangrove_hollow_log_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/mangrove_log_top", + "inside": "minecraft:block/stripped_mangrove_log", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/mangrove_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/mangrove_hollow_log_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/mangrove_hollow_log_horizontal_snow.json new file mode 100644 index 0000000..936140b --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/mangrove_hollow_log_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/mangrove_log_top", + "inside": "minecraft:block/stripped_mangrove_log", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/mangrove_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/oak_hollow_log.json b/src/main/generated/assets/hollow/models/block/oak_hollow_log.json index 1dd9527..4f394e6 100644 --- a/src/main/generated/assets/hollow/models/block/oak_hollow_log.json +++ b/src/main/generated/assets/hollow/models/block/oak_hollow_log.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/oak_log_top", "inside": "minecraft:block/stripped_oak_log", diff --git a/src/main/generated/assets/hollow/models/block/oak_hollow_log_horizontal.json b/src/main/generated/assets/hollow/models/block/oak_hollow_log_horizontal.json index 9f82afd..5693bfd 100644 --- a/src/main/generated/assets/hollow/models/block/oak_hollow_log_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/oak_hollow_log_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/oak_log_top", "inside": "minecraft:block/stripped_oak_log", diff --git a/src/main/generated/assets/hollow/models/block/oak_hollow_log_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/oak_hollow_log_horizontal_moss.json similarity index 60% rename from src/main/generated/assets/hollow/models/block/oak_hollow_log_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/oak_hollow_log_horizontal_moss.json index 0cbcdcf..91900e3 100644 --- a/src/main/generated/assets/hollow/models/block/oak_hollow_log_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/oak_hollow_log_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/oak_log_top", "inside": "minecraft:block/stripped_oak_log", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/oak_log" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/oak_hollow_log_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/oak_hollow_log_horizontal_pale_moss.json new file mode 100644 index 0000000..296cc5a --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/oak_hollow_log_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/oak_log_top", + "inside": "minecraft:block/stripped_oak_log", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/oak_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/oak_hollow_log_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/oak_hollow_log_horizontal_snow.json new file mode 100644 index 0000000..e1d61d9 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/oak_hollow_log_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/oak_log_top", + "inside": "minecraft:block/stripped_oak_log", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/oak_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/pale_oak_hollow_log.json b/src/main/generated/assets/hollow/models/block/pale_oak_hollow_log.json new file mode 100644 index 0000000..cb38720 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/pale_oak_hollow_log.json @@ -0,0 +1,8 @@ +{ + "parent": "hollow:block/hollow_log", + "textures": { + "end": "minecraft:block/pale_oak_log_top", + "inside": "minecraft:block/stripped_pale_oak_log", + "side": "minecraft:block/pale_oak_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/pale_oak_hollow_log_horizontal.json b/src/main/generated/assets/hollow/models/block/pale_oak_hollow_log_horizontal.json new file mode 100644 index 0000000..76489fb --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/pale_oak_hollow_log_horizontal.json @@ -0,0 +1,8 @@ +{ + "parent": "hollow:block/hollow_log_horizontal", + "textures": { + "end": "minecraft:block/pale_oak_log_top", + "inside": "minecraft:block/stripped_pale_oak_log", + "side": "minecraft:block/pale_oak_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/pale_oak_hollow_log_horizontal_moss.json b/src/main/generated/assets/hollow/models/block/pale_oak_hollow_log_horizontal_moss.json new file mode 100644 index 0000000..ce6ce11 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/pale_oak_hollow_log_horizontal_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/pale_oak_log_top", + "inside": "minecraft:block/stripped_pale_oak_log", + "overlay": "hollow:block/moss_overlay", + "side": "minecraft:block/pale_oak_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/pale_oak_hollow_log_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/pale_oak_hollow_log_horizontal_pale_moss.json new file mode 100644 index 0000000..30ef1a2 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/pale_oak_hollow_log_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/pale_oak_log_top", + "inside": "minecraft:block/stripped_pale_oak_log", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/pale_oak_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/pale_oak_hollow_log_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/pale_oak_hollow_log_horizontal_snow.json new file mode 100644 index 0000000..6152797 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/pale_oak_hollow_log_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/pale_oak_log_top", + "inside": "minecraft:block/stripped_pale_oak_log", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/pale_oak_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/spruce_hollow_log.json b/src/main/generated/assets/hollow/models/block/spruce_hollow_log.json index e29dea7..05a4e89 100644 --- a/src/main/generated/assets/hollow/models/block/spruce_hollow_log.json +++ b/src/main/generated/assets/hollow/models/block/spruce_hollow_log.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/spruce_log_top", "inside": "minecraft:block/stripped_spruce_log", diff --git a/src/main/generated/assets/hollow/models/block/spruce_hollow_log_horizontal.json b/src/main/generated/assets/hollow/models/block/spruce_hollow_log_horizontal.json index 70873ad..8ab2e9e 100644 --- a/src/main/generated/assets/hollow/models/block/spruce_hollow_log_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/spruce_hollow_log_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/spruce_log_top", "inside": "minecraft:block/stripped_spruce_log", diff --git a/src/main/generated/assets/hollow/models/block/spruce_hollow_log_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/spruce_hollow_log_horizontal_moss.json similarity index 61% rename from src/main/generated/assets/hollow/models/block/spruce_hollow_log_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/spruce_hollow_log_horizontal_moss.json index 8d7c14b..9a7a6bb 100644 --- a/src/main/generated/assets/hollow/models/block/spruce_hollow_log_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/spruce_hollow_log_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/spruce_log_top", "inside": "minecraft:block/stripped_spruce_log", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/spruce_log" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/spruce_hollow_log_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/spruce_hollow_log_horizontal_pale_moss.json new file mode 100644 index 0000000..da077a1 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/spruce_hollow_log_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/spruce_log_top", + "inside": "minecraft:block/stripped_spruce_log", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/spruce_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/spruce_hollow_log_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/spruce_hollow_log_horizontal_snow.json new file mode 100644 index 0000000..ae8c828 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/spruce_hollow_log_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/spruce_log_top", + "inside": "minecraft:block/stripped_spruce_log", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/spruce_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log.json b/src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log.json index 60463e5..3043f2b 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log.json +++ b/src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/stripped_acacia_log_top", "inside": "minecraft:block/stripped_acacia_log", diff --git a/src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log_horizontal.json b/src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log_horizontal.json index 07b8e19..57ae4dc 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/stripped_acacia_log_top", "inside": "minecraft:block/stripped_acacia_log", diff --git a/src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log_horizontal_moss.json similarity index 64% rename from src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log_horizontal_moss.json index 5b2e2e5..6fd6085 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/stripped_acacia_log_top", "inside": "minecraft:block/stripped_acacia_log", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/stripped_acacia_log" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log_horizontal_pale_moss.json new file mode 100644 index 0000000..a93602d --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_acacia_log_top", + "inside": "minecraft:block/stripped_acacia_log", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/stripped_acacia_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log_horizontal_snow.json new file mode 100644 index 0000000..8a7b187 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_acacia_hollow_log_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_acacia_log_top", + "inside": "minecraft:block/stripped_acacia_log", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/stripped_acacia_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log.json b/src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log.json index 8078023..2bf940f 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log.json +++ b/src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/stripped_birch_log_top", "inside": "minecraft:block/stripped_birch_log", diff --git a/src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log_horizontal.json b/src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log_horizontal.json index 2f02328..3747ec1 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/stripped_birch_log_top", "inside": "minecraft:block/stripped_birch_log", diff --git a/src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log_horizontal_moss.json similarity index 63% rename from src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log_horizontal_moss.json index 86392b8..4e312a4 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/stripped_birch_log_top", "inside": "minecraft:block/stripped_birch_log", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/stripped_birch_log" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log_horizontal_pale_moss.json new file mode 100644 index 0000000..8517340 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_birch_log_top", + "inside": "minecraft:block/stripped_birch_log", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/stripped_birch_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log_horizontal_snow.json new file mode 100644 index 0000000..2b00cad --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_birch_hollow_log_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_birch_log_top", + "inside": "minecraft:block/stripped_birch_log", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/stripped_birch_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log.json b/src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log.json index 11d2606..6c87296 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log.json +++ b/src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/stripped_cherry_log_top", "inside": "minecraft:block/stripped_cherry_log", diff --git a/src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log_horizontal.json b/src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log_horizontal.json index 8428b9f..848d302 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/stripped_cherry_log_top", "inside": "minecraft:block/stripped_cherry_log", diff --git a/src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log_horizontal_moss.json similarity index 64% rename from src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log_horizontal_moss.json index f183c12..23989f0 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/stripped_cherry_log_top", "inside": "minecraft:block/stripped_cherry_log", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/stripped_cherry_log" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log_horizontal_pale_moss.json new file mode 100644 index 0000000..4bbc3b9 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_cherry_log_top", + "inside": "minecraft:block/stripped_cherry_log", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/stripped_cherry_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log_horizontal_snow.json new file mode 100644 index 0000000..6928343 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_cherry_hollow_log_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_cherry_log_top", + "inside": "minecraft:block/stripped_cherry_log", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/stripped_cherry_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem.json b/src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem.json index b60acb7..4b5a3cd 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem.json +++ b/src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/stripped_crimson_stem_top", "inside": "minecraft:block/stripped_crimson_stem", diff --git a/src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem_horizontal.json b/src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem_horizontal.json index 2ec87a2..e9be81d 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/stripped_crimson_stem_top", "inside": "minecraft:block/stripped_crimson_stem", diff --git a/src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem_horizontal_moss.json similarity index 65% rename from src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem_horizontal_moss.json index 9bbdec9..1ff08b3 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/stripped_crimson_stem_top", "inside": "minecraft:block/stripped_crimson_stem", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/stripped_crimson_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem_horizontal_pale_moss.json new file mode 100644 index 0000000..942100d --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_crimson_stem_top", + "inside": "minecraft:block/stripped_crimson_stem", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/stripped_crimson_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem_horizontal_snow.json new file mode 100644 index 0000000..283a140 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_crimson_hollow_stem_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_crimson_stem_top", + "inside": "minecraft:block/stripped_crimson_stem", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/stripped_crimson_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log.json b/src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log.json index 27e4a91..e524eee 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log.json +++ b/src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/stripped_dark_oak_log_top", "inside": "minecraft:block/stripped_dark_oak_log", diff --git a/src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log_horizontal.json b/src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log_horizontal.json index 3fb0b21..90dca8f 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/stripped_dark_oak_log_top", "inside": "minecraft:block/stripped_dark_oak_log", diff --git a/src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log_horizontal_moss.json similarity index 65% rename from src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log_horizontal_moss.json index a55b8ed..517264b 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/stripped_dark_oak_log_top", "inside": "minecraft:block/stripped_dark_oak_log", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/stripped_dark_oak_log" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log_horizontal_pale_moss.json new file mode 100644 index 0000000..320a2ed --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_dark_oak_log_top", + "inside": "minecraft:block/stripped_dark_oak_log", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/stripped_dark_oak_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log_horizontal_snow.json new file mode 100644 index 0000000..c91e164 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_dark_oak_hollow_log_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_dark_oak_log_top", + "inside": "minecraft:block/stripped_dark_oak_log", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/stripped_dark_oak_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log.json b/src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log.json index c7ac9cd..e41354b 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log.json +++ b/src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/stripped_jungle_log_top", "inside": "minecraft:block/stripped_jungle_log", diff --git a/src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log_horizontal.json b/src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log_horizontal.json index 3b61af7..d88c994 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/stripped_jungle_log_top", "inside": "minecraft:block/stripped_jungle_log", diff --git a/src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log_horizontal_moss.json similarity index 64% rename from src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log_horizontal_moss.json index 4203a1a..5bc62cc 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/stripped_jungle_log_top", "inside": "minecraft:block/stripped_jungle_log", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/stripped_jungle_log" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log_horizontal_pale_moss.json new file mode 100644 index 0000000..88d4d69 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_jungle_log_top", + "inside": "minecraft:block/stripped_jungle_log", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/stripped_jungle_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log_horizontal_snow.json new file mode 100644 index 0000000..3bfc2bb --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_jungle_hollow_log_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_jungle_log_top", + "inside": "minecraft:block/stripped_jungle_log", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/stripped_jungle_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log.json b/src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log.json index 28b10a0..60cc2db 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log.json +++ b/src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/stripped_mangrove_log_top", "inside": "minecraft:block/stripped_mangrove_log", diff --git a/src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log_horizontal.json b/src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log_horizontal.json index c38f2b1..baeca91 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/stripped_mangrove_log_top", "inside": "minecraft:block/stripped_mangrove_log", diff --git a/src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log_horizontal_moss.json similarity index 65% rename from src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log_horizontal_moss.json index c3f2b9a..0a82825 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/stripped_mangrove_log_top", "inside": "minecraft:block/stripped_mangrove_log", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/stripped_mangrove_log" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log_horizontal_pale_moss.json new file mode 100644 index 0000000..aa49472 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_mangrove_log_top", + "inside": "minecraft:block/stripped_mangrove_log", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/stripped_mangrove_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log_horizontal_snow.json new file mode 100644 index 0000000..267e8ed --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_mangrove_hollow_log_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_mangrove_log_top", + "inside": "minecraft:block/stripped_mangrove_log", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/stripped_mangrove_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log.json b/src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log.json index 51666fc..9bb3897 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log.json +++ b/src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/stripped_oak_log_top", "inside": "minecraft:block/stripped_oak_log", diff --git a/src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log_horizontal.json b/src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log_horizontal.json index 91e2506..1194d00 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/stripped_oak_log_top", "inside": "minecraft:block/stripped_oak_log", diff --git a/src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log_horizontal_moss.json similarity index 63% rename from src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log_horizontal_moss.json index 60522ba..97da92d 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/stripped_oak_log_top", "inside": "minecraft:block/stripped_oak_log", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/stripped_oak_log" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log_horizontal_pale_moss.json new file mode 100644 index 0000000..0b8832a --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_oak_log_top", + "inside": "minecraft:block/stripped_oak_log", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/stripped_oak_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log_horizontal_snow.json new file mode 100644 index 0000000..5d8322c --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_oak_hollow_log_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_oak_log_top", + "inside": "minecraft:block/stripped_oak_log", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/stripped_oak_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_pale_oak_hollow_log.json b/src/main/generated/assets/hollow/models/block/stripped_pale_oak_hollow_log.json new file mode 100644 index 0000000..087e5c5 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_pale_oak_hollow_log.json @@ -0,0 +1,8 @@ +{ + "parent": "hollow:block/hollow_log", + "textures": { + "end": "minecraft:block/stripped_pale_oak_log_top", + "inside": "minecraft:block/stripped_pale_oak_log", + "side": "minecraft:block/stripped_pale_oak_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_pale_oak_hollow_log_horizontal.json b/src/main/generated/assets/hollow/models/block/stripped_pale_oak_hollow_log_horizontal.json new file mode 100644 index 0000000..fafac05 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_pale_oak_hollow_log_horizontal.json @@ -0,0 +1,8 @@ +{ + "parent": "hollow:block/hollow_log_horizontal", + "textures": { + "end": "minecraft:block/stripped_pale_oak_log_top", + "inside": "minecraft:block/stripped_pale_oak_log", + "side": "minecraft:block/stripped_pale_oak_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_pale_oak_hollow_log_horizontal_moss.json b/src/main/generated/assets/hollow/models/block/stripped_pale_oak_hollow_log_horizontal_moss.json new file mode 100644 index 0000000..8e57fb9 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_pale_oak_hollow_log_horizontal_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_pale_oak_log_top", + "inside": "minecraft:block/stripped_pale_oak_log", + "overlay": "hollow:block/moss_overlay", + "side": "minecraft:block/stripped_pale_oak_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_pale_oak_hollow_log_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/stripped_pale_oak_hollow_log_horizontal_pale_moss.json new file mode 100644 index 0000000..644cf63 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_pale_oak_hollow_log_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_pale_oak_log_top", + "inside": "minecraft:block/stripped_pale_oak_log", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/stripped_pale_oak_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_pale_oak_hollow_log_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/stripped_pale_oak_hollow_log_horizontal_snow.json new file mode 100644 index 0000000..cac8282 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_pale_oak_hollow_log_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_pale_oak_log_top", + "inside": "minecraft:block/stripped_pale_oak_log", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/stripped_pale_oak_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log.json b/src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log.json index e180381..6bdee84 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log.json +++ b/src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/stripped_spruce_log_top", "inside": "minecraft:block/stripped_spruce_log", diff --git a/src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log_horizontal.json b/src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log_horizontal.json index 21ee869..d3f1203 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/stripped_spruce_log_top", "inside": "minecraft:block/stripped_spruce_log", diff --git a/src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log_horizontal_moss.json similarity index 64% rename from src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log_horizontal_moss.json index 90e445a..5954771 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/stripped_spruce_log_top", "inside": "minecraft:block/stripped_spruce_log", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/stripped_spruce_log" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log_horizontal_pale_moss.json new file mode 100644 index 0000000..d314521 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_spruce_log_top", + "inside": "minecraft:block/stripped_spruce_log", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log_horizontal_snow.json new file mode 100644 index 0000000..93a62bb --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_spruce_hollow_log_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_spruce_log_top", + "inside": "minecraft:block/stripped_spruce_log", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem.json b/src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem.json index ff5069d..82276c3 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem.json +++ b/src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/stripped_warped_stem_top", "inside": "minecraft:block/stripped_warped_stem", diff --git a/src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem_horizontal.json b/src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem_horizontal.json index 5ab3239..b60feff 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/stripped_warped_stem_top", "inside": "minecraft:block/stripped_warped_stem", diff --git a/src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem_horizontal_moss.json similarity index 64% rename from src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem_horizontal_moss.json index 516b19a..b7eff56 100644 --- a/src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/stripped_warped_stem_top", "inside": "minecraft:block/stripped_warped_stem", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/stripped_warped_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem_horizontal_pale_moss.json new file mode 100644 index 0000000..64b3d3a --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_warped_stem_top", + "inside": "minecraft:block/stripped_warped_stem", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/stripped_warped_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem_horizontal_snow.json new file mode 100644 index 0000000..b9d4f28 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/stripped_warped_hollow_stem_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/stripped_warped_stem_top", + "inside": "minecraft:block/stripped_warped_stem", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/stripped_warped_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/warped_hollow_stem.json b/src/main/generated/assets/hollow/models/block/warped_hollow_stem.json index a066e6a..5d2c0b7 100644 --- a/src/main/generated/assets/hollow/models/block/warped_hollow_stem.json +++ b/src/main/generated/assets/hollow/models/block/warped_hollow_stem.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_template", + "parent": "hollow:block/hollow_log", "textures": { "end": "minecraft:block/warped_stem_top", "inside": "minecraft:block/stripped_warped_stem", diff --git a/src/main/generated/assets/hollow/models/block/warped_hollow_stem_horizontal.json b/src/main/generated/assets/hollow/models/block/warped_hollow_stem_horizontal.json index 24614ea..740af4c 100644 --- a/src/main/generated/assets/hollow/models/block/warped_hollow_stem_horizontal.json +++ b/src/main/generated/assets/hollow/models/block/warped_hollow_stem_horizontal.json @@ -1,5 +1,5 @@ { - "parent": "hollow:block/hollow_log_horizontal_template", + "parent": "hollow:block/hollow_log_horizontal", "textures": { "end": "minecraft:block/warped_stem_top", "inside": "minecraft:block/stripped_warped_stem", diff --git a/src/main/generated/assets/hollow/models/block/warped_hollow_stem_horizontal_mossy.json b/src/main/generated/assets/hollow/models/block/warped_hollow_stem_horizontal_moss.json similarity index 62% rename from src/main/generated/assets/hollow/models/block/warped_hollow_stem_horizontal_mossy.json rename to src/main/generated/assets/hollow/models/block/warped_hollow_stem_horizontal_moss.json index b00289f..8bb1c66 100644 --- a/src/main/generated/assets/hollow/models/block/warped_hollow_stem_horizontal_mossy.json +++ b/src/main/generated/assets/hollow/models/block/warped_hollow_stem_horizontal_moss.json @@ -1,8 +1,9 @@ { - "parent": "hollow:block/hollow_log_horizontal_mossy_template", + "parent": "hollow:block/hollow_log_horizontal_layer", "textures": { "end": "minecraft:block/warped_stem_top", "inside": "minecraft:block/stripped_warped_stem", + "overlay": "hollow:block/moss_overlay", "side": "minecraft:block/warped_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/warped_hollow_stem_horizontal_pale_moss.json b/src/main/generated/assets/hollow/models/block/warped_hollow_stem_horizontal_pale_moss.json new file mode 100644 index 0000000..3e671c8 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/warped_hollow_stem_horizontal_pale_moss.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/warped_stem_top", + "inside": "minecraft:block/stripped_warped_stem", + "overlay": "hollow:block/pale_moss_overlay", + "side": "minecraft:block/warped_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/block/warped_hollow_stem_horizontal_snow.json b/src/main/generated/assets/hollow/models/block/warped_hollow_stem_horizontal_snow.json new file mode 100644 index 0000000..7cf29e0 --- /dev/null +++ b/src/main/generated/assets/hollow/models/block/warped_hollow_stem_horizontal_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "hollow:block/hollow_log_horizontal_layer", + "textures": { + "end": "minecraft:block/warped_stem_top", + "inside": "minecraft:block/stripped_warped_stem", + "overlay": "hollow:block/snow_overlay", + "side": "minecraft:block/warped_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/acacia_hollow_log.json b/src/main/generated/assets/hollow/models/item/acacia_hollow_log.json deleted file mode 100644 index 7ba45fc..0000000 --- a/src/main/generated/assets/hollow/models/item/acacia_hollow_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/acacia_hollow_log" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/birch_hollow_log.json b/src/main/generated/assets/hollow/models/item/birch_hollow_log.json deleted file mode 100644 index 62edb07..0000000 --- a/src/main/generated/assets/hollow/models/item/birch_hollow_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/birch_hollow_log" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/cattail.json b/src/main/generated/assets/hollow/models/item/cattail.json index f1e0b69..f214928 100644 --- a/src/main/generated/assets/hollow/models/item/cattail.json +++ b/src/main/generated/assets/hollow/models/item/cattail.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "hollow:block/cattail_top" + "layer0": "hollow:block/cattail" } } \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/cherry_hollow_log.json b/src/main/generated/assets/hollow/models/item/cherry_hollow_log.json deleted file mode 100644 index 7b30b56..0000000 --- a/src/main/generated/assets/hollow/models/item/cherry_hollow_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/cherry_hollow_log" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/copper_pillar.json b/src/main/generated/assets/hollow/models/item/copper_pillar.json deleted file mode 100644 index 7671b21..0000000 --- a/src/main/generated/assets/hollow/models/item/copper_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/copper_pillar" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/crimson_hollow_stem.json b/src/main/generated/assets/hollow/models/item/crimson_hollow_stem.json deleted file mode 100644 index 46318e8..0000000 --- a/src/main/generated/assets/hollow/models/item/crimson_hollow_stem.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/crimson_hollow_stem" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/dark_oak_hollow_log.json b/src/main/generated/assets/hollow/models/item/dark_oak_hollow_log.json deleted file mode 100644 index 1509196..0000000 --- a/src/main/generated/assets/hollow/models/item/dark_oak_hollow_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/dark_oak_hollow_log" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/echoing_pot.json b/src/main/generated/assets/hollow/models/item/echoing_pot.json deleted file mode 100644 index d3e21b5..0000000 --- a/src/main/generated/assets/hollow/models/item/echoing_pot.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/echoing_pot" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/exposed_copper_pillar.json b/src/main/generated/assets/hollow/models/item/exposed_copper_pillar.json deleted file mode 100644 index 46f6212..0000000 --- a/src/main/generated/assets/hollow/models/item/exposed_copper_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/exposed_copper_pillar" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/firefly_spawn_egg.json b/src/main/generated/assets/hollow/models/item/firefly_spawn_egg.json deleted file mode 100644 index d1aaa9d..0000000 --- a/src/main/generated/assets/hollow/models/item/firefly_spawn_egg.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "minecraft:item/template_spawn_egg" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/jungle_hollow_log.json b/src/main/generated/assets/hollow/models/item/jungle_hollow_log.json deleted file mode 100644 index 4efdf49..0000000 --- a/src/main/generated/assets/hollow/models/item/jungle_hollow_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/jungle_hollow_log" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/mangrove_hollow_log.json b/src/main/generated/assets/hollow/models/item/mangrove_hollow_log.json deleted file mode 100644 index 19d93de..0000000 --- a/src/main/generated/assets/hollow/models/item/mangrove_hollow_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/mangrove_hollow_log" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/oak_hollow_log.json b/src/main/generated/assets/hollow/models/item/oak_hollow_log.json deleted file mode 100644 index ed405a0..0000000 --- a/src/main/generated/assets/hollow/models/item/oak_hollow_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/oak_hollow_log" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/oxidized_copper_pillar.json b/src/main/generated/assets/hollow/models/item/oxidized_copper_pillar.json deleted file mode 100644 index 342b1b6..0000000 --- a/src/main/generated/assets/hollow/models/item/oxidized_copper_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/oxidized_copper_pillar" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/sculk_jaw.json b/src/main/generated/assets/hollow/models/item/sculk_jaw.json deleted file mode 100644 index a955399..0000000 --- a/src/main/generated/assets/hollow/models/item/sculk_jaw.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/sculk_jaw" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/spruce_hollow_log.json b/src/main/generated/assets/hollow/models/item/spruce_hollow_log.json deleted file mode 100644 index a8d3279..0000000 --- a/src/main/generated/assets/hollow/models/item/spruce_hollow_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/spruce_hollow_log" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/stripped_acacia_hollow_log.json b/src/main/generated/assets/hollow/models/item/stripped_acacia_hollow_log.json deleted file mode 100644 index 9dbd63e..0000000 --- a/src/main/generated/assets/hollow/models/item/stripped_acacia_hollow_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/stripped_acacia_hollow_log" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/stripped_birch_hollow_log.json b/src/main/generated/assets/hollow/models/item/stripped_birch_hollow_log.json deleted file mode 100644 index e6ef94e..0000000 --- a/src/main/generated/assets/hollow/models/item/stripped_birch_hollow_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/stripped_birch_hollow_log" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/stripped_cherry_hollow_log.json b/src/main/generated/assets/hollow/models/item/stripped_cherry_hollow_log.json deleted file mode 100644 index 6f33c64..0000000 --- a/src/main/generated/assets/hollow/models/item/stripped_cherry_hollow_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/stripped_cherry_hollow_log" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/stripped_crimson_hollow_stem.json b/src/main/generated/assets/hollow/models/item/stripped_crimson_hollow_stem.json deleted file mode 100644 index 28bf33a..0000000 --- a/src/main/generated/assets/hollow/models/item/stripped_crimson_hollow_stem.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/stripped_crimson_hollow_stem" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/stripped_dark_oak_hollow_log.json b/src/main/generated/assets/hollow/models/item/stripped_dark_oak_hollow_log.json deleted file mode 100644 index 9dc2f55..0000000 --- a/src/main/generated/assets/hollow/models/item/stripped_dark_oak_hollow_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/stripped_dark_oak_hollow_log" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/stripped_jungle_hollow_log.json b/src/main/generated/assets/hollow/models/item/stripped_jungle_hollow_log.json deleted file mode 100644 index 29b6100..0000000 --- a/src/main/generated/assets/hollow/models/item/stripped_jungle_hollow_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/stripped_jungle_hollow_log" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/stripped_mangrove_hollow_log.json b/src/main/generated/assets/hollow/models/item/stripped_mangrove_hollow_log.json deleted file mode 100644 index 974db7e..0000000 --- a/src/main/generated/assets/hollow/models/item/stripped_mangrove_hollow_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/stripped_mangrove_hollow_log" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/stripped_oak_hollow_log.json b/src/main/generated/assets/hollow/models/item/stripped_oak_hollow_log.json deleted file mode 100644 index d6df25b..0000000 --- a/src/main/generated/assets/hollow/models/item/stripped_oak_hollow_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/stripped_oak_hollow_log" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/stripped_spruce_hollow_log.json b/src/main/generated/assets/hollow/models/item/stripped_spruce_hollow_log.json deleted file mode 100644 index c8648ae..0000000 --- a/src/main/generated/assets/hollow/models/item/stripped_spruce_hollow_log.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/stripped_spruce_hollow_log" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/stripped_warped_hollow_stem.json b/src/main/generated/assets/hollow/models/item/stripped_warped_hollow_stem.json deleted file mode 100644 index 79adf8d..0000000 --- a/src/main/generated/assets/hollow/models/item/stripped_warped_hollow_stem.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/stripped_warped_hollow_stem" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/twig.json b/src/main/generated/assets/hollow/models/item/twig.json deleted file mode 100644 index a19ed29..0000000 --- a/src/main/generated/assets/hollow/models/item/twig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hollow:block/twig" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/warped_hollow_stem.json b/src/main/generated/assets/hollow/models/item/warped_hollow_stem.json deleted file mode 100644 index 26a8e42..0000000 --- a/src/main/generated/assets/hollow/models/item/warped_hollow_stem.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/warped_hollow_stem" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/waxed_copper_pillar.json b/src/main/generated/assets/hollow/models/item/waxed_copper_pillar.json deleted file mode 100644 index 4090753..0000000 --- a/src/main/generated/assets/hollow/models/item/waxed_copper_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/waxed_copper_pillar" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/waxed_exposed_copper_pillar.json b/src/main/generated/assets/hollow/models/item/waxed_exposed_copper_pillar.json deleted file mode 100644 index da92459..0000000 --- a/src/main/generated/assets/hollow/models/item/waxed_exposed_copper_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/waxed_exposed_copper_pillar" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/waxed_oxidized_copper_pillar.json b/src/main/generated/assets/hollow/models/item/waxed_oxidized_copper_pillar.json deleted file mode 100644 index 3fd4d64..0000000 --- a/src/main/generated/assets/hollow/models/item/waxed_oxidized_copper_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/waxed_oxidized_copper_pillar" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/waxed_weathered_copper_pillar.json b/src/main/generated/assets/hollow/models/item/waxed_weathered_copper_pillar.json deleted file mode 100644 index 692e52a..0000000 --- a/src/main/generated/assets/hollow/models/item/waxed_weathered_copper_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/waxed_weathered_copper_pillar" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/models/item/weathered_copper_pillar.json b/src/main/generated/assets/hollow/models/item/weathered_copper_pillar.json deleted file mode 100644 index 4f183cc..0000000 --- a/src/main/generated/assets/hollow/models/item/weathered_copper_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/weathered_copper_pillar" -} \ No newline at end of file diff --git a/src/main/generated/assets/hollow/sounds.json b/src/main/generated/assets/hollow/sounds.json new file mode 100644 index 0000000..d8fc003 --- /dev/null +++ b/src/main/generated/assets/hollow/sounds.json @@ -0,0 +1,286 @@ +{ + "block.sculk_jaw.bite": { + "category": "block", + "sounds": [ + { + "name": "minecraft:mob/goat/horn_break1", + "volume": 0.9 + }, + { + "name": "minecraft:mob/goat/horn_break2", + "volume": 0.9 + }, + { + "name": "minecraft:mob/goat/horn_break3", + "volume": 0.9 + }, + { + "name": "minecraft:mob/goat/horn_break4", + "volume": 0.9 + } + ], + "subtitle": "subtitles.hollow.block.sculk_jaw.bite" + }, + "block.stone_chest.extract": { + "category": "block", + "sounds": [ + { + "name": "minecraft:block/decorated_pot/insert1", + "volume": 0.9 + }, + { + "name": "minecraft:block/decorated_pot/insert2", + "volume": 0.9 + }, + { + "name": "minecraft:block/decorated_pot/insert3", + "volume": 0.9 + }, + { + "name": "minecraft:block/decorated_pot/insert4", + "volume": 0.9 + } + ], + "subtitle": "subtitles.hollow.block.stone_chest.extract" + }, + "item.copper_horn.bass.anger": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/bass/anger" + ], + "subtitle": "subtitles.hollow.item.copper_horn.bass.anger" + }, + "item.copper_horn.bass.desire": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/bass/desire" + ], + "subtitle": "subtitles.hollow.item.copper_horn.bass.desire" + }, + "item.copper_horn.bass.falling": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/bass/falling" + ], + "subtitle": "subtitles.hollow.item.copper_horn.bass.falling" + }, + "item.copper_horn.bass.gift": { + "category": "neutral", + "sounds": [ + { + "name": "hollow:item/copper_horn/bass/gift", + "pitch": 1.07 + } + ], + "subtitle": "subtitles.hollow.item.copper_horn.bass.gift" + }, + "item.copper_horn.bass.journey": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/bass/journey" + ], + "subtitle": "subtitles.hollow.item.copper_horn.bass.journey" + }, + "item.copper_horn.bass.love": { + "category": "neutral", + "sounds": [ + { + "name": "hollow:item/copper_horn/bass/love", + "pitch": 1.7 + } + ], + "subtitle": "subtitles.hollow.item.copper_horn.bass.love" + }, + "item.copper_horn.bass.memory": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/bass/memory" + ], + "subtitle": "subtitles.hollow.item.copper_horn.bass.memory" + }, + "item.copper_horn.bass.resting": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/bass/resting" + ], + "subtitle": "subtitles.hollow.item.copper_horn.bass.resting" + }, + "item.copper_horn.bass.tear": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/bass/tear" + ], + "subtitle": "subtitles.hollow.item.copper_horn.bass.tear" + }, + "item.copper_horn.bass.thought": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/bass/thought" + ], + "subtitle": "subtitles.hollow.item.copper_horn.bass.thought" + }, + "item.copper_horn.call.clear": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/call/clear" + ], + "subtitle": "subtitles.hollow.item.copper_horn.call.clear" + }, + "item.copper_horn.call.dry": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/call/dry" + ], + "subtitle": "subtitles.hollow.item.copper_horn.call.dry" + }, + "item.copper_horn.call.fearless": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/call/fearless" + ], + "subtitle": "subtitles.hollow.item.copper_horn.call.fearless" + }, + "item.copper_horn.call.fresh": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/call/fresh" + ], + "subtitle": "subtitles.hollow.item.copper_horn.call.fresh" + }, + "item.copper_horn.call.great": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/call/great" + ], + "subtitle": "subtitles.hollow.item.copper_horn.call.great" + }, + "item.copper_horn.call.humble": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/call/humble" + ], + "subtitle": "subtitles.hollow.item.copper_horn.call.humble" + }, + "item.copper_horn.call.old": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/call/old" + ], + "subtitle": "subtitles.hollow.item.copper_horn.call.old" + }, + "item.copper_horn.call.pure": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/call/pure" + ], + "subtitle": "subtitles.hollow.item.copper_horn.call.pure" + }, + "item.copper_horn.call.secret": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/call/secret" + ], + "subtitle": "subtitles.hollow.item.copper_horn.call.secret" + }, + "item.copper_horn.call.sweet": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/call/sweet" + ], + "subtitle": "subtitles.hollow.item.copper_horn.call.sweet" + }, + "item.copper_horn.melody.fire": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/melody/fire" + ], + "subtitle": "subtitles.hollow.item.copper_horn.melody.fire" + }, + "item.copper_horn.melody.hymn": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/melody/hymn" + ], + "subtitle": "subtitles.hollow.item.copper_horn.melody.hymn" + }, + "item.copper_horn.melody.lake": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/melody/lake" + ], + "subtitle": "subtitles.hollow.item.copper_horn.melody.lake" + }, + "item.copper_horn.melody.moon": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/melody/moon" + ], + "subtitle": "subtitles.hollow.item.copper_horn.melody.moon" + }, + "item.copper_horn.melody.nest": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/melody/nest" + ], + "subtitle": "subtitles.hollow.item.copper_horn.melody.nest" + }, + "item.copper_horn.melody.river": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/melody/river" + ], + "subtitle": "subtitles.hollow.item.copper_horn.melody.river" + }, + "item.copper_horn.melody.sky": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/melody/sky" + ], + "subtitle": "subtitles.hollow.item.copper_horn.melody.sky" + }, + "item.copper_horn.melody.temper": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/melody/temper" + ], + "subtitle": "subtitles.hollow.item.copper_horn.melody.temper" + }, + "item.copper_horn.melody.urge": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/melody/urge" + ], + "subtitle": "subtitles.hollow.item.copper_horn.melody.urge" + }, + "item.copper_horn.melody.water": { + "category": "neutral", + "sounds": [ + "hollow:item/copper_horn/melody/water" + ], + "subtitle": "subtitles.hollow.item.copper_horn.melody.water" + }, + "music.overworld.birch_forest": { + "category": "music", + "sounds": [ + { + "name": "hollow:music/game/birch_forest/wildflower", + "stream": true, + "volume": 0.4 + }, + { + "name": "hollow:music/game/birch_forest/floraison", + "stream": true, + "volume": 0.4 + } + ] + }, + "music_disc.postmortem": { + "category": "record", + "sounds": [ + { + "name": "hollow:records/postmortem", + "stream": true + } + ] + } +} \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/sounds.json b/src/main/generated/assets/minecraft/sounds.json new file mode 100644 index 0000000..d8231f2 --- /dev/null +++ b/src/main/generated/assets/minecraft/sounds.json @@ -0,0 +1,21 @@ +{ + "music.overworld.deep_dark": { + "category": "neutral", + "sounds": [ + { + "name": "hollow:music/game/echo", + "stream": true + } + ] + }, + "music.overworld.swamp": { + "category": "neutral", + "sounds": [ + { + "name": "hollow:music/game/swamp/waterlily", + "stream": true, + "volume": 0.4 + } + ] + } +} \ No newline at end of file diff --git a/src/main/generated/assets/specter/metatags/minecraft/block/render_layer.json b/src/main/generated/assets/specter/metatags/minecraft/block/render_layer.json index 4a7ed5f..a28a677 100644 --- a/src/main/generated/assets/specter/metatags/minecraft/block/render_layer.json +++ b/src/main/generated/assets/specter/metatags/minecraft/block/render_layer.json @@ -16,6 +16,7 @@ "hollow:mangrove_hollow_log": "cutout_mipped", "hollow:oak_hollow_log": "cutout_mipped", "hollow:paeonia": "cutout", + "hollow:pale_oak_hollow_log": "cutout_mipped", "hollow:polypore": "cutout", "hollow:potted_paeonia": "cutout", "hollow:potted_rooted_orchid": "cutout", @@ -29,6 +30,7 @@ "hollow:stripped_jungle_hollow_log": "cutout_mipped", "hollow:stripped_mangrove_hollow_log": "cutout_mipped", "hollow:stripped_oak_hollow_log": "cutout_mipped", + "hollow:stripped_pale_oak_hollow_log": "cutout_mipped", "hollow:stripped_spruce_hollow_log": "cutout_mipped", "hollow:stripped_warped_hollow_stem": "cutout_mipped", "hollow:twig": "cutout", diff --git a/src/main/generated/data/minecraft/tags/block/tall_flowers.json b/src/main/generated/data/c/tags/block/flowers/tall.json similarity index 100% rename from src/main/generated/data/minecraft/tags/block/tall_flowers.json rename to src/main/generated/data/c/tags/block/flowers/tall.json diff --git a/src/main/generated/data/hollow/advancement/recipes/building_blocks/copper_pillar.json b/src/main/generated/data/hollow/advancement/recipes/building_blocks/copper_pillar.json index 0830059..50ac12c 100644 --- a/src/main/generated/data/hollow/advancement/recipes/building_blocks/copper_pillar.json +++ b/src/main/generated/data/hollow/advancement/recipes/building_blocks/copper_pillar.json @@ -1,7 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "block.minecraft.cut_copper_slab": { + "has_cut_copper_slab": { "conditions": { "items": [ { @@ -21,7 +21,7 @@ "requirements": [ [ "has_the_recipe", - "block.minecraft.cut_copper_slab" + "has_cut_copper_slab" ] ], "rewards": { diff --git a/src/main/generated/data/hollow/advancement/recipes/tools/copper_hornsecret_lake_tear.json b/src/main/generated/data/hollow/advancement/recipes/building_blocks/echoing_pot.json similarity index 68% rename from src/main/generated/data/hollow/advancement/recipes/tools/copper_hornsecret_lake_tear.json rename to src/main/generated/data/hollow/advancement/recipes/building_blocks/echoing_pot.json index 63ee794..934dc33 100644 --- a/src/main/generated/data/hollow/advancement/recipes/tools/copper_hornsecret_lake_tear.json +++ b/src/main/generated/data/hollow/advancement/recipes/building_blocks/echoing_pot.json @@ -1,11 +1,11 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_goat_horn": { + "has_echo_shard": { "conditions": { "items": [ { - "items": "minecraft:goat_horn" + "items": "minecraft:echo_shard" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "hollow:copper_hornsecret_lake_tear" + "recipe": "hollow:echoing_pot" }, "trigger": "minecraft:recipe_unlocked" } @@ -21,12 +21,12 @@ "requirements": [ [ "has_the_recipe", - "has_goat_horn" + "has_echo_shard" ] ], "rewards": { "recipes": [ - "hollow:copper_hornsecret_lake_tear" + "hollow:echoing_pot" ] } } \ No newline at end of file diff --git a/src/main/generated/data/hollow/advancement/recipes/building_blocks/exposed_copper_pillar.json b/src/main/generated/data/hollow/advancement/recipes/building_blocks/exposed_copper_pillar.json index b86b916..8745323 100644 --- a/src/main/generated/data/hollow/advancement/recipes/building_blocks/exposed_copper_pillar.json +++ b/src/main/generated/data/hollow/advancement/recipes/building_blocks/exposed_copper_pillar.json @@ -1,7 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "block.minecraft.exposed_cut_copper_slab": { + "has_exposed_cut_copper_slab": { "conditions": { "items": [ { @@ -21,7 +21,7 @@ "requirements": [ [ "has_the_recipe", - "block.minecraft.exposed_cut_copper_slab" + "has_exposed_cut_copper_slab" ] ], "rewards": { diff --git a/src/main/generated/data/hollow/advancement/recipes/tools/copper_hornold_hymn_resting.json b/src/main/generated/data/hollow/advancement/recipes/building_blocks/jar.json similarity index 68% rename from src/main/generated/data/hollow/advancement/recipes/tools/copper_hornold_hymn_resting.json rename to src/main/generated/data/hollow/advancement/recipes/building_blocks/jar.json index 9f35c25..0c86ab0 100644 --- a/src/main/generated/data/hollow/advancement/recipes/tools/copper_hornold_hymn_resting.json +++ b/src/main/generated/data/hollow/advancement/recipes/building_blocks/jar.json @@ -1,11 +1,11 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_goat_horn": { + "has_polypore": { "conditions": { "items": [ { - "items": "minecraft:goat_horn" + "items": "hollow:polypore" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "hollow:copper_hornold_hymn_resting" + "recipe": "hollow:jar" }, "trigger": "minecraft:recipe_unlocked" } @@ -21,12 +21,12 @@ "requirements": [ [ "has_the_recipe", - "has_goat_horn" + "has_polypore" ] ], "rewards": { "recipes": [ - "hollow:copper_hornold_hymn_resting" + "hollow:jar" ] } } \ No newline at end of file diff --git a/src/main/generated/data/hollow/advancement/recipes/building_blocks/oxidized_copper_pillar.json b/src/main/generated/data/hollow/advancement/recipes/building_blocks/oxidized_copper_pillar.json index 877e4e2..5648d00 100644 --- a/src/main/generated/data/hollow/advancement/recipes/building_blocks/oxidized_copper_pillar.json +++ b/src/main/generated/data/hollow/advancement/recipes/building_blocks/oxidized_copper_pillar.json @@ -1,7 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "block.minecraft.oxidized_cut_copper_slab": { + "has_oxidized_cut_copper_slab": { "conditions": { "items": [ { @@ -21,7 +21,7 @@ "requirements": [ [ "has_the_recipe", - "block.minecraft.oxidized_cut_copper_slab" + "has_oxidized_cut_copper_slab" ] ], "rewards": { diff --git a/src/main/generated/data/hollow/advancement/recipes/building_blocks/waxed_copper_pillar.json b/src/main/generated/data/hollow/advancement/recipes/building_blocks/waxed_copper_pillar.json index a38bafa..aa99038 100644 --- a/src/main/generated/data/hollow/advancement/recipes/building_blocks/waxed_copper_pillar.json +++ b/src/main/generated/data/hollow/advancement/recipes/building_blocks/waxed_copper_pillar.json @@ -1,7 +1,13 @@ { "parent": "minecraft:recipes/root", "criteria": { - "block.minecraft.waxed_cut_copper_slab": { + "has_the_recipe": { + "conditions": { + "recipe": "hollow:waxed_copper_pillar" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_cut_copper_slab": { "conditions": { "items": [ { @@ -10,18 +16,12 @@ ] }, "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hollow:waxed_copper_pillar" - }, - "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "block.minecraft.waxed_cut_copper_slab" + "has_waxed_cut_copper_slab" ] ], "rewards": { diff --git a/src/main/generated/data/hollow/advancement/recipes/building_blocks/waxed_exposed_copper_pillar.json b/src/main/generated/data/hollow/advancement/recipes/building_blocks/waxed_exposed_copper_pillar.json index 2c3b691..ac6c43f 100644 --- a/src/main/generated/data/hollow/advancement/recipes/building_blocks/waxed_exposed_copper_pillar.json +++ b/src/main/generated/data/hollow/advancement/recipes/building_blocks/waxed_exposed_copper_pillar.json @@ -1,7 +1,13 @@ { "parent": "minecraft:recipes/root", "criteria": { - "block.minecraft.waxed_exposed_cut_copper_slab": { + "has_the_recipe": { + "conditions": { + "recipe": "hollow:waxed_exposed_copper_pillar" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_exposed_cut_copper_slab": { "conditions": { "items": [ { @@ -10,18 +16,12 @@ ] }, "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hollow:waxed_exposed_copper_pillar" - }, - "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "block.minecraft.waxed_exposed_cut_copper_slab" + "has_waxed_exposed_cut_copper_slab" ] ], "rewards": { diff --git a/src/main/generated/data/hollow/advancement/recipes/building_blocks/waxed_oxidized_copper_pillar.json b/src/main/generated/data/hollow/advancement/recipes/building_blocks/waxed_oxidized_copper_pillar.json index 52928e9..c730c5a 100644 --- a/src/main/generated/data/hollow/advancement/recipes/building_blocks/waxed_oxidized_copper_pillar.json +++ b/src/main/generated/data/hollow/advancement/recipes/building_blocks/waxed_oxidized_copper_pillar.json @@ -1,7 +1,13 @@ { "parent": "minecraft:recipes/root", "criteria": { - "block.minecraft.waxed_oxidized_cut_copper_slab": { + "has_the_recipe": { + "conditions": { + "recipe": "hollow:waxed_oxidized_copper_pillar" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_oxidized_cut_copper_slab": { "conditions": { "items": [ { @@ -10,18 +16,12 @@ ] }, "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hollow:waxed_oxidized_copper_pillar" - }, - "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "block.minecraft.waxed_oxidized_cut_copper_slab" + "has_waxed_oxidized_cut_copper_slab" ] ], "rewards": { diff --git a/src/main/generated/data/hollow/advancement/recipes/building_blocks/waxed_weathered_copper_pillar.json b/src/main/generated/data/hollow/advancement/recipes/building_blocks/waxed_weathered_copper_pillar.json index ddab4af..dd744dc 100644 --- a/src/main/generated/data/hollow/advancement/recipes/building_blocks/waxed_weathered_copper_pillar.json +++ b/src/main/generated/data/hollow/advancement/recipes/building_blocks/waxed_weathered_copper_pillar.json @@ -1,7 +1,13 @@ { "parent": "minecraft:recipes/root", "criteria": { - "block.minecraft.waxed_weathered_cut_copper_slab": { + "has_the_recipe": { + "conditions": { + "recipe": "hollow:waxed_weathered_copper_pillar" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_weathered_cut_copper_slab": { "conditions": { "items": [ { @@ -10,18 +16,12 @@ ] }, "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hollow:waxed_weathered_copper_pillar" - }, - "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "block.minecraft.waxed_weathered_cut_copper_slab" + "has_waxed_weathered_cut_copper_slab" ] ], "rewards": { diff --git a/src/main/generated/data/hollow/advancement/recipes/building_blocks/weathered_copper_pillar.json b/src/main/generated/data/hollow/advancement/recipes/building_blocks/weathered_copper_pillar.json index 32de215..9c10aad 100644 --- a/src/main/generated/data/hollow/advancement/recipes/building_blocks/weathered_copper_pillar.json +++ b/src/main/generated/data/hollow/advancement/recipes/building_blocks/weathered_copper_pillar.json @@ -1,7 +1,13 @@ { "parent": "minecraft:recipes/root", "criteria": { - "block.minecraft.weathered_cut_copper_slab": { + "has_the_recipe": { + "conditions": { + "recipe": "hollow:weathered_copper_pillar" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_cut_copper_slab": { "conditions": { "items": [ { @@ -10,18 +16,12 @@ ] }, "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hollow:weathered_copper_pillar" - }, - "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "block.minecraft.weathered_cut_copper_slab" + "has_weathered_cut_copper_slab" ] ], "rewards": { diff --git a/src/main/generated/data/hollow/advancement/recipes/tools/copper_hornpure_water_desire.json b/src/main/generated/data/hollow/advancement/recipes/decorations/pale_oak_hollow_log.json similarity index 68% rename from src/main/generated/data/hollow/advancement/recipes/tools/copper_hornpure_water_desire.json rename to src/main/generated/data/hollow/advancement/recipes/decorations/pale_oak_hollow_log.json index 2b6c789..34fee2c 100644 --- a/src/main/generated/data/hollow/advancement/recipes/tools/copper_hornpure_water_desire.json +++ b/src/main/generated/data/hollow/advancement/recipes/decorations/pale_oak_hollow_log.json @@ -1,11 +1,11 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_goat_horn": { + "has_logs": { "conditions": { "items": [ { - "items": "minecraft:goat_horn" + "items": "#minecraft:pale_oak_logs" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "hollow:copper_hornpure_water_desire" + "recipe": "hollow:pale_oak_hollow_log" }, "trigger": "minecraft:recipe_unlocked" } @@ -21,12 +21,12 @@ "requirements": [ [ "has_the_recipe", - "has_goat_horn" + "has_logs" ] ], "rewards": { "recipes": [ - "hollow:copper_hornpure_water_desire" + "hollow:pale_oak_hollow_log" ] } } \ No newline at end of file diff --git a/src/main/generated/data/hollow/advancement/recipes/misc/light_blue_dye_from_rooted_orchid.json b/src/main/generated/data/hollow/advancement/recipes/misc/light_blue_dye_from_rooted_orchid.json new file mode 100644 index 0000000..e4e721b --- /dev/null +++ b/src/main/generated/data/hollow/advancement/recipes/misc/light_blue_dye_from_rooted_orchid.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_rooted_orchid": { + "conditions": { + "items": [ + { + "items": "hollow:rooted_orchid" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hollow:light_blue_dye_from_rooted_orchid" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rooted_orchid" + ] + ], + "rewards": { + "recipes": [ + "hollow:light_blue_dye_from_rooted_orchid" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/advancement/recipes/misc/pink_dye_from_paeonia.json b/src/main/generated/data/hollow/advancement/recipes/misc/pink_dye_from_paeonia.json new file mode 100644 index 0000000..c1305a9 --- /dev/null +++ b/src/main/generated/data/hollow/advancement/recipes/misc/pink_dye_from_paeonia.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_paeonia": { + "conditions": { + "items": [ + { + "items": "hollow:paeonia" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hollow:pink_dye_from_paeonia" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_paeonia" + ] + ], + "rewards": { + "recipes": [ + "hollow:pink_dye_from_paeonia" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/advancement/recipes/misc/white_dye_from_campion.json b/src/main/generated/data/hollow/advancement/recipes/misc/white_dye_from_campion.json new file mode 100644 index 0000000..e09f444 --- /dev/null +++ b/src/main/generated/data/hollow/advancement/recipes/misc/white_dye_from_campion.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_campion": { + "conditions": { + "items": [ + { + "items": "hollow:campion" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hollow:white_dye_from_campion" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_campion" + ] + ], + "rewards": { + "recipes": [ + "hollow:white_dye_from_campion" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_clear_temper_journey.json b/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_clear_temper_journey.json new file mode 100644 index 0000000..5ae0647 --- /dev/null +++ b/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_clear_temper_journey.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_goat_horn": { + "conditions": { + "items": [ + { + "items": "minecraft:goat_horn" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hollow:copper_horn_hollow_clear_temper_journey" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_goat_horn" + ] + ], + "rewards": { + "recipes": [ + "hollow:copper_horn_hollow_clear_temper_journey" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/advancement/recipes/tools/copper_horngreat_sky_falling.json b/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_dry_urge_anger.json similarity index 81% rename from src/main/generated/data/hollow/advancement/recipes/tools/copper_horngreat_sky_falling.json rename to src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_dry_urge_anger.json index 28af32f..76e31bc 100644 --- a/src/main/generated/data/hollow/advancement/recipes/tools/copper_horngreat_sky_falling.json +++ b/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_dry_urge_anger.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "hollow:copper_horngreat_sky_falling" + "recipe": "hollow:copper_horn_hollow_dry_urge_anger" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "hollow:copper_horngreat_sky_falling" + "hollow:copper_horn_hollow_dry_urge_anger" ] } } \ No newline at end of file diff --git a/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_fresh_nest_thought.json b/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_fresh_nest_thought.json new file mode 100644 index 0000000..a04783d --- /dev/null +++ b/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_fresh_nest_thought.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_goat_horn": { + "conditions": { + "items": [ + { + "items": "minecraft:goat_horn" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hollow:copper_horn_hollow_fresh_nest_thought" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_goat_horn" + ] + ], + "rewards": { + "recipes": [ + "hollow:copper_horn_hollow_fresh_nest_thought" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/advancement/recipes/tools/copper_hornfresh_nest_thought.json b/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_great_sky_falling.json similarity index 81% rename from src/main/generated/data/hollow/advancement/recipes/tools/copper_hornfresh_nest_thought.json rename to src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_great_sky_falling.json index de5d8f7..8bc547a 100644 --- a/src/main/generated/data/hollow/advancement/recipes/tools/copper_hornfresh_nest_thought.json +++ b/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_great_sky_falling.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "hollow:copper_hornfresh_nest_thought" + "recipe": "hollow:copper_horn_hollow_great_sky_falling" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "hollow:copper_hornfresh_nest_thought" + "hollow:copper_horn_hollow_great_sky_falling" ] } } \ No newline at end of file diff --git a/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_humble_fire_memory.json b/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_humble_fire_memory.json new file mode 100644 index 0000000..980c4d6 --- /dev/null +++ b/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_humble_fire_memory.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_goat_horn": { + "conditions": { + "items": [ + { + "items": "minecraft:goat_horn" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hollow:copper_horn_hollow_humble_fire_memory" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_goat_horn" + ] + ], + "rewards": { + "recipes": [ + "hollow:copper_horn_hollow_humble_fire_memory" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/advancement/recipes/tools/copper_hornclear_temper_journey.json b/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_old_hymn_resting.json similarity index 81% rename from src/main/generated/data/hollow/advancement/recipes/tools/copper_hornclear_temper_journey.json rename to src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_old_hymn_resting.json index af1a2af..b08bdce 100644 --- a/src/main/generated/data/hollow/advancement/recipes/tools/copper_hornclear_temper_journey.json +++ b/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_old_hymn_resting.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "hollow:copper_hornclear_temper_journey" + "recipe": "hollow:copper_horn_hollow_old_hymn_resting" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "hollow:copper_hornclear_temper_journey" + "hollow:copper_horn_hollow_old_hymn_resting" ] } } \ No newline at end of file diff --git a/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_pure_water_desire.json b/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_pure_water_desire.json new file mode 100644 index 0000000..40b973a --- /dev/null +++ b/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_pure_water_desire.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_goat_horn": { + "conditions": { + "items": [ + { + "items": "minecraft:goat_horn" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "hollow:copper_horn_hollow_pure_water_desire" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_goat_horn" + ] + ], + "rewards": { + "recipes": [ + "hollow:copper_horn_hollow_pure_water_desire" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/advancement/recipes/tools/copper_horndry_urge_anger.json b/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_secret_lake_tear.json similarity index 81% rename from src/main/generated/data/hollow/advancement/recipes/tools/copper_horndry_urge_anger.json rename to src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_secret_lake_tear.json index c2c5ff3..3c51eee 100644 --- a/src/main/generated/data/hollow/advancement/recipes/tools/copper_horndry_urge_anger.json +++ b/src/main/generated/data/hollow/advancement/recipes/tools/copper_horn_hollow_secret_lake_tear.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "hollow:copper_horndry_urge_anger" + "recipe": "hollow:copper_horn_hollow_secret_lake_tear" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "hollow:copper_horndry_urge_anger" + "hollow:copper_horn_hollow_secret_lake_tear" ] } } \ No newline at end of file diff --git a/src/main/generated/data/hollow/advancement/recipes/tools/copper_hornhumble_fire_memory.json b/src/main/generated/data/hollow/advancement/recipes/tools/copper_hornhumble_fire_memory.json deleted file mode 100644 index 3dd96e5..0000000 --- a/src/main/generated/data/hollow/advancement/recipes/tools/copper_hornhumble_fire_memory.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_goat_horn": { - "conditions": { - "items": [ - { - "items": "minecraft:goat_horn" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "hollow:copper_hornhumble_fire_memory" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_goat_horn" - ] - ], - "rewards": { - "recipes": [ - "hollow:copper_hornhumble_fire_memory" - ] - } -} \ No newline at end of file diff --git a/src/main/resources/data/hollow/damage_type/sculk_jaw.json b/src/main/generated/data/hollow/damage_type/sculk_jaw.json similarity index 100% rename from src/main/resources/data/hollow/damage_type/sculk_jaw.json rename to src/main/generated/data/hollow/damage_type/sculk_jaw.json diff --git a/src/main/generated/data/hollow/hollow/copper_instrument/clear_temper_journey.json b/src/main/generated/data/hollow/hollow/copper_instrument/clear_temper_journey.json new file mode 100644 index 0000000..16c84fe --- /dev/null +++ b/src/main/generated/data/hollow/hollow/copper_instrument/clear_temper_journey.json @@ -0,0 +1,10 @@ +{ + "bass": "hollow:item.copper_horn.bass.journey", + "call": "hollow:item.copper_horn.call.clear", + "description": { + "translate": "item.hollow.copper_horn.hollow.clear_temper_journey" + }, + "melody": "hollow:item.copper_horn.melody.temper", + "range": 256.0, + "use_duration": 4.0 +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/hollow/copper_instrument/dry_urge_anger.json b/src/main/generated/data/hollow/hollow/copper_instrument/dry_urge_anger.json new file mode 100644 index 0000000..7351852 --- /dev/null +++ b/src/main/generated/data/hollow/hollow/copper_instrument/dry_urge_anger.json @@ -0,0 +1,10 @@ +{ + "bass": "hollow:item.copper_horn.bass.anger", + "call": "hollow:item.copper_horn.call.dry", + "description": { + "translate": "item.hollow.copper_horn.hollow.dry_urge_anger" + }, + "melody": "hollow:item.copper_horn.melody.urge", + "range": 256.0, + "use_duration": 4.0 +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/hollow/copper_instrument/fearless_river_gift.json b/src/main/generated/data/hollow/hollow/copper_instrument/fearless_river_gift.json new file mode 100644 index 0000000..1c7193e --- /dev/null +++ b/src/main/generated/data/hollow/hollow/copper_instrument/fearless_river_gift.json @@ -0,0 +1,10 @@ +{ + "bass": "hollow:item.copper_horn.bass.gift", + "call": "hollow:item.copper_horn.call.fearless", + "description": { + "translate": "item.hollow.copper_horn.hollow.fearless_river_gift" + }, + "melody": "hollow:item.copper_horn.melody.river", + "range": 256.0, + "use_duration": 4.0 +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/hollow/copper_instrument/fresh_nest_thought.json b/src/main/generated/data/hollow/hollow/copper_instrument/fresh_nest_thought.json new file mode 100644 index 0000000..de57101 --- /dev/null +++ b/src/main/generated/data/hollow/hollow/copper_instrument/fresh_nest_thought.json @@ -0,0 +1,10 @@ +{ + "bass": "hollow:item.copper_horn.bass.thought", + "call": "hollow:item.copper_horn.call.fresh", + "description": { + "translate": "item.hollow.copper_horn.hollow.fresh_nest_thought" + }, + "melody": "hollow:item.copper_horn.melody.nest", + "range": 256.0, + "use_duration": 4.0 +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/hollow/copper_instrument/great_sky_falling.json b/src/main/generated/data/hollow/hollow/copper_instrument/great_sky_falling.json new file mode 100644 index 0000000..2e03c0b --- /dev/null +++ b/src/main/generated/data/hollow/hollow/copper_instrument/great_sky_falling.json @@ -0,0 +1,10 @@ +{ + "bass": "hollow:item.copper_horn.bass.falling", + "call": "hollow:item.copper_horn.call.great", + "description": { + "translate": "item.hollow.copper_horn.hollow.great_sky_falling" + }, + "melody": "hollow:item.copper_horn.melody.sky", + "range": 256.0, + "use_duration": 4.0 +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/hollow/copper_instrument/humble_fire_memory.json b/src/main/generated/data/hollow/hollow/copper_instrument/humble_fire_memory.json new file mode 100644 index 0000000..e30e916 --- /dev/null +++ b/src/main/generated/data/hollow/hollow/copper_instrument/humble_fire_memory.json @@ -0,0 +1,10 @@ +{ + "bass": "hollow:item.copper_horn.bass.memory", + "call": "hollow:item.copper_horn.call.humble", + "description": { + "translate": "item.hollow.copper_horn.hollow.humble_fire_memory" + }, + "melody": "hollow:item.copper_horn.melody.fire", + "range": 256.0, + "use_duration": 4.0 +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/hollow/copper_instrument/old_hymn_resting.json b/src/main/generated/data/hollow/hollow/copper_instrument/old_hymn_resting.json new file mode 100644 index 0000000..49f81e0 --- /dev/null +++ b/src/main/generated/data/hollow/hollow/copper_instrument/old_hymn_resting.json @@ -0,0 +1,10 @@ +{ + "bass": "hollow:item.copper_horn.bass.resting", + "call": "hollow:item.copper_horn.call.old", + "description": { + "translate": "item.hollow.copper_horn.hollow.old_hymn_resting" + }, + "melody": "hollow:item.copper_horn.melody.hymn", + "range": 256.0, + "use_duration": 4.0 +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/hollow/copper_instrument/pure_water_desire.json b/src/main/generated/data/hollow/hollow/copper_instrument/pure_water_desire.json new file mode 100644 index 0000000..52d2440 --- /dev/null +++ b/src/main/generated/data/hollow/hollow/copper_instrument/pure_water_desire.json @@ -0,0 +1,10 @@ +{ + "bass": "hollow:item.copper_horn.bass.desire", + "call": "hollow:item.copper_horn.call.pure", + "description": { + "translate": "item.hollow.copper_horn.hollow.pure_water_desire" + }, + "melody": "hollow:item.copper_horn.melody.water", + "range": 256.0, + "use_duration": 4.0 +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/hollow/copper_instrument/secret_lake_tear.json b/src/main/generated/data/hollow/hollow/copper_instrument/secret_lake_tear.json new file mode 100644 index 0000000..8963da6 --- /dev/null +++ b/src/main/generated/data/hollow/hollow/copper_instrument/secret_lake_tear.json @@ -0,0 +1,10 @@ +{ + "bass": "hollow:item.copper_horn.bass.tear", + "call": "hollow:item.copper_horn.call.secret", + "description": { + "translate": "item.hollow.copper_horn.hollow.secret_lake_tear" + }, + "melody": "hollow:item.copper_horn.melody.lake", + "range": 256.0, + "use_duration": 4.0 +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/hollow/copper_instrument/sweet_moon_love.json b/src/main/generated/data/hollow/hollow/copper_instrument/sweet_moon_love.json new file mode 100644 index 0000000..0bc19cd --- /dev/null +++ b/src/main/generated/data/hollow/hollow/copper_instrument/sweet_moon_love.json @@ -0,0 +1,10 @@ +{ + "bass": "hollow:item.copper_horn.bass.love", + "call": "hollow:item.copper_horn.call.sweet", + "description": { + "translate": "item.hollow.copper_horn.hollow.sweet_moon_love" + }, + "melody": "hollow:item.copper_horn.melody.moon", + "range": 256.0, + "use_duration": 4.0 +} \ No newline at end of file diff --git a/src/main/resources/data/hollow/jukebox_song/postmortem.json b/src/main/generated/data/hollow/jukebox_song/postmortem.json similarity index 98% rename from src/main/resources/data/hollow/jukebox_song/postmortem.json rename to src/main/generated/data/hollow/jukebox_song/postmortem.json index 138f857..ddef37e 100644 --- a/src/main/resources/data/hollow/jukebox_song/postmortem.json +++ b/src/main/generated/data/hollow/jukebox_song/postmortem.json @@ -5,4 +5,4 @@ }, "length_in_seconds": 84.0, "sound_event": "hollow:music_disc.postmortem" -} +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/loot_table/blocks/firefly_jar.json b/src/main/generated/data/hollow/loot_table/blocks/firefly_jar.json index db9525a..31cec9f 100644 --- a/src/main/generated/data/hollow/loot_table/blocks/firefly_jar.json +++ b/src/main/generated/data/hollow/loot_table/blocks/firefly_jar.json @@ -5,7 +5,19 @@ "bonus_rolls": 0.0, "conditions": [ { - "condition": "minecraft:survives_explosion" + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } } ], "entries": [ diff --git a/src/main/generated/data/hollow/loot_table/blocks/jar.json b/src/main/generated/data/hollow/loot_table/blocks/jar.json index 893f4cf..19c398d 100644 --- a/src/main/generated/data/hollow/loot_table/blocks/jar.json +++ b/src/main/generated/data/hollow/loot_table/blocks/jar.json @@ -6,6 +6,21 @@ "conditions": [ { "condition": "minecraft:survives_explosion" + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } } ], "entries": [ diff --git a/src/main/generated/data/hollow/loot_table/blocks/pale_oak_hollow_log.json b/src/main/generated/data/hollow/loot_table/blocks/pale_oak_hollow_log.json new file mode 100644 index 0000000..4f6e4f7 --- /dev/null +++ b/src/main/generated/data/hollow/loot_table/blocks/pale_oak_hollow_log.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hollow:pale_oak_hollow_log" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/loot_table/blocks/stripped_pale_oak_hollow_log.json b/src/main/generated/data/hollow/loot_table/blocks/stripped_pale_oak_hollow_log.json new file mode 100644 index 0000000..ad29ce9 --- /dev/null +++ b/src/main/generated/data/hollow/loot_table/blocks/stripped_pale_oak_hollow_log.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "hollow:stripped_pale_oak_hollow_log" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/recipe/acacia_hollow_log.json b/src/main/generated/data/hollow/recipe/acacia_hollow_log.json index 3c23dac..e465190 100644 --- a/src/main/generated/data/hollow/recipe/acacia_hollow_log.json +++ b/src/main/generated/data/hollow/recipe/acacia_hollow_log.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "#": { - "tag": "minecraft:acacia_logs" - } + "#": "#minecraft:acacia_logs" }, "pattern": [ "###", diff --git a/src/main/generated/data/hollow/recipe/birch_hollow_log.json b/src/main/generated/data/hollow/recipe/birch_hollow_log.json index 5665a1b..331e639 100644 --- a/src/main/generated/data/hollow/recipe/birch_hollow_log.json +++ b/src/main/generated/data/hollow/recipe/birch_hollow_log.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "#": { - "tag": "minecraft:birch_logs" - } + "#": "#minecraft:birch_logs" }, "pattern": [ "###", diff --git a/src/main/generated/data/hollow/recipe/cherry_hollow_log.json b/src/main/generated/data/hollow/recipe/cherry_hollow_log.json index 65c5066..501580a 100644 --- a/src/main/generated/data/hollow/recipe/cherry_hollow_log.json +++ b/src/main/generated/data/hollow/recipe/cherry_hollow_log.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "#": { - "tag": "minecraft:cherry_logs" - } + "#": "#minecraft:cherry_logs" }, "pattern": [ "###", diff --git a/src/main/generated/data/hollow/recipe/copper_hornclear_temper_journey.json b/src/main/generated/data/hollow/recipe/copper_horn_hollow_clear_temper_journey.json similarity index 69% rename from src/main/generated/data/hollow/recipe/copper_hornclear_temper_journey.json rename to src/main/generated/data/hollow/recipe/copper_horn_hollow_clear_temper_journey.json index 7eaee99..0108598 100644 --- a/src/main/generated/data/hollow/recipe/copper_hornclear_temper_journey.json +++ b/src/main/generated/data/hollow/recipe/copper_horn_hollow_clear_temper_journey.json @@ -3,14 +3,10 @@ "category": "equipment", "group": "hollow_copper_horn", "key": { - "#": { - "item": "minecraft:copper_ingot" - }, + "#": "minecraft:copper_ingot", "G": { "fabric:type": "fabric:components", - "base": { - "item": "minecraft:goat_horn" - }, + "base": "minecraft:goat_horn", "components": { "minecraft:instrument": "minecraft:call_goat_horn" } @@ -22,7 +18,7 @@ ], "result": { "components": { - "hollow:copper_instrument": "clear_temper_journey" + "hollow:copper_instrument": "hollow:clear_temper_journey" }, "count": 1, "id": "hollow:copper_horn" diff --git a/src/main/generated/data/hollow/recipe/copper_horndry_urge_anger.json b/src/main/generated/data/hollow/recipe/copper_horn_hollow_dry_urge_anger.json similarity index 70% rename from src/main/generated/data/hollow/recipe/copper_horndry_urge_anger.json rename to src/main/generated/data/hollow/recipe/copper_horn_hollow_dry_urge_anger.json index 51850d6..81ad14b 100644 --- a/src/main/generated/data/hollow/recipe/copper_horndry_urge_anger.json +++ b/src/main/generated/data/hollow/recipe/copper_horn_hollow_dry_urge_anger.json @@ -3,14 +3,10 @@ "category": "equipment", "group": "hollow_copper_horn", "key": { - "#": { - "item": "minecraft:copper_ingot" - }, + "#": "minecraft:copper_ingot", "G": { "fabric:type": "fabric:components", - "base": { - "item": "minecraft:goat_horn" - }, + "base": "minecraft:goat_horn", "components": { "minecraft:instrument": "minecraft:admire_goat_horn" } @@ -22,7 +18,7 @@ ], "result": { "components": { - "hollow:copper_instrument": "dry_urge_anger" + "hollow:copper_instrument": "hollow:dry_urge_anger" }, "count": 1, "id": "hollow:copper_horn" diff --git a/src/main/generated/data/hollow/recipe/copper_hornfresh_nest_thought.json b/src/main/generated/data/hollow/recipe/copper_horn_hollow_fresh_nest_thought.json similarity index 69% rename from src/main/generated/data/hollow/recipe/copper_hornfresh_nest_thought.json rename to src/main/generated/data/hollow/recipe/copper_horn_hollow_fresh_nest_thought.json index b214c12..0bd0aba 100644 --- a/src/main/generated/data/hollow/recipe/copper_hornfresh_nest_thought.json +++ b/src/main/generated/data/hollow/recipe/copper_horn_hollow_fresh_nest_thought.json @@ -3,14 +3,10 @@ "category": "equipment", "group": "hollow_copper_horn", "key": { - "#": { - "item": "minecraft:copper_ingot" - }, + "#": "minecraft:copper_ingot", "G": { "fabric:type": "fabric:components", - "base": { - "item": "minecraft:goat_horn" - }, + "base": "minecraft:goat_horn", "components": { "minecraft:instrument": "minecraft:yearn_goat_horn" } @@ -22,7 +18,7 @@ ], "result": { "components": { - "hollow:copper_instrument": "fresh_nest_thought" + "hollow:copper_instrument": "hollow:fresh_nest_thought" }, "count": 1, "id": "hollow:copper_horn" diff --git a/src/main/generated/data/hollow/recipe/copper_horngreat_sky_falling.json b/src/main/generated/data/hollow/recipe/copper_horn_hollow_great_sky_falling.json similarity index 69% rename from src/main/generated/data/hollow/recipe/copper_horngreat_sky_falling.json rename to src/main/generated/data/hollow/recipe/copper_horn_hollow_great_sky_falling.json index 24b53b9..0553f83 100644 --- a/src/main/generated/data/hollow/recipe/copper_horngreat_sky_falling.json +++ b/src/main/generated/data/hollow/recipe/copper_horn_hollow_great_sky_falling.json @@ -3,14 +3,10 @@ "category": "equipment", "group": "hollow_copper_horn", "key": { - "#": { - "item": "minecraft:copper_ingot" - }, + "#": "minecraft:copper_ingot", "G": { "fabric:type": "fabric:components", - "base": { - "item": "minecraft:goat_horn" - }, + "base": "minecraft:goat_horn", "components": { "minecraft:instrument": "minecraft:ponder_goat_horn" } @@ -22,7 +18,7 @@ ], "result": { "components": { - "hollow:copper_instrument": "great_sky_falling" + "hollow:copper_instrument": "hollow:great_sky_falling" }, "count": 1, "id": "hollow:copper_horn" diff --git a/src/main/generated/data/hollow/recipe/copper_hornhumble_fire_memory.json b/src/main/generated/data/hollow/recipe/copper_horn_hollow_humble_fire_memory.json similarity index 69% rename from src/main/generated/data/hollow/recipe/copper_hornhumble_fire_memory.json rename to src/main/generated/data/hollow/recipe/copper_horn_hollow_humble_fire_memory.json index 38c36ff..98b3582 100644 --- a/src/main/generated/data/hollow/recipe/copper_hornhumble_fire_memory.json +++ b/src/main/generated/data/hollow/recipe/copper_horn_hollow_humble_fire_memory.json @@ -3,14 +3,10 @@ "category": "equipment", "group": "hollow_copper_horn", "key": { - "#": { - "item": "minecraft:copper_ingot" - }, + "#": "minecraft:copper_ingot", "G": { "fabric:type": "fabric:components", - "base": { - "item": "minecraft:goat_horn" - }, + "base": "minecraft:goat_horn", "components": { "minecraft:instrument": "minecraft:feel_goat_horn" } @@ -22,7 +18,7 @@ ], "result": { "components": { - "hollow:copper_instrument": "humble_fire_memory" + "hollow:copper_instrument": "hollow:humble_fire_memory" }, "count": 1, "id": "hollow:copper_horn" diff --git a/src/main/generated/data/hollow/recipe/copper_hornold_hymn_resting.json b/src/main/generated/data/hollow/recipe/copper_horn_hollow_old_hymn_resting.json similarity index 69% rename from src/main/generated/data/hollow/recipe/copper_hornold_hymn_resting.json rename to src/main/generated/data/hollow/recipe/copper_horn_hollow_old_hymn_resting.json index 402813d..153f74f 100644 --- a/src/main/generated/data/hollow/recipe/copper_hornold_hymn_resting.json +++ b/src/main/generated/data/hollow/recipe/copper_horn_hollow_old_hymn_resting.json @@ -3,14 +3,10 @@ "category": "equipment", "group": "hollow_copper_horn", "key": { - "#": { - "item": "minecraft:copper_ingot" - }, + "#": "minecraft:copper_ingot", "G": { "fabric:type": "fabric:components", - "base": { - "item": "minecraft:goat_horn" - }, + "base": "minecraft:goat_horn", "components": { "minecraft:instrument": "minecraft:sing_goat_horn" } @@ -22,7 +18,7 @@ ], "result": { "components": { - "hollow:copper_instrument": "old_hymn_resting" + "hollow:copper_instrument": "hollow:old_hymn_resting" }, "count": 1, "id": "hollow:copper_horn" diff --git a/src/main/generated/data/hollow/recipe/copper_hornpure_water_desire.json b/src/main/generated/data/hollow/recipe/copper_horn_hollow_pure_water_desire.json similarity index 69% rename from src/main/generated/data/hollow/recipe/copper_hornpure_water_desire.json rename to src/main/generated/data/hollow/recipe/copper_horn_hollow_pure_water_desire.json index bb9cbdd..4a7bf5c 100644 --- a/src/main/generated/data/hollow/recipe/copper_hornpure_water_desire.json +++ b/src/main/generated/data/hollow/recipe/copper_horn_hollow_pure_water_desire.json @@ -3,14 +3,10 @@ "category": "equipment", "group": "hollow_copper_horn", "key": { - "#": { - "item": "minecraft:copper_ingot" - }, + "#": "minecraft:copper_ingot", "G": { "fabric:type": "fabric:components", - "base": { - "item": "minecraft:goat_horn" - }, + "base": "minecraft:goat_horn", "components": { "minecraft:instrument": "minecraft:seek_goat_horn" } @@ -22,7 +18,7 @@ ], "result": { "components": { - "hollow:copper_instrument": "pure_water_desire" + "hollow:copper_instrument": "hollow:pure_water_desire" }, "count": 1, "id": "hollow:copper_horn" diff --git a/src/main/generated/data/hollow/recipe/copper_hornsecret_lake_tear.json b/src/main/generated/data/hollow/recipe/copper_horn_hollow_secret_lake_tear.json similarity index 69% rename from src/main/generated/data/hollow/recipe/copper_hornsecret_lake_tear.json rename to src/main/generated/data/hollow/recipe/copper_horn_hollow_secret_lake_tear.json index 9116523..11a6bae 100644 --- a/src/main/generated/data/hollow/recipe/copper_hornsecret_lake_tear.json +++ b/src/main/generated/data/hollow/recipe/copper_horn_hollow_secret_lake_tear.json @@ -3,14 +3,10 @@ "category": "equipment", "group": "hollow_copper_horn", "key": { - "#": { - "item": "minecraft:copper_ingot" - }, + "#": "minecraft:copper_ingot", "G": { "fabric:type": "fabric:components", - "base": { - "item": "minecraft:goat_horn" - }, + "base": "minecraft:goat_horn", "components": { "minecraft:instrument": "minecraft:dream_goat_horn" } @@ -22,7 +18,7 @@ ], "result": { "components": { - "hollow:copper_instrument": "secret_lake_tear" + "hollow:copper_instrument": "hollow:secret_lake_tear" }, "count": 1, "id": "hollow:copper_horn" diff --git a/src/main/generated/data/hollow/recipe/copper_pillar.json b/src/main/generated/data/hollow/recipe/copper_pillar.json index a1b42f3..60ccfe9 100644 --- a/src/main/generated/data/hollow/recipe/copper_pillar.json +++ b/src/main/generated/data/hollow/recipe/copper_pillar.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "#": { - "item": "minecraft:cut_copper_slab" - } + "#": "minecraft:cut_copper_slab" }, "pattern": [ "##" diff --git a/src/main/generated/data/hollow/recipe/crimson_hollow_stem.json b/src/main/generated/data/hollow/recipe/crimson_hollow_stem.json index 573b91c..f411ccc 100644 --- a/src/main/generated/data/hollow/recipe/crimson_hollow_stem.json +++ b/src/main/generated/data/hollow/recipe/crimson_hollow_stem.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "#": { - "tag": "minecraft:crimson_stems" - } + "#": "#minecraft:crimson_stems" }, "pattern": [ "###", diff --git a/src/main/generated/data/hollow/recipe/dark_oak_hollow_log.json b/src/main/generated/data/hollow/recipe/dark_oak_hollow_log.json index 8c319c0..a1736e9 100644 --- a/src/main/generated/data/hollow/recipe/dark_oak_hollow_log.json +++ b/src/main/generated/data/hollow/recipe/dark_oak_hollow_log.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "#": { - "tag": "minecraft:dark_oak_logs" - } + "#": "#minecraft:dark_oak_logs" }, "pattern": [ "###", diff --git a/src/main/generated/data/hollow/recipe/echoing_pot.json b/src/main/generated/data/hollow/recipe/echoing_pot.json new file mode 100644 index 0000000..a51c29b --- /dev/null +++ b/src/main/generated/data/hollow/recipe/echoing_pot.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "C": "minecraft:chiseled_deepslate", + "E": "minecraft:echo_shard", + "P": "minecraft:polished_deepslate" + }, + "pattern": [ + "P P", + "CEC", + "CCC" + ], + "result": { + "count": 1, + "id": "hollow:echoing_pot" + } +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/recipe/exposed_copper_pillar.json b/src/main/generated/data/hollow/recipe/exposed_copper_pillar.json index ec83bc6..61549eb 100644 --- a/src/main/generated/data/hollow/recipe/exposed_copper_pillar.json +++ b/src/main/generated/data/hollow/recipe/exposed_copper_pillar.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "#": { - "item": "minecraft:exposed_cut_copper_slab" - } + "#": "minecraft:exposed_cut_copper_slab" }, "pattern": [ "##" diff --git a/src/main/generated/data/hollow/recipe/jar.json b/src/main/generated/data/hollow/recipe/jar.json new file mode 100644 index 0000000..d8b3c60 --- /dev/null +++ b/src/main/generated/data/hollow/recipe/jar.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "G": "#c:glass_blocks", + "P": "hollow:polypore" + }, + "pattern": [ + " P ", + "G G", + " G " + ], + "result": { + "count": 4, + "id": "hollow:jar" + } +} \ No newline at end of file diff --git a/src/main/generated/data/hollow/recipe/jungle_hollow_log.json b/src/main/generated/data/hollow/recipe/jungle_hollow_log.json index 73f3540..40b1874 100644 --- a/src/main/generated/data/hollow/recipe/jungle_hollow_log.json +++ b/src/main/generated/data/hollow/recipe/jungle_hollow_log.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "#": { - "tag": "minecraft:jungle_logs" - } + "#": "#minecraft:jungle_logs" }, "pattern": [ "###", diff --git a/src/main/resources/data/hollow/recipe/light_blue_dye_from_rooted_orchid.json b/src/main/generated/data/hollow/recipe/light_blue_dye_from_rooted_orchid.json similarity index 67% rename from src/main/resources/data/hollow/recipe/light_blue_dye_from_rooted_orchid.json rename to src/main/generated/data/hollow/recipe/light_blue_dye_from_rooted_orchid.json index 2263f6f..f52a06f 100644 --- a/src/main/resources/data/hollow/recipe/light_blue_dye_from_rooted_orchid.json +++ b/src/main/generated/data/hollow/recipe/light_blue_dye_from_rooted_orchid.json @@ -1,11 +1,8 @@ { "type": "minecraft:crafting_shapeless", "category": "misc", - "group": "light_blue_dye", "ingredients": [ - { - "item": "hollow:rooted_orchid" - } + "hollow:rooted_orchid" ], "result": { "count": 1, diff --git a/src/main/generated/data/hollow/recipe/mangrove_hollow_log.json b/src/main/generated/data/hollow/recipe/mangrove_hollow_log.json index 41471f2..baf6e6c 100644 --- a/src/main/generated/data/hollow/recipe/mangrove_hollow_log.json +++ b/src/main/generated/data/hollow/recipe/mangrove_hollow_log.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "#": { - "tag": "minecraft:mangrove_logs" - } + "#": "#minecraft:mangrove_logs" }, "pattern": [ "###", diff --git a/src/main/generated/data/hollow/recipe/oak_hollow_log.json b/src/main/generated/data/hollow/recipe/oak_hollow_log.json index e43aa35..1af72f3 100644 --- a/src/main/generated/data/hollow/recipe/oak_hollow_log.json +++ b/src/main/generated/data/hollow/recipe/oak_hollow_log.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "#": { - "tag": "minecraft:oak_logs" - } + "#": "#minecraft:oak_logs" }, "pattern": [ "###", diff --git a/src/main/generated/data/hollow/recipe/oxidized_copper_pillar.json b/src/main/generated/data/hollow/recipe/oxidized_copper_pillar.json index a1df985..ae9a014 100644 --- a/src/main/generated/data/hollow/recipe/oxidized_copper_pillar.json +++ b/src/main/generated/data/hollow/recipe/oxidized_copper_pillar.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "#": { - "item": "minecraft:oxidized_cut_copper_slab" - } + "#": "minecraft:oxidized_cut_copper_slab" }, "pattern": [ "##" diff --git a/src/main/generated/data/hollow/recipe/pale_oak_hollow_log.json b/src/main/generated/data/hollow/recipe/pale_oak_hollow_log.json new file mode 100644 index 0000000..4948b74 --- /dev/null +++ b/src/main/generated/data/hollow/recipe/pale_oak_hollow_log.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": "#minecraft:pale_oak_logs" + }, + "pattern": [ + "###", + "# #", + "###" + ], + "result": { + "count": 8, + "id": "hollow:pale_oak_hollow_log" + } +} \ No newline at end of file diff --git a/src/main/resources/data/hollow/recipe/pink_dye_from_paeonia.json b/src/main/generated/data/hollow/recipe/pink_dye_from_paeonia.json similarity index 70% rename from src/main/resources/data/hollow/recipe/pink_dye_from_paeonia.json rename to src/main/generated/data/hollow/recipe/pink_dye_from_paeonia.json index 0a3faf8..1711c0a 100644 --- a/src/main/resources/data/hollow/recipe/pink_dye_from_paeonia.json +++ b/src/main/generated/data/hollow/recipe/pink_dye_from_paeonia.json @@ -1,11 +1,8 @@ { "type": "minecraft:crafting_shapeless", "category": "misc", - "group": "pink_dye", "ingredients": [ - { - "item": "hollow:paeonia" - } + "hollow:paeonia" ], "result": { "count": 1, diff --git a/src/main/generated/data/hollow/recipe/spruce_hollow_log.json b/src/main/generated/data/hollow/recipe/spruce_hollow_log.json index 7af37d8..75c156d 100644 --- a/src/main/generated/data/hollow/recipe/spruce_hollow_log.json +++ b/src/main/generated/data/hollow/recipe/spruce_hollow_log.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "#": { - "tag": "minecraft:spruce_logs" - } + "#": "#minecraft:spruce_logs" }, "pattern": [ "###", diff --git a/src/main/generated/data/hollow/recipe/warped_hollow_stem.json b/src/main/generated/data/hollow/recipe/warped_hollow_stem.json index a04932f..25d647d 100644 --- a/src/main/generated/data/hollow/recipe/warped_hollow_stem.json +++ b/src/main/generated/data/hollow/recipe/warped_hollow_stem.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "#": { - "tag": "minecraft:warped_stems" - } + "#": "#minecraft:warped_stems" }, "pattern": [ "###", diff --git a/src/main/generated/data/hollow/recipe/waxed_copper_pillar.json b/src/main/generated/data/hollow/recipe/waxed_copper_pillar.json index 2b36c7e..5c65426 100644 --- a/src/main/generated/data/hollow/recipe/waxed_copper_pillar.json +++ b/src/main/generated/data/hollow/recipe/waxed_copper_pillar.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "#": { - "item": "minecraft:waxed_cut_copper_slab" - } + "#": "minecraft:waxed_cut_copper_slab" }, "pattern": [ "##" diff --git a/src/main/generated/data/hollow/recipe/waxed_exposed_copper_pillar.json b/src/main/generated/data/hollow/recipe/waxed_exposed_copper_pillar.json index ff1dedf..f3024b7 100644 --- a/src/main/generated/data/hollow/recipe/waxed_exposed_copper_pillar.json +++ b/src/main/generated/data/hollow/recipe/waxed_exposed_copper_pillar.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "#": { - "item": "minecraft:waxed_exposed_cut_copper_slab" - } + "#": "minecraft:waxed_exposed_cut_copper_slab" }, "pattern": [ "##" diff --git a/src/main/generated/data/hollow/recipe/waxed_oxidized_copper_pillar.json b/src/main/generated/data/hollow/recipe/waxed_oxidized_copper_pillar.json index 48d8734..6d5ab0b 100644 --- a/src/main/generated/data/hollow/recipe/waxed_oxidized_copper_pillar.json +++ b/src/main/generated/data/hollow/recipe/waxed_oxidized_copper_pillar.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "#": { - "item": "minecraft:waxed_oxidized_cut_copper_slab" - } + "#": "minecraft:waxed_oxidized_cut_copper_slab" }, "pattern": [ "##" diff --git a/src/main/generated/data/hollow/recipe/waxed_weathered_copper_pillar.json b/src/main/generated/data/hollow/recipe/waxed_weathered_copper_pillar.json index 68fb99e..ba480b8 100644 --- a/src/main/generated/data/hollow/recipe/waxed_weathered_copper_pillar.json +++ b/src/main/generated/data/hollow/recipe/waxed_weathered_copper_pillar.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "#": { - "item": "minecraft:waxed_weathered_cut_copper_slab" - } + "#": "minecraft:waxed_weathered_cut_copper_slab" }, "pattern": [ "##" diff --git a/src/main/generated/data/hollow/recipe/weathered_copper_pillar.json b/src/main/generated/data/hollow/recipe/weathered_copper_pillar.json index 0ccbc71..f609bb5 100644 --- a/src/main/generated/data/hollow/recipe/weathered_copper_pillar.json +++ b/src/main/generated/data/hollow/recipe/weathered_copper_pillar.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "#": { - "item": "minecraft:weathered_cut_copper_slab" - } + "#": "minecraft:weathered_cut_copper_slab" }, "pattern": [ "##" diff --git a/src/main/resources/data/hollow/recipe/white_dye_from_campion.json b/src/main/generated/data/hollow/recipe/white_dye_from_campion.json similarity index 70% rename from src/main/resources/data/hollow/recipe/white_dye_from_campion.json rename to src/main/generated/data/hollow/recipe/white_dye_from_campion.json index 3cda92c..f806b59 100644 --- a/src/main/resources/data/hollow/recipe/white_dye_from_campion.json +++ b/src/main/generated/data/hollow/recipe/white_dye_from_campion.json @@ -1,11 +1,8 @@ { "type": "minecraft:crafting_shapeless", "category": "misc", - "group": "white_dye", "ingredients": [ - { - "item": "hollow:campion" - } + "hollow:campion" ], "result": { "count": 2, diff --git a/src/main/generated/data/hollow/tags/block/hollow_logs.json b/src/main/generated/data/hollow/tags/block/hollow_logs.json index a5f2fcf..60bf36c 100644 --- a/src/main/generated/data/hollow/tags/block/hollow_logs.json +++ b/src/main/generated/data/hollow/tags/block/hollow_logs.json @@ -19,6 +19,8 @@ "hollow:mangrove_hollow_log", "hollow:stripped_mangrove_hollow_log", "hollow:cherry_hollow_log", - "hollow:stripped_cherry_hollow_log" + "hollow:stripped_cherry_hollow_log", + "hollow:pale_oak_hollow_log", + "hollow:stripped_pale_oak_hollow_log" ] } \ No newline at end of file diff --git a/src/main/generated/data/hollow/worldgen/configured_feature/fallen_birch.json b/src/main/generated/data/hollow/worldgen/configured_feature/fallen_birch.json index 16ee28d..4a11216 100644 --- a/src/main/generated/data/hollow/worldgen/configured_feature/fallen_birch.json +++ b/src/main/generated/data/hollow/worldgen/configured_feature/fallen_birch.json @@ -48,7 +48,7 @@ "Name": "hollow:birch_hollow_log", "Properties": { "axis": "y", - "mossy": "false", + "layer": "none", "waterlogged": "false" } } diff --git a/src/main/generated/data/hollow/worldgen/configured_feature/fallen_oak.json b/src/main/generated/data/hollow/worldgen/configured_feature/fallen_oak.json index f0564b9..ed32983 100644 --- a/src/main/generated/data/hollow/worldgen/configured_feature/fallen_oak.json +++ b/src/main/generated/data/hollow/worldgen/configured_feature/fallen_oak.json @@ -31,7 +31,7 @@ "Name": "hollow:oak_hollow_log", "Properties": { "axis": "y", - "mossy": "false", + "layer": "none", "waterlogged": "false" } } diff --git a/src/main/generated/data/hollow/worldgen/placed_feature/huge_red_mushroom_swamp.json b/src/main/generated/data/hollow/worldgen/placed_feature/huge_red_mushroom_swamp.json new file mode 100644 index 0000000..cff761c --- /dev/null +++ b/src/main/generated/data/hollow/worldgen/placed_feature/huge_red_mushroom_swamp.json @@ -0,0 +1,23 @@ +{ + "feature": "minecraft:huge_red_mushroom", + "placement": [ + { + "type": "minecraft:count", + "count": 1 + }, + { + "type": "minecraft:rarity_filter", + "chance": 2 + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + }, + { + "type": "minecraft:in_square" + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/block/flowers.json b/src/main/generated/data/minecraft/tags/block/flowers.json new file mode 100644 index 0000000..d68b7ae --- /dev/null +++ b/src/main/generated/data/minecraft/tags/block/flowers.json @@ -0,0 +1,5 @@ +{ + "values": [ + "hollow:campion" + ] +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/block/mineable/axe.json b/src/main/generated/data/minecraft/tags/block/mineable/axe.json index a5f2fcf..60bf36c 100644 --- a/src/main/generated/data/minecraft/tags/block/mineable/axe.json +++ b/src/main/generated/data/minecraft/tags/block/mineable/axe.json @@ -19,6 +19,8 @@ "hollow:mangrove_hollow_log", "hollow:stripped_mangrove_hollow_log", "hollow:cherry_hollow_log", - "hollow:stripped_cherry_hollow_log" + "hollow:stripped_cherry_hollow_log", + "hollow:pale_oak_hollow_log", + "hollow:stripped_pale_oak_hollow_log" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/damage_type/bypasses_armor.json b/src/main/generated/data/minecraft/tags/damage_type/bypasses_armor.json similarity index 65% rename from src/main/resources/data/minecraft/tags/damage_type/bypasses_armor.json rename to src/main/generated/data/minecraft/tags/damage_type/bypasses_armor.json index cc7197a..07a313a 100644 --- a/src/main/resources/data/minecraft/tags/damage_type/bypasses_armor.json +++ b/src/main/generated/data/minecraft/tags/damage_type/bypasses_armor.json @@ -1,7 +1,5 @@ { - "replace": false, "values": [ "hollow:sculk_jaw" ] -} - +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/damage_type/no_knockback.json b/src/main/generated/data/minecraft/tags/damage_type/no_knockback.json similarity index 68% rename from src/main/resources/data/minecraft/tags/damage_type/no_knockback.json rename to src/main/generated/data/minecraft/tags/damage_type/no_knockback.json index 3aef4bf..07a313a 100644 --- a/src/main/resources/data/minecraft/tags/damage_type/no_knockback.json +++ b/src/main/generated/data/minecraft/tags/damage_type/no_knockback.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "hollow:sculk_jaw" ] diff --git a/src/main/generated/data/specter/metatags/minecraft/block/flammable.json b/src/main/generated/data/specter/metatags/minecraft/block/flammable.json index 868146f..ad01cd7 100644 --- a/src/main/generated/data/specter/metatags/minecraft/block/flammable.json +++ b/src/main/generated/data/specter/metatags/minecraft/block/flammable.json @@ -32,6 +32,10 @@ "burn": 5, "spread": 5 }, + "hollow:pale_oak_hollow_log": { + "burn": 5, + "spread": 5 + }, "hollow:spruce_hollow_log": { "burn": 5, "spread": 5 @@ -68,6 +72,10 @@ "burn": 5, "spread": 5 }, + "hollow:stripped_pale_oak_hollow_log": { + "burn": 5, + "spread": 5 + }, "hollow:stripped_spruce_hollow_log": { "burn": 5, "spread": 5 diff --git a/src/main/generated/data/specter/metatags/minecraft/block/strippable.json b/src/main/generated/data/specter/metatags/minecraft/block/strippable.json index 0069304..cd9c7fc 100644 --- a/src/main/generated/data/specter/metatags/minecraft/block/strippable.json +++ b/src/main/generated/data/specter/metatags/minecraft/block/strippable.json @@ -8,6 +8,7 @@ "hollow:jungle_hollow_log": "hollow:stripped_jungle_hollow_log", "hollow:mangrove_hollow_log": "hollow:stripped_mangrove_hollow_log", "hollow:oak_hollow_log": "hollow:stripped_oak_hollow_log", + "hollow:pale_oak_hollow_log": "hollow:stripped_pale_oak_hollow_log", "hollow:spruce_hollow_log": "hollow:stripped_spruce_hollow_log", "hollow:warped_hollow_stem": "hollow:stripped_warped_hollow_stem" } diff --git a/src/main/generated/data/specter/metatags/minecraft/item/composting_chance.json b/src/main/generated/data/specter/metatags/minecraft/item/composting_chance.json new file mode 100644 index 0000000..ba103c0 --- /dev/null +++ b/src/main/generated/data/specter/metatags/minecraft/item/composting_chance.json @@ -0,0 +1,11 @@ +{ + "values": { + "hollow:campion": 0.65, + "hollow:cattail": 0.65, + "hollow:giant_lilypad": 0.85, + "hollow:lotus_lilypad": 0.75, + "hollow:paeonia": 0.65, + "hollow:polypore": 0.65, + "hollow:rooted_orchid": 0.65 + } +} \ No newline at end of file diff --git a/src/main/java/dev/spiritstudios/hollow/Hollow.java b/src/main/java/dev/spiritstudios/hollow/Hollow.java index 2eeb57a..084bc0b 100644 --- a/src/main/java/dev/spiritstudios/hollow/Hollow.java +++ b/src/main/java/dev/spiritstudios/hollow/Hollow.java @@ -1,18 +1,27 @@ package dev.spiritstudios.hollow; +import dev.spiritstudios.hollow.block.HollowBlocks; +import dev.spiritstudios.hollow.block.entity.HollowBlockEntityTypes; +import dev.spiritstudios.hollow.component.HollowDataComponentTypes; import dev.spiritstudios.hollow.entity.FireflyEntity; +import dev.spiritstudios.hollow.entity.HollowEntityTypes; +import dev.spiritstudios.hollow.item.HollowItems; +import dev.spiritstudios.hollow.loot.HollowLootFunctionTypes; import dev.spiritstudios.hollow.loot.HollowLootTableModifications; -import dev.spiritstudios.hollow.loot.SetCopperInstrumentFunction; -import dev.spiritstudios.hollow.registry.*; +import dev.spiritstudios.hollow.registry.HollowCriteria; +import dev.spiritstudios.hollow.registry.HollowParticleTypes; +import dev.spiritstudios.hollow.registry.HollowRegistryKeys; +import dev.spiritstudios.hollow.sound.HollowSoundEvents; import dev.spiritstudios.hollow.worldgen.HollowBiomeModifications; +import dev.spiritstudios.hollow.worldgen.feature.HollowFeatures; +import dev.spiritstudios.hollow.worldgen.tree.decorator.HollowTreeDecoratorTypes; +import dev.spiritstudios.hollow.worldgen.tree.foliage.HollowFoliagePlacerTypes; import dev.spiritstudios.specter.api.registry.RegistryHelper; import net.fabricmc.api.ModInitializer; +import net.fabricmc.fabric.api.item.v1.ComponentTooltipAppenderRegistry; import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry; import net.minecraft.advancement.criterion.Criterion; -import net.minecraft.loot.function.LootFunctionType; import net.minecraft.registry.Registries; -import net.minecraft.registry.Registry; -import net.minecraft.sound.SoundEvent; import net.minecraft.util.Identifier; import net.minecraft.world.gen.feature.Feature; import net.minecraft.world.gen.foliage.FoliagePlacerType; @@ -20,21 +29,20 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.List; - public final class Hollow implements ModInitializer { public static final String MODID = "hollow"; public static final Logger LOGGER = LoggerFactory.getLogger(MODID); - public static final LootFunctionType SET_COPPER_INSTRUMENT = new LootFunctionType<>(SetCopperInstrumentFunction.CODEC); - @Override public void onInitialize() { - RegistryHelper.registerSoundEvents(HollowSoundEvents.class, MODID); - RegistryHelper.registerBlocks(HollowBlocks.class, MODID); - RegistryHelper.registerItems(HollowItems.class, MODID); - RegistryHelper.registerEntityTypes(HollowEntityTypes.class, MODID); + HollowRegistryKeys.init(); + HollowSoundEvents.init(); + + HollowBlocks.init(); + HollowItems.init(); + HollowEntityTypes.init(); + RegistryHelper.registerFields(Registries.FEATURE, RegistryHelper.fixGenerics(Feature.class), HollowFeatures.class, MODID); RegistryHelper.registerFields(Registries.TREE_DECORATOR_TYPE, RegistryHelper.fixGenerics(TreeDecoratorType.class), HollowTreeDecoratorTypes.class, MODID); RegistryHelper.registerBlockEntityTypes(HollowBlockEntityTypes.class, MODID); @@ -45,32 +53,15 @@ public void onInitialize() { HollowGameRules.init(); - Registry.register( - Registries.LOOT_FUNCTION_TYPE, - id("set_copper_instrument"), - SET_COPPER_INSTRUMENT - ); - - List.of( - "call", - "melody", - "bass" - ).forEach(name -> { - for (int i = 0; i < 10; i++) { - Identifier id = id("horn.%s.%d".formatted(name, i)); - Registry.register( - Registries.SOUND_EVENT, - id, - SoundEvent.of(id) - ); - } - }); - FabricDefaultAttributeRegistry.register(HollowEntityTypes.FIREFLY, FireflyEntity.createFireflyAttributes()); + HollowLootFunctionTypes.init(); + HollowBiomeModifications.init(); HollowLootTableModifications.init(); HollowItemGroupAdditions.init(); + + ComponentTooltipAppenderRegistry.addLast(HollowDataComponentTypes.COPPER_INSTRUMENT); } public static Identifier id(String path) { diff --git a/src/main/java/dev/spiritstudios/hollow/HollowItemGroupAdditions.java b/src/main/java/dev/spiritstudios/hollow/HollowItemGroupAdditions.java index 2a81641..4dcd9e4 100644 --- a/src/main/java/dev/spiritstudios/hollow/HollowItemGroupAdditions.java +++ b/src/main/java/dev/spiritstudios/hollow/HollowItemGroupAdditions.java @@ -1,89 +1,86 @@ package dev.spiritstudios.hollow; +import dev.spiritstudios.hollow.block.HollowBlocks; import dev.spiritstudios.hollow.block.HollowLogBlock; -import dev.spiritstudios.hollow.component.CopperInstrument; -import dev.spiritstudios.hollow.registry.HollowBlocks; -import dev.spiritstudios.hollow.registry.HollowDataComponentTypes; -import dev.spiritstudios.hollow.registry.HollowItems; +import dev.spiritstudios.hollow.component.CopperInstrumentComponent; +import dev.spiritstudios.hollow.component.HollowDataComponentTypes; +import dev.spiritstudios.hollow.item.HollowItems; +import dev.spiritstudios.hollow.registry.HollowRegistryKeys; import dev.spiritstudios.specter.api.core.reflect.ReflectionHelper; import it.unimi.dsi.fastutil.objects.Object2ReferenceOpenHashMap; import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroupEntries; import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; -import net.minecraft.component.ComponentChanges; -import net.minecraft.item.*; +import net.minecraft.item.Item; +import net.minecraft.item.ItemConvertible; +import net.minecraft.item.ItemGroup; +import net.minecraft.item.ItemGroups; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; import net.minecraft.registry.Registries; -import java.util.Arrays; import java.util.Map; public final class HollowItemGroupAdditions { - public static void init() { - Map baseToHollow = new Object2ReferenceOpenHashMap<>(); - ReflectionHelper.getStaticFields(HollowBlocks.class, HollowLogBlock.class) - .forEach(pair -> - baseToHollow.put(Registries.ITEM.get(pair.value().typeData.id()), pair.value())); + public static void init() { + Map baseToHollow = new Object2ReferenceOpenHashMap<>(); + ReflectionHelper.getStaticFields(HollowBlocks.class, HollowLogBlock.class) + .forEach(pair -> + baseToHollow.put(Registries.ITEM.get(pair.value().typeData.id()), pair.value())); - ItemGroupEvents.MODIFY_ENTRIES_ALL.register((itemGroup, entries) -> { - ItemGroupHelper helper = new ItemGroupHelper(itemGroup, entries); + ItemGroupEvents.MODIFY_ENTRIES_ALL.register((itemGroup, entries) -> { + ItemGroupHelper helper = new ItemGroupHelper(itemGroup, entries); - baseToHollow.forEach(helper::addAfter); + baseToHollow.forEach(helper::addAfter); -// helper.addAfter( -// Items.PINK_PETALS, -// HollowBlocks.PINK_WILDFLOWER, -// HollowBlocks.PURPLE_WILDFLOWER, -// HollowBlocks.BLUE_WILDFLOWER, -// HollowBlocks.WHITE_WILDFLOWER -// ); - helper.addAfter(Items.ALLIUM, HollowBlocks.PAEONIA); - helper.addAfter(Items.BLUE_ORCHID, HollowBlocks.ROOTED_ORCHID); - helper.addAfter(Items.PEONY, HollowBlocks.CAMPION); - helper.addAfter(Items.DEAD_BUSH, HollowBlocks.TWIG); - helper.addAfter(Items.KELP, HollowBlocks.CATTAIL); - helper.addAfter(Items.LILY_PAD, HollowItems.LOTUS_LILYPAD, HollowItems.GIANT_LILYPAD); - helper.addAfter(Items.BROWN_MUSHROOM, HollowBlocks.POLYPORE); + helper.addAfter(Items.ALLIUM, HollowBlocks.PAEONIA); + helper.addAfter(Items.BLUE_ORCHID, HollowBlocks.ROOTED_ORCHID); + helper.addAfter(Items.PEONY, HollowBlocks.CAMPION); + helper.addAfter(Items.DEAD_BUSH, HollowBlocks.TWIG); + helper.addAfter(Items.KELP, HollowBlocks.CATTAIL); + helper.addAfter(Items.LILY_PAD, HollowItems.LOTUS_LILYPAD, HollowItems.GIANT_LILYPAD); + helper.addAfter(Items.BROWN_MUSHROOM, HollowBlocks.POLYPORE); - helper.addAfter(Items.DECORATED_POT, HollowBlocks.JAR, HollowBlocks.FIREFLY_JAR); + helper.addAfter(Items.DECORATED_POT, HollowBlocks.JAR, HollowBlocks.FIREFLY_JAR); - helper.addAfter(Items.SCULK_CATALYST, HollowBlocks.SCULK_JAW); - helper.addAfter(Items.VAULT, HollowBlocks.ECHOING_POT); - helper.addAfter(Items.CHEST, HollowBlocks.STONE_CHEST, HollowBlocks.STONE_CHEST_LID); + helper.addAfter(Items.SCULK_CATALYST, HollowBlocks.SCULK_JAW); + helper.addAfter(Items.VAULT, HollowBlocks.ECHOING_POT); + helper.addAfter(Items.CHEST, HollowBlocks.STONE_CHEST, HollowBlocks.STONE_CHEST_LID); - helper.addAfter(Items.CHISELED_COPPER, HollowBlocks.COPPER_PILLAR); - helper.addAfter(Items.EXPOSED_CHISELED_COPPER, HollowBlocks.EXPOSED_COPPER_PILLAR); - helper.addAfter(Items.WEATHERED_CHISELED_COPPER, HollowBlocks.WEATHERED_COPPER_PILLAR); - helper.addAfter(Items.OXIDIZED_CHISELED_COPPER, HollowBlocks.OXIDIZED_COPPER_PILLAR); + helper.addAfter(Items.CHISELED_COPPER, HollowBlocks.COPPER_PILLAR); + helper.addAfter(Items.EXPOSED_CHISELED_COPPER, HollowBlocks.EXPOSED_COPPER_PILLAR); + helper.addAfter(Items.WEATHERED_CHISELED_COPPER, HollowBlocks.WEATHERED_COPPER_PILLAR); + helper.addAfter(Items.OXIDIZED_CHISELED_COPPER, HollowBlocks.OXIDIZED_COPPER_PILLAR); - helper.addAfter(Items.WAXED_CHISELED_COPPER, HollowBlocks.WAXED_COPPER_PILLAR); - helper.addAfter(Items.WAXED_EXPOSED_CHISELED_COPPER, HollowBlocks.WAXED_EXPOSED_COPPER_PILLAR); - helper.addAfter(Items.WAXED_WEATHERED_CHISELED_COPPER, HollowBlocks.WAXED_WEATHERED_COPPER_PILLAR); - helper.addAfter(Items.WAXED_OXIDIZED_CHISELED_COPPER, HollowBlocks.WAXED_OXIDIZED_COPPER_PILLAR); - }); + helper.addAfter(Items.WAXED_CHISELED_COPPER, HollowBlocks.WAXED_COPPER_PILLAR); + helper.addAfter(Items.WAXED_EXPOSED_CHISELED_COPPER, HollowBlocks.WAXED_EXPOSED_COPPER_PILLAR); + helper.addAfter(Items.WAXED_WEATHERED_CHISELED_COPPER, HollowBlocks.WAXED_WEATHERED_COPPER_PILLAR); + helper.addAfter(Items.WAXED_OXIDIZED_CHISELED_COPPER, HollowBlocks.WAXED_OXIDIZED_COPPER_PILLAR); + }); - ItemGroupEvents.modifyEntriesEvent(ItemGroups.SPAWN_EGGS).register(entries -> { - entries.add(HollowItems.FIREFLY_SPAWN_EGG); - }); + ItemGroupEvents.modifyEntriesEvent(ItemGroups.SPAWN_EGGS).register(entries -> { + entries.add(HollowItems.FIREFLY_SPAWN_EGG); + }); - ItemGroupEvents.modifyEntriesEvent(ItemGroups.TOOLS).register(entries -> { - entries.add(HollowItems.MUSIC_DISC_POSTMORTEM); + ItemGroupEvents.modifyEntriesEvent(ItemGroups.TOOLS).register(entries -> { + entries.addAfter(Items.MUSIC_DISC_WARD, HollowItems.MUSIC_DISC_POSTMORTEM); + entries.getContext().lookup() + .getOptional(HollowRegistryKeys.COPPER_INSTRUMENT) + .map(wrapper -> wrapper.streamEntries().map(entry -> { + ItemStack stack = new ItemStack(HollowItems.COPPER_HORN); + stack.set(HollowDataComponentTypes.COPPER_INSTRUMENT, new CopperInstrumentComponent(entry)); + return stack; + }).toArray(ItemStack[]::new)) + .ifPresent(items -> entries.addAfter( + Items.GOAT_HORN, + items + )); + }); + } - entries.addAfter( - Items.GOAT_HORN, - Arrays.stream(CopperInstrument.values()).map(instrument -> new ItemStack( - Registries.ITEM.getEntry(HollowItems.COPPER_HORN), - 1, - ComponentChanges.builder() - .add(HollowDataComponentTypes.COPPER_INSTRUMENT, instrument) - .build() - )).toArray(ItemStack[]::new) - ); - }); - } - - private record ItemGroupHelper(ItemGroup group, FabricItemGroupEntries entries) { - public void addAfter(Item after, ItemConvertible... add) { - if (group.contains(after.getDefaultStack())) - entries.addAfter(after, add); - } - } + private record ItemGroupHelper(ItemGroup group, FabricItemGroupEntries entries) { + public void addAfter(Item after, ItemConvertible... add) { + if (group.contains(after.getDefaultStack())) + entries.addAfter(after, add); + } + } } diff --git a/src/main/java/dev/spiritstudios/hollow/block/CattailBlock.java b/src/main/java/dev/spiritstudios/hollow/block/CattailBlock.java index b16d777..88399e4 100644 --- a/src/main/java/dev/spiritstudios/hollow/block/CattailBlock.java +++ b/src/main/java/dev/spiritstudios/hollow/block/CattailBlock.java @@ -1,9 +1,13 @@ package dev.spiritstudios.hollow.block; import com.mojang.serialization.MapCodec; -import dev.spiritstudios.hollow.registry.HollowBlocks; -import net.minecraft.block.*; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.AbstractPlantStemBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.FluidFillable; +import net.minecraft.entity.LivingEntity; import net.minecraft.fluid.Fluid; import net.minecraft.fluid.FluidState; import net.minecraft.fluid.Fluids; @@ -19,6 +23,8 @@ import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; import net.minecraft.world.WorldAccess; +import net.minecraft.world.WorldView; +import net.minecraft.world.tick.ScheduledTickView; import org.jetbrains.annotations.Nullable; public class CattailBlock extends AbstractPlantStemBlock implements FluidFillable { @@ -59,10 +65,10 @@ protected Block getPlant() { } @Override - protected BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { + protected BlockState getStateForNeighborUpdate(BlockState state, WorldView world, ScheduledTickView tickView, BlockPos pos, Direction direction, BlockPos neighborPos, BlockState neighborState, Random random) { BlockState below = world.getBlockState(pos.down()); - return super.getStateForNeighborUpdate(state, direction, neighborState, world, pos, neighborPos) + return super.getStateForNeighborUpdate(state, world, tickView, pos, direction, neighborPos, neighborState, random) .withIfExists(WATERLOGGED, world.isWater(pos)) .withIfExists(CattailStemBlock.BOTTOM, !below.isOf(this) && !below.isOf(getPlant())); } @@ -74,7 +80,8 @@ public BlockState getPlacementState(ItemPlacementContext ctx) { BlockState below = ctx.getWorld().getBlockState(ctx.getBlockPos().down()); return (fluidState.isIn(FluidTags.WATER) && fluidState.getLevel() == 8) || below.isOf(this) ? - super.getPlacementState(ctx).with(WATERLOGGED, fluidState.isIn(FluidTags.WATER)) + super.getPlacementState(ctx) + .with(WATERLOGGED, fluidState.isIn(FluidTags.WATER)) .withIfExists(CattailStemBlock.BOTTOM, !below.isOf(this) && !below.isOf(getPlant())) : null; @@ -124,7 +131,7 @@ public void grow(ServerWorld world, Random random, BlockPos pos, BlockState stat } @Override - public boolean canFillWithFluid(@Nullable PlayerEntity player, BlockView world, BlockPos pos, BlockState state, Fluid fluid) { + public boolean canFillWithFluid(@Nullable LivingEntity filler, BlockView world, BlockPos pos, BlockState state, Fluid fluid) { return false; } diff --git a/src/main/java/dev/spiritstudios/hollow/block/CattailStemBlock.java b/src/main/java/dev/spiritstudios/hollow/block/CattailStemBlock.java index eff6195..0a11fa4 100644 --- a/src/main/java/dev/spiritstudios/hollow/block/CattailStemBlock.java +++ b/src/main/java/dev/spiritstudios/hollow/block/CattailStemBlock.java @@ -1,9 +1,13 @@ package dev.spiritstudios.hollow.block; import com.mojang.serialization.MapCodec; -import dev.spiritstudios.hollow.registry.HollowBlocks; -import net.minecraft.block.*; -import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.AbstractPlantBlock; +import net.minecraft.block.AbstractPlantStemBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.FluidFillable; +import net.minecraft.entity.LivingEntity; import net.minecraft.fluid.Fluid; import net.minecraft.fluid.FluidState; import net.minecraft.fluid.Fluids; @@ -13,8 +17,11 @@ import net.minecraft.state.property.Properties; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; -import net.minecraft.util.shape.VoxelShapes; -import net.minecraft.world.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.BlockView; +import net.minecraft.world.WorldAccess; +import net.minecraft.world.WorldView; +import net.minecraft.world.tick.ScheduledTickView; import org.jetbrains.annotations.Nullable; public class CattailStemBlock extends AbstractPlantBlock implements FluidFillable { @@ -54,10 +61,12 @@ public BlockState getPlacementState(ItemPlacementContext ctx) { } @Override - protected BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { - if (direction != Direction.DOWN) return super.getStateForNeighborUpdate(state, direction, neighborState, world, pos, neighborPos).withIfExists(WATERLOGGED, world.isWater(pos)); + protected BlockState getStateForNeighborUpdate(BlockState state, WorldView world, ScheduledTickView tickView, BlockPos pos, Direction direction, BlockPos neighborPos, BlockState neighborState, Random random) { + if (direction != Direction.DOWN) + return super.getStateForNeighborUpdate(state, world, tickView, pos, direction, neighborPos, neighborState, random) + .withIfExists(WATERLOGGED, world.isWater(pos)); - return super.getStateForNeighborUpdate(state, direction, neighborState, world, pos, neighborPos) + return super.getStateForNeighborUpdate(state, world, tickView, pos, direction, neighborPos, neighborState, random) .withIfExists(BOTTOM, !neighborState.isOf(this) && !neighborState.isOf(getStem())) .withIfExists(WATERLOGGED, world.isWater(pos)); } @@ -68,7 +77,7 @@ protected FluidState getFluidState(BlockState state) { } @Override - public boolean canFillWithFluid(@Nullable PlayerEntity player, BlockView world, BlockPos pos, BlockState state, Fluid fluid) { + public boolean canFillWithFluid(@Nullable LivingEntity filler, BlockView world, BlockPos pos, BlockState state, Fluid fluid) { return false; } diff --git a/src/main/java/dev/spiritstudios/hollow/block/EchoingPotBlock.java b/src/main/java/dev/spiritstudios/hollow/block/EchoingPotBlock.java index 47a4599..dbadf3d 100644 --- a/src/main/java/dev/spiritstudios/hollow/block/EchoingPotBlock.java +++ b/src/main/java/dev/spiritstudios/hollow/block/EchoingPotBlock.java @@ -2,7 +2,7 @@ import com.mojang.serialization.MapCodec; import dev.spiritstudios.hollow.block.entity.EchoingPotBlockEntity; -import dev.spiritstudios.hollow.registry.HollowBlockEntityTypes; +import dev.spiritstudios.hollow.block.entity.HollowBlockEntityTypes; import net.minecraft.block.*; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntityTicker; @@ -12,8 +12,8 @@ import net.minecraft.item.ItemStack; import net.minecraft.state.StateManager; import net.minecraft.state.property.Properties; +import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; -import net.minecraft.util.ItemActionResult; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; @@ -43,11 +43,6 @@ protected void appendProperties(StateManager.Builder builder) builder.add(Properties.HORIZONTAL_FACING); } - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.ENTITYBLOCK_ANIMATED; - } - @Override public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { return SHAPE; @@ -58,6 +53,11 @@ public BlockState getPlacementState(ItemPlacementContext ctx) { return getDefaultState().with(Properties.HORIZONTAL_FACING, ctx.getHorizontalPlayerFacing().getOpposite()); } + @Override + protected BlockRenderType getRenderType(BlockState state) { + return BlockRenderType.INVISIBLE; + } + @Nullable @Override public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { @@ -65,18 +65,18 @@ public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { } @Override - protected ItemActionResult onUseWithItem(ItemStack stack, BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { - if (world.isClient) return ItemActionResult.SUCCESS; + protected ActionResult onUseWithItem(ItemStack stack, BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + if (world.isClient()) return ActionResult.SUCCESS; EchoingPotBlockEntity blockEntity = (EchoingPotBlockEntity) world.getBlockEntity(pos); Objects.requireNonNull(blockEntity).use(player, hand); - return ItemActionResult.CONSUME; + return ActionResult.CONSUME; } @Nullable @Override public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type) { - return validateTicker(type, HollowBlockEntityTypes.ECHOING_POT_BLOCK_ENTITY, EchoingPotBlockEntity::tick); + return validateTicker(type, HollowBlockEntityTypes.ECHOING_POT, EchoingPotBlockEntity::tick); } @Override diff --git a/src/main/java/dev/spiritstudios/hollow/block/EchoingVaseBlock.java b/src/main/java/dev/spiritstudios/hollow/block/EchoingVaseBlock.java new file mode 100644 index 0000000..a12602e --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/block/EchoingVaseBlock.java @@ -0,0 +1,123 @@ +package dev.spiritstudios.hollow.block; + +import com.mojang.datafixers.util.Function4; +import com.mojang.serialization.MapCodec; +import dev.spiritstudios.hollow.block.entity.EchoingVaseBlockEntity; +import net.minecraft.block.Block; +import net.minecraft.block.BlockEntityProvider; +import net.minecraft.block.BlockRenderType; +import net.minecraft.block.BlockState; +import net.minecraft.block.ShapeContext; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.block.enums.DoubleBlockHalf; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.Properties; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.util.shape.VoxelShapes; +import net.minecraft.world.BlockView; +import net.minecraft.world.World; +import org.jetbrains.annotations.Nullable; + +import java.util.Objects; +import java.util.regex.Pattern; + +public class EchoingVaseBlock extends VerticalDoubleBlock implements BlockEntityProvider { + public static final MapCodec CODEC = createCodec(EchoingVaseBlock::new); + + public EchoingVaseBlock(Settings settings) { + super(settings); + setDefaultState(getDefaultState().with(Properties.HORIZONTAL_FACING, Direction.NORTH)); + } + + public static final VoxelShape LOWER_SHAPE = + Block.createCuboidShape(2, 0, 2, 14, 16, 14); + + public static final VoxelShape UPPER_SHAPE = VoxelShapes.union( + Block.createCuboidShape(2, 0, 2, 14, 4, 14), + Block.createCuboidShape(4, 4, 4, 12, 8, 12) + ); + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return state.get(Properties.DOUBLE_BLOCK_HALF) == DoubleBlockHalf.UPPER ? UPPER_SHAPE : LOWER_SHAPE; + } + + @Nullable + @Override + public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { + return new EchoingVaseBlockEntity(pos, state); + } + + @Override + protected ActionResult onUseWithItem(ItemStack stack, BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + if (world.isClient()) return ActionResult.SUCCESS; + + if (state.get(Properties.DOUBLE_BLOCK_HALF) == DoubleBlockHalf.UPPER) + pos = pos.down(); + + EchoingVaseBlockEntity blockEntity = (EchoingVaseBlockEntity) world.getBlockEntity(pos); + Objects.requireNonNull(blockEntity).use(player, hand); + return ActionResult.CONSUME; + } + + @Override + protected BlockRenderType getRenderType(BlockState state) { + return BlockRenderType.INVISIBLE; + } + + @Override + protected boolean onSyncedBlockEvent(BlockState state, World world, BlockPos pos, int type, int data) { + super.onSyncedBlockEvent(state, world, pos, type, data); + BlockEntity blockEntity = world.getBlockEntity(pos); + return blockEntity != null && blockEntity.onSyncedBlockEvent(type, data); + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + super.appendProperties(builder); + builder.add(Properties.HORIZONTAL_FACING); + } + + @Override + protected MapCodec getCodec() { + return CODEC; + } + + public static class ObaboBlock extends EchoingVaseBlock { + public static final Pattern DIRE_CURSE = Pattern.compile("[oO0](?:[^0-9a-zA-Z]*|\\s)*[bB](?:[^0-9a-zA-Z]*|\\s)*[aA](?:[^0-9a-zA-Z]*|\\s)[bB](?:[^0-9a-zA-Z]*|\\s)*[oO0]"); + public static final MapCodec CODEC = createCodec(ObaboBlock::new); + public static Function4 cb = null; + + public static void invokeCurse(ServerPlayerEntity player) { +// player.damage(player.getDamageSources().create(HollowDamageTypes.DIRE_CURSE), 100); + } + + public ObaboBlock(Settings settings) { + super(settings); + } + + @Override + protected BlockRenderType getRenderType(BlockState state) { + return state.get(Properties.DOUBLE_BLOCK_HALF) == DoubleBlockHalf.UPPER ? BlockRenderType.INVISIBLE : super.getRenderType(state); + } + + @Override + protected MapCodec getCodec() { + return CODEC; + } + + @Override + public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { + if (cb != null) cb.apply(state, world, pos, random); + } + } +} \ No newline at end of file diff --git a/src/main/java/dev/spiritstudios/hollow/block/FireflyJarBlock.java b/src/main/java/dev/spiritstudios/hollow/block/FireflyJarBlock.java index 2914d8d..ce5f682 100644 --- a/src/main/java/dev/spiritstudios/hollow/block/FireflyJarBlock.java +++ b/src/main/java/dev/spiritstudios/hollow/block/FireflyJarBlock.java @@ -20,15 +20,15 @@ public BlockRenderType getRenderType(BlockState state) { @Override public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { - if (random.nextInt(15) == 0) - world.addParticle( - HollowParticleTypes.FIREFLY_JAR, - (pos.getX() + 0.5) + (random.nextDouble() - 0.5) / 5.0F, - (pos.getY() + 0.5) + (2 * random.nextDouble() - 1) / 5.0F, - (pos.getZ() + 0.5) + (random.nextDouble() - 0.5) / 5.0F, - 0, - 0, - 0); + if (random.nextInt(15) == 0) { + world.addParticleClient( + HollowParticleTypes.FIREFLY_JAR, + (pos.getX() + 0.5) + (random.nextDouble() - 0.5) / 5.0F, + (pos.getY() + 0.5) + (2 * random.nextDouble() - 1) / 5.0F, + (pos.getZ() + 0.5) + (random.nextDouble() - 0.5) / 5.0F, + 0, 0, 0 + ); + } } @Override diff --git a/src/main/java/dev/spiritstudios/hollow/block/GiantLilyPadBlock.java b/src/main/java/dev/spiritstudios/hollow/block/GiantLilyPadBlock.java index 399a7f0..08c34b5 100644 --- a/src/main/java/dev/spiritstudios/hollow/block/GiantLilyPadBlock.java +++ b/src/main/java/dev/spiritstudios/hollow/block/GiantLilyPadBlock.java @@ -9,8 +9,8 @@ import net.minecraft.item.ItemPlacementContext; import net.minecraft.item.ItemStack; import net.minecraft.registry.tag.BlockTags; +import net.minecraft.server.world.ServerWorld; import net.minecraft.state.StateManager; -import net.minecraft.state.property.DirectionProperty; import net.minecraft.state.property.EnumProperty; import net.minecraft.util.StringIdentifiable; import net.minecraft.util.math.BlockPos; @@ -28,7 +28,7 @@ public class GiantLilyPadBlock extends LilyPadBlock { protected static final VoxelShape SHAPE = Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 1.5, 16.0); public static final EnumProperty PIECE = EnumProperty.of("piece", Piece.class); - public static final DirectionProperty FACING = HorizontalFacingBlock.FACING; + public static final EnumProperty FACING = HorizontalFacingBlock.FACING; public GiantLilyPadBlock(Settings settings) { super(settings); @@ -59,10 +59,10 @@ public void onPlaced(World world, BlockPos pos, BlockState state, @Nullable Livi world.setBlockState(pos.south().east(), state.with(PIECE, Piece.SOUTH_EAST)); } + @Override - protected void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved) { - super.onStateReplaced(state, world, pos, newState, moved); - if (state.isOf(newState.getBlock())) return; + protected void onStateReplaced(BlockState state, ServerWorld world, BlockPos pos, boolean moved) { + super.onStateReplaced(state, world, pos, moved); for (BlockPos blockPos : getBlocks(pos, state)) { if (blockPos.equals(pos)) continue; @@ -71,7 +71,6 @@ protected void onStateReplaced(BlockState state, World world, BlockPos pos, Bloc } } - public List getBlocks(BlockPos pos, BlockState state) { List blocks = new ArrayList<>(); if (state.getBlock() != this) return blocks; diff --git a/src/main/java/dev/spiritstudios/hollow/block/HollowBlocks.java b/src/main/java/dev/spiritstudios/hollow/block/HollowBlocks.java new file mode 100644 index 0000000..8205930 --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/block/HollowBlocks.java @@ -0,0 +1,350 @@ +package dev.spiritstudios.hollow.block; + +import dev.spiritstudios.hollow.Hollow; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.block.Blocks; +import net.minecraft.block.FlowerBlock; +import net.minecraft.block.FlowerPotBlock; +import net.minecraft.block.LilyPadBlock; +import net.minecraft.block.MapColor; +import net.minecraft.block.Oxidizable; +import net.minecraft.block.PillarBlock; +import net.minecraft.block.enums.NoteBlockInstrument; +import net.minecraft.block.piston.PistonBehavior; +import net.minecraft.entity.effect.StatusEffects; +import net.minecraft.item.BlockItem; +import net.minecraft.item.Item; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.tag.TagKey; +import net.minecraft.sound.BlockSoundGroup; + +import java.util.function.Function; + +@SuppressWarnings("unused") +public final class HollowBlocks { + // region Hollow logs + public static final Block OAK_HOLLOW_LOG = registerHollowLog("oak_hollow_log", Blocks.OAK_LOG); + + public static final Block STRIPPED_OAK_HOLLOW_LOG = registerStrippedHollowLog("stripped_oak_hollow_log", Blocks.STRIPPED_OAK_LOG); + + public static final Block SPRUCE_HOLLOW_LOG = registerHollowLog("spruce_hollow_log", Blocks.SPRUCE_LOG); + public static final Block STRIPPED_SPRUCE_HOLLOW_LOG = registerStrippedHollowLog("stripped_spruce_hollow_log", Blocks.STRIPPED_SPRUCE_LOG); + + public static final Block BIRCH_HOLLOW_LOG = registerHollowLog("birch_hollow_log", Blocks.BIRCH_LOG); + public static final Block STRIPPED_BIRCH_HOLLOW_LOG = registerStrippedHollowLog("stripped_birch_hollow_log", Blocks.STRIPPED_BIRCH_LOG); + + public static final Block JUNGLE_HOLLOW_LOG = registerHollowLog("jungle_hollow_log", Blocks.JUNGLE_LOG); + public static final Block STRIPPED_JUNGLE_HOLLOW_LOG = registerStrippedHollowLog("stripped_jungle_hollow_log", Blocks.STRIPPED_JUNGLE_LOG); + + public static final Block ACACIA_HOLLOW_LOG = registerHollowLog("acacia_hollow_log", Blocks.ACACIA_LOG); + public static final Block STRIPPED_ACACIA_HOLLOW_LOG = registerStrippedHollowLog("stripped_acacia_hollow_log", Blocks.STRIPPED_ACACIA_LOG); + + public static final Block DARK_OAK_HOLLOW_LOG = registerHollowLog("dark_oak_hollow_log", Blocks.DARK_OAK_LOG); + public static final Block STRIPPED_DARK_OAK_HOLLOW_LOG = registerStrippedHollowLog("stripped_dark_oak_hollow_log", Blocks.STRIPPED_DARK_OAK_LOG); + + public static final Block CRIMSON_HOLLOW_STEM = registerHollowLog("crimson_hollow_stem", Blocks.CRIMSON_STEM); + public static final Block STRIPPED_CRIMSON_HOLLOW_STEM = registerStrippedHollowLog("stripped_crimson_hollow_stem", Blocks.STRIPPED_CRIMSON_STEM); + + public static final Block WARPED_HOLLOW_STEM = registerHollowLog("warped_hollow_stem", Blocks.WARPED_STEM); + public static final Block STRIPPED_WARPED_HOLLOW_STEM = registerStrippedHollowLog("stripped_warped_hollow_stem", Blocks.STRIPPED_WARPED_STEM); + + public static final Block MANGROVE_HOLLOW_LOG = registerHollowLog("mangrove_hollow_log", Blocks.MANGROVE_LOG); + public static final Block STRIPPED_MANGROVE_HOLLOW_LOG = registerStrippedHollowLog("stripped_mangrove_hollow_log", Blocks.STRIPPED_MANGROVE_LOG); + + public static final Block CHERRY_HOLLOW_LOG = registerHollowLog("cherry_hollow_log", Blocks.CHERRY_LOG); + public static final Block STRIPPED_CHERRY_HOLLOW_LOG = registerStrippedHollowLog("stripped_cherry_hollow_log", Blocks.STRIPPED_CHERRY_LOG); + + public static final Block PALE_OAK_HOLLOW_LOG = registerHollowLog("pale_oak_hollow_log", Blocks.PALE_OAK_LOG); + public static final Block STRIPPED_PALE_OAK_HOLLOW_LOG = registerStrippedHollowLog("stripped_pale_oak_hollow_log", Blocks.STRIPPED_PALE_OAK_LOG); + // endregion + + public static final Block ECHOING_POT = register( + "echoing_pot", + EchoingPotBlock::new, + AbstractBlock.Settings.create() + .mapColor(MapColor.DEEPSLATE_GRAY) + .strength(3.0F, 6.0F) + .sounds(BlockSoundGroup.DECORATED_POT) + .pistonBehavior(PistonBehavior.DESTROY) + .nonOpaque() + ); + + public static final Block ECHOING_VASE = register( + "echoing_vase", + EchoingVaseBlock::new, + AbstractBlock.Settings.create() + .mapColor(MapColor.DEEPSLATE_GRAY) + .strength(3.0F, 6.0F) + .sounds(BlockSoundGroup.DECORATED_POT) + .pistonBehavior(PistonBehavior.DESTROY) + .nonOpaque() + ); + + public static final Block OBABO = register( + "obabo", + EchoingVaseBlock.ObaboBlock::new, + AbstractBlock.Settings.create() + .mapColor(MapColor.DEEPSLATE_GRAY) + .strength(3.0F, 6.0F) + .sounds(BlockSoundGroup.DECORATED_POT) + .pistonBehavior(PistonBehavior.DESTROY) + .nonOpaque() + ); + + public static final Block SCREAMING_VASE = register( + "screaming_vase", + ScreamingVaseBlock::new, + AbstractBlock.Settings.create() + .mapColor(MapColor.DEEPSLATE_GRAY) + .strength(3.0F, 6.0F) + .sounds(BlockSoundGroup.DECORATED_POT) + .pistonBehavior(PistonBehavior.DESTROY) + .nonOpaque() + ); + + public static final Block PAEONIA = register( + "paeonia", + settings -> new FlowerBlock( + StatusEffects.GLOWING, + 5, + settings + ), + AbstractBlock.Settings.copy(Blocks.ALLIUM) + ); + + public static final Block ROOTED_ORCHID = register( + "rooted_orchid", + settings -> new FlowerBlock( + StatusEffects.SATURATION, + 0.35F, + settings + ), + AbstractBlock.Settings.copy(Blocks.BLUE_ORCHID) + ); + + public static final Block CAMPION = register( + "campion", + CampionBlock::new, + AbstractBlock.Settings.copy(Blocks.PEONY) + ); + + public static final Block TWIG = register( + "twig", + TwigBlock::new, + AbstractBlock.Settings.create() + .mapColor(MapColor.OAK_TAN) + .noCollision() + .breakInstantly() + .sounds(BlockSoundGroup.GRASS) + .burnable() + .nonOpaque() + .pistonBehavior(PistonBehavior.DESTROY) + ); + + public static final Block CATTAIL_STEM = register( + "cattail_stem", + CattailStemBlock::new, + AbstractBlock.Settings.create() + .mapColor(MapColor.WATER_BLUE) + .replaceable() + .noCollision() + .breakInstantly() + .sounds(BlockSoundGroup.WET_GRASS) + .offset(AbstractBlock.OffsetType.XZ) + .pistonBehavior(PistonBehavior.DESTROY), + false + ); + + public static final CattailBlock CATTAIL = register( + "cattail", + CattailBlock::new, + AbstractBlock.Settings.copy(CATTAIL_STEM) + ); + + public static final Block LOTUS_LILYPAD = register( + "lotus_lilypad", + LilyPadBlock::new, + AbstractBlock.Settings.copy(Blocks.LILY_PAD), + false + ); + + public static final Block GIANT_LILYPAD = register( + "giant_lilypad", + GiantLilyPadBlock::new, + AbstractBlock.Settings.copy(Blocks.LILY_PAD), + false + ); + + public static final Block POLYPORE = register( + "polypore", + PolyporeBlock::new, + AbstractBlock.Settings.create() + .mapColor(MapColor.OAK_TAN) + .noCollision() + .breakInstantly() + .sounds(BlockSoundGroup.GRASS) + .pistonBehavior(PistonBehavior.DESTROY) + .solidBlock(Blocks::never) + ); + + public static final Block SCULK_JAW = register( + "sculk_jaw", + SculkJawBlock::new, + AbstractBlock.Settings.copy(Blocks.SCULK) + .velocityMultiplier(0.25F) + .jumpVelocityMultiplier(0.0F) + .strength(3.0F, 3.0F) + .luminance(state -> state.get(SculkJawBlock.ACTIVE) ? 6 : 0) + ); + + public static final Block JAR = register( + "jar", + JarBlock::new, + AbstractBlock.Settings.create() + .mapColor(MapColor.OAK_TAN) + .strength(0.2F) + .sounds(BlockSoundGroup.GLASS) + .nonOpaque() + .pistonBehavior(PistonBehavior.DESTROY) + ); + + public static final Block FIREFLY_JAR = register( + "firefly_jar", + FireflyJarBlock::new, + AbstractBlock.Settings.copy(JAR).luminance(state -> 15) + ); + + public static final Block STONE_CHEST = register( + "stone_chest", + StoneChestBlock::new, + AbstractBlock.Settings.create() + .mapColor(MapColor.DEEPSLATE_GRAY) + .requiresTool() + .instrument(NoteBlockInstrument.BASEDRUM) + .strength(6.0F, 6.0F) + .sounds(BlockSoundGroup.DEEPSLATE) + ); + + public static final Block STONE_CHEST_LID = register( + "stone_chest_lid", + StoneChestLidBlock::new, + AbstractBlock.Settings.copy(STONE_CHEST).strength(3.0F, 6.0F) + ); + + // region Copper Pillar + public static final Block COPPER_PILLAR = register( + "copper_pillar", + settings -> new OxidizablePillarBlock(Oxidizable.OxidationLevel.UNAFFECTED, settings), + AbstractBlock.Settings.create() + .mapColor(MapColor.ORANGE) + .requiresTool() + .strength(3.0F, 6.0F) + .luminance(state -> 15) + .sounds(BlockSoundGroup.COPPER) + ); + + public static final Block EXPOSED_COPPER_PILLAR = register( + "exposed_copper_pillar", + settings -> new OxidizablePillarBlock(Oxidizable.OxidationLevel.EXPOSED, settings), + AbstractBlock.Settings.copy(COPPER_PILLAR).mapColor(MapColor.TERRACOTTA_LIGHT_GRAY) + ); + + public static final Block WEATHERED_COPPER_PILLAR = register( + "weathered_copper_pillar", + settings -> new OxidizablePillarBlock(Oxidizable.OxidationLevel.WEATHERED, settings), + AbstractBlock.Settings.copy(COPPER_PILLAR).mapColor(MapColor.DARK_AQUA) + ); + + public static final Block OXIDIZED_COPPER_PILLAR = register( + "oxidized_copper_pillar", + settings -> new OxidizablePillarBlock(Oxidizable.OxidationLevel.OXIDIZED, settings), + AbstractBlock.Settings.copy(COPPER_PILLAR).mapColor(MapColor.TEAL) + ); + + public static final Block WAXED_COPPER_PILLAR = register( + "waxed_copper_pillar", + PillarBlock::new, + AbstractBlock.Settings.copy(COPPER_PILLAR) + ); + public static final Block WAXED_EXPOSED_COPPER_PILLAR = register( + "waxed_exposed_copper_pillar", + PillarBlock::new, + AbstractBlock.Settings.copy(EXPOSED_COPPER_PILLAR) + ); + public static final Block WAXED_WEATHERED_COPPER_PILLAR = register( + "waxed_weathered_copper_pillar", + PillarBlock::new, + AbstractBlock.Settings.copy(WEATHERED_COPPER_PILLAR) + ); + + public static final Block WAXED_OXIDIZED_COPPER_PILLAR = register( + "waxed_oxidized_copper_pillar", + PillarBlock::new, + AbstractBlock.Settings.copy(OXIDIZED_COPPER_PILLAR) + ); + // endregion + + public static final Block POTTED_PAEONIA = register( + "potted_paeonia", + settings -> new FlowerPotBlock(PAEONIA, settings), + Blocks.createFlowerPotSettings(), + false + ); + + public static final Block POTTED_ROOTED_ORCHID = register( + "potted_rooted_orchid", + settings -> new FlowerPotBlock(ROOTED_ORCHID, settings), + Blocks.createFlowerPotSettings(), + false + ); + + public static final class Tags { + public static final TagKey HOLLOW_LOGS = TagKey.of(RegistryKeys.BLOCK, Hollow.id("hollow_logs")); + + public static final TagKey POLYPORE_PLACEABLE_ON = TagKey.of(RegistryKeys.BLOCK, Hollow.id("polypore_placeable_on")); + } + + public static T register(RegistryKey key, Function factory, AbstractBlock.Settings settings, boolean item) { + T block = factory.apply(settings.registryKey(key)); + if (item) { + RegistryKey itemKey = RegistryKey.of(RegistryKeys.ITEM, key.getValue()); + BlockItem blockItem = new BlockItem(block, new Item.Settings().registryKey(itemKey).useBlockPrefixedTranslationKey()); + Registry.register( + Registries.ITEM, + itemKey, + blockItem + ); + blockItem.appendBlocks(Item.BLOCK_ITEMS, blockItem); + } + + return Registry.register(Registries.BLOCK, key, block); + } + + private static T register(String id, Function factory, AbstractBlock.Settings settings) { + return register(keyOf(id), factory, settings, true); + } + + private static T register(String id, Function factory, AbstractBlock.Settings settings, boolean item) { + return register(keyOf(id), factory, settings, item); + } + + private static Block registerHollowLog(String id, Block base) { + return register(keyOf(id), HollowLogBlock.of(base), AbstractBlock.Settings.copy(base), true); + } + + private static Block registerStrippedHollowLog(String id, Block base) { + return register(keyOf(id), HollowLogBlock.ofStripped(base), AbstractBlock.Settings.copy(base), true); + } + + private static RegistryKey keyOf(String id) { + return RegistryKey.of(RegistryKeys.BLOCK, Hollow.id(id)); + } + + public static void init() { + // NO-OP + } +} diff --git a/src/main/java/dev/spiritstudios/hollow/block/HollowLogBlock.java b/src/main/java/dev/spiritstudios/hollow/block/HollowLogBlock.java index 4259a01..35f9614 100644 --- a/src/main/java/dev/spiritstudios/hollow/block/HollowLogBlock.java +++ b/src/main/java/dev/spiritstudios/hollow/block/HollowLogBlock.java @@ -1,20 +1,32 @@ package dev.spiritstudios.hollow.block; import dev.spiritstudios.hollow.data.LogTypeData; -import net.minecraft.block.*; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.PillarBlock; +import net.minecraft.block.ShapeContext; +import net.minecraft.block.Waterloggable; import net.minecraft.fluid.FluidState; import net.minecraft.fluid.Fluids; import net.minecraft.item.ItemPlacementContext; import net.minecraft.registry.Registries; import net.minecraft.state.StateManager; import net.minecraft.state.property.BooleanProperty; +import net.minecraft.state.property.EnumProperty; import net.minecraft.state.property.Properties; +import net.minecraft.util.StringIdentifiable; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; -import net.minecraft.world.WorldAccess; +import net.minecraft.world.WorldView; +import net.minecraft.world.tick.ScheduledTickView; + +import java.util.function.Function; public class HollowLogBlock extends PillarBlock implements Waterloggable { public static final VoxelShape SHAPE_X = VoxelShapes.union( @@ -39,7 +51,7 @@ public class HollowLogBlock extends PillarBlock implements Waterloggable { ); public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; - public static final BooleanProperty MOSSY = BooleanProperty.of("mossy"); + public static final EnumProperty LAYER = EnumProperty.of("layer", Layer.class); public final LogTypeData typeData; @@ -49,26 +61,26 @@ public HollowLogBlock(Settings settings, LogTypeData typeData) { setDefaultState(getDefaultState() .with(AXIS, Direction.Axis.Y) .with(WATERLOGGED, false) - .with(MOSSY, false)); + .with(LAYER, Layer.NONE)); } - public static HollowLogBlock of(Block block) { - return new HollowLogBlock( - AbstractBlock.Settings.copy(block), + public static Function of(Block block) { + return settings -> new HollowLogBlock( + settings, LogTypeData.byId(Registries.BLOCK.getId(block)) ); } - public static HollowLogBlock ofStripped(Block block) { - return new HollowLogBlock( - AbstractBlock.Settings.copy(block), + public static Function ofStripped(Block block) { + return settings -> new HollowLogBlock( + settings, LogTypeData.byIdStripped(Registries.BLOCK.getId(block)) ); } @Override protected void appendProperties(StateManager.Builder builder) { - builder.add(Properties.AXIS, WATERLOGGED, MOSSY); + builder.add(Properties.AXIS, WATERLOGGED, LAYER); } @Override @@ -77,17 +89,17 @@ public boolean hasSidedTransparency(BlockState state) { } @Override - public boolean isTransparent(BlockState state, BlockView world, BlockPos pos) { + protected boolean isTransparent(BlockState state) { return !state.get(WATERLOGGED) && state.get(AXIS) == Direction.Axis.Y; } @Override public BlockState getPlacementState(ItemPlacementContext ctx) { - Block above = ctx.getWorld().getBlockState(ctx.getBlockPos().up()).getBlock(); + BlockState above = ctx.getWorld().getBlockState(ctx.getBlockPos().up()); return this.getDefaultState() .with(Properties.AXIS, ctx.getSide().getAxis()) .with(WATERLOGGED, ctx.getWorld().getFluidState(ctx.getBlockPos()).isOf(Fluids.WATER)) - .with(MOSSY, (above == Blocks.MOSS_CARPET) || (above == Blocks.MOSS_BLOCK)); + .with(LAYER, Layer.get(above)); } @Override @@ -96,16 +108,13 @@ public FluidState getFluidState(BlockState state) { } @Override - public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { + protected BlockState getStateForNeighborUpdate(BlockState state, WorldView world, ScheduledTickView tickView, BlockPos pos, Direction direction, BlockPos neighborPos, BlockState neighborState, Random random) { if (state.get(WATERLOGGED)) - world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); + tickView.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); - if (direction == Direction.UP) { - Block above = neighborState.getBlock(); - return state.with(MOSSY, (above == Blocks.MOSS_CARPET) || (above == Blocks.MOSS_BLOCK)); - } + if (direction == Direction.UP) return state.with(LAYER, Layer.get(neighborState)); - return super.getStateForNeighborUpdate(state, direction, neighborState, world, pos, neighborPos); + return super.getStateForNeighborUpdate(state, world, tickView, pos, direction, neighborPos, neighborState, random); } @Override @@ -116,4 +125,35 @@ public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos po default -> SHAPE_Z; }; } + + public enum Layer implements StringIdentifiable { + NONE("none"), + MOSS("moss"), + PALE_MOSS("pale_moss"), + SNOW("snow"); + + private final String name; + + Layer(String name) { + this.name = name; + } + + public static Layer get(BlockState aboveState) { + if (aboveState.isOf(Blocks.MOSS_BLOCK) || aboveState.isOf(Blocks.MOSS_CARPET)) + return MOSS; + + if (aboveState.isOf(Blocks.PALE_MOSS_BLOCK) || aboveState.isOf(Blocks.PALE_MOSS_CARPET)) + return PALE_MOSS; + + if (aboveState.isOf(Blocks.SNOW_BLOCK) || aboveState.isOf(Blocks.SNOW)) + return SNOW; + + return NONE; + } + + @Override + public String asString() { + return name; + } + } } diff --git a/src/main/java/dev/spiritstudios/hollow/block/JarBlock.java b/src/main/java/dev/spiritstudios/hollow/block/JarBlock.java index 896323c..fcc9e7e 100644 --- a/src/main/java/dev/spiritstudios/hollow/block/JarBlock.java +++ b/src/main/java/dev/spiritstudios/hollow/block/JarBlock.java @@ -6,8 +6,9 @@ import net.minecraft.block.entity.BlockEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; -import net.minecraft.util.ItemActionResult; import net.minecraft.util.ItemScatterer; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; @@ -51,22 +52,20 @@ public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos po @Override - protected ItemActionResult onUseWithItem(ItemStack stack, BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { - if (world.isClient) return ItemActionResult.SUCCESS; + protected ActionResult onUseWithItem(ItemStack stack, BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + if (world.isClient) return ActionResult.SUCCESS; BlockEntity blockEntity = world.getBlockEntity(pos); if (blockEntity instanceof JarBlockEntity jarBlockEntity) jarBlockEntity.use(world, pos, player, hand); - return ItemActionResult.CONSUME; + return ActionResult.CONSUME; } @Override - public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved) { - if (state.getBlock() == newState.getBlock()) return; - + public void onStateReplaced(BlockState state, ServerWorld world, BlockPos pos, boolean moved) { BlockEntity blockEntity = world.getBlockEntity(pos); if (blockEntity instanceof JarBlockEntity jarBlockEntity) ItemScatterer.spawn(world, pos, jarBlockEntity); - super.onStateReplaced(state, world, pos, newState, moved); + super.onStateReplaced(state, world, pos, moved); } @Override diff --git a/src/main/java/dev/spiritstudios/hollow/block/PolyporeBlock.java b/src/main/java/dev/spiritstudios/hollow/block/PolyporeBlock.java index 6e85587..54256ef 100644 --- a/src/main/java/dev/spiritstudios/hollow/block/PolyporeBlock.java +++ b/src/main/java/dev/spiritstudios/hollow/block/PolyporeBlock.java @@ -1,12 +1,13 @@ package dev.spiritstudios.hollow.block; import com.mojang.serialization.MapCodec; -import dev.spiritstudios.hollow.registry.HollowBlocks; -import dev.spiritstudios.specter.api.core.math.VoxelShapeHelper; -import net.minecraft.block.*; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Fertilizable; +import net.minecraft.block.PlantBlock; +import net.minecraft.block.ShapeContext; import net.minecraft.item.ItemPlacementContext; import net.minecraft.item.ItemStack; -import net.minecraft.registry.tag.BlockTags; import net.minecraft.server.world.ServerWorld; import net.minecraft.state.StateManager; import net.minecraft.state.property.IntProperty; @@ -15,18 +16,17 @@ import net.minecraft.util.math.Direction; import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; +import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; import net.minecraft.world.World; import net.minecraft.world.WorldView; +import java.util.Map; + public class PolyporeBlock extends PlantBlock implements Fertilizable { public static final IntProperty POLYPORE_AMOUNT = IntProperty.of("amount", 1, 3); - public static final VoxelShape SHAPE_NORTH = Block.createCuboidShape(1, 1, 8, 15, 15, 16); - public static final VoxelShape SHAPE_SOUTH = VoxelShapeHelper.rotateHorizontal(Direction.SOUTH, Direction.NORTH, SHAPE_NORTH); - public static final VoxelShape SHAPE_EAST = VoxelShapeHelper.rotateHorizontal(Direction.EAST, Direction.NORTH, SHAPE_NORTH); - public static final VoxelShape SHAPE_WEST = VoxelShapeHelper.rotateHorizontal(Direction.WEST, Direction.NORTH, SHAPE_NORTH); - + public static final Map SHAPES_BY_DIRECTION = VoxelShapes.createHorizontalFacingShapeMap(createCuboidShape(1, 1, 8, 15, 15, 16)); public static final MapCodec CODEC = createCodec(PolyporeBlock::new); public PolyporeBlock(Settings settings) { @@ -63,7 +63,7 @@ public BlockState getPlacementState(ItemPlacementContext ctx) { } @Override - public boolean isTransparent(BlockState state, BlockView world, BlockPos pos) { + protected boolean isTransparent(BlockState state) { return true; } @@ -86,13 +86,7 @@ public void grow(ServerWorld world, Random random, BlockPos pos, BlockState stat @Override public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { - return switch (state.get(Properties.HORIZONTAL_FACING)) { - case NORTH -> SHAPE_NORTH; - case EAST -> SHAPE_EAST; - case SOUTH -> SHAPE_SOUTH; - case WEST -> SHAPE_WEST; - default -> super.getOutlineShape(state, world, pos, context); - }; + return SHAPES_BY_DIRECTION.get(state.get(Properties.HORIZONTAL_FACING)); } @Override diff --git a/src/main/java/dev/spiritstudios/hollow/block/ScreamingVaseBlock.java b/src/main/java/dev/spiritstudios/hollow/block/ScreamingVaseBlock.java new file mode 100644 index 0000000..2039fd1 --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/block/ScreamingVaseBlock.java @@ -0,0 +1,228 @@ +package dev.spiritstudios.hollow.block; + +import com.mojang.serialization.MapCodec; +import dev.spiritstudios.hollow.Hollow; +import dev.spiritstudios.hollow.block.entity.EchoingVaseBlockEntity; +import dev.spiritstudios.hollow.block.entity.HollowBlockEntityTypes; +import dev.spiritstudios.hollow.registry.HollowParticleTypes; +import net.minecraft.block.Block; +import net.minecraft.block.BlockRenderType; +import net.minecraft.block.BlockState; +import net.minecraft.block.BlockWithEntity; +import net.minecraft.block.Blocks; +import net.minecraft.block.ShapeContext; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.block.entity.BlockEntityTicker; +import net.minecraft.block.entity.BlockEntityType; +import net.minecraft.block.enums.DoubleBlockHalf; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityCollisionHandler; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.fluid.Fluids; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.item.ItemStack; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvents; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.EnumProperty; +import net.minecraft.state.property.Properties; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.DirectionTransformation; +import net.minecraft.util.math.random.Random; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.util.shape.VoxelShapes; +import net.minecraft.world.BlockView; +import net.minecraft.world.World; +import net.minecraft.world.WorldEvents; +import net.minecraft.world.WorldView; +import net.minecraft.world.event.GameEvent; +import net.minecraft.world.tick.ScheduledTickView; +import org.jetbrains.annotations.Nullable; + +import java.util.Objects; + +public class ScreamingVaseBlock extends BlockWithEntity { + public static final MapCodec CODEC = createCodec(ScreamingVaseBlock::new); + + public static final EnumProperty FACING = Properties.FACING; + public static final EnumProperty HALF = Properties.DOUBLE_BLOCK_HALF; + + public ScreamingVaseBlock(Settings settings) { + super(settings); + setDefaultState(getDefaultState() + .with(FACING, Direction.NORTH) + .with(HALF, DoubleBlockHalf.LOWER)); + } + + public static final VoxelShape LOWER_SHAPE = + Block.createCuboidShape(2, 0, 2, 14, 16, 14); + + public static final VoxelShape UPPER_SHAPE_NS = VoxelShapes.union( + Block.createCuboidShape(2, 0, 2, 14, 13, 14), + Block.createCuboidShape(5, 13, 5, 11, 16, 11), + Block.createCuboidShape(0, 7, 7, 16, 10, 9) + ); + + public static final VoxelShape UPPER_SHAPE_EW = VoxelShapes.transform(UPPER_SHAPE_NS, DirectionTransformation.ROT_90_Y_POS); + + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return state.get(HALF) == DoubleBlockHalf.UPPER ? + state.get(FACING).getAxis() == Direction.Axis.X ? UPPER_SHAPE_EW : UPPER_SHAPE_NS : + LOWER_SHAPE; + } + + @Override + protected void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity, EntityCollisionHandler handler) { + EchoingVaseBlockEntity blockEntity = (EchoingVaseBlockEntity) world.getBlockEntity(pos); + if (blockEntity == null) { + Hollow.LOGGER.error("Failed to find BE at {}", state); + return; + } + Objects.requireNonNull(blockEntity).onEntityCollision(state, world, pos, entity); + } + + @Nullable + @Override + public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { + return new EchoingVaseBlockEntity(pos, state); + } + + @Override + protected ActionResult onUseWithItem(ItemStack stack, BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + if (world.isClient()) return ActionResult.SUCCESS; + + if (state.get(HALF) == DoubleBlockHalf.UPPER) + pos = pos.down(); + + EchoingVaseBlockEntity blockEntity = (EchoingVaseBlockEntity) world.getBlockEntity(pos); + Objects.requireNonNull(blockEntity).use(player, hand); + return ActionResult.CONSUME; + } + + @Override + protected boolean onSyncedBlockEvent(BlockState state, World world, BlockPos pos, int type, int data) { + super.onSyncedBlockEvent(state, world, pos, type, data); + BlockEntity blockEntity = world.getBlockEntity(pos); + return blockEntity != null && blockEntity.onSyncedBlockEvent(type, data); + } + + @Override + public @Nullable BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type) { + return validateTicker(type, HollowBlockEntityTypes.ECHOING_VASE, EchoingVaseBlockEntity::tick); + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + super.appendProperties(builder); + + builder.add(FACING); + builder.add(HALF); + } + + + @Override + public BlockState getPlacementState(ItemPlacementContext ctx) { + BlockPos pos = ctx.getBlockPos(); + World world = ctx.getWorld(); + + return pos.getY() < world.getTopYInclusive() - 1 && world.getBlockState(pos.up()).canReplace(ctx) ? + getDefaultState() + .with(FACING, ctx.getHorizontalPlayerFacing().getOpposite()) : null; + } + + @Override + public void onPlaced(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack itemStack) { + world.setBlockState(pos.up(), state.with(HALF, DoubleBlockHalf.UPPER), Block.NOTIFY_ALL); + } + + @Override + protected boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) { + if (state.get(HALF) == DoubleBlockHalf.UPPER) { + BlockState lower = world.getBlockState(pos.down()); + return lower.isOf(this) && lower.get(HALF) == DoubleBlockHalf.LOWER; + } + + return super.canPlaceAt(state, world, pos); + } + + @Override + public BlockState onBreak(World world, BlockPos pos, BlockState state, PlayerEntity player) { + if (world.isClient()) return super.onBreak(world, pos, state, player); + + if (state.get(HALF) == DoubleBlockHalf.LOWER) + onBreakLower(world, pos, state, player); + else + onBreakLower(world, pos.down(), world.getBlockState(pos.down()), player); + + if (player.isCreative()) onBreakInCreative(world, pos, state, player); + else dropStacks(state, world, pos, null, player, player.getMainHandStack()); + + return super.onBreak(world, pos, state, player); + } + + public static void onBreakLower(World world, BlockPos pos, BlockState state, @Nullable Entity causer) { + if (world.isClient()) return; + + ((ServerWorld) world).spawnParticles( + HollowParticleTypes.SCREAM, + pos.getX(), pos.getY(), pos.getZ(), + 1, 0, 0, 0, 0 + ); + + world.playSound(null, pos, SoundEvents.BLOCK_SCULK_SHRIEKER_SHRIEK, SoundCategory.BLOCKS); + world.emitGameEvent(GameEvent.SCULK_SENSOR_TENDRILS_CLICKING, pos, GameEvent.Emitter.of(causer)); + } + + @Override + public void afterBreak(World world, PlayerEntity player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool) { + super.afterBreak(world, player, pos, Blocks.AIR.getDefaultState(), blockEntity, tool); + } + + @Override + protected BlockState getStateForNeighborUpdate(BlockState state, WorldView world, ScheduledTickView tickView, BlockPos pos, Direction direction, BlockPos neighborPos, BlockState neighborState, Random random) { + DoubleBlockHalf half = state.get(HALF); + + if (direction.getAxis() != Direction.Axis.Y || half == DoubleBlockHalf.LOWER != (direction == Direction.UP)) { + return half == DoubleBlockHalf.LOWER && direction == Direction.DOWN && !state.canPlaceAt(world, pos) + ? Blocks.AIR.getDefaultState() + : super.getStateForNeighborUpdate(state, world, tickView, pos, direction, neighborPos, neighborState, random); + } + + return neighborState.isOf(this) && neighborState.get(HALF) != half + ? neighborState.with(HALF, half) + : Blocks.AIR.getDefaultState(); + } + + protected static void onBreakInCreative(World world, BlockPos pos, BlockState state, PlayerEntity player) { + DoubleBlockHalf half = state.get(HALF); + if (half == DoubleBlockHalf.LOWER) return; + + BlockPos lowerPos = pos.offset(state.get(FACING).rotateYClockwise()); + BlockState lower = world.getBlockState(lowerPos); + + if (!lower.isOf(state.getBlock()) || lower.get(HALF) != DoubleBlockHalf.LOWER) + return; + + BlockState lowerFluid = lower.getFluidState().isOf(Fluids.WATER) ? Blocks.WATER.getDefaultState() : Blocks.AIR.getDefaultState(); + world.setBlockState(lowerPos, lowerFluid, Block.NOTIFY_ALL | Block.SKIP_DROPS); + world.syncWorldEvent(player, WorldEvents.BLOCK_BROKEN, lowerPos, Block.getRawIdFromState(lower)); + } + + @Override + protected MapCodec getCodec() { + return CODEC; + } + + @Override + protected BlockRenderType getRenderType(BlockState state) { + return BlockRenderType.INVISIBLE; + } +} \ No newline at end of file diff --git a/src/main/java/dev/spiritstudios/hollow/block/SculkJawBlock.java b/src/main/java/dev/spiritstudios/hollow/block/SculkJawBlock.java index 0665f79..d745933 100644 --- a/src/main/java/dev/spiritstudios/hollow/block/SculkJawBlock.java +++ b/src/main/java/dev/spiritstudios/hollow/block/SculkJawBlock.java @@ -1,8 +1,8 @@ package dev.spiritstudios.hollow.block; -import dev.spiritstudios.hollow.registry.HollowDamageTypes; -import dev.spiritstudios.hollow.registry.HollowEntityTypes; -import dev.spiritstudios.hollow.registry.HollowSoundEvents; +import dev.spiritstudios.hollow.entity.HollowDamageTypes; +import dev.spiritstudios.hollow.entity.HollowEntityTypes; +import dev.spiritstudios.hollow.sound.HollowSoundEvents; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.SculkBlock; @@ -38,17 +38,17 @@ public void onSteppedOn(World world, BlockPos pos, BlockState state, Entity enti } if (!world.getBlockState(pos).get(ACTIVE)) - world.playSound(null, pos.up(), HollowSoundEvents.SCULK_JAW_BITE, SoundCategory.BLOCKS, 1F, 0.6F); + world.playSound(null, pos.up(), HollowSoundEvents.BLOCK_SCULK_JAW_BITE, SoundCategory.BLOCKS, 1F, 0.6F); world.setBlockState(pos, state.with(ACTIVE, true)); - if (world.isClient) { + if (world.isClient()) { Random random = world.getRandom(); for (int i = 0; i < 2; ++i) { float x = 2.0F * random.nextFloat() - 1.0F; float y = 2.0F * random.nextFloat() - 1.0F; float z = 2.0F * random.nextFloat() - 1.0F; - world.addParticle( + world.addParticleClient( ParticleTypes.SCULK_SOUL, (double) pos.getX() + 0.5 + (x * 0.45), (double) pos.getY() + 1, @@ -62,7 +62,7 @@ public void onSteppedOn(World world, BlockPos pos, BlockState state, Entity enti return; } - entity.damage(world.getDamageSources().create(HollowDamageTypes.SCULK_JAW), 1F); + entity.damage((ServerWorld) world, world.getDamageSources().create(HollowDamageTypes.SCULK_JAW), 1F); if (world.getTime() % 5 == 0) { world.playSound( diff --git a/src/main/java/dev/spiritstudios/hollow/block/StoneChestBlock.java b/src/main/java/dev/spiritstudios/hollow/block/StoneChestBlock.java index ff89991..f2374c4 100644 --- a/src/main/java/dev/spiritstudios/hollow/block/StoneChestBlock.java +++ b/src/main/java/dev/spiritstudios/hollow/block/StoneChestBlock.java @@ -2,8 +2,13 @@ import com.mojang.serialization.MapCodec; import dev.spiritstudios.hollow.block.entity.StoneChestBlockEntity; -import dev.spiritstudios.specter.api.core.math.VoxelShapeHelper; -import net.minecraft.block.*; +import net.minecraft.block.Block; +import net.minecraft.block.BlockRenderType; +import net.minecraft.block.BlockState; +import net.minecraft.block.BlockWithEntity; +import net.minecraft.block.HorizontalFacingBlock; +import net.minecraft.block.ShapeContext; +import net.minecraft.block.Waterloggable; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.enums.ChestType; import net.minecraft.entity.player.PlayerEntity; @@ -11,26 +16,33 @@ import net.minecraft.fluid.Fluids; import net.minecraft.item.ItemPlacementContext; import net.minecraft.item.ItemStack; +import net.minecraft.server.world.ServerWorld; import net.minecraft.state.StateManager; import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.DirectionProperty; import net.minecraft.state.property.EnumProperty; import net.minecraft.state.property.Properties; -import net.minecraft.util.*; +import net.minecraft.util.ActionResult; +import net.minecraft.util.BlockMirror; +import net.minecraft.util.BlockRotation; +import net.minecraft.util.Hand; +import net.minecraft.util.ItemScatterer; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; import net.minecraft.world.World; -import net.minecraft.world.WorldAccess; +import net.minecraft.world.WorldView; +import net.minecraft.world.tick.ScheduledTickView; import org.jetbrains.annotations.Nullable; +import java.util.Map; import java.util.Objects; public class StoneChestBlock extends BlockWithEntity implements Waterloggable { - public static final DirectionProperty FACING = HorizontalFacingBlock.FACING; + public static final EnumProperty FACING = HorizontalFacingBlock.FACING; public static final EnumProperty CHEST_TYPE = Properties.CHEST_TYPE; public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; @@ -41,21 +53,15 @@ public class StoneChestBlock extends BlockWithEntity implements Waterloggable { createCuboidShape(0, 0, 0, 16, 1, 16) ); - public static final VoxelShape SHAPE_LEFT_NORTH = VoxelShapes.union( + private static final Map DOUBLE_LEFT_SHAPES_BY_DIRECTION = VoxelShapes.createHorizontalFacingShapeMap(VoxelShapes.union( createCuboidShape(1, 1, 1, 16, 16, 15), createCuboidShape(0, 0, 0, 16, 1, 16) - ); - public static final VoxelShape SHAPE_LEFT_EAST = VoxelShapeHelper.rotateHorizontal(Direction.EAST, Direction.NORTH, SHAPE_LEFT_NORTH); - public static final VoxelShape SHAPE_LEFT_SOUTH = VoxelShapeHelper.rotateHorizontal(Direction.SOUTH, Direction.NORTH, SHAPE_LEFT_NORTH); - public static final VoxelShape SHAPE_LEFT_WEST = VoxelShapeHelper.rotateHorizontal(Direction.WEST, Direction.NORTH, SHAPE_LEFT_NORTH); + )); - public static final VoxelShape SHAPE_RIGHT_NORTH = VoxelShapes.union( + private static final Map DOUBLE_RIGHT_SHAPES_BY_DIRECTION = VoxelShapes.createHorizontalFacingShapeMap(VoxelShapes.union( createCuboidShape(0, 1, 1, 15, 16, 15), createCuboidShape(0, 0, 0, 16, 1, 16) - ); - public static final VoxelShape SHAPE_RIGHT_EAST = VoxelShapeHelper.rotateHorizontal(Direction.EAST, Direction.NORTH, SHAPE_RIGHT_NORTH); - public static final VoxelShape SHAPE_RIGHT_SOUTH = VoxelShapeHelper.rotateHorizontal(Direction.SOUTH, Direction.NORTH, SHAPE_RIGHT_NORTH); - public static final VoxelShape SHAPE_RIGHT_WEST = VoxelShapeHelper.rotateHorizontal(Direction.WEST, Direction.NORTH, SHAPE_RIGHT_NORTH); + )); public StoneChestBlock(Settings settings) { super(settings); @@ -132,11 +138,9 @@ public BlockState mirror(BlockState state, BlockMirror mirror) { } @Override - public BlockState getStateForNeighborUpdate( - BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos - ) { + protected BlockState getStateForNeighborUpdate(BlockState state, WorldView world, ScheduledTickView tickView, BlockPos pos, Direction direction, BlockPos neighborPos, BlockState neighborState, Random random) { if (state.get(WATERLOGGED)) { - world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); + tickView.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); } if (direction == Direction.UP && neighborState.isAir()) { @@ -158,56 +162,27 @@ && getFacing(neighborState) == direction.getOpposite()) { return state.with(CHEST_TYPE, ChestType.SINGLE); } - return super.getStateForNeighborUpdate(state, direction, neighborState, world, pos, neighborPos); + return super.getStateForNeighborUpdate(state, world, tickView, pos, direction, neighborPos, neighborState, random); } @Override - protected ItemActionResult onUseWithItem(ItemStack stack, BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { - if (world.isClient) return ItemActionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; - + protected ActionResult onUseWithItem(ItemStack stack, BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { StoneChestBlockEntity blockEntity = (StoneChestBlockEntity) world.getBlockEntity(pos); return Objects.requireNonNull(blockEntity).use(player, hand, hit.getSide()); } @Override public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { - switch (state.get(CHEST_TYPE)) { - case LEFT: - switch (state.get(FACING)) { - case NORTH: - return SHAPE_LEFT_NORTH; - case EAST: - return SHAPE_LEFT_EAST; - case SOUTH: - return SHAPE_LEFT_SOUTH; - case WEST: - return SHAPE_LEFT_WEST; - } - case RIGHT: - switch (state.get(FACING)) { - case NORTH: - return SHAPE_RIGHT_NORTH; - case EAST: - return SHAPE_RIGHT_EAST; - case SOUTH: - return SHAPE_RIGHT_SOUTH; - case WEST: - return SHAPE_RIGHT_WEST; - } - default: - return SHAPE_SINGLE; - } + return switch (state.get(CHEST_TYPE)) { + case LEFT -> DOUBLE_LEFT_SHAPES_BY_DIRECTION.get(state.get(FACING)); + case RIGHT -> DOUBLE_RIGHT_SHAPES_BY_DIRECTION.get(state.get(FACING)); + default -> SHAPE_SINGLE; + }; } @Override - public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved) { - if (state.getBlock() != newState.getBlock()) { - BlockEntity blockEntity = world.getBlockEntity(pos); - if (blockEntity instanceof StoneChestBlockEntity) { - ItemScatterer.spawn(world, pos, (StoneChestBlockEntity) blockEntity); - } - super.onStateReplaced(state, world, pos, newState, moved); - } + protected void onStateReplaced(BlockState state, ServerWorld world, BlockPos pos, boolean moved) { + ItemScatterer.onStateReplaced(state, world, pos); } @Override diff --git a/src/main/java/dev/spiritstudios/hollow/block/StoneChestLidBlock.java b/src/main/java/dev/spiritstudios/hollow/block/StoneChestLidBlock.java index 1273a9b..60b41c6 100644 --- a/src/main/java/dev/spiritstudios/hollow/block/StoneChestLidBlock.java +++ b/src/main/java/dev/spiritstudios/hollow/block/StoneChestLidBlock.java @@ -1,43 +1,45 @@ package dev.spiritstudios.hollow.block; -import dev.spiritstudios.specter.api.core.math.VoxelShapeHelper; -import net.minecraft.block.*; +import net.minecraft.block.Block; +import net.minecraft.block.BlockRenderType; +import net.minecraft.block.BlockState; +import net.minecraft.block.HorizontalFacingBlock; +import net.minecraft.block.ShapeContext; import net.minecraft.block.enums.ChestType; import net.minecraft.fluid.FluidState; import net.minecraft.fluid.Fluids; import net.minecraft.item.ItemPlacementContext; +import net.minecraft.server.world.ServerWorld; import net.minecraft.state.StateManager; import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.DirectionProperty; import net.minecraft.state.property.EnumProperty; import net.minecraft.state.property.Properties; import net.minecraft.util.BlockMirror; import net.minecraft.util.BlockRotation; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; +import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; -import net.minecraft.world.World; -import net.minecraft.world.WorldAccess; +import net.minecraft.world.WorldView; +import net.minecraft.world.tick.ScheduledTickView; import org.jetbrains.annotations.Nullable; +import java.util.Map; + public class StoneChestLidBlock extends Block { - public static final DirectionProperty FACING = HorizontalFacingBlock.FACING; + public static final EnumProperty FACING = HorizontalFacingBlock.FACING; public static final EnumProperty CHEST_TYPE = Properties.CHEST_TYPE; public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; // region VoxelShapes public static final VoxelShape SHAPE_SINGLE = Block.createCuboidShape(1, 0, 1, 15, 4, 15); - - public static final VoxelShape SHAPE_LEFT_NORTH = Block.createCuboidShape(1, 0, 1, 16, 4, 15); - public static final VoxelShape SHAPE_LEFT_EAST = VoxelShapeHelper.rotateHorizontal(Direction.EAST, Direction.NORTH, SHAPE_LEFT_NORTH); - public static final VoxelShape SHAPE_LEFT_SOUTH = VoxelShapeHelper.rotateHorizontal(Direction.SOUTH, Direction.NORTH, SHAPE_LEFT_NORTH); - public static final VoxelShape SHAPE_LEFT_WEST = VoxelShapeHelper.rotateHorizontal(Direction.WEST, Direction.NORTH, SHAPE_LEFT_NORTH); - - public static final VoxelShape SHAPE_RIGHT_NORTH = Block.createCuboidShape(0, 0, 1, 15, 4, 15); - public static final VoxelShape SHAPE_RIGHT_EAST = VoxelShapeHelper.rotateHorizontal(Direction.EAST, Direction.NORTH, SHAPE_RIGHT_NORTH); - public static final VoxelShape SHAPE_RIGHT_SOUTH = VoxelShapeHelper.rotateHorizontal(Direction.SOUTH, Direction.NORTH, SHAPE_RIGHT_NORTH); - public static final VoxelShape SHAPE_RIGHT_WEST = VoxelShapeHelper.rotateHorizontal(Direction.WEST, Direction.NORTH, SHAPE_RIGHT_NORTH); + + + private static final Map DOUBLE_LEFT_SHAPES_BY_DIRECTION = VoxelShapes.createHorizontalFacingShapeMap(createCuboidShape(1, 0, 1, 16, 4, 15)); + + private static final Map DOUBLE_RIGHT_SHAPES_BY_DIRECTION = VoxelShapes.createHorizontalFacingShapeMap(createCuboidShape(0, 0, 1, 15, 4, 15)); // endregion public StoneChestLidBlock(Settings settings) { @@ -90,10 +92,8 @@ private Direction getNeighborChestDirection(ItemPlacementContext ctx, Direction public BlockState mirror(BlockState state, BlockMirror mirror) { return state.rotate(mirror.getRotation(state.get(FACING))); } @Override - public BlockState getStateForNeighborUpdate( - BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos - ) { - if (state.get(WATERLOGGED)) world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); + protected BlockState getStateForNeighborUpdate(BlockState state, WorldView world, ScheduledTickView tickView, BlockPos pos, Direction direction, BlockPos neighborPos, BlockState neighborState, Random random) { + if (state.get(WATERLOGGED)) tickView.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); if (!neighborState.isOf(this) || !direction.getAxis().isHorizontal()) { if (getFacing(state) == direction) return state.with(CHEST_TYPE, ChestType.SINGLE); @@ -107,19 +107,19 @@ && getFacing(neighborState) == direction.getOpposite()) { } } - return super.getStateForNeighborUpdate(state, direction, neighborState, world, pos, neighborPos); + return super.getStateForNeighborUpdate(state, world, tickView, pos, direction, neighborPos, neighborState, random); } @Override - protected void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved) { - super.onStateReplaced(state, world, pos, newState, moved); - if (state.isOf(newState.getBlock())) return; + protected void onStateReplaced(BlockState state, ServerWorld world, BlockPos pos, boolean moved) { + super.onStateReplaced(state, world, pos, moved); ChestType type = state.get(CHEST_TYPE); if (type == ChestType.SINGLE) return; Direction facing = state.get(FACING); BlockPos otherPos = pos.offset(type == ChestType.LEFT ? facing.rotateYClockwise() : facing.rotateYCounterclockwise()); world.breakBlock(otherPos, false); + } public static Direction getFacing(BlockState state) { @@ -129,32 +129,11 @@ public static Direction getFacing(BlockState state) { @Override public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { - switch (state.get(CHEST_TYPE)) { - case LEFT: - switch (state.get(FACING)) { - case NORTH: - return SHAPE_LEFT_NORTH; - case EAST: - return SHAPE_LEFT_EAST; - case SOUTH: - return SHAPE_LEFT_SOUTH; - case WEST: - return SHAPE_LEFT_WEST; - } - case RIGHT: - switch (state.get(FACING)) { - case NORTH: - return SHAPE_RIGHT_NORTH; - case EAST: - return SHAPE_RIGHT_EAST; - case SOUTH: - return SHAPE_RIGHT_SOUTH; - case WEST: - return SHAPE_RIGHT_WEST; - } - default: - return SHAPE_SINGLE; - } + return switch (state.get(CHEST_TYPE)) { + case LEFT -> DOUBLE_LEFT_SHAPES_BY_DIRECTION.get(state.get(FACING)); + case RIGHT -> DOUBLE_RIGHT_SHAPES_BY_DIRECTION.get(state.get(FACING)); + default -> SHAPE_SINGLE; + }; } // region Settings diff --git a/src/main/java/dev/spiritstudios/hollow/block/VerticalDoubleBlock.java b/src/main/java/dev/spiritstudios/hollow/block/VerticalDoubleBlock.java new file mode 100644 index 0000000..e5e9ecd --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/block/VerticalDoubleBlock.java @@ -0,0 +1,107 @@ +package dev.spiritstudios.hollow.block; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.block.enums.DoubleBlockHalf; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.fluid.Fluids; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.item.ItemStack; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.EnumProperty; +import net.minecraft.state.property.Properties; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.World; +import net.minecraft.world.WorldEvents; +import net.minecraft.world.WorldView; +import net.minecraft.world.tick.ScheduledTickView; +import org.jetbrains.annotations.Nullable; + +public abstract class VerticalDoubleBlock extends Block { + public static final EnumProperty HALF = Properties.DOUBLE_BLOCK_HALF; + + public VerticalDoubleBlock(Settings settings) { + super(settings); + setDefaultState(getDefaultState().with(HALF, DoubleBlockHalf.LOWER)); + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + builder.add(HALF); + } + + @Override + public BlockState getPlacementState(ItemPlacementContext ctx) { + BlockPos pos = ctx.getBlockPos(); + World world = ctx.getWorld(); + + return pos.getY() < world.getTopYInclusive() - 1 && world.getBlockState(pos.up()).canReplace(ctx) ? + getDefaultState() + .with(Properties.HORIZONTAL_FACING, ctx.getHorizontalPlayerFacing().getOpposite()): null; + } + + @Override + public void onPlaced(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack itemStack) { + world.setBlockState(pos.up(), this.getDefaultState().with(HALF, DoubleBlockHalf.UPPER), Block.NOTIFY_ALL); + } + + @Override + protected boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) { + if (state.get(HALF) == DoubleBlockHalf.UPPER) { + BlockState lower = world.getBlockState(pos.down()); + return lower.isOf(this) && lower.get(HALF) == DoubleBlockHalf.LOWER; + } + + return super.canPlaceAt(state, world, pos); + } + + @Override + public BlockState onBreak(World world, BlockPos pos, BlockState state, PlayerEntity player) { + if (world.isClient()) return super.onBreak(world, pos, state, player); + + if (player.isCreative()) onBreakInCreative(world, pos, state, player); + else dropStacks(state, world, pos, null, player, player.getMainHandStack()); + + return super.onBreak(world, pos, state, player); + } + + @Override + public void afterBreak(World world, PlayerEntity player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool) { + super.afterBreak(world, player, pos, Blocks.AIR.getDefaultState(), blockEntity, tool); + } + + @Override + protected BlockState getStateForNeighborUpdate(BlockState state, WorldView world, ScheduledTickView tickView, BlockPos pos, Direction direction, BlockPos neighborPos, BlockState neighborState, Random random) { + DoubleBlockHalf half = state.get(HALF); + + if (direction.getAxis() != Direction.Axis.Y || half == DoubleBlockHalf.LOWER != (direction == Direction.UP)) { + return half == DoubleBlockHalf.LOWER && direction == Direction.DOWN && !state.canPlaceAt(world, pos) + ? Blocks.AIR.getDefaultState() + : super.getStateForNeighborUpdate(state, world, tickView, pos, direction, neighborPos, neighborState, random); + } + + return neighborState.isOf(this) && neighborState.get(HALF) != half + ? neighborState.with(HALF, half) + : Blocks.AIR.getDefaultState(); + } + + protected static void onBreakInCreative(World world, BlockPos pos, BlockState state, PlayerEntity player) { + DoubleBlockHalf half = state.get(HALF); + if (half == DoubleBlockHalf.LOWER) return; + + BlockPos lowerPos = pos.down(); + BlockState lower = world.getBlockState(lowerPos); + + if (!lower.isOf(state.getBlock()) || lower.get(HALF) != DoubleBlockHalf.LOWER) + return; + + BlockState lowerFluid = lower.getFluidState().isOf(Fluids.WATER) ? Blocks.WATER.getDefaultState() : Blocks.AIR.getDefaultState(); + world.setBlockState(lowerPos, lowerFluid, Block.NOTIFY_ALL | Block.SKIP_DROPS); + world.syncWorldEvent(player, WorldEvents.BLOCK_BROKEN, lowerPos, Block.getRawIdFromState(lower)); + } +} \ No newline at end of file diff --git a/src/main/java/dev/spiritstudios/hollow/block/entity/EchoingPotBlockEntity.java b/src/main/java/dev/spiritstudios/hollow/block/entity/EchoingPotBlockEntity.java index 6459d9e..ed2fa97 100644 --- a/src/main/java/dev/spiritstudios/hollow/block/entity/EchoingPotBlockEntity.java +++ b/src/main/java/dev/spiritstudios/hollow/block/entity/EchoingPotBlockEntity.java @@ -1,41 +1,29 @@ package dev.spiritstudios.hollow.block.entity; -import dev.spiritstudios.hollow.registry.HollowBlockEntityTypes; -import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.DecoratedPotBlockEntity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.ai.WardenAngerManager; -import net.minecraft.entity.mob.WardenEntity; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Items; import net.minecraft.nbt.NbtCompound; import net.minecraft.network.listener.ClientPlayPacketListener; import net.minecraft.network.packet.Packet; import net.minecraft.network.packet.s2c.play.BlockEntityUpdateS2CPacket; -import net.minecraft.particle.ParticleTypes; import net.minecraft.registry.RegistryWrapper; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Box; -import net.minecraft.util.math.random.Random; import net.minecraft.world.World; import net.minecraft.world.event.GameEvent; import org.jetbrains.annotations.Nullable; -import java.util.List; -import java.util.Optional; - public class EchoingPotBlockEntity extends BlockEntity { public int activeTime = 0; public long lastWobbleTime; public DecoratedPotBlockEntity.WobbleType lastWobbleType; public EchoingPotBlockEntity(BlockPos pos, BlockState state) { - super(HollowBlockEntityTypes.ECHOING_POT_BLOCK_ENTITY, pos, state); + super(HollowBlockEntityTypes.ECHOING_POT, pos, state); } public static void tick(World world, BlockPos pos, BlockState state, EchoingPotBlockEntity blockEntity) { @@ -43,18 +31,10 @@ public static void tick(World world, BlockPos pos, BlockState state, EchoingPotB } public void use(PlayerEntity player, Hand hand) { -// if (!player.getStackInHand(hand).isOf(Items.ECHO_SHARD) || activeTime > 0) { - wobble(DecoratedPotBlockEntity.WobbleType.NEGATIVE); - player.getWorld().playSound(null, pos, SoundEvents.BLOCK_DECORATED_POT_INSERT_FAIL, SoundCategory.BLOCKS, 1.0F, 1.0F); - player.getWorld().emitGameEvent(player, GameEvent.BLOCK_CHANGE, pos); - return; -// } -// -// activeTime += 300; -// player.getStackInHand(hand).decrement(1); -// wobble(DecoratedPotBlockEntity.WobbleType.POSITIVE); -// player.getWorld().emitGameEvent(player, GameEvent.BLOCK_CHANGE, pos); -// player.getWorld().playSound(null, pos, SoundEvents.BLOCK_DECORATED_POT_INSERT, SoundCategory.BLOCKS, 1.0F, 1.0F); + wobble(DecoratedPotBlockEntity.WobbleType.NEGATIVE); + player.getWorld().playSound(null, pos, SoundEvents.BLOCK_DECORATED_POT_INSERT_FAIL, SoundCategory.BLOCKS, 1.0F, 1.0F); + player.getWorld().emitGameEvent(player, GameEvent.BLOCK_CHANGE, pos); + } public void wobble(DecoratedPotBlockEntity.WobbleType wobbleType) { @@ -93,7 +73,7 @@ protected void writeNbt(NbtCompound nbt, RegistryWrapper.WrapperLookup registryL @Override public void readNbt(NbtCompound nbt, RegistryWrapper.WrapperLookup registryLookup) { super.readNbt(nbt, registryLookup); - activeTime = nbt.getInt("ActiveTime"); + activeTime = nbt.getInt("ActiveTime", 0); } // endregion } diff --git a/src/main/java/dev/spiritstudios/hollow/block/entity/EchoingVaseBlockEntity.java b/src/main/java/dev/spiritstudios/hollow/block/entity/EchoingVaseBlockEntity.java new file mode 100644 index 0000000..a7dc85d --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/block/entity/EchoingVaseBlockEntity.java @@ -0,0 +1,155 @@ +package dev.spiritstudios.hollow.block.entity; + +import dev.spiritstudios.hollow.Hollow; +import dev.spiritstudios.hollow.block.ScreamingVaseBlock; +import dev.spiritstudios.hollow.block.HollowBlocks; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.block.entity.DecoratedPotBlockEntity; +import net.minecraft.block.enums.DoubleBlockHalf; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.network.listener.ClientPlayPacketListener; +import net.minecraft.network.packet.Packet; +import net.minecraft.network.packet.s2c.play.BlockEntityUpdateS2CPacket; +import net.minecraft.registry.RegistryWrapper; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvents; +import net.minecraft.state.property.Properties; +import net.minecraft.util.Hand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.world.World; +import net.minecraft.world.event.GameEvent; +import org.jetbrains.annotations.Nullable; + +public class EchoingVaseBlockEntity extends BlockEntity { + public static int TILT_TIME = 10; + public static int FALL_TIME = 20; + + public int activeTime = 0; + public long lastWobbleTime; + public Entity fallCauser; + public int fallTime = 0; + public boolean fallen = false; + public Direction fallDirection = Direction.NORTH; + public DecoratedPotBlockEntity.WobbleType lastWobbleType; + + public EchoingVaseBlockEntity(BlockPos pos, BlockState state) { + super(HollowBlockEntityTypes.ECHOING_VASE, pos, state); + } + + public void use(PlayerEntity player, Hand hand) { + wobble(DecoratedPotBlockEntity.WobbleType.NEGATIVE); + player.getWorld().playSound(null, pos, SoundEvents.BLOCK_DECORATED_POT_INSERT_FAIL, SoundCategory.BLOCKS, 1.0F, 1.0F); + player.getWorld().emitGameEvent(player, GameEvent.BLOCK_CHANGE, pos); + + } + + public void wobble(DecoratedPotBlockEntity.WobbleType wobbleType) { + if (this.world == null || this.world.isClient()) return; + + this.world.addSyncedBlockEvent(this.getPos(), this.getCachedState().getBlock(), 1, wobbleType.ordinal()); + + this.world.addSyncedBlockEvent(this.getPos().up(), this.getCachedState().getBlock(), 1, wobbleType.ordinal()); + } + + public void setFalling(Direction dir, boolean top, World world, BlockPos pos, @Nullable Entity fallCauser) { + this.fallTime = 1; + this.fallDirection = dir; + this.fallCauser = fallCauser; + if (top) { + BlockEntity be = world.getBlockEntity(pos.up()); + if (be instanceof EchoingVaseBlockEntity echoing) { + echoing.setFalling(dir, false, world, pos, fallCauser); + } else { + Hollow.LOGGER.error("Missing top block entity for echoing vase at {}", pos.up()); + } + } + } + + public static void tick(World world, BlockPos pos, BlockState state, EchoingVaseBlockEntity entity) { + if (entity.fallTime == 0) return; + entity.fallTime++; + + if (entity.fallTime <= EchoingVaseBlockEntity.FALL_TIME || entity.fallen) return; + + world.playSoundAtBlockCenterClient(pos, SoundEvents.BLOCK_DECORATED_POT_SHATTER, SoundCategory.BLOCKS, 1, 1, true); + + world.setBlockState(pos.up(), Blocks.AIR.getDefaultState()); + world.setBlockState(pos, Blocks.AIR.getDefaultState()); + + world.addBlockBreakParticles(pos.offset(entity.fallDirection), state); + world.addBlockBreakParticles(pos.offset(entity.fallDirection, 2), state); + + ScreamingVaseBlock.onBreakLower(world, pos, state, entity.fallCauser); + } + + public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) { + if (!state.isOf(HollowBlocks.SCREAMING_VASE) || + this.fallTime != 0 || + state.get(Properties.DOUBLE_BLOCK_HALF).equals(DoubleBlockHalf.UPPER) || + !world.getBlockState(pos.up()).isOf(HollowBlocks.SCREAMING_VASE) + ) return; + + Direction fallDirection = Direction.getFacing(pos.toCenterPos().subtract(entity.getPos())); + + BlockPos lowerPos = pos.offset(fallDirection); + BlockPos upperPos = pos.offset(fallDirection, 2); + + if (!world.getBlockState(lowerPos).isAir() || !world.getBlockState(upperPos).isAir()) return; + + this.setFalling(Direction.getFacing(pos.toCenterPos().subtract(entity.getPos())), true, world, pos, entity); + if (!world.isClient) { + ((ServerWorld) world).getChunkManager().markForUpdate(this.getPos()); + } + } + + @Override + public boolean onSyncedBlockEvent(int type, int data) { + if (this.world == null || type != 1 || data < 0 || data >= DecoratedPotBlockEntity.WobbleType.values().length) + return super.onSyncedBlockEvent(type, data); + + this.lastWobbleTime = this.world.getTime(); + this.lastWobbleType = DecoratedPotBlockEntity.WobbleType.values()[data]; + return true; + } + + // region NBT + @Nullable + @Override + public Packet toUpdatePacket() { + return BlockEntityUpdateS2CPacket.create(this); + } + + @Override + public NbtCompound toInitialChunkDataNbt(RegistryWrapper.WrapperLookup registryLookup) { + return createNbt(registryLookup); + } + + @Override + protected void writeNbt(NbtCompound nbt, RegistryWrapper.WrapperLookup registryLookup) { + nbt.putInt("ActiveTime", activeTime); + if (this.fallDirection != null && this.fallTime > 0) { + nbt.putInt("FallDir", this.fallDirection.ordinal()); + } + super.writeNbt(nbt, registryLookup); + } + + @Override + public void readNbt(NbtCompound nbt, RegistryWrapper.WrapperLookup registryLookup) { + super.readNbt(nbt, registryLookup); + activeTime = nbt.getInt("ActiveTime", 0); + + nbt.getInt("FallDir").ifPresent(fallDir -> { + this.fallDirection = Direction.values()[fallDir]; + if (this.world != null && this.fallTime == 0 && this.getCachedState().get(Properties.DOUBLE_BLOCK_HALF) == DoubleBlockHalf.LOWER) { + this.setFalling(this.fallDirection, true, this.world, this.getPos(), null); + } + }); + } + // endregion +} \ No newline at end of file diff --git a/src/main/java/dev/spiritstudios/hollow/block/entity/HollowBlockEntityTypes.java b/src/main/java/dev/spiritstudios/hollow/block/entity/HollowBlockEntityTypes.java new file mode 100644 index 0000000..8be8a4a --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/block/entity/HollowBlockEntityTypes.java @@ -0,0 +1,15 @@ +package dev.spiritstudios.hollow.block.entity; + +import dev.spiritstudios.hollow.block.HollowBlocks; +import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; +import net.minecraft.block.entity.BlockEntityType; + +public final class HollowBlockEntityTypes { + public static final BlockEntityType JAR = FabricBlockEntityTypeBuilder.create(JarBlockEntity::new, HollowBlocks.JAR).build(); + + public static final BlockEntityType ECHOING_VASE = FabricBlockEntityTypeBuilder.create(EchoingVaseBlockEntity::new, HollowBlocks.ECHOING_VASE, HollowBlocks.OBABO, HollowBlocks.SCREAMING_VASE).build(); + + public static final BlockEntityType ECHOING_POT = FabricBlockEntityTypeBuilder.create(EchoingPotBlockEntity::new, HollowBlocks.ECHOING_POT).build(); + + public static final BlockEntityType STONE_CHEST = FabricBlockEntityTypeBuilder.create(StoneChestBlockEntity::new, HollowBlocks.STONE_CHEST).build(); +} diff --git a/src/main/java/dev/spiritstudios/hollow/block/entity/JarBlockEntity.java b/src/main/java/dev/spiritstudios/hollow/block/entity/JarBlockEntity.java index e30b192..f6274fc 100644 --- a/src/main/java/dev/spiritstudios/hollow/block/entity/JarBlockEntity.java +++ b/src/main/java/dev/spiritstudios/hollow/block/entity/JarBlockEntity.java @@ -1,6 +1,5 @@ package dev.spiritstudios.hollow.block.entity; -import dev.spiritstudios.hollow.registry.HollowBlockEntityTypes; import dev.spiritstudios.specter.api.block.entity.InventoryBlockEntity; import net.minecraft.block.Block; import net.minecraft.block.BlockState; @@ -18,7 +17,7 @@ public class JarBlockEntity extends InventoryBlockEntity { public JarBlockEntity(BlockPos pos, BlockState state) { - super(HollowBlockEntityTypes.JAR_BLOCK_ENTITY, pos, state, 17); + super(HollowBlockEntityTypes.JAR, pos, state, 17); } public void use(World world, BlockPos pos, PlayerEntity player, Hand hand) { diff --git a/src/main/java/dev/spiritstudios/hollow/block/entity/StoneChestBlockEntity.java b/src/main/java/dev/spiritstudios/hollow/block/entity/StoneChestBlockEntity.java index 90e3f4b..b8b378c 100644 --- a/src/main/java/dev/spiritstudios/hollow/block/entity/StoneChestBlockEntity.java +++ b/src/main/java/dev/spiritstudios/hollow/block/entity/StoneChestBlockEntity.java @@ -1,66 +1,35 @@ package dev.spiritstudios.hollow.block.entity; -import dev.spiritstudios.hollow.registry.HollowBlockEntityTypes; -import dev.spiritstudios.hollow.registry.HollowBlocks; -import dev.spiritstudios.hollow.registry.HollowSoundEvents; +import dev.spiritstudios.hollow.block.HollowBlocks; +import dev.spiritstudios.hollow.sound.HollowSoundEvents; import dev.spiritstudios.specter.api.block.entity.LootableInventoryBlockEntity; -import net.minecraft.advancement.criterion.Criteria; import net.minecraft.block.BlockState; import net.minecraft.entity.ItemEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.inventory.Inventories; import net.minecraft.item.ItemStack; -import net.minecraft.loot.LootTable; -import net.minecraft.loot.context.LootContextParameterSet; -import net.minecraft.loot.context.LootContextParameters; -import net.minecraft.loot.context.LootContextTypes; import net.minecraft.nbt.NbtCompound; import net.minecraft.particle.ParticleTypes; import net.minecraft.registry.RegistryWrapper; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.world.ServerWorld; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; +import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; -import net.minecraft.util.ItemActionResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.util.math.Vec3d; -import org.jetbrains.annotations.Nullable; public class StoneChestBlockEntity extends LootableInventoryBlockEntity { public StoneChestBlockEntity(BlockPos pos, BlockState state) { - super(HollowBlockEntityTypes.STONE_CHEST_BLOCK_ENTITY, pos, state, 27); + super(HollowBlockEntityTypes.STONE_CHEST, pos, state, 27); } - public void checkLootInteraction(@Nullable PlayerEntity player, boolean randomSeed) { - if (world == null) return; - - MinecraftServer server = world.getServer(); - if (this.lootTable == null || server == null) return; - - LootTable lootTable = server.getReloadableRegistries().getLootTable(this.lootTable); - if (player instanceof ServerPlayerEntity serverPlayer) - Criteria.PLAYER_GENERATES_CONTAINER_LOOT.trigger(serverPlayer, this.lootTable); - this.lootTable = null; - - LootContextParameterSet.Builder builder = new LootContextParameterSet.Builder((ServerWorld)this.world) - .add(LootContextParameters.ORIGIN, Vec3d.ofCenter(this.pos)); - - if (player != null) builder.luck(player.getLuck()).add(LootContextParameters.THIS_ENTITY, player); - - lootTable.supplyInventory( - this, - builder.build(LootContextTypes.CHEST), - randomSeed ? world.getRandom().nextLong() : this.lootTableSeed - ); - } - public void aboveBroken() { if (world == null) return; if (world.isClient()) return; - checkLootInteraction(null, true); + + generateLoot(null); Vec3d centerPos = pos.toCenterPos(); inventory.stream() .filter(stack -> !stack.isEmpty()) @@ -75,18 +44,19 @@ public void aboveBroken() { 7, 0.0, 0.0, 0.0, 0.0 ); - world.playSound(null, pos, HollowSoundEvents.STONE_CHEST_EXTRACT, SoundCategory.BLOCKS); + world.playSound(null, pos, HollowSoundEvents.BLOCK_STONE_CHEST_EXTRACT, SoundCategory.BLOCKS); inventory.clear(); } - public ItemActionResult use(PlayerEntity player, Hand hand, Direction side) { - if (world == null) return ItemActionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + public ActionResult use(PlayerEntity player, Hand hand, Direction side) { + if (world == null) return ActionResult.PASS_TO_DEFAULT_BLOCK_ACTION; if (player.getStackInHand(hand).isEmpty() || player.getStackInHand(hand).isOf(HollowBlocks.STONE_CHEST_LID.asItem()) && side.equals(Direction.UP)) - return ItemActionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + return ActionResult.PASS_TO_DEFAULT_BLOCK_ACTION; - if (!world.isAir(pos.up())) return ItemActionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + if (!world.isAir(pos.up())) return ActionResult.PASS_TO_DEFAULT_BLOCK_ACTION; + if (world.isClient()) return ActionResult.SUCCESS; int slot = -1; for (int i = 0; i < inventory.size(); i++) { @@ -96,7 +66,7 @@ public ItemActionResult use(PlayerEntity player, Hand hand, Direction side) { } } - if (slot == -1) return ItemActionResult.FAIL; + if (slot == -1) return ActionResult.FAIL; setStack(slot, player.getStackInHand(hand)); player.setStackInHand(hand, ItemStack.EMPTY); @@ -110,7 +80,7 @@ public ItemActionResult use(PlayerEntity player, Hand hand, Direction side) { ((player.getRandom().nextFloat() - player.getRandom().nextFloat()) * 0.7F + 1.0F) * 2.0F ); - return ItemActionResult.SUCCESS; + return ActionResult.SUCCESS; } @Override diff --git a/src/main/java/dev/spiritstudios/hollow/component/CopperInstrument.java b/src/main/java/dev/spiritstudios/hollow/component/CopperInstrument.java index 3d3fbf3..4748714 100644 --- a/src/main/java/dev/spiritstudios/hollow/component/CopperInstrument.java +++ b/src/main/java/dev/spiritstudios/hollow/component/CopperInstrument.java @@ -1,59 +1,67 @@ package dev.spiritstudios.hollow.component; import com.mojang.serialization.Codec; -import dev.spiritstudios.hollow.Hollow; -import io.netty.buffer.ByteBuf; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import dev.spiritstudios.hollow.registry.HollowRegistryKeys; +import net.minecraft.network.RegistryByteBuf; import net.minecraft.network.codec.PacketCodec; import net.minecraft.network.codec.PacketCodecs; +import net.minecraft.registry.Registries; +import net.minecraft.registry.entry.RegistryElementCodec; +import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.sound.SoundEvent; -import net.minecraft.util.StringIdentifiable; -import net.minecraft.util.function.ValueLists; +import net.minecraft.text.Text; +import net.minecraft.text.TextCodecs; +import net.minecraft.util.Identifier; +import net.minecraft.util.dynamic.Codecs; -import java.util.function.IntFunction; +// TODO: Make this data driven +public record CopperInstrument( + RegistryEntry call, + RegistryEntry melody, + RegistryEntry bass, + float useDuration, float range, + Text description +) { + public static CopperInstrument of(String namespace, String call, String melody, String bass, float useDuration, float range) { + return new CopperInstrument( + Registries.SOUND_EVENT.getEntry(Identifier.of(namespace, "item.copper_horn.call." + call)).orElseThrow(), + Registries.SOUND_EVENT.getEntry(Identifier.of(namespace, "item.copper_horn.melody." + melody)).orElseThrow(), + Registries.SOUND_EVENT.getEntry(Identifier.of(namespace, "item.copper_horn.bass." + bass)).orElseThrow(), + useDuration, range, + Text.translatable("item.hollow.copper_horn." + namespace + "." + call + "_" + melody + "_" + bass) + ); + } -public enum CopperInstrument implements StringIdentifiable { - GREAT_SKY_FALLING(0, "great_sky_falling"), - OLD_HYMN_RESTING(1, "old_hymn_resting"), - PURE_WATER_DESIRE(2, "pure_water_desire"), - HUMBLE_FIRE_MEMORY(3, "humble_fire_memory"), - DRY_URGE_ANGER(4, "dry_urge_anger"), - CLEAR_TEMPER_JOURNEY(5, "clear_temper_journey"), - FRESH_NEST_THOUGHT(6, "fresh_nest_thought"), - SECRET_LAKE_TEAR(7, "secret_lake_tear"), - FEARLESS_RIVER_GIFT(8, "fearless_river_gift"), - SWEET_MOON_LOVE(9, "sweet_moon_love"); + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + SoundEvent.ENTRY_CODEC.fieldOf("call").forGetter(CopperInstrument::call), + SoundEvent.ENTRY_CODEC.fieldOf("melody").forGetter(CopperInstrument::melody), + SoundEvent.ENTRY_CODEC.fieldOf("bass").forGetter(CopperInstrument::bass), + Codecs.POSITIVE_FLOAT.fieldOf("use_duration").forGetter(CopperInstrument::useDuration), + Codecs.POSITIVE_FLOAT.fieldOf("range").forGetter(CopperInstrument::range), + TextCodecs.CODEC.fieldOf("description").forGetter(CopperInstrument::description) + ) + .apply(instance, CopperInstrument::new) + ); - public static final IntFunction ID_TO_VALUE = ValueLists.createIdToValueFunction( - CopperInstrument::getIndex, - values(), - ValueLists.OutOfBoundsHandling.ZERO - ); + public static final PacketCodec PACKET_CODEC = PacketCodec.tuple( + SoundEvent.ENTRY_PACKET_CODEC, CopperInstrument::call, + SoundEvent.ENTRY_PACKET_CODEC, CopperInstrument::melody, + SoundEvent.ENTRY_PACKET_CODEC, CopperInstrument::bass, + PacketCodecs.FLOAT, CopperInstrument::useDuration, + PacketCodecs.FLOAT, CopperInstrument::range, + TextCodecs.REGISTRY_PACKET_CODEC, CopperInstrument::description, + CopperInstrument::new + ); - public static final Codec CODEC = StringIdentifiable.createBasicCodec(CopperInstrument::values); - public static final PacketCodec PACKET_CODEC = PacketCodecs.indexed(ID_TO_VALUE, value -> value.index); + public static final Codec> ENTRY_CODEC = RegistryElementCodec.of( + HollowRegistryKeys.COPPER_INSTRUMENT, + CODEC + ); - private final String name; - private final int index; - - public final SoundEvent call; - public final SoundEvent melody; - public final SoundEvent bass; - - CopperInstrument(int index, String name) { - this.name = name; - this.index = index; - - this.call = SoundEvent.of(Hollow.id("horn.call.%d".formatted(index))); - this.melody = SoundEvent.of(Hollow.id("horn.melody.%d".formatted(index))); - this.bass = SoundEvent.of(Hollow.id("horn.bass.%d".formatted(index))); - } - - @Override - public String asString() { - return this.name; - } - - public int getIndex() { - return this.index; - } + public static final PacketCodec> ENTRY_PACKET_CODEC = PacketCodecs.registryEntry( + HollowRegistryKeys.COPPER_INSTRUMENT, + PACKET_CODEC + ); } diff --git a/src/main/java/dev/spiritstudios/hollow/component/CopperInstrumentComponent.java b/src/main/java/dev/spiritstudios/hollow/component/CopperInstrumentComponent.java new file mode 100644 index 0000000..004c1f8 --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/component/CopperInstrumentComponent.java @@ -0,0 +1,62 @@ +package dev.spiritstudios.hollow.component; + +import com.mojang.serialization.Codec; +import dev.spiritstudios.hollow.registry.HollowRegistryKeys; +import net.minecraft.component.ComponentsAccess; +import net.minecraft.item.Item; +import net.minecraft.item.tooltip.TooltipAppender; +import net.minecraft.item.tooltip.TooltipType; +import net.minecraft.network.RegistryByteBuf; +import net.minecraft.network.codec.PacketCodec; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryWrapper; +import net.minecraft.registry.entry.LazyRegistryEntryReference; +import net.minecraft.registry.entry.RegistryEntry; +import net.minecraft.text.MutableText; +import net.minecraft.text.Style; +import net.minecraft.text.Text; +import net.minecraft.text.Texts; +import net.minecraft.util.Formatting; + +import java.util.Optional; +import java.util.function.Consumer; + +public record CopperInstrumentComponent( + LazyRegistryEntryReference instrument) implements TooltipAppender { + public static final Codec CODEC = LazyRegistryEntryReference.createCodec( + HollowRegistryKeys.COPPER_INSTRUMENT, + CopperInstrument.ENTRY_CODEC + ) + .xmap(CopperInstrumentComponent::new, CopperInstrumentComponent::instrument); + + public static final PacketCodec PACKET_CODEC = LazyRegistryEntryReference.createPacketCodec( + HollowRegistryKeys.COPPER_INSTRUMENT, + CopperInstrument.ENTRY_PACKET_CODEC + ) + .xmap(CopperInstrumentComponent::new, CopperInstrumentComponent::instrument); + + public CopperInstrumentComponent(RegistryKey instrument) { + this(new LazyRegistryEntryReference<>(instrument)); + } + + public CopperInstrumentComponent(RegistryEntry instrument) { + this(new LazyRegistryEntryReference<>(instrument)); + } + + @Override + public void appendTooltip(Item.TooltipContext context, Consumer textConsumer, TooltipType type, ComponentsAccess components) { + RegistryWrapper.WrapperLookup wrapperLookup = context.getRegistryLookup(); + if (wrapperLookup != null) { + Optional> optional = this.getInstrument(wrapperLookup); + if (optional.isPresent()) { + MutableText mutableText = optional.get().value().description().copy(); + Texts.setStyleIfAbsent(mutableText, Style.EMPTY.withColor(Formatting.GRAY)); + textConsumer.accept(mutableText); + } + } + } + + public Optional> getInstrument(RegistryWrapper.WrapperLookup registries) { + return this.instrument.resolveEntry(registries); + } +} diff --git a/src/main/java/dev/spiritstudios/hollow/component/CopperInstruments.java b/src/main/java/dev/spiritstudios/hollow/component/CopperInstruments.java new file mode 100644 index 0000000..92862e9 --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/component/CopperInstruments.java @@ -0,0 +1,40 @@ +package dev.spiritstudios.hollow.component; + +import dev.spiritstudios.hollow.Hollow; +import dev.spiritstudios.hollow.registry.HollowRegistryKeys; +import net.minecraft.registry.Registerable; +import net.minecraft.registry.RegistryKey; + +public final class CopperInstruments { + public static final RegistryKey GREAT_SKY_FALLING = ofKey("great_sky_falling"); + public static final RegistryKey OLD_HYMN_RESTING = ofKey("old_hymn_resting"); + public static final RegistryKey PURE_WATER_DESIRE = ofKey("pure_water_desire"); + public static final RegistryKey HUMBLE_FIRE_MEMORY = ofKey("humble_fire_memory"); + public static final RegistryKey DRY_URGE_ANGER = ofKey("dry_urge_anger"); + public static final RegistryKey CLEAR_TEMPER_JOURNEY = ofKey("clear_temper_journey"); + public static final RegistryKey FRESH_NEST_THOUGHT = ofKey("fresh_nest_thought"); + public static final RegistryKey SECRET_LAKE_TEAR = ofKey("secret_lake_tear"); + public static final RegistryKey FEARLESS_RIVER_GIFT = ofKey("fearless_river_gift"); + public static final RegistryKey SWEET_MOON_LOVE = ofKey("sweet_moon_love"); + + public static void bootstrap(Registerable registerable) { + register(registerable, GREAT_SKY_FALLING, "great", "sky", "falling", 4.0F, 256F); + register(registerable, OLD_HYMN_RESTING, "old", "hymn", "resting", 4.0F, 256F); + register(registerable, PURE_WATER_DESIRE, "pure", "water", "desire", 4.0F, 256F); + register(registerable, HUMBLE_FIRE_MEMORY, "humble", "fire", "memory", 4.0F, 256F); + register(registerable, DRY_URGE_ANGER, "dry", "urge", "anger", 4.0F, 256F); + register(registerable, CLEAR_TEMPER_JOURNEY, "clear", "temper", "journey", 4.0F, 256F); + register(registerable, FRESH_NEST_THOUGHT, "fresh", "nest", "thought", 4.0F, 256F); + register(registerable, SECRET_LAKE_TEAR, "secret", "lake", "tear", 4.0F, 256F); + register(registerable, FEARLESS_RIVER_GIFT, "fearless", "river", "gift", 4.0F, 256F); + register(registerable, SWEET_MOON_LOVE, "sweet", "moon", "love", 4.0F, 256F); + } + + private static void register(Registerable registry, RegistryKey key, String call, String melody, String bass, float useDuration, float range) { + registry.register(key, CopperInstrument.of(Hollow.MODID, call, melody, bass, useDuration, range)); + } + + private static RegistryKey ofKey(String id) { + return RegistryKey.of(HollowRegistryKeys.COPPER_INSTRUMENT, Hollow.id(id)); + } +} diff --git a/src/main/java/dev/spiritstudios/hollow/component/HollowDataComponentTypes.java b/src/main/java/dev/spiritstudios/hollow/component/HollowDataComponentTypes.java new file mode 100644 index 0000000..38ca912 --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/component/HollowDataComponentTypes.java @@ -0,0 +1,11 @@ +package dev.spiritstudios.hollow.component; + +import net.minecraft.component.ComponentType; + +public final class HollowDataComponentTypes { + public static final ComponentType COPPER_INSTRUMENT = ComponentType.builder() + .codec(CopperInstrumentComponent.CODEC) + .packetCodec(CopperInstrumentComponent.PACKET_CODEC) + .cache() + .build(); +} diff --git a/src/main/java/dev/spiritstudios/hollow/datagen/AdvancementProvider.java b/src/main/java/dev/spiritstudios/hollow/datagen/AdvancementProvider.java index 619e6be..a92c37d 100644 --- a/src/main/java/dev/spiritstudios/hollow/datagen/AdvancementProvider.java +++ b/src/main/java/dev/spiritstudios/hollow/datagen/AdvancementProvider.java @@ -1,7 +1,7 @@ package dev.spiritstudios.hollow.datagen; import dev.spiritstudios.hollow.registry.HollowCriteria; -import dev.spiritstudios.hollow.registry.HollowItems; +import dev.spiritstudios.hollow.item.HollowItems; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricAdvancementProvider; import net.minecraft.advancement.Advancement; diff --git a/src/main/java/dev/spiritstudios/hollow/datagen/BlockMetatagProvider.java b/src/main/java/dev/spiritstudios/hollow/datagen/BlockMetatagProvider.java deleted file mode 100644 index d28df55..0000000 --- a/src/main/java/dev/spiritstudios/hollow/datagen/BlockMetatagProvider.java +++ /dev/null @@ -1,57 +0,0 @@ -package dev.spiritstudios.hollow.datagen; - -import dev.spiritstudios.hollow.block.HollowLogBlock; -import dev.spiritstudios.hollow.registry.HollowBlocks; -import dev.spiritstudios.specter.api.block.BlockMetatags; -import dev.spiritstudios.specter.api.block.FlammableBlockData; -import dev.spiritstudios.specter.api.core.reflect.ReflectionHelper; -import dev.spiritstudios.specter.api.registry.metatag.datagen.MetatagProvider; -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; -import net.minecraft.block.Block; -import net.minecraft.data.DataOutput; -import net.minecraft.registry.RegistryWrapper; - -import java.util.concurrent.CompletableFuture; -import java.util.function.Consumer; - -public class BlockMetatagProvider extends MetatagProvider { - protected BlockMetatagProvider(FabricDataOutput dataOutput, CompletableFuture registriesFuture) { - super(dataOutput, registriesFuture, DataOutput.OutputType.DATA_PACK); - } - - @Override - protected void configure(Consumer> provider, RegistryWrapper.WrapperLookup lookup) { - MetatagBuilder flammableBuilder = create(BlockMetatags.FLAMMABLE); - - ReflectionHelper.getStaticFields( - HollowBlocks.class, - HollowLogBlock.class - ).forEach(pair -> - flammableBuilder.put(pair.value(), new FlammableBlockData(5, 5))); - - provider.accept(flammableBuilder); - - provider.accept(create(BlockMetatags.WAXABLE) - .put(HollowBlocks.COPPER_PILLAR, HollowBlocks.WAXED_COPPER_PILLAR) - .put(HollowBlocks.EXPOSED_COPPER_PILLAR, HollowBlocks.WAXED_EXPOSED_COPPER_PILLAR) - .put(HollowBlocks.WEATHERED_COPPER_PILLAR, HollowBlocks.WAXED_WEATHERED_COPPER_PILLAR) - .put(HollowBlocks.OXIDIZED_COPPER_PILLAR, HollowBlocks.WAXED_OXIDIZED_COPPER_PILLAR)); - - provider.accept(create(BlockMetatags.STRIPPABLE) - .put(HollowBlocks.OAK_HOLLOW_LOG, HollowBlocks.STRIPPED_OAK_HOLLOW_LOG) - .put(HollowBlocks.SPRUCE_HOLLOW_LOG, HollowBlocks.STRIPPED_SPRUCE_HOLLOW_LOG) - .put(HollowBlocks.BIRCH_HOLLOW_LOG, HollowBlocks.STRIPPED_BIRCH_HOLLOW_LOG) - .put(HollowBlocks.JUNGLE_HOLLOW_LOG, HollowBlocks.STRIPPED_JUNGLE_HOLLOW_LOG) - .put(HollowBlocks.ACACIA_HOLLOW_LOG, HollowBlocks.STRIPPED_ACACIA_HOLLOW_LOG) - .put(HollowBlocks.DARK_OAK_HOLLOW_LOG, HollowBlocks.STRIPPED_DARK_OAK_HOLLOW_LOG) - .put(HollowBlocks.CRIMSON_HOLLOW_STEM, HollowBlocks.STRIPPED_CRIMSON_HOLLOW_STEM) - .put(HollowBlocks.WARPED_HOLLOW_STEM, HollowBlocks.STRIPPED_WARPED_HOLLOW_STEM) - .put(HollowBlocks.MANGROVE_HOLLOW_LOG, HollowBlocks.STRIPPED_MANGROVE_HOLLOW_LOG) - .put(HollowBlocks.CHERRY_HOLLOW_LOG, HollowBlocks.STRIPPED_CHERRY_HOLLOW_LOG)); - - provider.accept(create(BlockMetatags.OXIDIZABLE) - .put(HollowBlocks.COPPER_PILLAR, HollowBlocks.EXPOSED_COPPER_PILLAR) - .put(HollowBlocks.EXPOSED_COPPER_PILLAR, HollowBlocks.WEATHERED_COPPER_PILLAR) - .put(HollowBlocks.WEATHERED_COPPER_PILLAR, HollowBlocks.OXIDIZED_COPPER_PILLAR)); - } -} diff --git a/src/main/java/dev/spiritstudios/hollow/datagen/ConfiguredFeatureProvider.java b/src/main/java/dev/spiritstudios/hollow/datagen/ConfiguredFeatureProvider.java index 3fbb4cf..72fae44 100644 --- a/src/main/java/dev/spiritstudios/hollow/datagen/ConfiguredFeatureProvider.java +++ b/src/main/java/dev/spiritstudios/hollow/datagen/ConfiguredFeatureProvider.java @@ -1,17 +1,17 @@ package dev.spiritstudios.hollow.datagen; import dev.spiritstudios.hollow.Hollow; -import dev.spiritstudios.hollow.registry.HollowBlocks; -import dev.spiritstudios.hollow.worldgen.decorator.BigBranchTreeDecorator; -import dev.spiritstudios.hollow.worldgen.decorator.BranchTreeDecorator; -import dev.spiritstudios.hollow.worldgen.decorator.PolyporeTreeDecorator; +import dev.spiritstudios.hollow.block.HollowBlocks; +import dev.spiritstudios.hollow.worldgen.tree.decorator.BigBranchTreeDecorator; +import dev.spiritstudios.hollow.worldgen.tree.decorator.BranchTreeDecorator; +import dev.spiritstudios.hollow.worldgen.tree.decorator.PolyporeTreeDecorator; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricDynamicRegistryProvider; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.RegistryWrapper; -import net.minecraft.util.collection.DataPool; +import net.minecraft.util.collection.Pool; import net.minecraft.world.gen.feature.*; import net.minecraft.world.gen.stateprovider.BlockStateProvider; import net.minecraft.world.gen.stateprovider.WeightedBlockStateProvider; @@ -30,7 +30,7 @@ public ConfiguredFeatureProvider(FabricDataOutput output, CompletableFuture> lookup = registries.getWrapperOrThrow(RegistryKeys.CONFIGURED_FEATURE); + RegistryWrapper> lookup = registries.getOrThrow(RegistryKeys.CONFIGURED_FEATURE); lookup.streamKeys() .filter(key -> @@ -86,7 +86,7 @@ protected void configure(RegistryWrapper.WrapperLookup registries, Entries entri entries.add( VegetationConfiguredFeatures.PATCH_WATERLILY, createRandomPatch( - new WeightedBlockStateProvider(DataPool.builder() + new WeightedBlockStateProvider(Pool.builder() .add(Blocks.LILY_PAD.getDefaultState(), 4) .add(HollowBlocks.LOTUS_LILYPAD.getDefaultState(), 1) .build()), @@ -102,7 +102,7 @@ protected void configure(RegistryWrapper.WrapperLookup registries, Entries entri 64, 6, 2, PlacedFeatures.createEntry( Feature.SIMPLE_BLOCK, - new SimpleBlockFeatureConfig(new WeightedBlockStateProvider(DataPool.builder() + new SimpleBlockFeatureConfig(new WeightedBlockStateProvider(Pool.builder() .add(Blocks.BLUE_ORCHID.getDefaultState()) .add(HollowBlocks.ROOTED_ORCHID.getDefaultState()) .build())) @@ -114,6 +114,6 @@ protected void configure(RegistryWrapper.WrapperLookup registries, Entries entri @Override public String getName() { - return "Hollow/Configured Features"; + return "Configured Features"; } } diff --git a/src/main/java/dev/spiritstudios/hollow/datagen/HollowCopperInstrumentProvider.java b/src/main/java/dev/spiritstudios/hollow/datagen/HollowCopperInstrumentProvider.java new file mode 100644 index 0000000..fc89179 --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/datagen/HollowCopperInstrumentProvider.java @@ -0,0 +1,32 @@ +package dev.spiritstudios.hollow.datagen; + +import dev.spiritstudios.hollow.Hollow; +import dev.spiritstudios.hollow.component.CopperInstrument; +import dev.spiritstudios.hollow.registry.HollowRegistryKeys; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricDynamicRegistryProvider; +import net.minecraft.registry.RegistryWrapper; + +import java.util.concurrent.CompletableFuture; + +public class HollowCopperInstrumentProvider extends FabricDynamicRegistryProvider { + public HollowCopperInstrumentProvider(FabricDataOutput output, CompletableFuture registriesFuture) { + super(output, registriesFuture); + } + + @Override + protected void configure(RegistryWrapper.WrapperLookup wrapperLookup, Entries entries) { + RegistryWrapper lookup = wrapperLookup.getOrThrow(HollowRegistryKeys.COPPER_INSTRUMENT); + + lookup.streamKeys() + .filter(key -> + key.getValue().getNamespace().equals(Hollow.MODID)) + .forEach(key -> + entries.add(key, lookup.getOrThrow(key).value())); + } + + @Override + public String getName() { + return "Copper Instruments"; + } +} diff --git a/src/main/java/dev/spiritstudios/hollow/datagen/HollowDamageTypeProvider.java b/src/main/java/dev/spiritstudios/hollow/datagen/HollowDamageTypeProvider.java new file mode 100644 index 0000000..d52528c --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/datagen/HollowDamageTypeProvider.java @@ -0,0 +1,32 @@ +package dev.spiritstudios.hollow.datagen; + +import dev.spiritstudios.hollow.Hollow; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricDynamicRegistryProvider; +import net.minecraft.entity.damage.DamageType; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.RegistryWrapper; + +import java.util.concurrent.CompletableFuture; + +public class HollowDamageTypeProvider extends FabricDynamicRegistryProvider { + public HollowDamageTypeProvider(FabricDataOutput output, CompletableFuture registriesFuture) { + super(output, registriesFuture); + } + + @Override + protected void configure(RegistryWrapper.WrapperLookup wrapperLookup, Entries entries) { + RegistryWrapper lookup = wrapperLookup.getOrThrow(RegistryKeys.DAMAGE_TYPE); + + lookup.streamKeys() + .filter(key -> + key.getValue().getNamespace().equals(Hollow.MODID)) + .forEach(key -> + entries.add(key, lookup.getOrThrow(key).value())); + } + + @Override + public String getName() { + return "Damage Types"; + } +} diff --git a/src/main/java/dev/spiritstudios/hollow/datagen/HollowJukeboxSongProvider.java b/src/main/java/dev/spiritstudios/hollow/datagen/HollowJukeboxSongProvider.java new file mode 100644 index 0000000..32b4321 --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/datagen/HollowJukeboxSongProvider.java @@ -0,0 +1,32 @@ +package dev.spiritstudios.hollow.datagen; + +import dev.spiritstudios.hollow.Hollow; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricDynamicRegistryProvider; +import net.minecraft.block.jukebox.JukeboxSong; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.RegistryWrapper; + +import java.util.concurrent.CompletableFuture; + +public class HollowJukeboxSongProvider extends FabricDynamicRegistryProvider { + public HollowJukeboxSongProvider(FabricDataOutput output, CompletableFuture registriesFuture) { + super(output, registriesFuture); + } + + @Override + protected void configure(RegistryWrapper.WrapperLookup wrapperLookup, Entries entries) { + RegistryWrapper lookup = wrapperLookup.getOrThrow(RegistryKeys.JUKEBOX_SONG); + + lookup.streamKeys() + .filter(key -> + key.getValue().getNamespace().equals(Hollow.MODID)) + .forEach(key -> + entries.add(key, lookup.getOrThrow(key).value())); + } + + @Override + public String getName() { + return "Jukebox Songs"; + } +} diff --git a/src/main/java/dev/spiritstudios/hollow/datagen/HollowRecipeProvider.java b/src/main/java/dev/spiritstudios/hollow/datagen/HollowRecipeProvider.java new file mode 100644 index 0000000..bb97369 --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/datagen/HollowRecipeProvider.java @@ -0,0 +1,188 @@ +package dev.spiritstudios.hollow.datagen; + +import dev.spiritstudios.hollow.Hollow; +import dev.spiritstudios.hollow.block.HollowBlocks; +import dev.spiritstudios.hollow.block.OxidizablePillarBlock; +import dev.spiritstudios.hollow.component.CopperInstrument; +import dev.spiritstudios.hollow.component.CopperInstrumentComponent; +import dev.spiritstudios.hollow.component.CopperInstruments; +import dev.spiritstudios.hollow.component.HollowDataComponentTypes; +import dev.spiritstudios.hollow.item.HollowItems; +import dev.spiritstudios.hollow.registry.HollowRegistryKeys; +import dev.spiritstudios.specter.api.item.datagen.SpecterShapedRecipeJsonBuilder; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; +import net.fabricmc.fabric.api.recipe.v1.ingredient.DefaultCustomIngredients; +import net.fabricmc.fabric.api.tag.convention.v2.ConventionalItemTags; +import net.minecraft.block.Block; +import net.minecraft.block.Blocks; +import net.minecraft.component.DataComponentTypes; +import net.minecraft.component.type.InstrumentComponent; +import net.minecraft.data.recipe.RecipeExporter; +import net.minecraft.data.recipe.RecipeGenerator; +import net.minecraft.item.HoneycombItem; +import net.minecraft.item.Instrument; +import net.minecraft.item.Instruments; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.recipe.Ingredient; +import net.minecraft.recipe.book.RecipeCategory; +import net.minecraft.registry.RegistryEntryLookup; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.RegistryWrapper; +import net.minecraft.registry.tag.ItemTags; +import net.minecraft.registry.tag.TagKey; + +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +public class HollowRecipeProvider extends FabricRecipeProvider { + public HollowRecipeProvider(FabricDataOutput output, CompletableFuture registriesFuture) { + super(output, registriesFuture); + } + + @Override + protected RecipeGenerator getRecipeGenerator(RegistryWrapper.WrapperLookup wrapperLookup, RecipeExporter exporter) { + return new RecipeGenerator(wrapperLookup, exporter) { + @Override + public void generate() { + createHollowLogRecipe(HollowBlocks.OAK_HOLLOW_LOG, ItemTags.OAK_LOGS); + createHollowLogRecipe(HollowBlocks.SPRUCE_HOLLOW_LOG, ItemTags.SPRUCE_LOGS); + createHollowLogRecipe(HollowBlocks.BIRCH_HOLLOW_LOG, ItemTags.BIRCH_LOGS); + createHollowLogRecipe(HollowBlocks.JUNGLE_HOLLOW_LOG, ItemTags.JUNGLE_LOGS); + createHollowLogRecipe(HollowBlocks.ACACIA_HOLLOW_LOG, ItemTags.ACACIA_LOGS); + createHollowLogRecipe(HollowBlocks.DARK_OAK_HOLLOW_LOG, ItemTags.DARK_OAK_LOGS); + createHollowLogRecipe(HollowBlocks.CRIMSON_HOLLOW_STEM, ItemTags.CRIMSON_STEMS); + createHollowLogRecipe(HollowBlocks.WARPED_HOLLOW_STEM, ItemTags.WARPED_STEMS); + createHollowLogRecipe(HollowBlocks.MANGROVE_HOLLOW_LOG, ItemTags.MANGROVE_LOGS); + createHollowLogRecipe(HollowBlocks.CHERRY_HOLLOW_LOG, ItemTags.CHERRY_LOGS); + createHollowLogRecipe(HollowBlocks.PALE_OAK_HOLLOW_LOG, ItemTags.PALE_OAK_LOGS); + + HoneycombItem.UNWAXED_TO_WAXED_BLOCKS.get().forEach( + (unWaxed, waxed) -> { + if (!(unWaxed instanceof OxidizablePillarBlock)) return; + + createShapeless(RecipeCategory.BUILDING_BLOCKS, waxed) + .input(unWaxed) + .input(Items.HONEYCOMB) + .group(getItemPath(waxed)) + .criterion(hasItem(unWaxed), conditionsFromItem(unWaxed)) + .offerTo(exporter, convertBetween(waxed, Items.HONEYCOMB)); + } + ); + + createCopperHornRecipe(Instruments.PONDER_GOAT_HORN, CopperInstruments.GREAT_SKY_FALLING); + createCopperHornRecipe(Instruments.SING_GOAT_HORN, CopperInstruments.OLD_HYMN_RESTING); + createCopperHornRecipe(Instruments.SEEK_GOAT_HORN, CopperInstruments.PURE_WATER_DESIRE); + createCopperHornRecipe(Instruments.FEEL_GOAT_HORN, CopperInstruments.HUMBLE_FIRE_MEMORY); + createCopperHornRecipe(Instruments.ADMIRE_GOAT_HORN, CopperInstruments.DRY_URGE_ANGER); + createCopperHornRecipe(Instruments.CALL_GOAT_HORN, CopperInstruments.CLEAR_TEMPER_JOURNEY); + createCopperHornRecipe(Instruments.YEARN_GOAT_HORN, CopperInstruments.FRESH_NEST_THOUGHT); + createCopperHornRecipe(Instruments.DREAM_GOAT_HORN, CopperInstruments.SECRET_LAKE_TEAR); + + Map.of( + HollowBlocks.COPPER_PILLAR, Blocks.CUT_COPPER_SLAB, + HollowBlocks.EXPOSED_COPPER_PILLAR, Blocks.EXPOSED_CUT_COPPER_SLAB, + HollowBlocks.WEATHERED_COPPER_PILLAR, Blocks.WEATHERED_CUT_COPPER_SLAB, + HollowBlocks.OXIDIZED_COPPER_PILLAR, Blocks.OXIDIZED_CUT_COPPER_SLAB, + + HollowBlocks.WAXED_COPPER_PILLAR, Blocks.WAXED_CUT_COPPER_SLAB, + HollowBlocks.WAXED_EXPOSED_COPPER_PILLAR, Blocks.WAXED_EXPOSED_CUT_COPPER_SLAB, + HollowBlocks.WAXED_WEATHERED_COPPER_PILLAR, Blocks.WAXED_WEATHERED_CUT_COPPER_SLAB, + HollowBlocks.WAXED_OXIDIZED_COPPER_PILLAR, Blocks.WAXED_OXIDIZED_CUT_COPPER_SLAB + ).forEach( + (pillar, slab) -> createShaped(RecipeCategory.BUILDING_BLOCKS, pillar) + .input('#', slab) + .pattern("##") + .criterion(hasItem(slab), conditionsFromItem(slab)) + .offerTo(exporter) + ); + + createShaped(RecipeCategory.BUILDING_BLOCKS, HollowBlocks.ECHOING_POT) + .input('P', Items.POLISHED_DEEPSLATE) + .input('C', Items.CHISELED_DEEPSLATE) + .input('E', Items.ECHO_SHARD) + .pattern("P P") + .pattern("CEC") + .pattern("CCC") + .criterion(hasItem(Items.ECHO_SHARD), conditionsFromItem(Items.ECHO_SHARD)) + .offerTo(exporter); + + createShaped(RecipeCategory.BUILDING_BLOCKS, HollowBlocks.JAR, 4) + .input('P', HollowBlocks.POLYPORE) + .input('G', ConventionalItemTags.GLASS_BLOCKS) + .pattern(" P ") + .pattern("G G") + .pattern(" G ") + .criterion(hasItem(HollowBlocks.POLYPORE), conditionsFromItem(HollowBlocks.POLYPORE)) + .offerTo(exporter); + + createShapeless(RecipeCategory.MISC, Items.LIGHT_BLUE_DYE) + .input(HollowBlocks.ROOTED_ORCHID) + .criterion(hasItem(HollowBlocks.ROOTED_ORCHID), conditionsFromItem(HollowBlocks.ROOTED_ORCHID)) + .offerTo(exporter, "light_blue_dye_from_rooted_orchid"); + + createShapeless(RecipeCategory.MISC, Items.PINK_DYE) + .input(HollowBlocks.PAEONIA) + .criterion(hasItem(HollowBlocks.PAEONIA), conditionsFromItem(HollowBlocks.PAEONIA)) + .offerTo(exporter, "pink_dye_from_paeonia"); + + createShapeless(RecipeCategory.MISC, Items.WHITE_DYE, 2) + .input(HollowBlocks.CAMPION) + .criterion(hasItem(HollowBlocks.CAMPION), conditionsFromItem(HollowBlocks.CAMPION)) + .offerTo(exporter, "white_dye_from_campion"); + } + + private void createHollowLogRecipe(Block block, TagKey LogBlock) { + createShaped(RecipeCategory.DECORATIONS, block, 8) + .criterion("has_logs", conditionsFromTag(LogBlock)) + .input('#', LogBlock) + .pattern("###") + .pattern("# #") + .pattern("###") + .offerTo(exporter); + } + + public void createCopperHornRecipe(RegistryKey goat, RegistryKey copper) { + RegistryEntryLookup instrumentLookup = wrapperLookup.getOrThrow(RegistryKeys.INSTRUMENT); + RegistryEntryLookup copperInstrumentLookup = wrapperLookup.getOrThrow(HollowRegistryKeys.COPPER_INSTRUMENT); + + ItemStack stack = new ItemStack(HollowItems.COPPER_HORN); + stack.set( + HollowDataComponentTypes.COPPER_INSTRUMENT, + new CopperInstrumentComponent(copperInstrumentLookup.getOrThrow(copper)) + ); + + SpecterShapedRecipeJsonBuilder.create(wrapperLookup.getOrThrow(RegistryKeys.ITEM), RecipeCategory.TOOLS, stack) + .group("hollow_copper_horn") + .input('#', Ingredient.ofItems(Items.COPPER_INGOT)) + .input('G', DefaultCustomIngredients.components( + Ingredient.ofItems(Items.GOAT_HORN), + changes -> changes.add( + DataComponentTypes.INSTRUMENT, + new InstrumentComponent(instrumentLookup.getOrThrow(goat)) + ) + + )) + .pattern("#G#") + .pattern(" # ") + .criterion("has_goat_horn", conditionsFromItem(Items.GOAT_HORN)) + .offerTo( + exporter, + RegistryKey.of( + RegistryKeys.RECIPE, + Hollow.id("copper_horn_" + copper.getValue().toUnderscoreSeparatedString()) + ) + ); + } + + }; + } + + @Override + public String getName() { + return ""; + } +} diff --git a/src/main/java/dev/spiritstudios/hollow/datagen/LootTableProvider.java b/src/main/java/dev/spiritstudios/hollow/datagen/LootTableProvider.java index 0a42c94..185b9c5 100644 --- a/src/main/java/dev/spiritstudios/hollow/datagen/LootTableProvider.java +++ b/src/main/java/dev/spiritstudios/hollow/datagen/LootTableProvider.java @@ -2,19 +2,16 @@ import dev.spiritstudios.hollow.block.HollowLogBlock; import dev.spiritstudios.hollow.block.PolyporeBlock; -import dev.spiritstudios.hollow.registry.HollowBlocks; +import dev.spiritstudios.hollow.block.HollowBlocks; import dev.spiritstudios.specter.api.core.reflect.ReflectionHelper; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricBlockLootTableProvider; -import net.minecraft.block.Blocks; -import net.minecraft.block.SeaPickleBlock; import net.minecraft.block.TallPlantBlock; import net.minecraft.block.enums.DoubleBlockHalf; import net.minecraft.loot.LootPool; import net.minecraft.loot.LootTable; import net.minecraft.loot.condition.BlockStatePropertyLootCondition; import net.minecraft.loot.entry.ItemEntry; -import net.minecraft.loot.entry.LootPoolEntry; import net.minecraft.loot.function.SetCountLootFunction; import net.minecraft.loot.provider.number.ConstantLootNumberProvider; import net.minecraft.predicate.StatePredicate; @@ -33,22 +30,21 @@ protected LootTableProvider(FabricDataOutput dataOutput, CompletableFuture this.dropsWithProperty(block, TallPlantBlock.HALF, DoubleBlockHalf.LOWER)); -// this.addDrop(HollowBlocks.PURPLE_WILDFLOWER, this.flowerbedDrops(HollowBlocks.PURPLE_WILDFLOWER)); -// this.addDrop(HollowBlocks.WHITE_WILDFLOWER, this.flowerbedDrops(HollowBlocks.WHITE_WILDFLOWER)); -// this.addDrop(HollowBlocks.BLUE_WILDFLOWER, this.flowerbedDrops(HollowBlocks.BLUE_WILDFLOWER)); -// this.addDrop(HollowBlocks.PINK_WILDFLOWER, this.flowerbedDrops(HollowBlocks.PINK_WILDFLOWER)); this.addDrop(HollowBlocks.PAEONIA); this.addPottedPlantDrops(HollowBlocks.POTTED_PAEONIA); + this.addDrop(HollowBlocks.ROOTED_ORCHID); this.addPottedPlantDrops(HollowBlocks.POTTED_ROOTED_ORCHID); @@ -67,9 +63,12 @@ public void generate() { )))) ); - this.addDrop(HollowBlocks.FIREFLY_JAR); - this.addDrop(HollowBlocks.JAR, this.nameableContainerDrops(HollowBlocks.JAR)); - + this.addDropWithSilkTouch(HollowBlocks.FIREFLY_JAR); + this.addDrop( + HollowBlocks.JAR, + this.nameableContainerDrops(HollowBlocks.JAR) + .modifyPools(pool -> pool.conditionally(this.createSilkTouchCondition())) + ); ReflectionHelper.getStaticFields( HollowBlocks.class, diff --git a/src/main/java/dev/spiritstudios/hollow/datagen/MetatagProviders.java b/src/main/java/dev/spiritstudios/hollow/datagen/MetatagProviders.java new file mode 100644 index 0000000..65be08d --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/datagen/MetatagProviders.java @@ -0,0 +1,87 @@ +package dev.spiritstudios.hollow.datagen; + +import dev.spiritstudios.hollow.block.HollowLogBlock; +import dev.spiritstudios.hollow.block.HollowBlocks; +import dev.spiritstudios.specter.api.block.BlockMetatags; +import dev.spiritstudios.specter.api.block.FlammableBlockData; +import dev.spiritstudios.specter.api.core.reflect.ReflectionHelper; +import dev.spiritstudios.specter.api.item.ItemMetatags; +import dev.spiritstudios.specter.api.registry.metatag.datagen.MetatagProvider; +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.minecraft.block.Block; +import net.minecraft.data.DataOutput; +import net.minecraft.item.Item; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.RegistryWrapper; + +import java.util.concurrent.CompletableFuture; +import java.util.function.Consumer; + +public class MetatagProviders { + public static void addAll(FabricDataGenerator.Pack pack) { + pack.addProvider(MetatagProviders.BlockMetatagProvider::new); + pack.addProvider(MetatagProviders.ItemMetatagProvider::new); + } + + public static class BlockMetatagProvider extends MetatagProvider { + protected BlockMetatagProvider(FabricDataOutput dataOutput, CompletableFuture registriesFuture) { + super(dataOutput, RegistryKeys.BLOCK, registriesFuture, DataOutput.OutputType.DATA_PACK); + } + + @Override + protected void configure(Consumer> provider, RegistryWrapper.WrapperLookup lookup) { + MetatagBuilder flammableBuilder = create(BlockMetatags.FLAMMABLE); + + ReflectionHelper.getStaticFields( + HollowBlocks.class, + HollowLogBlock.class + ).forEach(pair -> + flammableBuilder.put(pair.value(), new FlammableBlockData(5, 5))); + + provider.accept(flammableBuilder); + + provider.accept(create(BlockMetatags.WAXABLE) + .put(HollowBlocks.COPPER_PILLAR, HollowBlocks.WAXED_COPPER_PILLAR) + .put(HollowBlocks.EXPOSED_COPPER_PILLAR, HollowBlocks.WAXED_EXPOSED_COPPER_PILLAR) + .put(HollowBlocks.WEATHERED_COPPER_PILLAR, HollowBlocks.WAXED_WEATHERED_COPPER_PILLAR) + .put(HollowBlocks.OXIDIZED_COPPER_PILLAR, HollowBlocks.WAXED_OXIDIZED_COPPER_PILLAR)); + + provider.accept(create(BlockMetatags.OXIDIZABLE) + .put(HollowBlocks.COPPER_PILLAR, HollowBlocks.EXPOSED_COPPER_PILLAR) + .put(HollowBlocks.EXPOSED_COPPER_PILLAR, HollowBlocks.WEATHERED_COPPER_PILLAR) + .put(HollowBlocks.WEATHERED_COPPER_PILLAR, HollowBlocks.OXIDIZED_COPPER_PILLAR)); + + provider.accept(create(BlockMetatags.STRIPPABLE) + .put(HollowBlocks.OAK_HOLLOW_LOG, HollowBlocks.STRIPPED_OAK_HOLLOW_LOG) + .put(HollowBlocks.SPRUCE_HOLLOW_LOG, HollowBlocks.STRIPPED_SPRUCE_HOLLOW_LOG) + .put(HollowBlocks.BIRCH_HOLLOW_LOG, HollowBlocks.STRIPPED_BIRCH_HOLLOW_LOG) + .put(HollowBlocks.JUNGLE_HOLLOW_LOG, HollowBlocks.STRIPPED_JUNGLE_HOLLOW_LOG) + .put(HollowBlocks.ACACIA_HOLLOW_LOG, HollowBlocks.STRIPPED_ACACIA_HOLLOW_LOG) + .put(HollowBlocks.DARK_OAK_HOLLOW_LOG, HollowBlocks.STRIPPED_DARK_OAK_HOLLOW_LOG) + .put(HollowBlocks.CRIMSON_HOLLOW_STEM, HollowBlocks.STRIPPED_CRIMSON_HOLLOW_STEM) + .put(HollowBlocks.WARPED_HOLLOW_STEM, HollowBlocks.STRIPPED_WARPED_HOLLOW_STEM) + .put(HollowBlocks.MANGROVE_HOLLOW_LOG, HollowBlocks.STRIPPED_MANGROVE_HOLLOW_LOG) + .put(HollowBlocks.CHERRY_HOLLOW_LOG, HollowBlocks.STRIPPED_CHERRY_HOLLOW_LOG) + .put(HollowBlocks.PALE_OAK_HOLLOW_LOG, HollowBlocks.STRIPPED_PALE_OAK_HOLLOW_LOG)); + } + } + + public static class ItemMetatagProvider extends MetatagProvider { + protected ItemMetatagProvider(FabricDataOutput dataOutput, CompletableFuture registriesFuture) { + super(dataOutput, RegistryKeys.ITEM, registriesFuture, DataOutput.OutputType.DATA_PACK); + } + + @Override + protected void configure(Consumer> consumer, RegistryWrapper.WrapperLookup wrapperLookup) { + consumer.accept(create(ItemMetatags.COMPOSTING_CHANCE) + .put(HollowBlocks.ROOTED_ORCHID.asItem(), 0.65F) + .put(HollowBlocks.PAEONIA.asItem(), 0.65F) + .put(HollowBlocks.POLYPORE.asItem(), 0.65F) + .put(HollowBlocks.CAMPION.asItem(), 0.65F) + .put(HollowBlocks.CATTAIL.asItem(), 0.65F) + .put(HollowBlocks.LOTUS_LILYPAD.asItem(), 0.75F) + .put(HollowBlocks.GIANT_LILYPAD.asItem(), 0.85F)); + } + } +} diff --git a/src/main/java/dev/spiritstudios/hollow/datagen/ModelProvider.java b/src/main/java/dev/spiritstudios/hollow/datagen/ModelProvider.java deleted file mode 100644 index 5202cc5..0000000 --- a/src/main/java/dev/spiritstudios/hollow/datagen/ModelProvider.java +++ /dev/null @@ -1,347 +0,0 @@ -package dev.spiritstudios.hollow.datagen; - -import com.google.common.collect.ImmutableMap; -import dev.spiritstudios.hollow.block.GiantLilyPadBlock; -import dev.spiritstudios.hollow.block.HollowLogBlock; -import dev.spiritstudios.hollow.block.SculkJawBlock; -import dev.spiritstudios.hollow.registry.HollowBlocks; -import dev.spiritstudios.hollow.registry.HollowItems; -import dev.spiritstudios.specter.api.core.reflect.ReflectionHelper; -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; -import net.fabricmc.fabric.api.datagen.v1.provider.FabricModelProvider; -import net.minecraft.block.Block; -import net.minecraft.block.Blocks; -import net.minecraft.data.client.*; -import net.minecraft.state.property.Properties; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.Direction; - -import java.util.Map; -import java.util.Optional; - -import static dev.spiritstudios.hollow.Hollow.MODID; - -public class ModelProvider extends FabricModelProvider { - public static final Model HOLLOW_LOG = new Model(Optional.of(Identifier.of(MODID, "block/" + "hollow_log_template")), Optional.empty(), TextureKey.SIDE, TextureKey.INSIDE, TextureKey.END); - public static final Model HOLLOW_LOG_HORIZONTAL = new Model(Optional.of(Identifier.of(MODID, "block/" + "hollow_log_horizontal_template")), Optional.of("_horizontal"), TextureKey.SIDE, TextureKey.INSIDE, TextureKey.END); - public static final Model HOLLOW_LOG_HORIZONTAL_MOSSY = new Model(Optional.of(Identifier.of(MODID, "block/" + "hollow_log_horizontal_mossy_template")), Optional.of("_horizontal_mossy"), TextureKey.SIDE, TextureKey.INSIDE, TextureKey.END); - - public ModelProvider(FabricDataOutput output) { - super(output); - } - - @Override - public void generateBlockStateModels(BlockStateModelGenerator generator) { - ReflectionHelper.getStaticFields(HollowBlocks.class, HollowLogBlock.class) - .forEach(pair -> registerHollowLog(generator, pair.value())); - - generator.registerFlowerPotPlant(HollowBlocks.PAEONIA, HollowBlocks.POTTED_PAEONIA, BlockStateModelGenerator.TintType.NOT_TINTED); - generator.registerFlowerPotPlant(HollowBlocks.ROOTED_ORCHID, HollowBlocks.POTTED_ROOTED_ORCHID, BlockStateModelGenerator.TintType.NOT_TINTED); - - Identifier campionTop = generator.createSubModel(HollowBlocks.CAMPION, "_top", BlockStateModelGenerator.TintType.NOT_TINTED.getCrossModel(), TextureMap::cross); - Identifier campionBottom = generator.createSubModel(HollowBlocks.CAMPION, "_bottom", BlockStateModelGenerator.TintType.NOT_TINTED.getCrossModel(), TextureMap::cross); - - generator.registerDoubleBlock(HollowBlocks.CAMPION, campionTop, campionBottom); - generator.registerItemModel(HollowBlocks.CAMPION.asItem()); - - generator.blockStateCollector.accept(BlockStateModelGenerator.createBlockStateWithRandomHorizontalRotations(HollowBlocks.TWIG, ModelIds.getBlockModelId(HollowBlocks.TWIG))); - generator.registerItemModel(HollowBlocks.TWIG); - - Models.GENERATED_TWO_LAYERS.upload( - ModelIds.getItemModelId(HollowItems.LOTUS_LILYPAD), - TextureMap.layered( - TextureMap.getId(Blocks.LILY_PAD), - TextureMap.getId(HollowItems.LOTUS_LILYPAD) - ), - generator.modelCollector - ); - generator.blockStateCollector.accept(BlockStateModelGenerator.createBlockStateWithRandomHorizontalRotations(HollowBlocks.LOTUS_LILYPAD, ModelIds.getBlockModelId(HollowBlocks.LOTUS_LILYPAD))); - - generator.blockStateCollector.accept( - VariantsBlockStateSupplier.create(HollowBlocks.ECHOING_POT, BlockStateVariant.create().put(VariantSettings.MODEL, ModelIds.getBlockModelId(HollowBlocks.ECHOING_POT))) - .coordinate(BlockStateModelGenerator.createNorthDefaultHorizontalRotationStates())); - - registerSculkJaw(generator); - - generator.registerItemModel(HollowItems.GIANT_LILYPAD); - createGiantLilyPadBlockState(generator); - - generator.registerItemModel(HollowBlocks.CATTAIL, "_top"); - generator.registerTintableCrossBlockState( - HollowBlocks.CATTAIL, - BlockStateModelGenerator.TintType.NOT_TINTED, - TextureMap.cross(TextureMap.getSubId(HollowBlocks.CATTAIL, "_top")) - ); - - generator.registerAxisRotated(HollowBlocks.COPPER_PILLAR, TexturedModel.END_FOR_TOP_CUBE_COLUMN, TexturedModel.END_FOR_TOP_CUBE_COLUMN_HORIZONTAL); - generator.registerAxisRotated(HollowBlocks.EXPOSED_COPPER_PILLAR, TexturedModel.END_FOR_TOP_CUBE_COLUMN, TexturedModel.END_FOR_TOP_CUBE_COLUMN_HORIZONTAL); - generator.registerAxisRotated(HollowBlocks.WEATHERED_COPPER_PILLAR, TexturedModel.END_FOR_TOP_CUBE_COLUMN, TexturedModel.END_FOR_TOP_CUBE_COLUMN_HORIZONTAL); - generator.registerAxisRotated(HollowBlocks.OXIDIZED_COPPER_PILLAR, TexturedModel.END_FOR_TOP_CUBE_COLUMN, TexturedModel.END_FOR_TOP_CUBE_COLUMN_HORIZONTAL); - - registerCopperPillarWaxed(generator, HollowBlocks.WAXED_COPPER_PILLAR, HollowBlocks.COPPER_PILLAR); - registerCopperPillarWaxed(generator, HollowBlocks.WAXED_EXPOSED_COPPER_PILLAR, HollowBlocks.EXPOSED_COPPER_PILLAR); - registerCopperPillarWaxed(generator, HollowBlocks.WAXED_WEATHERED_COPPER_PILLAR, HollowBlocks.WEATHERED_COPPER_PILLAR); - registerCopperPillarWaxed(generator, HollowBlocks.WAXED_OXIDIZED_COPPER_PILLAR, HollowBlocks.OXIDIZED_COPPER_PILLAR); - - generator.registerItemModel(HollowBlocks.JAR.asItem()); - generator.registerSimpleState(HollowBlocks.JAR); - - generator.registerItemModel(HollowBlocks.FIREFLY_JAR.asItem()); - generator.registerStateWithModelReference(HollowBlocks.FIREFLY_JAR, HollowBlocks.JAR); - -// registerFlowerbed(generator, HollowBlocks.PINK_WILDFLOWER); -// registerFlowerbed(generator, HollowBlocks.BLUE_WILDFLOWER); -// registerFlowerbed(generator, HollowBlocks.WHITE_WILDFLOWER); -// registerFlowerbed(generator, HollowBlocks.PURPLE_WILDFLOWER); - } - - @Override - public void generateItemModels(ItemModelGenerator generator) { - generator.register(HollowBlocks.POLYPORE.asItem(), Models.GENERATED); - generator.register(HollowItems.MUSIC_DISC_POSTMORTEM, Models.GENERATED); - - generator.writer.accept( - ModelIds.getItemModelId(HollowItems.FIREFLY_SPAWN_EGG), - new SimpleModelSupplier(ModelIds.getMinecraftNamespacedItem("template_spawn_egg")) - ); - } - - // region Helpers - public final void registerSculkJaw(BlockStateModelGenerator generator) { - Identifier inactive = Models.CUBE_TOP.upload( - HollowBlocks.SCULK_JAW, - new TextureMap() - .put(TextureKey.TOP, TextureMap.getId(HollowBlocks.SCULK_JAW)) - .put(TextureKey.SIDE, TextureMap.getId(Blocks.SCULK)), - generator.modelCollector - ); - - Identifier active = Models.CUBE_TOP.upload( - ModelIds.getBlockSubModelId(HollowBlocks.SCULK_JAW, "_active"), - new TextureMap() - .put(TextureKey.TOP, TextureMap.getSubId(HollowBlocks.SCULK_JAW, "_active")) - .put(TextureKey.SIDE, TextureMap.getId(Blocks.SCULK)), - generator.modelCollector - ); - - generator.blockStateCollector.accept(VariantsBlockStateSupplier.create(HollowBlocks.SCULK_JAW) - .coordinate(BlockStateModelGenerator.createBooleanModelMap( - SculkJawBlock.ACTIVE, - active, inactive - ))); - } - - private static void registerHollowLog(BlockStateModelGenerator generator, HollowLogBlock block) { - TextureMap textureMap = new TextureMap().put(TextureKey.SIDE, block.typeData.sideTexture()).put(TextureKey.INSIDE, block.typeData.insideTexture()).put(TextureKey.END, block.typeData.endTexture()); - Identifier hollowLog = HOLLOW_LOG.upload(block, textureMap, generator.modelCollector); - Identifier hollowLogHorizontal = HOLLOW_LOG_HORIZONTAL.upload(block, textureMap, generator.modelCollector); - Identifier hollowLogHorizontalMossy = HOLLOW_LOG_HORIZONTAL_MOSSY.upload(block, textureMap, generator.modelCollector); - - generator.blockStateCollector.accept(createAxisRotatedBlockStateWithMossy(block, hollowLog, hollowLogHorizontal, hollowLogHorizontalMossy)); - } - - private static void registerCopperPillarWaxed(BlockStateModelGenerator blockStateModelGenerator, Block block, Block unWaxed) { - blockStateModelGenerator.registerAxisRotated( - block, - TexturedModel.makeFactory((Block b) -> TextureMap.sideAndEndForTop(unWaxed), Models.CUBE_COLUMN), - TexturedModel.makeFactory((Block b) -> TextureMap.sideAndEndForTop(unWaxed), Models.CUBE_COLUMN_HORIZONTAL) - ); - } - - private static void createGiantLilyPadBlockState(BlockStateModelGenerator blockStateModelGenerator) { - Identifier[] modelIds = new Identifier[4]; - for (int i = 0; i < 4; i++) { - TextureMap textureMap = new TextureMap().put(TextureKey.TEXTURE, Identifier.of(MODID, "block/giant_lilypad_" + i)); - Model model = new Model(Optional.of(Identifier.of(MODID, "block/giant_lilypad_template")), Optional.of("_" + i), TextureKey.TEXTURE); - modelIds[i] = model.upload(HollowBlocks.GIANT_LILYPAD, textureMap, blockStateModelGenerator.modelCollector); - } - - Map north = ImmutableMap.of( - GiantLilyPadBlock.Piece.NORTH_WEST, modelIds[1], - GiantLilyPadBlock.Piece.NORTH_EAST, modelIds[0], - GiantLilyPadBlock.Piece.SOUTH_EAST, modelIds[3], - GiantLilyPadBlock.Piece.SOUTH_WEST, modelIds[2] - ); - - Map south = ImmutableMap.of( - GiantLilyPadBlock.Piece.NORTH_WEST, modelIds[3], - GiantLilyPadBlock.Piece.NORTH_EAST, modelIds[2], - GiantLilyPadBlock.Piece.SOUTH_EAST, modelIds[1], - GiantLilyPadBlock.Piece.SOUTH_WEST, modelIds[0] - ); - - Map east = ImmutableMap.of( - GiantLilyPadBlock.Piece.NORTH_WEST, modelIds[2], - GiantLilyPadBlock.Piece.NORTH_EAST, modelIds[1], - GiantLilyPadBlock.Piece.SOUTH_EAST, modelIds[0], - GiantLilyPadBlock.Piece.SOUTH_WEST, modelIds[3] - ); - - Map west = ImmutableMap.of( - GiantLilyPadBlock.Piece.NORTH_WEST, modelIds[0], - GiantLilyPadBlock.Piece.NORTH_EAST, modelIds[3], - GiantLilyPadBlock.Piece.SOUTH_EAST, modelIds[2], - GiantLilyPadBlock.Piece.SOUTH_WEST, modelIds[1] - ); - - BlockStateSupplier supplier = VariantsBlockStateSupplier.create(HollowBlocks.GIANT_LILYPAD).coordinate( - BlockStateVariantMap.create(GiantLilyPadBlock.FACING, GiantLilyPadBlock.PIECE).register( - (direction, piece) -> { - BlockStateVariant variant = BlockStateVariant.create(); - switch (direction) { - case NORTH -> variant.put(VariantSettings.MODEL, north.get(piece)); - case SOUTH -> { - variant.put(VariantSettings.MODEL, south.get(piece)); - variant.put(VariantSettings.Y, VariantSettings.Rotation.R180); - } - - case EAST -> { - variant.put(VariantSettings.MODEL, east.get(piece)); - variant.put(VariantSettings.Y, VariantSettings.Rotation.R90); - } - - case WEST -> { - variant.put(VariantSettings.MODEL, west.get(piece)); - variant.put(VariantSettings.Y, VariantSettings.Rotation.R270); - } - } - - return variant; - } - ) - ); - - blockStateModelGenerator.blockStateCollector.accept(supplier); - blockStateModelGenerator.excludeFromSimpleItemModelGeneration(HollowBlocks.GIANT_LILYPAD); - } - - private static BlockStateSupplier createAxisRotatedBlockStateWithMossy(Block block, Identifier verticalModelId, Identifier horizontalModelId, Identifier horizontalMossyModelId) { - return VariantsBlockStateSupplier.create(block) - .coordinate( - BlockStateVariantMap.create(Properties.AXIS, HollowLogBlock.MOSSY) - .register(Direction.Axis.Y, false, BlockStateVariant.create().put(VariantSettings.MODEL, verticalModelId)) - .register(Direction.Axis.Z, false, BlockStateVariant.create().put(VariantSettings.MODEL, horizontalModelId).put(VariantSettings.X, VariantSettings.Rotation.R90)) - .register( - Direction.Axis.X, - false, - BlockStateVariant.create() - .put(VariantSettings.MODEL, horizontalModelId) - .put(VariantSettings.X, VariantSettings.Rotation.R90) - .put(VariantSettings.Y, VariantSettings.Rotation.R90) - ) - .register(Direction.Axis.Y, true, BlockStateVariant.create().put(VariantSettings.MODEL, verticalModelId)) - .register(Direction.Axis.Z, true, BlockStateVariant.create().put(VariantSettings.MODEL, horizontalMossyModelId).put(VariantSettings.X, VariantSettings.Rotation.R90)) - .register( - Direction.Axis.X, - true, - BlockStateVariant.create() - .put(VariantSettings.MODEL, horizontalMossyModelId) - .put(VariantSettings.X, VariantSettings.Rotation.R90) - .put(VariantSettings.Y, VariantSettings.Rotation.R90) - ) - ); - } - - public static final TexturedModel.Factory FLOWERBED_1 = TexturedModel.makeFactory( - block -> new TextureMap() - .put(TextureKey.FLOWERBED, TextureMap.getId(block)) - .put(TextureKey.STEM, Identifier.ofVanilla("block/pink_petals_stem")), - Models.FLOWERBED_1 - ); - public static final TexturedModel.Factory FLOWERBED_2 = TexturedModel.makeFactory( - block -> new TextureMap() - .put(TextureKey.FLOWERBED, TextureMap.getId(block)) - .put(TextureKey.STEM, Identifier.ofVanilla("block/pink_petals_stem")), - Models.FLOWERBED_2 - ); - public static final TexturedModel.Factory FLOWERBED_3 = TexturedModel.makeFactory( - block -> new TextureMap() - .put(TextureKey.FLOWERBED, TextureMap.getId(block)) - .put(TextureKey.STEM, Identifier.ofVanilla("block/pink_petals_stem")), - Models.FLOWERBED_3 - ); - public static final TexturedModel.Factory FLOWERBED_4 = TexturedModel.makeFactory( - block -> new TextureMap() - .put(TextureKey.FLOWERBED, TextureMap.getId(block)) - .put(TextureKey.STEM, Identifier.ofVanilla("block/pink_petals_stem")), - Models.FLOWERBED_4 - ); - - private static void registerFlowerbed(BlockStateModelGenerator generator, Block flowerbed) { - generator.registerItemModel(flowerbed.asItem()); - Identifier one = FLOWERBED_1.upload(flowerbed, generator.modelCollector); - Identifier two = FLOWERBED_2.upload(flowerbed, generator.modelCollector); - Identifier three = FLOWERBED_3.upload(flowerbed, generator.modelCollector); - Identifier four = FLOWERBED_4.upload(flowerbed, generator.modelCollector); - - generator.blockStateCollector.accept( - MultipartBlockStateSupplier.create(flowerbed) - .with( - When.create().set(Properties.FLOWER_AMOUNT, 1, 2, 3, 4).set(Properties.HORIZONTAL_FACING, Direction.NORTH), - BlockStateVariant.create().put(VariantSettings.MODEL, one) - ) - .with( - When.create().set(Properties.FLOWER_AMOUNT, 1, 2, 3, 4).set(Properties.HORIZONTAL_FACING, Direction.EAST), - BlockStateVariant.create().put(VariantSettings.MODEL, one).put(VariantSettings.Y, VariantSettings.Rotation.R90) - ) - .with( - When.create().set(Properties.FLOWER_AMOUNT, 1, 2, 3, 4).set(Properties.HORIZONTAL_FACING, Direction.SOUTH), - BlockStateVariant.create().put(VariantSettings.MODEL, one).put(VariantSettings.Y, VariantSettings.Rotation.R180) - ) - .with( - When.create().set(Properties.FLOWER_AMOUNT, 1, 2, 3, 4).set(Properties.HORIZONTAL_FACING, Direction.WEST), - BlockStateVariant.create().put(VariantSettings.MODEL, one).put(VariantSettings.Y, VariantSettings.Rotation.R270) - ) - .with( - When.create().set(Properties.FLOWER_AMOUNT, 2, 3, 4).set(Properties.HORIZONTAL_FACING, Direction.NORTH), - BlockStateVariant.create().put(VariantSettings.MODEL, two) - ) - .with( - When.create().set(Properties.FLOWER_AMOUNT, 2, 3, 4).set(Properties.HORIZONTAL_FACING, Direction.EAST), - BlockStateVariant.create().put(VariantSettings.MODEL, two).put(VariantSettings.Y, VariantSettings.Rotation.R90) - ) - .with( - When.create().set(Properties.FLOWER_AMOUNT, 2, 3, 4).set(Properties.HORIZONTAL_FACING, Direction.SOUTH), - BlockStateVariant.create().put(VariantSettings.MODEL, two).put(VariantSettings.Y, VariantSettings.Rotation.R180) - ) - .with( - When.create().set(Properties.FLOWER_AMOUNT, 2, 3, 4).set(Properties.HORIZONTAL_FACING, Direction.WEST), - BlockStateVariant.create().put(VariantSettings.MODEL, two).put(VariantSettings.Y, VariantSettings.Rotation.R270) - ) - .with( - When.create().set(Properties.FLOWER_AMOUNT, 3, 4).set(Properties.HORIZONTAL_FACING, Direction.NORTH), - BlockStateVariant.create().put(VariantSettings.MODEL, three) - ) - .with( - When.create().set(Properties.FLOWER_AMOUNT, 3, 4).set(Properties.HORIZONTAL_FACING, Direction.EAST), - BlockStateVariant.create().put(VariantSettings.MODEL, three).put(VariantSettings.Y, VariantSettings.Rotation.R90) - ) - .with( - When.create().set(Properties.FLOWER_AMOUNT, 3, 4).set(Properties.HORIZONTAL_FACING, Direction.SOUTH), - BlockStateVariant.create().put(VariantSettings.MODEL, three).put(VariantSettings.Y, VariantSettings.Rotation.R180) - ) - .with( - When.create().set(Properties.FLOWER_AMOUNT, 3, 4).set(Properties.HORIZONTAL_FACING, Direction.WEST), - BlockStateVariant.create().put(VariantSettings.MODEL, three).put(VariantSettings.Y, VariantSettings.Rotation.R270) - ) - .with( - When.create().set(Properties.FLOWER_AMOUNT, 4).set(Properties.HORIZONTAL_FACING, Direction.NORTH), - BlockStateVariant.create().put(VariantSettings.MODEL, four) - ) - .with( - When.create().set(Properties.FLOWER_AMOUNT, 4).set(Properties.HORIZONTAL_FACING, Direction.EAST), - BlockStateVariant.create().put(VariantSettings.MODEL, four).put(VariantSettings.Y, VariantSettings.Rotation.R90) - ) - .with( - When.create().set(Properties.FLOWER_AMOUNT, 4).set(Properties.HORIZONTAL_FACING, Direction.SOUTH), - BlockStateVariant.create().put(VariantSettings.MODEL, four).put(VariantSettings.Y, VariantSettings.Rotation.R180) - ) - .with( - When.create().set(Properties.FLOWER_AMOUNT, 4).set(Properties.HORIZONTAL_FACING, Direction.WEST), - BlockStateVariant.create().put(VariantSettings.MODEL, four).put(VariantSettings.Y, VariantSettings.Rotation.R270) - ) - ); - } - - // endregion -} diff --git a/src/main/java/dev/spiritstudios/hollow/datagen/PlacedFeatureProvider.java b/src/main/java/dev/spiritstudios/hollow/datagen/PlacedFeatureProvider.java index 7446af3..8a575b3 100644 --- a/src/main/java/dev/spiritstudios/hollow/datagen/PlacedFeatureProvider.java +++ b/src/main/java/dev/spiritstudios/hollow/datagen/PlacedFeatureProvider.java @@ -1,7 +1,6 @@ package dev.spiritstudios.hollow.datagen; import dev.spiritstudios.hollow.Hollow; -import dev.spiritstudios.hollow.worldgen.feature.HollowConfiguredFeatures; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricDynamicRegistryProvider; import net.minecraft.block.Blocks; @@ -9,13 +8,23 @@ import net.minecraft.registry.RegistryKey; import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.RegistryWrapper; -import net.minecraft.util.collection.DataPool; +import net.minecraft.util.collection.Pool; import net.minecraft.util.math.intprovider.ConstantIntProvider; import net.minecraft.util.math.intprovider.IntProvider; import net.minecraft.util.math.intprovider.WeightedListIntProvider; import net.minecraft.world.Heightmap; -import net.minecraft.world.gen.feature.*; -import net.minecraft.world.gen.placementmodifier.*; +import net.minecraft.world.gen.feature.ConfiguredFeature; +import net.minecraft.world.gen.feature.PlacedFeature; +import net.minecraft.world.gen.feature.PlacedFeatures; +import net.minecraft.world.gen.feature.TreeConfiguredFeatures; +import net.minecraft.world.gen.feature.VegetationConfiguredFeatures; +import net.minecraft.world.gen.feature.VegetationPlacedFeatures; +import net.minecraft.world.gen.placementmodifier.BiomePlacementModifier; +import net.minecraft.world.gen.placementmodifier.CountPlacementModifier; +import net.minecraft.world.gen.placementmodifier.HeightmapPlacementModifier; +import net.minecraft.world.gen.placementmodifier.PlacementModifier; +import net.minecraft.world.gen.placementmodifier.SquarePlacementModifier; +import net.minecraft.world.gen.placementmodifier.SurfaceWaterDepthFilterPlacementModifier; import java.util.List; import java.util.concurrent.CompletableFuture; @@ -27,7 +36,7 @@ public PlacedFeatureProvider(FabricDataOutput output, CompletableFuture lookup = registries.getWrapperOrThrow(RegistryKeys.PLACED_FEATURE); + RegistryWrapper lookup = registries.getOrThrow(RegistryKeys.PLACED_FEATURE); lookup.streamKeys() .filter(key -> @@ -37,14 +46,14 @@ protected void configure(RegistryWrapper.WrapperLookup registries, Entries entri // region Replacements PlacedFeatureDatagenHelper helper = new PlacedFeatureDatagenHelper( - registries.getWrapperOrThrow(RegistryKeys.CONFIGURED_FEATURE), + registries.getOrThrow(RegistryKeys.CONFIGURED_FEATURE), entries ); helper.add( VegetationPlacedFeatures.TREES_BIRCH, TreeConfiguredFeatures.BIRCH_BEES_0002, - CountPlacementModifier.of(new WeightedListIntProvider(DataPool.builder() + CountPlacementModifier.of(new WeightedListIntProvider(Pool.builder() .add(ConstantIntProvider.create(9), 9) .add(ConstantIntProvider.create(8), 1) .build())), @@ -58,7 +67,7 @@ protected void configure(RegistryWrapper.WrapperLookup registries, Entries entri helper.add( VegetationPlacedFeatures.BIRCH_TALL, VegetationConfiguredFeatures.BIRCH_TALL, - CountPlacementModifier.of(new WeightedListIntProvider(DataPool.builder() + CountPlacementModifier.of(new WeightedListIntProvider(Pool.builder() .add(ConstantIntProvider.create(9), 9) .add(ConstantIntProvider.create(8), 1) .build())), @@ -87,6 +96,6 @@ public void add(RegistryKey key, RegistryKey registriesFuture) { - super(output, registriesFuture); - } - - @Override - public void generate(RecipeExporter exporter) { - createHollowLogRecipe(exporter, HollowBlocks.OAK_HOLLOW_LOG, ItemTags.OAK_LOGS); - createHollowLogRecipe(exporter, HollowBlocks.SPRUCE_HOLLOW_LOG, ItemTags.SPRUCE_LOGS); - createHollowLogRecipe(exporter, HollowBlocks.BIRCH_HOLLOW_LOG, ItemTags.BIRCH_LOGS); - createHollowLogRecipe(exporter, HollowBlocks.JUNGLE_HOLLOW_LOG, ItemTags.JUNGLE_LOGS); - createHollowLogRecipe(exporter, HollowBlocks.ACACIA_HOLLOW_LOG, ItemTags.ACACIA_LOGS); - createHollowLogRecipe(exporter, HollowBlocks.DARK_OAK_HOLLOW_LOG, ItemTags.DARK_OAK_LOGS); - createHollowLogRecipe(exporter, HollowBlocks.CRIMSON_HOLLOW_STEM, ItemTags.CRIMSON_STEMS); - createHollowLogRecipe(exporter, HollowBlocks.WARPED_HOLLOW_STEM, ItemTags.WARPED_STEMS); - createHollowLogRecipe(exporter, HollowBlocks.MANGROVE_HOLLOW_LOG, ItemTags.MANGROVE_LOGS); - createHollowLogRecipe(exporter, HollowBlocks.CHERRY_HOLLOW_LOG, ItemTags.CHERRY_LOGS); - - HoneycombItem.UNWAXED_TO_WAXED_BLOCKS.get().forEach( - (unWaxed, waxed) -> { - if (!(unWaxed instanceof OxidizablePillarBlock)) return; - - ShapelessRecipeJsonBuilder.create(RecipeCategory.BUILDING_BLOCKS, waxed) - .input(unWaxed) - .input(Items.HONEYCOMB) - .group(getItemPath(waxed)) - .criterion(hasItem(unWaxed), conditionsFromItem(unWaxed)) - .offerTo(exporter, convertBetween(waxed, Items.HONEYCOMB)); - } - ); - - createCopperHornRecipe(exporter, Instruments.PONDER_GOAT_HORN, CopperInstrument.GREAT_SKY_FALLING); - createCopperHornRecipe(exporter, Instruments.SING_GOAT_HORN, CopperInstrument.OLD_HYMN_RESTING); - createCopperHornRecipe(exporter, Instruments.SEEK_GOAT_HORN, CopperInstrument.PURE_WATER_DESIRE); - createCopperHornRecipe(exporter, Instruments.FEEL_GOAT_HORN, CopperInstrument.HUMBLE_FIRE_MEMORY); - createCopperHornRecipe(exporter, Instruments.ADMIRE_GOAT_HORN, CopperInstrument.DRY_URGE_ANGER); - createCopperHornRecipe(exporter, Instruments.CALL_GOAT_HORN, CopperInstrument.CLEAR_TEMPER_JOURNEY); - createCopperHornRecipe(exporter, Instruments.YEARN_GOAT_HORN, CopperInstrument.FRESH_NEST_THOUGHT); - createCopperHornRecipe(exporter, Instruments.DREAM_GOAT_HORN, CopperInstrument.SECRET_LAKE_TEAR); - - Map.of( - HollowBlocks.COPPER_PILLAR, Blocks.CUT_COPPER_SLAB, - HollowBlocks.EXPOSED_COPPER_PILLAR, Blocks.EXPOSED_CUT_COPPER_SLAB, - HollowBlocks.WEATHERED_COPPER_PILLAR, Blocks.WEATHERED_CUT_COPPER_SLAB, - HollowBlocks.OXIDIZED_COPPER_PILLAR, Blocks.OXIDIZED_CUT_COPPER_SLAB, - - HollowBlocks.WAXED_COPPER_PILLAR, Blocks.WAXED_CUT_COPPER_SLAB, - HollowBlocks.WAXED_EXPOSED_COPPER_PILLAR, Blocks.WAXED_EXPOSED_CUT_COPPER_SLAB, - HollowBlocks.WAXED_WEATHERED_COPPER_PILLAR, Blocks.WAXED_WEATHERED_CUT_COPPER_SLAB, - HollowBlocks.WAXED_OXIDIZED_COPPER_PILLAR, Blocks.WAXED_OXIDIZED_CUT_COPPER_SLAB - ).forEach( - (pillar, slab) -> ShapedRecipeJsonBuilder.create(RecipeCategory.BUILDING_BLOCKS, pillar) - .input('#', slab) - .pattern("##") - .criterion(slab.getTranslationKey(), conditionsFromItem(slab)) - .offerTo(exporter) - ); - } - - public void createHollowLogRecipe(RecipeExporter exporter, HollowLogBlock block, TagKey LogBlock) { - ShapedRecipeJsonBuilder.create(RecipeCategory.DECORATIONS, block, 8) - .criterion("has_logs", FabricRecipeProvider.conditionsFromTag(LogBlock)) - .input('#', LogBlock) - .pattern("###") - .pattern("# #") - .pattern("###") - .offerTo(exporter); - } - - public void createCopperHornRecipe(RecipeExporter exporter, RegistryKey goat, CopperInstrument copper) { - SpecterShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, new ItemStack( - Registries.ITEM.getEntry(HollowItems.COPPER_HORN), - 1, - ComponentChanges.builder() - .add(HollowDataComponentTypes.COPPER_INSTRUMENT, copper) - .build() - )) - .group("hollow_copper_horn") - .input('#', Ingredient.ofItems(Items.COPPER_INGOT)) - .input('G', DefaultCustomIngredients.components( - Ingredient.ofItems(Items.GOAT_HORN), - ComponentChanges.builder() - .add(DataComponentTypes.INSTRUMENT, Registries.INSTRUMENT.entryOf(goat)) - .build() - )) - .pattern("#G#") - .pattern(" # ") - .criterion("has_goat_horn", FabricRecipeProvider.conditionsFromItem(Items.GOAT_HORN)) - .offerTo(exporter, Identifier.of(MODID, "copper_horn" + copper.asString())); - } -} diff --git a/src/main/java/dev/spiritstudios/hollow/datagen/TagProviders.java b/src/main/java/dev/spiritstudios/hollow/datagen/TagProviders.java new file mode 100644 index 0000000..f1463ee --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/datagen/TagProviders.java @@ -0,0 +1,134 @@ +package dev.spiritstudios.hollow.datagen; + +import dev.spiritstudios.hollow.block.HollowLogBlock; +import dev.spiritstudios.hollow.data.HollowBiomeTags; +import dev.spiritstudios.hollow.block.HollowBlocks; +import dev.spiritstudios.hollow.entity.HollowDamageTypes; +import dev.spiritstudios.hollow.entity.HollowEntityTypes; +import dev.spiritstudios.specter.api.core.reflect.ReflectionHelper; +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; +import net.fabricmc.fabric.api.tag.convention.v2.ConventionalBiomeTags; +import net.fabricmc.fabric.api.tag.convention.v2.ConventionalBlockTags; +import net.minecraft.block.Block; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.damage.DamageType; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.RegistryWrapper; +import net.minecraft.registry.tag.BlockTags; +import net.minecraft.registry.tag.DamageTypeTags; +import net.minecraft.registry.tag.EntityTypeTags; +import net.minecraft.world.biome.Biome; + +import java.util.concurrent.CompletableFuture; + +public class TagProviders { + public static void addAll(FabricDataGenerator.Pack pack) { + pack.addProvider(TagProviders.BlockTagProvider::new); + pack.addProvider(TagProviders.BiomeTagProvider::new); + pack.addProvider(TagProviders.EntityTypeTagProvider::new); + pack.addProvider(TagProviders.DamageTypeTagProvider::new); + } + + private static class BiomeTagProvider extends FabricTagProvider { + public BiomeTagProvider(FabricDataOutput output, CompletableFuture completableFuture) { + super(output, RegistryKeys.BIOME, completableFuture); + } + + @Override + protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) { + getOrCreateTagBuilder(HollowBiomeTags.HAS_CLOSER_FOG) + .forceAddTag(ConventionalBiomeTags.IS_SWAMP); + } + } + + private static class BlockTagProvider extends FabricTagProvider.BlockTagProvider { + public BlockTagProvider(FabricDataOutput output, CompletableFuture registriesFuture) { + super(output, registriesFuture); + } + + @Override + protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) { + FabricTagProvider.FabricTagBuilder hollowLogs = getOrCreateTagBuilder(HollowBlocks.Tags.HOLLOW_LOGS); + FabricTagProvider.FabricTagBuilder axeMineable = getOrCreateTagBuilder(BlockTags.AXE_MINEABLE); + + ReflectionHelper.getStaticFields( + HollowBlocks.class, + HollowLogBlock.class + ).forEach(pair -> { + hollowLogs.add(pair.value()); + axeMineable.add(pair.value()); + }); + + getOrCreateTagBuilder(BlockTags.PICKAXE_MINEABLE) + .add(HollowBlocks.ECHOING_POT) + .add(HollowBlocks.STONE_CHEST) + .add(HollowBlocks.STONE_CHEST_LID) + .add(HollowBlocks.COPPER_PILLAR) + .add(HollowBlocks.WEATHERED_COPPER_PILLAR) + .add(HollowBlocks.EXPOSED_COPPER_PILLAR) + .add(HollowBlocks.OXIDIZED_COPPER_PILLAR) + .add(HollowBlocks.WAXED_COPPER_PILLAR) + .add(HollowBlocks.WAXED_WEATHERED_COPPER_PILLAR) + .add(HollowBlocks.WAXED_EXPOSED_COPPER_PILLAR) + .add(HollowBlocks.WAXED_OXIDIZED_COPPER_PILLAR); + + getOrCreateTagBuilder(BlockTags.HOE_MINEABLE) + .add(HollowBlocks.SCULK_JAW); + + getOrCreateTagBuilder(BlockTags.FLOWER_POTS) + .add(HollowBlocks.POTTED_ROOTED_ORCHID) + .add(HollowBlocks.POTTED_PAEONIA); + + getOrCreateTagBuilder(BlockTags.SMALL_FLOWERS) + .add(HollowBlocks.PAEONIA) + .add(HollowBlocks.ROOTED_ORCHID) + .add(HollowBlocks.LOTUS_LILYPAD); + + getOrCreateTagBuilder(BlockTags.FLOWERS) + .add(HollowBlocks.CAMPION); + + getOrCreateTagBuilder(ConventionalBlockTags.TALL_FLOWERS) + .add(HollowBlocks.CAMPION); + + getOrCreateTagBuilder(HollowBlocks.Tags.POLYPORE_PLACEABLE_ON) + .forceAddTag(BlockTags.LOGS) + .addTag(HollowBlocks.Tags.HOLLOW_LOGS); + } + } + + private static class EntityTypeTagProvider extends FabricTagProvider.EntityTypeTagProvider { + public EntityTypeTagProvider(FabricDataOutput output, CompletableFuture completableFuture) { + super(output, completableFuture); + } + + @Override + protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) { + getOrCreateTagBuilder(HollowEntityTypes.Tags.POISONS_FROG) + .add(HollowEntityTypes.FIREFLY); + + getOrCreateTagBuilder(EntityTypeTags.FROG_FOOD) + .add(HollowEntityTypes.FIREFLY); + + getOrCreateTagBuilder(HollowEntityTypes.Tags.IMMUNE_TO_SCULK_JAW) + .add(EntityType.WARDEN); + } + } + + + private static class DamageTypeTagProvider extends FabricTagProvider { + public DamageTypeTagProvider(FabricDataOutput output, CompletableFuture registriesFuture) { + super(output, RegistryKeys.DAMAGE_TYPE, registriesFuture); + } + + @Override + protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) { + getOrCreateTagBuilder(DamageTypeTags.BYPASSES_ARMOR) + .add(HollowDamageTypes.SCULK_JAW); + + getOrCreateTagBuilder(DamageTypeTags.NO_KNOCKBACK) + .add(HollowDamageTypes.SCULK_JAW); + } + } +} diff --git a/src/main/java/dev/spiritstudios/hollow/datagen/tag/BiomeTagProvider.java b/src/main/java/dev/spiritstudios/hollow/datagen/tag/BiomeTagProvider.java deleted file mode 100644 index 207e3d2..0000000 --- a/src/main/java/dev/spiritstudios/hollow/datagen/tag/BiomeTagProvider.java +++ /dev/null @@ -1,23 +0,0 @@ -package dev.spiritstudios.hollow.datagen.tag; - -import dev.spiritstudios.hollow.data.HollowBiomeTags; -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; -import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; -import net.fabricmc.fabric.api.tag.convention.v2.ConventionalBiomeTags; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.registry.RegistryWrapper; -import net.minecraft.world.biome.Biome; - -import java.util.concurrent.CompletableFuture; - -public class BiomeTagProvider extends FabricTagProvider { - public BiomeTagProvider(FabricDataOutput output, CompletableFuture completableFuture) { - super(output, RegistryKeys.BIOME, completableFuture); - } - - @Override - protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) { - getOrCreateTagBuilder(HollowBiomeTags.HAS_CLOSER_FOG) - .forceAddTag(ConventionalBiomeTags.IS_SWAMP); - } -} \ No newline at end of file diff --git a/src/main/java/dev/spiritstudios/hollow/datagen/tag/BlockTagProvider.java b/src/main/java/dev/spiritstudios/hollow/datagen/tag/BlockTagProvider.java deleted file mode 100644 index f5e6d2b..0000000 --- a/src/main/java/dev/spiritstudios/hollow/datagen/tag/BlockTagProvider.java +++ /dev/null @@ -1,64 +0,0 @@ -package dev.spiritstudios.hollow.datagen.tag; - -import dev.spiritstudios.hollow.block.HollowLogBlock; -import dev.spiritstudios.hollow.registry.HollowBlocks; -import dev.spiritstudios.specter.api.core.reflect.ReflectionHelper; -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; -import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; -import net.minecraft.block.Block; -import net.minecraft.registry.RegistryWrapper; -import net.minecraft.registry.tag.BlockTags; - -import java.util.concurrent.CompletableFuture; - -public class BlockTagProvider extends FabricTagProvider.BlockTagProvider { - public BlockTagProvider(FabricDataOutput output, CompletableFuture registriesFuture) { - super(output, registriesFuture); - } - - @Override - protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) { - FabricTagProvider.FabricTagBuilder hollowLogs = getOrCreateTagBuilder(HollowBlocks.Tags.HOLLOW_LOGS); - FabricTagProvider.FabricTagBuilder axeMineable = getOrCreateTagBuilder(BlockTags.AXE_MINEABLE); - - ReflectionHelper.getStaticFields( - HollowBlocks.class, - HollowLogBlock.class - ).forEach(pair -> { - hollowLogs.add(pair.value()); - axeMineable.add(pair.value()); - }); - - getOrCreateTagBuilder(BlockTags.PICKAXE_MINEABLE) - .add(HollowBlocks.ECHOING_POT) - .add(HollowBlocks.STONE_CHEST) - .add(HollowBlocks.STONE_CHEST_LID) - .add(HollowBlocks.COPPER_PILLAR) - .add(HollowBlocks.WEATHERED_COPPER_PILLAR) - .add(HollowBlocks.EXPOSED_COPPER_PILLAR) - .add(HollowBlocks.OXIDIZED_COPPER_PILLAR) - .add(HollowBlocks.WAXED_COPPER_PILLAR) - .add(HollowBlocks.WAXED_WEATHERED_COPPER_PILLAR) - .add(HollowBlocks.WAXED_EXPOSED_COPPER_PILLAR) - .add(HollowBlocks.WAXED_OXIDIZED_COPPER_PILLAR); - - getOrCreateTagBuilder(BlockTags.HOE_MINEABLE) - .add(HollowBlocks.SCULK_JAW); - - getOrCreateTagBuilder(BlockTags.FLOWER_POTS) - .add(HollowBlocks.POTTED_ROOTED_ORCHID) - .add(HollowBlocks.POTTED_PAEONIA); - - getOrCreateTagBuilder(BlockTags.SMALL_FLOWERS) - .add(HollowBlocks.PAEONIA) - .add(HollowBlocks.ROOTED_ORCHID) - .add(HollowBlocks.LOTUS_LILYPAD); - - getOrCreateTagBuilder(BlockTags.TALL_FLOWERS) - .add(HollowBlocks.CAMPION); - - getOrCreateTagBuilder(HollowBlocks.Tags.POLYPORE_PLACEABLE_ON) - .forceAddTag(BlockTags.LOGS) - .addTag(HollowBlocks.Tags.HOLLOW_LOGS); - } -} diff --git a/src/main/java/dev/spiritstudios/hollow/datagen/tag/EntityTypeTagProvider.java b/src/main/java/dev/spiritstudios/hollow/datagen/tag/EntityTypeTagProvider.java deleted file mode 100644 index d0f4d5c..0000000 --- a/src/main/java/dev/spiritstudios/hollow/datagen/tag/EntityTypeTagProvider.java +++ /dev/null @@ -1,29 +0,0 @@ -package dev.spiritstudios.hollow.datagen.tag; - -import dev.spiritstudios.hollow.registry.HollowEntityTypes; -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; -import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; -import net.minecraft.entity.EntityType; -import net.minecraft.registry.RegistryWrapper; -import net.minecraft.registry.tag.EntityTypeTags; - -import java.util.concurrent.CompletableFuture; - -public class EntityTypeTagProvider extends FabricTagProvider.EntityTypeTagProvider { - public EntityTypeTagProvider(FabricDataOutput output, CompletableFuture completableFuture) { - super(output, completableFuture); - } - - @Override - protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) { - getOrCreateTagBuilder(HollowEntityTypes.Tags.POISONS_FROG) - .add(HollowEntityTypes.FIREFLY); - - getOrCreateTagBuilder(EntityTypeTags.FROG_FOOD) - .add(HollowEntityTypes.FIREFLY); - - getOrCreateTagBuilder(HollowEntityTypes.Tags.IMMUNE_TO_SCULK_JAW) - .add(EntityType.WARDEN); - - } -} diff --git a/src/main/java/dev/spiritstudios/hollow/entity/FireflyEntity.java b/src/main/java/dev/spiritstudios/hollow/entity/FireflyEntity.java index 0aa162a..f70e406 100644 --- a/src/main/java/dev/spiritstudios/hollow/entity/FireflyEntity.java +++ b/src/main/java/dev/spiritstudios/hollow/entity/FireflyEntity.java @@ -1,6 +1,6 @@ package dev.spiritstudios.hollow.entity; -import dev.spiritstudios.hollow.registry.HollowBlocks; +import dev.spiritstudios.hollow.block.HollowBlocks; import net.minecraft.block.BlockState; import net.minecraft.entity.*; import net.minecraft.entity.ai.AboveGroundTargeting; @@ -77,15 +77,15 @@ public boolean isValidPosition(BlockPos pos) { birdNavigation.setCanPathThroughDoors(false); birdNavigation.setCanSwim(false); - birdNavigation.setCanEnterOpenDoors(true); + birdNavigation.setCanPathThroughDoors(true); return birdNavigation; } public static DefaultAttributeContainer.Builder createFireflyAttributes() { return MobEntity.createMobAttributes() - .add(EntityAttributes.GENERIC_MAX_HEALTH, 0.1F) - .add(EntityAttributes.GENERIC_FLYING_SPEED, 0.5F) - .add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.5F); + .add(EntityAttributes.MAX_HEALTH, 0.1F) + .add(EntityAttributes.FLYING_SPEED, 0.5F) + .add(EntityAttributes.MOVEMENT_SPEED, 0.5F); } @Override @@ -108,7 +108,7 @@ public ActionResult interactMob(PlayerEntity player, Hand hand) { player.getInventory().offerOrDrop(new ItemStack(HollowBlocks.FIREFLY_JAR)); this.discard(); - return ActionResult.success(player.getWorld().isClient); + return ActionResult.SUCCESS; } @Override diff --git a/src/main/java/dev/spiritstudios/hollow/entity/HollowDamageTypes.java b/src/main/java/dev/spiritstudios/hollow/entity/HollowDamageTypes.java new file mode 100644 index 0000000..7fdde45 --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/entity/HollowDamageTypes.java @@ -0,0 +1,23 @@ +package dev.spiritstudios.hollow.entity; + +import dev.spiritstudios.hollow.Hollow; +import net.minecraft.entity.damage.DamageScaling; +import net.minecraft.entity.damage.DamageType; +import net.minecraft.registry.Registerable; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; + +public final class HollowDamageTypes { + public static final RegistryKey SCULK_JAW = RegistryKey.of(RegistryKeys.DAMAGE_TYPE, Hollow.id("sculk_jaw")); + + public static void bootstrap(Registerable registerable) { + registerable.register( + SCULK_JAW, + new DamageType( + "sculk_jaw", + DamageScaling.ALWAYS, + 0.1F + ) + ); + } +} diff --git a/src/main/java/dev/spiritstudios/hollow/entity/HollowEntityTypes.java b/src/main/java/dev/spiritstudios/hollow/entity/HollowEntityTypes.java new file mode 100644 index 0000000..7395d84 --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/entity/HollowEntityTypes.java @@ -0,0 +1,44 @@ +package dev.spiritstudios.hollow.entity; + +import dev.spiritstudios.hollow.Hollow; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.SpawnGroup; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.tag.TagKey; + +@SuppressWarnings("unused") +public final class HollowEntityTypes { + public static final EntityType FIREFLY = register( + "firefly", + EntityType.Builder + .create(FireflyEntity::new, SpawnGroup.AMBIENT) + .dimensions(0.125F, 0.0625F) + .maxTrackingRange(20) + ); + + public static final class Tags { + public static final TagKey> IMMUNE_TO_SCULK_JAW = TagKey.of(RegistryKeys.ENTITY_TYPE, Hollow.id("immune_to_sculk_jaw")); + + public static final TagKey> POISONS_FROG = TagKey.of(RegistryKeys.ENTITY_TYPE, Hollow.id("poisons_frog")); + } + + private static EntityType register(RegistryKey> key, EntityType.Builder type) { + return Registry.register(Registries.ENTITY_TYPE, key, type.build(key)); + } + + private static RegistryKey> keyOf(String id) { + return RegistryKey.of(RegistryKeys.ENTITY_TYPE, Hollow.id(id)); + } + + private static EntityType register(String id, EntityType.Builder type) { + return register(keyOf(id), type); + } + + public static void init() { + // NO-OP + } +} diff --git a/src/main/java/dev/spiritstudios/hollow/item/CopperHornItem.java b/src/main/java/dev/spiritstudios/hollow/item/CopperHornItem.java index d07c64d..bf04066 100644 --- a/src/main/java/dev/spiritstudios/hollow/item/CopperHornItem.java +++ b/src/main/java/dev/spiritstudios/hollow/item/CopperHornItem.java @@ -1,25 +1,24 @@ package dev.spiritstudios.hollow.item; import dev.spiritstudios.hollow.component.CopperInstrument; -import dev.spiritstudios.hollow.registry.HollowDataComponentTypes; +import dev.spiritstudios.hollow.component.CopperInstrumentComponent; +import dev.spiritstudios.hollow.component.HollowDataComponentTypes; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.item.tooltip.TooltipType; +import net.minecraft.item.consume.UseAction; +import net.minecraft.registry.RegistryWrapper; +import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvent; import net.minecraft.stat.Stats; -import net.minecraft.text.MutableText; -import net.minecraft.text.Text; -import net.minecraft.util.Formatting; +import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; -import net.minecraft.util.TypedActionResult; -import net.minecraft.util.UseAction; +import net.minecraft.util.math.MathHelper; import net.minecraft.world.World; import net.minecraft.world.event.GameEvent; -import java.util.List; import java.util.Optional; public class CopperHornItem extends Item { @@ -28,19 +27,20 @@ public CopperHornItem(Settings settings) { } @Override - public TypedActionResult use(World world, PlayerEntity user, Hand hand) { + public ActionResult use(World world, PlayerEntity user, Hand hand) { ItemStack itemStack = user.getStackInHand(hand); - Optional instrument = this.getInstrument(itemStack); - if (instrument.isEmpty()) return TypedActionResult.fail(itemStack); + Optional> optional = this.getInstrument(itemStack, user.getRegistryManager()); + if (optional.isEmpty()) return ActionResult.FAIL; + CopperInstrument instrument = optional.get().value(); user.setCurrentHand(hand); - playSound(world, user, instrument.get()); + playSound(world, user, instrument); - user.getItemCooldownManager().set(this, 80); + user.getItemCooldownManager().set(itemStack, MathHelper.floor(instrument.useDuration() * 20.0F)); user.incrementStat(Stats.USED.getOrCreateStat(this)); - return TypedActionResult.consume(itemStack); + return ActionResult.CONSUME; } // region Settings @@ -51,45 +51,31 @@ public UseAction getUseAction(ItemStack stack) { @Override public int getMaxUseTime(ItemStack stack, LivingEntity user) { - return 80; + return this.getInstrument(stack, user.getRegistryManager()).map(instrument -> + MathHelper.floor(instrument.value().useDuration() * 20.0F)) + .orElse(0); } // endregion - @Override - public void appendTooltip(ItemStack stack, Item.TooltipContext context, List tooltip, TooltipType type) { - super.appendTooltip(stack, context, tooltip, type); - CopperInstrument instrument = this.getInstrument(stack).orElse(null); - if (instrument == null) return; - - MutableText text = Text.translatable("copper_horn.%s".formatted(instrument.asString())); - tooltip.add(text.formatted(Formatting.GRAY)); - } - - private Optional getInstrument(ItemStack stack) { - return Optional.ofNullable(stack.get(HollowDataComponentTypes.COPPER_INSTRUMENT)); + private Optional> getInstrument(ItemStack stack, RegistryWrapper.WrapperLookup registries) { + CopperInstrumentComponent instrumentComponent = stack.get(HollowDataComponentTypes.COPPER_INSTRUMENT); + return instrumentComponent != null ? instrumentComponent.getInstrument(registries) : Optional.empty(); } private static void playSound(World world, PlayerEntity player, CopperInstrument instrument) { - SoundEvent sound; - float pitch = 1.0F; - float volume = 1.0F; - if (player.isSneaking()) { - sound = instrument.bass; - switch (instrument) { - case FEARLESS_RIVER_GIFT -> { - pitch = 1.07F; - volume = 1.1F; - } - case SWEET_MOON_LOVE -> { - pitch = 1.7F; - volume = 1.7F; - } - } - } else if (player.getPitch() < -45) sound = instrument.call; - else sound = instrument.melody; - - - world.playSoundFromEntity(player, player, sound, SoundCategory.HOSTILE, volume, pitch); + RegistryEntry sound; + + if (player.isSneaking()) sound = instrument.bass(); + else if (player.getPitch() < -45) sound = instrument.call(); + else sound = instrument.melody(); + + + world.playSoundFromEntity( + player, player, + sound.value(), SoundCategory.RECORDS, + instrument.range() / 16.0F, 1.0F + ); + world.emitGameEvent(GameEvent.INSTRUMENT_PLAY, player.getPos(), GameEvent.Emitter.of(player)); } } diff --git a/src/main/java/dev/spiritstudios/hollow/item/HollowItems.java b/src/main/java/dev/spiritstudios/hollow/item/HollowItems.java new file mode 100644 index 0000000..058c83b --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/item/HollowItems.java @@ -0,0 +1,97 @@ +package dev.spiritstudios.hollow.item; + +import dev.spiritstudios.hollow.Hollow; +import dev.spiritstudios.hollow.block.HollowBlocks; +import dev.spiritstudios.hollow.component.CopperInstrumentComponent; +import dev.spiritstudios.hollow.component.CopperInstruments; +import dev.spiritstudios.hollow.component.HollowDataComponentTypes; +import dev.spiritstudios.hollow.entity.HollowEntityTypes; +import dev.spiritstudios.hollow.sound.HollowJukeboxSongs; +import net.minecraft.item.BlockItem; +import net.minecraft.item.Item; +import net.minecraft.item.PlaceableOnWaterItem; +import net.minecraft.item.SpawnEggItem; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.util.Rarity; + +import java.util.function.Function; + +@SuppressWarnings("unused") +public final class HollowItems { + public static final Item FIREFLY_SPAWN_EGG = register( + "firefly_spawn_egg", + settings -> new SpawnEggItem(HollowEntityTypes.FIREFLY, settings) + ); + + public static final Item LOTUS_LILYPAD = register( + "lotus_lilypad", + settings -> new PlaceableOnWaterItem(HollowBlocks.LOTUS_LILYPAD, settings), + new Item.Settings().useBlockPrefixedTranslationKey() + ); + + public static final Item GIANT_LILYPAD = register( + "giant_lilypad", + settings -> new PlaceableOnWaterItem(HollowBlocks.GIANT_LILYPAD, settings), + new Item.Settings().useBlockPrefixedTranslationKey() + ); + + public static final Item MUSIC_DISC_POSTMORTEM = register( + "music_disc_postmortem", + new Item.Settings() + .maxCount(1) + .rarity(Rarity.RARE) + .jukeboxPlayable(HollowJukeboxSongs.POSTMORTEM) + ); + + public static final Item COPPER_HORN = register( + "copper_horn", + CopperHornItem::new, + new Item.Settings() + .maxCount(1) + .rarity(Rarity.UNCOMMON) + .component( + HollowDataComponentTypes.COPPER_INSTRUMENT, + new CopperInstrumentComponent(CopperInstruments.GREAT_SKY_FALLING) + ) + ); + + private static RegistryKey keyOf(String id) { + return RegistryKey.of(RegistryKeys.ITEM, Hollow.id(id)); + } + + public static Item register(String id, Function factory) { + return register(keyOf(id), factory, new Item.Settings()); + } + + public static Item register(String id, Function factory, Item.Settings settings) { + return register(keyOf(id), factory, settings); + } + + public static Item register(String id, Item.Settings settings) { + return register(keyOf(id), Item::new, settings); + } + + public static Item register(String id) { + return register(keyOf(id), Item::new, new Item.Settings()); + } + + public static Item register(RegistryKey key, Function factory) { + return register(key, factory, new Item.Settings()); + } + + public static Item register(RegistryKey key, Function factory, Item.Settings settings) { + Item item = factory.apply(settings.registryKey(key)); + if (item instanceof BlockItem blockItem) { + blockItem.appendBlocks(Item.BLOCK_ITEMS, item); + } + + return Registry.register(Registries.ITEM, key, item); + } + + public static void init() { + // NO-OP + } +} diff --git a/src/main/java/dev/spiritstudios/hollow/loot/HollowLootFunctionTypes.java b/src/main/java/dev/spiritstudios/hollow/loot/HollowLootFunctionTypes.java new file mode 100644 index 0000000..bef202e --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/loot/HollowLootFunctionTypes.java @@ -0,0 +1,20 @@ +package dev.spiritstudios.hollow.loot; + +import com.mojang.serialization.MapCodec; +import dev.spiritstudios.hollow.Hollow; +import net.minecraft.loot.function.LootFunction; +import net.minecraft.loot.function.LootFunctionType; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; + +public final class HollowLootFunctionTypes { + public static final LootFunctionType SET_COPPER_INSTRUMENT = register("set_copper_instrument", SetCopperInstrumentFunction.CODEC); + + private static LootFunctionType register(String id, MapCodec codec) { + return Registry.register(Registries.LOOT_FUNCTION_TYPE, Hollow.id(id), new LootFunctionType<>(codec)); + } + + public static void init() { + // NO-OP + } +} diff --git a/src/main/java/dev/spiritstudios/hollow/loot/HollowLootTableModifications.java b/src/main/java/dev/spiritstudios/hollow/loot/HollowLootTableModifications.java index 43b06aa..aabd7e4 100644 --- a/src/main/java/dev/spiritstudios/hollow/loot/HollowLootTableModifications.java +++ b/src/main/java/dev/spiritstudios/hollow/loot/HollowLootTableModifications.java @@ -1,6 +1,6 @@ package dev.spiritstudios.hollow.loot; -import dev.spiritstudios.hollow.registry.HollowItems; +import dev.spiritstudios.hollow.item.HollowItems; import net.fabricmc.fabric.api.loot.v3.LootTableEvents; import net.minecraft.loot.LootPool; import net.minecraft.loot.LootTables; @@ -13,22 +13,14 @@ public static void init() { LootTableEvents.MODIFY.register((key, tableBuilder, source, registries) -> { if (!source.isBuiltin()) return; - if (LootTables.ANCIENT_CITY_CHEST == key) { - LootPool.Builder lootPoolBuilder = LootPool.builder() - .with(ItemEntry.builder(HollowItems.MUSIC_DISC_POSTMORTEM)) - .conditionally(RandomChanceLootCondition.builder(0.1F)); + if (key == LootTables.ANCIENT_CITY_CHEST) tableBuilder.pool(LootPool.builder() + .with(ItemEntry.builder(HollowItems.MUSIC_DISC_POSTMORTEM)) + .conditionally(RandomChanceLootCondition.builder(0.1F))); - tableBuilder.pool(lootPoolBuilder); - } - - if (LootTables.PILLAGER_OUTPOST_CHEST == key) { - LootPool.Builder lootPoolBuilder = LootPool.builder() - .rolls(UniformLootNumberProvider.create(0.0F, 1.0F)) - .with(ItemEntry.builder(HollowItems.COPPER_HORN)) - .apply(SetCopperInstrumentFunction.builder()); - - tableBuilder.pool(lootPoolBuilder); - } + if (key == LootTables.PILLAGER_OUTPOST_CHEST) tableBuilder.pool(LootPool.builder() + .rolls(UniformLootNumberProvider.create(0.0F, 1.0F)) + .with(ItemEntry.builder(HollowItems.COPPER_HORN)) + .apply(SetCopperInstrumentFunction.builder())); }); } } diff --git a/src/main/java/dev/spiritstudios/hollow/loot/SetCopperInstrumentFunction.java b/src/main/java/dev/spiritstudios/hollow/loot/SetCopperInstrumentFunction.java index 316b6f4..311fe5d 100644 --- a/src/main/java/dev/spiritstudios/hollow/loot/SetCopperInstrumentFunction.java +++ b/src/main/java/dev/spiritstudios/hollow/loot/SetCopperInstrumentFunction.java @@ -2,48 +2,44 @@ import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import dev.spiritstudios.hollow.component.CopperInstrument; -import dev.spiritstudios.hollow.item.CopperHornItem; -import dev.spiritstudios.hollow.registry.HollowDataComponentTypes; +import dev.spiritstudios.hollow.component.CopperInstrumentComponent; +import dev.spiritstudios.hollow.component.HollowDataComponentTypes; +import dev.spiritstudios.hollow.registry.HollowRegistryKeys; import net.minecraft.item.ItemStack; import net.minecraft.loot.condition.LootCondition; import net.minecraft.loot.context.LootContext; import net.minecraft.loot.function.ConditionalLootFunction; import net.minecraft.loot.function.LootFunctionType; -import net.minecraft.loot.function.LootFunctionTypes; -import net.minecraft.loot.function.SetInstrumentLootFunction; import java.util.List; public class SetCopperInstrumentFunction extends ConditionalLootFunction { - public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( - instance -> addConditionsField(instance).apply(instance, SetCopperInstrumentFunction::new) - ); - - private SetCopperInstrumentFunction(List conditions) { - super(conditions); - } - - public static ConditionalLootFunction.Builder builder() { - return builder(SetCopperInstrumentFunction::new); - } - - @Override - public LootFunctionType getType() { - return LootFunctionTypes.SET_INSTRUMENT; - } - - @Override - public ItemStack process(ItemStack stack, LootContext context) { - if (!(stack.getItem() instanceof CopperHornItem)) return stack; - - CopperInstrument[] values = CopperInstrument.values(); - - stack.set( - HollowDataComponentTypes.COPPER_INSTRUMENT, - values[context.getRandom().nextInt(values.length)] - ); - - return stack; - } + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( + instance -> addConditionsField(instance) + .apply(instance, SetCopperInstrumentFunction::new) + ); + + private SetCopperInstrumentFunction(List conditions) { + super(conditions); + } + + public static ConditionalLootFunction.Builder builder() { + return builder(SetCopperInstrumentFunction::new); + } + + @Override + public LootFunctionType getType() { + return HollowLootFunctionTypes.SET_COPPER_INSTRUMENT; + } + + @Override + public ItemStack process(ItemStack stack, LootContext context) { + context.getWorld().getRegistryManager() + .getOptional(HollowRegistryKeys.COPPER_INSTRUMENT) + .flatMap(registry -> registry.getRandom(context.getRandom())) + .ifPresent(entry -> + stack.set(HollowDataComponentTypes.COPPER_INSTRUMENT, new CopperInstrumentComponent(entry))); + + return stack; + } } diff --git a/src/main/java/dev/spiritstudios/hollow/mixin/BulbBlockMixin.java b/src/main/java/dev/spiritstudios/hollow/mixin/BulbBlockMixin.java index 20a2179..8f19e88 100644 --- a/src/main/java/dev/spiritstudios/hollow/mixin/BulbBlockMixin.java +++ b/src/main/java/dev/spiritstudios/hollow/mixin/BulbBlockMixin.java @@ -2,8 +2,6 @@ import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; -import dev.spiritstudios.hollow.Hollow; -import dev.spiritstudios.hollow.HollowConfig; import dev.spiritstudios.hollow.HollowGameRules; import net.minecraft.block.Block; import net.minecraft.block.BlockState; diff --git a/src/main/java/dev/spiritstudios/hollow/mixin/FrogEatEntityTaskMixin.java b/src/main/java/dev/spiritstudios/hollow/mixin/FrogEatEntityTaskMixin.java index 43112d2..6f6e07a 100644 --- a/src/main/java/dev/spiritstudios/hollow/mixin/FrogEatEntityTaskMixin.java +++ b/src/main/java/dev/spiritstudios/hollow/mixin/FrogEatEntityTaskMixin.java @@ -2,7 +2,7 @@ import dev.spiritstudios.hollow.HollowGameRules; import dev.spiritstudios.hollow.registry.HollowCriteria; -import dev.spiritstudios.hollow.registry.HollowEntityTypes; +import dev.spiritstudios.hollow.entity.HollowEntityTypes; import net.fabricmc.fabric.api.networking.v1.PlayerLookup; import net.minecraft.entity.Entity; import net.minecraft.entity.ai.brain.task.FrogEatEntityTask; diff --git a/src/main/java/dev/spiritstudios/hollow/mixin/SaplingGeneratorMixin.java b/src/main/java/dev/spiritstudios/hollow/mixin/SaplingGeneratorMixin.java index 7d922f7..d0114c6 100644 --- a/src/main/java/dev/spiritstudios/hollow/mixin/SaplingGeneratorMixin.java +++ b/src/main/java/dev/spiritstudios/hollow/mixin/SaplingGeneratorMixin.java @@ -20,8 +20,6 @@ public abstract class SaplingGeneratorMixin { @WrapMethod(method = "getSmallTreeFeature") protected @Nullable RegistryKey> getSmallTreeFeature(Random random, boolean flowersNearby, Operation>> original) { - return !this.id.equals("birch") ? - original.call(random, flowersNearby) : - TreeConfiguredFeatures.BIRCH_BEES_0002; + return this.id.equals("birch") ? TreeConfiguredFeatures.BIRCH_BEES_0002 : original.call(random, flowersNearby); } } diff --git a/src/main/java/dev/spiritstudios/hollow/mixin/SculkBlockMixin.java b/src/main/java/dev/spiritstudios/hollow/mixin/SculkBlockMixin.java index 8975cfc..279a5b1 100644 --- a/src/main/java/dev/spiritstudios/hollow/mixin/SculkBlockMixin.java +++ b/src/main/java/dev/spiritstudios/hollow/mixin/SculkBlockMixin.java @@ -3,7 +3,7 @@ import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.llamalad7.mixinextras.sugar.Local; -import dev.spiritstudios.hollow.registry.HollowBlocks; +import dev.spiritstudios.hollow.block.HollowBlocks; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.SculkBlock; diff --git a/src/main/java/dev/spiritstudios/hollow/mixin/SculkVeinBlockMixin.java b/src/main/java/dev/spiritstudios/hollow/mixin/SculkVeinBlockMixin.java index 688f42e..ef97f86 100644 --- a/src/main/java/dev/spiritstudios/hollow/mixin/SculkVeinBlockMixin.java +++ b/src/main/java/dev/spiritstudios/hollow/mixin/SculkVeinBlockMixin.java @@ -2,14 +2,18 @@ import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; -import dev.spiritstudios.hollow.registry.HollowBlocks; -import net.minecraft.block.*; -import net.minecraft.item.ItemPlacementContext; +import dev.spiritstudios.hollow.block.HollowBlocks; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.MultifaceGrowthBlock; +import net.minecraft.block.SculkVeinBlock; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.world.BlockView; -import net.minecraft.world.WorldAccess; -import org.jetbrains.annotations.Nullable; +import net.minecraft.world.WorldView; +import net.minecraft.world.tick.ScheduledTickView; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -19,9 +23,10 @@ public SculkVeinBlockMixin(Settings settings) { super(settings); } - @WrapOperation(method = "place", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/SculkVeinBlock;canGrowOn(Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/Direction;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;)Z")) - private static boolean canGrowOn(BlockView blockView, Direction direction, BlockPos blockPos, BlockState blockState, Operation original) { - return original.call(blockView, direction, blockPos, blockState) && !blockState.isOf(HollowBlocks.SCULK_JAW); + @WrapOperation(method = "place", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/SculkVeinBlock;canGrowOn(Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/Direction;)Z")) + private static boolean canGrowOn(BlockView blockView, BlockPos blockPos, Direction direction, Operation original) { + BlockState blockState = blockView.getBlockState(blockPos); + return original.call(blockView, blockPos, direction) && !blockState.isOf(HollowBlocks.SCULK_JAW); } @WrapOperation( @@ -33,8 +38,9 @@ private boolean spreadAtSamePosition(BlockState instance, Block block, Operation } @Override - public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { + protected BlockState getStateForNeighborUpdate(BlockState state, WorldView world, ScheduledTickView tickView, BlockPos pos, Direction direction, BlockPos neighborPos, BlockState neighborState, Random random) { if (neighborState.isOf(HollowBlocks.SCULK_JAW) && direction == Direction.DOWN) return Blocks.AIR.getDefaultState(); - return super.getStateForNeighborUpdate(state, direction, neighborState, world, pos, neighborPos); + + return super.getStateForNeighborUpdate(state, world, tickView, pos, direction, neighborPos, neighborState, random); } } diff --git a/src/main/java/dev/spiritstudios/hollow/mixin/SculkVeinGrowCheckerMixin.java b/src/main/java/dev/spiritstudios/hollow/mixin/SculkVeinGrowCheckerMixin.java index 1bda445..34c467f 100644 --- a/src/main/java/dev/spiritstudios/hollow/mixin/SculkVeinGrowCheckerMixin.java +++ b/src/main/java/dev/spiritstudios/hollow/mixin/SculkVeinGrowCheckerMixin.java @@ -2,17 +2,14 @@ import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod; import com.llamalad7.mixinextras.injector.wrapoperation.Operation; -import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; -import dev.spiritstudios.hollow.registry.HollowBlocks; -import net.minecraft.block.Block; +import dev.spiritstudios.hollow.block.HollowBlocks; import net.minecraft.block.BlockState; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.BlockView; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -@Mixin(targets = "net.minecraft.block.SculkVeinBlock.SculkVeinGrowChecker") +@Mixin(targets = "net.minecraft.block.SculkVeinBlock$SculkVeinGrowChecker") public abstract class SculkVeinGrowCheckerMixin { @WrapMethod( method = "canGrow(Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/Direction;Lnet/minecraft/block/BlockState;)Z" diff --git a/src/main/java/dev/spiritstudios/hollow/registry/HollowBlockEntityTypes.java b/src/main/java/dev/spiritstudios/hollow/registry/HollowBlockEntityTypes.java deleted file mode 100644 index edc46d2..0000000 --- a/src/main/java/dev/spiritstudios/hollow/registry/HollowBlockEntityTypes.java +++ /dev/null @@ -1,12 +0,0 @@ -package dev.spiritstudios.hollow.registry; - -import dev.spiritstudios.hollow.block.entity.EchoingPotBlockEntity; -import dev.spiritstudios.hollow.block.entity.JarBlockEntity; -import dev.spiritstudios.hollow.block.entity.StoneChestBlockEntity; -import net.minecraft.block.entity.BlockEntityType; - -public final class HollowBlockEntityTypes { - public static final BlockEntityType JAR_BLOCK_ENTITY = BlockEntityType.Builder.create(JarBlockEntity::new, HollowBlocks.JAR).build(); - public static final BlockEntityType ECHOING_POT_BLOCK_ENTITY = BlockEntityType.Builder.create(EchoingPotBlockEntity::new, HollowBlocks.ECHOING_POT).build(); - public static final BlockEntityType STONE_CHEST_BLOCK_ENTITY = BlockEntityType.Builder.create(StoneChestBlockEntity::new, HollowBlocks.STONE_CHEST).build(); -} diff --git a/src/main/java/dev/spiritstudios/hollow/registry/HollowBlocks.java b/src/main/java/dev/spiritstudios/hollow/registry/HollowBlocks.java deleted file mode 100644 index f226ae2..0000000 --- a/src/main/java/dev/spiritstudios/hollow/registry/HollowBlocks.java +++ /dev/null @@ -1,213 +0,0 @@ -package dev.spiritstudios.hollow.registry; - -import dev.spiritstudios.hollow.Hollow; -import dev.spiritstudios.hollow.block.*; -import dev.spiritstudios.specter.api.registry.annotations.NoBlockItem; -import net.minecraft.block.*; -import net.minecraft.block.enums.NoteBlockInstrument; -import net.minecraft.block.piston.PistonBehavior; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.registry.tag.TagKey; -import net.minecraft.sound.BlockSoundGroup; - -@SuppressWarnings("unused") -public final class HollowBlocks { - // region Hollow logs - public static final HollowLogBlock OAK_HOLLOW_LOG = HollowLogBlock.of(Blocks.OAK_LOG); - public static final HollowLogBlock STRIPPED_OAK_HOLLOW_LOG = HollowLogBlock.ofStripped(Blocks.STRIPPED_OAK_LOG); - - public static final HollowLogBlock SPRUCE_HOLLOW_LOG = HollowLogBlock.of(Blocks.SPRUCE_LOG); - public static final HollowLogBlock STRIPPED_SPRUCE_HOLLOW_LOG = HollowLogBlock.ofStripped(Blocks.STRIPPED_SPRUCE_LOG); - - public static final HollowLogBlock BIRCH_HOLLOW_LOG = HollowLogBlock.of(Blocks.BIRCH_LOG); - public static final HollowLogBlock STRIPPED_BIRCH_HOLLOW_LOG = HollowLogBlock.ofStripped(Blocks.STRIPPED_BIRCH_LOG); - - public static final HollowLogBlock JUNGLE_HOLLOW_LOG = HollowLogBlock.of(Blocks.JUNGLE_LOG); - public static final HollowLogBlock STRIPPED_JUNGLE_HOLLOW_LOG = HollowLogBlock.ofStripped(Blocks.STRIPPED_JUNGLE_LOG); - - public static final HollowLogBlock ACACIA_HOLLOW_LOG = HollowLogBlock.of(Blocks.ACACIA_LOG); - public static final HollowLogBlock STRIPPED_ACACIA_HOLLOW_LOG = HollowLogBlock.ofStripped(Blocks.STRIPPED_ACACIA_LOG); - - public static final HollowLogBlock DARK_OAK_HOLLOW_LOG = HollowLogBlock.of(Blocks.DARK_OAK_LOG); - public static final HollowLogBlock STRIPPED_DARK_OAK_HOLLOW_LOG = HollowLogBlock.ofStripped(Blocks.STRIPPED_DARK_OAK_LOG); - - public static final HollowLogBlock CRIMSON_HOLLOW_STEM = HollowLogBlock.of(Blocks.CRIMSON_STEM); - public static final HollowLogBlock STRIPPED_CRIMSON_HOLLOW_STEM = HollowLogBlock.ofStripped(Blocks.STRIPPED_CRIMSON_STEM); - - public static final HollowLogBlock WARPED_HOLLOW_STEM = HollowLogBlock.of(Blocks.WARPED_STEM); - public static final HollowLogBlock STRIPPED_WARPED_HOLLOW_STEM = HollowLogBlock.ofStripped(Blocks.STRIPPED_WARPED_STEM); - - public static final HollowLogBlock MANGROVE_HOLLOW_LOG = HollowLogBlock.of(Blocks.MANGROVE_LOG); - public static final HollowLogBlock STRIPPED_MANGROVE_HOLLOW_LOG = HollowLogBlock.ofStripped(Blocks.STRIPPED_MANGROVE_LOG); - - public static final HollowLogBlock CHERRY_HOLLOW_LOG = HollowLogBlock.of(Blocks.CHERRY_LOG); - public static final HollowLogBlock STRIPPED_CHERRY_HOLLOW_LOG = HollowLogBlock.ofStripped(Blocks.STRIPPED_CHERRY_LOG); - // endregion - - public static final EchoingPotBlock ECHOING_POT = new EchoingPotBlock( - AbstractBlock.Settings.create() - .mapColor(MapColor.DEEPSLATE_GRAY) - .strength(3.0F, 6.0F) - .sounds(BlockSoundGroup.DECORATED_POT) - .pistonBehavior(PistonBehavior.DESTROY) - .nonOpaque() - ); - - public static final FlowerBlock PAEONIA = new FlowerBlock( - StatusEffects.GLOWING, - 5, - AbstractBlock.Settings.copy(Blocks.ALLIUM) - ); - - public static final FlowerBlock ROOTED_ORCHID = new FlowerBlock( - StatusEffects.SATURATION, - 0.35F, - AbstractBlock.Settings.copy(Blocks.BLUE_ORCHID) - ); - - public static final TallFlowerBlock CAMPION = new CampionBlock(AbstractBlock.Settings.copy(Blocks.PEONY)); - - public static final TwigBlock TWIG = new TwigBlock( - AbstractBlock.Settings.create() - .mapColor(MapColor.OAK_TAN) - .noCollision() - .breakInstantly() - .sounds(BlockSoundGroup.GRASS) - .burnable() - .nonOpaque() - .pistonBehavior(PistonBehavior.DESTROY) - ); - - @NoBlockItem - public static final CattailStemBlock CATTAIL_STEM = new CattailStemBlock( - AbstractBlock.Settings.create() - .mapColor(MapColor.WATER_BLUE) - .replaceable() - .noCollision() - .breakInstantly() - .sounds(BlockSoundGroup.WET_GRASS) - .offset(AbstractBlock.OffsetType.XZ) - .pistonBehavior(PistonBehavior.DESTROY) - ); - - public static final CattailBlock CATTAIL = new CattailBlock(AbstractBlock.Settings.copy(CATTAIL_STEM)); - - @NoBlockItem - public static final LilyPadBlock LOTUS_LILYPAD = new LilyPadBlock(AbstractBlock.Settings.copy(Blocks.LILY_PAD)); - - @NoBlockItem - public static final Block GIANT_LILYPAD = new GiantLilyPadBlock(AbstractBlock.Settings.copy(Blocks.LILY_PAD)); - - public static final PolyporeBlock POLYPORE = new PolyporeBlock( - AbstractBlock.Settings.create() - .mapColor(MapColor.OAK_TAN) - .noCollision() - .breakInstantly() - .sounds(BlockSoundGroup.GRASS) - .pistonBehavior(PistonBehavior.DESTROY) - .solidBlock(Blocks::never) - ); - - public static final Block SCULK_JAW = new SculkJawBlock( - AbstractBlock.Settings.copy(Blocks.SCULK) - .velocityMultiplier(0.25F) - .jumpVelocityMultiplier(0.0F) - .strength(3.0F, 3.0F) - .luminance(state -> state.get(SculkJawBlock.ACTIVE) ? 6 : 0) - ); - - public static final Block JAR = new JarBlock( - AbstractBlock.Settings.create() - .mapColor(MapColor.OAK_TAN) - .strength(0.2F) - .sounds(BlockSoundGroup.GLASS) - .nonOpaque() - .pistonBehavior(PistonBehavior.DESTROY) - ); - - public static final Block FIREFLY_JAR = new FireflyJarBlock(AbstractBlock.Settings.copy(JAR) - .luminance(state -> 15)); - - public static final Block STONE_CHEST = new StoneChestBlock( - AbstractBlock.Settings.create() - .mapColor(MapColor.DEEPSLATE_GRAY) - .requiresTool() - .instrument(NoteBlockInstrument.BASEDRUM) - .strength(6.0F, 6.0F) - .sounds(BlockSoundGroup.DEEPSLATE) - ); - - public static final Block STONE_CHEST_LID = new StoneChestLidBlock(AbstractBlock.Settings.copy(STONE_CHEST) - .strength(3.0F, 6.0F)); - - // region Copper Pillar - public static final Block COPPER_PILLAR = new OxidizablePillarBlock( - Oxidizable.OxidationLevel.UNAFFECTED, - AbstractBlock.Settings.create() - .mapColor(MapColor.ORANGE) - .requiresTool() - .strength(3.0F, 6.0F) - .luminance(state -> 15) - .sounds(BlockSoundGroup.COPPER) - ); - - public static final Block EXPOSED_COPPER_PILLAR = new OxidizablePillarBlock( - Oxidizable.OxidationLevel.EXPOSED, - AbstractBlock.Settings.copy(COPPER_PILLAR).mapColor(MapColor.TERRACOTTA_LIGHT_GRAY) - ); - - public static final Block WEATHERED_COPPER_PILLAR = new OxidizablePillarBlock( - Oxidizable.OxidationLevel.WEATHERED, - AbstractBlock.Settings.copy(COPPER_PILLAR).mapColor(MapColor.DARK_AQUA) - ); - - public static final Block OXIDIZED_COPPER_PILLAR = new OxidizablePillarBlock( - Oxidizable.OxidationLevel.OXIDIZED, - AbstractBlock.Settings.copy(COPPER_PILLAR).mapColor(MapColor.TEAL) - ); - - public static final Block WAXED_COPPER_PILLAR = new PillarBlock(AbstractBlock.Settings.copy(COPPER_PILLAR)); - public static final Block WAXED_EXPOSED_COPPER_PILLAR = new PillarBlock(AbstractBlock.Settings.copy(EXPOSED_COPPER_PILLAR)); - public static final Block WAXED_WEATHERED_COPPER_PILLAR = new PillarBlock(AbstractBlock.Settings.copy(WEATHERED_COPPER_PILLAR)); - public static final Block WAXED_OXIDIZED_COPPER_PILLAR = new PillarBlock(AbstractBlock.Settings.copy(OXIDIZED_COPPER_PILLAR)); - // endregion - - @NoBlockItem - public static final Block POTTED_PAEONIA = Blocks.createFlowerPotBlock(PAEONIA); - - @NoBlockItem - public static final Block POTTED_ROOTED_ORCHID = Blocks.createFlowerPotBlock(ROOTED_ORCHID); - - // region Wildflowers -// public static final Block PINK_WILDFLOWER = new FlowerbedBlock(AbstractBlock.Settings.create() -// .mapColor(MapColor.PINK) -// .noCollision() -// .sounds(BlockSoundGroup.PINK_PETALS) -// .pistonBehavior(PistonBehavior.DESTROY)); -// -// public static final Block BLUE_WILDFLOWER = new FlowerbedBlock(AbstractBlock.Settings.create() -// .mapColor(MapColor.TERRACOTTA_BLUE) -// .noCollision() -// .sounds(BlockSoundGroup.PINK_PETALS) -// .pistonBehavior(PistonBehavior.DESTROY)); -// -// public static final Block PURPLE_WILDFLOWER = new FlowerbedBlock(AbstractBlock.Settings.create() -// .mapColor(MapColor.PURPLE) -// .noCollision() -// .sounds(BlockSoundGroup.PINK_PETALS) -// .pistonBehavior(PistonBehavior.DESTROY)); -// -// public static final Block WHITE_WILDFLOWER = new FlowerbedBlock(AbstractBlock.Settings.create() -// .mapColor(MapColor.WHITE_GRAY) -// .noCollision() -// .sounds(BlockSoundGroup.PINK_PETALS) -// .pistonBehavior(PistonBehavior.DESTROY)); - // endregion - - public static final class Tags { - public static final TagKey HOLLOW_LOGS = TagKey.of(RegistryKeys.BLOCK, Hollow.id("hollow_logs")); - - public static final TagKey POLYPORE_PLACEABLE_ON = TagKey.of(RegistryKeys.BLOCK, Hollow.id("polypore_placeable_on")); - } -} diff --git a/src/main/java/dev/spiritstudios/hollow/registry/HollowDamageTypes.java b/src/main/java/dev/spiritstudios/hollow/registry/HollowDamageTypes.java deleted file mode 100644 index afa7d30..0000000 --- a/src/main/java/dev/spiritstudios/hollow/registry/HollowDamageTypes.java +++ /dev/null @@ -1,10 +0,0 @@ -package dev.spiritstudios.hollow.registry; - -import dev.spiritstudios.hollow.Hollow; -import net.minecraft.entity.damage.DamageType; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; - -public final class HollowDamageTypes { - public static final RegistryKey SCULK_JAW = RegistryKey.of(RegistryKeys.DAMAGE_TYPE, Hollow.id("sculk_jaw")); -} diff --git a/src/main/java/dev/spiritstudios/hollow/registry/HollowDataComponentTypes.java b/src/main/java/dev/spiritstudios/hollow/registry/HollowDataComponentTypes.java deleted file mode 100644 index 26d07bf..0000000 --- a/src/main/java/dev/spiritstudios/hollow/registry/HollowDataComponentTypes.java +++ /dev/null @@ -1,12 +0,0 @@ -package dev.spiritstudios.hollow.registry; - -import dev.spiritstudios.hollow.component.CopperInstrument; -import net.minecraft.component.ComponentType; - -public final class HollowDataComponentTypes { - public static final ComponentType COPPER_INSTRUMENT = ComponentType.builder() - .codec(CopperInstrument.CODEC) - .packetCodec(CopperInstrument.PACKET_CODEC) - .cache() - .build(); -} diff --git a/src/main/java/dev/spiritstudios/hollow/registry/HollowEntityTypes.java b/src/main/java/dev/spiritstudios/hollow/registry/HollowEntityTypes.java deleted file mode 100644 index be6dce0..0000000 --- a/src/main/java/dev/spiritstudios/hollow/registry/HollowEntityTypes.java +++ /dev/null @@ -1,23 +0,0 @@ -package dev.spiritstudios.hollow.registry; - -import dev.spiritstudios.hollow.Hollow; -import dev.spiritstudios.hollow.entity.FireflyEntity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.SpawnGroup; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.registry.tag.TagKey; - -@SuppressWarnings("unused") -public final class HollowEntityTypes { - public static final EntityType FIREFLY = EntityType.Builder - .create(FireflyEntity::new, SpawnGroup.AMBIENT) - .dimensions(0.125F, 0.0625F) - .maxTrackingRange(20) - .build(); - - public static final class Tags { - public static final TagKey> IMMUNE_TO_SCULK_JAW = TagKey.of(RegistryKeys.ENTITY_TYPE, Hollow.id("immune_to_sculk_jaw")); - - public static final TagKey> POISONS_FROG = TagKey.of(RegistryKeys.ENTITY_TYPE, Hollow.id("poisons_frog")); - } -} diff --git a/src/main/java/dev/spiritstudios/hollow/registry/HollowItems.java b/src/main/java/dev/spiritstudios/hollow/registry/HollowItems.java deleted file mode 100644 index f5e4d37..0000000 --- a/src/main/java/dev/spiritstudios/hollow/registry/HollowItems.java +++ /dev/null @@ -1,31 +0,0 @@ -package dev.spiritstudios.hollow.registry; - -import dev.spiritstudios.hollow.Hollow; -import dev.spiritstudios.hollow.item.CopperHornItem; -import net.minecraft.item.Item; -import net.minecraft.item.PlaceableOnWaterItem; -import net.minecraft.item.SpawnEggItem; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.util.Rarity; - -@SuppressWarnings("unused") -public final class HollowItems { - public static final Item FIREFLY_SPAWN_EGG = new SpawnEggItem( - HollowEntityTypes.FIREFLY, - 0x102F4E, 0xCAAF94, - new Item.Settings() - ); - - public static final Item LOTUS_LILYPAD = new PlaceableOnWaterItem(HollowBlocks.LOTUS_LILYPAD, new Item.Settings()); - public static final Item GIANT_LILYPAD = new PlaceableOnWaterItem(HollowBlocks.GIANT_LILYPAD, new Item.Settings()); - - public static final Item MUSIC_DISC_POSTMORTEM = new Item( - new Item.Settings() - .maxCount(1) - .rarity(Rarity.RARE) - .jukeboxPlayable(RegistryKey.of(RegistryKeys.JUKEBOX_SONG, Hollow.id("postmortem"))) - ); - - public static final Item COPPER_HORN = new CopperHornItem(new Item.Settings().maxCount(1)); -} diff --git a/src/main/java/dev/spiritstudios/hollow/registry/HollowParticleTypes.java b/src/main/java/dev/spiritstudios/hollow/registry/HollowParticleTypes.java index ecc8857..3bb16af 100644 --- a/src/main/java/dev/spiritstudios/hollow/registry/HollowParticleTypes.java +++ b/src/main/java/dev/spiritstudios/hollow/registry/HollowParticleTypes.java @@ -5,4 +5,5 @@ public final class HollowParticleTypes { public static final SimpleParticleType FIREFLY_JAR = FabricParticleTypes.simple(); + public static final SimpleParticleType SCREAM = FabricParticleTypes.simple(); } diff --git a/src/main/java/dev/spiritstudios/hollow/registry/HollowRegistryKeys.java b/src/main/java/dev/spiritstudios/hollow/registry/HollowRegistryKeys.java new file mode 100644 index 0000000..450eac1 --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/registry/HollowRegistryKeys.java @@ -0,0 +1,19 @@ +package dev.spiritstudios.hollow.registry; + +import dev.spiritstudios.hollow.Hollow; +import dev.spiritstudios.hollow.component.CopperInstrument; +import net.fabricmc.fabric.api.event.registry.DynamicRegistries; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryKey; + +public final class HollowRegistryKeys { + public static final RegistryKey> COPPER_INSTRUMENT = of("copper_instrument"); + + private static RegistryKey> of(String id) { + return RegistryKey.ofRegistry(Hollow.id(id)); + } + + public static void init() { + DynamicRegistries.registerSynced(COPPER_INSTRUMENT, CopperInstrument.CODEC); + } +} diff --git a/src/main/java/dev/spiritstudios/hollow/registry/HollowSoundEvents.java b/src/main/java/dev/spiritstudios/hollow/registry/HollowSoundEvents.java deleted file mode 100644 index cfb7fb2..0000000 --- a/src/main/java/dev/spiritstudios/hollow/registry/HollowSoundEvents.java +++ /dev/null @@ -1,25 +0,0 @@ -package dev.spiritstudios.hollow.registry; - -import dev.spiritstudios.hollow.Hollow; -import dev.spiritstudios.specter.api.registry.annotations.Name; -import net.minecraft.sound.SoundEvent; - -public final class HollowSoundEvents { - @Name("music_disc.postmortem") - public static final SoundEvent MUSIC_DISC_POSTMORTEM = SoundEvent.of(Hollow.id("music_disc.postmortem")); - - @Name("music.birch_forest") - public static final SoundEvent MUSIC_BIRCH_FOREST = SoundEvent.of(Hollow.id("music.birch_forest")); - - @Name("music.swamp") - public static final SoundEvent MUSIC_SWAMP = SoundEvent.of(Hollow.id("music.swamp")); - - @Name("music.deep_dark") - public static final SoundEvent MUSIC_DEEP_DARK = SoundEvent.of(Hollow.id("music.deep_dark")); - - @Name("block.sculk_jaw.bite") - public static final SoundEvent SCULK_JAW_BITE = SoundEvent.of(Hollow.id("block.sculk_jaw.bite")); - - @Name("block.stone_chest.extract") - public static final SoundEvent STONE_CHEST_EXTRACT = SoundEvent.of(Hollow.id("block.stone_chest.extract")); -} diff --git a/src/main/java/dev/spiritstudios/hollow/sound/HollowJukeboxSongs.java b/src/main/java/dev/spiritstudios/hollow/sound/HollowJukeboxSongs.java new file mode 100644 index 0000000..8097c86 --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/sound/HollowJukeboxSongs.java @@ -0,0 +1,31 @@ +package dev.spiritstudios.hollow.sound; + +import dev.spiritstudios.hollow.Hollow; +import net.minecraft.block.jukebox.JukeboxSong; +import net.minecraft.registry.Registerable; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.entry.RegistryEntry; +import net.minecraft.sound.SoundEvent; +import net.minecraft.text.Text; +import net.minecraft.util.Util; + +public final class HollowJukeboxSongs { + public static final RegistryKey POSTMORTEM = of("postmortem"); + + public static void bootstrap(Registerable registry) { + register(registry, POSTMORTEM, HollowSoundEvents.MUSIC_DISC_POSTMORTEM, 84.0F, 8); + } + + private static RegistryKey of(String id) { + return RegistryKey.of(RegistryKeys.JUKEBOX_SONG , Hollow.id(id)); + } + + private static void register( + Registerable registry, RegistryKey key, RegistryEntry.Reference soundEvent, float lengthInSeconds, int comparatorOutput + ) { + registry.register( + key, new JukeboxSong(soundEvent, Text.translatable(Util.createTranslationKey("jukebox_song", key.getValue())), lengthInSeconds, comparatorOutput) + ); + } +} diff --git a/src/main/java/dev/spiritstudios/hollow/sound/HollowSoundEvents.java b/src/main/java/dev/spiritstudios/hollow/sound/HollowSoundEvents.java new file mode 100644 index 0000000..7a3fd8c --- /dev/null +++ b/src/main/java/dev/spiritstudios/hollow/sound/HollowSoundEvents.java @@ -0,0 +1,63 @@ +package dev.spiritstudios.hollow.sound; + +import dev.spiritstudios.hollow.Hollow; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.registry.entry.RegistryEntry; +import net.minecraft.sound.SoundEvent; +import net.minecraft.util.Identifier; + +public final class HollowSoundEvents { + public static final RegistryEntry.Reference MUSIC_DISC_POSTMORTEM = registerReference("music_disc.postmortem"); + public static final RegistryEntry.Reference MUSIC_OVERWORLD_BIRCH_FOREST = registerReference("music.overworld.birch_forest"); + + public static final SoundEvent BLOCK_SCULK_JAW_BITE = register("block.sculk_jaw.bite"); + public static final SoundEvent BLOCK_STONE_CHEST_EXTRACT = register("block.stone_chest.extract"); + + public static final SoundEvent ITEM_COPPER_HORN_CALL_GREAT = register("item.copper_horn.call.great"); + public static final SoundEvent ITEM_COPPER_HORN_CALL_OLD = register("item.copper_horn.call.old"); + public static final SoundEvent ITEM_COPPER_HORN_CALL_PURE = register("item.copper_horn.call.pure"); + public static final SoundEvent ITEM_COPPER_HORN_CALL_HUMBLE = register("item.copper_horn.call.humble"); + public static final SoundEvent ITEM_COPPER_HORN_CALL_DRY = register("item.copper_horn.call.dry"); + public static final SoundEvent ITEM_COPPER_HORN_CALL_CLEAR = register("item.copper_horn.call.clear"); + public static final SoundEvent ITEM_COPPER_HORN_CALL_FRESH = register("item.copper_horn.call.fresh"); + public static final SoundEvent ITEM_COPPER_HORN_CALL_SECRET = register("item.copper_horn.call.secret"); + public static final SoundEvent ITEM_COPPER_HORN_CALL_FEARLESS = register("item.copper_horn.call.fearless"); + public static final SoundEvent ITEM_COPPER_HORN_CALL_SWEET = register("item.copper_horn.call.sweet"); + + public static final SoundEvent ITEM_COPPER_HORN_MELODY_SKY = register("item.copper_horn.melody.sky"); + public static final SoundEvent ITEM_COPPER_HORN_MELODY_HYMN = register("item.copper_horn.melody.hymn"); + public static final SoundEvent ITEM_COPPER_HORN_MELODY_WATER = register("item.copper_horn.melody.water"); + public static final SoundEvent ITEM_COPPER_HORN_MELODY_FIRE = register("item.copper_horn.melody.fire"); + public static final SoundEvent ITEM_COPPER_HORN_MELODY_URGE = register("item.copper_horn.melody.urge"); + public static final SoundEvent ITEM_COPPER_HORN_MELODY_TEMPER = register("item.copper_horn.melody.temper"); + public static final SoundEvent ITEM_COPPER_HORN_MELODY_NEST = register("item.copper_horn.melody.nest"); + public static final SoundEvent ITEM_COPPER_HORN_MELODY_LAKE = register("item.copper_horn.melody.lake"); + public static final SoundEvent ITEM_COPPER_HORN_MELODY_RIVER = register("item.copper_horn.melody.river"); + public static final SoundEvent ITEM_COPPER_HORN_MELODY_MOON = register("item.copper_horn.melody.moon"); + + public static final SoundEvent ITEM_COPPER_HORN_BASS_FALLING = register("item.copper_horn.bass.falling"); + public static final SoundEvent ITEM_COPPER_HORN_BASS_RESTING = register("item.copper_horn.bass.resting"); + public static final SoundEvent ITEM_COPPER_HORN_BASS_DESIRE = register("item.copper_horn.bass.desire"); + public static final SoundEvent ITEM_COPPER_HORN_BASS_MEMORY = register("item.copper_horn.bass.memory"); + public static final SoundEvent ITEM_COPPER_HORN_BASS_ANGER = register("item.copper_horn.bass.anger"); + public static final SoundEvent ITEM_COPPER_HORN_BASS_JOURNEY = register("item.copper_horn.bass.journey"); + public static final SoundEvent ITEM_COPPER_HORN_BASS_THOUGHT = register("item.copper_horn.bass.thought"); + public static final SoundEvent ITEM_COPPER_HORN_BASS_TEAR = register("item.copper_horn.bass.tear"); + public static final SoundEvent ITEM_COPPER_HORN_BASS_GIFT = register("item.copper_horn.bass.gift"); + public static final SoundEvent ITEM_COPPER_HORN_BASS_LOVE = register("item.copper_horn.bass.love"); + + private static SoundEvent register(String path) { + Identifier id = Hollow.id(path); + return Registry.register(Registries.SOUND_EVENT, id, SoundEvent.of(id)); + } + + private static RegistryEntry.Reference registerReference(String path) { + Identifier id = Hollow.id(path); + return Registry.registerReference(Registries.SOUND_EVENT, id, SoundEvent.of(id)); + } + + public static void init() { + // NO-OP + } +} diff --git a/src/main/java/dev/spiritstudios/hollow/worldgen/HollowBiomeModifications.java b/src/main/java/dev/spiritstudios/hollow/worldgen/HollowBiomeModifications.java index f8f35d9..bbe603e 100644 --- a/src/main/java/dev/spiritstudios/hollow/worldgen/HollowBiomeModifications.java +++ b/src/main/java/dev/spiritstudios/hollow/worldgen/HollowBiomeModifications.java @@ -3,21 +3,25 @@ import dev.spiritstudios.hollow.Hollow; import dev.spiritstudios.hollow.HollowConfig; import dev.spiritstudios.hollow.entity.FireflyEntity; -import dev.spiritstudios.hollow.registry.HollowEntityTypes; -import dev.spiritstudios.hollow.registry.HollowSoundEvents; +import dev.spiritstudios.hollow.entity.HollowEntityTypes; +import dev.spiritstudios.hollow.sound.HollowSoundEvents; import dev.spiritstudios.hollow.worldgen.feature.HollowPlacedFeatures; -import net.fabricmc.fabric.api.biome.v1.*; +import net.fabricmc.fabric.api.biome.v1.BiomeModificationContext; +import net.fabricmc.fabric.api.biome.v1.BiomeModifications; +import net.fabricmc.fabric.api.biome.v1.BiomeSelectionContext; +import net.fabricmc.fabric.api.biome.v1.BiomeSelectors; +import net.fabricmc.fabric.api.biome.v1.ModificationPhase; import net.minecraft.entity.SpawnGroup; import net.minecraft.entity.SpawnRestriction; -import net.minecraft.registry.Registries; -import net.minecraft.sound.MusicSound; +import net.minecraft.sound.MusicType; import net.minecraft.world.Heightmap; import net.minecraft.world.biome.BiomeKeys; -import net.minecraft.world.gen.GenerationStep; import net.minecraft.world.gen.feature.VegetationPlacedFeatures; import java.util.function.Predicate; +import static net.minecraft.world.gen.GenerationStep.Feature.VEGETAL_DECORATION; + public class HollowBiomeModifications { public static void init() { Predicate birch = BiomeSelectors.includeByKey( @@ -40,66 +44,44 @@ public static void init() { SpawnRestriction.register(HollowEntityTypes.FIREFLY, SpawnRestriction.getLocation(HollowEntityTypes.FIREFLY), Heightmap.Type.WORLD_SURFACE, FireflyEntity::canSpawn); - BiomeModifications.create(Hollow.id("hollow_swamp")).add(ModificationPhase.ADDITIONS, BiomeSelectors.includeByKey(BiomeKeys.SWAMP), context -> { - BiomeModificationContext.GenerationSettingsContext generationSettings = context.getGenerationSettings(); - if (HollowConfig.INSTANCE.music.get()) - context.getEffects().setMusic(new MusicSound( - Registries.SOUND_EVENT.getEntry(HollowSoundEvents.MUSIC_SWAMP), - 12000, - 24000, - false - )); - - generationSettings.addFeature(GenerationStep.Feature.VEGETAL_DECORATION, HollowPlacedFeatures.HUGE_BROWN_MUSHROOM_SWAMP); + BiomeModifications.create(Hollow.id("swamp")).add(ModificationPhase.ADDITIONS, BiomeSelectors.includeByKey(BiomeKeys.SWAMP), context -> { + BiomeModificationContext.GenerationSettingsContext settings = context.getGenerationSettings(); + + settings.addFeature(VEGETAL_DECORATION, HollowPlacedFeatures.HUGE_BROWN_MUSHROOM_SWAMP); + settings.addFeature(VEGETAL_DECORATION, HollowPlacedFeatures.HUGE_RED_MUSHROOM_SWAMP); }); - BiomeModifications.create(Hollow.id("hollow_swamps")).add(ModificationPhase.ADDITIONS, swamps, context -> { - BiomeModificationContext.GenerationSettingsContext generationSettings = context.getGenerationSettings(); + BiomeModifications.create(Hollow.id("swamps")).add(ModificationPhase.ADDITIONS, swamps, context -> { + BiomeModificationContext.GenerationSettingsContext settings = context.getGenerationSettings(); - generationSettings.addFeature(GenerationStep.Feature.VEGETAL_DECORATION, HollowPlacedFeatures.PATCH_TWIG); - generationSettings.addFeature(GenerationStep.Feature.VEGETAL_DECORATION, HollowPlacedFeatures.PATCH_GIANT_LILYPAD); - generationSettings.addFeature(GenerationStep.Feature.VEGETAL_DECORATION, HollowPlacedFeatures.CATTAILS); + settings.addFeature(VEGETAL_DECORATION, HollowPlacedFeatures.PATCH_TWIG); + settings.addFeature(VEGETAL_DECORATION, HollowPlacedFeatures.PATCH_GIANT_LILYPAD); + settings.addFeature(VEGETAL_DECORATION, HollowPlacedFeatures.CATTAILS); }); BiomeModifications.addFeature( BiomeSelectors.includeByKey(BiomeKeys.FOREST, BiomeKeys.FLOWER_FOREST, BiomeKeys.SWAMP), - GenerationStep.Feature.VEGETAL_DECORATION, + VEGETAL_DECORATION, HollowPlacedFeatures.FALLEN_OAK ); - BiomeModifications.create(Hollow.id("hollow_birch")).add(ModificationPhase.ADDITIONS, birch, context -> { - BiomeModificationContext.GenerationSettingsContext generationSettings = context.getGenerationSettings(); - - if (HollowConfig.INSTANCE.music.get()) - context.getEffects().setMusic(new MusicSound( - Registries.SOUND_EVENT.getEntry(HollowSoundEvents.MUSIC_BIRCH_FOREST), - 12000, - 24000, - false - )); - - generationSettings.addFeature(GenerationStep.Feature.VEGETAL_DECORATION, HollowPlacedFeatures.PATCH_TWIG); - generationSettings.addFeature(GenerationStep.Feature.VEGETAL_DECORATION, HollowPlacedFeatures.PATCH_TALL_GRASS_BIRCH); - generationSettings.addFeature(GenerationStep.Feature.VEGETAL_DECORATION, HollowPlacedFeatures.PATCH_CAMPION); - generationSettings.addFeature(GenerationStep.Feature.VEGETAL_DECORATION, HollowPlacedFeatures.FALLEN_BIRCH); + BiomeModifications.create(Hollow.id("birch")).add(ModificationPhase.ADDITIONS, birch, context -> { + BiomeModificationContext.GenerationSettingsContext settings = context.getGenerationSettings(); + + if (HollowConfig.INSTANCE.music.get()) { + context.getEffects().setMusic(MusicType.createIngameMusic(HollowSoundEvents.MUSIC_OVERWORLD_BIRCH_FOREST)); + } + + settings.addFeature(VEGETAL_DECORATION, HollowPlacedFeatures.PATCH_TWIG); + settings.addFeature(VEGETAL_DECORATION, HollowPlacedFeatures.PATCH_TALL_GRASS_BIRCH); + settings.addFeature(VEGETAL_DECORATION, HollowPlacedFeatures.PATCH_CAMPION); + settings.addFeature(VEGETAL_DECORATION, HollowPlacedFeatures.FALLEN_BIRCH); }).add(ModificationPhase.REPLACEMENTS, birch, context -> { - BiomeModificationContext.GenerationSettingsContext generationSettings = context.getGenerationSettings(); + BiomeModificationContext.GenerationSettingsContext settings = context.getGenerationSettings(); - if (generationSettings.removeFeature(VegetationPlacedFeatures.PATCH_GRASS_FOREST)) - generationSettings.addFeature(GenerationStep.Feature.VEGETAL_DECORATION, HollowPlacedFeatures.PATCH_GRASS_BIRCH); + if (settings.removeFeature(VegetationPlacedFeatures.PATCH_GRASS_FOREST)) + settings.addFeature(VEGETAL_DECORATION, HollowPlacedFeatures.PATCH_GRASS_BIRCH); }).add(ModificationPhase.REMOVALS, birch, context -> context.getGenerationSettings().removeFeature(VegetationPlacedFeatures.PATCH_PUMPKIN)); - - BiomeModifications.create(Hollow.id("deep_dark_music")).add(ModificationPhase.ADDITIONS, BiomeSelectors.includeByKey( - BiomeKeys.DEEP_DARK - ), context -> { - if (HollowConfig.INSTANCE.music.get()) - context.getEffects().setMusic(new MusicSound( - Registries.SOUND_EVENT.getEntry(HollowSoundEvents.MUSIC_DEEP_DARK), - 12000, - 24000, - false - )); - }); } } diff --git a/src/main/java/dev/spiritstudios/hollow/worldgen/feature/CattailFeature.java b/src/main/java/dev/spiritstudios/hollow/worldgen/feature/CattailFeature.java index b337260..7946dcc 100644 --- a/src/main/java/dev/spiritstudios/hollow/worldgen/feature/CattailFeature.java +++ b/src/main/java/dev/spiritstudios/hollow/worldgen/feature/CattailFeature.java @@ -1,9 +1,8 @@ package dev.spiritstudios.hollow.worldgen.feature; -import com.mojang.serialization.Codec; import dev.spiritstudios.hollow.block.CattailBlock; import dev.spiritstudios.hollow.block.CattailStemBlock; -import dev.spiritstudios.hollow.registry.HollowBlocks; +import dev.spiritstudios.hollow.block.HollowBlocks; import net.minecraft.block.Block; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.random.Random; diff --git a/src/main/java/dev/spiritstudios/hollow/worldgen/feature/FallenTreeFeature.java b/src/main/java/dev/spiritstudios/hollow/worldgen/feature/FallenTreeFeature.java index aff4382..164be72 100644 --- a/src/main/java/dev/spiritstudios/hollow/worldgen/feature/FallenTreeFeature.java +++ b/src/main/java/dev/spiritstudios/hollow/worldgen/feature/FallenTreeFeature.java @@ -3,14 +3,11 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.spiritstudios.hollow.block.HollowLogBlock; -import dev.spiritstudios.hollow.block.PolyporeBlock; -import dev.spiritstudios.hollow.registry.HollowBlocks; import dev.spiritstudios.specter.api.core.exception.UnreachableException; import net.fabricmc.fabric.api.tag.convention.v2.ConventionalBlockTags; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; -import net.minecraft.registry.tag.BlockTags; import net.minecraft.state.property.Properties; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; @@ -57,8 +54,8 @@ public boolean generate(FeatureContext context) { if (world.isAir(pos.up())) { BlockState top = config.topBlockProvider().get(random, pos.up()); world.setBlockState(pos.up(), top, Block.NOTIFY_ALL); - if (top.isOf(Blocks.MOSS_CARPET)) - world.setBlockState(pos, state.withIfExists(HollowLogBlock.MOSSY, true), Block.NOTIFY_ALL); + + world.setBlockState(pos, state.withIfExists(HollowLogBlock.LAYER, HollowLogBlock.Layer.get(top)), Block.NOTIFY_ALL); } Direction direction = switch (axis) { @@ -70,7 +67,7 @@ public boolean generate(FeatureContext context) { BlockPos sidePos = pos.offset(direction); BlockState sideState = world.getBlockState(sidePos); if (!sideState.isAir() && !sideState.isReplaceable()) continue; - if (sideState.isOf(Blocks.TALL_GRASS) || sideState.isIn(BlockTags.TALL_FLOWERS)) continue; + if (sideState.isOf(Blocks.TALL_GRASS) || sideState.isIn(ConventionalBlockTags.TALL_FLOWERS)) continue; world.setBlockState( sidePos, diff --git a/src/main/java/dev/spiritstudios/hollow/worldgen/feature/GiantLilypadFeature.java b/src/main/java/dev/spiritstudios/hollow/worldgen/feature/GiantLilypadFeature.java index 0cac649..1547ff2 100644 --- a/src/main/java/dev/spiritstudios/hollow/worldgen/feature/GiantLilypadFeature.java +++ b/src/main/java/dev/spiritstudios/hollow/worldgen/feature/GiantLilypadFeature.java @@ -1,7 +1,7 @@ package dev.spiritstudios.hollow.worldgen.feature; import dev.spiritstudios.hollow.block.GiantLilyPadBlock; -import dev.spiritstudios.hollow.registry.HollowBlocks; +import dev.spiritstudios.hollow.block.HollowBlocks; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; @@ -32,7 +32,7 @@ public boolean generate(FeatureContext context) { if (!canPlaceAt(world, pos)) return false; - Direction facing = Direction.fromHorizontal(random.nextInt(4)); + Direction facing = Direction.fromHorizontalQuarterTurns(random.nextInt(4)); BlockState lilypadState = HollowBlocks.GIANT_LILYPAD.getDefaultState().with(GiantLilyPadBlock.FACING, facing); world.setBlockState(pos, lilypadState.with(GiantLilyPadBlock.PIECE, GiantLilyPadBlock.Piece.NORTH_WEST), Block.NOTIFY_ALL_AND_REDRAW); diff --git a/src/main/java/dev/spiritstudios/hollow/worldgen/feature/HollowConfiguredFeatures.java b/src/main/java/dev/spiritstudios/hollow/worldgen/feature/HollowConfiguredFeatures.java index 6eebfdf..38aca22 100644 --- a/src/main/java/dev/spiritstudios/hollow/worldgen/feature/HollowConfiguredFeatures.java +++ b/src/main/java/dev/spiritstudios/hollow/worldgen/feature/HollowConfiguredFeatures.java @@ -2,9 +2,8 @@ import dev.spiritstudios.hollow.Hollow; import dev.spiritstudios.hollow.block.PolyporeBlock; -import dev.spiritstudios.hollow.registry.HollowBlocks; -import dev.spiritstudios.hollow.registry.HollowFeatures; -import dev.spiritstudios.hollow.worldgen.foliage.BlobWithHangingFoliagePlacer; +import dev.spiritstudios.hollow.block.HollowBlocks; +import dev.spiritstudios.hollow.worldgen.tree.foliage.BlobWithHangingFoliagePlacer; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; @@ -13,7 +12,7 @@ import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.util.Identifier; -import net.minecraft.util.collection.DataPool; +import net.minecraft.util.collection.Pool; import net.minecraft.util.math.intprovider.ConstantIntProvider; import net.minecraft.world.gen.feature.*; import net.minecraft.world.gen.feature.size.TwoLayersFeatureSize; @@ -31,19 +30,19 @@ public final class HollowConfiguredFeatures { public static final RegistryKey> CATTAILS = of("cattails"); - public static void bootstrap(Registerable> featureRegisterable) { - featureRegisterable.register( + public static void bootstrap(Registerable> registerable) { + registerable.register( FALLEN_OAK, new ConfiguredFeature<>( HollowFeatures.FALLEN_TREE, new FallenTreeFeature.Config( BlockStateProvider.of(HollowBlocks.OAK_HOLLOW_LOG), 3, 2, - new WeightedBlockStateProvider(DataPool.builder() + new WeightedBlockStateProvider(Pool.builder() .add(Blocks.AIR.getDefaultState(), 5) .add(Blocks.MOSS_CARPET.getDefaultState(), 5) .build()), - new WeightedBlockStateProvider(DataPool.builder() + new WeightedBlockStateProvider(Pool.builder() .add(Blocks.AIR.getDefaultState(), 6) .add(Blocks.VINE.getDefaultState(), 4) .build()) @@ -51,18 +50,18 @@ public static void bootstrap(Registerable> featureRegist ) ); - featureRegisterable.register( + registerable.register( FALLEN_BIRCH, new ConfiguredFeature<>( HollowFeatures.FALLEN_TREE, new FallenTreeFeature.Config( BlockStateProvider.of(HollowBlocks.BIRCH_HOLLOW_LOG), 3, 2, - new WeightedBlockStateProvider(DataPool.builder() + new WeightedBlockStateProvider(Pool.builder() .add(Blocks.AIR.getDefaultState(), 5) .add(Blocks.MOSS_CARPET.getDefaultState(), 5) .build()), - new WeightedBlockStateProvider(DataPool.builder() + new WeightedBlockStateProvider(Pool.builder() .add(Blocks.AIR.getDefaultState(), 4) .add(HollowBlocks.POLYPORE.getDefaultState().with(PolyporeBlock.POLYPORE_AMOUNT, 1), 2) .add(HollowBlocks.POLYPORE.getDefaultState().with(PolyporeBlock.POLYPORE_AMOUNT, 2), 2) @@ -72,9 +71,9 @@ public static void bootstrap(Registerable> featureRegist ) ); - featureRegisterable.register(PATCH_TWIG, createRandomPatch(HollowBlocks.TWIG, 10)); - featureRegisterable.register(PATCH_CAMPION, createRandomPatch(HollowBlocks.CAMPION, 96)); - featureRegisterable.register( + registerable.register(PATCH_TWIG, createRandomPatch(HollowBlocks.TWIG, 10)); + registerable.register(PATCH_CAMPION, createRandomPatch(HollowBlocks.CAMPION, 96)); + registerable.register( PATCH_GIANT_LILYPAD, createRandomPatch( PlacedFeatures.createEntry(HollowFeatures.GIANT_LILYPAD, new DefaultFeatureConfig()), @@ -82,7 +81,7 @@ public static void bootstrap(Registerable> featureRegist ) ); - featureRegisterable.register( + registerable.register( CATTAILS, new ConfiguredFeature<>( HollowFeatures.CATTAILS, diff --git a/src/main/java/dev/spiritstudios/hollow/registry/HollowFeatures.java b/src/main/java/dev/spiritstudios/hollow/worldgen/feature/HollowFeatures.java similarity index 65% rename from src/main/java/dev/spiritstudios/hollow/registry/HollowFeatures.java rename to src/main/java/dev/spiritstudios/hollow/worldgen/feature/HollowFeatures.java index 653eb50..9052173 100644 --- a/src/main/java/dev/spiritstudios/hollow/registry/HollowFeatures.java +++ b/src/main/java/dev/spiritstudios/hollow/worldgen/feature/HollowFeatures.java @@ -1,8 +1,5 @@ -package dev.spiritstudios.hollow.registry; +package dev.spiritstudios.hollow.worldgen.feature; -import dev.spiritstudios.hollow.worldgen.feature.CattailFeature; -import dev.spiritstudios.hollow.worldgen.feature.FallenTreeFeature; -import dev.spiritstudios.hollow.worldgen.feature.GiantLilypadFeature; import net.minecraft.world.gen.feature.DefaultFeatureConfig; import net.minecraft.world.gen.feature.Feature; diff --git a/src/main/java/dev/spiritstudios/hollow/worldgen/feature/HollowPlacedFeatures.java b/src/main/java/dev/spiritstudios/hollow/worldgen/feature/HollowPlacedFeatures.java index f1bcd74..98cae50 100644 --- a/src/main/java/dev/spiritstudios/hollow/worldgen/feature/HollowPlacedFeatures.java +++ b/src/main/java/dev/spiritstudios/hollow/worldgen/feature/HollowPlacedFeatures.java @@ -24,6 +24,7 @@ public final class HollowPlacedFeatures { public static final RegistryKey FALLEN_OAK = of("fallen_oak"); public static final RegistryKey HUGE_BROWN_MUSHROOM_SWAMP = of("huge_brown_mushroom_swamp"); + public static final RegistryKey HUGE_RED_MUSHROOM_SWAMP = of("huge_red_mushroom_swamp"); public static void bootstrap(Registerable featureRegisterable) { PlacedFeatureHelper helper = new PlacedFeatureHelper(featureRegisterable.getRegistryLookup(RegistryKeys.CONFIGURED_FEATURE), featureRegisterable); @@ -104,6 +105,16 @@ public static void bootstrap(Registerable featureRegisterable) { SquarePlacementModifier.of() ); + helper.add( + HUGE_RED_MUSHROOM_SWAMP, + TreeConfiguredFeatures.HUGE_RED_MUSHROOM, + CountPlacementModifier.of(1), + RarityFilterPlacementModifier.of(2), + HeightmapPlacementModifier.of(Heightmap.Type.MOTION_BLOCKING), + BiomePlacementModifier.of(), + SquarePlacementModifier.of() + ); + helper.add( PATCH_GIANT_LILYPAD, HollowConfiguredFeatures.PATCH_GIANT_LILYPAD, diff --git a/src/main/java/dev/spiritstudios/hollow/worldgen/decorator/BigBranchTreeDecorator.java b/src/main/java/dev/spiritstudios/hollow/worldgen/tree/decorator/BigBranchTreeDecorator.java similarity index 92% rename from src/main/java/dev/spiritstudios/hollow/worldgen/decorator/BigBranchTreeDecorator.java rename to src/main/java/dev/spiritstudios/hollow/worldgen/tree/decorator/BigBranchTreeDecorator.java index e274002..2621d1f 100644 --- a/src/main/java/dev/spiritstudios/hollow/worldgen/decorator/BigBranchTreeDecorator.java +++ b/src/main/java/dev/spiritstudios/hollow/worldgen/tree/decorator/BigBranchTreeDecorator.java @@ -1,9 +1,8 @@ -package dev.spiritstudios.hollow.worldgen.decorator; +package dev.spiritstudios.hollow.worldgen.tree.decorator; import com.mojang.serialization.Codec; import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import dev.spiritstudios.hollow.registry.HollowTreeDecoratorTypes; import it.unimi.dsi.fastutil.objects.ObjectArrayList; import net.minecraft.block.BlockState; import net.minecraft.state.property.Properties; @@ -41,7 +40,7 @@ public void generate(Generator generator) { for (BlockPos pos : logs) { if (pos.getY() < (logs.getFirst().getY() + logs.getLast().getY()) / 2) continue; - Direction direction = Direction.fromHorizontal(random.nextInt(4)); + Direction direction = Direction.fromHorizontalQuarterTurns(random.nextInt(4)); BlockPos branch = pos.offset(direction); if (!generator.isAir(branch)) continue; diff --git a/src/main/java/dev/spiritstudios/hollow/worldgen/decorator/BranchTreeDecorator.java b/src/main/java/dev/spiritstudios/hollow/worldgen/tree/decorator/BranchTreeDecorator.java similarity index 95% rename from src/main/java/dev/spiritstudios/hollow/worldgen/decorator/BranchTreeDecorator.java rename to src/main/java/dev/spiritstudios/hollow/worldgen/tree/decorator/BranchTreeDecorator.java index 8e0d675..1d5429a 100644 --- a/src/main/java/dev/spiritstudios/hollow/worldgen/decorator/BranchTreeDecorator.java +++ b/src/main/java/dev/spiritstudios/hollow/worldgen/tree/decorator/BranchTreeDecorator.java @@ -1,9 +1,8 @@ -package dev.spiritstudios.hollow.worldgen.decorator; +package dev.spiritstudios.hollow.worldgen.tree.decorator; import com.mojang.serialization.Codec; import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import dev.spiritstudios.hollow.registry.HollowTreeDecoratorTypes; import it.unimi.dsi.fastutil.objects.ObjectArrayList; import net.minecraft.block.BeehiveBlock; import net.minecraft.block.BlockState; @@ -58,7 +57,7 @@ public void generate(Generator generator) { if (pos.getY() < (logs.getFirst().getY() + logs.getLast().getY()) / 2) continue; - Direction direction = Direction.fromHorizontal(random.nextInt(4)); + Direction direction = Direction.fromHorizontalQuarterTurns(random.nextInt(4)); BlockPos branch = pos.offset(direction); if (branches.contains(pos.getY() + 1) || branches.contains(pos.getY() - 1)) continue; diff --git a/src/main/java/dev/spiritstudios/hollow/registry/HollowTreeDecoratorTypes.java b/src/main/java/dev/spiritstudios/hollow/worldgen/tree/decorator/HollowTreeDecoratorTypes.java similarity index 68% rename from src/main/java/dev/spiritstudios/hollow/registry/HollowTreeDecoratorTypes.java rename to src/main/java/dev/spiritstudios/hollow/worldgen/tree/decorator/HollowTreeDecoratorTypes.java index e293ab5..2d9d796 100644 --- a/src/main/java/dev/spiritstudios/hollow/registry/HollowTreeDecoratorTypes.java +++ b/src/main/java/dev/spiritstudios/hollow/worldgen/tree/decorator/HollowTreeDecoratorTypes.java @@ -1,8 +1,5 @@ -package dev.spiritstudios.hollow.registry; +package dev.spiritstudios.hollow.worldgen.tree.decorator; -import dev.spiritstudios.hollow.worldgen.decorator.BigBranchTreeDecorator; -import dev.spiritstudios.hollow.worldgen.decorator.BranchTreeDecorator; -import dev.spiritstudios.hollow.worldgen.decorator.PolyporeTreeDecorator; import net.minecraft.world.gen.treedecorator.TreeDecoratorType; @SuppressWarnings("unused") diff --git a/src/main/java/dev/spiritstudios/hollow/worldgen/decorator/PolyporeTreeDecorator.java b/src/main/java/dev/spiritstudios/hollow/worldgen/tree/decorator/PolyporeTreeDecorator.java similarity index 89% rename from src/main/java/dev/spiritstudios/hollow/worldgen/decorator/PolyporeTreeDecorator.java rename to src/main/java/dev/spiritstudios/hollow/worldgen/tree/decorator/PolyporeTreeDecorator.java index e4dc2a1..919192b 100644 --- a/src/main/java/dev/spiritstudios/hollow/worldgen/decorator/PolyporeTreeDecorator.java +++ b/src/main/java/dev/spiritstudios/hollow/worldgen/tree/decorator/PolyporeTreeDecorator.java @@ -1,8 +1,7 @@ -package dev.spiritstudios.hollow.worldgen.decorator; +package dev.spiritstudios.hollow.worldgen.tree.decorator; import com.mojang.serialization.MapCodec; import dev.spiritstudios.hollow.block.PolyporeBlock; -import dev.spiritstudios.hollow.registry.HollowTreeDecoratorTypes; import net.minecraft.block.BlockState; import net.minecraft.state.property.Properties; import net.minecraft.util.math.BlockPos; @@ -36,7 +35,7 @@ public void generate(Generator generator) { List logs = generator.getLogPositions(); for (BlockPos pos : logs) { - Direction direction = Direction.fromHorizontal(random.nextInt(4)); + Direction direction = Direction.fromHorizontalQuarterTurns(random.nextInt(4)); BlockPos polyporePos = pos.offset(direction); if (!generator.isAir(polyporePos)) continue; diff --git a/src/main/java/dev/spiritstudios/hollow/worldgen/foliage/BlobWithHangingFoliagePlacer.java b/src/main/java/dev/spiritstudios/hollow/worldgen/tree/foliage/BlobWithHangingFoliagePlacer.java similarity index 96% rename from src/main/java/dev/spiritstudios/hollow/worldgen/foliage/BlobWithHangingFoliagePlacer.java rename to src/main/java/dev/spiritstudios/hollow/worldgen/tree/foliage/BlobWithHangingFoliagePlacer.java index 577dc65..6f94385 100644 --- a/src/main/java/dev/spiritstudios/hollow/worldgen/foliage/BlobWithHangingFoliagePlacer.java +++ b/src/main/java/dev/spiritstudios/hollow/worldgen/tree/foliage/BlobWithHangingFoliagePlacer.java @@ -1,9 +1,8 @@ -package dev.spiritstudios.hollow.worldgen.foliage; +package dev.spiritstudios.hollow.worldgen.tree.foliage; import com.mojang.serialization.Codec; import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import dev.spiritstudios.hollow.registry.HollowFoliagePlacerTypes; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.intprovider.IntProvider; import net.minecraft.util.math.random.Random; diff --git a/src/main/java/dev/spiritstudios/hollow/registry/HollowFoliagePlacerTypes.java b/src/main/java/dev/spiritstudios/hollow/worldgen/tree/foliage/HollowFoliagePlacerTypes.java similarity index 68% rename from src/main/java/dev/spiritstudios/hollow/registry/HollowFoliagePlacerTypes.java rename to src/main/java/dev/spiritstudios/hollow/worldgen/tree/foliage/HollowFoliagePlacerTypes.java index d8dfe4c..52c4508 100644 --- a/src/main/java/dev/spiritstudios/hollow/registry/HollowFoliagePlacerTypes.java +++ b/src/main/java/dev/spiritstudios/hollow/worldgen/tree/foliage/HollowFoliagePlacerTypes.java @@ -1,6 +1,5 @@ -package dev.spiritstudios.hollow.registry; +package dev.spiritstudios.hollow.worldgen.tree.foliage; -import dev.spiritstudios.hollow.worldgen.foliage.BlobWithHangingFoliagePlacer; import net.minecraft.world.gen.foliage.FoliagePlacerType; public final class HollowFoliagePlacerTypes { diff --git a/src/main/resources/LICENSE.txt b/src/main/resources/LICENSE.txt deleted file mode 100644 index 8336a87..0000000 --- a/src/main/resources/LICENSE.txt +++ /dev/null @@ -1,7 +0,0 @@ -The sounds and soundtrack for Hollow are created by WorldWidePixel. - -Spirit Studios has full rights to use and profit off this music for any work created that may use this music, as authorised by WorldWidePixel. - -This music is not free, please contact WorldWidePixel for licensing, @worldwidepixel on Discord. - -Copyright (c) (2024 -) WorldWidePixel, All Rights Reserved. diff --git a/src/main/resources/assets/hollow/blockstates/cattail_stem.json b/src/main/resources/assets/hollow/blockstates/cattail_stem.json deleted file mode 100644 index cd8d7b7..0000000 --- a/src/main/resources/assets/hollow/blockstates/cattail_stem.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "bottom=false": [ - { - "model": "hollow:block/cattail_middle" - }, - { - "model": "hollow:block/cattail_middle_2" - } - ], - "bottom=true": { "model": "hollow:block/cattail_base" } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/de_de.json b/src/main/resources/assets/hollow/lang/de_de.json new file mode 100644 index 0000000..4139816 --- /dev/null +++ b/src/main/resources/assets/hollow/lang/de_de.json @@ -0,0 +1,101 @@ +{ + "item_group.hollow.hollow": "Hollow", + "block.hollow.oak_hollow_log": "Hollow Oak Log", + "block.hollow.stripped_oak_hollow_log": "Hollow Stripped Oak Log", + "block.hollow.spruce_hollow_log": "Hollow Spruce Log", + "block.hollow.stripped_spruce_hollow_log": "Hollow Stripped Spruce Log", + "block.hollow.birch_hollow_log": "Hollow Birch Log", + "block.hollow.stripped_birch_hollow_log": "Hollow Stripped Birch Log", + "block.hollow.jungle_hollow_log": "Hollow Jungle Log", + "block.hollow.stripped_jungle_hollow_log": "Hollow Stripped Jungle Log", + "block.hollow.acacia_hollow_log": "Hollow Acacia Log", + "block.hollow.stripped_acacia_hollow_log": "Hollow Stripped Acacia Log", + "block.hollow.dark_oak_hollow_log": "Hollow Dark Oak Log", + "block.hollow.stripped_dark_oak_hollow_log": "Hollow Stripped Dark Oak Log", + "block.hollow.crimson_hollow_stem": "Hollow Crimson Stem", + "block.hollow.stripped_crimson_hollow_stem": "Hollow Stripped Crimson Stem", + "block.hollow.warped_hollow_stem": "Hollow Warped Stem", + "block.hollow.stripped_warped_hollow_stem": "Hollow Stripped Warped Stem", + "block.hollow.mangrove_hollow_log": "Hollow Mangrove Log", + "block.hollow.stripped_mangrove_hollow_log": "Hollow Stripped Mangrove Log", + "block.hollow.cherry_hollow_log": "Hollow Cherry Log", + "block.hollow.stripped_cherry_hollow_log": "Hollow Stripped Cherry Log", + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", + "block.hollow.paeonia": "Paeonia", + "block.hollow.rooted_orchid": "Rooted Orchid", + "block.hollow.campion": "Campion", + "block.hollow.polypore": "Polypore", + "block.hollow.lotus_lilypad": "Flowering Lily Pad", + "block.hollow.giant_lilypad": "Giant Lily Pad", + "block.hollow.twig": "Twig", + "block.hollow.sculk_jaw": "Sculk Jaw", + "block.hollow.jar": "Jar", + "block.hollow.firefly_jar": "Firefly Jar", + "block.hollow.echoing_pot": "Echoing Pot", + "block.hollow.stone_chest": "Stone Chest", + "block.hollow.stone_chest_lid": "Stone Chest Lid", + "block.hollow.cattail": "Cattail", + "death.attack.sculk_jaw.player": "%1$s was ripped to shreds", + "death.attack.sculk_jaw": "%1$s was ripped to shreds", + "item.hollow.firefly_spawn_egg": "Firefly Spawn Egg", + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "subtitles.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "copper_horn.great_sky_falling": "Great Sky Falling", + "copper_horn.old_hymn_resting": "Old Hymn Resting", + "copper_horn.pure_water_desire": "Pure Water Desire", + "copper_horn.humble_fire_memory": "Humble Fire Memory", + "copper_horn.dry_urge_anger": "Dry Urge Anger", + "copper_horn.clear_temper_journey": "Clear Temper Journey", + "copper_horn.fresh_nest_thought": "Fresh Nest Thought", + "copper_horn.secret_lake_tear": "Secret Lake Tear", + "copper_horn.fearless_river_gift": "Fearless River Gift", + "copper_horn.sweet_moon_love": "Sweet Moon Love", + "subtitles.copper_horn.great": "Great", + "subtitles.copper_horn.sky": "Sky", + "subtitles.copper_horn.falling": "Falling", + "subtitles.copper_horn.old": "Old", + "subtitles.copper_horn.hymn": "Hymn", + "subtitles.copper_horn.resting": "Resting", + "subtitles.copper_horn.pure": "Pure", + "subtitles.copper_horn.water": "Water", + "subtitles.copper_horn.desire": "Desire", + "subtitles.copper_horn.humble": "Humble", + "subtitles.copper_horn.fire": "Fire", + "subtitles.copper_horn.memory": "Memory", + "subtitles.copper_horn.dry": "Dry", + "subtitles.copper_horn.urge": "Urge", + "subtitles.copper_horn.anger": "Anger", + "subtitles.copper_horn.clear": "Clear", + "subtitles.copper_horn.temper": "Temper", + "subtitles.copper_horn.journey": "Journey", + "subtitles.copper_horn.fresh": "Fresh", + "subtitles.copper_horn.nest": "Nest", + "subtitles.copper_horn.thought": "Thought", + "subtitles.copper_horn.secret": "Secret", + "subtitles.copper_horn.lake": "Lake", + "subtitles.copper_horn.tear": "Tear", + "subtitles.copper_horn.fearless": "Fearless", + "subtitles.copper_horn.river": "River", + "subtitles.copper_horn.gift": "Gift", + "subtitles.copper_horn.sweet": "Sweet", + "subtitles.copper_horn.moon": "Moon", + "subtitles.copper_horn.love": "Love", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" +} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/en_gb.json b/src/main/resources/assets/hollow/lang/en_gb.json new file mode 100644 index 0000000..4139816 --- /dev/null +++ b/src/main/resources/assets/hollow/lang/en_gb.json @@ -0,0 +1,101 @@ +{ + "item_group.hollow.hollow": "Hollow", + "block.hollow.oak_hollow_log": "Hollow Oak Log", + "block.hollow.stripped_oak_hollow_log": "Hollow Stripped Oak Log", + "block.hollow.spruce_hollow_log": "Hollow Spruce Log", + "block.hollow.stripped_spruce_hollow_log": "Hollow Stripped Spruce Log", + "block.hollow.birch_hollow_log": "Hollow Birch Log", + "block.hollow.stripped_birch_hollow_log": "Hollow Stripped Birch Log", + "block.hollow.jungle_hollow_log": "Hollow Jungle Log", + "block.hollow.stripped_jungle_hollow_log": "Hollow Stripped Jungle Log", + "block.hollow.acacia_hollow_log": "Hollow Acacia Log", + "block.hollow.stripped_acacia_hollow_log": "Hollow Stripped Acacia Log", + "block.hollow.dark_oak_hollow_log": "Hollow Dark Oak Log", + "block.hollow.stripped_dark_oak_hollow_log": "Hollow Stripped Dark Oak Log", + "block.hollow.crimson_hollow_stem": "Hollow Crimson Stem", + "block.hollow.stripped_crimson_hollow_stem": "Hollow Stripped Crimson Stem", + "block.hollow.warped_hollow_stem": "Hollow Warped Stem", + "block.hollow.stripped_warped_hollow_stem": "Hollow Stripped Warped Stem", + "block.hollow.mangrove_hollow_log": "Hollow Mangrove Log", + "block.hollow.stripped_mangrove_hollow_log": "Hollow Stripped Mangrove Log", + "block.hollow.cherry_hollow_log": "Hollow Cherry Log", + "block.hollow.stripped_cherry_hollow_log": "Hollow Stripped Cherry Log", + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", + "block.hollow.paeonia": "Paeonia", + "block.hollow.rooted_orchid": "Rooted Orchid", + "block.hollow.campion": "Campion", + "block.hollow.polypore": "Polypore", + "block.hollow.lotus_lilypad": "Flowering Lily Pad", + "block.hollow.giant_lilypad": "Giant Lily Pad", + "block.hollow.twig": "Twig", + "block.hollow.sculk_jaw": "Sculk Jaw", + "block.hollow.jar": "Jar", + "block.hollow.firefly_jar": "Firefly Jar", + "block.hollow.echoing_pot": "Echoing Pot", + "block.hollow.stone_chest": "Stone Chest", + "block.hollow.stone_chest_lid": "Stone Chest Lid", + "block.hollow.cattail": "Cattail", + "death.attack.sculk_jaw.player": "%1$s was ripped to shreds", + "death.attack.sculk_jaw": "%1$s was ripped to shreds", + "item.hollow.firefly_spawn_egg": "Firefly Spawn Egg", + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "subtitles.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "copper_horn.great_sky_falling": "Great Sky Falling", + "copper_horn.old_hymn_resting": "Old Hymn Resting", + "copper_horn.pure_water_desire": "Pure Water Desire", + "copper_horn.humble_fire_memory": "Humble Fire Memory", + "copper_horn.dry_urge_anger": "Dry Urge Anger", + "copper_horn.clear_temper_journey": "Clear Temper Journey", + "copper_horn.fresh_nest_thought": "Fresh Nest Thought", + "copper_horn.secret_lake_tear": "Secret Lake Tear", + "copper_horn.fearless_river_gift": "Fearless River Gift", + "copper_horn.sweet_moon_love": "Sweet Moon Love", + "subtitles.copper_horn.great": "Great", + "subtitles.copper_horn.sky": "Sky", + "subtitles.copper_horn.falling": "Falling", + "subtitles.copper_horn.old": "Old", + "subtitles.copper_horn.hymn": "Hymn", + "subtitles.copper_horn.resting": "Resting", + "subtitles.copper_horn.pure": "Pure", + "subtitles.copper_horn.water": "Water", + "subtitles.copper_horn.desire": "Desire", + "subtitles.copper_horn.humble": "Humble", + "subtitles.copper_horn.fire": "Fire", + "subtitles.copper_horn.memory": "Memory", + "subtitles.copper_horn.dry": "Dry", + "subtitles.copper_horn.urge": "Urge", + "subtitles.copper_horn.anger": "Anger", + "subtitles.copper_horn.clear": "Clear", + "subtitles.copper_horn.temper": "Temper", + "subtitles.copper_horn.journey": "Journey", + "subtitles.copper_horn.fresh": "Fresh", + "subtitles.copper_horn.nest": "Nest", + "subtitles.copper_horn.thought": "Thought", + "subtitles.copper_horn.secret": "Secret", + "subtitles.copper_horn.lake": "Lake", + "subtitles.copper_horn.tear": "Tear", + "subtitles.copper_horn.fearless": "Fearless", + "subtitles.copper_horn.river": "River", + "subtitles.copper_horn.gift": "Gift", + "subtitles.copper_horn.sweet": "Sweet", + "subtitles.copper_horn.moon": "Moon", + "subtitles.copper_horn.love": "Love", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" +} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/en_us.json b/src/main/resources/assets/hollow/lang/en_us.json index 4139816..183f7c2 100644 --- a/src/main/resources/assets/hollow/lang/en_us.json +++ b/src/main/resources/assets/hollow/lang/en_us.json @@ -20,6 +20,8 @@ "block.hollow.stripped_mangrove_hollow_log": "Hollow Stripped Mangrove Log", "block.hollow.cherry_hollow_log": "Hollow Cherry Log", "block.hollow.stripped_cherry_hollow_log": "Hollow Stripped Cherry Log", + "block.hollow.pale_oak_hollow_log": "Hollow Pale Oak Log", + "block.hollow.stripped_pale_oak_hollow_log": "Hollow Stripped Pale Oak Log", "block.hollow.copper_pillar": "Copper Pillar", "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", @@ -48,53 +50,59 @@ "item.hollow.music_disc_postmortem": "Music Disc", "item.hollow.copper_horn": "Copper Horn", "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", - "subtitles.block.sculk_jaw.bite": "Sculk Jaw bites", + "music.game.wildflower": "WorldWidePixel - Wildflower", + "music.game.waterlily": "WorldWidePixel - Waterlily", + "music.game.echo": "WorldWidePixel - Echo", + "music.game.floraison": "WorldWidePixel - Floraison", + "subtitles.hollow.block.sculk_jaw.bite": "Sculk Jaw bites", "config.hollow.hollow.title": "Hollow", "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", "config.hollow.hollow.music": "Music", "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", - "copper_horn.great_sky_falling": "Great Sky Falling", - "copper_horn.old_hymn_resting": "Old Hymn Resting", - "copper_horn.pure_water_desire": "Pure Water Desire", - "copper_horn.humble_fire_memory": "Humble Fire Memory", - "copper_horn.dry_urge_anger": "Dry Urge Anger", - "copper_horn.clear_temper_journey": "Clear Temper Journey", - "copper_horn.fresh_nest_thought": "Fresh Nest Thought", - "copper_horn.secret_lake_tear": "Secret Lake Tear", - "copper_horn.fearless_river_gift": "Fearless River Gift", - "copper_horn.sweet_moon_love": "Sweet Moon Love", - "subtitles.copper_horn.great": "Great", - "subtitles.copper_horn.sky": "Sky", - "subtitles.copper_horn.falling": "Falling", - "subtitles.copper_horn.old": "Old", - "subtitles.copper_horn.hymn": "Hymn", - "subtitles.copper_horn.resting": "Resting", - "subtitles.copper_horn.pure": "Pure", - "subtitles.copper_horn.water": "Water", - "subtitles.copper_horn.desire": "Desire", - "subtitles.copper_horn.humble": "Humble", - "subtitles.copper_horn.fire": "Fire", - "subtitles.copper_horn.memory": "Memory", - "subtitles.copper_horn.dry": "Dry", - "subtitles.copper_horn.urge": "Urge", - "subtitles.copper_horn.anger": "Anger", - "subtitles.copper_horn.clear": "Clear", - "subtitles.copper_horn.temper": "Temper", - "subtitles.copper_horn.journey": "Journey", - "subtitles.copper_horn.fresh": "Fresh", - "subtitles.copper_horn.nest": "Nest", - "subtitles.copper_horn.thought": "Thought", - "subtitles.copper_horn.secret": "Secret", - "subtitles.copper_horn.lake": "Lake", - "subtitles.copper_horn.tear": "Tear", - "subtitles.copper_horn.fearless": "Fearless", - "subtitles.copper_horn.river": "River", - "subtitles.copper_horn.gift": "Gift", - "subtitles.copper_horn.sweet": "Sweet", - "subtitles.copper_horn.moon": "Moon", - "subtitles.copper_horn.love": "Love", + "item.hollow.copper_horn.hollow.great_sky_falling": "Great Sky Falling", + "item.hollow.copper_horn.hollow.old_hymn_resting": "Old Hymn Resting", + "item.hollow.copper_horn.hollow.pure_water_desire": "Pure Water Desire", + "item.hollow.copper_horn.hollow.humble_fire_memory": "Humble Fire Memory", + "item.hollow.copper_horn.hollow.dry_urge_anger": "Dry Urge Anger", + "item.hollow.copper_horn.hollow.clear_temper_journey": "Clear Temper Journey", + "item.hollow.copper_horn.hollow.fresh_nest_thought": "Fresh Nest Thought", + "item.hollow.copper_horn.hollow.secret_lake_tear": "Secret Lake Tear", + "item.hollow.copper_horn.hollow.fearless_river_gift": "Fearless River Gift", + "item.hollow.copper_horn.hollow.sweet_moon_love": "Sweet Moon Love", + "subtitles.hollow.item.copper_horn.call.great": "Great", + "subtitles.hollow.item.copper_horn.melody.sky": "Sky", + "subtitles.hollow.item.copper_horn.bass.falling": "Falling", + "subtitles.hollow.item.copper_horn.call.old": "Old", + "subtitles.hollow.item.copper_horn.melody.hymn": "Hymn", + "subtitles.hollow.item.copper_horn.bass.resting": "Resting", + "subtitles.hollow.item.copper_horn.call.pure": "Pure", + "subtitles.hollow.item.copper_horn.melody.water": "Water", + "subtitles.hollow.item.copper_horn.bass.desire": "Desire", + "subtitles.hollow.item.copper_horn.call.humble": "Humble", + "subtitles.hollow.item.copper_horn.melody.fire": "Fire", + "subtitles.hollow.item.copper_horn.bass.memory": "Memory", + "subtitles.hollow.item.copper_horn.call.dry": "Dry", + "subtitles.hollow.item.copper_horn.melody.urge": "Urge", + "subtitles.hollow.item.copper_horn.bass.anger": "Anger", + "subtitles.hollow.item.copper_horn.call.clear": "Clear", + "subtitles.hollow.item.copper_horn.melody.temper": "Temper", + "subtitles.hollow.item.copper_horn.bass.journey": "Journey", + "subtitles.hollow.item.copper_horn.call.fresh": "Fresh", + "subtitles.hollow.item.copper_horn.melody.nest": "Nest", + "subtitles.hollow.item.copper_horn.bass.thought": "Thought", + "subtitles.hollow.item.copper_horn.call.secret": "Secret", + "subtitles.hollow.item.copper_horn.melody.lake": "Lake", + "subtitles.hollow.item.copper_horn.bass.tear": "Tear", + "subtitles.hollow.item.copper_horn.call.fearless": "Fearless", + "subtitles.hollow.item.copper_horn.melody.river": "River", + "subtitles.hollow.item.copper_horn.bass.gift": "Gift", + "subtitles.hollow.item.copper_horn.call.sweet": "Sweet", + "subtitles.hollow.item.copper_horn.melody.moon": "Moon", + "subtitles.hollow.item.copper_horn.bass.love": "Love", + "subtitles.hollow.block.stone_chest.extract": "Stone Chest opens", "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "gamerule.copperBulbDelay": "Copper bulb delay", "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", "entity.hollow.firefly": "Firefly" diff --git a/src/main/resources/assets/hollow/lang/es_ar.json b/src/main/resources/assets/hollow/lang/es_ar.json index 671d545..79a55f4 100644 --- a/src/main/resources/assets/hollow/lang/es_ar.json +++ b/src/main/resources/assets/hollow/lang/es_ar.json @@ -20,10 +20,22 @@ "block.hollow.stripped_mangrove_hollow_log": "Tronco hueco de mangle sin corteza", "block.hollow.cherry_hollow_log": "Tronco hueco de cerezo", "block.hollow.stripped_cherry_hollow_log": "Tronco hueco de cerezo sin corteza", + "block.hollow.pale_oak_hollow_log": "Hollow Pale Oak Log", + "block.hollow.stripped_pale_oak_hollow_log": "Hollow Stripped Pale Oak Log", + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", "block.hollow.paeonia": "Albardera", + "block.hollow.rooted_orchid": "Rooted Orchid", "block.hollow.campion": "Silene", "block.hollow.polypore": "Políporo", "block.hollow.lotus_lilypad": "Nenúfar florecida", + "block.hollow.giant_lilypad": "Giant Lily Pad", "block.hollow.twig": "Ramita", "block.hollow.sculk_jaw": "Mandíbula de skulk", "block.hollow.jar": "Jara", @@ -31,10 +43,67 @@ "block.hollow.echoing_pot": "Maceta resonante", "block.hollow.stone_chest": "Cofre de piedra", "block.hollow.stone_chest_lid": "Cubierta para cofre de piedra", - "block.hollow.root_vines": "Enredaderas de raíz", + "block.hollow.cattail": "Cattail", "death.attack.sculk_jaw.player": "%1$s fue hecho trizas", "death.attack.sculk_jaw": "%1$s fue hecho trizas", "item.hollow.firefly_spawn_egg": "Generar luciérnaga", - "advancements.adventure.diversity_win.title": "Victoria de diversidad", - "advancements.adventure.diversity_win.description": "Obtenga uno de cara tinte" + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "music.game.wildflower": "WorldWidePixel - Wildflower", + "music.game.waterlily": "WorldWidePixel - Waterlily", + "music.game.echo": "WorldWidePixel - Echo", + "music.game.floraison": "WorldWidePixel - Floraison", + "subtitles.hollow.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "item.hollow.copper_horn.hollow.great_sky_falling": "Great Sky Falling", + "item.hollow.copper_horn.hollow.old_hymn_resting": "Old Hymn Resting", + "item.hollow.copper_horn.hollow.pure_water_desire": "Pure Water Desire", + "item.hollow.copper_horn.hollow.humble_fire_memory": "Humble Fire Memory", + "item.hollow.copper_horn.hollow.dry_urge_anger": "Dry Urge Anger", + "item.hollow.copper_horn.hollow.clear_temper_journey": "Clear Temper Journey", + "item.hollow.copper_horn.hollow.fresh_nest_thought": "Fresh Nest Thought", + "item.hollow.copper_horn.hollow.secret_lake_tear": "Secret Lake Tear", + "item.hollow.copper_horn.hollow.fearless_river_gift": "Fearless River Gift", + "item.hollow.copper_horn.hollow.sweet_moon_love": "Sweet Moon Love", + "subtitles.hollow.item.copper_horn.call.great": "Great", + "subtitles.hollow.item.copper_horn.melody.sky": "Sky", + "subtitles.hollow.item.copper_horn.bass.falling": "Falling", + "subtitles.hollow.item.copper_horn.call.old": "Old", + "subtitles.hollow.item.copper_horn.melody.hymn": "Hymn", + "subtitles.hollow.item.copper_horn.bass.resting": "Resting", + "subtitles.hollow.item.copper_horn.call.pure": "Pure", + "subtitles.hollow.item.copper_horn.melody.water": "Water", + "subtitles.hollow.item.copper_horn.bass.desire": "Desire", + "subtitles.hollow.item.copper_horn.call.humble": "Humble", + "subtitles.hollow.item.copper_horn.melody.fire": "Fire", + "subtitles.hollow.item.copper_horn.bass.memory": "Memory", + "subtitles.hollow.item.copper_horn.call.dry": "Dry", + "subtitles.hollow.item.copper_horn.melody.urge": "Urge", + "subtitles.hollow.item.copper_horn.bass.anger": "Anger", + "subtitles.hollow.item.copper_horn.call.clear": "Clear", + "subtitles.hollow.item.copper_horn.melody.temper": "Temper", + "subtitles.hollow.item.copper_horn.bass.journey": "Journey", + "subtitles.hollow.item.copper_horn.call.fresh": "Fresh", + "subtitles.hollow.item.copper_horn.melody.nest": "Nest", + "subtitles.hollow.item.copper_horn.bass.thought": "Thought", + "subtitles.hollow.item.copper_horn.call.secret": "Secret", + "subtitles.hollow.item.copper_horn.melody.lake": "Lake", + "subtitles.hollow.item.copper_horn.bass.tear": "Tear", + "subtitles.hollow.item.copper_horn.call.fearless": "Fearless", + "subtitles.hollow.item.copper_horn.melody.river": "River", + "subtitles.hollow.item.copper_horn.bass.gift": "Gift", + "subtitles.hollow.item.copper_horn.call.sweet": "Sweet", + "subtitles.hollow.item.copper_horn.melody.moon": "Moon", + "subtitles.hollow.item.copper_horn.bass.love": "Love", + "subtitles.hollow.block.stone_chest.extract": "Stone Chest opens", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "gamerule.copperBulbDelay": "Copper bulb delay", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" } \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/es_cl.json b/src/main/resources/assets/hollow/lang/es_cl.json index 671d545..79a55f4 100644 --- a/src/main/resources/assets/hollow/lang/es_cl.json +++ b/src/main/resources/assets/hollow/lang/es_cl.json @@ -20,10 +20,22 @@ "block.hollow.stripped_mangrove_hollow_log": "Tronco hueco de mangle sin corteza", "block.hollow.cherry_hollow_log": "Tronco hueco de cerezo", "block.hollow.stripped_cherry_hollow_log": "Tronco hueco de cerezo sin corteza", + "block.hollow.pale_oak_hollow_log": "Hollow Pale Oak Log", + "block.hollow.stripped_pale_oak_hollow_log": "Hollow Stripped Pale Oak Log", + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", "block.hollow.paeonia": "Albardera", + "block.hollow.rooted_orchid": "Rooted Orchid", "block.hollow.campion": "Silene", "block.hollow.polypore": "Políporo", "block.hollow.lotus_lilypad": "Nenúfar florecida", + "block.hollow.giant_lilypad": "Giant Lily Pad", "block.hollow.twig": "Ramita", "block.hollow.sculk_jaw": "Mandíbula de skulk", "block.hollow.jar": "Jara", @@ -31,10 +43,67 @@ "block.hollow.echoing_pot": "Maceta resonante", "block.hollow.stone_chest": "Cofre de piedra", "block.hollow.stone_chest_lid": "Cubierta para cofre de piedra", - "block.hollow.root_vines": "Enredaderas de raíz", + "block.hollow.cattail": "Cattail", "death.attack.sculk_jaw.player": "%1$s fue hecho trizas", "death.attack.sculk_jaw": "%1$s fue hecho trizas", "item.hollow.firefly_spawn_egg": "Generar luciérnaga", - "advancements.adventure.diversity_win.title": "Victoria de diversidad", - "advancements.adventure.diversity_win.description": "Obtenga uno de cara tinte" + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "music.game.wildflower": "WorldWidePixel - Wildflower", + "music.game.waterlily": "WorldWidePixel - Waterlily", + "music.game.echo": "WorldWidePixel - Echo", + "music.game.floraison": "WorldWidePixel - Floraison", + "subtitles.hollow.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "item.hollow.copper_horn.hollow.great_sky_falling": "Great Sky Falling", + "item.hollow.copper_horn.hollow.old_hymn_resting": "Old Hymn Resting", + "item.hollow.copper_horn.hollow.pure_water_desire": "Pure Water Desire", + "item.hollow.copper_horn.hollow.humble_fire_memory": "Humble Fire Memory", + "item.hollow.copper_horn.hollow.dry_urge_anger": "Dry Urge Anger", + "item.hollow.copper_horn.hollow.clear_temper_journey": "Clear Temper Journey", + "item.hollow.copper_horn.hollow.fresh_nest_thought": "Fresh Nest Thought", + "item.hollow.copper_horn.hollow.secret_lake_tear": "Secret Lake Tear", + "item.hollow.copper_horn.hollow.fearless_river_gift": "Fearless River Gift", + "item.hollow.copper_horn.hollow.sweet_moon_love": "Sweet Moon Love", + "subtitles.hollow.item.copper_horn.call.great": "Great", + "subtitles.hollow.item.copper_horn.melody.sky": "Sky", + "subtitles.hollow.item.copper_horn.bass.falling": "Falling", + "subtitles.hollow.item.copper_horn.call.old": "Old", + "subtitles.hollow.item.copper_horn.melody.hymn": "Hymn", + "subtitles.hollow.item.copper_horn.bass.resting": "Resting", + "subtitles.hollow.item.copper_horn.call.pure": "Pure", + "subtitles.hollow.item.copper_horn.melody.water": "Water", + "subtitles.hollow.item.copper_horn.bass.desire": "Desire", + "subtitles.hollow.item.copper_horn.call.humble": "Humble", + "subtitles.hollow.item.copper_horn.melody.fire": "Fire", + "subtitles.hollow.item.copper_horn.bass.memory": "Memory", + "subtitles.hollow.item.copper_horn.call.dry": "Dry", + "subtitles.hollow.item.copper_horn.melody.urge": "Urge", + "subtitles.hollow.item.copper_horn.bass.anger": "Anger", + "subtitles.hollow.item.copper_horn.call.clear": "Clear", + "subtitles.hollow.item.copper_horn.melody.temper": "Temper", + "subtitles.hollow.item.copper_horn.bass.journey": "Journey", + "subtitles.hollow.item.copper_horn.call.fresh": "Fresh", + "subtitles.hollow.item.copper_horn.melody.nest": "Nest", + "subtitles.hollow.item.copper_horn.bass.thought": "Thought", + "subtitles.hollow.item.copper_horn.call.secret": "Secret", + "subtitles.hollow.item.copper_horn.melody.lake": "Lake", + "subtitles.hollow.item.copper_horn.bass.tear": "Tear", + "subtitles.hollow.item.copper_horn.call.fearless": "Fearless", + "subtitles.hollow.item.copper_horn.melody.river": "River", + "subtitles.hollow.item.copper_horn.bass.gift": "Gift", + "subtitles.hollow.item.copper_horn.call.sweet": "Sweet", + "subtitles.hollow.item.copper_horn.melody.moon": "Moon", + "subtitles.hollow.item.copper_horn.bass.love": "Love", + "subtitles.hollow.block.stone_chest.extract": "Stone Chest opens", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "gamerule.copperBulbDelay": "Copper bulb delay", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" } \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/es_ec.json b/src/main/resources/assets/hollow/lang/es_ec.json index 5fadfc0..6948815 100644 --- a/src/main/resources/assets/hollow/lang/es_ec.json +++ b/src/main/resources/assets/hollow/lang/es_ec.json @@ -20,10 +20,22 @@ "block.hollow.stripped_mangrove_hollow_log": "Tronco hueco de mangle sin corteza", "block.hollow.cherry_hollow_log": "Tronco hueco de cerezo", "block.hollow.stripped_cherry_hollow_log": "Tronco hueco de cerezo sin corteza", + "block.hollow.pale_oak_hollow_log": "Hollow Pale Oak Log", + "block.hollow.stripped_pale_oak_hollow_log": "Hollow Stripped Pale Oak Log", + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", "block.hollow.paeonia": "Albardera", + "block.hollow.rooted_orchid": "Rooted Orchid", "block.hollow.campion": "Silene", "block.hollow.polypore": "Políporo", "block.hollow.lotus_lilypad": "Nenúfar florecida", + "block.hollow.giant_lilypad": "Giant Lily Pad", "block.hollow.twig": "Ramita", "block.hollow.sculk_jaw": "Mandíbula de skulk", "block.hollow.jar": "Jara", @@ -31,10 +43,67 @@ "block.hollow.echoing_pot": "Maceta resonante", "block.hollow.stone_chest": "Cofre de piedra", "block.hollow.stone_chest_lid": "Cubierta para cofre de piedra", - "block.hollow.root_vines": "Lianas de raíz", + "block.hollow.cattail": "Cattail", "death.attack.sculk_jaw.player": "%1$s fue hecho trizas", "death.attack.sculk_jaw": "%1$s fue hecho trizas", "item.hollow.firefly_spawn_egg": "Generar luciérnaga", - "advancements.adventure.diversity_win.title": "Victoria de diversidad", - "advancements.adventure.diversity_win.description": "Obtenga uno de cara tinte" + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "music.game.wildflower": "WorldWidePixel - Wildflower", + "music.game.waterlily": "WorldWidePixel - Waterlily", + "music.game.echo": "WorldWidePixel - Echo", + "music.game.floraison": "WorldWidePixel - Floraison", + "subtitles.hollow.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "item.hollow.copper_horn.hollow.great_sky_falling": "Great Sky Falling", + "item.hollow.copper_horn.hollow.old_hymn_resting": "Old Hymn Resting", + "item.hollow.copper_horn.hollow.pure_water_desire": "Pure Water Desire", + "item.hollow.copper_horn.hollow.humble_fire_memory": "Humble Fire Memory", + "item.hollow.copper_horn.hollow.dry_urge_anger": "Dry Urge Anger", + "item.hollow.copper_horn.hollow.clear_temper_journey": "Clear Temper Journey", + "item.hollow.copper_horn.hollow.fresh_nest_thought": "Fresh Nest Thought", + "item.hollow.copper_horn.hollow.secret_lake_tear": "Secret Lake Tear", + "item.hollow.copper_horn.hollow.fearless_river_gift": "Fearless River Gift", + "item.hollow.copper_horn.hollow.sweet_moon_love": "Sweet Moon Love", + "subtitles.hollow.item.copper_horn.call.great": "Great", + "subtitles.hollow.item.copper_horn.melody.sky": "Sky", + "subtitles.hollow.item.copper_horn.bass.falling": "Falling", + "subtitles.hollow.item.copper_horn.call.old": "Old", + "subtitles.hollow.item.copper_horn.melody.hymn": "Hymn", + "subtitles.hollow.item.copper_horn.bass.resting": "Resting", + "subtitles.hollow.item.copper_horn.call.pure": "Pure", + "subtitles.hollow.item.copper_horn.melody.water": "Water", + "subtitles.hollow.item.copper_horn.bass.desire": "Desire", + "subtitles.hollow.item.copper_horn.call.humble": "Humble", + "subtitles.hollow.item.copper_horn.melody.fire": "Fire", + "subtitles.hollow.item.copper_horn.bass.memory": "Memory", + "subtitles.hollow.item.copper_horn.call.dry": "Dry", + "subtitles.hollow.item.copper_horn.melody.urge": "Urge", + "subtitles.hollow.item.copper_horn.bass.anger": "Anger", + "subtitles.hollow.item.copper_horn.call.clear": "Clear", + "subtitles.hollow.item.copper_horn.melody.temper": "Temper", + "subtitles.hollow.item.copper_horn.bass.journey": "Journey", + "subtitles.hollow.item.copper_horn.call.fresh": "Fresh", + "subtitles.hollow.item.copper_horn.melody.nest": "Nest", + "subtitles.hollow.item.copper_horn.bass.thought": "Thought", + "subtitles.hollow.item.copper_horn.call.secret": "Secret", + "subtitles.hollow.item.copper_horn.melody.lake": "Lake", + "subtitles.hollow.item.copper_horn.bass.tear": "Tear", + "subtitles.hollow.item.copper_horn.call.fearless": "Fearless", + "subtitles.hollow.item.copper_horn.melody.river": "River", + "subtitles.hollow.item.copper_horn.bass.gift": "Gift", + "subtitles.hollow.item.copper_horn.call.sweet": "Sweet", + "subtitles.hollow.item.copper_horn.melody.moon": "Moon", + "subtitles.hollow.item.copper_horn.bass.love": "Love", + "subtitles.hollow.block.stone_chest.extract": "Stone Chest opens", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "gamerule.copperBulbDelay": "Copper bulb delay", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" } \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/es_es.json b/src/main/resources/assets/hollow/lang/es_es.json index 671d545..79a55f4 100644 --- a/src/main/resources/assets/hollow/lang/es_es.json +++ b/src/main/resources/assets/hollow/lang/es_es.json @@ -20,10 +20,22 @@ "block.hollow.stripped_mangrove_hollow_log": "Tronco hueco de mangle sin corteza", "block.hollow.cherry_hollow_log": "Tronco hueco de cerezo", "block.hollow.stripped_cherry_hollow_log": "Tronco hueco de cerezo sin corteza", + "block.hollow.pale_oak_hollow_log": "Hollow Pale Oak Log", + "block.hollow.stripped_pale_oak_hollow_log": "Hollow Stripped Pale Oak Log", + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", "block.hollow.paeonia": "Albardera", + "block.hollow.rooted_orchid": "Rooted Orchid", "block.hollow.campion": "Silene", "block.hollow.polypore": "Políporo", "block.hollow.lotus_lilypad": "Nenúfar florecida", + "block.hollow.giant_lilypad": "Giant Lily Pad", "block.hollow.twig": "Ramita", "block.hollow.sculk_jaw": "Mandíbula de skulk", "block.hollow.jar": "Jara", @@ -31,10 +43,67 @@ "block.hollow.echoing_pot": "Maceta resonante", "block.hollow.stone_chest": "Cofre de piedra", "block.hollow.stone_chest_lid": "Cubierta para cofre de piedra", - "block.hollow.root_vines": "Enredaderas de raíz", + "block.hollow.cattail": "Cattail", "death.attack.sculk_jaw.player": "%1$s fue hecho trizas", "death.attack.sculk_jaw": "%1$s fue hecho trizas", "item.hollow.firefly_spawn_egg": "Generar luciérnaga", - "advancements.adventure.diversity_win.title": "Victoria de diversidad", - "advancements.adventure.diversity_win.description": "Obtenga uno de cara tinte" + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "music.game.wildflower": "WorldWidePixel - Wildflower", + "music.game.waterlily": "WorldWidePixel - Waterlily", + "music.game.echo": "WorldWidePixel - Echo", + "music.game.floraison": "WorldWidePixel - Floraison", + "subtitles.hollow.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "item.hollow.copper_horn.hollow.great_sky_falling": "Great Sky Falling", + "item.hollow.copper_horn.hollow.old_hymn_resting": "Old Hymn Resting", + "item.hollow.copper_horn.hollow.pure_water_desire": "Pure Water Desire", + "item.hollow.copper_horn.hollow.humble_fire_memory": "Humble Fire Memory", + "item.hollow.copper_horn.hollow.dry_urge_anger": "Dry Urge Anger", + "item.hollow.copper_horn.hollow.clear_temper_journey": "Clear Temper Journey", + "item.hollow.copper_horn.hollow.fresh_nest_thought": "Fresh Nest Thought", + "item.hollow.copper_horn.hollow.secret_lake_tear": "Secret Lake Tear", + "item.hollow.copper_horn.hollow.fearless_river_gift": "Fearless River Gift", + "item.hollow.copper_horn.hollow.sweet_moon_love": "Sweet Moon Love", + "subtitles.hollow.item.copper_horn.call.great": "Great", + "subtitles.hollow.item.copper_horn.melody.sky": "Sky", + "subtitles.hollow.item.copper_horn.bass.falling": "Falling", + "subtitles.hollow.item.copper_horn.call.old": "Old", + "subtitles.hollow.item.copper_horn.melody.hymn": "Hymn", + "subtitles.hollow.item.copper_horn.bass.resting": "Resting", + "subtitles.hollow.item.copper_horn.call.pure": "Pure", + "subtitles.hollow.item.copper_horn.melody.water": "Water", + "subtitles.hollow.item.copper_horn.bass.desire": "Desire", + "subtitles.hollow.item.copper_horn.call.humble": "Humble", + "subtitles.hollow.item.copper_horn.melody.fire": "Fire", + "subtitles.hollow.item.copper_horn.bass.memory": "Memory", + "subtitles.hollow.item.copper_horn.call.dry": "Dry", + "subtitles.hollow.item.copper_horn.melody.urge": "Urge", + "subtitles.hollow.item.copper_horn.bass.anger": "Anger", + "subtitles.hollow.item.copper_horn.call.clear": "Clear", + "subtitles.hollow.item.copper_horn.melody.temper": "Temper", + "subtitles.hollow.item.copper_horn.bass.journey": "Journey", + "subtitles.hollow.item.copper_horn.call.fresh": "Fresh", + "subtitles.hollow.item.copper_horn.melody.nest": "Nest", + "subtitles.hollow.item.copper_horn.bass.thought": "Thought", + "subtitles.hollow.item.copper_horn.call.secret": "Secret", + "subtitles.hollow.item.copper_horn.melody.lake": "Lake", + "subtitles.hollow.item.copper_horn.bass.tear": "Tear", + "subtitles.hollow.item.copper_horn.call.fearless": "Fearless", + "subtitles.hollow.item.copper_horn.melody.river": "River", + "subtitles.hollow.item.copper_horn.bass.gift": "Gift", + "subtitles.hollow.item.copper_horn.call.sweet": "Sweet", + "subtitles.hollow.item.copper_horn.melody.moon": "Moon", + "subtitles.hollow.item.copper_horn.bass.love": "Love", + "subtitles.hollow.block.stone_chest.extract": "Stone Chest opens", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "gamerule.copperBulbDelay": "Copper bulb delay", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" } \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/es_mx.json b/src/main/resources/assets/hollow/lang/es_mx.json index 66cd44b..79a55f4 100644 --- a/src/main/resources/assets/hollow/lang/es_mx.json +++ b/src/main/resources/assets/hollow/lang/es_mx.json @@ -20,10 +20,22 @@ "block.hollow.stripped_mangrove_hollow_log": "Tronco hueco de mangle sin corteza", "block.hollow.cherry_hollow_log": "Tronco hueco de cerezo", "block.hollow.stripped_cherry_hollow_log": "Tronco hueco de cerezo sin corteza", + "block.hollow.pale_oak_hollow_log": "Hollow Pale Oak Log", + "block.hollow.stripped_pale_oak_hollow_log": "Hollow Stripped Pale Oak Log", + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", "block.hollow.paeonia": "Albardera", + "block.hollow.rooted_orchid": "Rooted Orchid", "block.hollow.campion": "Silene", "block.hollow.polypore": "Políporo", "block.hollow.lotus_lilypad": "Nenúfar florecida", + "block.hollow.giant_lilypad": "Giant Lily Pad", "block.hollow.twig": "Ramita", "block.hollow.sculk_jaw": "Mandíbula de skulk", "block.hollow.jar": "Jara", @@ -31,10 +43,67 @@ "block.hollow.echoing_pot": "Maceta resonante", "block.hollow.stone_chest": "Cofre de piedra", "block.hollow.stone_chest_lid": "Cubierta para cofre de piedra", - "block.hollow.root_vines": "Lianas de raíz", + "block.hollow.cattail": "Cattail", "death.attack.sculk_jaw.player": "%1$s fue hecho trizas", "death.attack.sculk_jaw": "%1$s fue hecho trizas", "item.hollow.firefly_spawn_egg": "Generar luciérnaga", - "advancements.adventure.diversity_win.title": "Victoria de diversidad", - "advancements.adventure.diversity_win.description": "Obtenga uno de cara tinte" + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "music.game.wildflower": "WorldWidePixel - Wildflower", + "music.game.waterlily": "WorldWidePixel - Waterlily", + "music.game.echo": "WorldWidePixel - Echo", + "music.game.floraison": "WorldWidePixel - Floraison", + "subtitles.hollow.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "item.hollow.copper_horn.hollow.great_sky_falling": "Great Sky Falling", + "item.hollow.copper_horn.hollow.old_hymn_resting": "Old Hymn Resting", + "item.hollow.copper_horn.hollow.pure_water_desire": "Pure Water Desire", + "item.hollow.copper_horn.hollow.humble_fire_memory": "Humble Fire Memory", + "item.hollow.copper_horn.hollow.dry_urge_anger": "Dry Urge Anger", + "item.hollow.copper_horn.hollow.clear_temper_journey": "Clear Temper Journey", + "item.hollow.copper_horn.hollow.fresh_nest_thought": "Fresh Nest Thought", + "item.hollow.copper_horn.hollow.secret_lake_tear": "Secret Lake Tear", + "item.hollow.copper_horn.hollow.fearless_river_gift": "Fearless River Gift", + "item.hollow.copper_horn.hollow.sweet_moon_love": "Sweet Moon Love", + "subtitles.hollow.item.copper_horn.call.great": "Great", + "subtitles.hollow.item.copper_horn.melody.sky": "Sky", + "subtitles.hollow.item.copper_horn.bass.falling": "Falling", + "subtitles.hollow.item.copper_horn.call.old": "Old", + "subtitles.hollow.item.copper_horn.melody.hymn": "Hymn", + "subtitles.hollow.item.copper_horn.bass.resting": "Resting", + "subtitles.hollow.item.copper_horn.call.pure": "Pure", + "subtitles.hollow.item.copper_horn.melody.water": "Water", + "subtitles.hollow.item.copper_horn.bass.desire": "Desire", + "subtitles.hollow.item.copper_horn.call.humble": "Humble", + "subtitles.hollow.item.copper_horn.melody.fire": "Fire", + "subtitles.hollow.item.copper_horn.bass.memory": "Memory", + "subtitles.hollow.item.copper_horn.call.dry": "Dry", + "subtitles.hollow.item.copper_horn.melody.urge": "Urge", + "subtitles.hollow.item.copper_horn.bass.anger": "Anger", + "subtitles.hollow.item.copper_horn.call.clear": "Clear", + "subtitles.hollow.item.copper_horn.melody.temper": "Temper", + "subtitles.hollow.item.copper_horn.bass.journey": "Journey", + "subtitles.hollow.item.copper_horn.call.fresh": "Fresh", + "subtitles.hollow.item.copper_horn.melody.nest": "Nest", + "subtitles.hollow.item.copper_horn.bass.thought": "Thought", + "subtitles.hollow.item.copper_horn.call.secret": "Secret", + "subtitles.hollow.item.copper_horn.melody.lake": "Lake", + "subtitles.hollow.item.copper_horn.bass.tear": "Tear", + "subtitles.hollow.item.copper_horn.call.fearless": "Fearless", + "subtitles.hollow.item.copper_horn.melody.river": "River", + "subtitles.hollow.item.copper_horn.bass.gift": "Gift", + "subtitles.hollow.item.copper_horn.call.sweet": "Sweet", + "subtitles.hollow.item.copper_horn.melody.moon": "Moon", + "subtitles.hollow.item.copper_horn.bass.love": "Love", + "subtitles.hollow.block.stone_chest.extract": "Stone Chest opens", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "gamerule.copperBulbDelay": "Copper bulb delay", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" } \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/es_uy.json b/src/main/resources/assets/hollow/lang/es_uy.json index d7bfc4a..a2725ab 100644 --- a/src/main/resources/assets/hollow/lang/es_uy.json +++ b/src/main/resources/assets/hollow/lang/es_uy.json @@ -20,10 +20,22 @@ "block.hollow.stripped_mangrove_hollow_log": "Tronco hueco de mangle sin corteza", "block.hollow.cherry_hollow_log": "Tronco hueco de cerezo", "block.hollow.stripped_cherry_hollow_log": "Tronco hueco de cerezo sin corteza", + "block.hollow.pale_oak_hollow_log": "Hollow Pale Oak Log", + "block.hollow.stripped_pale_oak_hollow_log": "Hollow Stripped Pale Oak Log", + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", "block.hollow.paeonia": "Albardera", + "block.hollow.rooted_orchid": "Rooted Orchid", "block.hollow.campion": "Silene", "block.hollow.polypore": "Políporo", "block.hollow.lotus_lilypad": "Nenúfar florecida", + "block.hollow.giant_lilypad": "Giant Lily Pad", "block.hollow.twig": "Ramita", "block.hollow.sculk_jaw": "Mandíbula de skulk", "block.hollow.jar": "Jara", @@ -31,10 +43,67 @@ "block.hollow.echoing_pot": "Maceta resonante", "block.hollow.stone_chest": "Baúl de piedra", "block.hollow.stone_chest_lid": "Cubierta para baúl de piedra", - "block.hollow.root_vines": "Enredaderas de raíz", + "block.hollow.cattail": "Cattail", "death.attack.sculk_jaw.player": "%1$s fue hecho trizas", "death.attack.sculk_jaw": "%1$s fue hecho trizas", "item.hollow.firefly_spawn_egg": "Generar luciérnaga", - "advancements.adventure.diversity_win.title": "Victoria de diversidad", - "advancements.adventure.diversity_win.description": "Obtenga uno de cara tinte" + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "music.game.wildflower": "WorldWidePixel - Wildflower", + "music.game.waterlily": "WorldWidePixel - Waterlily", + "music.game.echo": "WorldWidePixel - Echo", + "music.game.floraison": "WorldWidePixel - Floraison", + "subtitles.hollow.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "item.hollow.copper_horn.hollow.great_sky_falling": "Great Sky Falling", + "item.hollow.copper_horn.hollow.old_hymn_resting": "Old Hymn Resting", + "item.hollow.copper_horn.hollow.pure_water_desire": "Pure Water Desire", + "item.hollow.copper_horn.hollow.humble_fire_memory": "Humble Fire Memory", + "item.hollow.copper_horn.hollow.dry_urge_anger": "Dry Urge Anger", + "item.hollow.copper_horn.hollow.clear_temper_journey": "Clear Temper Journey", + "item.hollow.copper_horn.hollow.fresh_nest_thought": "Fresh Nest Thought", + "item.hollow.copper_horn.hollow.secret_lake_tear": "Secret Lake Tear", + "item.hollow.copper_horn.hollow.fearless_river_gift": "Fearless River Gift", + "item.hollow.copper_horn.hollow.sweet_moon_love": "Sweet Moon Love", + "subtitles.hollow.item.copper_horn.call.great": "Great", + "subtitles.hollow.item.copper_horn.melody.sky": "Sky", + "subtitles.hollow.item.copper_horn.bass.falling": "Falling", + "subtitles.hollow.item.copper_horn.call.old": "Old", + "subtitles.hollow.item.copper_horn.melody.hymn": "Hymn", + "subtitles.hollow.item.copper_horn.bass.resting": "Resting", + "subtitles.hollow.item.copper_horn.call.pure": "Pure", + "subtitles.hollow.item.copper_horn.melody.water": "Water", + "subtitles.hollow.item.copper_horn.bass.desire": "Desire", + "subtitles.hollow.item.copper_horn.call.humble": "Humble", + "subtitles.hollow.item.copper_horn.melody.fire": "Fire", + "subtitles.hollow.item.copper_horn.bass.memory": "Memory", + "subtitles.hollow.item.copper_horn.call.dry": "Dry", + "subtitles.hollow.item.copper_horn.melody.urge": "Urge", + "subtitles.hollow.item.copper_horn.bass.anger": "Anger", + "subtitles.hollow.item.copper_horn.call.clear": "Clear", + "subtitles.hollow.item.copper_horn.melody.temper": "Temper", + "subtitles.hollow.item.copper_horn.bass.journey": "Journey", + "subtitles.hollow.item.copper_horn.call.fresh": "Fresh", + "subtitles.hollow.item.copper_horn.melody.nest": "Nest", + "subtitles.hollow.item.copper_horn.bass.thought": "Thought", + "subtitles.hollow.item.copper_horn.call.secret": "Secret", + "subtitles.hollow.item.copper_horn.melody.lake": "Lake", + "subtitles.hollow.item.copper_horn.bass.tear": "Tear", + "subtitles.hollow.item.copper_horn.call.fearless": "Fearless", + "subtitles.hollow.item.copper_horn.melody.river": "River", + "subtitles.hollow.item.copper_horn.bass.gift": "Gift", + "subtitles.hollow.item.copper_horn.call.sweet": "Sweet", + "subtitles.hollow.item.copper_horn.melody.moon": "Moon", + "subtitles.hollow.item.copper_horn.bass.love": "Love", + "subtitles.hollow.block.stone_chest.extract": "Stone Chest opens", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "gamerule.copperBulbDelay": "Copper bulb delay", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" } \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/es_ve.json b/src/main/resources/assets/hollow/lang/es_ve.json index d7bfc4a..a2725ab 100644 --- a/src/main/resources/assets/hollow/lang/es_ve.json +++ b/src/main/resources/assets/hollow/lang/es_ve.json @@ -20,10 +20,22 @@ "block.hollow.stripped_mangrove_hollow_log": "Tronco hueco de mangle sin corteza", "block.hollow.cherry_hollow_log": "Tronco hueco de cerezo", "block.hollow.stripped_cherry_hollow_log": "Tronco hueco de cerezo sin corteza", + "block.hollow.pale_oak_hollow_log": "Hollow Pale Oak Log", + "block.hollow.stripped_pale_oak_hollow_log": "Hollow Stripped Pale Oak Log", + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", "block.hollow.paeonia": "Albardera", + "block.hollow.rooted_orchid": "Rooted Orchid", "block.hollow.campion": "Silene", "block.hollow.polypore": "Políporo", "block.hollow.lotus_lilypad": "Nenúfar florecida", + "block.hollow.giant_lilypad": "Giant Lily Pad", "block.hollow.twig": "Ramita", "block.hollow.sculk_jaw": "Mandíbula de skulk", "block.hollow.jar": "Jara", @@ -31,10 +43,67 @@ "block.hollow.echoing_pot": "Maceta resonante", "block.hollow.stone_chest": "Baúl de piedra", "block.hollow.stone_chest_lid": "Cubierta para baúl de piedra", - "block.hollow.root_vines": "Enredaderas de raíz", + "block.hollow.cattail": "Cattail", "death.attack.sculk_jaw.player": "%1$s fue hecho trizas", "death.attack.sculk_jaw": "%1$s fue hecho trizas", "item.hollow.firefly_spawn_egg": "Generar luciérnaga", - "advancements.adventure.diversity_win.title": "Victoria de diversidad", - "advancements.adventure.diversity_win.description": "Obtenga uno de cara tinte" + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "music.game.wildflower": "WorldWidePixel - Wildflower", + "music.game.waterlily": "WorldWidePixel - Waterlily", + "music.game.echo": "WorldWidePixel - Echo", + "music.game.floraison": "WorldWidePixel - Floraison", + "subtitles.hollow.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "item.hollow.copper_horn.hollow.great_sky_falling": "Great Sky Falling", + "item.hollow.copper_horn.hollow.old_hymn_resting": "Old Hymn Resting", + "item.hollow.copper_horn.hollow.pure_water_desire": "Pure Water Desire", + "item.hollow.copper_horn.hollow.humble_fire_memory": "Humble Fire Memory", + "item.hollow.copper_horn.hollow.dry_urge_anger": "Dry Urge Anger", + "item.hollow.copper_horn.hollow.clear_temper_journey": "Clear Temper Journey", + "item.hollow.copper_horn.hollow.fresh_nest_thought": "Fresh Nest Thought", + "item.hollow.copper_horn.hollow.secret_lake_tear": "Secret Lake Tear", + "item.hollow.copper_horn.hollow.fearless_river_gift": "Fearless River Gift", + "item.hollow.copper_horn.hollow.sweet_moon_love": "Sweet Moon Love", + "subtitles.hollow.item.copper_horn.call.great": "Great", + "subtitles.hollow.item.copper_horn.melody.sky": "Sky", + "subtitles.hollow.item.copper_horn.bass.falling": "Falling", + "subtitles.hollow.item.copper_horn.call.old": "Old", + "subtitles.hollow.item.copper_horn.melody.hymn": "Hymn", + "subtitles.hollow.item.copper_horn.bass.resting": "Resting", + "subtitles.hollow.item.copper_horn.call.pure": "Pure", + "subtitles.hollow.item.copper_horn.melody.water": "Water", + "subtitles.hollow.item.copper_horn.bass.desire": "Desire", + "subtitles.hollow.item.copper_horn.call.humble": "Humble", + "subtitles.hollow.item.copper_horn.melody.fire": "Fire", + "subtitles.hollow.item.copper_horn.bass.memory": "Memory", + "subtitles.hollow.item.copper_horn.call.dry": "Dry", + "subtitles.hollow.item.copper_horn.melody.urge": "Urge", + "subtitles.hollow.item.copper_horn.bass.anger": "Anger", + "subtitles.hollow.item.copper_horn.call.clear": "Clear", + "subtitles.hollow.item.copper_horn.melody.temper": "Temper", + "subtitles.hollow.item.copper_horn.bass.journey": "Journey", + "subtitles.hollow.item.copper_horn.call.fresh": "Fresh", + "subtitles.hollow.item.copper_horn.melody.nest": "Nest", + "subtitles.hollow.item.copper_horn.bass.thought": "Thought", + "subtitles.hollow.item.copper_horn.call.secret": "Secret", + "subtitles.hollow.item.copper_horn.melody.lake": "Lake", + "subtitles.hollow.item.copper_horn.bass.tear": "Tear", + "subtitles.hollow.item.copper_horn.call.fearless": "Fearless", + "subtitles.hollow.item.copper_horn.melody.river": "River", + "subtitles.hollow.item.copper_horn.bass.gift": "Gift", + "subtitles.hollow.item.copper_horn.call.sweet": "Sweet", + "subtitles.hollow.item.copper_horn.melody.moon": "Moon", + "subtitles.hollow.item.copper_horn.bass.love": "Love", + "subtitles.hollow.block.stone_chest.extract": "Stone Chest opens", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "gamerule.copperBulbDelay": "Copper bulb delay", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" } \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/fr_fr.json b/src/main/resources/assets/hollow/lang/fr_fr.json new file mode 100644 index 0000000..4139816 --- /dev/null +++ b/src/main/resources/assets/hollow/lang/fr_fr.json @@ -0,0 +1,101 @@ +{ + "item_group.hollow.hollow": "Hollow", + "block.hollow.oak_hollow_log": "Hollow Oak Log", + "block.hollow.stripped_oak_hollow_log": "Hollow Stripped Oak Log", + "block.hollow.spruce_hollow_log": "Hollow Spruce Log", + "block.hollow.stripped_spruce_hollow_log": "Hollow Stripped Spruce Log", + "block.hollow.birch_hollow_log": "Hollow Birch Log", + "block.hollow.stripped_birch_hollow_log": "Hollow Stripped Birch Log", + "block.hollow.jungle_hollow_log": "Hollow Jungle Log", + "block.hollow.stripped_jungle_hollow_log": "Hollow Stripped Jungle Log", + "block.hollow.acacia_hollow_log": "Hollow Acacia Log", + "block.hollow.stripped_acacia_hollow_log": "Hollow Stripped Acacia Log", + "block.hollow.dark_oak_hollow_log": "Hollow Dark Oak Log", + "block.hollow.stripped_dark_oak_hollow_log": "Hollow Stripped Dark Oak Log", + "block.hollow.crimson_hollow_stem": "Hollow Crimson Stem", + "block.hollow.stripped_crimson_hollow_stem": "Hollow Stripped Crimson Stem", + "block.hollow.warped_hollow_stem": "Hollow Warped Stem", + "block.hollow.stripped_warped_hollow_stem": "Hollow Stripped Warped Stem", + "block.hollow.mangrove_hollow_log": "Hollow Mangrove Log", + "block.hollow.stripped_mangrove_hollow_log": "Hollow Stripped Mangrove Log", + "block.hollow.cherry_hollow_log": "Hollow Cherry Log", + "block.hollow.stripped_cherry_hollow_log": "Hollow Stripped Cherry Log", + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", + "block.hollow.paeonia": "Paeonia", + "block.hollow.rooted_orchid": "Rooted Orchid", + "block.hollow.campion": "Campion", + "block.hollow.polypore": "Polypore", + "block.hollow.lotus_lilypad": "Flowering Lily Pad", + "block.hollow.giant_lilypad": "Giant Lily Pad", + "block.hollow.twig": "Twig", + "block.hollow.sculk_jaw": "Sculk Jaw", + "block.hollow.jar": "Jar", + "block.hollow.firefly_jar": "Firefly Jar", + "block.hollow.echoing_pot": "Echoing Pot", + "block.hollow.stone_chest": "Stone Chest", + "block.hollow.stone_chest_lid": "Stone Chest Lid", + "block.hollow.cattail": "Cattail", + "death.attack.sculk_jaw.player": "%1$s was ripped to shreds", + "death.attack.sculk_jaw": "%1$s was ripped to shreds", + "item.hollow.firefly_spawn_egg": "Firefly Spawn Egg", + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "subtitles.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "copper_horn.great_sky_falling": "Great Sky Falling", + "copper_horn.old_hymn_resting": "Old Hymn Resting", + "copper_horn.pure_water_desire": "Pure Water Desire", + "copper_horn.humble_fire_memory": "Humble Fire Memory", + "copper_horn.dry_urge_anger": "Dry Urge Anger", + "copper_horn.clear_temper_journey": "Clear Temper Journey", + "copper_horn.fresh_nest_thought": "Fresh Nest Thought", + "copper_horn.secret_lake_tear": "Secret Lake Tear", + "copper_horn.fearless_river_gift": "Fearless River Gift", + "copper_horn.sweet_moon_love": "Sweet Moon Love", + "subtitles.copper_horn.great": "Great", + "subtitles.copper_horn.sky": "Sky", + "subtitles.copper_horn.falling": "Falling", + "subtitles.copper_horn.old": "Old", + "subtitles.copper_horn.hymn": "Hymn", + "subtitles.copper_horn.resting": "Resting", + "subtitles.copper_horn.pure": "Pure", + "subtitles.copper_horn.water": "Water", + "subtitles.copper_horn.desire": "Desire", + "subtitles.copper_horn.humble": "Humble", + "subtitles.copper_horn.fire": "Fire", + "subtitles.copper_horn.memory": "Memory", + "subtitles.copper_horn.dry": "Dry", + "subtitles.copper_horn.urge": "Urge", + "subtitles.copper_horn.anger": "Anger", + "subtitles.copper_horn.clear": "Clear", + "subtitles.copper_horn.temper": "Temper", + "subtitles.copper_horn.journey": "Journey", + "subtitles.copper_horn.fresh": "Fresh", + "subtitles.copper_horn.nest": "Nest", + "subtitles.copper_horn.thought": "Thought", + "subtitles.copper_horn.secret": "Secret", + "subtitles.copper_horn.lake": "Lake", + "subtitles.copper_horn.tear": "Tear", + "subtitles.copper_horn.fearless": "Fearless", + "subtitles.copper_horn.river": "River", + "subtitles.copper_horn.gift": "Gift", + "subtitles.copper_horn.sweet": "Sweet", + "subtitles.copper_horn.moon": "Moon", + "subtitles.copper_horn.love": "Love", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" +} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/id_id.json b/src/main/resources/assets/hollow/lang/id_id.json index e52c283..e5d20ee 100644 --- a/src/main/resources/assets/hollow/lang/id_id.json +++ b/src/main/resources/assets/hollow/lang/id_id.json @@ -1,6 +1,5 @@ { "item_group.hollow.hollow": "Rongga", - "block.hollow.oak_hollow_log": "Gelondong Ek Berongga", "block.hollow.stripped_oak_hollow_log": "Gelondong Ek Kupas Berongga", "block.hollow.spruce_hollow_log": "Gelondong Cemara Berongga", @@ -21,24 +20,82 @@ "block.hollow.stripped_mangrove_hollow_log": "Gelondong Bakau Kupas Berongga", "block.hollow.cherry_hollow_log": "Gelondong Sakura Berongga", "block.hollow.stripped_cherry_hollow_log": "Gelondong Sakura Kupas Berongga", - + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", "block.hollow.paeonia": "Mudan", + "block.hollow.rooted_orchid": "Rooted Orchid", "block.hollow.campion": "Campion", "block.hollow.polypore": "Polipori", "block.hollow.lotus_lilypad": "Daun Teratai Berbunga", + "block.hollow.giant_lilypad": "Giant Lily Pad", "block.hollow.twig": "Ranting", "block.hollow.sculk_jaw": "Rahang Sculk", "block.hollow.jar": "Stoples", "block.hollow.firefly_jar": "Stoples Kunang-kunang", - - "death.attack.sculk_jaw.player": "%1$s tercabik-cabik", - "death.attack.sculk_jaw": "%1$s tercabik-cabik", - - "item.hollow.firefly_spawn_egg": "Telur Pijah Kunang-kunang", - "advancements.adventure.diversity_win.title": "Keberagaman Menang", - "advancements.adventure.diversity_win.description": "Dapatkan satu dari setiap pewarna.", "block.hollow.echoing_pot": "Pot Bergema", "block.hollow.stone_chest": "Peti Batu", "block.hollow.stone_chest_lid": "Tutup Peti Batu", - "block.hollow.root_vines": "Akar Merambat" + "block.hollow.cattail": "Cattail", + "death.attack.sculk_jaw.player": "%1$s tercabik-cabik", + "death.attack.sculk_jaw": "%1$s tercabik-cabik", + "item.hollow.firefly_spawn_egg": "Telur Pijah Kunang-kunang", + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "subtitles.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "copper_horn.great_sky_falling": "Great Sky Falling", + "copper_horn.old_hymn_resting": "Old Hymn Resting", + "copper_horn.pure_water_desire": "Pure Water Desire", + "copper_horn.humble_fire_memory": "Humble Fire Memory", + "copper_horn.dry_urge_anger": "Dry Urge Anger", + "copper_horn.clear_temper_journey": "Clear Temper Journey", + "copper_horn.fresh_nest_thought": "Fresh Nest Thought", + "copper_horn.secret_lake_tear": "Secret Lake Tear", + "copper_horn.fearless_river_gift": "Fearless River Gift", + "copper_horn.sweet_moon_love": "Sweet Moon Love", + "subtitles.copper_horn.great": "Great", + "subtitles.copper_horn.sky": "Sky", + "subtitles.copper_horn.falling": "Falling", + "subtitles.copper_horn.old": "Old", + "subtitles.copper_horn.hymn": "Hymn", + "subtitles.copper_horn.resting": "Resting", + "subtitles.copper_horn.pure": "Pure", + "subtitles.copper_horn.water": "Water", + "subtitles.copper_horn.desire": "Desire", + "subtitles.copper_horn.humble": "Humble", + "subtitles.copper_horn.fire": "Fire", + "subtitles.copper_horn.memory": "Memory", + "subtitles.copper_horn.dry": "Dry", + "subtitles.copper_horn.urge": "Urge", + "subtitles.copper_horn.anger": "Anger", + "subtitles.copper_horn.clear": "Clear", + "subtitles.copper_horn.temper": "Temper", + "subtitles.copper_horn.journey": "Journey", + "subtitles.copper_horn.fresh": "Fresh", + "subtitles.copper_horn.nest": "Nest", + "subtitles.copper_horn.thought": "Thought", + "subtitles.copper_horn.secret": "Secret", + "subtitles.copper_horn.lake": "Lake", + "subtitles.copper_horn.tear": "Tear", + "subtitles.copper_horn.fearless": "Fearless", + "subtitles.copper_horn.river": "River", + "subtitles.copper_horn.gift": "Gift", + "subtitles.copper_horn.sweet": "Sweet", + "subtitles.copper_horn.moon": "Moon", + "subtitles.copper_horn.love": "Love", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" } \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/it_it.json b/src/main/resources/assets/hollow/lang/it_it.json index a4cf9bf..aee4d6d 100644 --- a/src/main/resources/assets/hollow/lang/it_it.json +++ b/src/main/resources/assets/hollow/lang/it_it.json @@ -1,6 +1,5 @@ { "item_group.hollow.hollow": "Vuoto", - "block.hollow.oak_hollow_log": "Tronco cavo di quercia", "block.hollow.stripped_oak_hollow_log": "Tronco cavo di quercia scortecciato", "block.hollow.spruce_hollow_log": "Tronco cavo di abete", @@ -21,22 +20,82 @@ "block.hollow.stripped_mangrove_hollow_log": "Tronco cavo di mangrovia scortecciato", "block.hollow.cherry_hollow_log": "Tronco cavo di ciliego", "block.hollow.stripped_cherry_hollow_log": "Tronco cavo di ciliego scortecciato", - + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", "block.hollow.paeonia": "Paeonia", + "block.hollow.rooted_orchid": "Rooted Orchid", "block.hollow.campion": "Campion", "block.hollow.polypore": "Poliporo", "block.hollow.lotus_lilypad": "Ninfea Fiorita", + "block.hollow.giant_lilypad": "Giant Lily Pad", "block.hollow.twig": "Ramoscello", "block.hollow.sculk_jaw": "Mascella di Sculk", - - "death.attack.sculk_jaw.player": "%1$s è stato fatto a pezzi", - "death.attack.sculk_jaw": "%1$s è stato fatto a pezzi", - - "item.hollow.firefly_spawn_egg": "Uovo generatore di Lucciola", "block.hollow.jar": "Jar", "block.hollow.firefly_jar": "Firefly Jar", "block.hollow.echoing_pot": "Echoing Pot", - - "advancements.adventure.diversity_win.title": "Diversity Win", - "advancements.adventure.diversity_win.description": "Get one of every dye." + "block.hollow.stone_chest": "Stone Chest", + "block.hollow.stone_chest_lid": "Stone Chest Lid", + "block.hollow.cattail": "Cattail", + "death.attack.sculk_jaw.player": "%1$s è stato fatto a pezzi", + "death.attack.sculk_jaw": "%1$s è stato fatto a pezzi", + "item.hollow.firefly_spawn_egg": "Uovo generatore di Lucciola", + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "subtitles.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "copper_horn.great_sky_falling": "Great Sky Falling", + "copper_horn.old_hymn_resting": "Old Hymn Resting", + "copper_horn.pure_water_desire": "Pure Water Desire", + "copper_horn.humble_fire_memory": "Humble Fire Memory", + "copper_horn.dry_urge_anger": "Dry Urge Anger", + "copper_horn.clear_temper_journey": "Clear Temper Journey", + "copper_horn.fresh_nest_thought": "Fresh Nest Thought", + "copper_horn.secret_lake_tear": "Secret Lake Tear", + "copper_horn.fearless_river_gift": "Fearless River Gift", + "copper_horn.sweet_moon_love": "Sweet Moon Love", + "subtitles.copper_horn.great": "Great", + "subtitles.copper_horn.sky": "Sky", + "subtitles.copper_horn.falling": "Falling", + "subtitles.copper_horn.old": "Old", + "subtitles.copper_horn.hymn": "Hymn", + "subtitles.copper_horn.resting": "Resting", + "subtitles.copper_horn.pure": "Pure", + "subtitles.copper_horn.water": "Water", + "subtitles.copper_horn.desire": "Desire", + "subtitles.copper_horn.humble": "Humble", + "subtitles.copper_horn.fire": "Fire", + "subtitles.copper_horn.memory": "Memory", + "subtitles.copper_horn.dry": "Dry", + "subtitles.copper_horn.urge": "Urge", + "subtitles.copper_horn.anger": "Anger", + "subtitles.copper_horn.clear": "Clear", + "subtitles.copper_horn.temper": "Temper", + "subtitles.copper_horn.journey": "Journey", + "subtitles.copper_horn.fresh": "Fresh", + "subtitles.copper_horn.nest": "Nest", + "subtitles.copper_horn.thought": "Thought", + "subtitles.copper_horn.secret": "Secret", + "subtitles.copper_horn.lake": "Lake", + "subtitles.copper_horn.tear": "Tear", + "subtitles.copper_horn.fearless": "Fearless", + "subtitles.copper_horn.river": "River", + "subtitles.copper_horn.gift": "Gift", + "subtitles.copper_horn.sweet": "Sweet", + "subtitles.copper_horn.moon": "Moon", + "subtitles.copper_horn.love": "Love", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" } \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/ja_jp.json b/src/main/resources/assets/hollow/lang/ja_jp.json new file mode 100644 index 0000000..4139816 --- /dev/null +++ b/src/main/resources/assets/hollow/lang/ja_jp.json @@ -0,0 +1,101 @@ +{ + "item_group.hollow.hollow": "Hollow", + "block.hollow.oak_hollow_log": "Hollow Oak Log", + "block.hollow.stripped_oak_hollow_log": "Hollow Stripped Oak Log", + "block.hollow.spruce_hollow_log": "Hollow Spruce Log", + "block.hollow.stripped_spruce_hollow_log": "Hollow Stripped Spruce Log", + "block.hollow.birch_hollow_log": "Hollow Birch Log", + "block.hollow.stripped_birch_hollow_log": "Hollow Stripped Birch Log", + "block.hollow.jungle_hollow_log": "Hollow Jungle Log", + "block.hollow.stripped_jungle_hollow_log": "Hollow Stripped Jungle Log", + "block.hollow.acacia_hollow_log": "Hollow Acacia Log", + "block.hollow.stripped_acacia_hollow_log": "Hollow Stripped Acacia Log", + "block.hollow.dark_oak_hollow_log": "Hollow Dark Oak Log", + "block.hollow.stripped_dark_oak_hollow_log": "Hollow Stripped Dark Oak Log", + "block.hollow.crimson_hollow_stem": "Hollow Crimson Stem", + "block.hollow.stripped_crimson_hollow_stem": "Hollow Stripped Crimson Stem", + "block.hollow.warped_hollow_stem": "Hollow Warped Stem", + "block.hollow.stripped_warped_hollow_stem": "Hollow Stripped Warped Stem", + "block.hollow.mangrove_hollow_log": "Hollow Mangrove Log", + "block.hollow.stripped_mangrove_hollow_log": "Hollow Stripped Mangrove Log", + "block.hollow.cherry_hollow_log": "Hollow Cherry Log", + "block.hollow.stripped_cherry_hollow_log": "Hollow Stripped Cherry Log", + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", + "block.hollow.paeonia": "Paeonia", + "block.hollow.rooted_orchid": "Rooted Orchid", + "block.hollow.campion": "Campion", + "block.hollow.polypore": "Polypore", + "block.hollow.lotus_lilypad": "Flowering Lily Pad", + "block.hollow.giant_lilypad": "Giant Lily Pad", + "block.hollow.twig": "Twig", + "block.hollow.sculk_jaw": "Sculk Jaw", + "block.hollow.jar": "Jar", + "block.hollow.firefly_jar": "Firefly Jar", + "block.hollow.echoing_pot": "Echoing Pot", + "block.hollow.stone_chest": "Stone Chest", + "block.hollow.stone_chest_lid": "Stone Chest Lid", + "block.hollow.cattail": "Cattail", + "death.attack.sculk_jaw.player": "%1$s was ripped to shreds", + "death.attack.sculk_jaw": "%1$s was ripped to shreds", + "item.hollow.firefly_spawn_egg": "Firefly Spawn Egg", + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "subtitles.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "copper_horn.great_sky_falling": "Great Sky Falling", + "copper_horn.old_hymn_resting": "Old Hymn Resting", + "copper_horn.pure_water_desire": "Pure Water Desire", + "copper_horn.humble_fire_memory": "Humble Fire Memory", + "copper_horn.dry_urge_anger": "Dry Urge Anger", + "copper_horn.clear_temper_journey": "Clear Temper Journey", + "copper_horn.fresh_nest_thought": "Fresh Nest Thought", + "copper_horn.secret_lake_tear": "Secret Lake Tear", + "copper_horn.fearless_river_gift": "Fearless River Gift", + "copper_horn.sweet_moon_love": "Sweet Moon Love", + "subtitles.copper_horn.great": "Great", + "subtitles.copper_horn.sky": "Sky", + "subtitles.copper_horn.falling": "Falling", + "subtitles.copper_horn.old": "Old", + "subtitles.copper_horn.hymn": "Hymn", + "subtitles.copper_horn.resting": "Resting", + "subtitles.copper_horn.pure": "Pure", + "subtitles.copper_horn.water": "Water", + "subtitles.copper_horn.desire": "Desire", + "subtitles.copper_horn.humble": "Humble", + "subtitles.copper_horn.fire": "Fire", + "subtitles.copper_horn.memory": "Memory", + "subtitles.copper_horn.dry": "Dry", + "subtitles.copper_horn.urge": "Urge", + "subtitles.copper_horn.anger": "Anger", + "subtitles.copper_horn.clear": "Clear", + "subtitles.copper_horn.temper": "Temper", + "subtitles.copper_horn.journey": "Journey", + "subtitles.copper_horn.fresh": "Fresh", + "subtitles.copper_horn.nest": "Nest", + "subtitles.copper_horn.thought": "Thought", + "subtitles.copper_horn.secret": "Secret", + "subtitles.copper_horn.lake": "Lake", + "subtitles.copper_horn.tear": "Tear", + "subtitles.copper_horn.fearless": "Fearless", + "subtitles.copper_horn.river": "River", + "subtitles.copper_horn.gift": "Gift", + "subtitles.copper_horn.sweet": "Sweet", + "subtitles.copper_horn.moon": "Moon", + "subtitles.copper_horn.love": "Love", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" +} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/pt_br.json b/src/main/resources/assets/hollow/lang/pt_br.json index 4f57989..5c6d632 100644 --- a/src/main/resources/assets/hollow/lang/pt_br.json +++ b/src/main/resources/assets/hollow/lang/pt_br.json @@ -1,6 +1,5 @@ { "item_group.hollow.hollow": "Oco", - "block.hollow.oak_hollow_log": "Tronco de carvalho oco", "block.hollow.stripped_oak_hollow_log": "Tronco de carvalho oco descascado", "block.hollow.spruce_hollow_log": "Tronco de pinheiro oco", @@ -21,24 +20,82 @@ "block.hollow.stripped_mangrove_hollow_log": "Tronco de mangue oco descascado", "block.hollow.cherry_hollow_log": "Tronco de cerejeira oco", "block.hollow.stripped_cherry_hollow_log": "Tronco de cerejeira oco descascado", - + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", "block.hollow.paeonia": "Peônia", + "block.hollow.rooted_orchid": "Rooted Orchid", "block.hollow.campion": "Silene latifolia", "block.hollow.polypore": "Poliporo", "block.hollow.lotus_lilypad": "Vitória-régia florida", + "block.hollow.giant_lilypad": "Giant Lily Pad", "block.hollow.twig": "Galho", - - "item.hollow.firefly_spawn_egg": "Ovo gerador de vagalume", "block.hollow.sculk_jaw": "Sculk Jaw", "block.hollow.jar": "Jar", "block.hollow.firefly_jar": "Firefly Jar", - - "death.attack.sculk_jaw.player": "%1$s was ripped to shreds", - "death.attack.sculk_jaw": "%1$s was ripped to shreds", - "advancements.adventure.diversity_win.title": "Diversity Win", - "advancements.adventure.diversity_win.description": "Get one of every dye.", "block.hollow.echoing_pot": "Echoing Pot", "block.hollow.stone_chest": "Stone Chest", "block.hollow.stone_chest_lid": "Stone Chest Lid", - "block.hollow.root_vines": "Root Vines" + "block.hollow.cattail": "Cattail", + "death.attack.sculk_jaw.player": "%1$s was ripped to shreds", + "death.attack.sculk_jaw": "%1$s was ripped to shreds", + "item.hollow.firefly_spawn_egg": "Ovo gerador de vagalume", + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "subtitles.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "copper_horn.great_sky_falling": "Great Sky Falling", + "copper_horn.old_hymn_resting": "Old Hymn Resting", + "copper_horn.pure_water_desire": "Pure Water Desire", + "copper_horn.humble_fire_memory": "Humble Fire Memory", + "copper_horn.dry_urge_anger": "Dry Urge Anger", + "copper_horn.clear_temper_journey": "Clear Temper Journey", + "copper_horn.fresh_nest_thought": "Fresh Nest Thought", + "copper_horn.secret_lake_tear": "Secret Lake Tear", + "copper_horn.fearless_river_gift": "Fearless River Gift", + "copper_horn.sweet_moon_love": "Sweet Moon Love", + "subtitles.copper_horn.great": "Great", + "subtitles.copper_horn.sky": "Sky", + "subtitles.copper_horn.falling": "Falling", + "subtitles.copper_horn.old": "Old", + "subtitles.copper_horn.hymn": "Hymn", + "subtitles.copper_horn.resting": "Resting", + "subtitles.copper_horn.pure": "Pure", + "subtitles.copper_horn.water": "Water", + "subtitles.copper_horn.desire": "Desire", + "subtitles.copper_horn.humble": "Humble", + "subtitles.copper_horn.fire": "Fire", + "subtitles.copper_horn.memory": "Memory", + "subtitles.copper_horn.dry": "Dry", + "subtitles.copper_horn.urge": "Urge", + "subtitles.copper_horn.anger": "Anger", + "subtitles.copper_horn.clear": "Clear", + "subtitles.copper_horn.temper": "Temper", + "subtitles.copper_horn.journey": "Journey", + "subtitles.copper_horn.fresh": "Fresh", + "subtitles.copper_horn.nest": "Nest", + "subtitles.copper_horn.thought": "Thought", + "subtitles.copper_horn.secret": "Secret", + "subtitles.copper_horn.lake": "Lake", + "subtitles.copper_horn.tear": "Tear", + "subtitles.copper_horn.fearless": "Fearless", + "subtitles.copper_horn.river": "River", + "subtitles.copper_horn.gift": "Gift", + "subtitles.copper_horn.sweet": "Sweet", + "subtitles.copper_horn.moon": "Moon", + "subtitles.copper_horn.love": "Love", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" } \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/pt_pt.json b/src/main/resources/assets/hollow/lang/pt_pt.json new file mode 100644 index 0000000..4139816 --- /dev/null +++ b/src/main/resources/assets/hollow/lang/pt_pt.json @@ -0,0 +1,101 @@ +{ + "item_group.hollow.hollow": "Hollow", + "block.hollow.oak_hollow_log": "Hollow Oak Log", + "block.hollow.stripped_oak_hollow_log": "Hollow Stripped Oak Log", + "block.hollow.spruce_hollow_log": "Hollow Spruce Log", + "block.hollow.stripped_spruce_hollow_log": "Hollow Stripped Spruce Log", + "block.hollow.birch_hollow_log": "Hollow Birch Log", + "block.hollow.stripped_birch_hollow_log": "Hollow Stripped Birch Log", + "block.hollow.jungle_hollow_log": "Hollow Jungle Log", + "block.hollow.stripped_jungle_hollow_log": "Hollow Stripped Jungle Log", + "block.hollow.acacia_hollow_log": "Hollow Acacia Log", + "block.hollow.stripped_acacia_hollow_log": "Hollow Stripped Acacia Log", + "block.hollow.dark_oak_hollow_log": "Hollow Dark Oak Log", + "block.hollow.stripped_dark_oak_hollow_log": "Hollow Stripped Dark Oak Log", + "block.hollow.crimson_hollow_stem": "Hollow Crimson Stem", + "block.hollow.stripped_crimson_hollow_stem": "Hollow Stripped Crimson Stem", + "block.hollow.warped_hollow_stem": "Hollow Warped Stem", + "block.hollow.stripped_warped_hollow_stem": "Hollow Stripped Warped Stem", + "block.hollow.mangrove_hollow_log": "Hollow Mangrove Log", + "block.hollow.stripped_mangrove_hollow_log": "Hollow Stripped Mangrove Log", + "block.hollow.cherry_hollow_log": "Hollow Cherry Log", + "block.hollow.stripped_cherry_hollow_log": "Hollow Stripped Cherry Log", + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", + "block.hollow.paeonia": "Paeonia", + "block.hollow.rooted_orchid": "Rooted Orchid", + "block.hollow.campion": "Campion", + "block.hollow.polypore": "Polypore", + "block.hollow.lotus_lilypad": "Flowering Lily Pad", + "block.hollow.giant_lilypad": "Giant Lily Pad", + "block.hollow.twig": "Twig", + "block.hollow.sculk_jaw": "Sculk Jaw", + "block.hollow.jar": "Jar", + "block.hollow.firefly_jar": "Firefly Jar", + "block.hollow.echoing_pot": "Echoing Pot", + "block.hollow.stone_chest": "Stone Chest", + "block.hollow.stone_chest_lid": "Stone Chest Lid", + "block.hollow.cattail": "Cattail", + "death.attack.sculk_jaw.player": "%1$s was ripped to shreds", + "death.attack.sculk_jaw": "%1$s was ripped to shreds", + "item.hollow.firefly_spawn_egg": "Firefly Spawn Egg", + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "subtitles.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "copper_horn.great_sky_falling": "Great Sky Falling", + "copper_horn.old_hymn_resting": "Old Hymn Resting", + "copper_horn.pure_water_desire": "Pure Water Desire", + "copper_horn.humble_fire_memory": "Humble Fire Memory", + "copper_horn.dry_urge_anger": "Dry Urge Anger", + "copper_horn.clear_temper_journey": "Clear Temper Journey", + "copper_horn.fresh_nest_thought": "Fresh Nest Thought", + "copper_horn.secret_lake_tear": "Secret Lake Tear", + "copper_horn.fearless_river_gift": "Fearless River Gift", + "copper_horn.sweet_moon_love": "Sweet Moon Love", + "subtitles.copper_horn.great": "Great", + "subtitles.copper_horn.sky": "Sky", + "subtitles.copper_horn.falling": "Falling", + "subtitles.copper_horn.old": "Old", + "subtitles.copper_horn.hymn": "Hymn", + "subtitles.copper_horn.resting": "Resting", + "subtitles.copper_horn.pure": "Pure", + "subtitles.copper_horn.water": "Water", + "subtitles.copper_horn.desire": "Desire", + "subtitles.copper_horn.humble": "Humble", + "subtitles.copper_horn.fire": "Fire", + "subtitles.copper_horn.memory": "Memory", + "subtitles.copper_horn.dry": "Dry", + "subtitles.copper_horn.urge": "Urge", + "subtitles.copper_horn.anger": "Anger", + "subtitles.copper_horn.clear": "Clear", + "subtitles.copper_horn.temper": "Temper", + "subtitles.copper_horn.journey": "Journey", + "subtitles.copper_horn.fresh": "Fresh", + "subtitles.copper_horn.nest": "Nest", + "subtitles.copper_horn.thought": "Thought", + "subtitles.copper_horn.secret": "Secret", + "subtitles.copper_horn.lake": "Lake", + "subtitles.copper_horn.tear": "Tear", + "subtitles.copper_horn.fearless": "Fearless", + "subtitles.copper_horn.river": "River", + "subtitles.copper_horn.gift": "Gift", + "subtitles.copper_horn.sweet": "Sweet", + "subtitles.copper_horn.moon": "Moon", + "subtitles.copper_horn.love": "Love", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" +} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/ru_ru.json b/src/main/resources/assets/hollow/lang/ru_ru.json index 0cfeb3b..a90c5dd 100644 --- a/src/main/resources/assets/hollow/lang/ru_ru.json +++ b/src/main/resources/assets/hollow/lang/ru_ru.json @@ -1,6 +1,5 @@ { "item_group.hollow.hollow": "Полое", - "block.hollow.oak_hollow_log": "Полое дубовое бревно", "block.hollow.stripped_oak_hollow_log": "Полое обтёсанное дубовое бревно", "block.hollow.spruce_hollow_log": "Полое еловое бревно", @@ -21,24 +20,82 @@ "block.hollow.stripped_mangrove_hollow_log": "Полое обтёсанное мангровое бревноg", "block.hollow.cherry_hollow_log": "Полое вишнёвое бревно", "block.hollow.stripped_cherry_hollow_log": "Полое обтёсанное вишнёвое бревно", - + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", "block.hollow.paeonia": "Пион", + "block.hollow.rooted_orchid": "Rooted Orchid", "block.hollow.campion": "Смолёвка", "block.hollow.polypore": "Трутовик", "block.hollow.lotus_lilypad": "Цветущая кувшинка", + "block.hollow.giant_lilypad": "Giant Lily Pad", "block.hollow.twig": "Хворост", - - "item.hollow.firefly_spawn_egg": "Яйцо призыва светлячка", - "block.hollow.sculk_jaw": "Sculk Jaw", "block.hollow.jar": "Jar", "block.hollow.firefly_jar": "Firefly Jar", "block.hollow.echoing_pot": "Echoing Pot", - "death.attack.sculk_jaw.player": "%1$s was ripped to shreds", - "death.attack.sculk_jaw": "%1$s was ripped to shreds", - "advancements.adventure.diversity_win.title": "Diversity Win", - "advancements.adventure.diversity_win.description": "Get one of every dye.", "block.hollow.stone_chest": "Stone Chest", "block.hollow.stone_chest_lid": "Stone Chest Lid", - "block.hollow.root_vines": "Root Vines" -} + "block.hollow.cattail": "Cattail", + "death.attack.sculk_jaw.player": "%1$s was ripped to shreds", + "death.attack.sculk_jaw": "%1$s was ripped to shreds", + "item.hollow.firefly_spawn_egg": "Яйцо призыва светлячка", + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "subtitles.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "copper_horn.great_sky_falling": "Great Sky Falling", + "copper_horn.old_hymn_resting": "Old Hymn Resting", + "copper_horn.pure_water_desire": "Pure Water Desire", + "copper_horn.humble_fire_memory": "Humble Fire Memory", + "copper_horn.dry_urge_anger": "Dry Urge Anger", + "copper_horn.clear_temper_journey": "Clear Temper Journey", + "copper_horn.fresh_nest_thought": "Fresh Nest Thought", + "copper_horn.secret_lake_tear": "Secret Lake Tear", + "copper_horn.fearless_river_gift": "Fearless River Gift", + "copper_horn.sweet_moon_love": "Sweet Moon Love", + "subtitles.copper_horn.great": "Great", + "subtitles.copper_horn.sky": "Sky", + "subtitles.copper_horn.falling": "Falling", + "subtitles.copper_horn.old": "Old", + "subtitles.copper_horn.hymn": "Hymn", + "subtitles.copper_horn.resting": "Resting", + "subtitles.copper_horn.pure": "Pure", + "subtitles.copper_horn.water": "Water", + "subtitles.copper_horn.desire": "Desire", + "subtitles.copper_horn.humble": "Humble", + "subtitles.copper_horn.fire": "Fire", + "subtitles.copper_horn.memory": "Memory", + "subtitles.copper_horn.dry": "Dry", + "subtitles.copper_horn.urge": "Urge", + "subtitles.copper_horn.anger": "Anger", + "subtitles.copper_horn.clear": "Clear", + "subtitles.copper_horn.temper": "Temper", + "subtitles.copper_horn.journey": "Journey", + "subtitles.copper_horn.fresh": "Fresh", + "subtitles.copper_horn.nest": "Nest", + "subtitles.copper_horn.thought": "Thought", + "subtitles.copper_horn.secret": "Secret", + "subtitles.copper_horn.lake": "Lake", + "subtitles.copper_horn.tear": "Tear", + "subtitles.copper_horn.fearless": "Fearless", + "subtitles.copper_horn.river": "River", + "subtitles.copper_horn.gift": "Gift", + "subtitles.copper_horn.sweet": "Sweet", + "subtitles.copper_horn.moon": "Moon", + "subtitles.copper_horn.love": "Love", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" +} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/uk_ua.json b/src/main/resources/assets/hollow/lang/uk_ua.json new file mode 100644 index 0000000..4139816 --- /dev/null +++ b/src/main/resources/assets/hollow/lang/uk_ua.json @@ -0,0 +1,101 @@ +{ + "item_group.hollow.hollow": "Hollow", + "block.hollow.oak_hollow_log": "Hollow Oak Log", + "block.hollow.stripped_oak_hollow_log": "Hollow Stripped Oak Log", + "block.hollow.spruce_hollow_log": "Hollow Spruce Log", + "block.hollow.stripped_spruce_hollow_log": "Hollow Stripped Spruce Log", + "block.hollow.birch_hollow_log": "Hollow Birch Log", + "block.hollow.stripped_birch_hollow_log": "Hollow Stripped Birch Log", + "block.hollow.jungle_hollow_log": "Hollow Jungle Log", + "block.hollow.stripped_jungle_hollow_log": "Hollow Stripped Jungle Log", + "block.hollow.acacia_hollow_log": "Hollow Acacia Log", + "block.hollow.stripped_acacia_hollow_log": "Hollow Stripped Acacia Log", + "block.hollow.dark_oak_hollow_log": "Hollow Dark Oak Log", + "block.hollow.stripped_dark_oak_hollow_log": "Hollow Stripped Dark Oak Log", + "block.hollow.crimson_hollow_stem": "Hollow Crimson Stem", + "block.hollow.stripped_crimson_hollow_stem": "Hollow Stripped Crimson Stem", + "block.hollow.warped_hollow_stem": "Hollow Warped Stem", + "block.hollow.stripped_warped_hollow_stem": "Hollow Stripped Warped Stem", + "block.hollow.mangrove_hollow_log": "Hollow Mangrove Log", + "block.hollow.stripped_mangrove_hollow_log": "Hollow Stripped Mangrove Log", + "block.hollow.cherry_hollow_log": "Hollow Cherry Log", + "block.hollow.stripped_cherry_hollow_log": "Hollow Stripped Cherry Log", + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", + "block.hollow.paeonia": "Paeonia", + "block.hollow.rooted_orchid": "Rooted Orchid", + "block.hollow.campion": "Campion", + "block.hollow.polypore": "Polypore", + "block.hollow.lotus_lilypad": "Flowering Lily Pad", + "block.hollow.giant_lilypad": "Giant Lily Pad", + "block.hollow.twig": "Twig", + "block.hollow.sculk_jaw": "Sculk Jaw", + "block.hollow.jar": "Jar", + "block.hollow.firefly_jar": "Firefly Jar", + "block.hollow.echoing_pot": "Echoing Pot", + "block.hollow.stone_chest": "Stone Chest", + "block.hollow.stone_chest_lid": "Stone Chest Lid", + "block.hollow.cattail": "Cattail", + "death.attack.sculk_jaw.player": "%1$s was ripped to shreds", + "death.attack.sculk_jaw": "%1$s was ripped to shreds", + "item.hollow.firefly_spawn_egg": "Firefly Spawn Egg", + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "subtitles.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "copper_horn.great_sky_falling": "Great Sky Falling", + "copper_horn.old_hymn_resting": "Old Hymn Resting", + "copper_horn.pure_water_desire": "Pure Water Desire", + "copper_horn.humble_fire_memory": "Humble Fire Memory", + "copper_horn.dry_urge_anger": "Dry Urge Anger", + "copper_horn.clear_temper_journey": "Clear Temper Journey", + "copper_horn.fresh_nest_thought": "Fresh Nest Thought", + "copper_horn.secret_lake_tear": "Secret Lake Tear", + "copper_horn.fearless_river_gift": "Fearless River Gift", + "copper_horn.sweet_moon_love": "Sweet Moon Love", + "subtitles.copper_horn.great": "Great", + "subtitles.copper_horn.sky": "Sky", + "subtitles.copper_horn.falling": "Falling", + "subtitles.copper_horn.old": "Old", + "subtitles.copper_horn.hymn": "Hymn", + "subtitles.copper_horn.resting": "Resting", + "subtitles.copper_horn.pure": "Pure", + "subtitles.copper_horn.water": "Water", + "subtitles.copper_horn.desire": "Desire", + "subtitles.copper_horn.humble": "Humble", + "subtitles.copper_horn.fire": "Fire", + "subtitles.copper_horn.memory": "Memory", + "subtitles.copper_horn.dry": "Dry", + "subtitles.copper_horn.urge": "Urge", + "subtitles.copper_horn.anger": "Anger", + "subtitles.copper_horn.clear": "Clear", + "subtitles.copper_horn.temper": "Temper", + "subtitles.copper_horn.journey": "Journey", + "subtitles.copper_horn.fresh": "Fresh", + "subtitles.copper_horn.nest": "Nest", + "subtitles.copper_horn.thought": "Thought", + "subtitles.copper_horn.secret": "Secret", + "subtitles.copper_horn.lake": "Lake", + "subtitles.copper_horn.tear": "Tear", + "subtitles.copper_horn.fearless": "Fearless", + "subtitles.copper_horn.river": "River", + "subtitles.copper_horn.gift": "Gift", + "subtitles.copper_horn.sweet": "Sweet", + "subtitles.copper_horn.moon": "Moon", + "subtitles.copper_horn.love": "Love", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" +} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/zh_cn.json b/src/main/resources/assets/hollow/lang/zh_cn.json new file mode 100644 index 0000000..4139816 --- /dev/null +++ b/src/main/resources/assets/hollow/lang/zh_cn.json @@ -0,0 +1,101 @@ +{ + "item_group.hollow.hollow": "Hollow", + "block.hollow.oak_hollow_log": "Hollow Oak Log", + "block.hollow.stripped_oak_hollow_log": "Hollow Stripped Oak Log", + "block.hollow.spruce_hollow_log": "Hollow Spruce Log", + "block.hollow.stripped_spruce_hollow_log": "Hollow Stripped Spruce Log", + "block.hollow.birch_hollow_log": "Hollow Birch Log", + "block.hollow.stripped_birch_hollow_log": "Hollow Stripped Birch Log", + "block.hollow.jungle_hollow_log": "Hollow Jungle Log", + "block.hollow.stripped_jungle_hollow_log": "Hollow Stripped Jungle Log", + "block.hollow.acacia_hollow_log": "Hollow Acacia Log", + "block.hollow.stripped_acacia_hollow_log": "Hollow Stripped Acacia Log", + "block.hollow.dark_oak_hollow_log": "Hollow Dark Oak Log", + "block.hollow.stripped_dark_oak_hollow_log": "Hollow Stripped Dark Oak Log", + "block.hollow.crimson_hollow_stem": "Hollow Crimson Stem", + "block.hollow.stripped_crimson_hollow_stem": "Hollow Stripped Crimson Stem", + "block.hollow.warped_hollow_stem": "Hollow Warped Stem", + "block.hollow.stripped_warped_hollow_stem": "Hollow Stripped Warped Stem", + "block.hollow.mangrove_hollow_log": "Hollow Mangrove Log", + "block.hollow.stripped_mangrove_hollow_log": "Hollow Stripped Mangrove Log", + "block.hollow.cherry_hollow_log": "Hollow Cherry Log", + "block.hollow.stripped_cherry_hollow_log": "Hollow Stripped Cherry Log", + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", + "block.hollow.paeonia": "Paeonia", + "block.hollow.rooted_orchid": "Rooted Orchid", + "block.hollow.campion": "Campion", + "block.hollow.polypore": "Polypore", + "block.hollow.lotus_lilypad": "Flowering Lily Pad", + "block.hollow.giant_lilypad": "Giant Lily Pad", + "block.hollow.twig": "Twig", + "block.hollow.sculk_jaw": "Sculk Jaw", + "block.hollow.jar": "Jar", + "block.hollow.firefly_jar": "Firefly Jar", + "block.hollow.echoing_pot": "Echoing Pot", + "block.hollow.stone_chest": "Stone Chest", + "block.hollow.stone_chest_lid": "Stone Chest Lid", + "block.hollow.cattail": "Cattail", + "death.attack.sculk_jaw.player": "%1$s was ripped to shreds", + "death.attack.sculk_jaw": "%1$s was ripped to shreds", + "item.hollow.firefly_spawn_egg": "Firefly Spawn Egg", + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "subtitles.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "copper_horn.great_sky_falling": "Great Sky Falling", + "copper_horn.old_hymn_resting": "Old Hymn Resting", + "copper_horn.pure_water_desire": "Pure Water Desire", + "copper_horn.humble_fire_memory": "Humble Fire Memory", + "copper_horn.dry_urge_anger": "Dry Urge Anger", + "copper_horn.clear_temper_journey": "Clear Temper Journey", + "copper_horn.fresh_nest_thought": "Fresh Nest Thought", + "copper_horn.secret_lake_tear": "Secret Lake Tear", + "copper_horn.fearless_river_gift": "Fearless River Gift", + "copper_horn.sweet_moon_love": "Sweet Moon Love", + "subtitles.copper_horn.great": "Great", + "subtitles.copper_horn.sky": "Sky", + "subtitles.copper_horn.falling": "Falling", + "subtitles.copper_horn.old": "Old", + "subtitles.copper_horn.hymn": "Hymn", + "subtitles.copper_horn.resting": "Resting", + "subtitles.copper_horn.pure": "Pure", + "subtitles.copper_horn.water": "Water", + "subtitles.copper_horn.desire": "Desire", + "subtitles.copper_horn.humble": "Humble", + "subtitles.copper_horn.fire": "Fire", + "subtitles.copper_horn.memory": "Memory", + "subtitles.copper_horn.dry": "Dry", + "subtitles.copper_horn.urge": "Urge", + "subtitles.copper_horn.anger": "Anger", + "subtitles.copper_horn.clear": "Clear", + "subtitles.copper_horn.temper": "Temper", + "subtitles.copper_horn.journey": "Journey", + "subtitles.copper_horn.fresh": "Fresh", + "subtitles.copper_horn.nest": "Nest", + "subtitles.copper_horn.thought": "Thought", + "subtitles.copper_horn.secret": "Secret", + "subtitles.copper_horn.lake": "Lake", + "subtitles.copper_horn.tear": "Tear", + "subtitles.copper_horn.fearless": "Fearless", + "subtitles.copper_horn.river": "River", + "subtitles.copper_horn.gift": "Gift", + "subtitles.copper_horn.sweet": "Sweet", + "subtitles.copper_horn.moon": "Moon", + "subtitles.copper_horn.love": "Love", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" +} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/zh_hk.json b/src/main/resources/assets/hollow/lang/zh_hk.json new file mode 100644 index 0000000..4139816 --- /dev/null +++ b/src/main/resources/assets/hollow/lang/zh_hk.json @@ -0,0 +1,101 @@ +{ + "item_group.hollow.hollow": "Hollow", + "block.hollow.oak_hollow_log": "Hollow Oak Log", + "block.hollow.stripped_oak_hollow_log": "Hollow Stripped Oak Log", + "block.hollow.spruce_hollow_log": "Hollow Spruce Log", + "block.hollow.stripped_spruce_hollow_log": "Hollow Stripped Spruce Log", + "block.hollow.birch_hollow_log": "Hollow Birch Log", + "block.hollow.stripped_birch_hollow_log": "Hollow Stripped Birch Log", + "block.hollow.jungle_hollow_log": "Hollow Jungle Log", + "block.hollow.stripped_jungle_hollow_log": "Hollow Stripped Jungle Log", + "block.hollow.acacia_hollow_log": "Hollow Acacia Log", + "block.hollow.stripped_acacia_hollow_log": "Hollow Stripped Acacia Log", + "block.hollow.dark_oak_hollow_log": "Hollow Dark Oak Log", + "block.hollow.stripped_dark_oak_hollow_log": "Hollow Stripped Dark Oak Log", + "block.hollow.crimson_hollow_stem": "Hollow Crimson Stem", + "block.hollow.stripped_crimson_hollow_stem": "Hollow Stripped Crimson Stem", + "block.hollow.warped_hollow_stem": "Hollow Warped Stem", + "block.hollow.stripped_warped_hollow_stem": "Hollow Stripped Warped Stem", + "block.hollow.mangrove_hollow_log": "Hollow Mangrove Log", + "block.hollow.stripped_mangrove_hollow_log": "Hollow Stripped Mangrove Log", + "block.hollow.cherry_hollow_log": "Hollow Cherry Log", + "block.hollow.stripped_cherry_hollow_log": "Hollow Stripped Cherry Log", + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", + "block.hollow.paeonia": "Paeonia", + "block.hollow.rooted_orchid": "Rooted Orchid", + "block.hollow.campion": "Campion", + "block.hollow.polypore": "Polypore", + "block.hollow.lotus_lilypad": "Flowering Lily Pad", + "block.hollow.giant_lilypad": "Giant Lily Pad", + "block.hollow.twig": "Twig", + "block.hollow.sculk_jaw": "Sculk Jaw", + "block.hollow.jar": "Jar", + "block.hollow.firefly_jar": "Firefly Jar", + "block.hollow.echoing_pot": "Echoing Pot", + "block.hollow.stone_chest": "Stone Chest", + "block.hollow.stone_chest_lid": "Stone Chest Lid", + "block.hollow.cattail": "Cattail", + "death.attack.sculk_jaw.player": "%1$s was ripped to shreds", + "death.attack.sculk_jaw": "%1$s was ripped to shreds", + "item.hollow.firefly_spawn_egg": "Firefly Spawn Egg", + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "subtitles.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "copper_horn.great_sky_falling": "Great Sky Falling", + "copper_horn.old_hymn_resting": "Old Hymn Resting", + "copper_horn.pure_water_desire": "Pure Water Desire", + "copper_horn.humble_fire_memory": "Humble Fire Memory", + "copper_horn.dry_urge_anger": "Dry Urge Anger", + "copper_horn.clear_temper_journey": "Clear Temper Journey", + "copper_horn.fresh_nest_thought": "Fresh Nest Thought", + "copper_horn.secret_lake_tear": "Secret Lake Tear", + "copper_horn.fearless_river_gift": "Fearless River Gift", + "copper_horn.sweet_moon_love": "Sweet Moon Love", + "subtitles.copper_horn.great": "Great", + "subtitles.copper_horn.sky": "Sky", + "subtitles.copper_horn.falling": "Falling", + "subtitles.copper_horn.old": "Old", + "subtitles.copper_horn.hymn": "Hymn", + "subtitles.copper_horn.resting": "Resting", + "subtitles.copper_horn.pure": "Pure", + "subtitles.copper_horn.water": "Water", + "subtitles.copper_horn.desire": "Desire", + "subtitles.copper_horn.humble": "Humble", + "subtitles.copper_horn.fire": "Fire", + "subtitles.copper_horn.memory": "Memory", + "subtitles.copper_horn.dry": "Dry", + "subtitles.copper_horn.urge": "Urge", + "subtitles.copper_horn.anger": "Anger", + "subtitles.copper_horn.clear": "Clear", + "subtitles.copper_horn.temper": "Temper", + "subtitles.copper_horn.journey": "Journey", + "subtitles.copper_horn.fresh": "Fresh", + "subtitles.copper_horn.nest": "Nest", + "subtitles.copper_horn.thought": "Thought", + "subtitles.copper_horn.secret": "Secret", + "subtitles.copper_horn.lake": "Lake", + "subtitles.copper_horn.tear": "Tear", + "subtitles.copper_horn.fearless": "Fearless", + "subtitles.copper_horn.river": "River", + "subtitles.copper_horn.gift": "Gift", + "subtitles.copper_horn.sweet": "Sweet", + "subtitles.copper_horn.moon": "Moon", + "subtitles.copper_horn.love": "Love", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" +} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/lang/zh_tw.json b/src/main/resources/assets/hollow/lang/zh_tw.json new file mode 100644 index 0000000..4139816 --- /dev/null +++ b/src/main/resources/assets/hollow/lang/zh_tw.json @@ -0,0 +1,101 @@ +{ + "item_group.hollow.hollow": "Hollow", + "block.hollow.oak_hollow_log": "Hollow Oak Log", + "block.hollow.stripped_oak_hollow_log": "Hollow Stripped Oak Log", + "block.hollow.spruce_hollow_log": "Hollow Spruce Log", + "block.hollow.stripped_spruce_hollow_log": "Hollow Stripped Spruce Log", + "block.hollow.birch_hollow_log": "Hollow Birch Log", + "block.hollow.stripped_birch_hollow_log": "Hollow Stripped Birch Log", + "block.hollow.jungle_hollow_log": "Hollow Jungle Log", + "block.hollow.stripped_jungle_hollow_log": "Hollow Stripped Jungle Log", + "block.hollow.acacia_hollow_log": "Hollow Acacia Log", + "block.hollow.stripped_acacia_hollow_log": "Hollow Stripped Acacia Log", + "block.hollow.dark_oak_hollow_log": "Hollow Dark Oak Log", + "block.hollow.stripped_dark_oak_hollow_log": "Hollow Stripped Dark Oak Log", + "block.hollow.crimson_hollow_stem": "Hollow Crimson Stem", + "block.hollow.stripped_crimson_hollow_stem": "Hollow Stripped Crimson Stem", + "block.hollow.warped_hollow_stem": "Hollow Warped Stem", + "block.hollow.stripped_warped_hollow_stem": "Hollow Stripped Warped Stem", + "block.hollow.mangrove_hollow_log": "Hollow Mangrove Log", + "block.hollow.stripped_mangrove_hollow_log": "Hollow Stripped Mangrove Log", + "block.hollow.cherry_hollow_log": "Hollow Cherry Log", + "block.hollow.stripped_cherry_hollow_log": "Hollow Stripped Cherry Log", + "block.hollow.copper_pillar": "Copper Pillar", + "block.hollow.exposed_copper_pillar": "Exposed Copper Pillar", + "block.hollow.weathered_copper_pillar": "Weathered Copper Pillar", + "block.hollow.oxidized_copper_pillar": "Oxidized Copper Pillar", + "block.hollow.waxed_copper_pillar": "Waxed Copper Pillar", + "block.hollow.waxed_exposed_copper_pillar": "Waxed Exposed Copper Pillar", + "block.hollow.waxed_weathered_copper_pillar": "Waxed Weathered Copper Pillar", + "block.hollow.waxed_oxidized_copper_pillar": "Waxed Oxidized Copper Pillar", + "block.hollow.paeonia": "Paeonia", + "block.hollow.rooted_orchid": "Rooted Orchid", + "block.hollow.campion": "Campion", + "block.hollow.polypore": "Polypore", + "block.hollow.lotus_lilypad": "Flowering Lily Pad", + "block.hollow.giant_lilypad": "Giant Lily Pad", + "block.hollow.twig": "Twig", + "block.hollow.sculk_jaw": "Sculk Jaw", + "block.hollow.jar": "Jar", + "block.hollow.firefly_jar": "Firefly Jar", + "block.hollow.echoing_pot": "Echoing Pot", + "block.hollow.stone_chest": "Stone Chest", + "block.hollow.stone_chest_lid": "Stone Chest Lid", + "block.hollow.cattail": "Cattail", + "death.attack.sculk_jaw.player": "%1$s was ripped to shreds", + "death.attack.sculk_jaw": "%1$s was ripped to shreds", + "item.hollow.firefly_spawn_egg": "Firefly Spawn Egg", + "item.hollow.music_disc_postmortem": "Music Disc", + "item.hollow.copper_horn": "Copper Horn", + "jukebox_song.hollow.postmortem": "WorldWidePixel - Postmortem", + "subtitles.block.sculk_jaw.bite": "Sculk Jaw bites", + "config.hollow.hollow.title": "Hollow", + "config.hollow.hollow.revertCopperBulb": "Revert Copper Bulb", + "config.hollow.hollow.revertCopperBulb.tooltip": "Whether to revert the Copper Bulb to it's original 1-tick delay. If you aren't a redstoner, you can ignore this.", + "config.hollow.hollow.music": "Music", + "config.hollow.hollow.music.tooltip": "Whether to enable Hollow's custom music.", + "copper_horn.great_sky_falling": "Great Sky Falling", + "copper_horn.old_hymn_resting": "Old Hymn Resting", + "copper_horn.pure_water_desire": "Pure Water Desire", + "copper_horn.humble_fire_memory": "Humble Fire Memory", + "copper_horn.dry_urge_anger": "Dry Urge Anger", + "copper_horn.clear_temper_journey": "Clear Temper Journey", + "copper_horn.fresh_nest_thought": "Fresh Nest Thought", + "copper_horn.secret_lake_tear": "Secret Lake Tear", + "copper_horn.fearless_river_gift": "Fearless River Gift", + "copper_horn.sweet_moon_love": "Sweet Moon Love", + "subtitles.copper_horn.great": "Great", + "subtitles.copper_horn.sky": "Sky", + "subtitles.copper_horn.falling": "Falling", + "subtitles.copper_horn.old": "Old", + "subtitles.copper_horn.hymn": "Hymn", + "subtitles.copper_horn.resting": "Resting", + "subtitles.copper_horn.pure": "Pure", + "subtitles.copper_horn.water": "Water", + "subtitles.copper_horn.desire": "Desire", + "subtitles.copper_horn.humble": "Humble", + "subtitles.copper_horn.fire": "Fire", + "subtitles.copper_horn.memory": "Memory", + "subtitles.copper_horn.dry": "Dry", + "subtitles.copper_horn.urge": "Urge", + "subtitles.copper_horn.anger": "Anger", + "subtitles.copper_horn.clear": "Clear", + "subtitles.copper_horn.temper": "Temper", + "subtitles.copper_horn.journey": "Journey", + "subtitles.copper_horn.fresh": "Fresh", + "subtitles.copper_horn.nest": "Nest", + "subtitles.copper_horn.thought": "Thought", + "subtitles.copper_horn.secret": "Secret", + "subtitles.copper_horn.lake": "Lake", + "subtitles.copper_horn.tear": "Tear", + "subtitles.copper_horn.fearless": "Fearless", + "subtitles.copper_horn.river": "River", + "subtitles.copper_horn.gift": "Gift", + "subtitles.copper_horn.sweet": "Sweet", + "subtitles.copper_horn.moon": "Moon", + "subtitles.copper_horn.love": "Love", + "gamerule.doFrogPoisoning": "Allow Frog poisoning", + "advancements.husbandry.witnessed_frog_poisoning.title": "Poisonous To Frogs", + "advancements.husbandry.witnessed_frog_poisoning.description": "Witness a Frog be poisoned upon eating a Firefly", + "entity.hollow.firefly": "Firefly" +} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/models/block/echoing_vase.json b/src/main/resources/assets/hollow/models/block/echoing_vase.json new file mode 100644 index 0000000..665f1b8 --- /dev/null +++ b/src/main/resources/assets/hollow/models/block/echoing_vase.json @@ -0,0 +1,31 @@ +{ + "credit": "Made with Blockbench", + "parent": "minecraft:block/block", + "texture_size": [32, 32], + "textures": { + "0": "hollow:block/echoing_vase", + "particle": "block/chiseled_deepslate" + }, + "elements": [ + { + "name": "base", + "from": [2, 0, 2], + "to": [14, 16, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 0]}, + "faces": { + "north": {"uv": [0, 2, 6, 10], "texture": "#0"}, + "east": {"uv": [6, 2, 12, 10], "texture": "#0"}, + "south": {"uv": [0, 2, 6, 10], "texture": "#0"}, + "west": {"uv": [6, 2, 12, 10], "texture": "#0"}, + "down": {"uv": [6, 10, 12, 16], "texture": "#0", "cullface": "down"} + } + } + ], + "display": { + "gui": { + "rotation": [30, 225, 0], + "translation": [0, -1.5, 0], + "scale": [0.525, 0.525, 0.525] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/models/block/echoing_vase_upper.json b/src/main/resources/assets/hollow/models/block/echoing_vase_upper.json new file mode 100644 index 0000000..add648a --- /dev/null +++ b/src/main/resources/assets/hollow/models/block/echoing_vase_upper.json @@ -0,0 +1,44 @@ +{ + "credit": "Made with Blockbench", + "parent": "minecraft:block/block", + "texture_size": [32, 32], + "textures": { + "0": "hollow:block/echoing_vase", + "particle": "block/chiseled_deepslate" + }, + "elements": [ + { + "name": "base", + "from": [2, 0, 2], + "to": [14, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -8, 0]}, + "faces": { + "north": {"uv": [0, 0, 6, 2], "texture": "#0"}, + "east": {"uv": [6, 0, 12, 2], "texture": "#0"}, + "south": {"uv": [0, 0, 6, 2], "texture": "#0"}, + "west": {"uv": [6, 0, 12, 2], "texture": "#0"}, + "up": {"uv": [0, 10, 6, 16], "texture": "#0"} + } + }, + { + "name": "top", + "from": [4, 4, 4], + "to": [12, 8, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 4, 7]}, + "faces": { + "north": {"uv": [12, 0, 16, 2], "texture": "#0"}, + "east": {"uv": [12, 2, 16, 4], "texture": "#0"}, + "south": {"uv": [12, 4, 16, 6], "texture": "#0"}, + "west": {"uv": [12, 6, 16, 8], "texture": "#0"}, + "up": {"uv": [12, 8, 16, 12], "texture": "#0"} + } + } + ], + "display": { + "gui": { + "rotation": [30, 225, 0], + "translation": [0, -1.5, 0], + "scale": [0.525, 0.525, 0.525] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/models/block/hollow_log_template.json b/src/main/resources/assets/hollow/models/block/hollow_log.json similarity index 100% rename from src/main/resources/assets/hollow/models/block/hollow_log_template.json rename to src/main/resources/assets/hollow/models/block/hollow_log.json diff --git a/src/main/resources/assets/hollow/models/block/hollow_log_horizontal_template.json b/src/main/resources/assets/hollow/models/block/hollow_log_horizontal.json similarity index 100% rename from src/main/resources/assets/hollow/models/block/hollow_log_horizontal_template.json rename to src/main/resources/assets/hollow/models/block/hollow_log_horizontal.json diff --git a/src/main/resources/assets/hollow/models/block/hollow_log_horizontal_mossy_template.json b/src/main/resources/assets/hollow/models/block/hollow_log_horizontal_layer.json similarity index 93% rename from src/main/resources/assets/hollow/models/block/hollow_log_horizontal_mossy_template.json rename to src/main/resources/assets/hollow/models/block/hollow_log_horizontal_layer.json index 5e4f968..da12c7f 100644 --- a/src/main/resources/assets/hollow/models/block/hollow_log_horizontal_mossy_template.json +++ b/src/main/resources/assets/hollow/models/block/hollow_log_horizontal_layer.json @@ -2,7 +2,6 @@ "credit": "Made with Blockbench", "parent": "block/block", "textures": { - "3": "hollow:block/moss_overlay", "particle": "#side" }, "elements": [ @@ -35,7 +34,7 @@ "to": [16, 16, 14], "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, "faces": { - "east": {"uv": [0, 2, 16, 14], "rotation": 270, "texture": "#3", "cullface": "east"} + "east": {"uv": [0, 2, 16, 14], "rotation": 270, "texture": "#overlay", "cullface": "east"} } }, { @@ -56,7 +55,7 @@ "to": [16, 16, 16], "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, "faces": { - "east": {"uv": [0, 0, 16, 2], "rotation": 270, "texture": "#3", "cullface": "east"} + "east": {"uv": [0, 0, 16, 2], "rotation": 270, "texture": "#overlay", "cullface": "east"} } }, { @@ -64,7 +63,7 @@ "to": [0, 16, 16], "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, "faces": { - "west": {"uv": [0, 0, 16, 2], "rotation": 90, "texture": "#3", "cullface": "west"} + "west": {"uv": [0, 0, 16, 2], "rotation": 90, "texture": "#overlay", "cullface": "west"} } }, { @@ -83,7 +82,7 @@ "to": [0, 16, 14], "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, "faces": { - "west": {"uv": [0, 2, 16, 14], "rotation": 90, "texture": "#3", "cullface": "west"} + "west": {"uv": [0, 2, 16, 14], "rotation": 90, "texture": "#overlay", "cullface": "west"} } } ] diff --git a/src/main/resources/assets/hollow/models/block/lotus_lilypad.json b/src/main/resources/assets/hollow/models/block/lotus_lilypad.json index 2d97edb..480294f 100644 --- a/src/main/resources/assets/hollow/models/block/lotus_lilypad.json +++ b/src/main/resources/assets/hollow/models/block/lotus_lilypad.json @@ -48,47 +48,27 @@ } }, { - "from": [10, 0.5, 7], - "to": [10, 2.5, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [10, 1, 8.5]}, - "faces": { - "north": {"uv": [0, 0, 0, 2], "texture": "#1"}, - "east": {"uv": [3, 1, 6, 3], "texture": "#1"}, - "south": {"uv": [0, 0, 0, 2], "texture": "#1"}, - "west": {"uv": [3, 1, 6, 3], "texture": "#1"} - } - }, - { + "name": "outer", "from": [7, 0.5, 7], - "to": [7, 2.5, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [7, 1, 8.5]}, + "to": [10, 3.5, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0.5, 8]}, "faces": { - "north": {"uv": [0, 0, 0, 2], "texture": "#1"}, - "east": {"uv": [3, 1, 6, 3], "texture": "#1"}, - "south": {"uv": [0, 0, 0, 2], "texture": "#1"}, - "west": {"uv": [3, 1, 6, 3], "texture": "#1"} + "north": {"uv": [3, 0, 6, 3], "texture": "#1"}, + "east": {"uv": [3, 0, 6, 3], "texture": "#1"}, + "south": {"uv": [3, 0, 6, 3], "texture": "#1"}, + "west": {"uv": [3, 0, 6, 3], "texture": "#1"} } }, { - "from": [7, 0.5, 10], - "to": [10, 2.5, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 1, 10]}, - "faces": { - "north": {"uv": [3, 1, 6, 3], "texture": "#1"}, - "east": {"uv": [0, 0, 0, 2], "texture": "#1"}, - "south": {"uv": [3, 1, 6, 3], "texture": "#1"}, - "west": {"uv": [0, 0, 0, 2], "texture": "#1"} - } - }, - { - "from": [7, 0.5, 7], - "to": [10, 2.5, 7], - "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 1, 7]}, + "name": "inner", + "from": [10, 0.5, 7], + "to": [7, 3.5, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [10, 0.5, 8]}, "faces": { - "north": {"uv": [3, 1, 6, 3], "texture": "#1"}, - "east": {"uv": [0, 0, 0, 2], "texture": "#1"}, - "south": {"uv": [3, 1, 6, 3], "texture": "#1"}, - "west": {"uv": [0, 0, 0, 2], "texture": "#1"} + "north": {"uv": [3, 0, 6, 3], "texture": "#1"}, + "east": {"uv": [3, 0, 6, 3], "texture": "#1"}, + "south": {"uv": [3, 0, 6, 3], "texture": "#1"}, + "west": {"uv": [3, 0, 6, 3], "texture": "#1"} } }, { @@ -127,5 +107,21 @@ "down": {"uv": [0, 6, 3, 0], "rotation": 270, "texture": "#1"} } } + ], + "groups": [ + 0, + 1, + 2, + 3, + { + "name": "center", + "origin": [8.5, 1, 7], + "color": 0, + "children": [4, 5] + }, + 6, + 7, + 8, + 9 ] } \ No newline at end of file diff --git a/src/main/resources/assets/hollow/models/block/obabo.json b/src/main/resources/assets/hollow/models/block/obabo.json new file mode 100644 index 0000000..57e3590 --- /dev/null +++ b/src/main/resources/assets/hollow/models/block/obabo.json @@ -0,0 +1,61 @@ +{ + "credit": "Made with Blockbench", + "parent": "minecraft:block/block", + "texture_size": [32, 32], + "textures": { + "0": "hollow:block/obabo", + "particle": "minecraft:block/chiseled_deepslate" + }, + "elements": [ + { + "from": [-8, 0, -9], + "to": [24, 27, 23], + "rotation": {"angle": 0, "axis": "y", "origin": [-8, 0, -9]}, + "faces": { + "north": {"uv": [0, 0, 8, 6.33334], "texture": "#0"}, + "east": {"uv": [0, 6.33333, 8, 12.66667], "texture": "#0"}, + "south": {"uv": [0, 0, 8, 6.33334], "texture": "#0"}, + "west": {"uv": [0, 6.33333, 8, 12.66667], "texture": "#0"}, + "up": {"uv": [8, 8, 16, 16], "texture": "#0"}, + "down": {"uv": [8, 8, 16, 16], "texture": "#0"} + } + }, + { + "from": [-1, 27, -2], + "to": [17, 32, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-8, 16, -9]}, + "faces": { + "north": {"uv": [8, 4, 12, 2.66667], "texture": "#0"}, + "east": {"uv": [8, 4, 12, 2.66667], "texture": "#0"}, + "south": {"uv": [8, 4, 12, 2.66667], "texture": "#0"}, + "west": {"uv": [8, 4, 12, 2.66667], "texture": "#0"}, + "up": {"uv": [12, 0, 14, 2], "texture": "#0"}, + "down": {"uv": [0, 0, 16, 10.66667], "texture": "#0"} + } + }, + { + "from": [24, 14, 6], + "to": [27, 23, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [25.5, 18.5, 7]}, + "faces": { + "north": {"uv": [12.33333, 3.66667, 13, 5.33334], "texture": "#0"}, + "east": {"uv": [12.33333, 3.66667, 12.66667, 5.66667], "texture": "#0"}, + "south": {"uv": [12.33333, 5.33333, 13, 7], "texture": "#0"}, + "up": {"uv": [12.33333, 6, 13, 7], "rotation": 180, "texture": "#0"}, + "down": {"uv": [12.33333, 6.33333, 13, 7], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [-11, 14, 6], + "to": [-8, 23, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [-23, 1, -9]}, + "faces": { + "north": {"uv": [12.33333, 5.33333, 13, 7], "texture": "#0"}, + "south": {"uv": [12.33333, 3.66667, 13, 5.33334], "texture": "#0"}, + "west": {"uv": [12.33333, 3.66667, 12.66667, 5.66667], "texture": "#0"}, + "up": {"uv": [12.33333, 6, 13, 7], "texture": "#0"}, + "down": {"uv": [12.33333, 6.33333, 13, 7], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/models/block/one_polypore.json b/src/main/resources/assets/hollow/models/block/one_polypore.json index cf47282..4467250 100644 --- a/src/main/resources/assets/hollow/models/block/one_polypore.json +++ b/src/main/resources/assets/hollow/models/block/one_polypore.json @@ -8,16 +8,16 @@ "elements": [ { "name": "small-polypore", - "from": [12, 12, 5], - "to": [16, 12, 9], - "rotation": {"angle": -22.5, "axis": "z", "origin": [14, 12, 7]}, + "from": [7, 12, 12], + "to": [11, 12, 16], + "rotation": {"angle": 22.5, "axis": "x", "origin": [9, 12, 14]}, "faces": { "north": {"uv": [0, 0, 4, 0], "texture": "#0"}, "east": {"uv": [0, 0, 4, 0], "texture": "#0"}, "south": {"uv": [0, 0, 4, 0], "texture": "#0"}, "west": {"uv": [0, 0, 4, 0], "texture": "#0"}, - "up": {"uv": [14, 13, 10, 9], "texture": "#0"}, - "down": {"uv": [16, 0, 12, 4], "texture": "#0"} + "up": {"uv": [14, 13, 10, 9], "rotation": 90, "texture": "#0"}, + "down": {"uv": [16, 0, 12, 4], "rotation": 270, "texture": "#0"} } } ] diff --git a/src/main/resources/assets/hollow/models/block/screaming_vase.json b/src/main/resources/assets/hollow/models/block/screaming_vase.json new file mode 100644 index 0000000..bad34ed --- /dev/null +++ b/src/main/resources/assets/hollow/models/block/screaming_vase.json @@ -0,0 +1,24 @@ +{ + "credit": "Made with Blockbench", + "parent": "minecraft:block/block", + "texture_size": [48, 32], + "textures": { + "5": "hollow:block/screaming_vase", + "particle": "block/chiseled_deepslate" + }, + "elements": [ + { + "name": "base", + "from": [2, 0, 2], + "to": [14, 16, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 14.5, 8]}, + "faces": { + "north": {"uv": [0, 6.5, 4, 14.5], "texture": "#5"}, + "east": {"uv": [4, 6.5, 8, 14.5], "texture": "#5"}, + "south": {"uv": [0, 6.5, 4, 14.5], "texture": "#5"}, + "west": {"uv": [4, 6.5, 8, 14.5], "texture": "#5"}, + "down": {"uv": [12, 6, 8, 12], "texture": "#5"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/models/block/screaming_vase_upper.json b/src/main/resources/assets/hollow/models/block/screaming_vase_upper.json new file mode 100644 index 0000000..9b8e473 --- /dev/null +++ b/src/main/resources/assets/hollow/models/block/screaming_vase_upper.json @@ -0,0 +1,50 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [48, 32], + "textures": { + "all": "hollow:block/screaming_vase", + "particle": "block/chiseled_deepslate" + }, + "elements": [ + { + "name": "base", + "from": [2, 0, 2], + "to": [14, 13, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -1.5, 8]}, + "faces": { + "north": {"uv": [0, 0, 4, 6.5], "texture": "#all"}, + "east": {"uv": [4, 0, 8, 6.5], "texture": "#all"}, + "south": {"uv": [0, 0, 4, 6.5], "texture": "#all"}, + "west": {"uv": [4, 0, 8, 6.5], "texture": "#all"}, + "up": {"uv": [12, 6, 8, 0], "texture": "#all"} + } + }, + { + "name": "handles", + "from": [0, 7, 7], + "to": [16, 10, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.5, 8]}, + "faces": { + "north": {"uv": [8, 12, 13.33333, 13.5], "texture": "#all"}, + "east": {"uv": [4, 14.5, 4.66667, 16], "texture": "#all", "cullface": "east"}, + "south": {"uv": [8, 12, 13.33333, 13.5], "texture": "#all"}, + "west": {"uv": [6.66667, 14.5, 7.33333, 16], "texture": "#all", "cullface": "west"}, + "up": {"uv": [13.33333, 14.5, 8, 13.5], "texture": "#all"}, + "down": {"uv": [13.33333, 13.5, 8, 14.5], "texture": "#all"} + } + }, + { + "name": "cap", + "from": [5, 13, 5], + "to": [11, 16, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 14.5, 8]}, + "faces": { + "north": {"uv": [0, 14.5, 2, 16], "texture": "#all"}, + "east": {"uv": [2, 14.5, 4, 16], "texture": "#all"}, + "south": {"uv": [4.66667, 14.5, 6.66667, 16], "texture": "#all"}, + "west": {"uv": [4.66667, 14.5, 6.66667, 16], "texture": "#all"}, + "up": {"uv": [11, 4.5, 9, 1.5], "texture": "#all", "cullface": "up"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/models/block/three_polypore.json b/src/main/resources/assets/hollow/models/block/three_polypore.json index c174922..06c2757 100644 --- a/src/main/resources/assets/hollow/models/block/three_polypore.json +++ b/src/main/resources/assets/hollow/models/block/three_polypore.json @@ -8,44 +8,44 @@ "elements": [ { "name": "small-polypore", - "from": [12, 12, 5], - "to": [16, 12, 9], - "rotation": {"angle": -22.5, "axis": "z", "origin": [14, 12, 7]}, + "from": [7, 12, 12], + "to": [11, 12, 16], + "rotation": {"angle": 22.5, "axis": "x", "origin": [9, 12, 14]}, "faces": { "north": {"uv": [0, 0, 4, 0], "texture": "#0"}, "east": {"uv": [0, 0, 4, 0], "texture": "#0"}, "south": {"uv": [0, 0, 4, 0], "texture": "#0"}, "west": {"uv": [0, 0, 4, 0], "texture": "#0"}, - "up": {"uv": [14, 13, 10, 9], "texture": "#0"}, - "down": {"uv": [16, 0, 12, 4], "texture": "#0"} + "up": {"uv": [10, 9, 14, 13], "rotation": 270, "texture": "#0"}, + "down": {"uv": [12, 4, 16, 0], "rotation": 90, "texture": "#0"} } }, { "name": "medium-polypore", - "from": [11, 10, 1], - "to": [16, 10, 7], - "rotation": {"angle": -22.5, "axis": "z", "origin": [13.5, 10, 4]}, + "from": [9, 10, 11], + "to": [15, 10, 16], + "rotation": {"angle": 22.5, "axis": "x", "origin": [12, 10, 13.5]}, "faces": { - "north": {"uv": [0, 0, 5, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 6, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 5, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 6, 0], "texture": "#0"}, - "up": {"uv": [5, 15, 0, 9], "texture": "#0"}, - "down": {"uv": [10, 9, 5, 15], "texture": "#0"} + "north": {"uv": [0, 0, 6, 0], "texture": "#0"}, + "east": {"uv": [0, 0, 5, 0], "texture": "#0"}, + "south": {"uv": [0, 0, 6, 0], "texture": "#0"}, + "west": {"uv": [0, 0, 5, 0], "texture": "#0"}, + "up": {"uv": [0, 9, 5, 15], "rotation": 270, "texture": "#0"}, + "down": {"uv": [5, 15, 10, 9], "rotation": 90, "texture": "#0"} } }, { "name": "large-polypore", - "from": [10, 8, 6], - "to": [16, 8, 15], - "rotation": {"angle": -22.5, "axis": "z", "origin": [13, 8, 10.5]}, + "from": [1, 8, 10], + "to": [10, 8, 16], + "rotation": {"angle": 22.5, "axis": "x", "origin": [5.5, 8, 13]}, "faces": { - "north": {"uv": [0, 0, 6, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 9, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 6, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 9, 0], "texture": "#0"}, - "up": {"uv": [6, 9, 0, 0], "texture": "#0"}, - "down": {"uv": [12, 0, 6, 9], "texture": "#0"} + "north": {"uv": [0, 0, 9, 0], "texture": "#0"}, + "east": {"uv": [0, 0, 6, 0], "texture": "#0"}, + "south": {"uv": [0, 0, 9, 0], "texture": "#0"}, + "west": {"uv": [0, 0, 6, 0], "texture": "#0"}, + "up": {"uv": [0, 0, 6, 9], "rotation": 270, "texture": "#0"}, + "down": {"uv": [6, 9, 12, 0], "rotation": 90, "texture": "#0"} } } ] diff --git a/src/main/resources/assets/hollow/models/block/two_polypore.json b/src/main/resources/assets/hollow/models/block/two_polypore.json index 190fb7f..7e68085 100644 --- a/src/main/resources/assets/hollow/models/block/two_polypore.json +++ b/src/main/resources/assets/hollow/models/block/two_polypore.json @@ -8,31 +8,39 @@ "elements": [ { "name": "small-polypore", - "from": [12, 12, 5], - "to": [16, 12, 9], - "rotation": {"angle": -22.5, "axis": "z", "origin": [14, 12, 7]}, + "from": [7, 12, 12], + "to": [11, 12, 16], + "rotation": {"angle": 22.5, "axis": "x", "origin": [9, 12, 14]}, "faces": { "north": {"uv": [0, 0, 4, 0], "texture": "#0"}, "east": {"uv": [0, 0, 4, 0], "texture": "#0"}, "south": {"uv": [0, 0, 4, 0], "texture": "#0"}, "west": {"uv": [0, 0, 4, 0], "texture": "#0"}, - "up": {"uv": [14, 13, 10, 9], "texture": "#0"}, - "down": {"uv": [16, 0, 12, 4], "texture": "#0"} + "up": {"uv": [10, 9, 14, 13], "rotation": 270, "texture": "#0"}, + "down": {"uv": [12, 4, 16, 0], "rotation": 90, "texture": "#0"} } }, { "name": "medium-polypore", - "from": [11, 10, 1], - "to": [16, 10, 7], - "rotation": {"angle": -22.5, "axis": "z", "origin": [13.5, 10, 4]}, + "from": [9, 10, 11], + "to": [15, 10, 16], + "rotation": {"angle": 22.5, "axis": "x", "origin": [12, 10, 13.5]}, "faces": { - "north": {"uv": [0, 0, 5, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 6, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 5, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 6, 0], "texture": "#0"}, - "up": {"uv": [5, 15, 0, 9], "texture": "#0"}, - "down": {"uv": [10, 9, 5, 15], "texture": "#0"} + "north": {"uv": [0, 0, 6, 0], "texture": "#0"}, + "east": {"uv": [0, 0, 5, 0], "texture": "#0"}, + "south": {"uv": [0, 0, 6, 0], "texture": "#0"}, + "west": {"uv": [0, 0, 5, 0], "texture": "#0"}, + "up": {"uv": [0, 9, 5, 15], "rotation": 270, "texture": "#0"}, + "down": {"uv": [5, 15, 10, 9], "rotation": 90, "texture": "#0"} } } + ], + "groups": [ + { + "name": "group", + "origin": [8, 8, 8], + "color": 0, + "children": [0, 1] + } ] } \ No newline at end of file diff --git a/src/main/resources/assets/hollow/models/item/stone_chest.json b/src/main/resources/assets/hollow/models/item/stone_chest.json deleted file mode 100644 index ce98436..0000000 --- a/src/main/resources/assets/hollow/models/item/stone_chest.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/stone_chest" -} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/models/item/stone_chest_lid.json b/src/main/resources/assets/hollow/models/item/stone_chest_lid.json deleted file mode 100644 index b473387..0000000 --- a/src/main/resources/assets/hollow/models/item/stone_chest_lid.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hollow:block/stone_chest_lid" -} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/particles/scream.json b/src/main/resources/assets/hollow/particles/scream.json new file mode 100644 index 0000000..ad08a59 --- /dev/null +++ b/src/main/resources/assets/hollow/particles/scream.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:shriek" + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/sounds.json b/src/main/resources/assets/hollow/sounds.json deleted file mode 100644 index 8cab590..0000000 --- a/src/main/resources/assets/hollow/sounds.json +++ /dev/null @@ -1,281 +0,0 @@ -{ - "music_disc.postmortem": { - "sounds": [ - { - "name": "hollow:records/postmortem", - "stream": true - } - ] - }, - "music.birch_forest": { - "sounds": [ - { - "name": "hollow:music/game/wildflower", - "stream": true, - "volume": 0.4 - } - ] - }, - "music.swamp": { - "sounds": [ - { - "name": "hollow:music/game/waterlily", - "stream": true, - "volume": 0.4 - }, - { - "name": "minecraft:music/game/swamp/aerie", - "stream": true, - "volume": 0.4 - }, - { - "name": "minecraft:music/game/swamp/firebugs", - "stream": true, - "volume": 0.4 - }, - { - "name": "minecraft:music/game/swamp/labyrinthine", - "stream": true, - "volume": 0.4 - } - ] - }, - "music.deep_dark": { - "sounds": [ - { - "name": "hollow:music/game/echo", - "stream": true - }, - { - "name": "minecraft:music/game/ancestry", - "stream": true - }, - { - "name": "minecraft:music/game/deeper", - "stream": true, - "volume": 0.4 - } - ] - }, - "block.stone_chest.extract": { - "sounds": [ - { - "name": "block/decorated_pot/insert1", - "volume": 0.9 - }, - { - "name": "block/decorated_pot/insert2", - "volume": 0.9 - }, - { - "name": "block/decorated_pot/insert3", - "volume": 0.9 - }, - { - "name": "block/decorated_pot/insert4", - "volume": 0.9 - } - ] - }, - "block.sculk_jaw.bite": { - "subtitle": "subtitles.block.sculk_jaw.bite", - "sounds": [ - { - "name": "mob/goat/horn_break1", - "volume": 0.9 - }, - { - "name": "mob/goat/horn_break2", - "volume": 0.9 - }, - { - "name": "mob/goat/horn_break3", - "volume": 0.9 - }, - { - "name": "mob/goat/horn_break4", - "volume": 0.9 - } - ] - }, - "horn.call.0": { - "sounds": [ - "hollow:horn/call/0" - ], - "subtitle": "subtitles.copper_horn.great" - }, - "horn.call.1": { - "sounds": [ - "hollow:horn/call/1" - ], - "subtitle": "subtitles.copper_horn.old" - }, - "horn.call.2": { - "sounds": [ - "hollow:horn/call/2" - ], - "subtitle": "subtitles.copper_horn.pure" - }, - "horn.call.3": { - "sounds": [ - "hollow:horn/call/3" - ], - "subtitle": "subtitles.copper_horn.humble" - }, - "horn.call.4": { - "sounds": [ - "hollow:horn/call/4" - ], - "subtitle": "subtitles.copper_horn.dry" - }, - "horn.call.5": { - "sounds": [ - "hollow:horn/call/5" - ], - "subtitle": "subtitles.copper_horn.clear" - }, - "horn.call.6": { - "sounds": [ - "hollow:horn/call/6" - ], - "subtitle": "subtitles.copper_horn.fresh" - }, - "horn.call.7": { - "sounds": [ - "hollow:horn/call/7" - ], - "subtitle": "subtitles.copper_horn.secret" - }, - "horn.call.8": { - "sounds": [ - "hollow:horn/call/8" - ], - "subtitle": "subtitles.copper_horn.fearless" - }, - "horn.call.9": { - "sounds": [ - "hollow:horn/call/9" - ], - "subtitle": "subtitles.copper_horn.sweet" - }, - "horn.melody.0": { - "sounds": [ - "hollow:horn/melody/0" - ], - "subtitle": "subtitles.copper_horn.sky" - }, - "horn.melody.1": { - "sounds": [ - "hollow:horn/melody/1" - ], - "subtitle": "subtitles.copper_horn.hymn" - }, - "horn.melody.2": { - "sounds": [ - "hollow:horn/melody/2" - ], - "subtitle": "subtitles.copper_horn.water" - }, - "horn.melody.3": { - "sounds": [ - "hollow:horn/melody/3" - ], - "subtitle": "subtitles.copper_horn.fire" - }, - "horn.melody.4": { - "sounds": [ - "hollow:horn/melody/4" - ], - "subtitle": "subtitles.copper_horn.urge" - }, - "horn.melody.5": { - "sounds": [ - "hollow:horn/melody/5" - ], - "subtitle": "subtitles.copper_horn.temper" - }, - "horn.melody.6": { - "sounds": [ - "hollow:horn/melody/6" - ], - "subtitle": "subtitles.copper_horn.nest" - }, - "horn.melody.7": { - "sounds": [ - "hollow:horn/melody/7" - ], - "subtitle": "subtitles.copper_horn.lake" - }, - "horn.melody.8": { - "sounds": [ - "hollow:horn/melody/8" - ], - "subtitle": "subtitles.copper_horn.river" - }, - "horn.melody.9": { - "sounds": [ - "hollow:horn/melody/9" - ], - "subtitle": "subtitles.copper_horn.moon" - }, - "horn.bass.0": { - "sounds": [ - "hollow:horn/bass/0" - ], - "subtitle": "subtitles.copper_horn.falling" - }, - "horn.bass.1": { - "sounds": [ - "hollow:horn/bass/1" - ], - "subtitle": "subtitles.copper_horn.resting" - }, - "horn.bass.2": { - "sounds": [ - "hollow:horn/bass/2" - ], - "subtitle": "subtitles.copper_horn.desire" - }, - "horn.bass.3": { - "sounds": [ - "hollow:horn/bass/3" - ], - "subtitle": "subtitles.copper_horn.memory" - }, - "horn.bass.4": { - "sounds": [ - "hollow:horn/bass/4" - ], - "subtitle": "subtitles.copper_horn.anger" - }, - "horn.bass.5": { - "sounds": [ - "hollow:horn/bass/5" - ], - "subtitle": "subtitles.copper_horn.journey" - }, - "horn.bass.6": { - "sounds": [ - "hollow:horn/bass/6" - ], - "subtitle": "subtitles.copper_horn.thought" - }, - "horn.bass.7": { - "sounds": [ - "hollow:horn/bass/7" - ], - "subtitle": "subtitles.copper_horn.tear" - }, - "horn.bass.8": { - "sounds": [ - "hollow:horn/bass/8" - ], - "subtitle": "subtitles.copper_horn.gift" - }, - "horn.bass.9": { - "sounds": [ - "hollow:horn/bass/9" - ], - "subtitle": "subtitles.copper_horn.love" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hollow/sounds/horn/bass/4.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/bass/anger.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/bass/4.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/bass/anger.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/bass/2.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/bass/desire.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/bass/2.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/bass/desire.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/bass/0.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/bass/falling.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/bass/0.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/bass/falling.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/bass/8.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/bass/gift.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/bass/8.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/bass/gift.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/bass/5.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/bass/journey.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/bass/5.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/bass/journey.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/bass/9.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/bass/love.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/bass/9.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/bass/love.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/bass/3.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/bass/memory.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/bass/3.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/bass/memory.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/bass/1.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/bass/resting.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/bass/1.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/bass/resting.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/bass/7.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/bass/tear.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/bass/7.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/bass/tear.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/bass/6.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/bass/thought.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/bass/6.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/bass/thought.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/call/5.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/call/clear.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/call/5.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/call/clear.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/call/4.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/call/dry.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/call/4.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/call/dry.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/call/8.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/call/fearless.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/call/8.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/call/fearless.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/call/6.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/call/fresh.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/call/6.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/call/fresh.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/call/0.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/call/great.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/call/0.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/call/great.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/call/3.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/call/humble.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/call/3.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/call/humble.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/call/1.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/call/old.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/call/1.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/call/old.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/call/2.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/call/pure.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/call/2.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/call/pure.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/call/7.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/call/secret.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/call/7.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/call/secret.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/call/9.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/call/sweet.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/call/9.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/call/sweet.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/melody/3.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/melody/fire.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/melody/3.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/melody/fire.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/melody/1.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/melody/hymn.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/melody/1.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/melody/hymn.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/melody/7.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/melody/lake.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/melody/7.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/melody/lake.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/melody/9.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/melody/moon.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/melody/9.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/melody/moon.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/melody/6.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/melody/nest.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/melody/6.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/melody/nest.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/melody/8.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/melody/river.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/melody/8.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/melody/river.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/melody/0.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/melody/sky.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/melody/0.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/melody/sky.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/melody/5.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/melody/temper.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/melody/5.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/melody/temper.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/melody/4.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/melody/urge.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/melody/4.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/melody/urge.ogg diff --git a/src/main/resources/assets/hollow/sounds/horn/melody/2.ogg b/src/main/resources/assets/hollow/sounds/item/copper_horn/melody/water.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/horn/melody/2.ogg rename to src/main/resources/assets/hollow/sounds/item/copper_horn/melody/water.ogg diff --git a/src/main/resources/assets/hollow/sounds/music/game/birch_forest/floraison.ogg b/src/main/resources/assets/hollow/sounds/music/game/birch_forest/floraison.ogg new file mode 100644 index 0000000..bd62e6a Binary files /dev/null and b/src/main/resources/assets/hollow/sounds/music/game/birch_forest/floraison.ogg differ diff --git a/src/main/resources/assets/hollow/sounds/music/game/wildflower.ogg b/src/main/resources/assets/hollow/sounds/music/game/birch_forest/wildflower.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/music/game/wildflower.ogg rename to src/main/resources/assets/hollow/sounds/music/game/birch_forest/wildflower.ogg diff --git a/src/main/resources/assets/hollow/sounds/music/game/waterlily.ogg b/src/main/resources/assets/hollow/sounds/music/game/swamp/waterlily.ogg similarity index 100% rename from src/main/resources/assets/hollow/sounds/music/game/waterlily.ogg rename to src/main/resources/assets/hollow/sounds/music/game/swamp/waterlily.ogg diff --git a/src/main/resources/assets/hollow/textures/block/cattail_top.png b/src/main/resources/assets/hollow/textures/block/cattail.png similarity index 100% rename from src/main/resources/assets/hollow/textures/block/cattail_top.png rename to src/main/resources/assets/hollow/textures/block/cattail.png diff --git a/src/main/resources/assets/hollow/textures/block/cattail_middle.png b/src/main/resources/assets/hollow/textures/block/cattail_stem.png similarity index 100% rename from src/main/resources/assets/hollow/textures/block/cattail_middle.png rename to src/main/resources/assets/hollow/textures/block/cattail_stem.png diff --git a/src/main/resources/assets/hollow/textures/block/cattail_middle_2.png b/src/main/resources/assets/hollow/textures/block/cattail_stem_2.png similarity index 100% rename from src/main/resources/assets/hollow/textures/block/cattail_middle_2.png rename to src/main/resources/assets/hollow/textures/block/cattail_stem_2.png diff --git a/src/main/resources/assets/hollow/textures/block/cattail_base.png b/src/main/resources/assets/hollow/textures/block/cattail_stem_bottom.png similarity index 100% rename from src/main/resources/assets/hollow/textures/block/cattail_base.png rename to src/main/resources/assets/hollow/textures/block/cattail_stem_bottom.png diff --git a/src/main/resources/assets/hollow/textures/block/echoing_vase.png b/src/main/resources/assets/hollow/textures/block/echoing_vase.png new file mode 100644 index 0000000..c740854 Binary files /dev/null and b/src/main/resources/assets/hollow/textures/block/echoing_vase.png differ diff --git a/src/main/resources/assets/hollow/textures/block/moss_overlay.png b/src/main/resources/assets/hollow/textures/block/moss_overlay.png index 04a91dc..8edf6f9 100644 Binary files a/src/main/resources/assets/hollow/textures/block/moss_overlay.png and b/src/main/resources/assets/hollow/textures/block/moss_overlay.png differ diff --git a/src/main/resources/assets/hollow/textures/block/obabo.png b/src/main/resources/assets/hollow/textures/block/obabo.png new file mode 100644 index 0000000..bb36202 Binary files /dev/null and b/src/main/resources/assets/hollow/textures/block/obabo.png differ diff --git a/src/main/resources/assets/hollow/textures/block/pale_moss_overlay.png b/src/main/resources/assets/hollow/textures/block/pale_moss_overlay.png new file mode 100644 index 0000000..fd4dbf1 Binary files /dev/null and b/src/main/resources/assets/hollow/textures/block/pale_moss_overlay.png differ diff --git a/src/main/resources/assets/hollow/textures/block/screaming_vase.png b/src/main/resources/assets/hollow/textures/block/screaming_vase.png new file mode 100644 index 0000000..505c5c3 Binary files /dev/null and b/src/main/resources/assets/hollow/textures/block/screaming_vase.png differ diff --git a/src/main/resources/assets/hollow/textures/block/snow_overlay.png b/src/main/resources/assets/hollow/textures/block/snow_overlay.png new file mode 100644 index 0000000..1c7aa4b Binary files /dev/null and b/src/main/resources/assets/hollow/textures/block/snow_overlay.png differ diff --git a/src/main/resources/data/hollow/recipe/echoing_pot.json b/src/main/resources/data/hollow/recipe/echoing_pot.json deleted file mode 100644 index 05cd6ca..0000000 --- a/src/main/resources/data/hollow/recipe/echoing_pot.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "P": { - "item": "minecraft:polished_deepslate" - }, - "C": { - "item": "minecraft:chiseled_deepslate" - }, - "E": { - "item": "minecraft:echo_shard" - } - }, - "pattern": [ - "P P", - "CEC", - "CCC" - ], - "result": { - "count": 1, - "id": "hollow:echoing_pot" - }, - "show_notification": true -} \ No newline at end of file diff --git a/src/main/resources/data/hollow/recipe/jar.json b/src/main/resources/data/hollow/recipe/jar.json deleted file mode 100644 index 52f3dcc..0000000 --- a/src/main/resources/data/hollow/recipe/jar.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "misc", - "key": { - "W": { - "item": "hollow:polypore" - }, - "G": { - "item": "minecraft:glass" - } - }, - "pattern": [ - " W ", - "G G", - " G " - ], - "result": { - "count": 4, - "id": "hollow:jar" - }, - "show_notification": true -} \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index d4b31f1..5f70501 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -26,7 +26,7 @@ "dev.spiritstudios.hollow.datagen.HollowDatagen" ], "dynamiclights": [ - "dev.spiritstudios.hollow.HollowDynamicLights" + "dev.spiritstudios.hollow.lambdynamiclights.HollowDynamicLights" ] }, "mixins": [