diff --git a/src/main/datagen/org/dimdev/dimdoors/datagen/BlockTagProvider.java b/src/main/datagen/org/dimdev/dimdoors/datagen/BlockTagProvider.java index 5fe7932e..8214d111 100644 --- a/src/main/datagen/org/dimdev/dimdoors/datagen/BlockTagProvider.java +++ b/src/main/datagen/org/dimdev/dimdoors/datagen/BlockTagProvider.java @@ -134,9 +134,9 @@ public class BlockTagProvider extends FabricTagProvider.BlockTagProvider { Blocks.SAND, Blocks.SOUL_SAND ); - getOrCreateTagBuilder(ModBlockTags.DECAY_DARK_SAND_SLAB); - getOrCreateTagBuilder(ModBlockTags.DECAY_DARK_SAND_STAIRS); - getOrCreateTagBuilder(ModBlockTags.DECAY_DARK_SAND_WALL); - getOrCreateTagBuilder(ModBlockTags.DECAY_TO_AMALGAM); +// getOrCreateTagBuilder(ModBlockTags.DECAY_DARK_SAND_SLAB); +// getOrCreateTagBuilder(ModBlockTags.DECAY_DARK_SAND_STAIRS); +// getOrCreateTagBuilder(ModBlockTags.DECAY_DARK_SAND_WALL); +// getOrCreateTagBuilder(ModBlockTags.DECAY_TO_AMALGAM); } } diff --git a/src/main/datagen/org/dimdev/dimdoors/datagen/LimboDecayProvider.java b/src/main/datagen/org/dimdev/dimdoors/datagen/LimboDecayProvider.java index 3cf8c9dc..5fdf3f29 100644 --- a/src/main/datagen/org/dimdev/dimdoors/datagen/LimboDecayProvider.java +++ b/src/main/datagen/org/dimdev/dimdoors/datagen/LimboDecayProvider.java @@ -39,9 +39,9 @@ import org.dimdev.dimdoors.tag.ModBlockTags; import org.dimdev.dimdoors.world.decay.DecayPredicate; import org.dimdev.dimdoors.world.decay.DecayProcessor; import org.dimdev.dimdoors.world.decay.predicates.SimpleDecayPredicate; +import org.dimdev.dimdoors.world.decay.processors.BlockDecayProcessor; import org.dimdev.dimdoors.world.decay.processors.DoubleDecayProcessor; import org.dimdev.dimdoors.world.decay.processors.SelfDecayProcessor; -import org.dimdev.dimdoors.world.decay.processors.BlockDecayProcessor; import static net.minecraft.block.Blocks.ANCIENT_DEBRIS; import static net.minecraft.block.Blocks.ANDESITE; @@ -90,7 +90,6 @@ import static net.minecraft.block.Blocks.GLASS_PANE; import static net.minecraft.block.Blocks.GRANITE; import static net.minecraft.block.Blocks.GRANITE_SLAB; import static net.minecraft.block.Blocks.GRANITE_STAIRS; -import static net.minecraft.block.Blocks.GRANITE_WALL; import static net.minecraft.block.Blocks.HONEYCOMB_BLOCK; import static net.minecraft.block.Blocks.HONEY_BLOCK; import static net.minecraft.block.Blocks.ICE; @@ -100,12 +99,8 @@ import static net.minecraft.block.Blocks.LECTERN; import static net.minecraft.block.Blocks.MAGMA_BLOCK; import static net.minecraft.block.Blocks.MOSS_CARPET; import static net.minecraft.block.Blocks.NETHERITE_BLOCK; -import static net.minecraft.block.Blocks.NETHER_BRICKS; -import static net.minecraft.block.Blocks.NETHER_BRICK_FENCE; -import static net.minecraft.block.Blocks.NETHER_BRICK_SLAB; -import static net.minecraft.block.Blocks.NETHER_BRICK_STAIRS; -import static net.minecraft.block.Blocks.NETHER_BRICK_WALL; import static net.minecraft.block.Blocks.NETHER_WART_BLOCK; +import static net.minecraft.block.Blocks.OBSIDIAN; import static net.minecraft.block.Blocks.OXIDIZED_COPPER; import static net.minecraft.block.Blocks.OXIDIZED_CUT_COPPER; import static net.minecraft.block.Blocks.OXIDIZED_CUT_COPPER_SLAB; @@ -115,9 +110,6 @@ import static net.minecraft.block.Blocks.PISTON; import static net.minecraft.block.Blocks.POLISHED_ANDESITE; import static net.minecraft.block.Blocks.POLISHED_ANDESITE_SLAB; import static net.minecraft.block.Blocks.POLISHED_ANDESITE_STAIRS; -import static net.minecraft.block.Blocks.POLISHED_GRANITE; -import static net.minecraft.block.Blocks.POLISHED_GRANITE_SLAB; -import static net.minecraft.block.Blocks.POLISHED_GRANITE_STAIRS; import static net.minecraft.block.Blocks.PUMPKIN; import static net.minecraft.block.Blocks.RAIL; import static net.minecraft.block.Blocks.REDSTONE_LAMP; @@ -137,7 +129,6 @@ import static net.minecraft.block.Blocks.STONE; import static net.minecraft.block.Blocks.STONE_BRICKS; import static net.minecraft.block.Blocks.TARGET; import static net.minecraft.block.Blocks.WARPED_NYLIUM; -import static net.minecraft.block.Blocks.WATER; import static net.minecraft.block.Blocks.WEATHERED_COPPER; import static net.minecraft.block.Blocks.WEATHERED_CUT_COPPER; import static net.minecraft.block.Blocks.WEATHERED_CUT_COPPER_SLAB; @@ -229,20 +220,20 @@ public class LimboDecayProvider implements DataProvider { }); createPatterData(id("glass"), ModBlockTags.DECAY_TO_GLASS, Blocks.GLASS).run(consumer); createPatterData(id("gravel"), ModBlockTags.DECAY_TO_GRAVEL, Blocks.GRAVEL).run(consumer); - createPatterData(id("gravel_fence", ModBlockTags.DECAY_TO_GRAVEL_FENCE, ModBlocks.GRAVEL_FENCE)).run(consumer); - createPatterData(id("gravel_gate", ModBlockTags.DECAY_TO_GRAVEL_GATE, ModBlocks.GRAVEL_GATE)).run(consumer); - createPatterData(id("gravel_button", ModBlockTags.DECAY_TO_GRAVEL_BUTTON, ModBlocks.GRAVEL_BUTTON)).run(consumer); - createPatterData(id("gravel_slab", ModBlockTags.DECAY_TO_GRAVEL_SLAB, ModBlocks.GRAVEL_SLAB)).run(consumer); - createPatterData(id("gravel_stairs", ModBlockTags.DECAY_TO_GRAVEL_STAIRS, ModBlocks.GRAVEL_STAIRS)).run(consumer); - createPatterData(id("gravel_wall", ModBlockTags.DECAY_TO_GRAVEL_WALL, ModBlocks.GRAVEL_WALL)).run(consumer); + createPatterData(id("gravel_fence"), ModBlockTags.DECAY_TO_GRAVEL_FENCE, ModBlocks.GRAVEL_FENCE).run(consumer); + createPatterData(id("gravel_gate"), ModBlockTags.DECAY_TO_GRAVEL_GATE, ModBlocks.GRAVEL_GATE).run(consumer); + createPatterData(id("gravel_button"), ModBlockTags.DECAY_TO_GRAVEL_BUTTON, ModBlocks.GRAVEL_BUTTON).run(consumer); + createPatterData(id("gravel_slab"), ModBlockTags.DECAY_TO_GRAVEL_SLAB, ModBlocks.GRAVEL_SLAB).run(consumer); + createPatterData(id("gravel_stairs"), ModBlockTags.DECAY_TO_GRAVEL_STAIRS, ModBlocks.GRAVEL_STAIRS).run(consumer); + createPatterData(id("gravel_wall"), ModBlockTags.DECAY_TO_GRAVEL_WALL, ModBlocks.GRAVEL_WALL).run(consumer); createPatterData(id("red_sand"), Blocks.RED_SANDSTONE, RED_SAND).run(consumer); - createPatterData(id("red_sand_slab", ModBlockTags.DECAY_TO_RED_SAND_SLAB, ModBlocks.RED_SAND_SLAB)).run(consumer); - createPatterData(id("red_sand_stairs", ModBlockTags.DECAY_TO_RED_SAND_STAIRS, ModBlocks.RED_SAND_STAIRS)).run(consumer); - createPatterData(id("red_sand_wall", ModBlockTags.DECAY_TO_RED_SAND_WALL, ModBlocks.RED_SAND_WALL)).run(consumer); + createPatterData(id("red_sand_slab"), ModBlockTags.DECAY_TO_RED_SAND_SLAB, ModBlocks.RED_SAND_SLAB).run(consumer); + createPatterData(id("red_sand_stairs"), ModBlockTags.DECAY_TO_RED_SAND_STAIRS, ModBlocks.RED_SAND_STAIRS).run(consumer); + createPatterData(id("red_sand_wall"), ModBlockTags.DECAY_TO_RED_SAND_WALL, ModBlocks.RED_SAND_WALL).run(consumer); createPatterData(id("sand"), ModBlockTags.DECAY_TO_SAND, SAND).run(consumer); - createPatterData(id("sand_slab", ModBlockTags.DECAY_TO_SAND_SLAB, ModBlocks.SAND_SLAB)).run(consumer); - createPatterData(id("sand_stairs", ModBlockTags.DECAY_TO_SAND_STAIRS, ModBlocks.SAND_STAIRS)).run(consumer); - createPatterData(id("sand_wall", ModBlockTags.DECAY_TO_SAND_WALL, ModBlocks.SAND_WALL)).run(consumer); + createPatterData(id("sand_slab"), ModBlockTags.DECAY_TO_SAND_SLAB, ModBlocks.SAND_SLAB).run(consumer); + createPatterData(id("sand_stairs"), ModBlockTags.DECAY_TO_SAND_STAIRS, ModBlocks.SAND_STAIRS).run(consumer); + createPatterData(id("sand_wall"), ModBlockTags.DECAY_TO_SAND_WALL, ModBlocks.SAND_WALL).run(consumer); createPatterData(id("soul_sand"), Blocks.SOUL_SOIL, Blocks.SOUL_SAND).run(consumer); createSimplePattern(id("ice"), PACKED_ICE, ICE).run(consumer); @@ -279,21 +270,21 @@ public class LimboDecayProvider implements DataProvider { createPatterData(id("cobblestone_slab"), ModBlockTags.DECAY_TO_COBBLESTONE_SLAB, COBBLESTONE_SLAB).run(consumer); createPatterData(id("cobblestone_stairs"), ModBlockTags.DECAY_TO_COBBLESTONE_STAIRS, COBBLESTONE_STAIRS).run(consumer); createPatterData(id("cobblestone_wall"), ModBlockTags.DECAY_TO_COBBLESTONE_WALL, COBBLESTONE_WALL).run(consumer); - createPatterData(id("red_sandstone"), ModBlockTags.DECAY_TO_RED_SANDSTONE, RED_SANDSTONE); - createPatterData(id("red_sandstone"), ModBlockTags.DECAY_TO_SANDSTONE, SANDSTONE); + createPatterData(id("red_sandstone"), ModBlockTags.DECAY_TO_RED_SANDSTONE, RED_SANDSTONE).run(consumer); + createPatterData(id("red_sandstone"), ModBlockTags.DECAY_TO_SANDSTONE, SANDSTONE).run(consumer); createPatterData(id("packed_ice"), BLUE_ICE, PACKED_ICE).run(consumer); createPatterData(id("driftwood_wood"), ModBlockTags.DECAY_TO_DRIFTWOOD_WOOD, ModBlocks.DRIFTWOOD_WOOD).run(consumer); createPatterData(id("driftwood_log"), ModBlockTags.DECAY_TO_DRIFTWOOD_LOG, ModBlocks.DRIFTWOOD_LOG).run(consumer); createPatterData(id("barrel"), BEEHIVE, BARREL).run(consumer); createPatterData(id("carved_pumpkin"), JACK_O_LANTERN, CARVED_PUMPKIN).run(consumer); - createPatterData(id("sponge"), WET_SPONGE, SPONGE); - createPatterData(id("coal_ore"), DIAMOND_ORE, COAL_ORE); + createPatterData(id("sponge"), WET_SPONGE, SPONGE).run(consumer); + createPatterData(id("coal_ore"), DIAMOND_ORE, COAL_ORE).run(consumer); createPatterData(id("andesite"), POLISHED_ANDESITE, ANDESITE).run(consumer); createPatterData(id("andesite_slab"), POLISHED_ANDESITE_SLAB, ANDESITE_SLAB).run(consumer); createPatterData(id("andesite_stairs"), POLISHED_ANDESITE_STAIRS, ANDESITE_STAIRS).run(consumer); - createPatterData(id("basalt"), ModBlockTags.DECAY_TO_BASALT, BASALT); - createPatterData(id("basalt_lava"), Fluids.LAVA, BASALT); + createPatterData(id("basalt"), ModBlockTags.DECAY_TO_BASALT, BASALT).run(consumer); + createPatterData(id("basalt_lava"), Fluids.LAVA, BASALT).run(consumer); createPatterData(id("blackstone"), ModBlockTags.DECAY_TO_BLACKSTONE, BLACKSTONE).run(consumer); createPatterData(id("blackstone_slab"), ModBlockTags.DECAY_TO_BLACKSTONE_SLAB, BLACKSTONE_SLAB).run(consumer); createPatterData(id("blackstone_stairs"), ModBlockTags.DECAY_TO_BLACKSTONE_STAIRS, BLACKSTONE_STAIRS).run(consumer); @@ -310,18 +301,18 @@ public class LimboDecayProvider implements DataProvider { createPatterData(id("endstone_slab"), ModBlockTags.DECAY_TO_ENDSTONE_SLAB, ModBlocks.END_STONE_SLAB).run(consumer); createPatterData(id("endstone_stairs"), ModBlockTags.DECAY_TO_ENDSTONE_STAIRS, ModBlocks.END_STONE_STAIRS).run(consumer); createPatterData(id("endstone_wall"), ModBlockTags.DECAY_TO_ENDSTONE_WALL, ModBlocks.END_STONE_WALL).run(consumer); - createPatterData(id("furnace"), ModBlockTags.DECAY_TO_FURNACE, FURNACE); + createPatterData(id("furnace"), ModBlockTags.DECAY_TO_FURNACE, FURNACE).run(consumer); createPatterData(id("granite"), ModBlockTags.DECAY_TO_GRANITE, GRANITE).run(consumer); createPatterData(id("granite_slab"), ModBlockTags.DECAY_TO_GRANITE_SLAB, GRANITE_SLAB).run(consumer); createPatterData(id("granite_stairs"), ModBlockTags.DECAY_TO_GRANITE_STAIRS, GRANITE_STAIRS).run(consumer); createPatterData(id("granite"), ModBlockTags.DECAY_TO_GRANITE, GRANITE).run(consumer); createPatterData(id("granite_slab"), ModBlockTags.DECAY_TO_GRANITE_SLAB, GRANITE_SLAB).run(consumer); createPatterData(id("granite_stairs"), ModBlockTags.DECAY_TO_GRANITE_STAIRS, GRANITE_STAIRS).run(consumer); - createPatterData(id("netherrack"), ModBlockTags.NETHERRACK, Blocks.NETHERRACK); - createPatterData(id("netherrack_fence"), ModBlockTags.NETHERRACK_FENCE, ModBlocks.NETHERRACK_FENCE); - createPatterData(id("netherrack_slab"), ModBlockTags.NETHERRACK_SLAB, ModBlocks.NETHERRACK_SLAB); - createPatterData(id("netherrack_stairs"), ModBlockTags.NETHERRACK_STAIRS, ModBlocks.NETHERRACK_STAIRS); - createPatterData(id("netherrack_wall"), ModBlockTags.NETHERRACK_WALL, ModBlocks.NETHERRACK_WALL); + createPatterData(id("netherrack"), ModBlockTags.NETHERRACK, Blocks.NETHERRACK).run(consumer); + createPatterData(id("netherrack_fence"), ModBlockTags.NETHERRACK_FENCE, ModBlocks.NETHERRACK_FENCE).run(consumer); + createPatterData(id("netherrack_slab"), ModBlockTags.NETHERRACK_SLAB, ModBlocks.NETHERRACK_SLAB).run(consumer); + createPatterData(id("netherrack_stairs"), ModBlockTags.NETHERRACK_STAIRS, ModBlocks.NETHERRACK_STAIRS).run(consumer); + createPatterData(id("netherrack_wall"), ModBlockTags.NETHERRACK_WALL, ModBlocks.NETHERRACK_WALL).run(consumer); createPatterData(id("prismarine"), ModBlockTags.DECAY_TO_PRISMARINE, Blocks.PRISMARINE).run(consumer); createPatterData(id("prismarine_slab"), ModBlockTags.DECAY_TO_PRISMARINE_SLAB, Blocks.PRISMARINE_SLAB).run(consumer); createPatterData(id("prismarine_stairs"), ModBlockTags.DECAY_TO_PRISMARINE_STAIRS, Blocks.PRISMARINE_STAIRS).run(consumer); @@ -333,14 +324,14 @@ public class LimboDecayProvider implements DataProvider { createPatterData(id("dark_prismarine"), ModBlockTags.DECAY_TO_DARK_PRISMARINE, Blocks.DARK_PRISMARINE).run(consumer); createPatterData(id("dark_prismarine_slab"), ModBlockTags.DECAY_TO_DARK_PRISMARINE_SLAB, Blocks.DARK_PRISMARINE_SLAB).run(consumer); createPatterData(id("dark_prismarine_stairs"), ModBlockTags.DECAY_TO_DARK_PRISMARINE_STAIRS, Blocks.DARK_PRISMARINE_STAIRS).run(consumer); - createPatterData(id("clod_block"), ModBlockTags.DECAY_TO_CLOD_BLOCK, ModBlocks.CLOD_BLOCK); - createPatterData(id("cracked_stone_brick"), Blocks.CRACKED_STONE_BRICKS, STONE_BRICKS); - createPatterData(id("obsidian"), ModBlockTags.DECAY_TO_OBSIDIAN).run(consumer); + createPatterData(id("clod_block"), ModBlockTags.DECAY_TO_CLOD_BLOCK, ModBlocks.CLOD_BLOCK).run(consumer); + createPatterData(id("cracked_stone_brick"), Blocks.CRACKED_STONE_BRICKS, STONE_BRICKS).run(consumer); + createPatterData(id("obsidian"), ModBlockTags.DECAY_TO_OBSIDIAN, OBSIDIAN).run(consumer); createPatterData(id("stone_brick"), ModBlockTags.DECAY_TO_STONE_BRICKS, Blocks.STONE_BRICKS).run(consumer); createPatterData(id("stone_brick_slab"), ModBlockTags.DECAY_TOSTONE_BRICK_SLAB, Blocks.STONE_BRICK_SLAB).run(consumer); createPatterData(id("stone_brick_stairs"), ModBlockTags.DECAY_TOSTONE_BRICK_STAIRS, Blocks.STONE_BRICK_STAIRS).run(consumer); createPatterData(id("stone_brick_wall"), ModBlockTags.DECAY_TOSTONE_BRICK_WALL, Blocks.STONE_BRICK_WALL).run(consumer); - createPatterData(id("crying_obsidian"), RESPAWN_ANCHOR, CRYING_OBSIDIAN); + createPatterData(id("crying_obsidian"), RESPAWN_ANCHOR, CRYING_OBSIDIAN).run(consumer); } public DecayPatternData createPatterData(Identifier id, Object before, Object after) { diff --git a/src/main/java/org/dimdev/dimdoors/block/ModBlocks.java b/src/main/java/org/dimdev/dimdoors/block/ModBlocks.java index abc46219..4247cad7 100644 --- a/src/main/java/org/dimdev/dimdoors/block/ModBlocks.java +++ b/src/main/java/org/dimdev/dimdoors/block/ModBlocks.java @@ -217,6 +217,23 @@ public final class ModBlocks { @RegistryEntry("deepslate_stairs") public static final Block DEEPSLATE_STAIRS = createStairs(Blocks.DEEPSLATE); @RegistryEntry("deepslate_wall") public static final Block DEEPSLATE_WALL = createWall(Blocks.DEEPSLATE); + @RegistryEntry("red_sand_slab") public static final Block RED_SAND_SLAB = createSlab(Blocks.RED_SAND); + @RegistryEntry("red_sand_stairs") public static final Block RED_SAND_STAIRS = createStairs(Blocks.RED_SAND); + @RegistryEntry("red_sand_wall") public static final Block RED_SAND_WALL = createWall(Blocks.RED_SAND); + + @RegistryEntry("sand_slab") public static final Block SAND_SLAB = createSlab(Blocks.SAND); + @RegistryEntry("sand_stairs") public static final Block SAND_STAIRS = createStairs(Blocks.SAND); + @RegistryEntry("sand_wall") public static final Block SAND_WALL = createWall(Blocks.SAND); + + @RegistryEntry("end_stone_slab") public static final Block END_STONE_SLAB = createSlab(Blocks.END_STONE); + @RegistryEntry("end_stone_stairs") public static final Block END_STONE_STAIRS = createStairs(Blocks.END_STONE); + @RegistryEntry("end_stone_wall") public static final Block END_STONE_WALL = createWall(Blocks.END_STONE); + + @RegistryEntry("netherrack_fence") public static final Block NETHERRACK_FENCE = createFence(Blocks.NETHERRACK); + @RegistryEntry("netherrack_slab") public static final Block NETHERRACK_SLAB = createSlab(Blocks.NETHERRACK); + @RegistryEntry("netherrack_stairs") public static final Block NETHERRACK_STAIRS = createStairs(Blocks.NETHERRACK); + @RegistryEntry("netherrack_wall") public static final Block NETHERRACK_WALL = createWall(Blocks.NETHERRACK); + @RegistryEntry("unraveled_spike") public static final Block UNRAVELED_SPIKE = new Block(AbstractBlock.Settings.copy(UNRAVELLED_FABRIC).luminance(state -> 0)); @RegistryEntry("gritty_stone") public static final Block GRITTY_STONE = new Block(AbstractBlock.Settings.copy(STONE)); @RegistryEntry("leak") public static final Block LEAK = new Block(AbstractBlock.Settings.copy(WATER)); diff --git a/src/main/java/org/dimdev/dimdoors/tag/ModBlockTags.java b/src/main/java/org/dimdev/dimdoors/tag/ModBlockTags.java index d0069d74..c980c577 100644 --- a/src/main/java/org/dimdev/dimdoors/tag/ModBlockTags.java +++ b/src/main/java/org/dimdev/dimdoors/tag/ModBlockTags.java @@ -65,6 +65,64 @@ public class ModBlockTags { public static final TagKey DECAY_TO_RED_SANDSTONE = of("decay_to_red_sandstone"); public static final TagKey DECAY_TO_SANDSTONE = of("decay_to_sandstone"); + public static final TagKey DECAY_TO_BLACKSTONE = of("decay_to_blackstone"); + public static final TagKey DECAY_TO_BLACKSTONE_SLAB = of("decay_to_blackstone_slab"); + public static final TagKey DECAY_TO_BLACKSTONE_STAIRS = of("decay_to_blackstone_stairs"); + public static final TagKey DECAY_TO_BLACKSTONE_WALL = of("decay_to_blackstone_wall"); + public static final TagKey DECAY_TO_DEEPSLATE = of("decay_to_deepslate"); + public static final TagKey DECAY_TO_DEEPSLATE_SLAB = of("decay_to_deepslate_slab"); + public static final TagKey DECAY_TO_DEEPSLATE_STAIRS = of("decay_to_deepslate_stairs"); + public static final TagKey DECAY_TO_DEEPSLATE_WALL = of("decay_to_deepslate_wall"); + public static final TagKey DECAY_TO_DIORITE = of("decay_to_diorite"); + public static final TagKey DECAY_TO_DIORITE_SLAB = of("decay_to_diorite_slab"); + public static final TagKey DECAY_TO_DIORITE_STAIRS = of("decay_to_diorite_stairs"); + public static final TagKey DECAY_TO_DIORITE_WALL = of("decay_to_diorite_wall"); + public static final TagKey DECAY_TO_ENDSTONE = of("decay_to_endstone"); + public static final TagKey DECAY_TO_ENDSTONE_SLAB = of("decay_to_endstone_slab"); + public static final TagKey DECAY_TO_ENDSTONE_STAIRS = of("decay_to_endstone_stairs"); + public static final TagKey DECAY_TO_ENDSTONE_WALL = of("decay_to_endstone_wall"); + public static final TagKey DECAY_TO_FURNACE = of("decay_to_furnace"); + public static final TagKey DECAY_TO_GRANITE = of("decay_to_granite"); + public static final TagKey DECAY_TO_GRANITE_SLAB = of("decay_to_granite_slab"); + public static final TagKey DECAY_TO_GRANITE_STAIRS = of("decay_to_granite_stairs"); + public static final TagKey NETHERRACK = of("netherrack"); + public static final TagKey NETHERRACK_FENCE = of("netherrack_fence"); + public static final TagKey NETHERRACK_SLAB = of("netherrack_slab"); + public static final TagKey NETHERRACK_STAIRS = of("netherrack_stairs"); + public static final TagKey NETHERRACK_WALL = of("netherrack_wall"); + public static final TagKey DECAY_TO_PRISMARINE = of("decay_to_prismarine"); + public static final TagKey DECAY_TO_PRISMARINE_SLAB = of("decay_to_prismarine_slab"); + public static final TagKey DECAY_TO_PRISMARINE_STAIRS = of("decay_to_prismarine_stairs"); + public static final TagKey DECAY_TO_PRISMARINE_WALL = of("decay_to_prismarine_wall"); + public static final TagKey DECAY_TO_STONE = of("decay_to_stone"); + public static final TagKey DECAY_TO_GLASS = of("decay_to_glass"); + public static final TagKey DECAY_TO_GRAVEL = of("decay_to_grave"); + public static final TagKey DECAY_TO_GRAVEL_FENCE = of("decay_to_gravel_fence"); + public static final TagKey DECAY_TO_GRAVEL_GATE = of("decay_to_gravel_gate"); + public static final TagKey DECAY_TO_GRAVEL_BUTTON = of("decay_to_gravel_button"); + public static final TagKey DECAY_TO_GRAVEL_SLAB = of("decay_to_gravel_slab"); + public static final TagKey DECAY_TO_GRAVEL_STAIRS = of("decay_to_gravel_stairs"); + public static final TagKey DECAY_TO_GRAVEL_WALL = of("decay_to_gravel_wall"); + public static final TagKey DECAY_TO_RED_SAND_SLAB = of("decay_to_red_sand_slab"); + public static final TagKey DECAY_TO_RED_SAND_STAIRS = of("decay_to_red_sand_stairs"); + public static final TagKey DECAY_TO_RED_SAND_WALL = of("decay_to_red_sand_wall"); + public static final TagKey DECAY_TO_SAND = of("decay_to_sand"); + public static final TagKey DECAY_TO_SAND_SLAB = of("decay_to_sand_slab"); + public static final TagKey DECAY_TO_SAND_STAIRS = of("decay_to_sand_stairs"); + public static final TagKey DECAY_TO_SAND_WALL = of("decay_to_sand_wall"); + public static final TagKey DECAY_TO_DRIFTWOOD_WOOD = of("decay_to_driftwood_wood"); + public static final TagKey DECAY_TO_BASALT = of("decay_to_basalt"); + public static final TagKey DECAY_TO_DARK_PRISMARINE = of("decay_to_dark_prismarine"); + public static final TagKey DECAY_TO_DARK_PRISMARINE_SLAB = of("decay_to_dark_prismarine_slab"); + public static final TagKey DECAY_TO_DARK_PRISMARINE_STAIRS = of("decay_to_dark_prismarine_stairs"); + public static final TagKey DECAY_TO_CLOD_BLOCK = of("decay_to_clod_block"); + public static final TagKey DECAY_TO_OBSIDIAN = of("decay_to_obsidian"); + public static final TagKey DECAY_TO_STONE_BRICKS = of("decay_to_stone_bricks"); + public static final TagKey DECAY_TOSTONE_BRICK_SLAB = of("decay_tostone_brick_slab"); + public static final TagKey DECAY_TOSTONE_BRICK_STAIRS = of("decay_tostone_brick_stairs"); + public static final TagKey DECAY_TOSTONE_BRICK_WALL = of("decay_tostone_brick_wall"); + public static final TagKey DECAY_TO_DRIFTWOOD_LOG = of("decay_to_driftwood_log"); + private static TagKey of(String id) { return TagKey.of(RegistryKeys.BLOCK, DimensionalDoors.id(id)); } diff --git a/src/main/java/org/dimdev/dimdoors/world/decay/DecayPredicate.java b/src/main/java/org/dimdev/dimdoors/world/decay/DecayPredicate.java index 95811f6c..f69859a5 100644 --- a/src/main/java/org/dimdev/dimdoors/world/decay/DecayPredicate.java +++ b/src/main/java/org/dimdev/dimdoors/world/decay/DecayPredicate.java @@ -20,6 +20,7 @@ import net.minecraft.world.World; import net.fabricmc.fabric.api.event.registry.FabricRegistryBuilder; import org.dimdev.dimdoors.DimensionalDoors; +import org.dimdev.dimdoors.datagen.FluidDecayPredicate; import org.dimdev.dimdoors.world.decay.predicates.SimpleDecayPredicate; public interface DecayPredicate { @@ -82,8 +83,9 @@ public interface DecayPredicate { interface DecayPredicateType { DecayPredicateType NONE_PREDICATE_TYPE = register(DimensionalDoors.id("none"), () -> NONE); DecayPredicateType SIMPLE_PREDICATE_TYPE = register(DimensionalDoors.id(SimpleDecayPredicate.KEY), SimpleDecayPredicate::new); + DecayPredicateType FLUID_PREDICATE_TYPE = register(DimensionalDoors.id(FluidDecayPredicate.KEY), FluidDecayPredicate::new); - DecayPredicate fromNbt(NbtCompound nbt); + DecayPredicate fromNbt(NbtCompound nbt); NbtCompound toNbt(NbtCompound nbt); diff --git a/src/main/java/org/dimdev/dimdoors/world/decay/DecayProcessor.java b/src/main/java/org/dimdev/dimdoors/world/decay/DecayProcessor.java index 282fc82d..fdbf129b 100644 --- a/src/main/java/org/dimdev/dimdoors/world/decay/DecayProcessor.java +++ b/src/main/java/org/dimdev/dimdoors/world/decay/DecayProcessor.java @@ -17,6 +17,7 @@ import net.minecraft.world.World; import net.fabricmc.fabric.api.event.registry.FabricRegistryBuilder; import org.dimdev.dimdoors.DimensionalDoors; +import org.dimdev.dimdoors.datagen.FluidDecayProcessor; import org.dimdev.dimdoors.world.decay.processors.DoorDecayProccessor; import org.dimdev.dimdoors.world.decay.processors.DoubleDecayProcessor; import org.dimdev.dimdoors.world.decay.processors.SelfDecayProcessor; @@ -75,8 +76,9 @@ public interface DecayProcessor { DecayProcessorType SIMPLE_PROCESSOR_TYPE = register(DimensionalDoors.id(BlockDecayProcessor.KEY), BlockDecayProcessor::new); DecayProcessorType NONE_PROCESSOR_TYPE = register(DimensionalDoors.id("none"), () -> NONE); DecayProcessorType SELF = register(DimensionalDoors.id(SelfDecayProcessor.KEY), SelfDecayProcessor::instance); - DecayProcessorType DOOR_PROCESSOR_TYPE = register(DimensionalDoors.id(DoorDecayProccessor.KEY), DoorDecayProccessor::new); - DecayProcessorType DOUBLE_PROCESSOR_TYPE = register(DimensionalDoors.id(DoubleDecayProcessor.KEY), DoubleDecayProcessor::new); + DecayProcessorType DOOR_PROCESSOR_TYPE = register(DimensionalDoors.id(DoorDecayProccessor.KEY), DoorDecayProccessor::new); + DecayProcessorType DOUBLE_PROCESSOR_TYPE = register(DimensionalDoors.id(DoubleDecayProcessor.KEY), DoubleDecayProcessor::new); + DecayProcessorType FLUID_PROCESSOR_TYPE = register(DimensionalDoors.id(FluidDecayProcessor.KEY), FluidDecayProcessor::new); DecayProcessor fromNbt(NbtCompound nbt); diff --git a/src/main/java/org/dimdev/dimdoors/world/decay/processors/DoorDecayProccessor.java b/src/main/java/org/dimdev/dimdoors/world/decay/processors/DoorDecayProccessor.java index c3669320..f38fe718 100644 --- a/src/main/java/org/dimdev/dimdoors/world/decay/processors/DoorDecayProccessor.java +++ b/src/main/java/org/dimdev/dimdoors/world/decay/processors/DoorDecayProccessor.java @@ -7,6 +7,7 @@ import net.minecraft.block.DoorBlock; import net.minecraft.block.TrapdoorBlock; import net.minecraft.block.enums.DoorHinge; import net.minecraft.block.enums.DoubleBlockHalf; +import net.minecraft.fluid.FluidState; import net.minecraft.nbt.NbtCompound; import net.minecraft.registry.Registries; import net.minecraft.util.Identifier; @@ -56,7 +57,7 @@ public class DoorDecayProccessor implements DecayProcessor { } @Override - public int process(World world, BlockPos pos, BlockState origin, BlockState target) { + public int process(World world, BlockPos pos, BlockState origin, BlockState target, FluidState targetFluid) { if(target.getBlock() instanceof DoorBlock) { BlockPos otherPos = target.get(DoorBlock.HALF) == DoubleBlockHalf.UPPER ? pos.down() : pos.up(); diff --git a/src/main/java/org/dimdev/dimdoors/world/decay/processors/DoubleDecayProcessor.java b/src/main/java/org/dimdev/dimdoors/world/decay/processors/DoubleDecayProcessor.java index be17e683..c801a4da 100644 --- a/src/main/java/org/dimdev/dimdoors/world/decay/processors/DoubleDecayProcessor.java +++ b/src/main/java/org/dimdev/dimdoors/world/decay/processors/DoubleDecayProcessor.java @@ -8,6 +8,7 @@ import net.minecraft.block.DoorBlock; import net.minecraft.block.TrapdoorBlock; import net.minecraft.block.enums.DoorHinge; import net.minecraft.block.enums.DoubleBlockHalf; +import net.minecraft.fluid.FluidState; import net.minecraft.nbt.NbtCompound; import net.minecraft.registry.Registries; import net.minecraft.util.Identifier; @@ -57,7 +58,7 @@ public class DoubleDecayProcessor implements DecayProcessor { } @Override - public int process(World world, BlockPos pos, BlockState origin, BlockState target) { + public int process(World world, BlockPos pos, BlockState origin, BlockState target, FluidState targetFluid) { if(target.getBlock() instanceof DoorBlock) { BlockPos otherPos = target.get(DoorBlock.HALF) == DoubleBlockHalf.UPPER ? pos.down() : pos.up(); diff --git a/src/main/java/org/dimdev/dimdoors/world/decay/processors/SelfDecayProcessor.java b/src/main/java/org/dimdev/dimdoors/world/decay/processors/SelfDecayProcessor.java index c8f9fd3c..9aa374cb 100644 --- a/src/main/java/org/dimdev/dimdoors/world/decay/processors/SelfDecayProcessor.java +++ b/src/main/java/org/dimdev/dimdoors/world/decay/processors/SelfDecayProcessor.java @@ -1,6 +1,7 @@ package org.dimdev.dimdoors.world.decay.processors; import net.minecraft.block.BlockState; +import net.minecraft.fluid.FluidState; import net.minecraft.nbt.NbtCompound; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; @@ -34,7 +35,7 @@ public class SelfDecayProcessor implements DecayProcessor { } @Override - public int process(World world, BlockPos pos, BlockState origin, BlockState target) { + public int process(World world, BlockPos pos, BlockState origin, BlockState targetBlock, FluidState targetFluid) { world.setBlockState(pos, origin); return 0; }