Set Void world type as default (configurable) + add Azaleas to sieve

This commit is contained in:
thedarkcolour 2023-08-10 18:07:20 -07:00
parent 7b7de0371d
commit c66b9b347f
15 changed files with 198 additions and 7 deletions

View File

@ -1,6 +1,15 @@
## Ex Nihilo Reborn - 1.0 ## Ex Deorum 1.0
- Ex Nihilo Reborn is a port mixed of the original Ex Nihilo from 1.7.10 *Ex Deorum*'s new additions are listed first, then the additions from original *Ex Nihilo*.
and Ex Nihilo Adscensio for 1.10.2. I was unimpressed with Ex Nihilo Sequentia, - Added the Watering Can, which can be used to hydrate farmland and speed up plant and tree growth. It is intended to be
so I made this. an alternative to mods like Twerk or Tree Growing Simulator, as a Wooden Watering Can is given to the player at the start (configurable).
- Removed Andesite, Granite, and Diorite pebbles The list of blocks that Watering Cans can be used on is defined by the tag `exdeorum:watering_can_blocks`.
- No coral seeds - Added the Sculk Core, which can be used to enable player-placed Sculk Shriekers to spawn Wardens.
- Added Witch Water, which can be used to create a variety of blocks with the barrel AND it can be used to create a Netherrack generator,
replacing where regular Water would be used. (configurable)
- Added the Sieve, which uses sieve meshes to filter items. (drops are configurable through data pack)
- Added the Porcelain, Crimson, and Warped Crucibles which melt cobblestone into lava when placed above a heat source. (configurable through data pack, supports modded fluids)
- Added Wooden Crucibles which melt plant material into water. (configurable through data pack, supports modded fluids)
- Added the Barrel, which has all of its functionality from Ex Nihilo. (Composting and Mixing recipes are configurable through data pack)
- Added the Silk Worm, which can infest a tree so that can be harvested for string. It can also be cooked and eaten... if you're desperate.
- Added the Crook, which can be used to break leaves and infested leaves for increased drop rates.
- Added the Hammer, which can be used to crush and smash blocks. (recipes are configurable through data pack)

View File

