From 288bf2e473aa945e05d07fd616e317d9317aa607 Mon Sep 17 00:00:00 2001 From: Frank Date: Thu, 24 Feb 2022 11:38:42 +0100 Subject: [PATCH] Adding `c:end_stones` to terrain Blockas and all blocks that are used in surface rules for our end biomes. (#436) --- .../ru/betterend/blocks/EndstoneDustBlock.java | 12 +++++++++++- .../java/ru/betterend/blocks/ShadowGrassBlock.java | 13 ++++++++++++- .../ru/betterend/blocks/basis/EndTerrainBlock.java | 14 +++++++++++++- src/main/java/ru/betterend/registry/EndTags.java | 7 +++++++ .../java/ru/betterend/world/biome/EndBiome.java | 4 +++- 5 files changed, 46 insertions(+), 4 deletions(-) diff --git a/src/main/java/ru/betterend/blocks/EndstoneDustBlock.java b/src/main/java/ru/betterend/blocks/EndstoneDustBlock.java index d5698e81..2f81b4a8 100644 --- a/src/main/java/ru/betterend/blocks/EndstoneDustBlock.java +++ b/src/main/java/ru/betterend/blocks/EndstoneDustBlock.java @@ -5,18 +5,23 @@ import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; import net.minecraft.core.BlockPos; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.FallingBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.loot.LootContext; +import ru.bclib.api.tag.NamedCommonBlockTags; +import ru.bclib.api.tag.TagAPI.TagLocation; +import ru.bclib.interfaces.TagProvider; import ru.bclib.util.ColorUtil; import java.util.Collections; import java.util.List; -public class EndstoneDustBlock extends FallingBlock { +public class EndstoneDustBlock extends FallingBlock implements TagProvider { @Environment(EnvType.CLIENT) private static final int COLOR = ColorUtil.color(226, 239, 168); @@ -38,4 +43,9 @@ public class EndstoneDustBlock extends FallingBlock { public int getDustColor(BlockState state, BlockGetter world, BlockPos pos) { return COLOR; } + + @Override + public void addTags(List> blockTags, List> itemTags) { + blockTags.add(NamedCommonBlockTags.END_STONES); + } } diff --git a/src/main/java/ru/betterend/blocks/ShadowGrassBlock.java b/src/main/java/ru/betterend/blocks/ShadowGrassBlock.java index 3cdaf282..a88df432 100644 --- a/src/main/java/ru/betterend/blocks/ShadowGrassBlock.java +++ b/src/main/java/ru/betterend/blocks/ShadowGrassBlock.java @@ -3,15 +3,21 @@ package ru.betterend.blocks; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.core.BlockPos; +import net.minecraft.world.item.Item; import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.MaterialColor; +import ru.bclib.api.tag.NamedCommonBlockTags; +import ru.bclib.api.tag.TagAPI.TagLocation; +import ru.bclib.interfaces.TagProvider; import ru.betterend.blocks.basis.EndTerrainBlock; import ru.betterend.registry.EndParticles; +import java.util.List; import java.util.Random; -public class ShadowGrassBlock extends EndTerrainBlock { +public class ShadowGrassBlock extends EndTerrainBlock implements TagProvider { public ShadowGrassBlock() { super(MaterialColor.COLOR_BLACK); } @@ -31,4 +37,9 @@ public class ShadowGrassBlock extends EndTerrainBlock { ); } } + + @Override + public void addTags(List> blockTags, List> itemTags) { + blockTags.add(NamedCommonBlockTags.END_STONES); + } } diff --git a/src/main/java/ru/betterend/blocks/basis/EndTerrainBlock.java b/src/main/java/ru/betterend/blocks/basis/EndTerrainBlock.java index be224b9c..4669d6da 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndTerrainBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndTerrainBlock.java @@ -1,12 +1,24 @@ package ru.betterend.blocks.basis; +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.material.MaterialColor; +import ru.bclib.api.tag.NamedCommonBlockTags; +import ru.bclib.api.tag.TagAPI.TagLocation; import ru.bclib.blocks.BaseTerrainBlock; +import ru.bclib.interfaces.TagProvider; import ru.betterend.interfaces.PottableTerrain; -public class EndTerrainBlock extends BaseTerrainBlock implements PottableTerrain { +import java.util.List; + +public class EndTerrainBlock extends BaseTerrainBlock implements PottableTerrain, TagProvider { public EndTerrainBlock(MaterialColor color) { super(Blocks.END_STONE, color); } + + @Override + public void addTags(List> blockTags, List> itemTags) { + blockTags.add(NamedCommonBlockTags.END_STONES); + } } diff --git a/src/main/java/ru/betterend/registry/EndTags.java b/src/main/java/ru/betterend/registry/EndTags.java index d2ce638b..00b0089f 100644 --- a/src/main/java/ru/betterend/registry/EndTags.java +++ b/src/main/java/ru/betterend/registry/EndTags.java @@ -31,6 +31,7 @@ import ru.betterend.BetterEnd; import ru.betterend.blocks.basis.EndTerrainBlock; import ru.betterend.blocks.basis.PedestalBlock; import ru.betterend.item.tool.EndHammerItem; +import ru.betterend.world.biome.EndBiome; import java.util.List; @@ -139,6 +140,12 @@ public class EndTags { TagAPI.addBlockTag(NamedCommonBlockTags.END_STONES, bl); } + public static void addBiomeSurfaceToEndGroup(EndBiome b){ + addEndGround(b.getTopMaterial().getBlock()); + addEndGround(b.getAltTopMaterial().getBlock()); + addEndGround(b.getUnderMaterial().getBlock()); + } + // TODO make getter for biome top blocks public static void addTerrainTags(Registry biomeRegistry) { /*biomeRegistry.forEach((biome) -> { diff --git a/src/main/java/ru/betterend/world/biome/EndBiome.java b/src/main/java/ru/betterend/world/biome/EndBiome.java index 25c27a65..5449b78e 100644 --- a/src/main/java/ru/betterend/world/biome/EndBiome.java +++ b/src/main/java/ru/betterend/world/biome/EndBiome.java @@ -21,6 +21,7 @@ import ru.betterend.interfaces.StructureFeaturesAccessor; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndSounds; +import ru.betterend.registry.EndTags; public class EndBiome extends BCLBiome implements SurfaceMaterialProvider { public static class DefaultSurfaceMaterialProvider implements SurfaceMaterialProvider{ @@ -124,7 +125,8 @@ public class EndBiome extends BCLBiome implements SurfaceMaterialProvider { EndBiome biome = builder.build(biomeConfig.getSupplier()); biome.addCustomData("has_caves", biomeConfig.hasCaves()); biome.setSurfaceMaterial(biomeConfig.surfaceMaterial()); - + + EndTags.addBiomeSurfaceToEndGroup(biome); return biome; }