some progress; BlockPos(vec) is now BlockPos.containing(vec). Materials are gone, so block properties seem to be mostly made by copying from other blocks and changing relevant things. Data generation seems to have changed, and recipes need a recipe category.

This commit is contained in:
Talia-12 2023-06-19 23:01:33 +10:00
parent 1342c8cbef
commit 67a32a6267
11 changed files with 156 additions and 134 deletions

View file

@ -3,6 +3,8 @@ package at.petrak.hexcasting.api.mod;
import at.petrak.hexcasting.api.casting.ActionRegistryEntry;
import at.petrak.hexcasting.xplat.IXplatAbstractions;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.TagKey;
import net.minecraft.world.entity.EntityType;
@ -29,7 +31,7 @@ public class HexTags {
}
public static TagKey<Item> create(ResourceLocation id) {
return TagKey.create(Registry.ITEM_REGISTRY, id);
return TagKey.create(Registries.ITEM, id);
}
}
@ -43,7 +45,7 @@ public class HexTags {
public static final TagKey<Block> MINDFLAYED_CIRCLE_COMPONENTS = create("brainswept_circle_components");
public static TagKey<Block> create(String name) {
return TagKey.create(Registry.BLOCK_REGISTRY, modLoc(name));
return TagKey.create(Registries.BLOCK, modLoc(name));
}
}
@ -54,7 +56,7 @@ public class HexTags {
public static final TagKey<EntityType<?>> NO_BRAINSWEEPING = create("cannot_brainsweep");
public static TagKey<EntityType<?>> create(String name) {
return TagKey.create(Registry.ENTITY_TYPE_REGISTRY, modLoc(name));
return TagKey.create(Registries.ENTITY_TYPE, modLoc(name));
}
}

View file

@ -4,12 +4,13 @@ import at.petrak.hexcasting.annotations.SoftImplement;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.WoodButtonBlock;
import net.minecraft.world.level.block.ButtonBlock;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.BlockSetType;
public class BlockHexWoodButton extends WoodButtonBlock {
public class BlockHexWoodButton extends ButtonBlock {
public BlockHexWoodButton(Properties $$0) {
super($$0);
super($$0, BlockSetType.DARK_OAK, 30, true);
}

View file

@ -21,7 +21,7 @@ object OpBreakBlock : SpellAction {
ctx: CastingEnvironment
): SpellAction.Result {
val vecPos = args.getVec3(0, argc)
val pos = BlockPos(vecPos)
val pos = BlockPos.containing(vecPos)
ctx.assertPosInRangeForEditing(pos)
return SpellAction.Result(

View file

@ -39,7 +39,7 @@ object OpColorize : SpellAction {
private data class Spell(val stack: ItemStack) : RenderedSpell {
override fun cast(ctx: CastingEnvironment) {
val copy = stack.copy()
if (ctx.withdrawItem(copy::sameItem, 1, true))
if (ctx.withdrawItem({ ItemStack.isSameItemSameTags(copy, it) }, 1, true))
ctx.setPigment(FrozenPigment(copy, ctx.caster?.uuid ?: Util.NIL_UUID))
}
}

View file

@ -24,7 +24,7 @@ class OpConjureBlock(val light: Boolean) : SpellAction {
ctx: CastingEnvironment
): SpellAction.Result {
val vecPos = args.getVec3(0, argc)
val pos = BlockPos(vecPos)
val pos = BlockPos.containing(vecPos)
ctx.assertPosInRangeForEditing(pos)
val placeContext = DirectionalPlaceContext(ctx.world, pos, Direction.DOWN, ItemStack.EMPTY, Direction.UP)

View file

@ -24,7 +24,7 @@ class OpCreateFluid(val cost: Int, val bucket: Item, val cauldron: BlockState, v
ctx: CastingEnvironment
): SpellAction.Result {
val vecPos = args.getVec3(0, argc)
val pos = BlockPos(vecPos)
val pos = BlockPos.containing(vecPos)
if (!ctx.canEditBlockAt(pos) || !IXplatAbstractions.INSTANCE.isPlacingAllowed(
ctx.world,

View file

@ -16,7 +16,6 @@ import net.minecraft.sounds.SoundSource
import net.minecraft.world.level.block.*
import net.minecraft.world.level.block.entity.BlockEntity
import net.minecraft.world.level.material.Fluids
import net.minecraft.world.level.material.Material
import net.minecraft.world.phys.Vec3
object OpDestroyFluid : SpellAction {
@ -26,7 +25,7 @@ object OpDestroyFluid : SpellAction {
ctx: CastingEnvironment
): SpellAction.Result {
val vecPos = args.getVec3(0, argc)
val pos = BlockPos(vecPos)
val pos = BlockPos.containing(vecPos)
ctx.assertPosInRangeForEditing(pos)
return SpellAction.Result(

View file

@ -25,8 +25,7 @@ import net.minecraft.world.item.Item;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.level.block.*;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.material.Material;
import net.minecraft.world.level.material.MaterialColor;
import net.minecraft.world.level.material.MapColor;
import java.util.LinkedHashMap;
import java.util.Map;
@ -50,42 +49,49 @@ public class HexBlocks {
private static final Map<ResourceLocation, Block> BLOCKS = new LinkedHashMap<>();
private static final Map<ResourceLocation, Pair<Block, Item.Properties>> BLOCK_ITEMS = new LinkedHashMap<>();
private static BlockBehaviour.Properties slateish() {
return BlockBehaviour.Properties
.of(Material.STONE, MaterialColor.DEEPSLATE)
.sound(SoundType.DEEPSLATE_TILES)
.copy(Blocks.DEEPSLATE_TILES)
.strength(4f, 4f);
}
private static BlockBehaviour.Properties papery(MaterialColor color) {
private static BlockBehaviour.Properties papery(MapColor color) {
return BlockBehaviour.Properties
.of(Material.PLANT, color)
.copy(Blocks.TALL_GRASS)
.mapColor(color)
.sound(SoundType.GRASS)
.instabreak();
}
private static BlockBehaviour.Properties akashicWoodyHard() {
return woodyHard(MaterialColor.COLOR_PURPLE);
return woodyHard(MapColor.COLOR_PURPLE);
}
private static BlockBehaviour.Properties woodyHard(MaterialColor color) {
return BlockBehaviour.Properties.of(Material.WOOD, color)
private static BlockBehaviour.Properties woodyHard(MapColor color) {
return BlockBehaviour.Properties
.copy(Blocks.OAK_LOG)
.mapColor(color)
.sound(SoundType.WOOD)
.strength(3f, 4f);
}
private static BlockBehaviour.Properties edifiedWoody() {
return woody(MaterialColor.COLOR_PURPLE);
return woody(MapColor.COLOR_PURPLE);
}
private static BlockBehaviour.Properties woody(MaterialColor color) {
return BlockBehaviour.Properties.of(Material.WOOD, color)
private static BlockBehaviour.Properties woody(MapColor color) {
return BlockBehaviour.Properties
.copy(Blocks.OAK_LOG)
.mapColor(color)
.sound(SoundType.WOOD)
.strength(2f);
}
private static BlockBehaviour.Properties leaves(MaterialColor color) {
return BlockBehaviour.Properties.of(Material.LEAVES, color)
private static BlockBehaviour.Properties leaves(MapColor color) {
return BlockBehaviour.Properties
.copy(Blocks.OAK_LEAVES)
.strength(0.2F)
.randomTicks()
.sound(SoundType.GRASS)
@ -98,15 +104,16 @@ public class HexBlocks {
// we have to make it emit light because otherwise it occludes itself and is always dark
private static BlockBehaviour.Properties quenched() {
return BlockBehaviour.Properties
.copy(Blocks.AMETHYST_BLOCK)
.lightLevel($ -> 4)
.noOcclusion();
.copy(Blocks.AMETHYST_BLOCK)
.lightLevel($ -> 4)
.noOcclusion();
}
// we give these faux items so Patchi can have an item to view with
public static final Block CONJURED_LIGHT = blockItem("conjured_light",
new BlockConjuredLight(
BlockBehaviour.Properties.of(Material.GLASS, MaterialColor.NONE)
BlockBehaviour.Properties.of()
.mapColor(MapColor.NONE)
.sound(SoundType.AMETHYST)
.lightLevel((state) -> 15)
.noLootTable()
@ -118,7 +125,8 @@ public class HexBlocks {
new Item.Properties());
public static final Block CONJURED_BLOCK = blockItem("conjured_block",
new BlockConjured(
BlockBehaviour.Properties.of(Material.GLASS, MaterialColor.NONE)
BlockBehaviour.Properties.of()
.mapColor(MapColor.NONE)
.sound(SoundType.AMETHYST)
.lightLevel((state) -> 2)
.noLootTable()
@ -171,7 +179,7 @@ public class HexBlocks {
public static final Block SLATE_BRICKS_SMALL = blockItem("slate_bricks_small", new Block(slateish().strength(2f, 4f)));
public static final RotatedPillarBlock SLATE_PILLAR = blockItem("slate_pillar", new RotatedPillarBlock(slateish().strength(2f, 4f)));
public static final SandBlock AMETHYST_DUST_BLOCK = blockItem("amethyst_dust_block",
new SandBlock(0xff_b38ef3, BlockBehaviour.Properties.of(Material.SAND, MaterialColor.COLOR_PURPLE)
new SandBlock(0xff_b38ef3, BlockBehaviour.Properties.copy(Blocks.SAND).mapColor(MapColor.COLOR_PURPLE)
.strength(0.5f).sound(SoundType.SAND)));
public static final AmethystBlock AMETHYST_TILES = blockItem("amethyst_tiles",
new AmethystBlock(BlockBehaviour.Properties.copy(Blocks.AMETHYST_BLOCK)));
@ -187,16 +195,17 @@ public class HexBlocks {
public static final RotatedPillarBlock SLATE_AMETHYST_PILLAR = blockItem("slate_amethyst_pillar",
new RotatedPillarBlock(slateish().strength(2f, 4f)));
public static final Block SCROLL_PAPER = blockItem("scroll_paper",
new BlockFlammable(papery(MaterialColor.TERRACOTTA_WHITE), 100, 60));
new BlockFlammable(papery(MapColor.TERRACOTTA_WHITE), 100, 60));
public static final Block ANCIENT_SCROLL_PAPER = blockItem("ancient_scroll_paper",
new BlockFlammable(papery(MaterialColor.TERRACOTTA_ORANGE), 100, 60));
new BlockFlammable(papery(MapColor.TERRACOTTA_ORANGE), 100, 60));
public static final Block SCROLL_PAPER_LANTERN = blockItem("scroll_paper_lantern",
new BlockFlammable(papery(MaterialColor.TERRACOTTA_WHITE).lightLevel($ -> 15), 100, 60));
new BlockFlammable(papery(MapColor.TERRACOTTA_WHITE).lightLevel($ -> 15), 100, 60));
public static final Block ANCIENT_SCROLL_PAPER_LANTERN = blockItem(
"ancient_scroll_paper_lantern",
new BlockFlammable(papery(MaterialColor.TERRACOTTA_ORANGE).lightLevel($ -> 12), 100, 60));
new BlockFlammable(papery(MapColor.TERRACOTTA_ORANGE).lightLevel($ -> 12), 100, 60));
public static final BlockSconce SCONCE = blockItem("amethyst_sconce",
new BlockSconce(BlockBehaviour.Properties.of(Material.AMETHYST, MaterialColor.COLOR_PURPLE)
new BlockSconce(BlockBehaviour.Properties.of()
.mapColor(MapColor.COLOR_PURPLE)
.sound(SoundType.AMETHYST)
.strength(1f)
.lightLevel($ -> 15)),
@ -232,17 +241,17 @@ public class HexBlocks {
new BlockHexStairs(EDIFIED_PLANKS.defaultBlockState(), edifiedWoody().noOcclusion()));
public static final SlabBlock EDIFIED_SLAB = blockItem("edified_slab",
new BlockHexSlab(edifiedWoody().noOcclusion()));
public static final WoodButtonBlock EDIFIED_BUTTON = blockItem("edified_button",
public static final ButtonBlock EDIFIED_BUTTON = blockItem("edified_button",
new BlockHexWoodButton(edifiedWoody().noOcclusion().noCollission()));
public static final PressurePlateBlock EDIFIED_PRESSURE_PLATE = blockItem("edified_pressure_plate",
new BlockHexPressurePlate(PressurePlateBlock.Sensitivity.EVERYTHING,
edifiedWoody().noOcclusion().noCollission()));
public static final BlockAkashicLeaves AMETHYST_EDIFIED_LEAVES = blockItem("amethyst_edified_leaves",
new BlockAkashicLeaves(leaves(MaterialColor.COLOR_PURPLE)));
new BlockAkashicLeaves(leaves(MapColor.COLOR_PURPLE)));
public static final BlockAkashicLeaves AVENTURINE_EDIFIED_LEAVES = blockItem("aventurine_edified_leaves",
new BlockAkashicLeaves(leaves(MaterialColor.COLOR_BLUE)));
new BlockAkashicLeaves(leaves(MapColor.COLOR_BLUE)));
public static final BlockAkashicLeaves CITRINE_EDIFIED_LEAVES = blockItem("citrine_edified_leaves",
new BlockAkashicLeaves(leaves(MaterialColor.COLOR_YELLOW)));
new BlockAkashicLeaves(leaves(MapColor.COLOR_YELLOW)));
private static boolean never(Object... args) {
return false;

View file

@ -21,7 +21,7 @@ import at.petrak.hexcasting.datagen.recipe.builders.CreateCrushingRecipeBuilder;
import at.petrak.hexcasting.datagen.recipe.builders.FarmersDelightCuttingRecipeBuilder;
import at.petrak.paucal.api.datagen.PaucalRecipeProvider;
import net.minecraft.core.Registry;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.PackOutput;
import net.minecraft.data.recipes.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvents;
@ -33,7 +33,6 @@ import net.minecraft.world.item.DyeItem;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.world.item.crafting.SimpleRecipeSerializer;
import net.minecraft.world.level.block.Blocks;
import java.util.List;
@ -42,7 +41,7 @@ import java.util.function.Function;
// TODO: need to do a big refactor of this class cause it's giant and unwieldy, probably as part of #360
public class HexplatRecipes extends PaucalRecipeProvider {
private final DataGenerator generator;
private final PackOutput output;
private final IXplatIngredients ingredients;
private final Function<RecipeBuilder, IXplatConditionsBuilder> conditions;
@ -51,16 +50,16 @@ public class HexplatRecipes extends PaucalRecipeProvider {
HexBlocks.EDIFIED_LOG_AVENTURINE, HexBlocks.EDIFIED_LOG_CITRINE,
HexBlocks.EDIFIED_LOG_PURPLE);
public HexplatRecipes(DataGenerator generator, IXplatIngredients ingredients,
Function<RecipeBuilder, IXplatConditionsBuilder> conditions) {
super(generator, HexAPI.MOD_ID);
this.generator = generator;
public HexplatRecipes(PackOutput output, IXplatIngredients ingredients,
Function<RecipeBuilder, IXplatConditionsBuilder> conditions) {
super(output, HexAPI.MOD_ID);
this.output = output;
this.ingredients = ingredients;
this.conditions = conditions;
}
@Override
protected void makeRecipes(Consumer<FinishedRecipe> recipes) {
protected void buildRecipes(Consumer<FinishedRecipe> recipes) {
specialRecipe(recipes, SealThingsRecipe.FOCUS_SERIALIZER);
specialRecipe(recipes, SealThingsRecipe.SPELLBOOK_SERIALIZER);

View file

@ -4,106 +4,117 @@ import at.petrak.hexcasting.api.mod.HexTags;
import at.petrak.hexcasting.common.lib.HexBlocks;
import at.petrak.hexcasting.xplat.IXplatTags;
import at.petrak.paucal.api.datagen.PaucalBlockTagProvider;
import net.minecraft.data.DataGenerator;
import net.minecraft.core.HolderLookup;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.data.PackOutput;
import net.minecraft.tags.BlockTags;
import net.minecraft.world.level.block.Block;
import java.util.concurrent.CompletableFuture;
public class HexBlockTagProvider extends PaucalBlockTagProvider {
public final IXplatTags xtags;
public HexBlockTagProvider(DataGenerator pGenerator, IXplatTags xtags) {
super(pGenerator);
public HexBlockTagProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> lookupProvider, IXplatTags xtags) {
super(output, lookupProvider);
this.xtags = xtags;
}
@Override
public void addTags() {
tag(HexTags.Blocks.IMPETI)
.add(HexBlocks.IMPETUS_LOOK, HexBlocks.IMPETUS_RIGHTCLICK, HexBlocks.IMPETUS_REDSTONE);
tag(HexTags.Blocks.DIRECTRICES)
.add(HexBlocks.DIRECTRIX_REDSTONE);
protected void addTags(HolderLookup.Provider provider) {
add(tag(HexTags.Blocks.IMPETI),
HexBlocks.IMPETUS_LOOK, HexBlocks.IMPETUS_RIGHTCLICK, HexBlocks.IMPETUS_REDSTONE);
add(tag(HexTags.Blocks.DIRECTRICES),
HexBlocks.DIRECTRIX_REDSTONE);
tag(HexTags.Blocks.MINDFLAYED_CIRCLE_COMPONENTS)
.addTag(HexTags.Blocks.IMPETI)
.addTag(HexTags.Blocks.DIRECTRICES);
tag(BlockTags.MINEABLE_WITH_PICKAXE)
.add(HexBlocks.SLATE_BLOCK, HexBlocks.SLATE_TILES, HexBlocks.SLATE_BRICKS,
HexBlocks.SLATE_BRICKS_SMALL, HexBlocks.SLATE_PILLAR, HexBlocks.SLATE,
HexBlocks.EMPTY_DIRECTRIX, HexBlocks.DIRECTRIX_REDSTONE,
HexBlocks.IMPETUS_EMPTY,
HexBlocks.IMPETUS_RIGHTCLICK, HexBlocks.IMPETUS_LOOK, HexBlocks.IMPETUS_REDSTONE,
HexBlocks.AMETHYST_TILES, HexBlocks.AMETHYST_BRICKS, HexBlocks.AMETHYST_BRICKS_SMALL,
HexBlocks.AMETHYST_PILLAR, HexBlocks.SLATE_AMETHYST_TILES, HexBlocks.SLATE_AMETHYST_BRICKS,
HexBlocks.SLATE_AMETHYST_BRICKS_SMALL, HexBlocks.SLATE_AMETHYST_PILLAR, HexBlocks.SCONCE,
HexBlocks.QUENCHED_ALLAY, HexBlocks.QUENCHED_ALLAY_TILES, HexBlocks.QUENCHED_ALLAY_BRICKS,
HexBlocks.QUENCHED_ALLAY_BRICKS_SMALL);
add(tag(BlockTags.MINEABLE_WITH_PICKAXE),
HexBlocks.SLATE_BLOCK, HexBlocks.SLATE_TILES, HexBlocks.SLATE_BRICKS,
HexBlocks.SLATE_BRICKS_SMALL, HexBlocks.SLATE_PILLAR, HexBlocks.SLATE,
HexBlocks.EMPTY_DIRECTRIX, HexBlocks.DIRECTRIX_REDSTONE,
HexBlocks.IMPETUS_EMPTY,
HexBlocks.IMPETUS_RIGHTCLICK, HexBlocks.IMPETUS_LOOK, HexBlocks.IMPETUS_REDSTONE,
HexBlocks.AMETHYST_TILES, HexBlocks.AMETHYST_BRICKS, HexBlocks.AMETHYST_BRICKS_SMALL,
HexBlocks.AMETHYST_PILLAR, HexBlocks.SLATE_AMETHYST_TILES, HexBlocks.SLATE_AMETHYST_BRICKS,
HexBlocks.SLATE_AMETHYST_BRICKS_SMALL, HexBlocks.SLATE_AMETHYST_PILLAR, HexBlocks.SCONCE,
HexBlocks.QUENCHED_ALLAY, HexBlocks.QUENCHED_ALLAY_TILES, HexBlocks.QUENCHED_ALLAY_BRICKS,
HexBlocks.QUENCHED_ALLAY_BRICKS_SMALL);
tag(BlockTags.MINEABLE_WITH_SHOVEL)
.add(HexBlocks.AMETHYST_DUST_BLOCK);
add(tag(BlockTags.MINEABLE_WITH_SHOVEL),
HexBlocks.AMETHYST_DUST_BLOCK);
tag(BlockTags.MINEABLE_WITH_AXE)
.add(HexBlocks.AKASHIC_RECORD, HexBlocks.AKASHIC_BOOKSHELF, HexBlocks.AKASHIC_LIGATURE,
HexBlocks.EDIFIED_LOG, HexBlocks.EDIFIED_LOG_AMETHYST,
HexBlocks.EDIFIED_LOG_AVENTURINE, HexBlocks.EDIFIED_LOG_CITRINE,
HexBlocks.EDIFIED_LOG_PURPLE, HexBlocks.STRIPPED_EDIFIED_LOG,
HexBlocks.EDIFIED_WOOD, HexBlocks.STRIPPED_EDIFIED_WOOD,
HexBlocks.EDIFIED_PLANKS, HexBlocks.EDIFIED_PANEL, HexBlocks.EDIFIED_TILE,
HexBlocks.EDIFIED_DOOR, HexBlocks.EDIFIED_TRAPDOOR, HexBlocks.EDIFIED_SLAB,
HexBlocks.EDIFIED_BUTTON, HexBlocks.EDIFIED_STAIRS);
add(tag(BlockTags.MINEABLE_WITH_AXE),
HexBlocks.AKASHIC_RECORD, HexBlocks.AKASHIC_BOOKSHELF, HexBlocks.AKASHIC_LIGATURE,
HexBlocks.EDIFIED_LOG, HexBlocks.EDIFIED_LOG_AMETHYST,
HexBlocks.EDIFIED_LOG_AVENTURINE, HexBlocks.EDIFIED_LOG_CITRINE,
HexBlocks.EDIFIED_LOG_PURPLE, HexBlocks.STRIPPED_EDIFIED_LOG,
HexBlocks.EDIFIED_WOOD, HexBlocks.STRIPPED_EDIFIED_WOOD,
HexBlocks.EDIFIED_PLANKS, HexBlocks.EDIFIED_PANEL, HexBlocks.EDIFIED_TILE,
HexBlocks.EDIFIED_DOOR, HexBlocks.EDIFIED_TRAPDOOR, HexBlocks.EDIFIED_SLAB,
HexBlocks.EDIFIED_BUTTON, HexBlocks.EDIFIED_STAIRS);
tag(BlockTags.MINEABLE_WITH_HOE)
.add(HexBlocks.AMETHYST_EDIFIED_LEAVES, HexBlocks.AVENTURINE_EDIFIED_LEAVES,
HexBlocks.CITRINE_EDIFIED_LEAVES);
add(tag(BlockTags.MINEABLE_WITH_HOE),
HexBlocks.AMETHYST_EDIFIED_LEAVES, HexBlocks.AVENTURINE_EDIFIED_LEAVES,
HexBlocks.CITRINE_EDIFIED_LEAVES);
tag(BlockTags.CRYSTAL_SOUND_BLOCKS)
.add(HexBlocks.CONJURED_LIGHT, HexBlocks.CONJURED_BLOCK, HexBlocks.AMETHYST_TILES,
HexBlocks.SCONCE);
add(tag(BlockTags.CRYSTAL_SOUND_BLOCKS),
HexBlocks.CONJURED_LIGHT, HexBlocks.CONJURED_BLOCK, HexBlocks.AMETHYST_TILES,
HexBlocks.SCONCE);
tag(HexTags.Blocks.EDIFIED_LOGS)
.add(HexBlocks.EDIFIED_LOG, HexBlocks.EDIFIED_LOG_AMETHYST,
HexBlocks.EDIFIED_LOG_AVENTURINE, HexBlocks.EDIFIED_LOG_CITRINE,
HexBlocks.EDIFIED_LOG_PURPLE, HexBlocks.STRIPPED_EDIFIED_LOG,
HexBlocks.EDIFIED_WOOD, HexBlocks.STRIPPED_EDIFIED_WOOD);
tag(BlockTags.LOGS)
.add(HexBlocks.EDIFIED_LOG, HexBlocks.EDIFIED_LOG_AMETHYST,
HexBlocks.EDIFIED_LOG_AVENTURINE, HexBlocks.EDIFIED_LOG_CITRINE,
HexBlocks.EDIFIED_LOG_PURPLE, HexBlocks.STRIPPED_EDIFIED_LOG,
HexBlocks.EDIFIED_WOOD, HexBlocks.STRIPPED_EDIFIED_WOOD);
tag(BlockTags.LOGS_THAT_BURN)
.add(HexBlocks.EDIFIED_LOG, HexBlocks.EDIFIED_LOG_AMETHYST,
HexBlocks.EDIFIED_LOG_AVENTURINE, HexBlocks.EDIFIED_LOG_CITRINE,
HexBlocks.EDIFIED_LOG_PURPLE, HexBlocks.STRIPPED_EDIFIED_LOG,
HexBlocks.EDIFIED_WOOD, HexBlocks.STRIPPED_EDIFIED_WOOD);
tag(BlockTags.LEAVES)
.add(HexBlocks.AMETHYST_EDIFIED_LEAVES, HexBlocks.AVENTURINE_EDIFIED_LEAVES,
HexBlocks.CITRINE_EDIFIED_LEAVES);
add(tag(HexTags.Blocks.EDIFIED_LOGS),
HexBlocks.EDIFIED_LOG, HexBlocks.EDIFIED_LOG_AMETHYST,
HexBlocks.EDIFIED_LOG_AVENTURINE, HexBlocks.EDIFIED_LOG_CITRINE,
HexBlocks.EDIFIED_LOG_PURPLE, HexBlocks.STRIPPED_EDIFIED_LOG,
HexBlocks.EDIFIED_WOOD, HexBlocks.STRIPPED_EDIFIED_WOOD);
add(tag(BlockTags.LOGS),
HexBlocks.EDIFIED_LOG, HexBlocks.EDIFIED_LOG_AMETHYST,
HexBlocks.EDIFIED_LOG_AVENTURINE, HexBlocks.EDIFIED_LOG_CITRINE,
HexBlocks.EDIFIED_LOG_PURPLE, HexBlocks.STRIPPED_EDIFIED_LOG,
HexBlocks.EDIFIED_WOOD, HexBlocks.STRIPPED_EDIFIED_WOOD);
add(tag(BlockTags.LOGS_THAT_BURN),
HexBlocks.EDIFIED_LOG, HexBlocks.EDIFIED_LOG_AMETHYST,
HexBlocks.EDIFIED_LOG_AVENTURINE, HexBlocks.EDIFIED_LOG_CITRINE,
HexBlocks.EDIFIED_LOG_PURPLE, HexBlocks.STRIPPED_EDIFIED_LOG,
HexBlocks.EDIFIED_WOOD, HexBlocks.STRIPPED_EDIFIED_WOOD);
add(tag(BlockTags.LEAVES),
HexBlocks.AMETHYST_EDIFIED_LEAVES, HexBlocks.AVENTURINE_EDIFIED_LEAVES,
HexBlocks.CITRINE_EDIFIED_LEAVES);
tag(BlockTags.PLANKS)
.add(HexBlocks.EDIFIED_PLANKS, HexBlocks.EDIFIED_PANEL, HexBlocks.EDIFIED_TILE);
tag(HexTags.Blocks.EDIFIED_PLANKS)
.add(HexBlocks.EDIFIED_PLANKS, HexBlocks.EDIFIED_PANEL, HexBlocks.EDIFIED_TILE);
tag(BlockTags.SLABS)
.add(HexBlocks.EDIFIED_SLAB);
tag(BlockTags.WOODEN_SLABS)
.add(HexBlocks.EDIFIED_SLAB);
tag(BlockTags.STAIRS)
.add(HexBlocks.EDIFIED_STAIRS);
tag(BlockTags.WOODEN_STAIRS)
.add(HexBlocks.EDIFIED_STAIRS);
tag(BlockTags.DOORS)
.add(HexBlocks.EDIFIED_DOOR);
tag(BlockTags.WOODEN_DOORS)
.add(HexBlocks.EDIFIED_DOOR);
tag(BlockTags.TRAPDOORS)
.add(HexBlocks.EDIFIED_TRAPDOOR);
tag(BlockTags.WOODEN_TRAPDOORS)
.add(HexBlocks.EDIFIED_TRAPDOOR);
tag(BlockTags.PRESSURE_PLATES)
.add(HexBlocks.EDIFIED_PRESSURE_PLATE);
tag(BlockTags.WOODEN_PRESSURE_PLATES)
.add(HexBlocks.EDIFIED_PRESSURE_PLATE);
tag(BlockTags.BUTTONS)
.add(HexBlocks.EDIFIED_BUTTON);
tag(BlockTags.WOODEN_BUTTONS)
.add(HexBlocks.EDIFIED_BUTTON);
add(tag(BlockTags.PLANKS),
HexBlocks.EDIFIED_PLANKS, HexBlocks.EDIFIED_PANEL, HexBlocks.EDIFIED_TILE);
add(tag(HexTags.Blocks.EDIFIED_PLANKS),
HexBlocks.EDIFIED_PLANKS, HexBlocks.EDIFIED_PANEL, HexBlocks.EDIFIED_TILE);
add(tag(BlockTags.SLABS),
HexBlocks.EDIFIED_SLAB);
add(tag(BlockTags.WOODEN_SLABS),
HexBlocks.EDIFIED_SLAB);
add(tag(BlockTags.STAIRS),
HexBlocks.EDIFIED_STAIRS);
add(tag(BlockTags.WOODEN_STAIRS),
HexBlocks.EDIFIED_STAIRS);
add(tag(BlockTags.DOORS),
HexBlocks.EDIFIED_DOOR);
add(tag(BlockTags.WOODEN_DOORS),
HexBlocks.EDIFIED_DOOR);
add(tag(BlockTags.TRAPDOORS),
HexBlocks.EDIFIED_TRAPDOOR);
add(tag(BlockTags.WOODEN_TRAPDOORS),
HexBlocks.EDIFIED_TRAPDOOR);
add(tag(BlockTags.PRESSURE_PLATES),
HexBlocks.EDIFIED_PRESSURE_PLATE);
add(tag(BlockTags.WOODEN_PRESSURE_PLATES),
HexBlocks.EDIFIED_PRESSURE_PLATE);
add(tag(BlockTags.BUTTONS),
HexBlocks.EDIFIED_BUTTON);
add(tag(BlockTags.WOODEN_BUTTONS),
HexBlocks.EDIFIED_BUTTON);
}
void add(TagAppender<Block> appender, Block... blocks) {
for (Block block : blocks) {
appender.add(BuiltInRegistries.BLOCK.getResourceKey(block).orElseThrow());
}
}
}

View file

@ -14,6 +14,7 @@ import com.google.gson.JsonObject;
import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint;
import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.TagKey;
import net.minecraft.world.item.*;
@ -101,10 +102,10 @@ public class HexFabricDataGenerators implements DataGeneratorEntrypoint {
out.put(col, new Ingredient(Stream.of(
new Ingredient.ItemValue(new ItemStack(DyeItem.byColor(col))),
new Ingredient.TagValue(
TagKey.create(Registry.ITEM_REGISTRY,
TagKey.create(Registries.ITEM,
new ResourceLocation("c", col.getSerializedName() + "_dye"))),
new Ingredient.TagValue(
TagKey.create(Registry.ITEM_REGISTRY,
TagKey.create(Registries.ITEM,
new ResourceLocation("c", col.getSerializedName() + "_dyes"))
))));
}
@ -147,6 +148,6 @@ public class HexFabricDataGenerators implements DataGeneratorEntrypoint {
}
private static TagKey<Item> tag(String namespace, String s) {
return TagKey.create(Registry.ITEM_REGISTRY, new ResourceLocation(namespace, s));
return TagKey.create(Registries.ITEM, new ResourceLocation(namespace, s));
}
}