@ -1,4 +1,4 @@
// 1.20.1 2023-08-09T22:07:08.2490849 Recipes // 1.20.1 2023-08-10T17:08:20.1669002 Recipes
5ad481a0c376c1a1785a5d3b992064d0ec0bf3b0 data/exdeorum/advancements/recipes/food/end_cake.json 5ad481a0c376c1a1785a5d3b992064d0ec0bf3b0 data/exdeorum/advancements/recipes/food/end_cake.json
25dd027e844a72b03c95dbe5e3c3dd8c738ceb00 data/exdeorum/advancements/recipes/misc/acacia_barrel.json 25dd027e844a72b03c95dbe5e3c3dd8c738ceb00 data/exdeorum/advancements/recipes/misc/acacia_barrel.json
376be94a64c9ca97a9ea2346547b6e617f13a815 data/exdeorum/advancements/recipes/misc/acacia_crucible.json 376be94a64c9ca97a9ea2346547b6e617f13a815 data/exdeorum/advancements/recipes/misc/acacia_crucible.json
@ -578,6 +578,7 @@ b298e2f51255b88beea1394e2f609768fbb36921 data/exdeorum/recipes/sieve/gravel/stri
19ddad521fcb43ea69e4aeda92f8ea841630c530 data/exdeorum/recipes/sieve/gravel/string/lapis_lazuli.json 19ddad521fcb43ea69e4aeda92f8ea841630c530 data/exdeorum/recipes/sieve/gravel/string/lapis_lazuli.json
e33e4503b24e2dc1ab1821746f49ac157f2350d3 data/exdeorum/recipes/sieve/gravel/string/stone_pebble.json e33e4503b24e2dc1ab1821746f49ac157f2350d3 data/exdeorum/recipes/sieve/gravel/string/stone_pebble.json
b774a52785ba81cf8c589b9962abce624862a6ec data/exdeorum/recipes/sieve/moss_block/diamond/acacia_sapling.json b774a52785ba81cf8c589b9962abce624862a6ec data/exdeorum/recipes/sieve/moss_block/diamond/acacia_sapling.json
34776767a1a3ccea93b858edb5e4259f5b5ff1bd data/exdeorum/recipes/sieve/moss_block/diamond/azalea.json
03fad0af6d1930f134908aef86761bda029472df data/exdeorum/recipes/sieve/moss_block/diamond/big_dripleaf.json 03fad0af6d1930f134908aef86761bda029472df data/exdeorum/recipes/sieve/moss_block/diamond/big_dripleaf.json
6de849670ed1d3f4d9566549ae50bad2b16447bf data/exdeorum/recipes/sieve/moss_block/diamond/birch_sapling.json 6de849670ed1d3f4d9566549ae50bad2b16447bf data/exdeorum/recipes/sieve/moss_block/diamond/birch_sapling.json
bd431da682073ba56016352f1f6c9d35fa0211dd data/exdeorum/recipes/sieve/moss_block/diamond/cherry_sapling.json bd431da682073ba56016352f1f6c9d35fa0211dd data/exdeorum/recipes/sieve/moss_block/diamond/cherry_sapling.json
@ -590,10 +591,12 @@ c3cb1b7c924b35323e3d7cb1ffdff46cff7bb849 data/exdeorum/recipes/sieve/moss_block/
ab9c7574d8d2ca3343f170e8cb9d78737873ee2f data/exdeorum/recipes/sieve/moss_block/diamond/spore_blossom.json ab9c7574d8d2ca3343f170e8cb9d78737873ee2f data/exdeorum/recipes/sieve/moss_block/diamond/spore_blossom.json
f41a1dd1c6a62bc8b34baa677a53e18150185e5a data/exdeorum/recipes/sieve/moss_block/diamond/spruce_sapling.json f41a1dd1c6a62bc8b34baa677a53e18150185e5a data/exdeorum/recipes/sieve/moss_block/diamond/spruce_sapling.json
f81c5c7b83ff1dd7ded1b46cb3b602ce56ae3ba7 data/exdeorum/recipes/sieve/moss_block/flint/acacia_sapling.json f81c5c7b83ff1dd7ded1b46cb3b602ce56ae3ba7 data/exdeorum/recipes/sieve/moss_block/flint/acacia_sapling.json
4315fd16c0bd230e052d5308ee9c30b8fa6b4ed3 data/exdeorum/recipes/sieve/moss_block/flint/azalea.json
c1687b96d45092b8fa43d15caf049dabaf1aa648 data/exdeorum/recipes/sieve/moss_block/flint/big_dripleaf.json c1687b96d45092b8fa43d15caf049dabaf1aa648 data/exdeorum/recipes/sieve/moss_block/flint/big_dripleaf.json
7bf07dd791534b61b15fcbbae56f80e2dbbc24c7 data/exdeorum/recipes/sieve/moss_block/flint/birch_sapling.json 7bf07dd791534b61b15fcbbae56f80e2dbbc24c7 data/exdeorum/recipes/sieve/moss_block/flint/birch_sapling.json
521c7e763b7bb79e397e49f5066db5e644b56f25 data/exdeorum/recipes/sieve/moss_block/flint/cherry_sapling.json 521c7e763b7bb79e397e49f5066db5e644b56f25 data/exdeorum/recipes/sieve/moss_block/flint/cherry_sapling.json
dba7cb3c95e17438407fd9126e6dcd8a8ac05709 data/exdeorum/recipes/sieve/moss_block/flint/dark_oak_sapling.json dba7cb3c95e17438407fd9126e6dcd8a8ac05709 data/exdeorum/recipes/sieve/moss_block/flint/dark_oak_sapling.json
9e043da9b384c7f23581ffcd9fa34a18d08d6ba3 data/exdeorum/recipes/sieve/moss_block/flint/flowering_azalea.json
3ac630dca6305e377a994b883446e8f2229be505 data/exdeorum/recipes/sieve/moss_block/flint/glow_berries.json 3ac630dca6305e377a994b883446e8f2229be505 data/exdeorum/recipes/sieve/moss_block/flint/glow_berries.json
cbd39e058b88538e00884c336289d08a45122d58 data/exdeorum/recipes/sieve/moss_block/flint/glow_lichen.json cbd39e058b88538e00884c336289d08a45122d58 data/exdeorum/recipes/sieve/moss_block/flint/glow_lichen.json
6bd5c11cfc79ee76e42a3f6a488229f39515f0fe data/exdeorum/recipes/sieve/moss_block/flint/jungle_sapling.json 6bd5c11cfc79ee76e42a3f6a488229f39515f0fe data/exdeorum/recipes/sieve/moss_block/flint/jungle_sapling.json
@ -605,6 +608,7 @@ c63138cd4e3095885913923bee0685064442871a data/exdeorum/recipes/sieve/moss_block/
0f9eb10e52f5800d0543fbbff9c13559095d2e5f data/exdeorum/recipes/sieve/moss_block/flint/spruce_sapling.json 0f9eb10e52f5800d0543fbbff9c13559095d2e5f data/exdeorum/recipes/sieve/moss_block/flint/spruce_sapling.json
4ac5ebd110597a27940d6d6c8ca5858b5a09d153 data/exdeorum/recipes/sieve/moss_block/flint/sweet_berries.json 4ac5ebd110597a27940d6d6c8ca5858b5a09d153 data/exdeorum/recipes/sieve/moss_block/flint/sweet_berries.json
862a8042232a5b063cf8fdb30142100a32a04372 data/exdeorum/recipes/sieve/moss_block/golden/acacia_sapling.json 862a8042232a5b063cf8fdb30142100a32a04372 data/exdeorum/recipes/sieve/moss_block/golden/acacia_sapling.json
a215703df06f023c6b7f44d377c0a29c5fb2d6d6 data/exdeorum/recipes/sieve/moss_block/golden/azalea.json
3e2c070b67e51500187df91e5a910dbb786bb932 data/exdeorum/recipes/sieve/moss_block/golden/big_dripleaf.json 3e2c070b67e51500187df91e5a910dbb786bb932 data/exdeorum/recipes/sieve/moss_block/golden/big_dripleaf.json
a595eed6b517c0eaca5a37b88dd18372f8f24db5 data/exdeorum/recipes/sieve/moss_block/golden/birch_sapling.json a595eed6b517c0eaca5a37b88dd18372f8f24db5 data/exdeorum/recipes/sieve/moss_block/golden/birch_sapling.json
c9aed5b2b7e641177e6cd08968d6a658de5a3779 data/exdeorum/recipes/sieve/moss_block/golden/cherry_sapling.json c9aed5b2b7e641177e6cd08968d6a658de5a3779 data/exdeorum/recipes/sieve/moss_block/golden/cherry_sapling.json
@ -617,6 +621,7 @@ ab5ae026900f1d6c82f93d8beb2955695ace87fa data/exdeorum/recipes/sieve/moss_block/
47a1c47daea852999f58845e542a7e2a7f43b04a data/exdeorum/recipes/sieve/moss_block/golden/spore_blossom.json 47a1c47daea852999f58845e542a7e2a7f43b04a data/exdeorum/recipes/sieve/moss_block/golden/spore_blossom.json
9ed8aaa5555765dacc2df79e05e8799cf7bc6e5b data/exdeorum/recipes/sieve/moss_block/golden/spruce_sapling.json 9ed8aaa5555765dacc2df79e05e8799cf7bc6e5b data/exdeorum/recipes/sieve/moss_block/golden/spruce_sapling.json
aa77cca261f061b6c67d7b76cfbee948eb6a3e8d data/exdeorum/recipes/sieve/moss_block/iron/acacia_sapling.json aa77cca261f061b6c67d7b76cfbee948eb6a3e8d data/exdeorum/recipes/sieve/moss_block/iron/acacia_sapling.json
687f696562d11b5a8f3f029f31cd903cacca5314 data/exdeorum/recipes/sieve/moss_block/iron/azalea.json
dab4403fa7e1cf72c062422421e609f4f27407be data/exdeorum/recipes/sieve/moss_block/iron/big_dripleaf.json dab4403fa7e1cf72c062422421e609f4f27407be data/exdeorum/recipes/sieve/moss_block/iron/big_dripleaf.json
0319fa66a72967c39e5b5d2c92bb4fb34d722098 data/exdeorum/recipes/sieve/moss_block/iron/birch_sapling.json 0319fa66a72967c39e5b5d2c92bb4fb34d722098 data/exdeorum/recipes/sieve/moss_block/iron/birch_sapling.json
41ac46391e6dd459c9772fc5804929da572c9d31 data/exdeorum/recipes/sieve/moss_block/iron/cherry_sapling.json 41ac46391e6dd459c9772fc5804929da572c9d31 data/exdeorum/recipes/sieve/moss_block/iron/cherry_sapling.json
@ -629,6 +634,7 @@ e46a4beb26c5f1572354e87bfe4553e0a4122576 data/exdeorum/recipes/sieve/moss_block/
0075db25f4650ba9dc172f15814725754d9f97e5 data/exdeorum/recipes/sieve/moss_block/iron/spore_blossom.json 0075db25f4650ba9dc172f15814725754d9f97e5 data/exdeorum/recipes/sieve/moss_block/iron/spore_blossom.json
93cb208475c16ebfdb286a2704a54b1594354c7f data/exdeorum/recipes/sieve/moss_block/iron/spruce_sapling.json 93cb208475c16ebfdb286a2704a54b1594354c7f data/exdeorum/recipes/sieve/moss_block/iron/spruce_sapling.json
64ef5a4f025effef3ac4a2b90488c4b910729bec data/exdeorum/recipes/sieve/moss_block/netherite/acacia_sapling.json 64ef5a4f025effef3ac4a2b90488c4b910729bec data/exdeorum/recipes/sieve/moss_block/netherite/acacia_sapling.json
c026c50780e9df816f2a1536d5bd1bd245d3a785 data/exdeorum/recipes/sieve/moss_block/netherite/azalea.json
415b6baad54d477f2182ff7c2c5f009e85ae9deb data/exdeorum/recipes/sieve/moss_block/netherite/big_dripleaf.json 415b6baad54d477f2182ff7c2c5f009e85ae9deb data/exdeorum/recipes/sieve/moss_block/netherite/big_dripleaf.json
3a1cf97e22c7e65b04727cb00da7946acd859b4e data/exdeorum/recipes/sieve/moss_block/netherite/birch_sapling.json 3a1cf97e22c7e65b04727cb00da7946acd859b4e data/exdeorum/recipes/sieve/moss_block/netherite/birch_sapling.json
a3fd022037cb8eb21330c4757b8c268369a19a10 data/exdeorum/recipes/sieve/moss_block/netherite/cherry_sapling.json a3fd022037cb8eb21330c4757b8c268369a19a10 data/exdeorum/recipes/sieve/moss_block/netherite/cherry_sapling.json
@ -641,6 +647,7 @@ e19bd9157fd5fb35ce43953b9ea27e9102945574 data/exdeorum/recipes/sieve/moss_block/
913767318dab8eda863e2816e06164f8b2b7d049 data/exdeorum/recipes/sieve/moss_block/netherite/spore_blossom.json 913767318dab8eda863e2816e06164f8b2b7d049 data/exdeorum/recipes/sieve/moss_block/netherite/spore_blossom.json
7b16289fd38e015d5b5f6bfe70314d8a507ca4b0 data/exdeorum/recipes/sieve/moss_block/netherite/spruce_sapling.json 7b16289fd38e015d5b5f6bfe70314d8a507ca4b0 data/exdeorum/recipes/sieve/moss_block/netherite/spruce_sapling.json
959d21cfb914761dac53844cea56de55f6260a27 data/exdeorum/recipes/sieve/moss_block/string/acacia_sapling.json 959d21cfb914761dac53844cea56de55f6260a27 data/exdeorum/recipes/sieve/moss_block/string/acacia_sapling.json
bbf31b2f84618308a60b93d2f298de682a0a69b4 data/exdeorum/recipes/sieve/moss_block/string/azalea.json
6232ad4b9611b1d7276ad22924f878b83df668c0 data/exdeorum/recipes/sieve/moss_block/string/big_dripleaf.json 6232ad4b9611b1d7276ad22924f878b83df668c0 data/exdeorum/recipes/sieve/moss_block/string/big_dripleaf.json
3c17107151c6f0a2b65c505b26d46abfebe37c1c data/exdeorum/recipes/sieve/moss_block/string/birch_sapling.json 3c17107151c6f0a2b65c505b26d46abfebe37c1c data/exdeorum/recipes/sieve/moss_block/string/birch_sapling.json
40bf75ee165f0e09e9b6859ed4ef2aed21f3b76d data/exdeorum/recipes/sieve/moss_block/string/cherry_sapling.json 40bf75ee165f0e09e9b6859ed4ef2aed21f3b76d data/exdeorum/recipes/sieve/moss_block/string/cherry_sapling.json

View File

@ -0,0 +1,13 @@
{
"type": "exdeorum:sieve",
"ingredient": {
"item": "minecraft:moss_block"
},
"mesh": "exdeorum:diamond_mesh",
"result": "minecraft:azalea",
"result_amount": {
"type": "minecraft:binomial",
"n": 1.0,
"p": 0.12
}
}

View File

@ -0,0 +1,13 @@
{
"type": "exdeorum:sieve",
"ingredient": {
"item": "minecraft:moss_block"
},
"mesh": "exdeorum:flint_mesh",
"result": "minecraft:azalea",
"result_amount": {
"type": "minecraft:binomial",
"n": 1.0,
"p": 0.089999996
}
}

View File

@ -0,0 +1,13 @@
{
"type": "exdeorum:sieve",
"ingredient": {
"item": "minecraft:moss_block"
},
"mesh": "exdeorum:flint_mesh",
"result": "minecraft:flowering_azalea",
"result_amount": {
"type": "minecraft:binomial",
"n": 1.0,
"p": 0.03
}
}

View File

@ -0,0 +1,13 @@
{
"type": "exdeorum:sieve",
"ingredient": {
"item": "minecraft:moss_block"
},
"mesh": "exdeorum:golden_mesh",
"result": "minecraft:azalea",
"result_amount": {
"type": "minecraft:binomial",
"n": 1.0,
"p": 0.11
}
}

View File

@ -0,0 +1,13 @@
{
"type": "exdeorum:sieve",
"ingredient": {
"item": "minecraft:moss_block"
},
"mesh": "exdeorum:iron_mesh",
"result": "minecraft:azalea",
"result_amount": {
"type": "minecraft:binomial",
"n": 1.0,
"p": 0.099999994
}
}

View File

@ -0,0 +1,13 @@
{
"type": "exdeorum:sieve",
"ingredient": {
"item": "minecraft:moss_block"
},
"mesh": "exdeorum:netherite_mesh",
"result": "minecraft:azalea",
"result_amount": {
"type": "minecraft:binomial",
"n": 1.0,
"p": 0.13
}
}

View File

@ -0,0 +1,13 @@
{
"type": "exdeorum:sieve",
"ingredient": {
"item": "minecraft:moss_block"
},
"mesh": "exdeorum:string_mesh",
"result": "minecraft:azalea",
"result_amount": {
"type": "minecraft:binomial",
"n": 1.0,
"p": 0.08
}
}

View File

@ -22,6 +22,7 @@ import net.minecraft.core.BlockPos;
import net.minecraft.world.level.levelgen.structure.Structure; import net.minecraft.world.level.levelgen.structure.Structure;
import thedarkcolour.exdeorum.voidworld.VoidChunkGenerator; import thedarkcolour.exdeorum.voidworld.VoidChunkGenerator;
@SuppressWarnings("unused")
public final class ASMHooks { public final class ASMHooks {
/** /**
* Called in {@link net.minecraft.world.level.levelgen.structure.structures.EndCityStructure#findGenerationPoint(Structure.GenerationContext)} * Called in {@link net.minecraft.world.level.levelgen.structure.structures.EndCityStructure#findGenerationPoint(Structure.GenerationContext)}

View File

@ -21,15 +21,20 @@ package thedarkcolour.exdeorum.client;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.DefaultVertexFormat; import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.worldselection.CreateWorldScreen;
import net.minecraft.client.gui.screens.worldselection.WorldCreationUiState;
import net.minecraft.client.renderer.ItemBlockRenderTypes; import net.minecraft.client.renderer.ItemBlockRenderTypes;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.ShaderInstance; import net.minecraft.client.renderer.ShaderInstance;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Unit; import net.minecraft.util.Unit;
import net.minecraftforge.client.event.ClientPlayerNetworkEvent; import net.minecraftforge.client.event.ClientPlayerNetworkEvent;
import net.minecraftforge.client.event.EntityRenderersEvent; import net.minecraftforge.client.event.EntityRenderersEvent;
import net.minecraftforge.client.event.RegisterClientReloadListenersEvent; import net.minecraftforge.client.event.RegisterClientReloadListenersEvent;
import net.minecraftforge.client.event.RegisterShadersEvent; import net.minecraftforge.client.event.RegisterShadersEvent;
import net.minecraftforge.client.event.ScreenEvent;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.event.config.ModConfigEvent; import net.minecraftforge.fml.event.config.ModConfigEvent;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
@ -43,6 +48,7 @@ import thedarkcolour.exdeorum.config.EConfig;
import thedarkcolour.exdeorum.network.ClientMessageHandler; import thedarkcolour.exdeorum.network.ClientMessageHandler;
import thedarkcolour.exdeorum.registry.EBlockEntities; import thedarkcolour.exdeorum.registry.EBlockEntities;
import thedarkcolour.exdeorum.registry.EFluids; import thedarkcolour.exdeorum.registry.EFluids;
import thedarkcolour.exdeorum.registry.EWorldPresets;
import java.io.IOException; import java.io.IOException;
import java.io.ObjectInputFilter; import java.io.ObjectInputFilter;
@ -59,6 +65,7 @@ public class ClientHandler {
fmlBus.addListener(ClientHandler::onPlayerRespawn); fmlBus.addListener(ClientHandler::onPlayerRespawn);
fmlBus.addListener(ClientHandler::onPlayerLogout); fmlBus.addListener(ClientHandler::onPlayerLogout);
modBus.addListener(ClientHandler::onConfigChanged); modBus.addListener(ClientHandler::onConfigChanged);
fmlBus.addListener(ClientHandler::onScreenOpen);
} }
private static void addClientReloadListeners(RegisterClientReloadListenersEvent event) { private static void addClientReloadListeners(RegisterClientReloadListenersEvent event) {
@ -108,6 +115,15 @@ public class ClientHandler {
} }
} }
private static void onScreenOpen(ScreenEvent.Opening event) {
if (EConfig.CLIENT.setVoidWorldAsDefault.get()) {
if (event.getNewScreen() instanceof CreateWorldScreen screen) {
var ctx = screen.getUiState().getSettings();
screen.getUiState().setWorldType(new WorldCreationUiState.WorldTypeEntry(ctx.worldgenLoadContext().registryOrThrow(Registries.WORLD_PRESET).getHolder(EWorldPresets.VOID_WORLD).orElse(null)));
}
}
}
private static void setRenderLayers() { private static void setRenderLayers() {
// Fluids // Fluids
ItemBlockRenderTypes.setRenderLayer(EFluids.WITCH_WATER.get(), RenderType.translucent()); ItemBlockRenderTypes.setRenderLayer(EFluids.WITCH_WATER.get(), RenderType.translucent());

View File

@ -31,6 +31,7 @@ public class EConfig {
public static class Client { public static class Client {
public final BooleanValue useFastInfestedLeaves; public final BooleanValue useFastInfestedLeaves;
public final BooleanValue setVoidWorldAsDefault;
public Client(ForgeConfigSpec.Builder builder) { public Client(ForgeConfigSpec.Builder builder) {
builder.comment("Client configuration for Ex Deorum").push("client"); builder.comment("Client configuration for Ex Deorum").push("client");
@ -38,6 +39,9 @@ public class EConfig {
this.useFastInfestedLeaves = builder this.useFastInfestedLeaves = builder
.comment("Whether to use a simplified renderer for infested leaves (reduces FPS lag with lots of infested trees)") .comment("Whether to use a simplified renderer for infested leaves (reduces FPS lag with lots of infested trees)")
.define("use_fast_infested_leaves", false); .define("use_fast_infested_leaves", false);
this.setVoidWorldAsDefault = builder
.comment("Whether the Void World type is set as the default world preset in the world creation screen.")
.define("set_void_world_as_default", true);
builder.pop(); builder.pop();
} }
@ -49,6 +53,7 @@ public class EConfig {
public final BooleanValue simultaneousSieveUsage; public final BooleanValue simultaneousSieveUsage;
public final DoubleValue barrelProgressStep; public final DoubleValue barrelProgressStep;
public final BooleanValue witchWaterNetherrackGenerator; public final BooleanValue witchWaterNetherrackGenerator;
public final BooleanValue setVoidWorldAsDefault;
// todo preferred ores // todo preferred ores
//public final ConfigValue<ResourceLocation> preferredAluminumOre; //public final ConfigValue<ResourceLocation> preferredAluminumOre;
@ -81,6 +86,9 @@ public class EConfig {
this.witchWaterNetherrackGenerator = builder this.witchWaterNetherrackGenerator = builder
.comment("Whether Witch Water forms netherrack when lava flows into it, allowing for a netherrack version of a cobblestone generator.") .comment("Whether Witch Water forms netherrack when lava flows into it, allowing for a netherrack version of a cobblestone generator.")
.define("witch_water_netherrack_generator", true); .define("witch_water_netherrack_generator", true);
this.setVoidWorldAsDefault = builder
.comment("Whether the Void World type is used by default in the \"server.properties\" file when creating a server.")
.define("set_void_world_as_default", true);
// Preferred ore items // Preferred ore items
//builder.push("preferred_tag_items"); //builder.push("preferred_tag_items");

View File

@ -835,6 +835,7 @@ class Recipes {
addDrop.accept(Items.JUNGLE_SAPLING, chance(0.11f)); addDrop.accept(Items.JUNGLE_SAPLING, chance(0.11f));
addDrop.accept(Items.CHERRY_SAPLING, chance(0.11f)); addDrop.accept(Items.CHERRY_SAPLING, chance(0.11f));
addDrop.accept(Items.MANGROVE_PROPAGULE, chance(0.11f)); addDrop.accept(Items.MANGROVE_PROPAGULE, chance(0.11f));
addDrop.accept(Items.AZALEA, chance(0.08f + j * 0.01f));
addDrop.accept(Items.GLOW_BERRIES, chance(0.04f + j * 0.075f)); addDrop.accept(Items.GLOW_BERRIES, chance(0.04f + j * 0.075f));
addDrop.accept(Items.SMALL_DRIPLEAF, chance(0.07f + j * 0.025f)); addDrop.accept(Items.SMALL_DRIPLEAF, chance(0.07f + j * 0.025f));
addDrop.accept(Items.BIG_DRIPLEAF, chance(0.05f + j * 0.02f)); addDrop.accept(Items.BIG_DRIPLEAF, chance(0.05f + j * 0.02f));
@ -843,6 +844,7 @@ class Recipes {
} }
forMesh(writer, ingredient(Items.MOSS_BLOCK), EItems.FLINT_MESH, addDrop -> { forMesh(writer, ingredient(Items.MOSS_BLOCK), EItems.FLINT_MESH, addDrop -> {
addDrop.accept(Items.SWEET_BERRIES, chance(0.03f)); addDrop.accept(Items.SWEET_BERRIES, chance(0.03f));
addDrop.accept(Items.FLOWERING_AZALEA, chance(0.03f));
addDrop.accept(Items.GLOW_LICHEN, chance(0.04f)); addDrop.accept(Items.GLOW_LICHEN, chance(0.04f));
addDrop.accept(Items.LILY_PAD, chance(0.04f)); addDrop.accept(Items.LILY_PAD, chance(0.04f));
}); });

View File

@ -0,0 +1,29 @@
/*
* Ex Deorum
* Copyright (c) 2023 thedarkcolour
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package thedarkcolour.exdeorum.registry;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.levelgen.presets.WorldPreset;
import thedarkcolour.exdeorum.ExDeorum;
public class EWorldPresets {
public static final ResourceKey<WorldPreset> VOID_WORLD = ResourceKey.create(Registries.WORLD_PRESET, new ResourceLocation(ExDeorum.ID, "void_world"));
}

View File

@ -11,6 +11,7 @@ var ASMAPI = Java.type('net.minecraftforge.coremod.api.ASMAPI');
function initializeCoreMod() { function initializeCoreMod() {
return { return {
// inserts a hook into EndCityStructure#findGenerationPoint to fix the position of the city if it is in a void world
'EndCityPatch': { 'EndCityPatch': {
'target': { 'target': {
'type': 'METHOD', 'type': 'METHOD',
@ -38,6 +39,33 @@ function initializeCoreMod() {
ASMAPI.log('ERROR', 'Unable to patch End City generation, void worlds will have no end cities!!!'); ASMAPI.log('ERROR', 'Unable to patch End City generation, void worlds will have no end cities!!!');
return method; return method;
} }
},
// Redirects a field access in the constructor of DedicatedServerProperties from WorldPresets.NORMAL to EWorldPresets.VOID_WORLD
'DedicatedServerPropertiesPatch': {
'target': {
'type': 'METHOD',
'class': 'net.minecraft.server.dedicated.DedicatedServerProperties',
'methodName': '<init>',
'methodDesc': '(Ljava/util/Properties;)V'
},
'transformer': function (method) {
var insnList = method.instructions;
for (var i = 0; i < insnList.size(); ++i) {
var insn = insnList.get(i);
if (insn.getOpcode() === Opcodes.GETSTATIC && (insn.name.equals('f_226437_') || insn.name.equals('NORMAL'))) {
insn.owner = 'thedarkcolour/exdeorum/registry/EWorldPresets';
insn.name = 'VOID_WORLD';
ASMAPI.log('INFO', 'Successfully patched server.properties to use void world type by default');
return method;
}
}
ASMAPI.log('ERROR', 'Unable to patch server.properties, you will have to set "level-type" to "exdeorum:void_world" manually.');
return method;
}
} }
}; };
} }