Tag switching (WIP)

This commit is contained in:
paulevsGitch 2021-05-26 17:13:36 +03:00
parent 0486d7d89c
commit 41df84404b
72 changed files with 303 additions and 628 deletions

View file

@ -18,14 +18,13 @@ import net.minecraft.tags.TagCollection;
import net.minecraft.world.food.FoodProperties;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.biome.Biome.BiomeCategory;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
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.TagAPI;
import ru.bclib.util.TagHelper;
import ru.betterend.BetterEnd;
import ru.betterend.blocks.basis.EndTerrainBlock;
@ -40,18 +39,11 @@ public class EndTags {
// https://fabricmc.net/wiki/tutorial:tags
// Block Tags
public static final Tag.Named<Block> BOOKSHELVES = makeCommonBlockTag("bookshelves");
public static final Tag.Named<Block> GEN_TERRAIN = makeBlockTag("gen_terrain");
public static final Tag.Named<Block> END_GROUND = makeBlockTag("end_ground");
public static final Tag.Named<Block> PEDESTALS = makeBlockTag("pedestal");
public static final Tag.Named<Block> BLOCK_CHEST = makeCommonBlockTag("chest");
public static final Tag.Named<Block> END_STONES = makeCommonBlockTag("end_stones");
public static final Tag.Named<Block> DRAGON_IMMUNE = getMCBlockTag("dragon_immune");
// Item Tags
public static final Tag.Named<Item> ITEM_CHEST = makeCommonItemTag("chest");
public static final Tag.Named<Item> IRON_INGOTS = makeCommonItemTag("iron_ingots");
public static final Tag.Named<Item> FURNACES = makeCommonItemTag("furnaces");
public final static Tag.Named<Item> HAMMERS = makeFabricItemTag("hammers");
public static <T> Tag.Named<T> makeTag(Supplier<TagCollection<T>> containerSupplier, ResourceLocation id) {
@ -86,15 +78,14 @@ public class EndTags {
}
public static void register() {
addSurfaceBlock(Blocks.END_STONE);
addSurfaceBlock(EndBlocks.THALLASIUM.ore);
addSurfaceBlock(EndBlocks.ENDSTONE_DUST);
addSurfaceBlock(EndBlocks.AMBER_ORE);
TagAPI.addEndGround(EndBlocks.THALLASIUM.ore);
TagAPI.addEndGround(EndBlocks.ENDSTONE_DUST);
TagAPI.addEndGround(EndBlocks.AMBER_ORE);
EndItems.getModBlocks().forEach(blockItem -> {
Block block = ((BlockItem) blockItem).getBlock();
if (block instanceof EndTerrainBlock) {
addSurfaceBlock(block);
TagAPI.addEndGround(block);
TagHelper.addTag(BlockTags.NYLIUM, block);
}
else if (block instanceof LeavesBlock || block instanceof SimpleLeavesBlock) {
@ -130,7 +121,7 @@ public class EndTags {
ToolManagerImpl.tag(HAMMERS).register(new ModdedToolsVanillaBlocksToolHandler(hammers));
TagHelper.addTag(
GEN_TERRAIN,
TagAPI.GEN_TERRAIN,
EndBlocks.ENDER_ORE,
EndBlocks.FLAVOLITE.stone,
EndBlocks.VIOLECITE.stone,
@ -140,23 +131,17 @@ public class EndTags {
EndBlocks.AZURE_JADESTONE.stone,
EndBlocks.SANDY_JADESTONE.stone
);
TagHelper.addTag(END_GROUND, EndBlocks.SULPHURIC_ROCK.stone, EndBlocks.BRIMSTONE);
TagHelper.addTag(FURNACES, Blocks.FURNACE);
TagHelper.addTag(TagAPI.END_GROUND, EndBlocks.SULPHURIC_ROCK.stone, EndBlocks.BRIMSTONE);
TagHelper.addTag(BlockTags.ANVIL, EndBlocks.AETERNIUM_ANVIL);
TagHelper.addTag(BlockTags.BEACON_BASE_BLOCKS, EndBlocks.AETERNIUM_BLOCK);
TagHelper.addTag(ItemTags.BEACON_PAYMENT_ITEMS, EndItems.AETERNIUM_INGOT);
TagHelper.addTag(EndTags.DRAGON_IMMUNE, EndBlocks.ENDER_ORE, EndBlocks.ETERNAL_PEDESTAL, EndBlocks.FLAVOLITE_RUNED_ETERNAL, EndBlocks.FLAVOLITE_RUNED);
TagHelper.addTag(EndTags.IRON_INGOTS, Items.IRON_INGOT);
TagHelper.addTag(EndTags.IRON_INGOTS, EndBlocks.THALLASIUM.ingot);
}
public static void addSurfaceBlock(Block block) {
TagHelper.addTag(END_GROUND, block);
TagHelper.addTag(GEN_TERRAIN, block);
TagHelper.addTag(EndTags.DRAGON_IMMUNE,
EndBlocks.ENDER_ORE,
EndBlocks.ETERNAL_PEDESTAL,
EndBlocks.FLAVOLITE_RUNED_ETERNAL,
EndBlocks.FLAVOLITE_RUNED
);
TagHelper.addTag(TagAPI.IRON_INGOTS, EndBlocks.THALLASIUM.ingot);
}
public static void addTerrainTags(Registry<Biome> biomeRegistry) {
@ -165,10 +150,10 @@ public class EndTags {
SurfaceBuilderConfiguration config = biome.getGenerationSettings().getSurfaceBuilderConfig();
Block under = config.getUnderMaterial().getBlock();
Block surface = config.getTopMaterial().getBlock();
TagHelper.addTag(GEN_TERRAIN, under, surface);
TagHelper.addTag(END_GROUND, surface);
TagHelper.addTag(TagAPI.GEN_TERRAIN, under, surface);
TagHelper.addTag(TagAPI.END_GROUND, surface);
}
});
END_STONES.getValues().forEach(EndTags::addSurfaceBlock);
END_STONES.getValues().forEach(TagAPI::addEndGround);
}
}