Updated Tag API and tag constants
This commit is contained in:
parent
7ab5377a03
commit
db082ef1be
35 changed files with 308 additions and 385 deletions
|
@ -6,9 +6,9 @@ import net.fabricmc.api.Environment;
|
|||
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.tags.Tag;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import ru.bclib.api.TagAPI.TagLocation;
|
||||
import ru.bclib.api.biomes.BiomeAPI;
|
||||
import ru.bclib.blocks.BaseBarrelBlock;
|
||||
import ru.bclib.blocks.BaseChestBlock;
|
||||
|
@ -28,8 +28,8 @@ import java.util.function.Consumer;
|
|||
|
||||
public class PostInitAPI {
|
||||
private static List<Consumer<Boolean>> postInitFunctions = Lists.newArrayList();
|
||||
private static List<Tag.Named<Block>> blockTags = Lists.newArrayList();
|
||||
private static List<Tag.Named<Item>> itemTags = Lists.newArrayList();
|
||||
private static List<TagLocation<Block>> blockTags = Lists.newArrayList();
|
||||
private static List<TagLocation<Item>> itemTags = Lists.newArrayList();
|
||||
|
||||
/**
|
||||
* Register a new function which will be called after all mods are initiated. Will be called on both client and server.
|
||||
|
@ -94,8 +94,8 @@ public class PostInitAPI {
|
|||
}
|
||||
if (block instanceof TagProvider) {
|
||||
TagProvider.class.cast(block).addTags(blockTags, itemTags);
|
||||
blockTags.forEach(tag -> TagAPI.addTag(tag, block));
|
||||
itemTags.forEach(tag -> TagAPI.addTag(tag, block));
|
||||
blockTags.forEach(tag -> TagAPI.addBlockTag(tag, block));
|
||||
itemTags.forEach(tag -> TagAPI.addItemTag(tag, block));
|
||||
blockTags.clear();
|
||||
itemTags.clear();
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ package ru.bclib.api;
|
|||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Sets;
|
||||
import net.fabricmc.fabric.api.tag.TagFactory;
|
||||
import net.fabricmc.fabric.api.tag.TagRegistry;
|
||||
import net.fabricmc.fabric.impl.tag.extension.TagDelegate;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
@ -18,7 +17,6 @@ import net.minecraft.world.item.Items;
|
|||
import net.minecraft.world.level.ItemLike;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import ru.bclib.BCLib;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -30,61 +28,143 @@ public class TagAPI {
|
|||
private static final Map<ResourceLocation, Set<ResourceLocation>> TAGS_BLOCK = Maps.newConcurrentMap();
|
||||
private static final Map<ResourceLocation, Set<ResourceLocation>> TAGS_ITEM = Maps.newConcurrentMap();
|
||||
|
||||
// Vanilla Block Tags
|
||||
public static final TagLocation<Block> NAMED_SOUL_SPEED_BLOCKS = new TagLocation<>("soul_speed_blocks");
|
||||
public static final TagLocation<Block> NAMED_SOUL_FIRE_BASE_BLOCKS = new TagLocation<>("soul_fire_base_blocks");
|
||||
public static final TagLocation<Block> NAMED_CLIMBABLE = new TagLocation<>("climbable");
|
||||
public static final TagLocation<Block> NAMED_NYLIUM = new TagLocation<>("nylium");
|
||||
public static final TagLocation<Block> NAMED_ANVIL = new TagLocation<>("anvil");
|
||||
public static final TagLocation<Block> NAMED_WALLS = new TagLocation<>("walls");
|
||||
public static final TagLocation<Block> LEAVES = new TagLocation<>("leaves");
|
||||
// LOCATIONS //
|
||||
|
||||
// Mineable Block Tags
|
||||
public static final TagLocation<Block> NAMED_MINEABLE_AXE = new TagLocation<>("mineable/axe");
|
||||
public static final TagLocation<Block> NAMED_MINEABLE_PICKAXE = new TagLocation<>("mineable/pickaxe");
|
||||
public static final TagLocation<Block> NAMED_MINEABLE_SHOVEL = new TagLocation<>("mineable/shovel");
|
||||
public static final TagLocation<Block> NAMED_MINEABLE_HOE = new TagLocation<>("mineable/hoe");
|
||||
public static final TagLocation<Block> NAMED_MINEABLE_PICKAXE = new TagLocation<>("mineable/pickaxe");
|
||||
public static final TagLocation<Block> NAMED_MINEABLE_SHEARS = new TagLocation<>("fabric", "mineable/shears");
|
||||
public static final TagLocation<Block> NAMED_MINEABLE_SHOVEL = new TagLocation<>("mineable/shovel");
|
||||
public static final TagLocation<Block> NAMED_MINEABLE_SWORD = new TagLocation<>("fabric", "mineable/sword");
|
||||
|
||||
// Block Tags
|
||||
public static final TagNamed<Block> BLOCK_BOOKSHELVES = makeCommonBlockTag("bookshelves");
|
||||
public static final TagNamed<Block> BLOCK_GEN_TERRAIN = makeBlockTag(BCLib.MOD_ID, "gen_terrain");
|
||||
public static final TagNamed<Block> BLOCK_NETHER_GROUND = makeBlockTag(BCLib.MOD_ID, "nether_ground");
|
||||
public static final TagNamed<Block> BLOCK_END_GROUND = makeBlockTag(BCLib.MOD_ID, "end_ground");
|
||||
// Fabric Tools
|
||||
public static final TagLocation<Item> NAMED_FABRIC_AXES = new TagLocation<>("fabric", "axes");
|
||||
public static final TagLocation<Item> NAMED_FABRIC_HOES = new TagLocation<>("fabric", "hoes");
|
||||
public static final TagLocation<Item> NAMED_FABRIC_PICKAXES = new TagLocation<>("fabric", "pickaxes");
|
||||
public static final TagLocation<Item> NAMED_FABRIC_SHEARS = new TagLocation<>("fabric", "shears");
|
||||
public static final TagLocation<Item> NAMED_FABRIC_SHOVELS = new TagLocation<>("fabric", "shovels");
|
||||
public static final TagLocation<Item> NAMED_FABRIC_SWORDS = new TagLocation<>("fabric", "swords");
|
||||
|
||||
public static final TagNamed<Block> BLOCK_CHEST = makeCommonBlockTag("chest");
|
||||
public static final TagNamed<Block> BLOCK_WOODEN_CHEST = makeCommonBlockTag("wooden_chests");
|
||||
public static final TagNamed<Block> BLOCK_BARREL = makeCommonBlockTag("barrel");
|
||||
public static final TagNamed<Block> BLOCK_WOODEN_BARREL = makeCommonBlockTag("wooden_barrels");
|
||||
public static final TagNamed<Block> BLOCK_END_STONES = makeCommonBlockTag("end_stones");
|
||||
public static final TagNamed<Block> BLOCK_NETHER_STONES = makeCommonBlockTag("nether_stones");
|
||||
public static final TagNamed<Block> BLOCK_NETHER_PORTAL_FRAME = makeCommonBlockTag("nether_pframe");
|
||||
public static final TagNamed<Block> BLOCK_WORKBENCHES = makeCommonBlockTag("workbench");
|
||||
public static final TagNamed<Block> BLOCK_SAPLINGS = makeCommonBlockTag("saplings");
|
||||
public static final TagNamed<Block> BLOCK_LEAVES = makeCommonBlockTag("leaves");
|
||||
public static final TagNamed<Block> BLOCK_IMMOBILE = makeCommonBlockTag("immobile");
|
||||
public static final TagNamed<Block> BLOCK_SOUL_GROUND = makeCommonBlockTag("soul_ground");
|
||||
public static final TagNamed<Block> BLOCK_NETHERRACK = makeCommonBlockTag("netherrack");
|
||||
public static final TagNamed<Block> BLOCK_NETHER_MYCELIUM = makeCommonBlockTag("nether_mycelium");
|
||||
// Vanilla Block Tags
|
||||
public static final TagLocation<Block> NAMED_BLOCK_ANVIL = new TagLocation<>("anvil");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_BUTTONS = new TagLocation<>("buttons");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_CLIMBABLE = new TagLocation<>("climbable");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_DOORS = new TagLocation<>("doors");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_FENCES = new TagLocation<>("fences");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_FENCE_GATES = new TagLocation<>("fence_gates");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_LEAVES = new TagLocation<>("leaves");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_LOGS = new TagLocation<>("logs");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_LOGS_THAT_BURN = new TagLocation<>("logs_that_burn");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_NYLIUM = new TagLocation<>("nylium");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_PLANKS = new TagLocation<>("planks");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_PRESSURE_PLATES = new TagLocation<>("pressure_plates");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_SAPLINGS = new TagLocation<>("saplings");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_SIGNS = new TagLocation<>("signs");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_SLABS = new TagLocation<>("slabs");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_STAIRS = new TagLocation<>("stairs");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_STONE_PRESSURE_PLATES = new TagLocation<>("stone_pressure_plates");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_TRAPDOORS = new TagLocation<>("trapdoors");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_WALLS = new TagLocation<>("walls");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_WOODEN_BUTTONS = new TagLocation<>("wooden_buttons");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_WOODEN_DOORS = new TagLocation<>("wooden_doors");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_WOODEN_FENCES = new TagLocation<>("wooden_fences");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_WOODEN_PRESSURE_PLATES = new TagLocation<>("wooden_pressure_plates");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_WOODEN_SLABS = new TagLocation<>("wooden_slabs");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_WOODEN_STAIRS = new TagLocation<>("wooden_stairs");
|
||||
public static final TagLocation<Block> NAMED_BLOCK_WOODEN_TRAPDOORS = new TagLocation<>("wooden_trapdoors");
|
||||
public static final TagLocation<Block> NAMED_SOUL_FIRE_BASE_BLOCKS = new TagLocation<>("soul_fire_base_blocks");
|
||||
public static final TagLocation<Block> NAMED_SOUL_SPEED_BLOCKS = new TagLocation<>("soul_speed_blocks");
|
||||
|
||||
public static final TagNamed<Block> BLOCK_DRAGON_IMMUNE = getMCBlockTag("dragon_immune");
|
||||
// Vanilla Item Tags
|
||||
public static final TagLocation<Item> NAMED_ITEM_BUTTONS = new TagLocation<>("buttons");
|
||||
public static final TagLocation<Item> NAMED_ITEM_DOORS = new TagLocation<>("doors");
|
||||
public static final TagLocation<Item> NAMED_ITEM_FENCES = new TagLocation<>("fences");
|
||||
public static final TagLocation<Item> NAMED_ITEM_FENCE_GATES = new TagLocation<>("fence_gates");
|
||||
public static final TagLocation<Item> NAMED_ITEM_LEAVES = new TagLocation<>("leaves");
|
||||
public static final TagLocation<Item> NAMED_ITEM_LOGS = new TagLocation<>("logs");
|
||||
public static final TagLocation<Item> NAMED_ITEM_LOGS_THAT_BURN = new TagLocation<>("logs_that_burn");
|
||||
public static final TagLocation<Item> NAMED_ITEM_PLANKS = new TagLocation<>("planks");
|
||||
public static final TagLocation<Item> NAMED_ITEM_PRESSURE_PLATES = new TagLocation<>("pressure_plates");
|
||||
public static final TagLocation<Item> NAMED_ITEM_SAPLINGS = new TagLocation<>("saplings");
|
||||
public static final TagLocation<Item> NAMED_ITEM_SHEARS = new TagLocation<>("shears");
|
||||
public static final TagLocation<Item> NAMED_ITEM_SIGNS = new TagLocation<>("signs");
|
||||
public static final TagLocation<Item> NAMED_ITEM_SLABS = new TagLocation<>("slabs");
|
||||
public static final TagLocation<Item> NAMED_ITEM_STAIRS = new TagLocation<>("stairs");
|
||||
public static final TagLocation<Item> NAMED_ITEM_STONE_PRESSURE_PLATES = new TagLocation<>("stone_pressure_plates");
|
||||
public static final TagLocation<Item> NAMED_ITEM_TRAPDOORS = new TagLocation<>("trapdoors");
|
||||
public static final TagLocation<Item> NAMED_ITEM_WOODEN_BUTTONS = new TagLocation<>("wooden_buttons");
|
||||
public static final TagLocation<Item> NAMED_ITEM_WOODEN_DOORS = new TagLocation<>("wooden_doors");
|
||||
public static final TagLocation<Item> NAMED_ITEM_WOODEN_FENCES = new TagLocation<>("wooden_fences");
|
||||
public static final TagLocation<Item> NAMED_ITEM_WOODEN_PRESSURE_PLATES = new TagLocation<>("wooden_pressure_plates");
|
||||
public static final TagLocation<Item> NAMED_ITEM_WOODEN_SLABS = new TagLocation<>("wooden_slabs");
|
||||
public static final TagLocation<Item> NAMED_ITEM_WOODEN_STAIRS = new TagLocation<>("wooden_stairs");
|
||||
public static final TagLocation<Item> NAMED_ITEM_WOODEN_TRAPDOORS = new TagLocation<>("wooden_trapdoors");
|
||||
|
||||
public static final TagNamed<Block> MINEABLE_AXE = getMCBlockTag("mineable/axe");
|
||||
public static final TagNamed<Block> MINEABLE_PICKAXE = getMCBlockTag("mineable/pickaxe");
|
||||
public static final TagNamed<Block> MINEABLE_SHOVEL = getMCBlockTag("mineable/shovel");
|
||||
public static final TagNamed<Block> MINEABLE_HOE = getMCBlockTag("mineable/hoe");
|
||||
// Common Block Tags
|
||||
public static final TagLocation<Block> NAMED_BLOCK_DRAGON_IMMUNE = new TagLocation<>("c", "dragon_immune");
|
||||
public static final TagLocation<Block> NAMED_COMMON_BLOCK_BARREL = new TagLocation<>("c", "barrel");
|
||||
public static final TagLocation<Block> NAMED_COMMON_BLOCK_BOOKSHELVES = new TagLocation<>("c", "bookshelves");
|
||||
public static final TagLocation<Block> NAMED_COMMON_BLOCK_CHEST = new TagLocation<>("c", "chest");
|
||||
public static final TagLocation<Block> NAMED_COMMON_BLOCK_END_STONES = new TagLocation<>("c", "end_stones");
|
||||
public static final TagLocation<Block> NAMED_COMMON_BLOCK_IMMOBILE = new TagLocation<>("c", "immobile");
|
||||
public static final TagLocation<Block> NAMED_COMMON_BLOCK_LEAVES = new TagLocation<>("c", "leaves");
|
||||
public static final TagLocation<Block> NAMED_COMMON_BLOCK_NETHERRACK = new TagLocation<>("c", "netherrack");
|
||||
public static final TagLocation<Block> NAMED_COMMON_BLOCK_NETHER_MYCELIUM = new TagLocation<>("c", "nether_mycelium");
|
||||
public static final TagLocation<Block> NAMED_COMMON_BLOCK_NETHER_PORTAL_FRAME = new TagLocation<>("c", "nether_pframe");
|
||||
public static final TagLocation<Block> NAMED_COMMON_BLOCK_NETHER_STONES = new TagLocation<>("c", "nether_stones");
|
||||
public static final TagLocation<Block> NAMED_COMMON_BLOCK_SAPLINGS = new TagLocation<>("c", "saplings");
|
||||
public static final TagLocation<Block> NAMED_COMMON_BLOCK_SOUL_GROUND = new TagLocation<>("c", "soul_ground");
|
||||
public static final TagLocation<Block> NAMED_COMMON_BLOCK_WOODEN_BARREL = new TagLocation<>("c", "wooden_barrels");
|
||||
public static final TagLocation<Block> NAMED_COMMON_BLOCK_WOODEN_CHEST = new TagLocation<>("c", "wooden_chests");
|
||||
public static final TagLocation<Block> NAMED_COMMON_BLOCK_WORKBENCHES = new TagLocation<>("c", "workbench");
|
||||
|
||||
// Item Tags
|
||||
public static final TagNamed<Item> ITEM_CHEST = makeCommonItemTag("chest");
|
||||
public static final TagNamed<Item> ITEM_WOODEN_CHEST = makeCommonItemTag("wooden_chests");
|
||||
public static final TagNamed<Item> ITEM_BARREL = makeCommonItemTag("barrel");
|
||||
public static final TagNamed<Item> ITEM_WOODEN_BARREL = makeCommonItemTag("wooden_barrels");
|
||||
public static final TagNamed<Item> ITEM_IRON_INGOTS = makeCommonItemTag("iron_ingots");
|
||||
public static final TagNamed<Item> ITEM_FURNACES = makeCommonItemTag("furnaces");
|
||||
public static final TagNamed<Item> ITEM_WORKBENCHES = makeCommonItemTag("workbench");
|
||||
public final static TagNamed<Item> ITEM_HAMMERS = makeCommonItemTag("hammers");
|
||||
public static final TagNamed<Item> ITEM_SAPLINGS = makeCommonItemTag("saplings");
|
||||
public static final TagNamed<Item> ITEM_LEAVES = makeCommonItemTag("leaves");
|
||||
public static final TagNamed<Item> ITEM_SHEARS = getMCItemTag("shears");
|
||||
public static final TagNamed<Item> ITEM_COMMON_SHEARS = makeCommonItemTag("shears");
|
||||
public static final TagNamed<Item> ITEM_SOUL_GROUND = makeCommonItemTag("soul_ground");
|
||||
// Common Item Tags
|
||||
public static final TagLocation<Item> NAMED_COMMON_ITEM_BARREL = new TagLocation<>("c", "barrel");
|
||||
public static final TagLocation<Item> NAMED_COMMON_ITEM_CHEST = new TagLocation<>("c", "chest");
|
||||
public static final TagLocation<Item> NAMED_COMMON_ITEM_FURNACES = new TagLocation<>("c", "furnaces");
|
||||
public static final TagLocation<Item> NAMED_COMMON_ITEM_HAMMERS = new TagLocation<>("c", "hammers");
|
||||
public static final TagLocation<Item> NAMED_COMMON_ITEM_IRON_INGOTS = new TagLocation<>("c", "iron_ingots");
|
||||
public static final TagLocation<Item> NAMED_COMMON_ITEM_LEAVES = new TagLocation<>("c", "leaves");
|
||||
public static final TagLocation<Item> NAMED_COMMON_ITEM_SAPLINGS = new TagLocation<>("c", "saplings");
|
||||
public static final TagLocation<Item> NAMED_COMMON_ITEM_SHEARS = new TagLocation<>("c", "shears");
|
||||
public static final TagLocation<Item> NAMED_COMMON_ITEM_SOUL_GROUND = new TagLocation<>("c", "soul_ground");
|
||||
public static final TagLocation<Item> NAMED_COMMON_ITEM_WOODEN_BARREL = new TagLocation<>("c", "wooden_barrels");
|
||||
public static final TagLocation<Item> NAMED_COMMON_ITEM_WOODEN_CHEST = new TagLocation<>("c", "wooden_chests");
|
||||
public static final TagLocation<Item> NAMED_COMMON_ITEM_WORKBENCHES = new TagLocation<>("c", "workbench");
|
||||
|
||||
// TAGS //
|
||||
|
||||
// Common Block Tags
|
||||
public static final TagNamed<Block> COMMON_BLOCK_BARREL = makeCommonBlockTag("barrel");
|
||||
public static final TagNamed<Block> COMMON_BLOCK_BOOKSHELVES = makeCommonBlockTag("bookshelves");
|
||||
public static final TagNamed<Block> COMMON_BLOCK_CHEST = makeCommonBlockTag("chest");
|
||||
public static final TagNamed<Block> COMMON_BLOCK_END_STONES = makeCommonBlockTag("end_stones");
|
||||
public static final TagNamed<Block> COMMON_BLOCK_IMMOBILE = makeCommonBlockTag("immobile");
|
||||
public static final TagNamed<Block> COMMON_BLOCK_LEAVES = makeCommonBlockTag("leaves");
|
||||
public static final TagNamed<Block> COMMON_BLOCK_NETHERRACK = makeCommonBlockTag("netherrack");
|
||||
public static final TagNamed<Block> COMMON_BLOCK_NETHER_MYCELIUM = makeCommonBlockTag("nether_mycelium");
|
||||
public static final TagNamed<Block> COMMON_BLOCK_NETHER_PORTAL_FRAME = makeCommonBlockTag("nether_pframe");
|
||||
public static final TagNamed<Block> COMMON_BLOCK_NETHER_STONES = makeCommonBlockTag("nether_stones");
|
||||
public static final TagNamed<Block> COMMON_BLOCK_SAPLINGS = makeCommonBlockTag("saplings");
|
||||
public static final TagNamed<Block> COMMON_BLOCK_SOUL_GROUND = makeCommonBlockTag("soul_ground");
|
||||
public static final TagNamed<Block> COMMON_BLOCK_WOODEN_BARREL = makeCommonBlockTag("wooden_barrels");
|
||||
public static final TagNamed<Block> COMMON_BLOCK_WOODEN_CHEST = makeCommonBlockTag("wooden_chests");
|
||||
public static final TagNamed<Block> COMMON_BLOCK_WORKBENCHES = makeCommonBlockTag("workbench");
|
||||
|
||||
// Common Item Tags
|
||||
public final static TagNamed<Item> COMMON_ITEM_HAMMERS = makeCommonItemTag("hammers");
|
||||
public static final TagNamed<Item> COMMON_ITEM_BARREL = makeCommonItemTag("barrel");
|
||||
public static final TagNamed<Item> COMMON_ITEM_CHEST = makeCommonItemTag("chest");
|
||||
public static final TagNamed<Item> COMMON_ITEM_SHEARS = makeCommonItemTag("shears");
|
||||
public static final TagNamed<Item> COMMON_ITEM_FURNACES = makeCommonItemTag("furnaces");
|
||||
public static final TagNamed<Item> COMMON_ITEM_IRON_INGOTS = makeCommonItemTag("iron_ingots");
|
||||
public static final TagNamed<Item> COMMON_ITEM_LEAVES = makeCommonItemTag("leaves");
|
||||
public static final TagNamed<Item> COMMON_ITEM_SAPLINGS = makeCommonItemTag("saplings");
|
||||
public static final TagNamed<Item> COMMON_ITEM_SOUL_GROUND = makeCommonItemTag("soul_ground");
|
||||
public static final TagNamed<Item> COMMON_ITEM_WOODEN_BARREL = makeCommonItemTag("wooden_barrels");
|
||||
public static final TagNamed<Item> COMMON_ITEM_WOODEN_CHEST = makeCommonItemTag("wooden_chests");
|
||||
public static final TagNamed<Item> COMMON_ITEM_WORKBENCHES = makeCommonItemTag("workbench");
|
||||
|
||||
/**
|
||||
* Get or create {@link Tag.Named}.
|
||||
|
@ -148,36 +228,22 @@ public class TagAPI {
|
|||
* @param name - {@link String} tag name.
|
||||
* @return {@link Block} {@link Tag.Named}.
|
||||
*/
|
||||
@Deprecated(forRemoval = true)
|
||||
public static TagNamed<Block> getMCBlockTag(String name) {
|
||||
ResourceLocation id = new ResourceLocation(name);
|
||||
Tag<Block> tag = BlockTags.getAllTags().getTag(id);
|
||||
return CommonDelegate.proxy(tag == null ? (Named<Block>) TagFactory.BLOCK.create(id): (Named<Block>) tag);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get or create Minecraft {@link Item} {@link Tag.Named}.
|
||||
*
|
||||
* @param name - {@link String} tag name.
|
||||
* @return {@link Item} {@link Tag.Named}.
|
||||
*/
|
||||
public static TagNamed<Item> getMCItemTag(String name) {
|
||||
ResourceLocation id = new ResourceLocation(name);
|
||||
Tag<Item> tag = ItemTags.getAllTags().getTag(id);
|
||||
return CommonDelegate.proxy(tag == null ? (Named<Item>) TagRegistry.item(id) : (Named<Item>) tag);
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes basic tags. Should be called only in BCLib main class.
|
||||
*/
|
||||
public static void init() {
|
||||
addBlockTag(BLOCK_BOOKSHELVES.getName(), Blocks.BOOKSHELF);
|
||||
addBlockTag(BLOCK_GEN_TERRAIN.getName(), Blocks.END_STONE, Blocks.NETHERRACK, Blocks.SOUL_SAND, Blocks.SOUL_SOIL);
|
||||
addBlockTag(BLOCK_NETHER_GROUND.getName(), Blocks.NETHERRACK, Blocks.SOUL_SAND, Blocks.SOUL_SOIL);
|
||||
addBlockTag(BLOCK_END_GROUND.getName(), Blocks.END_STONE);
|
||||
addBlockTag(BLOCK_CHEST.getName(), Blocks.CHEST);
|
||||
addItemTag(ITEM_CHEST.getName(), Items.CHEST);
|
||||
addItemTag(ITEM_IRON_INGOTS.getName(), Items.IRON_INGOT);
|
||||
addItemTag(ITEM_FURNACES.getName(), Blocks.FURNACE);
|
||||
addBlockTag(COMMON_BLOCK_BOOKSHELVES.getName(), Blocks.BOOKSHELF);
|
||||
addBlockTag(COMMON_BLOCK_CHEST.getName(), Blocks.CHEST);
|
||||
addItemTag(COMMON_ITEM_CHEST.getName(), Items.CHEST);
|
||||
addItemTag(COMMON_ITEM_IRON_INGOTS.getName(), Items.IRON_INGOT);
|
||||
addItemTag(COMMON_ITEM_FURNACES.getName(), Blocks.FURNACE);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -288,109 +354,6 @@ public class TagAPI {
|
|||
return builder;
|
||||
}
|
||||
|
||||
// DEPRECATED SECTION //
|
||||
// WILL BE REMOVED IN 1.3.0 //
|
||||
|
||||
/**
|
||||
* Deprecated due to low compatibility. Use addTag({@link ResourceLocation}, {@link ItemLike}... items) instead.
|
||||
*
|
||||
* Adds one Tag to multiple Items.
|
||||
* <p>
|
||||
* Example:
|
||||
* <pre>{@code Tag.Named<Item> METALS = makeBlockTag("mymod", "metals");
|
||||
* addTag(METALS, Items.IRON_INGOT, Items.GOLD_INGOT, Items.COPPER_INGOT);}</pre>
|
||||
* <p>
|
||||
* The call will reserve the Tag. The Tag is added to the items once
|
||||
* {@link #apply(String, Map)} was executed.
|
||||
*
|
||||
* @param tag The new Tag
|
||||
* @param items One or more item that should receive the Tag.
|
||||
*/
|
||||
@Deprecated
|
||||
public static void addTag(Tag.Named<Item> tag, ItemLike... items) {
|
||||
addItemTagUntyped(tag.getName(), items);
|
||||
}
|
||||
|
||||
/**
|
||||
* Deprecated, use addTag({@link ResourceLocation}, {@link ItemLike}... items) instead.
|
||||
*
|
||||
* Adds multiple Tags to one Item.
|
||||
* <p>
|
||||
* The call will reserve the Tags. The Tags are added to the Item once
|
||||
* * {@link #apply(String, Map)} was executed.
|
||||
*
|
||||
* @param item The Item that will receive all Tags
|
||||
* @param tags One or more Tags
|
||||
*/
|
||||
@Deprecated
|
||||
@SafeVarargs
|
||||
public static void addTags(ItemLike item, Tag.Named<Item>... tags) {
|
||||
for (Tag.Named<Item> tag : tags) {
|
||||
addItemTagUntyped(tag.getName(), item);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deprecated, use addTag({@link ResourceLocation}, {@link Block}... blocks) instead.
|
||||
*
|
||||
* Adds multiple Tags to one Block.
|
||||
* <p>
|
||||
* The call will reserve the Tags. The Tags are added to the Block once
|
||||
* * {@link #apply(String, Map)} was executed.
|
||||
*
|
||||
* @param block The Block that will receive all Tags
|
||||
* @param tags One or more Tags
|
||||
*/
|
||||
@Deprecated
|
||||
@SafeVarargs
|
||||
public static void addTags(Block block, Tag.Named<Block>... tags) {
|
||||
for (Tag.Named<Block> tag : tags) {
|
||||
addTag(tag, block);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deprecated due to low compatibility. Use addTag({@link ResourceLocation}, {@link Block}... blocks) instead.
|
||||
*
|
||||
* Adds one Tag to multiple Blocks.
|
||||
* <p>
|
||||
* Example:
|
||||
* <pre>{@code Tag.Named<Block> DIMENSION_STONE = makeBlockTag("mymod", "dim_stone");
|
||||
* addTag(DIMENSION_STONE, Blocks.END_STONE, Blocks.NETHERRACK);}</pre>
|
||||
* <p>
|
||||
* The call will reserve the Tag. The Tag is added to the blocks once
|
||||
* {@link #apply(String, Map)} was executed.
|
||||
*
|
||||
* @param tag The new Tag
|
||||
* @param blocks One or more blocks that should receive the Tag.
|
||||
*/
|
||||
@Deprecated
|
||||
public static void addTag(Tag.Named<Block> tag, Block... blocks) {
|
||||
addBlockTagUntyped(tag.getName(), blocks);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds {@link Block} to NETHER_GROUND and GEN_TERRAIN tags to process it properly in terrain generators and block logic.
|
||||
*
|
||||
* @param block - {@link Block}.
|
||||
*/
|
||||
@Deprecated
|
||||
public static void addNetherGround(Block block) {
|
||||
addTag(BLOCK_NETHER_GROUND, block);
|
||||
addTag(BLOCK_GEN_TERRAIN, block);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds {@link Block} to END_GROUND and GEN_TERRAIN tags to process it properly in terrain generators and block logic.
|
||||
*
|
||||
* @param block - {@link Block}.
|
||||
*/
|
||||
@Deprecated
|
||||
public static void addEndGround(Block block) {
|
||||
addTag(BLOCK_GEN_TERRAIN, block);
|
||||
addTag(BLOCK_END_GROUND, block);
|
||||
}
|
||||
|
||||
/**
|
||||
* Extends {@link Tag.Named} to return a type safe {@link TagLocation}. This Type was introduced to
|
||||
* allow type-safe definition of Tags using their ResourceLocation.
|
||||
|
@ -413,6 +376,10 @@ public class TagAPI {
|
|||
public TagLocation(String string, String string2) {
|
||||
super(string, string2);
|
||||
}
|
||||
|
||||
public TagLocation(ResourceLocation location) {
|
||||
super(location.getNamespace(), location.getPath());
|
||||
}
|
||||
}
|
||||
|
||||
private abstract static class CommonDelegate<T> implements TagNamed<T> {
|
||||
|
|
|
@ -37,7 +37,6 @@ import ru.bclib.util.ColorUtil;
|
|||
import ru.bclib.util.TriFunction;
|
||||
import ru.bclib.world.biomes.BCLBiome;
|
||||
import ru.bclib.world.biomes.BCLBiomeSettings;
|
||||
import ru.bclib.world.biomes.BCLBiomeSettings.Builder;
|
||||
import ru.bclib.world.features.BCLFeature;
|
||||
import ru.bclib.world.structures.BCLStructureFeature;
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@ import com.google.common.collect.Lists;
|
|||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Multimap;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.mojang.serialization.Codec;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.fabricmc.fabric.api.event.registry.DynamicRegistrySetupCallback;
|
||||
|
@ -56,7 +55,6 @@ import net.minecraft.world.level.storage.WorldData;
|
|||
import org.apache.commons.lang3.mutable.MutableInt;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import ru.bclib.BCLib;
|
||||
import ru.bclib.config.Configs;
|
||||
import ru.bclib.entity.BCLEntityWrapper;
|
||||
import ru.bclib.interfaces.BiomeSourceAccessor;
|
||||
import ru.bclib.interfaces.SurfaceMaterialProvider;
|
||||
|
@ -69,7 +67,6 @@ import ru.bclib.mixin.common.StructureSettingsAccessor;
|
|||
import ru.bclib.util.CollectionsUtil;
|
||||
import ru.bclib.util.MHelper;
|
||||
import ru.bclib.world.biomes.BCLBiome;
|
||||
import ru.bclib.world.biomes.BCLBiomeSettings;
|
||||
import ru.bclib.world.biomes.FabricBiomesData;
|
||||
import ru.bclib.world.biomes.VanillaBiomeSettings;
|
||||
import ru.bclib.world.features.BCLFeature;
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package ru.bclib.api.surface.rules;
|
||||
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.world.level.levelgen.SurfaceRules;
|
||||
import ru.bclib.mixin.common.SurfaceRulesContextAccessor;
|
||||
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
package ru.bclib.api.surface.rules;
|
||||
|
||||
import com.mojang.serialization.Codec;
|
||||
import net.minecraft.world.level.levelgen.SurfaceRules;
|
||||
import net.minecraft.world.level.levelgen.SurfaceRules.Condition;
|
||||
import net.minecraft.world.level.levelgen.SurfaceRules.ConditionSource;
|
||||
import net.minecraft.world.level.levelgen.SurfaceRules.Context;
|
||||
import net.minecraft.world.level.levelgen.SurfaceRules.LazyXZCondition;
|
||||
import ru.bclib.mixin.common.SurfaceRulesContextAccessor;
|
||||
|
|
|
@ -1,24 +1,17 @@
|
|||
package ru.bclib.api.surface.rules;
|
||||
|
||||
import com.mojang.datafixers.kinds.Applicative;
|
||||
import com.mojang.datafixers.kinds.K1;
|
||||
import com.mojang.serialization.Codec;
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.levelgen.SurfaceRules;
|
||||
import net.minecraft.world.level.levelgen.SurfaceRules.Context;
|
||||
import net.minecraft.world.level.levelgen.SurfaceRules.RuleSource;
|
||||
import net.minecraft.world.level.levelgen.SurfaceRules.SurfaceRule;
|
||||
import net.minecraft.world.level.levelgen.VerticalAnchor;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import ru.bclib.interfaces.NumericProvider;
|
||||
import ru.bclib.mixin.common.SurfaceRulesContextAccessor;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
//
|
||||
public record SwitchRuleSource(NumericProvider selector, List<RuleSource> collection) implements RuleSource {
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package ru.bclib.api.surface.rules;
|
||||
|
||||
import com.mojang.serialization.Codec;
|
||||
import net.minecraft.world.level.levelgen.SurfaceRules;
|
||||
import net.minecraft.world.level.levelgen.SurfaceRules.Condition;
|
||||
import net.minecraft.world.level.levelgen.SurfaceRules.ConditionSource;
|
||||
import net.minecraft.world.level.levelgen.SurfaceRules.Context;
|
||||
|
|
|
@ -8,9 +8,6 @@ import net.minecraft.client.resources.model.BlockModelRotation;
|
|||
import net.minecraft.client.resources.model.UnbakedModel;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.tags.Tag.Named;
|
||||
import net.minecraft.util.StringRepresentable;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
@ -22,6 +19,8 @@ import net.minecraft.world.level.block.state.properties.DoorHingeSide;
|
|||
import net.minecraft.world.level.block.state.properties.DoubleBlockHalf;
|
||||
import net.minecraft.world.level.storage.loot.LootContext;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import ru.bclib.api.TagAPI;
|
||||
import ru.bclib.api.TagAPI.TagLocation;
|
||||
import ru.bclib.client.models.BasePatterns;
|
||||
import ru.bclib.client.models.ModelsHelper;
|
||||
import ru.bclib.client.models.PatternsHelper;
|
||||
|
@ -151,9 +150,9 @@ public class BaseDoorBlock extends DoorBlock implements RenderLayerProvider, Blo
|
|||
}
|
||||
|
||||
@Override
|
||||
public void addTags(List<Named<Block>> blockTags, List<Named<Item>> itemTags) {
|
||||
blockTags.add(BlockTags.DOORS);
|
||||
itemTags.add(ItemTags.DOORS);
|
||||
public void addTags(List<TagLocation<Block>> blockTags, List<TagLocation<Item>> itemTags) {
|
||||
blockTags.add(TagAPI.NAMED_BLOCK_DOORS);
|
||||
itemTags.add(TagAPI.NAMED_ITEM_DOORS);
|
||||
}
|
||||
|
||||
protected enum DoorType implements StringRepresentable {
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
package ru.bclib.blocks;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import net.fabricmc.fabric.api.mininglevel.v1.FabricMineableTags;
|
||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||
import net.minecraft.client.renderer.block.model.BlockModel;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.tags.Tag.Named;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.enchantment.EnchantmentHelper;
|
||||
|
@ -19,6 +16,7 @@ import net.minecraft.world.level.material.MaterialColor;
|
|||
import net.minecraft.world.level.storage.loot.LootContext;
|
||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParams;
|
||||
import ru.bclib.api.TagAPI;
|
||||
import ru.bclib.api.TagAPI.TagLocation;
|
||||
import ru.bclib.client.render.BCLRenderLayer;
|
||||
import ru.bclib.interfaces.BlockModelProvider;
|
||||
import ru.bclib.interfaces.RenderLayerProvider;
|
||||
|
@ -94,9 +92,10 @@ public class BaseLeavesBlock extends LeavesBlock implements BlockModelProvider,
|
|||
}
|
||||
|
||||
@Override
|
||||
public void addTags(List<Named<Block>> blockTags, List<Named<Item>> itemTags) {
|
||||
blockTags.add(FabricMineableTags.SHEARS_MINEABLE);
|
||||
//blockTags.add(TagAPI.MINEABLE_HOE);
|
||||
blockTags.add(BlockTags.LEAVES);
|
||||
public void addTags(List<TagLocation<Block>> blockTags, List<TagLocation<Item>> itemTags) {
|
||||
blockTags.add(TagAPI.NAMED_MINEABLE_SHEARS);
|
||||
blockTags.add(TagAPI.NAMED_MINEABLE_HOE);
|
||||
blockTags.add(TagAPI.NAMED_BLOCK_LEAVES);
|
||||
itemTags.add(TagAPI.NAMED_ITEM_LEAVES);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,6 @@ import ru.bclib.util.MHelper;
|
|||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class BaseOreBlock extends OreBlock implements BlockModelProvider {
|
||||
|
|
|
@ -3,7 +3,6 @@ package ru.bclib.blocks;
|
|||
import com.google.common.collect.Lists;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.fabricmc.fabric.api.mininglevel.v1.FabricMineableTags;
|
||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
|
||||
import net.minecraft.client.renderer.block.model.BlockModel;
|
||||
|
@ -11,7 +10,6 @@ import net.minecraft.core.BlockPos;
|
|||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.tags.Tag.Named;
|
||||
import net.minecraft.world.entity.item.ItemEntity;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
@ -35,6 +33,7 @@ import net.minecraft.world.phys.shapes.CollisionContext;
|
|||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import ru.bclib.api.TagAPI;
|
||||
import ru.bclib.api.TagAPI.TagLocation;
|
||||
import ru.bclib.client.models.BasePatterns;
|
||||
import ru.bclib.client.models.ModelsHelper;
|
||||
import ru.bclib.client.models.PatternsHelper;
|
||||
|
@ -170,8 +169,8 @@ public abstract class BasePlantBlock extends BaseBlockNotFull implements RenderL
|
|||
}
|
||||
|
||||
@Override
|
||||
public void addTags(List<Named<Block>> blockTags, List<Named<Item>> itemTags) {
|
||||
blockTags.add(FabricMineableTags.SHEARS_MINEABLE);
|
||||
blockTags.add(TagAPI.MINEABLE_HOE);
|
||||
public void addTags(List<TagLocation<Block>> blockTags, List<TagLocation<Item>> itemTags) {
|
||||
blockTags.add(TagAPI.NAMED_MINEABLE_SHEARS);
|
||||
blockTags.add(TagAPI.NAMED_MINEABLE_HOE);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
package ru.bclib.blocks;
|
||||
|
||||
import net.fabricmc.fabric.api.mininglevel.v1.FabricMineableTags;
|
||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.tags.Tag.Named;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
|
@ -11,6 +8,7 @@ import net.minecraft.world.level.block.state.BlockBehaviour;
|
|||
import net.minecraft.world.level.material.Material;
|
||||
import net.minecraft.world.level.material.MaterialColor;
|
||||
import ru.bclib.api.TagAPI;
|
||||
import ru.bclib.api.TagAPI.TagLocation;
|
||||
import ru.bclib.client.render.BCLRenderLayer;
|
||||
import ru.bclib.interfaces.RenderLayerProvider;
|
||||
import ru.bclib.interfaces.TagProvider;
|
||||
|
@ -57,9 +55,10 @@ public class SimpleLeavesBlock extends BaseBlockNotFull implements RenderLayerPr
|
|||
}
|
||||
|
||||
@Override
|
||||
public void addTags(List<Named<Block>> blockTags, List<Named<Item>> itemTags) {
|
||||
blockTags.add(FabricMineableTags.SHEARS_MINEABLE);
|
||||
blockTags.add(TagAPI.MINEABLE_HOE);
|
||||
blockTags.add(BlockTags.LEAVES);
|
||||
public void addTags(List<TagLocation<Block>> blockTags, List<TagLocation<Item>> itemTags) {
|
||||
blockTags.add(TagAPI.NAMED_MINEABLE_SHEARS);
|
||||
blockTags.add(TagAPI.NAMED_MINEABLE_HOE);
|
||||
blockTags.add(TagAPI.NAMED_BLOCK_LEAVES);
|
||||
itemTags.add(TagAPI.NAMED_ITEM_LEAVES);
|
||||
}
|
||||
}
|
|
@ -1,13 +1,11 @@
|
|||
package ru.bclib.blocks;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import net.fabricmc.fabric.api.mininglevel.v1.FabricMineableTags;
|
||||
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.core.Direction;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.tags.Tag.Named;
|
||||
import net.minecraft.world.entity.item.ItemEntity;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
@ -34,6 +32,7 @@ import net.minecraft.world.phys.Vec3;
|
|||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
import ru.bclib.api.TagAPI;
|
||||
import ru.bclib.api.TagAPI.TagLocation;
|
||||
import ru.bclib.client.render.BCLRenderLayer;
|
||||
import ru.bclib.interfaces.RenderLayerProvider;
|
||||
import ru.bclib.interfaces.TagProvider;
|
||||
|
@ -161,8 +160,8 @@ public abstract class UnderwaterPlantBlock extends BaseBlockNotFull implements R
|
|||
}
|
||||
|
||||
@Override
|
||||
public void addTags(List<Named<Block>> blockTags, List<Named<Item>> itemTags) {
|
||||
blockTags.add(FabricMineableTags.SHEARS_MINEABLE);
|
||||
blockTags.add(TagAPI.MINEABLE_HOE);
|
||||
public void addTags(List<TagLocation<Block>> blockTags, List<TagLocation<Item>> itemTags) {
|
||||
blockTags.add(TagAPI.NAMED_MINEABLE_SHEARS);
|
||||
blockTags.add(TagAPI.NAMED_MINEABLE_HOE);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
package ru.bclib.blocks;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import net.fabricmc.fabric.api.mininglevel.v1.FabricMineableTags;
|
||||
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.core.Direction;
|
||||
import net.minecraft.tags.Tag.Named;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
@ -28,6 +26,7 @@ import net.minecraft.world.level.storage.loot.parameters.LootContextParams;
|
|||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
import ru.bclib.api.TagAPI;
|
||||
import ru.bclib.api.TagAPI.TagLocation;
|
||||
import ru.bclib.client.render.BCLRenderLayer;
|
||||
import ru.bclib.interfaces.RenderLayerProvider;
|
||||
import ru.bclib.interfaces.TagProvider;
|
||||
|
@ -107,8 +106,8 @@ public abstract class UpDownPlantBlock extends BaseBlockNotFull implements Rende
|
|||
}
|
||||
|
||||
@Override
|
||||
public void addTags(List<Named<Block>> blockTags, List<Named<Item>> itemTags) {
|
||||
blockTags.add(FabricMineableTags.SHEARS_MINEABLE);
|
||||
blockTags.add(TagAPI.MINEABLE_HOE);
|
||||
public void addTags(List<TagLocation<Block>> blockTags, List<TagLocation<Item>> itemTags) {
|
||||
blockTags.add(TagAPI.NAMED_MINEABLE_SHEARS);
|
||||
blockTags.add(TagAPI.NAMED_MINEABLE_HOE);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,9 +4,6 @@ import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
|
|||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||
import net.fabricmc.fabric.api.registry.FlammableBlockRegistry;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.tags.Tag;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
|
@ -14,6 +11,7 @@ import net.minecraft.world.level.block.Blocks;
|
|||
import net.minecraft.world.level.material.MaterialColor;
|
||||
import ru.bclib.BCLib;
|
||||
import ru.bclib.api.TagAPI;
|
||||
import ru.bclib.api.TagAPI.TagLocation;
|
||||
import ru.bclib.blocks.BaseBarkBlock;
|
||||
import ru.bclib.blocks.BaseBarrelBlock;
|
||||
import ru.bclib.blocks.BaseBlock;
|
||||
|
@ -98,112 +96,92 @@ public class WoodenComplexMaterial extends ComplexMaterial {
|
|||
}
|
||||
|
||||
final protected void initBase(FabricBlockSettings blockSettings, FabricItemSettings itemSettings) {
|
||||
Tag.Named<Block> tagBlockLog = getBlockTag(TAG_LOGS);
|
||||
Tag.Named<Item> tagItemLog = getItemTag(TAG_LOGS);
|
||||
TagLocation<Block> tagBlockLog = new TagLocation<>(getBlockTag(TAG_LOGS).getName());
|
||||
TagLocation<Item> tagItemLog = new TagLocation<>(getItemTag(TAG_LOGS).getName());
|
||||
|
||||
addBlockEntry(
|
||||
new BlockEntry(BLOCK_STRIPPED_LOG, (complexMaterial, settings) -> {
|
||||
return new BaseRotatedPillarBlock(settings);
|
||||
})
|
||||
.setBlockTags(BlockTags.LOGS, BlockTags.LOGS_THAT_BURN, tagBlockLog)
|
||||
.setItemTags(ItemTags.LOGS, ItemTags.LOGS_THAT_BURN, tagItemLog)
|
||||
new BlockEntry(BLOCK_STRIPPED_LOG, (complexMaterial, settings) -> new BaseRotatedPillarBlock(settings))
|
||||
.setBlockTags(TagAPI.NAMED_BLOCK_LOGS, TagAPI.NAMED_BLOCK_LOGS_THAT_BURN, tagBlockLog)
|
||||
.setItemTags(TagAPI.NAMED_ITEM_LOGS, TagAPI.NAMED_ITEM_LOGS_THAT_BURN, tagItemLog)
|
||||
);
|
||||
addBlockEntry(
|
||||
new BlockEntry(BLOCK_STRIPPED_BARK, (complexMaterial, settings) -> {
|
||||
return new BaseBarkBlock(settings);
|
||||
})
|
||||
.setBlockTags(BlockTags.LOGS, BlockTags.LOGS_THAT_BURN, tagBlockLog)
|
||||
.setItemTags(ItemTags.LOGS, ItemTags.LOGS_THAT_BURN, tagItemLog)
|
||||
new BlockEntry(BLOCK_STRIPPED_BARK, (complexMaterial, settings) -> new BaseBarkBlock(settings))
|
||||
.setBlockTags(TagAPI.NAMED_BLOCK_LOGS, TagAPI.NAMED_BLOCK_LOGS_THAT_BURN, tagBlockLog)
|
||||
.setItemTags(TagAPI.NAMED_ITEM_LOGS, TagAPI.NAMED_ITEM_LOGS_THAT_BURN, tagItemLog)
|
||||
);
|
||||
|
||||
addBlockEntry(
|
||||
new BlockEntry(BLOCK_LOG, (complexMaterial, settings) -> {
|
||||
return new BaseStripableLogBlock(woodColor, getBlock(BLOCK_STRIPPED_LOG));
|
||||
})
|
||||
.setBlockTags(BlockTags.LOGS, BlockTags.LOGS_THAT_BURN, tagBlockLog)
|
||||
.setItemTags(ItemTags.LOGS, ItemTags.LOGS_THAT_BURN, tagItemLog)
|
||||
new BlockEntry(BLOCK_LOG, (complexMaterial, settings) -> new BaseStripableLogBlock(woodColor, getBlock(BLOCK_STRIPPED_LOG)))
|
||||
.setBlockTags(TagAPI.NAMED_BLOCK_LOGS, TagAPI.NAMED_BLOCK_LOGS_THAT_BURN, tagBlockLog)
|
||||
.setItemTags(TagAPI.NAMED_ITEM_LOGS, TagAPI.NAMED_ITEM_LOGS_THAT_BURN, tagItemLog)
|
||||
);
|
||||
addBlockEntry(
|
||||
new BlockEntry(BLOCK_BARK, (complexMaterial, settings) -> {
|
||||
return new StripableBarkBlock(woodColor, getBlock(BLOCK_STRIPPED_BARK));
|
||||
})
|
||||
.setBlockTags(BlockTags.LOGS, BlockTags.LOGS_THAT_BURN, tagBlockLog)
|
||||
.setItemTags(ItemTags.LOGS, ItemTags.LOGS_THAT_BURN, tagItemLog)
|
||||
new BlockEntry(BLOCK_BARK, (complexMaterial, settings) -> new StripableBarkBlock(woodColor, getBlock(BLOCK_STRIPPED_BARK)))
|
||||
.setBlockTags(TagAPI.NAMED_BLOCK_LOGS, TagAPI.NAMED_BLOCK_LOGS_THAT_BURN, tagBlockLog)
|
||||
.setItemTags(TagAPI.NAMED_ITEM_LOGS, TagAPI.NAMED_ITEM_LOGS_THAT_BURN, tagItemLog)
|
||||
);
|
||||
addBlockEntry(new BlockEntry(BLOCK_PLANKS, (complexMaterial, settings) -> {
|
||||
return new BaseBlock(settings);
|
||||
}).setBlockTags(BlockTags.PLANKS)
|
||||
.setItemTags(ItemTags.PLANKS));
|
||||
addBlockEntry(new BlockEntry(BLOCK_PLANKS, (complexMaterial, settings) -> new BaseBlock(settings))
|
||||
.setBlockTags(TagAPI.NAMED_BLOCK_PLANKS)
|
||||
.setItemTags(TagAPI.NAMED_ITEM_PLANKS));
|
||||
|
||||
addBlockEntry(new BlockEntry(BLOCK_STAIRS, (complexMaterial, settings) -> {
|
||||
return new BaseStairsBlock(getBlock(BLOCK_PLANKS));
|
||||
}).setBlockTags(BlockTags.WOODEN_STAIRS, BlockTags.STAIRS)
|
||||
.setItemTags(ItemTags.WOODEN_STAIRS, ItemTags.STAIRS));
|
||||
addBlockEntry(new BlockEntry(BLOCK_SLAB, (complexMaterial, settings) -> {
|
||||
return new BaseSlabBlock(getBlock(BLOCK_PLANKS));
|
||||
}).setBlockTags(BlockTags.WOODEN_SLABS, BlockTags.SLABS)
|
||||
.setItemTags(ItemTags.WOODEN_SLABS, ItemTags.SLABS));
|
||||
addBlockEntry(new BlockEntry(BLOCK_FENCE, (complexMaterial, settings) -> {
|
||||
return new BaseFenceBlock(getBlock(BLOCK_PLANKS));
|
||||
}).setBlockTags(BlockTags.FENCES, BlockTags.WOODEN_FENCES)
|
||||
.setItemTags(ItemTags.FENCES, ItemTags.WOODEN_FENCES));
|
||||
addBlockEntry(new BlockEntry(BLOCK_GATE, (complexMaterial, settings) -> {
|
||||
return new BaseGateBlock(getBlock(BLOCK_PLANKS));
|
||||
}).setBlockTags(BlockTags.FENCE_GATES));
|
||||
addBlockEntry(new BlockEntry(BLOCK_BUTTON, (complexMaterial, settings) -> {
|
||||
return new BaseWoodenButtonBlock(getBlock(BLOCK_PLANKS));
|
||||
}).setBlockTags(BlockTags.BUTTONS, BlockTags.WOODEN_BUTTONS)
|
||||
.setItemTags(ItemTags.BUTTONS, ItemTags.WOODEN_BUTTONS));
|
||||
addBlockEntry(new BlockEntry(BLOCK_PRESSURE_PLATE, (complexMaterial, settings) -> {
|
||||
return new WoodenPressurePlateBlock(getBlock(BLOCK_PLANKS));
|
||||
}).setBlockTags(BlockTags.PRESSURE_PLATES, BlockTags.WOODEN_PRESSURE_PLATES)
|
||||
.setItemTags(ItemTags.WOODEN_PRESSURE_PLATES));
|
||||
addBlockEntry(new BlockEntry(BLOCK_TRAPDOOR, (complexMaterial, settings) -> {
|
||||
return new BaseTrapdoorBlock(getBlock(BLOCK_PLANKS));
|
||||
}).setBlockTags(BlockTags.TRAPDOORS, BlockTags.WOODEN_TRAPDOORS)
|
||||
.setItemTags(ItemTags.TRAPDOORS, ItemTags.WOODEN_TRAPDOORS));
|
||||
addBlockEntry(new BlockEntry(BLOCK_DOOR, (complexMaterial, settings) -> {
|
||||
return new BaseDoorBlock(getBlock(BLOCK_PLANKS));
|
||||
}).setBlockTags(BlockTags.DOORS, BlockTags.WOODEN_DOORS)
|
||||
.setItemTags(ItemTags.DOORS, ItemTags.WOODEN_DOORS));
|
||||
addBlockEntry(new BlockEntry(BLOCK_STAIRS, (complexMaterial, settings) -> new BaseStairsBlock(getBlock(BLOCK_PLANKS)))
|
||||
.setBlockTags(TagAPI.NAMED_BLOCK_WOODEN_STAIRS, TagAPI.NAMED_BLOCK_STAIRS)
|
||||
.setItemTags(TagAPI.NAMED_ITEM_WOODEN_STAIRS, TagAPI.NAMED_ITEM_STAIRS));
|
||||
|
||||
addBlockEntry(new BlockEntry(BLOCK_SLAB, (complexMaterial, settings) -> new BaseSlabBlock(getBlock(BLOCK_PLANKS)))
|
||||
.setBlockTags(TagAPI.NAMED_BLOCK_WOODEN_SLABS, TagAPI.NAMED_BLOCK_SLABS)
|
||||
.setItemTags(TagAPI.NAMED_ITEM_WOODEN_SLABS, TagAPI.NAMED_ITEM_SLABS));
|
||||
|
||||
addBlockEntry(new BlockEntry(BLOCK_LADDER, (complexMaterial, settings) -> {
|
||||
return new BaseLadderBlock(getBlock(BLOCK_PLANKS));
|
||||
}).setBlockTags(BlockTags.CLIMBABLE));
|
||||
addBlockEntry(new BlockEntry(BLOCK_SIGN, (complexMaterial, settings) -> {
|
||||
return new BaseSignBlock(getBlock(BLOCK_PLANKS));
|
||||
}).setBlockTags(BlockTags.SIGNS)
|
||||
.setItemTags(ItemTags.SIGNS));
|
||||
addBlockEntry(new BlockEntry(BLOCK_FENCE, (complexMaterial, settings) -> new BaseFenceBlock(getBlock(BLOCK_PLANKS)))
|
||||
.setBlockTags(TagAPI.NAMED_BLOCK_FENCES, TagAPI.NAMED_BLOCK_WOODEN_FENCES)
|
||||
.setItemTags(TagAPI.NAMED_ITEM_FENCES, TagAPI.NAMED_ITEM_WOODEN_FENCES));
|
||||
|
||||
addBlockEntry(new BlockEntry(BLOCK_GATE, (complexMaterial, settings) -> new BaseGateBlock(getBlock(BLOCK_PLANKS)))
|
||||
.setBlockTags(TagAPI.NAMED_BLOCK_FENCE_GATES));
|
||||
|
||||
addBlockEntry(new BlockEntry(BLOCK_BUTTON, (complexMaterial, settings) -> new BaseWoodenButtonBlock(getBlock(BLOCK_PLANKS)))
|
||||
.setBlockTags(TagAPI.NAMED_BLOCK_BUTTONS, TagAPI.NAMED_BLOCK_WOODEN_BUTTONS)
|
||||
.setItemTags(TagAPI.NAMED_ITEM_BUTTONS, TagAPI.NAMED_ITEM_WOODEN_BUTTONS));
|
||||
|
||||
addBlockEntry(new BlockEntry(BLOCK_PRESSURE_PLATE, (complexMaterial, settings) -> new WoodenPressurePlateBlock(getBlock(BLOCK_PLANKS)))
|
||||
.setBlockTags(TagAPI.NAMED_BLOCK_PRESSURE_PLATES, TagAPI.NAMED_BLOCK_WOODEN_PRESSURE_PLATES)
|
||||
.setItemTags(TagAPI.NAMED_ITEM_WOODEN_PRESSURE_PLATES));
|
||||
|
||||
addBlockEntry(new BlockEntry(BLOCK_TRAPDOOR, (complexMaterial, settings) -> new BaseTrapdoorBlock(getBlock(BLOCK_PLANKS)))
|
||||
.setBlockTags(TagAPI.NAMED_BLOCK_TRAPDOORS, TagAPI.NAMED_BLOCK_WOODEN_TRAPDOORS)
|
||||
.setItemTags(TagAPI.NAMED_ITEM_TRAPDOORS, TagAPI.NAMED_ITEM_WOODEN_TRAPDOORS));
|
||||
|
||||
addBlockEntry(new BlockEntry(BLOCK_DOOR, (complexMaterial, settings) -> new BaseDoorBlock(getBlock(BLOCK_PLANKS)))
|
||||
.setBlockTags(TagAPI.NAMED_BLOCK_DOORS, TagAPI.NAMED_BLOCK_WOODEN_DOORS)
|
||||
.setItemTags(TagAPI.NAMED_ITEM_DOORS, TagAPI.NAMED_ITEM_WOODEN_DOORS));
|
||||
|
||||
addBlockEntry(new BlockEntry(BLOCK_LADDER, (complexMaterial, settings) -> new BaseLadderBlock(getBlock(BLOCK_PLANKS)))
|
||||
.setBlockTags(TagAPI.NAMED_BLOCK_CLIMBABLE));
|
||||
|
||||
addBlockEntry(new BlockEntry(BLOCK_SIGN, (complexMaterial, settings) -> new BaseSignBlock(getBlock(BLOCK_PLANKS)))
|
||||
.setBlockTags(TagAPI.NAMED_BLOCK_SIGNS)
|
||||
.setItemTags(TagAPI.NAMED_ITEM_SIGNS));
|
||||
}
|
||||
|
||||
final protected void initStorage(FabricBlockSettings blockSettings, FabricItemSettings itemSettings) {
|
||||
addBlockEntry(new BlockEntry(BLOCK_CHEST, (complexMaterial, settings) -> {
|
||||
return new BaseChestBlock(getBlock(BLOCK_PLANKS));
|
||||
}).setBlockTags(TagAPI.BLOCK_CHEST, TagAPI.BLOCK_WOODEN_CHEST)
|
||||
.setItemTags(TagAPI.ITEM_CHEST, TagAPI.ITEM_WOODEN_CHEST));
|
||||
addBlockEntry(new BlockEntry(BLOCK_CHEST, (complexMaterial, settings) -> new BaseChestBlock(getBlock(BLOCK_PLANKS)))
|
||||
.setBlockTags(TagAPI.NAMED_COMMON_BLOCK_CHEST, TagAPI.NAMED_COMMON_BLOCK_WOODEN_CHEST)
|
||||
.setItemTags(TagAPI.NAMED_COMMON_ITEM_CHEST, TagAPI.NAMED_COMMON_ITEM_WOODEN_CHEST));
|
||||
|
||||
addBlockEntry(new BlockEntry(BLOCK_BARREL, (complexMaterial, settings) -> {
|
||||
return new BaseBarrelBlock(getBlock(BLOCK_PLANKS));
|
||||
}).setBlockTags(TagAPI.BLOCK_BARREL, TagAPI.BLOCK_WOODEN_BARREL)
|
||||
.setItemTags(TagAPI.ITEM_BARREL, TagAPI.ITEM_WOODEN_BARREL));
|
||||
addBlockEntry(new BlockEntry(BLOCK_BARREL, (complexMaterial, settings) -> new BaseBarrelBlock(getBlock(BLOCK_PLANKS)))
|
||||
.setBlockTags(TagAPI.NAMED_COMMON_BLOCK_BARREL, TagAPI.NAMED_COMMON_BLOCK_WOODEN_BARREL)
|
||||
.setItemTags(TagAPI.NAMED_COMMON_ITEM_BARREL, TagAPI.NAMED_COMMON_ITEM_WOODEN_BARREL));
|
||||
}
|
||||
|
||||
final protected void initDecorations(FabricBlockSettings blockSettings, FabricItemSettings itemSettings) {
|
||||
addBlockEntry(new BlockEntry(BLOCK_CRAFTING_TABLE, (complexMaterial, settings) -> {
|
||||
return new BaseCraftingTableBlock(getBlock(BLOCK_PLANKS));
|
||||
}).setBlockTags(TagAPI.BLOCK_WORKBENCHES)
|
||||
.setItemTags(TagAPI.ITEM_WORKBENCHES));
|
||||
addBlockEntry(new BlockEntry(BLOCK_CRAFTING_TABLE, (complexMaterial, settings) -> new BaseCraftingTableBlock(getBlock(BLOCK_PLANKS)))
|
||||
.setBlockTags(TagAPI.NAMED_COMMON_BLOCK_WORKBENCHES)
|
||||
.setItemTags(TagAPI.NAMED_COMMON_ITEM_WORKBENCHES));
|
||||
|
||||
addBlockEntry(new BlockEntry(BLOCK_BOOKSHELF, (complexMaterial, settings) -> {
|
||||
return new BaseBookshelfBlock(getBlock(BLOCK_PLANKS));
|
||||
}).setBlockTags(TagAPI.BLOCK_BOOKSHELVES));
|
||||
addBlockEntry(new BlockEntry(BLOCK_BOOKSHELF, (complexMaterial, settings) -> new BaseBookshelfBlock(getBlock(BLOCK_PLANKS)))
|
||||
.setBlockTags(TagAPI.NAMED_COMMON_BLOCK_BOOKSHELVES));
|
||||
|
||||
addBlockEntry(new BlockEntry(BLOCK_COMPOSTER, (complexMaterial, settings) -> {
|
||||
return new BaseComposterBlock(getBlock(BLOCK_PLANKS));
|
||||
}));
|
||||
addBlockEntry(new BlockEntry(BLOCK_COMPOSTER, (complexMaterial, settings) -> new BaseComposterBlock(getBlock(BLOCK_PLANKS))));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -2,10 +2,10 @@ package ru.bclib.complexmaterials.entry;
|
|||
|
||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.tags.Tag;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import ru.bclib.api.TagAPI;
|
||||
import ru.bclib.api.TagAPI.TagLocation;
|
||||
import ru.bclib.complexmaterials.ComplexMaterial;
|
||||
import ru.bclib.registry.BlockRegistry;
|
||||
|
||||
|
@ -15,8 +15,8 @@ public class BlockEntry extends ComplexMaterialEntry {
|
|||
final BiFunction<ComplexMaterial, FabricBlockSettings, Block> initFunction;
|
||||
final boolean hasItem;
|
||||
|
||||
Tag.Named<Block>[] blockTags;
|
||||
Tag.Named<Item>[] itemTags;
|
||||
TagLocation<Block>[] blockTags;
|
||||
TagLocation<Item>[] itemTags;
|
||||
|
||||
public BlockEntry(String suffix, BiFunction<ComplexMaterial, FabricBlockSettings, Block> initFunction) {
|
||||
this(suffix, true, initFunction);
|
||||
|
@ -28,12 +28,12 @@ public class BlockEntry extends ComplexMaterialEntry {
|
|||
this.hasItem = hasItem;
|
||||
}
|
||||
|
||||
public BlockEntry setBlockTags(Tag.Named<Block>... blockTags) {
|
||||
public BlockEntry setBlockTags(TagLocation<Block>... blockTags) {
|
||||
this.blockTags = blockTags;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BlockEntry setItemTags(Tag.Named<Item>... itemTags) {
|
||||
public BlockEntry setItemTags(TagLocation<Item>... itemTags) {
|
||||
this.itemTags = itemTags;
|
||||
return this;
|
||||
}
|
||||
|
@ -44,14 +44,14 @@ public class BlockEntry extends ComplexMaterialEntry {
|
|||
if (hasItem) {
|
||||
registry.register(location, block);
|
||||
if (itemTags != null) {
|
||||
TagAPI.addTags(block, itemTags);
|
||||
TagAPI.addItemTags(block, itemTags);
|
||||
}
|
||||
}
|
||||
else {
|
||||
registry.registerBlockOnly(location, block);
|
||||
}
|
||||
if (blockTags != null) {
|
||||
TagAPI.addTags(block, blockTags);
|
||||
TagAPI.addBlockTags(block, blockTags);
|
||||
}
|
||||
return block;
|
||||
}
|
||||
|
|
|
@ -2,9 +2,9 @@ package ru.bclib.complexmaterials.entry;
|
|||
|
||||
import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.tags.Tag;
|
||||
import net.minecraft.world.item.Item;
|
||||
import ru.bclib.api.TagAPI;
|
||||
import ru.bclib.api.TagAPI.TagLocation;
|
||||
import ru.bclib.complexmaterials.ComplexMaterial;
|
||||
import ru.bclib.registry.ItemRegistry;
|
||||
|
||||
|
@ -13,14 +13,14 @@ import java.util.function.BiFunction;
|
|||
public class ItemEntry extends ComplexMaterialEntry {
|
||||
final BiFunction<ComplexMaterial, FabricItemSettings, Item> initFunction;
|
||||
|
||||
Tag.Named<Item>[] itemTags;
|
||||
TagLocation<Item>[] itemTags;
|
||||
|
||||
public ItemEntry(String suffix, BiFunction<ComplexMaterial, FabricItemSettings, Item> initFunction) {
|
||||
super(suffix);
|
||||
this.initFunction = initFunction;
|
||||
}
|
||||
|
||||
public ItemEntry setItemTags(Tag.Named<Item>[] itemTags) {
|
||||
public ItemEntry setItemTags(TagLocation<Item>[] itemTags) {
|
||||
this.itemTags = itemTags;
|
||||
return this;
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ public class ItemEntry extends ComplexMaterialEntry {
|
|||
Item item = initFunction.apply(material, itemSettings);
|
||||
registry.register(location, item);
|
||||
if (itemTags != null) {
|
||||
TagAPI.addTags(item, itemTags);
|
||||
TagAPI.addItemTags(item, itemTags);
|
||||
}
|
||||
return item;
|
||||
}
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
package ru.bclib.interfaces;
|
||||
|
||||
import net.minecraft.tags.Tag;
|
||||
import net.minecraft.tags.Tag.Named;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import ru.bclib.api.TagAPI.TagLocation;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface TagProvider {
|
||||
void addTags(List<Named<Block>> blockTags, List<Tag.Named<Item>> itemTags);
|
||||
void addTags(List<TagLocation<Block>> blockTags, List<TagLocation<Item>> itemTags);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package ru.bclib.items.tool;
|
||||
|
||||
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
|
@ -12,12 +13,12 @@ public class BaseShearsItem extends ShearsItem {
|
|||
}
|
||||
|
||||
public static boolean isShear(ItemStack tool){
|
||||
return tool.is(Items.SHEARS) | tool.is(TagAPI.ITEM_COMMON_SHEARS) || tool.is(TagAPI.ITEM_SHEARS);
|
||||
return tool.is(Items.SHEARS) | tool.is(TagAPI.COMMON_ITEM_SHEARS) || tool.is(FabricToolTags.SHEARS);
|
||||
}
|
||||
|
||||
public static boolean isShear(ItemStack itemStack, Item item){
|
||||
if (item == Items.SHEARS){
|
||||
return itemStack.is(item) | itemStack.is(TagAPI.ITEM_COMMON_SHEARS) || itemStack.is(TagAPI.ITEM_SHEARS);
|
||||
return itemStack.is(item) | itemStack.is(TagAPI.COMMON_ITEM_SHEARS) || itemStack.is(FabricToolTags.SHEARS);
|
||||
} else {
|
||||
return itemStack.is(item);
|
||||
}
|
||||
|
|
|
@ -20,6 +20,6 @@ public abstract class EnchantingTableBlockMixin extends Block {
|
|||
target = "Lnet/minecraft/world/level/block/state/BlockState;is(Lnet/minecraft/world/level/block/Block;)Z")//,
|
||||
)
|
||||
private boolean bclib_isBookshelf(BlockState state, Block block) {
|
||||
return block == Blocks.BOOKSHELF ? state.is(TagAPI.BLOCK_BOOKSHELVES) : state.is(block);
|
||||
return block == Blocks.BOOKSHELF ? state.is(TagAPI.COMMON_BLOCK_BOOKSHELVES) : state.is(block);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ public abstract class CraftingMenuMixin {
|
|||
private void bclib_stillValid(Player player, CallbackInfoReturnable<Boolean> info) {
|
||||
if (access.evaluate((world, pos) -> {
|
||||
BlockState state = world.getBlockState(pos);
|
||||
return state.getBlock() instanceof CraftingTableBlock || state.is(TagAPI.BLOCK_WORKBENCHES);
|
||||
return state.getBlock() instanceof CraftingTableBlock || state.is(TagAPI.COMMON_BLOCK_WORKBENCHES);
|
||||
}, true)) {
|
||||
info.setReturnValue(true);
|
||||
}
|
||||
|
|
|
@ -22,6 +22,6 @@ public abstract class EnchantmentMenuMixin extends AbstractContainerMenu {
|
|||
target = "Lnet/minecraft/world/level/block/state/BlockState;is(Lnet/minecraft/world/level/block/Block;)Z")//,
|
||||
)
|
||||
private boolean bclib_isBookshelf(BlockState state, Block block) {
|
||||
return block == Blocks.BOOKSHELF ? state.is(TagAPI.BLOCK_BOOKSHELVES) : state.is(block);
|
||||
return block == Blocks.BOOKSHELF ? state.is(TagAPI.COMMON_BLOCK_BOOKSHELVES) : state.is(block);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,7 +21,6 @@ import org.spongepowered.asm.mixin.injection.At;
|
|||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
import ru.bclib.BCLib;
|
||||
import ru.bclib.api.biomes.BiomeAPI;
|
||||
import ru.bclib.api.dataexchange.DataExchangeAPI;
|
||||
import ru.bclib.recipes.BCLRecipeManager;
|
||||
|
|
|
@ -15,7 +15,7 @@ import ru.bclib.api.TagAPI;
|
|||
public class PistonBaseBlockMixin {
|
||||
@Inject(method="isPushable", at=@At("HEAD"), cancellable = true)
|
||||
private static void bclib_isPushable(BlockState blockState, Level level, BlockPos blockPos, Direction direction, boolean bl, Direction direction2, CallbackInfoReturnable<Boolean> cir){
|
||||
if (blockState.is(TagAPI.BLOCK_IMMOBILE)){
|
||||
if (blockState.is(TagAPI.COMMON_BLOCK_IMMOBILE)){
|
||||
cir.setReturnValue(false);
|
||||
cir.cancel();
|
||||
}
|
||||
|
|
|
@ -28,6 +28,6 @@ public class PortalShapeMixin {
|
|||
}
|
||||
|
||||
private static boolean be_FRAME(StatePredicate FRAME, BlockState state, BlockGetter getter, BlockPos pos){
|
||||
return state.is(TagAPI.BLOCK_NETHER_PORTAL_FRAME) || FRAME.test(state, getter, pos);
|
||||
return state.is(TagAPI.COMMON_BLOCK_NETHER_PORTAL_FRAME) || FRAME.test(state, getter, pos);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
package ru.bclib.mixin.common.shears;
|
||||
|
||||
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
|
||||
import net.minecraft.advancements.critereon.ItemPredicate;
|
||||
import net.minecraft.advancements.critereon.ItemPredicate.Builder;
|
||||
import net.minecraft.tags.Tag;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.ItemLike;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
|
@ -26,7 +24,7 @@ public abstract class ItemPredicateBuilderMixin {
|
|||
@Inject(method = "matches", at = @At("HEAD"), cancellable = true)
|
||||
void bclib_of(ItemStack itemStack, CallbackInfoReturnable<Boolean> cir) {
|
||||
if (this.items != null && this.items.size() == 1 && this.items.contains(Items.SHEARS)) {
|
||||
if (itemStack.is(TagAPI.ITEM_COMMON_SHEARS) || itemStack.is(TagAPI.ITEM_SHEARS)){
|
||||
if (itemStack.is(TagAPI.COMMON_ITEM_SHEARS) || itemStack.is(FabricToolTags.SHEARS)){
|
||||
cir.setReturnValue(true);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -116,7 +116,7 @@ public class AnvilRecipe implements Recipe<Container>, UnknownReceipBookCategory
|
|||
|
||||
public boolean matches(Container craftingInventory) {
|
||||
ItemStack hammer = craftingInventory.getItem(1);
|
||||
if (hammer.isEmpty() || !TagAPI.ITEM_HAMMERS.contains(hammer.getItem())) {
|
||||
if (hammer.isEmpty() || !TagAPI.COMMON_ITEM_HAMMERS.contains(hammer.getItem())) {
|
||||
return false;
|
||||
}
|
||||
ItemStack material = craftingInventory.getItem(0);
|
||||
|
@ -140,7 +140,7 @@ public class AnvilRecipe implements Recipe<Container>, UnknownReceipBookCategory
|
|||
@Override
|
||||
public NonNullList<Ingredient> getIngredients() {
|
||||
NonNullList<Ingredient> defaultedList = NonNullList.create();
|
||||
defaultedList.add(Ingredient.of(TagAPI.ITEM_HAMMERS
|
||||
defaultedList.add(Ingredient.of(TagAPI.COMMON_ITEM_HAMMERS
|
||||
.getValues()
|
||||
.stream()
|
||||
.filter(hammer -> ((TieredItem) hammer).getTier().getLevel() >= toolLevel)
|
||||
|
|
|
@ -12,23 +12,23 @@ public class CraftingRecipes {
|
|||
GridRecipe.make(BCLib.MOD_ID, "tag_smith_table", Blocks.SMITHING_TABLE)
|
||||
.setShape("II", "##", "##")
|
||||
.addMaterial('#', ItemTags.PLANKS)
|
||||
.addMaterial('I', TagAPI.ITEM_IRON_INGOTS)
|
||||
.addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS)
|
||||
.checkConfig(Configs.RECIPE_CONFIG)
|
||||
.build();
|
||||
GridRecipe.make(BCLib.MOD_ID, "tag_cauldron", Blocks.CAULDRON)
|
||||
.setShape("I I", "I I", "III")
|
||||
.addMaterial('I', TagAPI.ITEM_IRON_INGOTS)
|
||||
.addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS)
|
||||
.checkConfig(Configs.RECIPE_CONFIG)
|
||||
.build();
|
||||
GridRecipe.make(BCLib.MOD_ID, "tag_hopper", Blocks.HOPPER)
|
||||
.setShape("I I", "ICI", " I ")
|
||||
.addMaterial('I', TagAPI.ITEM_IRON_INGOTS)
|
||||
.addMaterial('C', TagAPI.ITEM_CHEST)
|
||||
.addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS)
|
||||
.addMaterial('C', TagAPI.COMMON_ITEM_CHEST)
|
||||
.checkConfig(Configs.RECIPE_CONFIG)
|
||||
.build();
|
||||
GridRecipe.make(BCLib.MOD_ID, "tag_piston", Blocks.PISTON)
|
||||
.setShape("WWW", "CIC", "CDC")
|
||||
.addMaterial('I', TagAPI.ITEM_IRON_INGOTS)
|
||||
.addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS)
|
||||
.addMaterial('D', Items.REDSTONE)
|
||||
.addMaterial('C', Items.COBBLESTONE)
|
||||
.addMaterial('W', ItemTags.PLANKS)
|
||||
|
@ -37,50 +37,50 @@ public class CraftingRecipes {
|
|||
GridRecipe.make(BCLib.MOD_ID, "tag_rail", Blocks.RAIL)
|
||||
.setOutputCount(16)
|
||||
.setShape("I I", "ISI", "I I")
|
||||
.addMaterial('I', TagAPI.ITEM_IRON_INGOTS)
|
||||
.addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS)
|
||||
.addMaterial('S', Items.STICK)
|
||||
.checkConfig(Configs.RECIPE_CONFIG)
|
||||
.build();
|
||||
GridRecipe.make(BCLib.MOD_ID, "tag_stonecutter", Blocks.STONECUTTER)
|
||||
.setShape(" I ", "SSS")
|
||||
.addMaterial('I', TagAPI.ITEM_IRON_INGOTS)
|
||||
.addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS)
|
||||
.addMaterial('S', Items.STONE)
|
||||
.checkConfig(Configs.RECIPE_CONFIG)
|
||||
.build();
|
||||
GridRecipe.make(BCLib.MOD_ID, "tag_bucket", Items.BUCKET)
|
||||
.setShape("I I", " I ")
|
||||
.addMaterial('I', TagAPI.ITEM_IRON_INGOTS)
|
||||
.addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS)
|
||||
.checkConfig(Configs.RECIPE_CONFIG)
|
||||
.build();
|
||||
GridRecipe.make(BCLib.MOD_ID, "tag_compass", Items.COMPASS)
|
||||
.setShape(" I ", "IDI", " I ")
|
||||
.addMaterial('I', TagAPI.ITEM_IRON_INGOTS)
|
||||
.addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS)
|
||||
.addMaterial('D', Items.REDSTONE)
|
||||
.checkConfig(Configs.RECIPE_CONFIG)
|
||||
.build();
|
||||
GridRecipe.make(BCLib.MOD_ID, "tag_minecart", Items.MINECART)
|
||||
.setShape("I I", "III")
|
||||
.addMaterial('I', TagAPI.ITEM_IRON_INGOTS)
|
||||
.addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS)
|
||||
.checkConfig(Configs.RECIPE_CONFIG)
|
||||
.build();
|
||||
GridRecipe.make(BCLib.MOD_ID, "tag_shield", Items.SHIELD)
|
||||
.setShape("WIW", "WWW", " W ")
|
||||
.addMaterial('I', TagAPI.ITEM_IRON_INGOTS)
|
||||
.addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS)
|
||||
.addMaterial('W', ItemTags.PLANKS)
|
||||
.checkConfig(Configs.RECIPE_CONFIG)
|
||||
.build();
|
||||
|
||||
GridRecipe.make(BCLib.MOD_ID, "tag_hopper", Blocks.HOPPER)
|
||||
.setShape("I I", "ICI", " I ")
|
||||
.addMaterial('I', TagAPI.ITEM_IRON_INGOTS)
|
||||
.addMaterial('C', TagAPI.ITEM_CHEST)
|
||||
.addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS)
|
||||
.addMaterial('C', TagAPI.COMMON_ITEM_CHEST)
|
||||
.checkConfig(Configs.RECIPE_CONFIG)
|
||||
.build();
|
||||
|
||||
GridRecipe.make(BCLib.MOD_ID, "tag_shulker_box", Blocks.SHULKER_BOX)
|
||||
.setShape("S", "C", "S")
|
||||
.addMaterial('S', Items.SHULKER_SHELL)
|
||||
.addMaterial('C', TagAPI.ITEM_CHEST)
|
||||
.addMaterial('C', TagAPI.COMMON_ITEM_CHEST)
|
||||
.checkConfig(Configs.RECIPE_CONFIG)
|
||||
.build();
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package ru.bclib.registry;
|
||||
|
||||
import net.fabricmc.fabric.api.mininglevel.v1.FabricMineableTags;
|
||||
import net.fabricmc.fabric.api.registry.FlammableBlockRegistry;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
@ -43,16 +42,22 @@ public class BlockRegistry extends BaseRegistry<Block> {
|
|||
getModBlocks(id.getNamespace()).add(block);
|
||||
|
||||
if (block instanceof BaseLeavesBlock){
|
||||
TagAPI.addTags(block, TagAPI.BLOCK_LEAVES, TagAPI.MINEABLE_HOE, FabricMineableTags.SHEARS_MINEABLE);
|
||||
TagAPI.addBlockTags(
|
||||
block,
|
||||
TagAPI.NAMED_BLOCK_LEAVES,
|
||||
TagAPI.NAMED_COMMON_BLOCK_LEAVES,
|
||||
TagAPI.NAMED_MINEABLE_HOE,
|
||||
TagAPI.NAMED_MINEABLE_SHEARS
|
||||
);
|
||||
if (item != null){
|
||||
TagAPI.addTags(item, TagAPI.ITEM_LEAVES);
|
||||
TagAPI.addItemTags(item, TagAPI.NAMED_COMMON_ITEM_LEAVES, TagAPI.NAMED_ITEM_LEAVES);
|
||||
}
|
||||
} else if (block instanceof BaseOreBlock){
|
||||
TagAPI.addTags(block, TagAPI.MINEABLE_PICKAXE);
|
||||
TagAPI.addBlockTags(block, TagAPI.NAMED_MINEABLE_PICKAXE);
|
||||
} else if (block instanceof FeatureSaplingBlock){
|
||||
TagAPI.addTags(block, TagAPI.BLOCK_SAPLINGS);
|
||||
TagAPI.addBlockTags(block, TagAPI.NAMED_COMMON_BLOCK_SAPLINGS, TagAPI.NAMED_BLOCK_SAPLINGS);
|
||||
if (item != null){
|
||||
TagAPI.addTags(item, TagAPI.ITEM_SAPLINGS);
|
||||
TagAPI.addItemTags(item, TagAPI.NAMED_COMMON_ITEM_SAPLINGS, TagAPI.NAMED_ITEM_SAPLINGS);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package ru.bclib.registry;
|
||||
|
||||
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
|
||||
import net.minecraft.core.BlockSource;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Registry;
|
||||
|
@ -8,7 +7,6 @@ import net.minecraft.core.dispenser.DefaultDispenseItemBehavior;
|
|||
import net.minecraft.core.dispenser.ShearsDispenseItemBehavior;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.tags.Tag;
|
||||
import net.minecraft.world.effect.MobEffectInstance;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.Mob;
|
||||
|
@ -71,22 +69,22 @@ public class ItemRegistry extends BaseRegistry<Item> {
|
|||
registerItem(itemId, item);
|
||||
|
||||
if (item instanceof ShovelItem) {
|
||||
TagAPI.addTag((Tag.Named<Item>) FabricToolTags.SHOVELS, item);
|
||||
TagAPI.addItemTag(TagAPI.NAMED_FABRIC_SHOVELS, item);
|
||||
}
|
||||
else if (item instanceof SwordItem) {
|
||||
TagAPI.addTag((Tag.Named<Item>) FabricToolTags.SWORDS, item);
|
||||
TagAPI.addItemTag(TagAPI.NAMED_FABRIC_SWORDS, item);
|
||||
}
|
||||
else if (item instanceof BasePickaxeItem) {
|
||||
TagAPI.addTag((Tag.Named<Item>) FabricToolTags.PICKAXES, item);
|
||||
TagAPI.addItemTag(TagAPI.NAMED_FABRIC_PICKAXES, item);
|
||||
}
|
||||
else if (item instanceof BaseAxeItem) {
|
||||
TagAPI.addTag((Tag.Named<Item>) FabricToolTags.AXES, item);
|
||||
TagAPI.addItemTag(TagAPI.NAMED_FABRIC_AXES, item);
|
||||
}
|
||||
else if (item instanceof BaseHoeItem) {
|
||||
TagAPI.addTag((Tag.Named<Item>) FabricToolTags.HOES, item);
|
||||
TagAPI.addItemTag(TagAPI.NAMED_FABRIC_HOES, item);
|
||||
}
|
||||
else if (item instanceof BaseShearsItem) {
|
||||
TagAPI.addTags(item, (Tag.Named<Item>) FabricToolTags.SHEARS, TagAPI.ITEM_SHEARS, TagAPI.ITEM_COMMON_SHEARS);
|
||||
TagAPI.addItemTags(item, TagAPI.NAMED_FABRIC_SHEARS, TagAPI.NAMED_COMMON_ITEM_SHEARS);
|
||||
DispenserBlock.registerBehavior(item.asItem(), new ShearsDispenseItemBehavior());
|
||||
}
|
||||
|
||||
|
|
|
@ -15,7 +15,6 @@ import net.minecraft.world.level.levelgen.placement.PlacedFeature;
|
|||
import org.jetbrains.annotations.Nullable;
|
||||
import ru.bclib.BCLib;
|
||||
import ru.bclib.api.biomes.BiomeAPI;
|
||||
import ru.bclib.config.Configs;
|
||||
import ru.bclib.util.WeightedList;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
|
|
@ -2,7 +2,6 @@ package ru.bclib.world.biomes;
|
|||
|
||||
import net.minecraft.world.level.biome.Biome;
|
||||
import ru.bclib.config.Configs;
|
||||
import ru.bclib.world.biomes.VanillaBiomeSettings.Builder;
|
||||
|
||||
public class BCLBiomeSettings {
|
||||
public static Builder createBCL(){
|
||||
|
|
|
@ -106,9 +106,10 @@ public abstract class NBTStructureFeature extends DefaultFeature {
|
|||
center = center.offset(0, getYOffset(structure, world, center, random) + 0.5, 0);
|
||||
|
||||
BoundingBox bounds = makeBox(center);
|
||||
StructurePlaceSettings placementData = new StructurePlaceSettings().setRotation(rotation)
|
||||
.setMirror(mirror)
|
||||
.setBoundingBox(bounds);
|
||||
StructurePlaceSettings placementData = new StructurePlaceSettings()
|
||||
.setRotation(rotation)
|
||||
.setMirror(mirror)
|
||||
.setBoundingBox(bounds);
|
||||
addStructureData(placementData);
|
||||
center = center.offset(-offset.getX() * 0.5, 0, -offset.getZ() * 0.5);
|
||||
structure.placeInWorld(world, center, center, placementData, random, 4);
|
||||
|
@ -140,11 +141,11 @@ public abstract class NBTStructureFeature extends DefaultFeature {
|
|||
mut.setZ(z);
|
||||
mut.setY(surfMax);
|
||||
BlockState state = world.getBlockState(mut);
|
||||
if (!state.is(TagAPI.BLOCK_GEN_TERRAIN) && state.isFaceSturdy(world, mut, Direction.DOWN)) {
|
||||
if (!isTerrain(state) && state.isFaceSturdy(world, mut, Direction.DOWN)) {
|
||||
for (int i = 0; i < 10; i++) {
|
||||
mut.setY(mut.getY() - 1);
|
||||
BlockState stateSt = world.getBlockState(mut);
|
||||
if (!stateSt.is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
if (!isTerrain(stateSt)) {
|
||||
if (merge == TerrainMerge.SURFACE) {
|
||||
boolean isTop = mut.getY() == surfMax && state.getMaterial().isSolidBlocking();
|
||||
Biome b = world.getBiome(mut);
|
||||
|
@ -156,7 +157,7 @@ public abstract class NBTStructureFeature extends DefaultFeature {
|
|||
}
|
||||
}
|
||||
else {
|
||||
if (stateSt.is(TagAPI.BLOCK_END_GROUND) && state.getMaterial().isSolidBlocking()) {
|
||||
if (isTerrain(state) && state.getMaterial().isSolidBlocking()) {
|
||||
if (merge == TerrainMerge.SURFACE) {
|
||||
Biome b = world.getBiome(mut);
|
||||
BlockState bottom = BiomeAPI.findUnderMaterial(b).orElse(defaultBlock);
|
||||
|
@ -178,6 +179,10 @@ public abstract class NBTStructureFeature extends DefaultFeature {
|
|||
return true;
|
||||
}
|
||||
|
||||
private boolean isTerrain(BlockState state) {
|
||||
return state.is(TagAPI.COMMON_BLOCK_END_STONES) || state.is(TagAPI.COMMON_BLOCK_NETHER_STONES);
|
||||
}
|
||||
|
||||
protected BoundingBox makeBox(BlockPos pos) {
|
||||
int sx = ((pos.getX() >> 4) << 4) - 16;
|
||||
int sz = ((pos.getZ() >> 4) << 4) - 16;
|
||||
|
@ -210,7 +215,7 @@ public abstract class NBTStructureFeature extends DefaultFeature {
|
|||
return template;
|
||||
}
|
||||
|
||||
public static enum TerrainMerge {
|
||||
public enum TerrainMerge {
|
||||
NONE, SURFACE, OBJECT;
|
||||
|
||||
public static TerrainMerge getFromString(String type) {
|
||||
|
|
|
@ -4,8 +4,6 @@ import net.minecraft.core.Registry;
|
|||
import net.minecraft.world.level.biome.Biome;
|
||||
import net.minecraft.world.level.biome.BiomeSource;
|
||||
import ru.bclib.api.biomes.BiomeAPI;
|
||||
import ru.bclib.world.biomes.BCLBiome;
|
||||
import ru.bclib.world.biomes.BCLBiomeSettings;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue