From d435a0fc10fffd0e6d6077ee762d9db65d817040 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Fri, 18 Jun 2021 14:37:44 +0300 Subject: [PATCH] Bonemeal fixes --- src/main/java/ru/betterend/BetterEnd.java | 2 - .../java/ru/betterend/registry/EndTags.java | 3 + .../ru/betterend/util/BonemealPlants.java | 64 +++++++------ .../java/ru/betterend/util/DataFixerUtil.java | 94 ------------------- 4 files changed, 36 insertions(+), 127 deletions(-) delete mode 100644 src/main/java/ru/betterend/util/DataFixerUtil.java diff --git a/src/main/java/ru/betterend/BetterEnd.java b/src/main/java/ru/betterend/BetterEnd.java index be642253..df163a84 100644 --- a/src/main/java/ru/betterend/BetterEnd.java +++ b/src/main/java/ru/betterend/BetterEnd.java @@ -25,7 +25,6 @@ import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndStructures; import ru.betterend.registry.EndTags; import ru.betterend.util.BonemealPlants; -import ru.betterend.util.DataFixerUtil; import ru.betterend.util.LootTableUtil; import ru.betterend.world.generator.BetterEndBiomeSource; import ru.betterend.world.generator.GeneratorOptions; @@ -58,7 +57,6 @@ public class BetterEnd implements ModInitializer { EndStructures.register(); BonemealPlants.init(); GeneratorOptions.init(); - DataFixerUtil.init(); LootTableUtil.init(); FabricLoader.getInstance().getEntrypoints("betterend", BetterEndPlugin.class).forEach(BetterEndPlugin::register); Integrations.init(); diff --git a/src/main/java/ru/betterend/registry/EndTags.java b/src/main/java/ru/betterend/registry/EndTags.java index 481fd0fd..7ce95c65 100644 --- a/src/main/java/ru/betterend/registry/EndTags.java +++ b/src/main/java/ru/betterend/registry/EndTags.java @@ -23,6 +23,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.LeavesBlock; import net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilderConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.api.BonemealAPI; import ru.bclib.api.TagAPI; import ru.bclib.blocks.BaseVineBlock; import ru.bclib.blocks.SimpleLeavesBlock; @@ -85,6 +86,7 @@ public class EndTags { if (block instanceof EndTerrainBlock) { TagAPI.addEndGround(block); TagHelper.addTag(BlockTags.NYLIUM, block); + BonemealAPI.addSpreadableBlock(block); } else if (block instanceof LeavesBlock || block instanceof SimpleLeavesBlock) { TagHelper.addTag(BlockTags.LEAVES, block); @@ -102,6 +104,7 @@ public class EndTags { ComposterBlockAccessor.callAdd(0.1F, block); } }); + BonemealAPI.addSpreadableBlock(EndBlocks.CAVE_MOSS); List hammers = Lists.newArrayList(); EndItems.getModItems(BetterEnd.MOD_ID).forEach(item -> { diff --git a/src/main/java/ru/betterend/util/BonemealPlants.java b/src/main/java/ru/betterend/util/BonemealPlants.java index 4caf39c3..5e1ff9e8 100644 --- a/src/main/java/ru/betterend/util/BonemealPlants.java +++ b/src/main/java/ru/betterend/util/BonemealPlants.java @@ -1,55 +1,57 @@ package ru.betterend.util; import ru.bclib.api.BonemealAPI; +import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndBlocks; public class BonemealPlants { public static void init() { - BonemealAPI.addLandGrass(EndBlocks.END_MOSS, EndBlocks.CREEPING_MOSS); - BonemealAPI.addLandGrass(EndBlocks.END_MOSS, EndBlocks.UMBRELLA_MOSS); - BonemealAPI.addLandGrass(EndBlocks.END_MYCELIUM, EndBlocks.CREEPING_MOSS); - BonemealAPI.addLandGrass(EndBlocks.END_MYCELIUM, EndBlocks.UMBRELLA_MOSS); + BonemealAPI.addLandGrass(EndBlocks.CREEPING_MOSS, EndBlocks.END_MOSS); + BonemealAPI.addLandGrass(EndBlocks.UMBRELLA_MOSS, EndBlocks.END_MOSS); + BonemealAPI.addLandGrass(EndBlocks.CREEPING_MOSS, EndBlocks.END_MYCELIUM); + BonemealAPI.addLandGrass(EndBlocks.UMBRELLA_MOSS, EndBlocks.END_MYCELIUM); - BonemealAPI.addLandGrass(EndBlocks.CAVE_MOSS, EndBlocks.CAVE_GRASS); - BonemealAPI.addLandGrass(EndBlocks.CHORUS_NYLIUM, EndBlocks.CHORUS_GRASS); - BonemealAPI.addLandGrass(EndBlocks.CRYSTAL_MOSS, EndBlocks.CRYSTAL_GRASS); - BonemealAPI.addLandGrass(EndBlocks.SHADOW_GRASS, EndBlocks.SHADOW_PLANT); - BonemealAPI.addLandGrass(EndBlocks.PINK_MOSS, EndBlocks.BUSHY_GRASS); - BonemealAPI.addLandGrass(EndBlocks.AMBER_MOSS, EndBlocks.AMBER_GRASS); + BonemealAPI.addLandGrass(EndBlocks.CAVE_GRASS, EndBlocks.CAVE_MOSS); + BonemealAPI.addLandGrass(EndBlocks.CHORUS_GRASS, EndBlocks.CHORUS_NYLIUM); + BonemealAPI.addLandGrass(EndBlocks.CRYSTAL_GRASS, EndBlocks.CRYSTAL_MOSS); + BonemealAPI.addLandGrass(EndBlocks.SHADOW_PLANT, EndBlocks.SHADOW_GRASS); + BonemealAPI.addLandGrass(EndBlocks.BUSHY_GRASS, EndBlocks.PINK_MOSS); + BonemealAPI.addLandGrass(EndBlocks.AMBER_GRASS, EndBlocks.AMBER_MOSS); - BonemealAPI.addLandGrass(EndBlocks.JUNGLE_MOSS, EndBlocks.JUNGLE_GRASS); - BonemealAPI.addLandGrass(EndBlocks.JUNGLE_MOSS, EndBlocks.TWISTED_UMBRELLA_MOSS); + BonemealAPI.addLandGrass(EndBlocks.JUNGLE_GRASS, EndBlocks.JUNGLE_MOSS); + BonemealAPI.addLandGrass(EndBlocks.TWISTED_UMBRELLA_MOSS, EndBlocks.JUNGLE_MOSS); BonemealAPI.addLandGrass(EndBlocks.JUNGLE_MOSS, EndBlocks.SMALL_JELLYSHROOM, 0.1F); - // Wait for Lib changes - //BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS, EndBlocks.END_MOSS, EndBlocks.BLOOMING_COOKSONIA); - //BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS, EndBlocks.END_MOSS, EndBlocks.VAIOLUSH_FERN); - //BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS, EndBlocks.END_MOSS, EndBlocks.FRACTURN); - //BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS, EndBlocks.END_MOSS, EndBlocks.SALTEAGO); + BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS.getID(), EndBlocks.END_MOSS, EndBlocks.BLOOMING_COOKSONIA); + BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS.getID(), EndBlocks.END_MOSS, EndBlocks.VAIOLUSH_FERN); + BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS.getID(), EndBlocks.END_MOSS, EndBlocks.FRACTURN); + BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS.getID(), EndBlocks.END_MOSS, EndBlocks.SALTEAGO); - //BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS, EndBlocks.END_MOSS, EndBlocks.CREEPING_MOSS, 0.1F); - //BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS, EndBlocks.END_MOSS, EndBlocks.UMBRELLA_MOSS, 0.1F); - //BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS, EndBlocks.END_MOSS, EndBlocks.TWISTED_UMBRELLA_MOSS, 0.1F); + BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS.getID(), EndBlocks.END_MOSS, EndBlocks.CREEPING_MOSS, 0.1F); + BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS.getID(), EndBlocks.END_MOSS, EndBlocks.UMBRELLA_MOSS, 0.1F); + BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS.getID(), EndBlocks.END_MOSS, EndBlocks.TWISTED_UMBRELLA_MOSS, 0.1F); - BonemealAPI.addLandGrass(EndBlocks.RUTISCUS, EndBlocks.ORANGO); + BonemealAPI.addLandGrass(EndBlocks.ORANGO, EndBlocks.RUTISCUS); BonemealAPI.addLandGrass(EndBlocks.RUTISCUS, EndBlocks.AERIDIUM, 0.2F); BonemealAPI.addLandGrass(EndBlocks.RUTISCUS, EndBlocks.LUTEBUS, 0.2F); BonemealAPI.addLandGrass(EndBlocks.RUTISCUS, EndBlocks.LAMELLARIUM); - //BonemealAPI.addLandGrass(EndBiomes.LANTERN_WOODS, EndBlocks.RUTISCUS, EndBlocks.AERIDIUM, 0.2F); - //BonemealAPI.addLandGrass(EndBiomes.LANTERN_WOODS, EndBlocks.RUTISCUS, EndBlocks.LAMELLARIUM); - //BonemealAPI.addLandGrass(EndBiomes.LANTERN_WOODS, EndBlocks.RUTISCUS, EndBlocks.BOLUX_MUSHROOM, 0.05F); + BonemealAPI.addLandGrass(EndBiomes.LANTERN_WOODS.getID(), EndBlocks.RUTISCUS, EndBlocks.AERIDIUM, 0.2F); + BonemealAPI.addLandGrass(EndBiomes.LANTERN_WOODS.getID(), EndBlocks.RUTISCUS, EndBlocks.LAMELLARIUM); + BonemealAPI.addLandGrass(EndBiomes.LANTERN_WOODS.getID(), EndBlocks.RUTISCUS, EndBlocks.BOLUX_MUSHROOM, 0.05F); - BonemealAPI.addLandGrass(EndBlocks.SANGNUM, EndBlocks.GLOBULAGUS); - BonemealAPI.addLandGrass(EndBlocks.SANGNUM, EndBlocks.CLAWFERN); + BonemealAPI.addLandGrass(EndBlocks.GLOBULAGUS, EndBlocks.SANGNUM, EndBlocks.MOSSY_OBSIDIAN, EndBlocks.MOSSY_DRAGON_BONE); + BonemealAPI.addLandGrass(EndBlocks.CLAWFERN, EndBlocks.SANGNUM, EndBlocks.MOSSY_OBSIDIAN, EndBlocks.MOSSY_DRAGON_BONE); BonemealAPI.addLandGrass(EndBlocks.SANGNUM, EndBlocks.SMALL_AMARANITA_MUSHROOM, 0.1F); - - BonemealAPI.addLandGrass(EndBlocks.MOSSY_DRAGON_BONE, EndBlocks.GLOBULAGUS); - BonemealAPI.addLandGrass(EndBlocks.MOSSY_DRAGON_BONE, EndBlocks.CLAWFERN); + BonemealAPI.addLandGrass(EndBlocks.MOSSY_OBSIDIAN, EndBlocks.SMALL_AMARANITA_MUSHROOM, 0.1F); BonemealAPI.addLandGrass(EndBlocks.MOSSY_DRAGON_BONE, EndBlocks.SMALL_AMARANITA_MUSHROOM, 0.1F); - BonemealAPI.addLandGrass(EndBlocks.MOSSY_OBSIDIAN, EndBlocks.GLOBULAGUS); - BonemealAPI.addLandGrass(EndBlocks.MOSSY_OBSIDIAN, EndBlocks.CLAWFERN); + BonemealAPI.addLandGrass(EndBlocks.GLOBULAGUS, EndBlocks.MOSSY_DRAGON_BONE); + BonemealAPI.addLandGrass(EndBlocks.CLAWFERN, EndBlocks.MOSSY_DRAGON_BONE); + BonemealAPI.addLandGrass(EndBlocks.SMALL_AMARANITA_MUSHROOM, EndBlocks.MOSSY_DRAGON_BONE, 0.1F); + + BonemealAPI.addLandGrass(EndBlocks.GLOBULAGUS, EndBlocks.MOSSY_OBSIDIAN); + BonemealAPI.addLandGrass(EndBlocks.CLAWFERN, EndBlocks.MOSSY_OBSIDIAN); BonemealAPI.addLandGrass(EndBlocks.MOSSY_OBSIDIAN, EndBlocks.SMALL_AMARANITA_MUSHROOM, 0.1F); } } diff --git a/src/main/java/ru/betterend/util/DataFixerUtil.java b/src/main/java/ru/betterend/util/DataFixerUtil.java deleted file mode 100644 index 39748815..00000000 --- a/src/main/java/ru/betterend/util/DataFixerUtil.java +++ /dev/null @@ -1,94 +0,0 @@ -package ru.betterend.util; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.File; -import java.util.List; -import java.util.Map; - -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; - -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.ListTag; -import net.minecraft.nbt.NbtIo; -import net.minecraft.world.level.ChunkPos; -import net.minecraft.world.level.chunk.storage.RegionFile; - -public class DataFixerUtil { - private static final Map REPLACEMENT = Maps.newHashMap(); - - public static void init() { - //addFix("minecraft:stone", "minecraft:glowstone"); // Example - } - - public static void fixData(File dir) { - if (REPLACEMENT.isEmpty()) { - return; - } - - List regions = getAllRegions(dir, null); - regions.parallelStream().forEach((file) -> { - try { - System.out.println("Fixing " + file); - boolean[] changed = new boolean[1]; - RegionFile region = new RegionFile(file, file.getParentFile(), true); - for (int x = 0; x < 32; x++) { - for (int z = 0; z < 32; z++) { - ChunkPos pos = new ChunkPos(x, z); - changed[0] = false; - if (region.hasChunk(pos)) { - DataInputStream input = region.getChunkDataInputStream(pos); - CompoundTag root = NbtIo.read(input); - input.close(); - ListTag sections = root.getCompound("Level").getList("Sections", 10); - sections.forEach((tag) -> { - ListTag palette = ((CompoundTag) tag).getList("Palette", 10); - palette.forEach((blockTag) -> { - CompoundTag blockTagCompound = ((CompoundTag) blockTag); - String name = blockTagCompound.getString("Name"); - String replace = REPLACEMENT.get(name); - if (replace != null) { - blockTagCompound.putString("Name", replace); - changed[0] = true; - } - }); - }); - if (changed[0]) { - System.out.println("Write!"); - DataOutputStream output = region.getChunkDataOutputStream(pos); - NbtIo.write(root, output); - output.close(); - } - } - } - } - region.close(); - } - catch (Exception e) { - e.printStackTrace(); - } - }); - } - - protected static void addFix(String result, String... names) { - for (String name: names) { - REPLACEMENT.put(name, result); - } - } - - private static List getAllRegions(File dir, List list) { - if (list == null) { - list = Lists.newArrayList(); - } - for (File file: dir.listFiles()) { - if (file.isDirectory()) { - getAllRegions(file, list); - } - else if (file.isFile() && file.getName().endsWith(".mca")) { - list.add(file); - } - } - return list; - } -}