Adopted new TagAPI

This commit is contained in:
Frank 2022-01-23 22:32:25 +01:00
parent e6ca1220a2
commit a1c87165ae
74 changed files with 300 additions and 281 deletions

View file

@ -6,9 +6,6 @@ import net.fabricmc.fabric.impl.tool.attribute.handlers.ModdedToolsVanillaBlocks
import net.fabricmc.fabric.mixin.object.builder.AbstractBlockAccessor;
import net.fabricmc.fabric.mixin.object.builder.AbstractBlockSettingsAccessor;
import net.minecraft.core.Registry;
import net.minecraft.tags.BlockTags;
import net.minecraft.tags.ItemTags;
import net.minecraft.tags.Tag;
import net.minecraft.world.food.FoodProperties;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.Items;
@ -20,7 +17,14 @@ import net.minecraft.world.level.block.state.BlockBehaviour.Properties;
import net.minecraft.world.level.material.Material;
import ru.bclib.api.BonemealAPI;
import ru.bclib.api.ComposterAPI;
import ru.bclib.api.TagAPI;
import ru.bclib.api.tag.CommonItemTags;
import ru.bclib.api.tag.NamedBlockTags;
import ru.bclib.api.tag.NamedCommonBlockTags;
import ru.bclib.api.tag.NamedCommonItemTags;
import ru.bclib.api.tag.NamedItemTags;
import ru.bclib.api.tag.NamedMineableTags;
import ru.bclib.api.tag.TagAPI;
import ru.bclib.api.tag.TagAPI.TagNamed;
import ru.bclib.blocks.BaseVineBlock;
import ru.bclib.blocks.SimpleLeavesBlock;
import ru.betterend.BetterEnd;
@ -35,17 +39,17 @@ public class EndTags {
// https://fabricmc.net/wiki/tutorial:tags
// Block Tags
public static final Tag.Named<Block> PEDESTALS = TagAPI.makeBlockTag(BetterEnd.MOD_ID, "pedestal");
public static final TagNamed<Block> PEDESTALS = TagAPI.makeBlockTag(BetterEnd.MOD_ID, "pedestal");
// Item Tags
public static final Tag.Named<Item> ALLOYING_IRON = TagAPI.makeItemTag(BetterEnd.MOD_ID, "alloying_iron");
public static final Tag.Named<Item> ALLOYING_GOLD = TagAPI.makeItemTag(BetterEnd.MOD_ID, "alloying_gold");
public static final Tag.Named<Item> ALLOYING_COPPER = TagAPI.makeItemTag(BetterEnd.MOD_ID, "alloying_copper");
public static final TagNamed<Item> ALLOYING_IRON = TagAPI.makeItemTag(BetterEnd.MOD_ID, "alloying_iron");
public static final TagNamed<Item> ALLOYING_GOLD = TagAPI.makeItemTag(BetterEnd.MOD_ID, "alloying_gold");
public static final TagNamed<Item> ALLOYING_COPPER = TagAPI.makeItemTag(BetterEnd.MOD_ID, "alloying_copper");
public static void register() {
TagAPI.addEndGround(EndBlocks.THALLASIUM.ore);
TagAPI.addEndGround(EndBlocks.ENDSTONE_DUST);
TagAPI.addEndGround(EndBlocks.AMBER_ORE);
addEndGround(EndBlocks.THALLASIUM.ore);
addEndGround(EndBlocks.ENDSTONE_DUST);
addEndGround(EndBlocks.AMBER_ORE);
EndBlocks.getModBlocks().forEach(block -> {
Properties properties = ((AbstractBlockAccessor) block).getSettings();
@ -53,32 +57,32 @@ public class EndTags {
final Item item = block.asItem();
if (material.equals(Material.STONE) || material.equals(Material.METAL) || material.equals(Material.HEAVY_METAL)) {
TagAPI.addTag(TagAPI.MINEABLE_PICKAXE, block);
TagAPI.addBlockTag(NamedMineableTags.PICKAXE, block);
}
else if (material.equals(Material.WOOD)) {
TagAPI.addTag(TagAPI.MINEABLE_AXE, block);
TagAPI.addBlockTag(NamedMineableTags.AXE, block);
}
else if (material.equals(Material.LEAVES) || material.equals(Material.PLANT) || material.equals(Material.WATER_PLANT) || material.equals(Material.SPONGE)) {
TagAPI.addTag(TagAPI.MINEABLE_HOE, block);
TagAPI.addBlockTag(NamedMineableTags.HOE, block);
}
else if (material.equals(Material.SAND)) {
TagAPI.addTag(TagAPI.MINEABLE_SHOVEL, block);
TagAPI.addBlockTag(NamedMineableTags.SHOVEL, block);
}
if (block instanceof EndTerrainBlock) {
TagAPI.addEndGround(block);
TagAPI.addTag(BlockTags.NYLIUM, block);
addEndGround(block);
TagAPI.addBlockTag(NamedBlockTags.NYLIUM, block);
BonemealAPI.addSpreadableBlock(block, Blocks.END_STONE);
}
else if (block instanceof LeavesBlock || block instanceof SimpleLeavesBlock) {
TagAPI.addTag(BlockTags.LEAVES, block);
TagAPI.addBlockTag(NamedBlockTags.LEAVES, block);
ComposterAPI.allowCompost(0.3f, item);
}
else if (block instanceof BaseVineBlock) {
TagAPI.addTag(BlockTags.CLIMBABLE, block);
TagAPI.addBlockTag(NamedBlockTags.CLIMBABLE, block);
}
else if (block instanceof PedestalBlock) {
TagAPI.addTag(PEDESTALS, block);
TagAPI.addBlockTag(PEDESTALS.getName(), block);
}
Material mat = block.defaultBlockState().getMaterial();
@ -86,8 +90,8 @@ public class EndTags {
ComposterAPI.allowCompost(0.1F, item);
}
});
TagAPI.addEndGround(EndBlocks.CAVE_MOSS);
TagAPI.addTag(BlockTags.NYLIUM, EndBlocks.CAVE_MOSS);
addEndGround(EndBlocks.CAVE_MOSS);
TagAPI.addBlockTag(NamedBlockTags.NYLIUM, EndBlocks.CAVE_MOSS);
BonemealAPI.addSpreadableBlock(EndBlocks.CAVE_MOSS, Blocks.END_STONE);
BonemealAPI.addSpreadableBlock(EndBlocks.MOSSY_OBSIDIAN, Blocks.OBSIDIAN);
BonemealAPI.addSpreadableBlock(EndBlocks.MOSSY_DRAGON_BONE, EndBlocks.DRAGON_BONE_BLOCK);
@ -105,30 +109,34 @@ public class EndTags {
ITEM_HAMMERS.add(item);
}
});
ToolManagerImpl.tag(TagAPI.ITEM_HAMMERS).register(new ModdedToolsVanillaBlocksToolHandler(ITEM_HAMMERS));
TagAPI.addTag(TagAPI.ITEM_HAMMERS, EndItems.AETERNIUM_HAMMER);
ToolManagerImpl.tag(CommonItemTags.HAMMERS).register(new ModdedToolsVanillaBlocksToolHandler(ITEM_HAMMERS));
TagAPI.addItemTag(NamedCommonItemTags.HAMMERS, EndItems.AETERNIUM_HAMMER);
TagAPI.addTag(
TagAPI.BLOCK_GEN_TERRAIN,
TagAPI.addBlockTag(
NamedCommonBlockTags.GEN_END_STONES,
EndBlocks.ENDER_ORE,
EndBlocks.BRIMSTONE
);
TagAPI.addTag(TagAPI.BLOCK_END_GROUND, EndBlocks.BRIMSTONE);
TagAPI.addTag(BlockTags.ANVIL, EndBlocks.AETERNIUM_ANVIL);
TagAPI.addTag(BlockTags.BEACON_BASE_BLOCKS, EndBlocks.AETERNIUM_BLOCK);
TagAPI.addTag(ItemTags.BEACON_PAYMENT_ITEMS, EndItems.AETERNIUM_INGOT);
TagAPI.addTag(
TagAPI.BLOCK_DRAGON_IMMUNE,
TagAPI.addBlockTag(NamedCommonBlockTags.END_STONES, EndBlocks.BRIMSTONE);
TagAPI.addBlockTag(NamedBlockTags.ANVIL, EndBlocks.AETERNIUM_ANVIL);
TagAPI.addBlockTag(NamedBlockTags.BEACON_BASE_BLOCKS, EndBlocks.AETERNIUM_BLOCK);
TagAPI.addItemTag(NamedItemTags.BEACON_PAYMENT_ITEMS, EndItems.AETERNIUM_INGOT);
TagAPI.addBlockTag(
NamedCommonBlockTags.DRAGON_IMMUNE,
EndBlocks.ENDER_ORE,
EndBlocks.ETERNAL_PEDESTAL,
EndBlocks.FLAVOLITE_RUNED_ETERNAL,
EndBlocks.FLAVOLITE_RUNED
);
TagAPI.addTag(TagAPI.ITEM_IRON_INGOTS, EndBlocks.THALLASIUM.ingot);
TagAPI.addItemTag(NamedCommonItemTags.IRON_INGOTS, EndBlocks.THALLASIUM.ingot);
TagAPI.addTag(ALLOYING_IRON, Items.IRON_ORE, Items.DEEPSLATE_IRON_ORE, Items.RAW_IRON);
TagAPI.addTag(ALLOYING_GOLD, Items.GOLD_ORE, Items.DEEPSLATE_GOLD_ORE, Items.RAW_GOLD);
TagAPI.addTag(ALLOYING_COPPER, Items.COPPER_ORE, Items.DEEPSLATE_COPPER_ORE, Items.RAW_COPPER);
TagAPI.addItemTag(ALLOYING_IRON.getName(), Items.IRON_ORE, Items.DEEPSLATE_IRON_ORE, Items.RAW_IRON);
TagAPI.addItemTag(ALLOYING_GOLD.getName(), Items.GOLD_ORE, Items.DEEPSLATE_GOLD_ORE, Items.RAW_GOLD);
TagAPI.addItemTag(ALLOYING_COPPER.getName(), Items.COPPER_ORE, Items.DEEPSLATE_COPPER_ORE, Items.RAW_COPPER);
}
public static void addEndGround(Block bl){
TagAPI.addBlockTag(NamedCommonBlockTags.END_STONES, bl);
}
// TODO make getter for biome top blocks
@ -138,8 +146,8 @@ public class EndTags {
SurfaceBuilderConfiguration config = biome.getGenerationSettings().getSurfaceBuilderConfig();
Block under = config.getUnderMaterial().getBlock();
Block surface = config.getTopMaterial().getBlock();
TagAPI.addTag(TagAPI.BLOCK_GEN_TERRAIN, under, surface);
TagAPI.addTag(TagAPI.BLOCK_END_GROUND, surface);
TagAPI.addTag(CommonBlockTags.GEN_END_STONES, under, surface);
TagAPI.addTag(CommonBlockTags.END_STONES, surface);
}
});
TagAPI.BLOCK_END_STONES.getValues().forEach(TagAPI::addEndGround);*/