From c7b01b00a37cf3858e3b8a7f05be06b130c28b4e Mon Sep 17 00:00:00 2001 From: Zontreck Date: Fri, 14 Oct 2022 02:39:15 -0700 Subject: [PATCH] Update to 1.3.4.1 --- build.gradle | 5 +- gradle.properties | 5 +- .../zontreck/otemod/ExampleMod.java.disabled | 89 - src/main/java/dev/zontreck/otemod/OTEMod.java | 20 +- .../zontreck/otemod/commands/FlyCommand.java | 5 +- .../otemod/commands/homes/DelHomeCommand.java | 12 +- .../otemod/commands/homes/HomeCommand.java | 3 +- .../otemod/commands/homes/HomesCommand.java | 1 - .../otemod/commands/homes/SetHomeCommand.java | 6 +- .../profilecmds/ChatColorCommand.java | 3 +- .../profilecmds/NameColorCommand.java | 2 +- .../commands/profilecmds/NickCommand.java | 2 +- .../profilecmds/PrefixColorCommand.java | 2 +- .../commands/profilecmds/PrefixCommand.java | 2 +- .../commands/teleport/TPAcceptCommand.java | 2 +- .../commands/teleport/TPCancelCommand.java | 2 +- .../commands/teleport/TPDenyCommand.java | 2 +- .../otemod/commands/warps/DelWarpCommand.java | 3 +- .../otemod/commands/warps/RTPWarpCommand.java | 3 +- .../otemod/commands/warps/SetWarpCommand.java | 2 +- .../otemod/commands/warps/WarpCommand.java | 6 +- .../otemod/commands/warps/WarpsCommand.java | 3 +- .../otemod/implementation/VaultScreen.java | 15 +- src/main/resources/META-INF/mods.toml | 2 +- .../resources/assets/otemod/lang/en_us.json | 6 - .../worldgen/noise_settings/resource.json | 4917 ++++++++--------- src/main/resources/resources.zip | Bin 180460 -> 0 bytes 27 files changed, 2518 insertions(+), 2602 deletions(-) delete mode 100644 src/main/java/dev/zontreck/otemod/ExampleMod.java.disabled delete mode 100644 src/main/resources/resources.zip diff --git a/build.gradle b/build.gradle index ab98e49..70bb6c0 100644 --- a/build.gradle +++ b/build.gradle @@ -135,8 +135,9 @@ dependencies { compileOnly fg.deobf("mezz.jei:jei-${mc_version}-forge-api:${jei_version}") runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}-forge:${jei_version}") - compileOnly fg.deobf("dev.zontreck:libzontreck:1.0.0.1:dev") - runtimeOnly fg.deobf("dev.zontreck:libzontreck:1.0.0.1") + implementation fg.deobf("dev.zontreck:libzontreck:${libz_version}:dev") + compileOnly fg.deobf("dev.zontreck:libzontreck:${libz_version}:dev") + runtimeOnly fg.deobf("dev.zontreck:libzontreck:${libz_version}") // compile against the JEI API but do not include it at runtime //compileOnly fg.deobf("mezz.jei:jei-${mc_version}-forge-api:${jei_version}") // at runtime, use the full JEI jar diff --git a/gradle.properties b/gradle.properties index 02d5a54..74d4abc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,8 +3,9 @@ org.gradle.jvmargs=-Xmx8G org.gradle.daemon=false -my_version=1.3.4.0 +my_version=1.3.4.1 mc_version=1.19.2 forge_version=43.1.32 -jei_version=11.3.0.262 \ No newline at end of file +jei_version=11.3.0.262 +libz_version=1.0.0.2 \ No newline at end of file diff --git a/src/main/java/dev/zontreck/otemod/ExampleMod.java.disabled b/src/main/java/dev/zontreck/otemod/ExampleMod.java.disabled deleted file mode 100644 index 239cd36..0000000 --- a/src/main/java/dev/zontreck/otemod/ExampleMod.java.disabled +++ /dev/null @@ -1,89 +0,0 @@ -package dev.zontreck.otemod; - -import com.mojang.logging.LogUtils; -import net.minecraft.client.Minecraft; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.Item; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.state.BlockBehaviour; -import net.minecraft.world.level.material.Material; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.InterModComms; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; -import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; -import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent; -import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent; -import net.minecraftforge.event.server.ServerStartingEvent; -import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; -import org.slf4j.Logger; - -// The value here should match an entry in the META-INF/mods.toml file -@Mod(ExampleMod.MODID) -public class ExampleMod -{ - // Define mod id in a common place for everything to reference - public static final String MODID = "examplemod"; - // Directly reference a slf4j logger - private static final Logger LOGGER = LogUtils.getLogger(); - // Create a Deferred Register to hold Blocks which will all be registered under the "examplemod" namespace - public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, MODID); - // Create a Deferred Register to hold Items which will all be registered under the "examplemod" namespace - public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MODID); - - // Creates a new Block with the id "examplemod:example_block", combining the namespace and path - public static final RegistryObject EXAMPLE_BLOCK = BLOCKS.register("example_block", () -> new Block(BlockBehaviour.Properties.of(Material.STONE))); - // Creates a new BlockItem with the id "examplemod:example_block", combining the namespace and path - public static final RegistryObject EXAMPLE_BLOCK_ITEM = ITEMS.register("example_block", () -> new BlockItem(EXAMPLE_BLOCK.get(), new Item.Properties().tab(CreativeModeTab.TAB_BUILDING_BLOCKS))); - - public ExampleMod() - { - IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); - - // Register the commonSetup method for modloading - modEventBus.addListener(this::commonSetup); - - // Register the Deferred Register to the mod event bus so blocks get registered - BLOCKS.register(modEventBus); - // Register the Deferred Register to the mod event bus so items get registered - ITEMS.register(modEventBus); - - // Register ourselves for server and other game events we are interested in - MinecraftForge.EVENT_BUS.register(this); - } - - private void commonSetup(final FMLCommonSetupEvent event) - { - // Some common setup code - LOGGER.info("HELLO FROM COMMON SETUP"); - LOGGER.info("DIRT BLOCK >> {}", ForgeRegistries.BLOCKS.getKey(Blocks.DIRT)); - } - - // You can use SubscribeEvent and let the Event Bus discover methods to call - @SubscribeEvent - public void onServerStarting(ServerStartingEvent event) - { - // Do something when the server starts - LOGGER.info("HELLO from server starting"); - } - - // You can use EventBusSubscriber to automatically register all static methods in the class annotated with @SubscribeEvent - @Mod.EventBusSubscriber(modid = MODID, bus = Mod.EventBusSubscriber.Bus.MOD) - public static class ClientModEvents - { - @SubscribeEvent - public static void onClientSetup(FMLClientSetupEvent event) - { - // Some client setup code - LOGGER.info("HELLO FROM CLIENT SETUP"); - LOGGER.info("MINECRAFT NAME >> {}", Minecraft.getInstance().getUser().getName()); - } - } -} diff --git a/src/main/java/dev/zontreck/otemod/OTEMod.java b/src/main/java/dev/zontreck/otemod/OTEMod.java index 4d09441..c0d4bb9 100644 --- a/src/main/java/dev/zontreck/otemod/OTEMod.java +++ b/src/main/java/dev/zontreck/otemod/OTEMod.java @@ -3,7 +3,6 @@ package dev.zontreck.otemod; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; -import java.time.Instant; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -14,17 +13,10 @@ import com.mojang.logging.LogUtils; import com.mojang.serialization.Codec; import net.minecraft.client.gui.screens.MenuScreens; -import net.minecraft.client.renderer.ItemBlockRenderTypes; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.MinecraftServer; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.entity.Entity.RemovalReason; -import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.common.MinecraftForge; @@ -36,11 +28,8 @@ import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.config.ModConfig; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; -import net.minecraftforge.event.RegisterCommandsEvent; import net.minecraftforge.event.entity.item.ItemExpireEvent; -import net.minecraftforge.event.entity.player.PlayerEvent.ItemPickupEvent; import net.minecraftforge.event.server.ServerStartedEvent; -import net.minecraftforge.event.server.ServerStartingEvent; import net.minecraftforge.event.server.ServerStoppingEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; @@ -83,8 +72,15 @@ public class OTEMod public static boolean DEVELOPER=false; private static Thread MasterThread; + public static String OTEPrefix = ""; + public static String ONLY_PLAYER = ""; + public OTEMod() { + + OTEMod.OTEPrefix = ChatColor.doColors("!dark_gray![!dark_green!!bold!OTEMod!reset!!dark_gray!]!reset!"); + OTEMod.ONLY_PLAYER = ChatColor.doColors("!dark_red!Only a player can execute this command"); + IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus(); // Register the setup method for modloading bus.addListener(this::setup); @@ -207,7 +203,7 @@ public class OTEMod if(cont.has_expired()) { try{ - Component expire = Component.literal(ChatColor.DARK_PURPLE+"Teleport request has expired"); + Component expire = Component.literal(OTEMod.OTEPrefix + ChatColor.DARK_PURPLE+"Teleport request has expired"); ChatServerOverride.broadcastTo(cont.FromPlayer, expire, OTEMod.THE_SERVER); ChatServerOverride.broadcastTo(cont.ToPlayer, expire, OTEMod.THE_SERVER); OTEMod.TeleportRegistry.remove(cont); diff --git a/src/main/java/dev/zontreck/otemod/commands/FlyCommand.java b/src/main/java/dev/zontreck/otemod/commands/FlyCommand.java index cca64d8..0ad861f 100644 --- a/src/main/java/dev/zontreck/otemod/commands/FlyCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/FlyCommand.java @@ -4,6 +4,7 @@ import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.context.CommandContext; import dev.zontreck.libzontreck.chat.ChatColor; +import dev.zontreck.otemod.OTEMod; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.Commands; import net.minecraft.network.chat.contents.TranslatableContents; @@ -43,12 +44,12 @@ public class FlyCommand { p.getAbilities().flying=false; p.onUpdateAbilities(); - ctx.sendSuccess(Component.literal(ChatColor.BOLD + "[" + ChatColor.DARK_GREEN + "OTEMOD" + ChatColor.WHITE + "] "+ChatColor.resetChat() + ChatColor.DARK_PURPLE + "Your ability to fly has been disabled"), false); + ctx.sendSuccess(Component.literal(OTEMod.OTEPrefix + ChatColor.DARK_PURPLE + "Your ability to fly has been disabled"), false); }else { p.getAbilities().mayfly=true; p.onUpdateAbilities(); - ctx.sendSuccess(Component.literal(ChatColor.BOLD + "[" + ChatColor.DARK_GREEN + "OTEMOD" + ChatColor.WHITE + "] "+ChatColor.resetChat() + ChatColor.DARK_PURPLE + "You can now fly"), false); + ctx.sendSuccess(Component.literal(OTEMod.OTEPrefix + ChatColor.DARK_PURPLE + "You can now fly"), false); } return 0; diff --git a/src/main/java/dev/zontreck/otemod/commands/homes/DelHomeCommand.java b/src/main/java/dev/zontreck/otemod/commands/homes/DelHomeCommand.java index 001d5f5..2c33247 100644 --- a/src/main/java/dev/zontreck/otemod/commands/homes/DelHomeCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/homes/DelHomeCommand.java @@ -40,10 +40,6 @@ public class DelHomeCommand { if(! ctx.isPlayer()) { - Style s = Style.EMPTY.withColor(TextColor.parseColor(ChatColor.DARK_RED)).withFont(Style.DEFAULT_FONT); - - - ChatServerOverride.broadcastTo(ctx.getPlayer().getUUID(), Component.translatable("dev.zontreck.otemod.msgs.only_player").withStyle(s), ctx.getServer()); return 1; } ServerPlayer p = ctx.getPlayer(); @@ -61,13 +57,15 @@ public class DelHomeCommand { pstat.execute(); - - ctx.sendSuccess(MutableComponent.create(new TranslatableContents("dev.zontreck.otemod.msgs.homes.del.success")), true); + + ChatServerOverride.broadcastTo(ctx.getPlayer().getUUID(), Component.literal(OTEMod.OTEPrefix + ChatColor.doColors("!dark_green! Home was deleted successfully")), ctx.getServer()); + con.endRequest(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); - ctx.sendFailure(Component.translatable("dev.zontreck.otemod.msgs.homes.del.fail")); + ChatServerOverride.broadcastTo(ctx.getPlayer().getUUID(), Component.literal(OTEMod.OTEPrefix + ChatColor.doColors("!dark_red! Home was unable to be deleted")), ctx.getServer()); + return 1; } return 0; diff --git a/src/main/java/dev/zontreck/otemod/commands/homes/HomeCommand.java b/src/main/java/dev/zontreck/otemod/commands/homes/HomeCommand.java index c345668..b517f52 100644 --- a/src/main/java/dev/zontreck/otemod/commands/homes/HomeCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/homes/HomeCommand.java @@ -124,7 +124,8 @@ public class HomeCommand { Style sxx = Style.EMPTY.withColor(TextColor.parseColor(ChatColor.DARK_GREEN)).withFont(Style.DEFAULT_FONT); - ctx.sendSuccess(Component.translatable("dev.zontreck.otemod.msgs.homes.goto.success").withStyle(sxx), true); + + ChatServerOverride.broadcastTo(ctx.getPlayer().getUUID(), Component.literal(OTEMod.OTEPrefix + ChatColor.doColors("!dark_green!Home found! Wormhole opening now...")), ctx.getServer()); con.endRequest(); } catch (SQLException e) { // TODO Auto-generated catch block diff --git a/src/main/java/dev/zontreck/otemod/commands/homes/HomesCommand.java b/src/main/java/dev/zontreck/otemod/commands/homes/HomesCommand.java index fb0db3d..dfe6eee 100644 --- a/src/main/java/dev/zontreck/otemod/commands/homes/HomesCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/homes/HomesCommand.java @@ -35,7 +35,6 @@ public class HomesCommand { if(! ctx.getSource().isPlayer()) { - ChatServerOverride.broadcastTo(ctx.getSource().getPlayer().getUUID(), Component.literal(ChatColor.DARK_RED).append(Component.translatable("dev.zontreck.otemod.msgs.only_player")), ctx.getSource().getServer()); return 1; } ServerPlayer p = ctx.getSource().getPlayer(); diff --git a/src/main/java/dev/zontreck/otemod/commands/homes/SetHomeCommand.java b/src/main/java/dev/zontreck/otemod/commands/homes/SetHomeCommand.java index 43ec7ee..07e092c 100644 --- a/src/main/java/dev/zontreck/otemod/commands/homes/SetHomeCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/homes/SetHomeCommand.java @@ -42,7 +42,6 @@ public class SetHomeCommand { if(! ctx.isPlayer()) { - ChatServerOverride.broadcastTo(ctx.getPlayer().getUUID(), Component.literal(ChatColor.DARK_RED).append(Component.translatable("dev.zontreck.otemod.msgs.only_player")), ctx.getServer()); return 1; } ServerPlayer p = ctx.getPlayer(); @@ -64,13 +63,14 @@ public class SetHomeCommand { pstat.execute(); - ChatServerOverride.broadcastTo(p.getUUID(), Component.literal(ChatColor.DARK_GREEN).append(Component.translatable("dev.zontreck.otemod.msgs.homes.set.success")), ctx.getServer()); + ChatServerOverride.broadcastTo(p.getUUID(), Component.literal(OTEMod.OTEPrefix + ChatColor.doColors(" !dark_green!Home was created or updated successfully!")), ctx.getServer()); con.endRequest(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); - ctx.sendFailure(Component.translatable("dev.zontreck.otemod.msgs.homes.set.fail")); + ChatServerOverride.broadcastTo(p.getUUID(), Component.literal(OTEMod.OTEPrefix + ChatColor.doColors(" !dark_red!Home could not be updated or created for a unknown reason!")), ctx.getServer()); + return 1; } return 0; diff --git a/src/main/java/dev/zontreck/otemod/commands/profilecmds/ChatColorCommand.java b/src/main/java/dev/zontreck/otemod/commands/profilecmds/ChatColorCommand.java index 0d92f92..85f1980 100644 --- a/src/main/java/dev/zontreck/otemod/commands/profilecmds/ChatColorCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/profilecmds/ChatColorCommand.java @@ -37,7 +37,6 @@ public class ChatColorCommand { // Get profile if(source.getPlayer()==null){ - ChatServerOverride.broadcastTo(source.getPlayer().getUUID(), Component.literal(ChatColor.DARK_RED).append(Component.translatable("dev.zontreck.otemod.msgs.only_player")), source.getServer()); return 1; } Profile p = Profile.get_profile_of(source.getPlayer().getStringUUID()); @@ -45,7 +44,7 @@ public class ChatColorCommand { p.commit(); OTEMod.PROFILES.put(source.getPlayer().getStringUUID(), p); - source.sendSuccess(Component.literal(ChatColor.DARK_GRAY+ "["+ChatColor.DARK_GREEN+ "OTEMOD" + ChatColor.DARK_GRAY + "] "+ChatColor.DARK_PURPLE + "Your chat color has been updated"), false); + source.sendSuccess(Component.literal(OTEMod.OTEPrefix + " "+ChatColor.DARK_PURPLE + "Your chat color has been updated"), false); return 0; } diff --git a/src/main/java/dev/zontreck/otemod/commands/profilecmds/NameColorCommand.java b/src/main/java/dev/zontreck/otemod/commands/profilecmds/NameColorCommand.java index d82bb1b..22cabee 100644 --- a/src/main/java/dev/zontreck/otemod/commands/profilecmds/NameColorCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/profilecmds/NameColorCommand.java @@ -44,7 +44,7 @@ public class NameColorCommand { p.commit(); OTEMod.PROFILES.put(source.getPlayer().getStringUUID(), p); - source.sendSuccess(Component.literal(ChatColor.DARK_GRAY+ "["+ChatColor.DARK_GREEN+ "OTEMOD" + ChatColor.DARK_GRAY + "] "+ChatColor.DARK_PURPLE + "Your name color has been updated"), false); + source.sendSuccess(Component.literal(OTEMod.OTEPrefix+ " "+ChatColor.DARK_PURPLE + "Your name color has been updated"), false); return 0; } diff --git a/src/main/java/dev/zontreck/otemod/commands/profilecmds/NickCommand.java b/src/main/java/dev/zontreck/otemod/commands/profilecmds/NickCommand.java index b224493..d3c96b4 100644 --- a/src/main/java/dev/zontreck/otemod/commands/profilecmds/NickCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/profilecmds/NickCommand.java @@ -40,7 +40,7 @@ public class NickCommand { p.commit(); OTEMod.PROFILES.put(source.getPlayer().getStringUUID(), p); - source.sendSuccess(Component.literal(ChatColor.DARK_GRAY+ "["+ChatColor.DARK_GREEN+ "OTEMOD" + ChatColor.DARK_GRAY + "] "+ChatColor.DARK_PURPLE + "Your nickname has been updated"), false); + source.sendSuccess(Component.literal(OTEMod.OTEPrefix+ " "+ChatColor.DARK_PURPLE + "Your nickname has been updated"), false); return 0; } diff --git a/src/main/java/dev/zontreck/otemod/commands/profilecmds/PrefixColorCommand.java b/src/main/java/dev/zontreck/otemod/commands/profilecmds/PrefixColorCommand.java index 9226b36..e22fc10 100644 --- a/src/main/java/dev/zontreck/otemod/commands/profilecmds/PrefixColorCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/profilecmds/PrefixColorCommand.java @@ -44,7 +44,7 @@ public class PrefixColorCommand { p.commit(); OTEMod.PROFILES.put(source.getPlayer().getStringUUID(), p); - source.sendSuccess(Component.literal(ChatColor.DARK_GRAY+ "["+ChatColor.DARK_GREEN+ "OTEMOD" + ChatColor.DARK_GRAY + "] "+ChatColor.DARK_PURPLE + "Your prefix color has been updated"), false); + source.sendSuccess(Component.literal(OTEMod.OTEPrefix+ " "+ChatColor.DARK_PURPLE + "Your prefix color has been updated"), false); return 0; } diff --git a/src/main/java/dev/zontreck/otemod/commands/profilecmds/PrefixCommand.java b/src/main/java/dev/zontreck/otemod/commands/profilecmds/PrefixCommand.java index a49311d..463d46b 100644 --- a/src/main/java/dev/zontreck/otemod/commands/profilecmds/PrefixCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/profilecmds/PrefixCommand.java @@ -39,7 +39,7 @@ public class PrefixCommand { p.commit(); OTEMod.PROFILES.put(source.getPlayer().getStringUUID(), p); - source.sendSuccess(Component.literal(ChatColor.DARK_GRAY+ "["+ChatColor.DARK_GREEN+ "OTEMOD" + ChatColor.DARK_GRAY + "] "+ChatColor.DARK_PURPLE + "Your prefix has been updated"), false); + source.sendSuccess(Component.literal(OTEMod.OTEPrefix+ " "+ChatColor.DARK_PURPLE + "Your prefix has been updated"), false); return 0; } diff --git a/src/main/java/dev/zontreck/otemod/commands/teleport/TPAcceptCommand.java b/src/main/java/dev/zontreck/otemod/commands/teleport/TPAcceptCommand.java index ea3534d..a797a2a 100644 --- a/src/main/java/dev/zontreck/otemod/commands/teleport/TPAcceptCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/teleport/TPAcceptCommand.java @@ -36,7 +36,7 @@ public class TPAcceptCommand { ServerPlayer from = source.getServer().getPlayerList().getPlayer(cont.FromPlayer); ServerPlayer to = source.getServer().getPlayerList().getPlayer(cont.ToPlayer); - Component comp = Component.literal(ChatColor.DARK_GRAY + "["+ ChatColor.DARK_GREEN+ "OTEMOD" + ChatColor.DARK_GRAY+"] " + ChatColor.DARK_PURPLE+"Teleport request was accepted. Opening wormhole!"); + Component comp = Component.literal(OTEMod.OTEPrefix + " " + ChatColor.DARK_PURPLE+"Teleport request was accepted. Opening wormhole!"); ChatServerOverride.broadcastTo(cont.FromPlayer, comp, source.getServer()); ChatServerOverride.broadcastTo(cont.ToPlayer, comp, source.getServer()); diff --git a/src/main/java/dev/zontreck/otemod/commands/teleport/TPCancelCommand.java b/src/main/java/dev/zontreck/otemod/commands/teleport/TPCancelCommand.java index cd13081..01a4df8 100644 --- a/src/main/java/dev/zontreck/otemod/commands/teleport/TPCancelCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/teleport/TPCancelCommand.java @@ -31,7 +31,7 @@ public class TPCancelCommand { for(TeleportContainer cont : OTEMod.TeleportRegistry){ if(cont.TeleportID.equals(teleporter)){ // Canceling! - Component comp = Component.literal(ChatColor.DARK_GRAY + "["+ ChatColor.DARK_GREEN+ "OTEMOD" + ChatColor.DARK_GRAY+"] " + ChatColor.DARK_PURPLE+"Teleport request was cancelled"); + Component comp = Component.literal(OTEMod.OTEPrefix + " " + ChatColor.DARK_PURPLE+"Teleport request was cancelled"); ChatServerOverride.broadcastTo(cont.FromPlayer, comp, source.getServer()); ChatServerOverride.broadcastTo(cont.ToPlayer, comp, source.getServer()); diff --git a/src/main/java/dev/zontreck/otemod/commands/teleport/TPDenyCommand.java b/src/main/java/dev/zontreck/otemod/commands/teleport/TPDenyCommand.java index 9baf8fe..015ece7 100644 --- a/src/main/java/dev/zontreck/otemod/commands/teleport/TPDenyCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/teleport/TPDenyCommand.java @@ -31,7 +31,7 @@ public class TPDenyCommand { for(TeleportContainer cont : OTEMod.TeleportRegistry){ if(cont.TeleportID.equals(teleporter)){ // Canceling! - Component comp = Component.literal(ChatColor.DARK_GRAY + "["+ ChatColor.DARK_GREEN+ "OTEMOD" + ChatColor.DARK_GRAY+"] " + ChatColor.DARK_PURPLE+"Teleport request was denied"); + Component comp = Component.literal(OTEMod.OTEPrefix + " " + ChatColor.DARK_PURPLE+"Teleport request was denied"); ChatServerOverride.broadcastTo(cont.FromPlayer, comp, source.getServer()); ChatServerOverride.broadcastTo(cont.ToPlayer, comp, source.getServer()); diff --git a/src/main/java/dev/zontreck/otemod/commands/warps/DelWarpCommand.java b/src/main/java/dev/zontreck/otemod/commands/warps/DelWarpCommand.java index dda1408..b9fe3b8 100644 --- a/src/main/java/dev/zontreck/otemod/commands/warps/DelWarpCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/warps/DelWarpCommand.java @@ -36,8 +36,7 @@ public class DelWarpCommand { if(! source.isPlayer()) { - - ChatServerOverride.broadcastTo(source.getPlayer().getUUID(), Component.literal(ChatColor.DARK_RED).append(Component.translatable("dev.zontreck.otemod.msgs.only_player")), source.getServer()); + ChatServerOverride.broadcastTo(source.getPlayer().getUUID(), Component.literal(OTEMod.OTEPrefix + OTEMod.ONLY_PLAYER), source.getServer()); return 1; } ServerPlayer p = source.getPlayer(); diff --git a/src/main/java/dev/zontreck/otemod/commands/warps/RTPWarpCommand.java b/src/main/java/dev/zontreck/otemod/commands/warps/RTPWarpCommand.java index f2f0946..97f1a94 100644 --- a/src/main/java/dev/zontreck/otemod/commands/warps/RTPWarpCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/warps/RTPWarpCommand.java @@ -37,7 +37,8 @@ public class RTPWarpCommand { if(! source.isPlayer()) { - ChatServerOverride.broadcastTo(source.getPlayer().getUUID(), Component.literal(ChatColor.DARK_RED).append(Component.translatable("dev.zontreck.otemod.msgs.only_player")), source.getServer()); + + ChatServerOverride.broadcastTo(source.getPlayer().getUUID(), Component.literal(OTEMod.OTEPrefix + OTEMod.ONLY_PLAYER), source.getServer()); return 1; } ServerPlayer p = source.getPlayer(); diff --git a/src/main/java/dev/zontreck/otemod/commands/warps/SetWarpCommand.java b/src/main/java/dev/zontreck/otemod/commands/warps/SetWarpCommand.java index df39d8e..5e84a75 100644 --- a/src/main/java/dev/zontreck/otemod/commands/warps/SetWarpCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/warps/SetWarpCommand.java @@ -37,7 +37,7 @@ public class SetWarpCommand { if(! source.isPlayer()) { - ChatServerOverride.broadcastTo(source.getPlayer().getUUID(), Component.literal(ChatColor.DARK_RED).append(Component.translatable("dev.zontreck.otemod.msgs.only_player")), source.getServer()); + ChatServerOverride.broadcastTo(source.getPlayer().getUUID(), Component.literal(OTEMod.OTEPrefix + OTEMod.ONLY_PLAYER), source.getServer()); return 1; } ServerPlayer p = source.getPlayer(); diff --git a/src/main/java/dev/zontreck/otemod/commands/warps/WarpCommand.java b/src/main/java/dev/zontreck/otemod/commands/warps/WarpCommand.java index c4061ad..354dd27 100644 --- a/src/main/java/dev/zontreck/otemod/commands/warps/WarpCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/warps/WarpCommand.java @@ -37,7 +37,11 @@ public class WarpCommand { } private static int warp(CommandSourceStack source, String string) { - if(!source.isPlayer())return 1; + if(!source.isPlayer()){ + + ChatServerOverride.broadcastTo(source.getPlayer().getUUID(), Component.literal(OTEMod.OTEPrefix + OTEMod.ONLY_PLAYER), source.getServer()); + return 1; + } ServerPlayer p = source.getPlayer(); Connection con = OTEMod.DB.getConnection(); diff --git a/src/main/java/dev/zontreck/otemod/commands/warps/WarpsCommand.java b/src/main/java/dev/zontreck/otemod/commands/warps/WarpsCommand.java index a9b5dd1..aa50b81 100644 --- a/src/main/java/dev/zontreck/otemod/commands/warps/WarpsCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/warps/WarpsCommand.java @@ -41,6 +41,7 @@ public class WarpsCommand { private static int warps(CommandSourceStack source) { if(!source.isPlayer()) { + ChatServerOverride.broadcastTo(source.getPlayer().getUUID(), Component.literal(OTEMod.OTEPrefix + OTEMod.ONLY_PLAYER), source.getServer()); return 1; } @@ -59,7 +60,7 @@ public class WarpsCommand { count++; } rs=pstat.executeQuery();// Reset the query - ChatServerOverride.broadcastTo(p.getUUID(), Component.literal(ChatColor.DARK_GRAY+"["+ChatColor.DARK_GREEN+"OTEMOD" + ChatColor.DARK_GRAY+"] "+ChatColor.resetChat() + "There are "+count+" warps available"), source.getServer()); + ChatServerOverride.broadcastTo(p.getUUID(), Component.literal(OTEMod.OTEPrefix + " "+ChatColor.resetChat() + "There are "+count+" warps available"), source.getServer()); while(rs.next()) { diff --git a/src/main/java/dev/zontreck/otemod/implementation/VaultScreen.java b/src/main/java/dev/zontreck/otemod/implementation/VaultScreen.java index d8ccd35..759fa02 100644 --- a/src/main/java/dev/zontreck/otemod/implementation/VaultScreen.java +++ b/src/main/java/dev/zontreck/otemod/implementation/VaultScreen.java @@ -33,9 +33,20 @@ public class VaultScreen extends AbstractContainerScreen @Override public void render(PoseStack stack, int mouseX, int mouseY, float partialTicks) { + this.renderBackground(stack); super.render(stack, mouseX, mouseY, partialTicks); - this.font.draw(stack, this.title, this.leftPos + 17, this.topPos + 15, 0xFFFFFF); - this.font.draw(stack, this.playerInventoryTitle, this.leftPos + 17, this.topPos + 123, 0xFFFFFF); + this.renderTooltip(stack, mouseX, mouseY); + + //this.font.draw(stack, this.title, this.leftPos + 17, this.topPos + 15, 0xFFFFFF); + //this.font.draw(stack, this.playerInventoryTitle, this.leftPos + 17, this.topPos + 123, 0xFFFFFF); + } + + @Override + protected void renderLabels(PoseStack stack, int mouseX, int mouseY) + { + this.font.draw(stack, this.title.getString(), this.leftPos + 17, this.topPos + 15, 0xFFFFFF); + + this.font.draw(stack, this.playerInventoryTitle.getString(), this.leftPos + 17, this.topPos + 123, 0xFFFFFF); } @Override diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index c208edd..371b3c2 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -19,7 +19,7 @@ modId="otemod" #mandatory # The version number of the mod - there's a few well known ${} variables useable here or just hardcode it # ${file.jarVersion} will substitute the value of the Implementation-Version as read from the mod's JAR file metadata # see the associated build.gradle script for how to populate this completely automatically during a build -version="1.3.4.0" #mandatory +version="1.3.4.1" #mandatory # A display name for the mod displayName="OTEMod Resources" #mandatory # A URL to query for updates for this mod. See the JSON update specification https://mcforge.readthedocs.io/en/latest/gettingstarted/autoupdate/ diff --git a/src/main/resources/assets/otemod/lang/en_us.json b/src/main/resources/assets/otemod/lang/en_us.json index 96bd2b4..db28398 100644 --- a/src/main/resources/assets/otemod/lang/en_us.json +++ b/src/main/resources/assets/otemod/lang/en_us.json @@ -21,12 +21,6 @@ "dev.zontreck.otemod.msgs.only_player": "§cOnly players are allowed to execute this command", "dev.zontreck.otemod.msgs.homes.total": "§3Total number of homes: §6", - "dev.zontreck.otemod.msgs.homes.set.success": "Home created or updated successfully", - "dev.zontreck.otemod.msgs.homes.set.fail": "§cHome could not be created or updated due to an unknown error", - "dev.zontreck.otemod.msgs.homes.goto.fail": "§cHome was not found, or a error occured", - "dev.zontreck.otemod.msgs.homes.goto.success": "§2Home found, warping home now", - "dev.zontreck.otemod.msgs.homes.del.success": "§2Home was deleted successfully", - "dev.zontreck.otemod.msgs.homes.del.fail": "§cHome could not be deleted due to an error", "dev.zontreck.otemod.msgs.command_cooling_down": "This command is currently on cooldown. You must wait for ", "dev.zontreck.otemod.msgs.command_cooling_down_seconds": "seconds.", diff --git a/src/main/resources/data/otemod/worldgen/noise_settings/resource.json b/src/main/resources/data/otemod/worldgen/noise_settings/resource.json index ea74830..9fd949b 100644 --- a/src/main/resources/data/otemod/worldgen/noise_settings/resource.json +++ b/src/main/resources/data/otemod/worldgen/noise_settings/resource.json @@ -1,2543 +1,2542 @@ { - "sea_level": 63, + "sea_level": 60, "disable_mob_generation": true, "aquifers_enabled": true, "ore_veins_enabled": true, "legacy_random_source": false, "default_block": { - "Name": "minecraft:stone" + "Name": "minecraft:stone" }, "default_fluid": { - "Name": "minecraft:water", - "Properties": { - "level": "0" - } + "Name": "minecraft:water", + "Properties": { + "level": "0" + } }, "noise": { - "min_y": -64, - "height": 384, - "size_horizontal": 1, - "size_vertical": 2 + "min_y": -64, + "height": 384, + "size_horizontal": 1, + "size_vertical": 2 }, "noise_router": { - "barrier": { - "type": "minecraft:noise", - "noise": "minecraft:aquifer_barrier", - "xz_scale": 1, - "y_scale": 0.5 - }, - "fluid_level_floodedness": { - "type": "minecraft:noise", - "noise": "minecraft:aquifer_fluid_level_floodedness", - "xz_scale": 1, - "y_scale": 0.67 - }, - "fluid_level_spread": { - "type": "minecraft:noise", - "noise": "minecraft:aquifer_fluid_level_spread", - "xz_scale": 1, - "y_scale": 0.7142857142857143 - }, - "lava": { - "type": "minecraft:noise", - "noise": "minecraft:aquifer_lava", - "xz_scale": 1, - "y_scale": 1 - }, - "temperature": { - "type": "minecraft:shifted_noise", - "noise": "minecraft:temperature", - "xz_scale": 0.25, - "y_scale": 0, - "shift_x": "minecraft:shift_x", - "shift_y": 0, - "shift_z": "minecraft:shift_z" - }, - "vegetation": { - "type": "minecraft:shifted_noise", - "noise": "minecraft:vegetation", - "xz_scale": 0.25, - "y_scale": 0, - "shift_x": "minecraft:shift_x", - "shift_y": 0, - "shift_z": "minecraft:shift_z" - }, - "continents": "minecraft:overworld/continents", - "erosion": "minecraft:overworld/erosion", - "depth": "minecraft:overworld/depth", - "ridges": "minecraft:overworld/ridges", - "initial_density_without_jaggedness": { - "type": "minecraft:add", - "argument1": 0.1171875, - "argument2": { - "type": "minecraft:mul", - "argument1": { - "type": "minecraft:y_clamped_gradient", - "from_y": -64, - "to_y": -40, - "from_value": 0, - "to_value": 1 - }, - "argument2": { + "barrier": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_barrier", + "xz_scale": 1, + "y_scale": 0.5 + }, + "fluid_level_floodedness": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_fluid_level_floodedness", + "xz_scale": 1, + "y_scale": 0.67 + }, + "fluid_level_spread": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_fluid_level_spread", + "xz_scale": 1, + "y_scale": 0.7142857142857143 + }, + "lava": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_lava", + "xz_scale": 1, + "y_scale": 1 + }, + "temperature": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:temperature", + "xz_scale": 0.25, + "y_scale": 0, + "shift_x": "minecraft:shift_x", + "shift_y": 0, + "shift_z": "minecraft:shift_z" + }, + "vegetation": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:vegetation", + "xz_scale": 0.25, + "y_scale": 0, + "shift_x": "minecraft:shift_x", + "shift_y": 0, + "shift_z": "minecraft:shift_z" + }, + "continents": "minecraft:overworld/continents", + "erosion": "minecraft:overworld/erosion", + "depth": "minecraft:overworld/depth", + "ridges": "minecraft:overworld/ridges", + "initial_density_without_jaggedness": { "type": "minecraft:add", - "argument1": -0.1171875, + "argument1": 0.1171875, "argument2": { - "type": "minecraft:add", - "argument1": -0.078125, - "argument2": { "type": "minecraft:mul", "argument1": { - "type": "minecraft:y_clamped_gradient", - "from_y": 240, - "to_y": 256, - "from_value": 1, - "to_value": 0 + "type": "minecraft:y_clamped_gradient", + "from_y": -64, + "to_y": -40, + "from_value": 0, + "to_value": 1 }, "argument2": { - "type": "minecraft:add", - "argument1": 0.078125, - "argument2": { - "type": "minecraft:clamp", - "input": { - "type": "minecraft:add", - "argument1": -0.703125, - "argument2": { - "type": "minecraft:mul", - "argument1": 4, - "argument2": { - "type": "minecraft:quarter_negative", - "argument": { - "type": "minecraft:mul", - "argument1": "minecraft:overworld/depth", - "argument2": { - "type": "minecraft:cache_2d", - "argument": "minecraft:overworld/factor" - } - } - } - } - }, - "min": -64, - "max": 64 - } - } - } - } - } - } - }, - "final_density": { - "type": "minecraft:min", - "argument1": { - "type": "minecraft:squeeze", - "argument": { - "type": "minecraft:mul", - "argument1": 0.64, - "argument2": { - "type": "minecraft:interpolated", - "argument": { - "type": "minecraft:blend_density", - "argument": { - "type": "minecraft:add", - "argument1": 0.1171875, - "argument2": { - "type": "minecraft:mul", - "argument1": { - "type": "minecraft:y_clamped_gradient", - "from_y": -64, - "to_y": -40, - "from_value": 0, - "to_value": 1 - }, + "type": "minecraft:add", + "argument1": -0.1171875, "argument2": { - "type": "minecraft:add", - "argument1": -0.1171875, - "argument2": { "type": "minecraft:add", "argument1": -0.078125, "argument2": { - "type": "minecraft:mul", - "argument1": { - "type": "minecraft:y_clamped_gradient", - "from_y": 240, - "to_y": 256, - "from_value": 1, - "to_value": 0 - }, - "argument2": { - "type": "minecraft:add", - "argument1": 0.078125, + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_y": 240, + "to_y": 256, + "from_value": 1, + "to_value": 0 + }, "argument2": { - "type": "minecraft:range_choice", - "input": "minecraft:overworld/sloped_cheese", - "min_inclusive": -1000000, - "max_exclusive": 1.5625, - "when_in_range": { - "type": "minecraft:min", - "argument1": "minecraft:overworld/sloped_cheese", + "type": "minecraft:add", + "argument1": 0.078125, "argument2": { - "type": "minecraft:mul", - "argument1": 5, - "argument2": "minecraft:overworld/caves/entrances" - } - }, - "when_out_of_range": { - "type": "minecraft:max", - "argument1": { - "type": "minecraft:min", - "argument1": { - "type": "minecraft:min", - "argument1": { - "type": "minecraft:add", - "argument1": { - "type": "minecraft:mul", - "argument1": 4, - "argument2": { - "type": "minecraft:square", - "argument": { - "type": "minecraft:noise", - "noise": "minecraft:cave_layer", - "xz_scale": 1, - "y_scale": 8 - } - } - }, - "argument2": { + "type": "minecraft:clamp", + "input": { "type": "minecraft:add", - "argument1": { - "type": "minecraft:clamp", - "input": { - "type": "minecraft:add", - "argument1": 0.27, - "argument2": { - "type": "minecraft:noise", - "noise": "minecraft:cave_cheese", - "xz_scale": 1, - "y_scale": 0.6666666666666666 - } - }, - "min": -1, - "max": 1 - }, + "argument1": -0.703125, "argument2": { - "type": "minecraft:clamp", - "input": { - "type": "minecraft:add", - "argument1": 1.5, + "type": "minecraft:mul", + "argument1": 4, "argument2": { - "type": "minecraft:mul", - "argument1": -0.64, - "argument2": "minecraft:overworld/sloped_cheese" + "type": "minecraft:quarter_negative", + "argument": { + "type": "minecraft:mul", + "argument1": "minecraft:overworld/depth", + "argument2": { + "type": "minecraft:cache_2d", + "argument": "minecraft:overworld/factor" + } + } } - }, - "min": 0, - "max": 0.5 } - } }, - "argument2": "minecraft:overworld/caves/entrances" - }, - "argument2": { - "type": "minecraft:add", - "argument1": "minecraft:overworld/caves/spaghetti_2d", - "argument2": "minecraft:overworld/caves/spaghetti_roughness_function" - } - }, - "argument2": { - "type": "minecraft:range_choice", - "input": "minecraft:overworld/caves/pillars", - "min_inclusive": -1000000, - "max_exclusive": 0.03, - "when_in_range": -1000000, - "when_out_of_range": "minecraft:overworld/caves/pillars" + "min": -64, + "max": 64 } - } } - } } - } } - } } - } } - } }, - "argument2": "minecraft:overworld/caves/noodle" - }, - "vein_toggle": { - "type": "minecraft:interpolated", - "argument": { - "type": "minecraft:range_choice", - "input": "minecraft:y", - "min_inclusive": -60, - "max_exclusive": 51, - "when_in_range": { + "final_density": { + "type": "minecraft:min", + "argument1": { + "type": "minecraft:squeeze", + "argument": { + "type": "minecraft:mul", + "argument1": 0.64, + "argument2": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:blend_density", + "argument": { + "type": "minecraft:add", + "argument1": 0.1171875, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_y": -64, + "to_y": -40, + "from_value": 0, + "to_value": 1 + }, + "argument2": { + "type": "minecraft:add", + "argument1": -0.1171875, + "argument2": { + "type": "minecraft:add", + "argument1": -0.078125, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_y": 240, + "to_y": 256, + "from_value": 1, + "to_value": 0 + }, + "argument2": { + "type": "minecraft:add", + "argument1": 0.078125, + "argument2": { + "type": "minecraft:range_choice", + "input": "minecraft:overworld/sloped_cheese", + "min_inclusive": -1000000, + "max_exclusive": 1.5625, + "when_in_range": { + "type": "minecraft:min", + "argument1": "minecraft:overworld/sloped_cheese", + "argument2": { + "type": "minecraft:mul", + "argument1": 5, + "argument2": "minecraft:overworld/caves/entrances" + } + }, + "when_out_of_range": { + "type": "minecraft:max", + "argument1": { + "type": "minecraft:min", + "argument1": { + "type": "minecraft:min", + "argument1": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:mul", + "argument1": 4, + "argument2": { + "type": "minecraft:square", + "argument": { + "type": "minecraft:noise", + "noise": "minecraft:cave_layer", + "xz_scale": 1, + "y_scale": 8 + } + } + }, + "argument2": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:clamp", + "input": { + "type": "minecraft:add", + "argument1": 0.27, + "argument2": { + "type": "minecraft:noise", + "noise": "minecraft:cave_cheese", + "xz_scale": 1, + "y_scale": 0.6666666666666666 + } + }, + "min": -1, + "max": 1 + }, + "argument2": { + "type": "minecraft:clamp", + "input": { + "type": "minecraft:add", + "argument1": 1.5, + "argument2": { + "type": "minecraft:mul", + "argument1": -0.64, + "argument2": "minecraft:overworld/sloped_cheese" + } + }, + "min": 0, + "max": 0.5 + } + } + }, + "argument2": "minecraft:overworld/caves/entrances" + }, + "argument2": { + "type": "minecraft:add", + "argument1": "minecraft:overworld/caves/spaghetti_2d", + "argument2": "minecraft:overworld/caves/spaghetti_roughness_function" + } + }, + "argument2": { + "type": "minecraft:range_choice", + "input": "minecraft:overworld/caves/pillars", + "min_inclusive": -1000000, + "max_exclusive": 0.03, + "when_in_range": -1000000, + "when_out_of_range": "minecraft:overworld/caves/pillars" + } + } + } + } + } + } + } + } + } + } + } + } + }, + "argument2": "minecraft:overworld/caves/noodle" + }, + "vein_toggle": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "min_inclusive": -60, + "max_exclusive": 51, + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:ore_veininess", + "xz_scale": 5, + "y_scale": 5 + }, + "when_out_of_range": 0 + } + }, + "vein_ridged": { + "type": "minecraft:add", + "argument1": -0.07999999821186066, + "argument2": { + "type": "minecraft:max", + "argument1": { + "type": "minecraft:abs", + "argument": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "min_inclusive": -60, + "max_exclusive": 51, + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:ore_vein_a", + "xz_scale": 8, + "y_scale": 8 + }, + "when_out_of_range": 0 + } + } + }, + "argument2": { + "type": "minecraft:abs", + "argument": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "min_inclusive": -60, + "max_exclusive": 51, + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:ore_vein_b", + "xz_scale": 8, + "y_scale": 8 + }, + "when_out_of_range": 0 + } + } + } + } + }, + "vein_gap": { "type": "minecraft:noise", - "noise": "minecraft:ore_veininess", - "xz_scale": 1.5, - "y_scale": 1.5 - }, - "when_out_of_range": 0 + "noise": "minecraft:ore_gap", + "xz_scale": 1, + "y_scale": 1 } - }, - "vein_ridged": { - "type": "minecraft:add", - "argument1": -0.07999999821186066, - "argument2": { - "type": "minecraft:max", - "argument1": { - "type": "minecraft:abs", - "argument": { - "type": "minecraft:interpolated", - "argument": { - "type": "minecraft:range_choice", - "input": "minecraft:y", - "min_inclusive": -60, - "max_exclusive": 51, - "when_in_range": { - "type": "minecraft:noise", - "noise": "minecraft:ore_vein_a", - "xz_scale": 4, - "y_scale": 4 - }, - "when_out_of_range": 0 - } - } - }, - "argument2": { - "type": "minecraft:abs", - "argument": { - "type": "minecraft:interpolated", - "argument": { - "type": "minecraft:range_choice", - "input": "minecraft:y", - "min_inclusive": -60, - "max_exclusive": 51, - "when_in_range": { - "type": "minecraft:noise", - "noise": "minecraft:ore_vein_b", - "xz_scale": 4, - "y_scale": 4 - }, - "when_out_of_range": 0 - } - } - } - } - }, - "vein_gap": { - "type": "minecraft:noise", - "noise": "minecraft:ore_gap", - "xz_scale": 1, - "y_scale": 1 - } }, "spawn_target": [ - { - "temperature": [ - -1, - 1 - ], - "humidity": [ - -1, - 1 - ], - "continentalness": [ - -0.11, - 1 - ], - "erosion": [ - -1, - 1 - ], - "weirdness": [ - -1, - -0.16 - ], - "depth": 0, - "offset": 0 - }, - { - "temperature": [ - -1, - 1 - ], - "humidity": [ - -1, - 1 - ], - "continentalness": [ - -0.11, - 1 - ], - "erosion": [ - -1, - 1 - ], - "weirdness": [ - 0.16, - 1 - ], - "depth": 0, - "offset": 0 - } + { + "temperature": [ + -1, + 1 + ], + "humidity": [ + -1, + 1 + ], + "continentalness": [ + -0.11, + 1 + ], + "erosion": [ + -1, + 1 + ], + "weirdness": [ + -1, + 0.25 + ], + "depth": 0, + "offset": 0 + }, + { + "temperature": [ + -1, + 1 + ], + "humidity": [ + -1, + 1 + ], + "continentalness": [ + -0.11, + 1 + ], + "erosion": [ + -1, + 1 + ], + "weirdness": [ + 0.16, + 1 + ], + "depth": 0, + "offset": 0 + } ], "surface_rule": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:vertical_gradient", - "random_name": "minecraft:bedrock_floor", - "true_at_and_below": { - "above_bottom": 0 + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:vertical_gradient", + "random_name": "minecraft:bedrock_floor", + "true_at_and_below": { + "above_bottom": 0 + }, + "false_at_and_above": { + "above_bottom": 5 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:bedrock" + } + } }, - "false_at_and_above": { - "above_bottom": 5 - } - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:bedrock" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:above_preliminary_surface" - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { + { "type": "minecraft:condition", "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "floor", - "add_surface_depth": false, - "secondary_depth_range": 0 + "type": "minecraft:above_preliminary_surface" }, "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:wooded_badlands" - ] - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:y_above", - "anchor": { - "absolute": 97 - }, - "surface_depth_multiplier": 2, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": -0.909, - "max_threshold": -0.5454 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:coarse_dirt" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": -0.1818, - "max_threshold": 0.1818 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:coarse_dirt" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": 0.5454, - "max_threshold": 0.909 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:coarse_dirt" - } - } - }, - { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": 0, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:grass_block", - "Properties": { - "snowy": "false" - } - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:dirt" - } - } - ] - } - ] - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:swamp" - ] - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:y_above", - "anchor": { - "absolute": 62 - }, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:not", - "invert": { - "type": "minecraft:y_above", - "anchor": { - "absolute": 63 - }, - "surface_depth_multiplier": 0, - "add_stone_depth": false - } - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface_swamp", - "min_threshold": 0, - "max_threshold": 1.7976931348623157e+308 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:water", - "Properties": { - "level": "0" - } - } - } - } - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:mangrove_swamp" - ] - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:y_above", - "anchor": { - "absolute": 60 - }, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:not", - "invert": { - "type": "minecraft:y_above", - "anchor": { - "absolute": 63 - }, - "surface_depth_multiplier": 0, - "add_stone_depth": false - } - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface_swamp", - "min_threshold": 0, - "max_threshold": 1.7976931348623157e+308 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:water", - "Properties": { - "level": "0" - } - } - } - } - } - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:badlands", - "minecraft:eroded_badlands", - "minecraft:wooded_badlands" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "floor", - "add_surface_depth": false, - "secondary_depth_range": 0 - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:y_above", - "anchor": { - "absolute": 256 - }, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:orange_terracotta" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:y_above", - "anchor": { - "absolute": 74 - }, - "surface_depth_multiplier": 1, - "add_stone_depth": true - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": -0.909, - "max_threshold": -0.5454 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:terracotta" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": -0.1818, - "max_threshold": 0.1818 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:terracotta" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": 0.5454, - "max_threshold": 0.909 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:terracotta" - } - } - }, - { - "type": "minecraft:bandlands" - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": -1, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "ceiling", - "add_surface_depth": false, - "secondary_depth_range": 0 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:red_sandstone" - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:red_sand" - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:not", - "invert": { - "type": "minecraft:hole" - } - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:orange_terracotta" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": -6, - "surface_depth_multiplier": -1, - "add_stone_depth": true - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:white_terracotta" - } - } - }, - { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "ceiling", - "add_surface_depth": false, - "secondary_depth_range": 0 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:gravel" - } - } - ] - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:y_above", - "anchor": { - "absolute": 63 - }, - "surface_depth_multiplier": -1, - "add_stone_depth": true - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:y_above", - "anchor": { - "absolute": 63 - }, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:not", - "invert": { - "type": "minecraft:y_above", - "anchor": { - "absolute": 74 - }, - "surface_depth_multiplier": 1, - "add_stone_depth": true - } - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:orange_terracotta" - } - } - } - }, - { - "type": "minecraft:bandlands" - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "floor", - "add_surface_depth": true, - "secondary_depth_range": 0 - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": -6, - "surface_depth_multiplier": -1, - "add_stone_depth": true - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:white_terracotta" - } - } - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "floor", - "add_surface_depth": false, - "secondary_depth_range": 0 - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": -1, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { "type": "minecraft:sequence", "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:frozen_ocean", - "minecraft:deep_frozen_ocean" - ] - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:hole" - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": 0, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:air" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:temperature" - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:ice" - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:water", - "Properties": { - "level": "0" - } - } - } - ] - } - } - }, - { - "type": "minecraft:sequence", - "sequence": [ - { + { "type": "minecraft:condition", "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:frozen_peaks" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:steep" - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:packed_ice" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:packed_ice", - "min_threshold": 0, - "max_threshold": 0.2 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:packed_ice" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:ice", - "min_threshold": 0, - "max_threshold": 0.025 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:ice" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": 0, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:snow_block" - } - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:snowy_slopes" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:steep" - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:powder_snow", - "min_threshold": 0.35, - "max_threshold": 0.6 - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": 0, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:powder_snow" - } - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": 0, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:snow_block" - } - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:jagged_peaks" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:steep" - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": 0, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:snow_block" - } - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:grove" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:powder_snow", - "min_threshold": 0.35, - "max_threshold": 0.6 - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": 0, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:powder_snow" - } - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": 0, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:snow_block" - } - } - } - ] - } - }, - { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:stony_peaks" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:calcite", - "min_threshold": -0.0125, - "max_threshold": 0.0125 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:calcite" - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:stony_shore" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:gravel", - "min_threshold": -0.05, - "max_threshold": 0.05 - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "ceiling", - "add_surface_depth": false, - "secondary_depth_range": 0 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:gravel" - } - } - ] - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:windswept_hills" - ] - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": 0.12121212121212122, - "max_threshold": 1.7976931348623157e+308 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:warm_ocean", - "minecraft:beach", - "minecraft:snowy_beach" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "ceiling", - "add_surface_depth": false, - "secondary_depth_range": 0 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:sandstone" - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:sand" - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:desert" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "ceiling", - "add_surface_depth": false, - "secondary_depth_range": 0 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:sandstone" - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:sand" - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:dripstone_caves" - ] - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - } - ] - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:windswept_savanna" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": 0.21212121212121213, - "max_threshold": 1.7976931348623157e+308 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": -0.06060606060606061, - "max_threshold": 1.7976931348623157e+308 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:coarse_dirt" - } - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:windswept_gravelly_hills" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": 0.24242424242424243, - "max_threshold": 1.7976931348623157e+308 - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "ceiling", - "add_surface_depth": false, - "secondary_depth_range": 0 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:gravel" - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": 0.12121212121212122, - "max_threshold": 1.7976931348623157e+308 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": -0.12121212121212122, - "max_threshold": 1.7976931348623157e+308 - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": 0, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:grass_block", - "Properties": { - "snowy": "false" - } - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:dirt" - } - } - ] - } - }, - { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "ceiling", - "add_surface_depth": false, - "secondary_depth_range": 0 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:gravel" - } - } - ] - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:old_growth_pine_taiga", - "minecraft:old_growth_spruce_taiga" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": 0.21212121212121213, - "max_threshold": 1.7976931348623157e+308 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:coarse_dirt" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": -0.11515151515151514, - "max_threshold": 1.7976931348623157e+308 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:podzol", - "Properties": { - "snowy": "false" - } - } - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:ice_spikes" - ] - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", + "type": "minecraft:stone_depth", "offset": 0, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:snow_block" - } - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:mangrove_swamp" - ] + "surface_type": "floor", + "add_surface_depth": false, + "secondary_depth_range": 0 }, "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:mud" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:mushroom_fields" - ] - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:mycelium", - "Properties": { - "snowy": "false" - } - } - } - }, - { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": 0, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:grass_block", - "Properties": { - "snowy": "false" - } - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:dirt" - } - } - ] - } - ] - } - ] - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": -6, - "surface_depth_multiplier": -1, - "add_stone_depth": true - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "floor", - "add_surface_depth": false, - "secondary_depth_range": 0 - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:frozen_ocean", - "minecraft:deep_frozen_ocean" - ] - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:hole" - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:water", - "Properties": { - "level": "0" - } - } - } - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "floor", - "add_surface_depth": true, - "secondary_depth_range": 0 - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:frozen_peaks" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:steep" - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:packed_ice" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:packed_ice", - "min_threshold": -0.5, - "max_threshold": 0.2 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:packed_ice" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:ice", - "min_threshold": -0.0625, - "max_threshold": 0.025 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:ice" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": 0, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:snow_block" - } - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:snowy_slopes" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:steep" - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:powder_snow", - "min_threshold": 0.45, - "max_threshold": 0.58 - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": 0, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:powder_snow" - } - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": 0, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:snow_block" - } - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:jagged_peaks" - ] - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:grove" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:powder_snow", - "min_threshold": 0.45, - "max_threshold": 0.58 - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:water", - "offset": 0, - "surface_depth_multiplier": 0, - "add_stone_depth": false - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:powder_snow" - } - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:dirt" - } - } - ] - } - }, - { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:stony_peaks" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ + "type": "minecraft:sequence", + "sequence": [ { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:calcite", - "min_threshold": -0.0125, - "max_threshold": 0.0125 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:calcite" - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:stony_shore" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:gravel", - "min_threshold": -0.05, - "max_threshold": 0.05 - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "ceiling", - "add_surface_depth": false, - "secondary_depth_range": 0 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:gravel" - } - } - ] - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:windswept_hills" - ] - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": 0.12121212121212122, - "max_threshold": 1.7976931348623157e+308 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:warm_ocean", - "minecraft:beach", - "minecraft:snowy_beach" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "ceiling", - "add_surface_depth": false, - "secondary_depth_range": 0 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:sandstone" - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:sand" - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:desert" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "ceiling", - "add_surface_depth": false, - "secondary_depth_range": 0 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:sandstone" - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:sand" - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:dripstone_caves" - ] - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - } - ] - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:windswept_savanna" - ] - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": 0.21212121212121213, - "max_threshold": 1.7976931348623157e+308 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:windswept_gravelly_hills" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": 0.24242424242424243, - "max_threshold": 1.7976931348623157e+308 - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { "type": "minecraft:condition", "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "ceiling", - "add_surface_depth": false, - "secondary_depth_range": 0 + "type": "minecraft:biome", + "biome_is": [ + "minecraft:wooded_badlands" + ] }, "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "anchor": { + "absolute": 97 + }, + "surface_depth_multiplier": 2, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": -0.909, + "max_threshold": -0.5454 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": -0.1818, + "max_threshold": 0.1818 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": 0.5454, + "max_threshold": 0.909 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": 0, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + ] + } } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:gravel" - } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": 0.12121212121212122, - "max_threshold": 1.7976931348623157e+308 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:noise_threshold", - "noise": "minecraft:surface", - "min_threshold": -0.12121212121212122, - "max_threshold": 1.7976931348623157e+308 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:dirt" - } - } - }, - { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "ceiling", - "add_surface_depth": false, - "secondary_depth_range": 0 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } }, { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:gravel" - } + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:swamp" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "anchor": { + "absolute": 62 + }, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0, + "add_stone_depth": false + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface_swamp", + "min_threshold": 0, + "max_threshold": 1.7976931348623157e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "anchor": { + "absolute": 60 + }, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0, + "add_stone_depth": false + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface_swamp", + "min_threshold": 0, + "max_threshold": 1.7976931348623157e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + } } - ] - } - ] + ] } - }, - { + }, + { "type": "minecraft:condition", "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:mangrove_swamp" - ] + "type": "minecraft:biome", + "biome_is": [ + "minecraft:badlands", + "minecraft:eroded_badlands", + "minecraft:wooded_badlands" + ] }, "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:mud" - } + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "floor", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "anchor": { + "absolute": 256 + }, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "anchor": { + "absolute": 74 + }, + "surface_depth_multiplier": 1, + "add_stone_depth": true + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": -0.909, + "max_threshold": -0.5454 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": -0.1818, + "max_threshold": 0.1818 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": 0.5454, + "max_threshold": 0.909 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:bandlands" + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": -1, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "ceiling", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:red_sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:red_sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:hole" + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": -6, + "surface_depth_multiplier": -1, + "add_stone_depth": true + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:white_terracotta" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "ceiling", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": -1, + "add_stone_depth": true + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "anchor": { + "absolute": 74 + }, + "surface_depth_multiplier": 1, + "add_stone_depth": true + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + } + }, + { + "type": "minecraft:bandlands" + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "floor", + "add_surface_depth": true, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": -6, + "surface_depth_multiplier": -1, + "add_stone_depth": true + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:white_terracotta" + } + } + } + } + ] } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:dirt" + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "floor", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": -1, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:hole" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": 0, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:air" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:temperature" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + ] + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:packed_ice", + "min_threshold": 0, + "max_threshold": 0.2 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:ice", + "min_threshold": 0, + "max_threshold": 0.025 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": 0, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:snowy_slopes" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:powder_snow", + "min_threshold": 0.35, + "max_threshold": 0.6 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": 0, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": 0, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": 0, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:grove" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:powder_snow", + "min_threshold": 0.35, + "max_threshold": 0.6 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": 0, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": 0, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:calcite", + "min_threshold": -0.0125, + "max_threshold": 0.0125 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:calcite" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_shore" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:gravel", + "min_threshold": -0.05, + "max_threshold": 0.05 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "ceiling", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_hills" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": 0.12121212121212122, + "max_threshold": 1.7976931348623157e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "ceiling", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "ceiling", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:dripstone_caves" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + ] + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_savanna" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": 0.21212121212121213, + "max_threshold": 1.7976931348623157e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": -0.06060606060606061, + "max_threshold": 1.7976931348623157e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_gravelly_hills" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": 0.24242424242424243, + "max_threshold": 1.7976931348623157e+308 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "ceiling", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": 0.12121212121212122, + "max_threshold": 1.7976931348623157e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": -0.12121212121212122, + "max_threshold": 1.7976931348623157e+308 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": 0, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "ceiling", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:old_growth_pine_taiga", + "minecraft:old_growth_spruce_taiga" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": 0.21212121212121213, + "max_threshold": 1.7976931348623157e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": -0.11515151515151514, + "max_threshold": 1.7976931348623157e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:podzol", + "Properties": { + "snowy": "false" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:ice_spikes" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": 0, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mud" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mushroom_fields" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mycelium", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": 0, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + ] + } + ] + } } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:warm_ocean", - "minecraft:beach", - "minecraft:snowy_beach" - ] - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "floor", - "add_surface_depth": true, - "secondary_depth_range": 6 }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:sandstone" - } - } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:desert" - ] - }, - "then_run": { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "floor", - "add_surface_depth": true, - "secondary_depth_range": 30 + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": -6, + "surface_depth_multiplier": -1, + "add_stone_depth": true + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "floor", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:hole" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "floor", + "add_surface_depth": true, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:packed_ice", + "min_threshold": -0.5, + "max_threshold": 0.2 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:ice", + "min_threshold": -0.0625, + "max_threshold": 0.025 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": 0, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:snowy_slopes" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:powder_snow", + "min_threshold": 0.45, + "max_threshold": 0.58 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": 0, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": 0, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:grove" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:powder_snow", + "min_threshold": 0.45, + "max_threshold": 0.58 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "offset": 0, + "surface_depth_multiplier": 0, + "add_stone_depth": false + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:calcite", + "min_threshold": -0.0125, + "max_threshold": 0.0125 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:calcite" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_shore" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:gravel", + "min_threshold": -0.05, + "max_threshold": 0.05 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "ceiling", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_hills" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": 0.12121212121212122, + "max_threshold": 1.7976931348623157e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "ceiling", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "ceiling", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:dripstone_caves" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + ] + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_savanna" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": 0.21212121212121213, + "max_threshold": 1.7976931348623157e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_gravelly_hills" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": 0.24242424242424243, + "max_threshold": 1.7976931348623157e+308 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "ceiling", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": 0.12121212121212122, + "max_threshold": 1.7976931348623157e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:surface", + "min_threshold": -0.12121212121212122, + "max_threshold": 1.7976931348623157e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "ceiling", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mud" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "floor", + "add_surface_depth": true, + "secondary_depth_range": 6 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "floor", + "add_surface_depth": true, + "secondary_depth_range": 30 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + } + } + ] + } }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:sandstone" - } + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "floor", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks", + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:deep_lukewarm_ocean" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "ceiling", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "ceiling", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } } - } - } - ] + ] } - }, - { + }, + { "type": "minecraft:condition", "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "floor", - "add_surface_depth": false, - "secondary_depth_range": 0 + "type": "minecraft:vertical_gradient", + "random_name": "minecraft:deepslate", + "true_at_and_below": { + "absolute": 0 + }, + "false_at_and_above": { + "absolute": 8 + } }, "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:frozen_peaks", - "minecraft:jagged_peaks" - ] - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:deepslate", + "Properties": { + "axis": "y" } - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:biome", - "biome_is": [ - "minecraft:warm_ocean", - "minecraft:lukewarm_ocean", - "minecraft:deep_lukewarm_ocean" - ] - }, - "then_run": { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "ceiling", - "add_surface_depth": false, - "secondary_depth_range": 0 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:sandstone" - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:sand" - } - } - ] - } - }, - { - "type": "minecraft:sequence", - "sequence": [ - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:stone_depth", - "offset": 0, - "surface_type": "ceiling", - "add_surface_depth": false, - "secondary_depth_range": 0 - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:stone" - } - } - }, - { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:gravel" - } - } - ] } - ] } - } - ] - } - }, - { - "type": "minecraft:condition", - "if_true": { - "type": "minecraft:vertical_gradient", - "random_name": "minecraft:deepslate", - "true_at_and_below": { - "absolute": 0 - }, - "false_at_and_above": { - "absolute": 8 } - }, - "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "minecraft:deepslate", - "Properties": { - "axis": "y" - } - } - } - } - ] + ] } - } - \ No newline at end of file +} \ No newline at end of file diff --git a/src/main/resources/resources.zip b/src/main/resources/resources.zip deleted file mode 100644 index c636fdb05966c90b937f53a6eb2f05d350dd4b95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180460 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

|-pf-A!XT-*?Fm*5g;nR$~m_ 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