From 4af930e7a717ccbdbb82acc4e8775d8b4d536b78 Mon Sep 17 00:00:00 2001 From: "petrak@" Date: Sat, 21 Jan 2023 13:23:24 -0600 Subject: [PATCH] data: genned --- .../844611d4af49e23072b8a888c8e73c6c5d8c0768 | 3 ++ .../hexcasting/action/per_world_pattern.json | 12 ++++++ .../action/requires_enlightenment.json | 13 +++++++ .../hexcasting/common/lib/hex/HexActions.java | 3 +- .../common/lib/hex/HexEvalSounds.java | 3 +- .../common/lib/hex/HexIotaTypes.java | 3 +- .../common/lib/hex/HexSpecialHandlers.java | 3 +- .../datagen/tag/HexActionTagProvider.java | 38 +++++++++++++++++++ .../{ => tag}/HexBlockTagProvider.java | 2 +- .../datagen/{ => tag}/HexItemTagProvider.java | 2 +- .../03e4de26f1265135874f8cdcaebc09d9c08eb42b | 2 +- .../67cce32b1c3cbbcb1f646605f4914e3f196986c2 | 2 +- .../75bcd4dba6ca7d365462b0ec45e291d1056349c4 | 2 +- .../9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e | 2 +- .../hexcasting/fabric/FabricHexInitializer.kt | 9 +++-- .../datagen/HexFabricDataGenerators.java | 4 +- .../hexcasting/forge/ForgeHexInitializer.java | 12 +++--- .../forge/datagen/HexForgeDataGenerators.java | 9 ++++- .../forge/interop/jei/PatternDrawable.java | 9 +++-- 19 files changed, 103 insertions(+), 30 deletions(-) create mode 100644 Common/src/generated/resources/.cache/844611d4af49e23072b8a888c8e73c6c5d8c0768 create mode 100644 Common/src/generated/resources/data/hexcasting/tags/hexcasting/action/per_world_pattern.json create mode 100644 Common/src/generated/resources/data/hexcasting/tags/hexcasting/action/requires_enlightenment.json create mode 100644 Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexActionTagProvider.java rename Common/src/main/java/at/petrak/hexcasting/datagen/{ => tag}/HexBlockTagProvider.java (98%) rename Common/src/main/java/at/petrak/hexcasting/datagen/{ => tag}/HexItemTagProvider.java (98%) diff --git a/Common/src/generated/resources/.cache/844611d4af49e23072b8a888c8e73c6c5d8c0768 b/Common/src/generated/resources/.cache/844611d4af49e23072b8a888c8e73c6c5d8c0768 new file mode 100644 index 00000000..74f865db --- /dev/null +++ b/Common/src/generated/resources/.cache/844611d4af49e23072b8a888c8e73c6c5d8c0768 @@ -0,0 +1,3 @@ +// 1.19.2 2023-01-21T13:20:42.592825003 Tags for hexcasting:action +7684713a5311ad151b5591d22757988c8462d647 data/hexcasting/tags/hexcasting/action/per_world_pattern.json +9eb0b98603394a44b9202d1ff6778a539edfdfa4 data/hexcasting/tags/hexcasting/action/requires_enlightenment.json diff --git a/Common/src/generated/resources/data/hexcasting/tags/hexcasting/action/per_world_pattern.json b/Common/src/generated/resources/data/hexcasting/tags/hexcasting/action/per_world_pattern.json new file mode 100644 index 00000000..fb547c1a --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/tags/hexcasting/action/per_world_pattern.json @@ -0,0 +1,12 @@ +{ + "values": [ + "hexcasting:lightning", + "hexcasting:flight", + "hexcasting:create_lava", + "hexcasting:teleport", + "hexcasting:sentinel/create/great", + "hexcasting:dispel_rain", + "hexcasting:summon_rain", + "hexcasting:brainsweep" + ] +} \ No newline at end of file diff --git a/Common/src/generated/resources/data/hexcasting/tags/hexcasting/action/requires_enlightenment.json b/Common/src/generated/resources/data/hexcasting/tags/hexcasting/action/requires_enlightenment.json new file mode 100644 index 00000000..75caecfe --- /dev/null +++ b/Common/src/generated/resources/data/hexcasting/tags/hexcasting/action/requires_enlightenment.json @@ -0,0 +1,13 @@ +{ + "values": [ + "hexcasting:lightning", + "hexcasting:flight", + "hexcasting:create_lava", + "hexcasting:teleport", + "hexcasting:sentinel/create/great", + "hexcasting:dispel_rain", + "hexcasting:summon_rain", + "hexcasting:brainsweep", + "hexcasting:akashic/write" + ] +} \ No newline at end of file diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexActions.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexActions.java index 721c20a3..78fa78a3 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexActions.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexActions.java @@ -557,8 +557,7 @@ public class HexActions { return are; } - public static void register() { - BiConsumer r = (type, id) -> Registry.register(REGISTRY, id, type); + public static void register(BiConsumer r) { for (var e : ACTIONS.entrySet()) { r.accept(e.getValue(), e.getKey()); } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexEvalSounds.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexEvalSounds.java index a711146b..ecbc5332 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexEvalSounds.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexEvalSounds.java @@ -38,8 +38,7 @@ public class HexEvalSounds { return sound; } - public static void register() { - BiConsumer r = (type, id) -> Registry.register(REGISTRY, id, type); + public static void register(BiConsumer r) { for (var e : SOUNDS.entrySet()) { r.accept(e.getValue(), e.getKey()); } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexIotaTypes.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexIotaTypes.java index 5109c087..8d5def2d 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexIotaTypes.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexIotaTypes.java @@ -179,8 +179,7 @@ public class HexIotaTypes { return type.color(); } - public static void registerTypes() { - BiConsumer, ResourceLocation> r = (type, id) -> Registry.register(REGISTRY, id, type); + public static void registerTypes(BiConsumer, ResourceLocation> r) { for (var e : TYPES.entrySet()) { r.accept(e.getValue(), e.getKey()); } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexSpecialHandlers.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexSpecialHandlers.java index f31f3044..af21ee21 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexSpecialHandlers.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexSpecialHandlers.java @@ -33,8 +33,7 @@ public class HexSpecialHandlers { return handler; } - public static void register() { - BiConsumer, ResourceLocation> r = (type, id) -> Registry.register(REGISTRY, id, type); + public static void register(BiConsumer, ResourceLocation> r) { for (var e : SPECIAL_HANDLERS.entrySet()) { r.accept(e.getValue(), e.getKey()); } diff --git a/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexActionTagProvider.java b/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexActionTagProvider.java new file mode 100644 index 00000000..aa1eedbd --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexActionTagProvider.java @@ -0,0 +1,38 @@ +package at.petrak.hexcasting.datagen.tag; + +import at.petrak.hexcasting.api.casting.ActionRegistryEntry; +import at.petrak.hexcasting.api.mod.HexTags; +import at.petrak.hexcasting.xplat.IXplatAbstractions; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.tags.TagsProvider; +import net.minecraft.resources.ResourceKey; + +import static at.petrak.hexcasting.api.HexAPI.modLoc; + +public class HexActionTagProvider extends TagsProvider { + public HexActionTagProvider(DataGenerator generator) { + super(generator, IXplatAbstractions.INSTANCE.getActionRegistry()); + } + + @Override + protected void addTags() { + // In-game almost all great spells are always per-world + for (var normalGreat : new String[]{ + "lightning", "flight", "create_lava", "teleport", "sentinel/create/great", + "dispel_rain", "summon_rain", "brainsweep" + }) { + var loc = modLoc(normalGreat); + var key = ResourceKey.create(IXplatAbstractions.INSTANCE.getActionRegistry().key(), loc); + tag(HexTags.Actions.REQUIRES_ENLIGHTENMENT).add(key); + tag(HexTags.Actions.PER_WORLD_PATTERN).add(key); + } + + for (var onlyEnlighten : new String[]{ + "akashic/write", + }) { + var loc = modLoc(onlyEnlighten); + var key = ResourceKey.create(IXplatAbstractions.INSTANCE.getActionRegistry().key(), loc); + tag(HexTags.Actions.REQUIRES_ENLIGHTENMENT).add(key); + } + } +} diff --git a/Common/src/main/java/at/petrak/hexcasting/datagen/HexBlockTagProvider.java b/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexBlockTagProvider.java similarity index 98% rename from Common/src/main/java/at/petrak/hexcasting/datagen/HexBlockTagProvider.java rename to Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexBlockTagProvider.java index 263b90f1..0894f1cd 100644 --- a/Common/src/main/java/at/petrak/hexcasting/datagen/HexBlockTagProvider.java +++ b/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexBlockTagProvider.java @@ -1,4 +1,4 @@ -package at.petrak.hexcasting.datagen; +package at.petrak.hexcasting.datagen.tag; import at.petrak.hexcasting.api.mod.HexTags; import at.petrak.hexcasting.common.lib.HexBlocks; diff --git a/Common/src/main/java/at/petrak/hexcasting/datagen/HexItemTagProvider.java b/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexItemTagProvider.java similarity index 98% rename from Common/src/main/java/at/petrak/hexcasting/datagen/HexItemTagProvider.java rename to Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexItemTagProvider.java index 4a724b61..2ea0f8e6 100644 --- a/Common/src/main/java/at/petrak/hexcasting/datagen/HexItemTagProvider.java +++ b/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexItemTagProvider.java @@ -1,4 +1,4 @@ -package at.petrak.hexcasting.datagen; +package at.petrak.hexcasting.datagen.tag; import at.petrak.hexcasting.api.mod.HexTags; import at.petrak.hexcasting.common.lib.HexItems; diff --git a/Fabric/src/generated/resources/.cache/03e4de26f1265135874f8cdcaebc09d9c08eb42b b/Fabric/src/generated/resources/.cache/03e4de26f1265135874f8cdcaebc09d9c08eb42b index 40812693..6bbac1c9 100644 --- a/Fabric/src/generated/resources/.cache/03e4de26f1265135874f8cdcaebc09d9c08eb42b +++ b/Fabric/src/generated/resources/.cache/03e4de26f1265135874f8cdcaebc09d9c08eb42b @@ -1,4 +1,4 @@ -// 1.19.2 2022-12-29T13:31:04.089602837 Tags for minecraft:item +// 1.19.2 2023-01-21T13:21:56.749293749 Tags for minecraft:item 5928bad07d3872bb60f29ef4f3c885c8e1967c20 data/hexcasting/tags/items/phial_base.json fdb48f194d7937ab6b423fa4b90a4d438bf6dd90 data/minecraft/tags/items/wooden_doors.json e5df19a1dc6eadf14cd9b0f0fe45a74330b745e9 data/hexcasting/tags/items/edified_planks.json diff --git a/Fabric/src/generated/resources/.cache/67cce32b1c3cbbcb1f646605f4914e3f196986c2 b/Fabric/src/generated/resources/.cache/67cce32b1c3cbbcb1f646605f4914e3f196986c2 index b8815f06..5b0192b2 100644 --- a/Fabric/src/generated/resources/.cache/67cce32b1c3cbbcb1f646605f4914e3f196986c2 +++ b/Fabric/src/generated/resources/.cache/67cce32b1c3cbbcb1f646605f4914e3f196986c2 @@ -1,4 +1,4 @@ -// 1.19.2 2022-12-29T13:31:04.07610805 LootTables +// 1.19.2 2023-01-21T13:21:56.793259038 LootTables 01a50f557196c705c275722015cf893e0abe6425 data/hexcasting/loot_tables/inject/scroll_loot_many.json dec1d3592e82f99d9e059d9c771530f103b2bda5 data/hexcasting/loot_tables/blocks/empty_directrix.json 2c42fc5d8c74c98ad15b8bd50f56541fccbef750 data/hexcasting/loot_tables/blocks/edified_tile.json diff --git a/Fabric/src/generated/resources/.cache/75bcd4dba6ca7d365462b0ec45e291d1056349c4 b/Fabric/src/generated/resources/.cache/75bcd4dba6ca7d365462b0ec45e291d1056349c4 index ecf16b72..4d845417 100644 --- a/Fabric/src/generated/resources/.cache/75bcd4dba6ca7d365462b0ec45e291d1056349c4 +++ b/Fabric/src/generated/resources/.cache/75bcd4dba6ca7d365462b0ec45e291d1056349c4 @@ -1,4 +1,4 @@ -// 1.19.2 2022-12-29T13:31:04.07186608 Tags for minecraft:block +// 1.19.2 2023-01-21T13:21:56.751752593 Tags for minecraft:block 20183cd61968ff6548df2dde1100b6378d68d64b data/minecraft/tags/blocks/wooden_buttons.json 357eddf3cee6f16725bed0701d57b2ca3097d74d data/minecraft/tags/blocks/mineable/shovel.json 5216ba5c57db29b8dee9aebc63a2e3b17c97dc17 data/minecraft/tags/blocks/wooden_trapdoors.json diff --git a/Fabric/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e b/Fabric/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e index 9e9a9a14..b291e45c 100644 --- a/Fabric/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e +++ b/Fabric/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e @@ -1,4 +1,4 @@ -// 1.19.2 2022-12-29T13:31:04.05733867 Recipes +// 1.19.2 2023-01-21T13:21:56.764789809 Recipes 858dada9c41974f5aa80c66423bf371c9e176a53 data/hexcasting/recipes/pride_colorizer_demigirl.json bb0f91c534c888d1cff8793b49986dce236c7b2d data/hexcasting/advancements/recipes/hexcasting.creative_tab/dye_colorizer_white.json 9f75d3e93ecbbbf3ed9a92b2943397e09dcae1a9 data/hexcasting/recipes/dye_colorizer_light_blue.json diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexInitializer.kt b/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexInitializer.kt index ea08dad1..423e0849 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexInitializer.kt +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexInitializer.kt @@ -33,6 +33,7 @@ import at.petrak.hexcasting.fabric.recipe.FabricModConditionalIngredient import at.petrak.hexcasting.fabric.recipe.FabricUnsealedIngredient import at.petrak.hexcasting.fabric.storage.FabricImpetusStorage import at.petrak.hexcasting.interop.HexInterop +import at.petrak.hexcasting.xplat.IXplatAbstractions import io.github.tropheusj.serialization_hooks.ingredient.IngredientDeserializer import net.fabricmc.api.ModInitializer import net.fabricmc.fabric.api.command.v2.ArgumentTypeRegistry @@ -122,10 +123,10 @@ object FabricHexInitializer : ModInitializer { HexLootFunctions.registerSerializers(bind(Registry.LOOT_FUNCTION_TYPE)) - HexActions.register() - HexSpecialHandlers.register() - HexIotaTypes.registerTypes() - HexEvalSounds.register() + HexIotaTypes.registerTypes(bind(IXplatAbstractions.INSTANCE.iotaTypeRegistry)) + HexActions.register(bind(IXplatAbstractions.INSTANCE.actionRegistry)) + HexSpecialHandlers.register(bind(IXplatAbstractions.INSTANCE.specialHandlerRegistry)) + HexEvalSounds.register(bind(IXplatAbstractions.INSTANCE.evalSoundRegistry)) // Because of Java's lazy-loading of classes, can't use Kotlin static initialization for // any calls that will eventually touch FeatureUtils.register(), as the growers here do, diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/datagen/HexFabricDataGenerators.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/datagen/HexFabricDataGenerators.java index 5e4239df..5379a969 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/datagen/HexFabricDataGenerators.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/datagen/HexFabricDataGenerators.java @@ -1,12 +1,12 @@ package at.petrak.hexcasting.fabric.datagen; import at.petrak.hexcasting.api.HexAPI; -import at.petrak.hexcasting.datagen.HexBlockTagProvider; -import at.petrak.hexcasting.datagen.HexItemTagProvider; import at.petrak.hexcasting.datagen.HexLootTables; import at.petrak.hexcasting.datagen.IXplatIngredients; import at.petrak.hexcasting.datagen.recipe.HexplatRecipes; import at.petrak.hexcasting.datagen.recipe.builders.FarmersDelightToolIngredient; +import at.petrak.hexcasting.datagen.tag.HexBlockTagProvider; +import at.petrak.hexcasting.datagen.tag.HexItemTagProvider; import at.petrak.hexcasting.fabric.recipe.FabricModConditionalIngredient; import at.petrak.hexcasting.xplat.IXplatAbstractions; import com.google.gson.JsonObject; diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexInitializer.java b/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexInitializer.java index b2da25ef..35361d02 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexInitializer.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexInitializer.java @@ -105,18 +105,18 @@ public class ForgeHexInitializer { bind(Registry.PARTICLE_TYPE_REGISTRY, HexParticles::registerParticles); - ForgeHexArgumentTypeRegistry.ARGUMENT_TYPES.register(getModEventBus()); + bind(IXplatAbstractions.INSTANCE.getIotaTypeRegistry().key(), HexIotaTypes::registerTypes); + bind(IXplatAbstractions.INSTANCE.getActionRegistry().key(), HexActions::register); + bind(IXplatAbstractions.INSTANCE.getSpecialHandlerRegistry().key(), HexSpecialHandlers::register); + bind(IXplatAbstractions.INSTANCE.getEvalSoundRegistry().key(), HexEvalSounds::register); - HexActions.register(); - HexSpecialHandlers.register(); - HexIotaTypes.registerTypes(); - HexEvalSounds.register(); + ForgeHexArgumentTypeRegistry.ARGUMENT_TYPES.register(getModEventBus()); HexAdvancementTriggers.registerTriggers(); } // https://github.com/VazkiiMods/Botania/blob/1.18.x/Forge/src/main/java/vazkii/botania/forge/ForgeCommonInitializer.java - private static void bind(ResourceKey> registry, + private static void bind(ResourceKey> registry, Consumer> source) { getModEventBus().addListener((RegisterEvent event) -> { if (registry.equals(event.getRegistryKey())) { diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/datagen/HexForgeDataGenerators.java b/Forge/src/main/java/at/petrak/hexcasting/forge/datagen/HexForgeDataGenerators.java index bc8f10ee..64c567a7 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/datagen/HexForgeDataGenerators.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/datagen/HexForgeDataGenerators.java @@ -1,9 +1,14 @@ package at.petrak.hexcasting.forge.datagen; import at.petrak.hexcasting.api.HexAPI; -import at.petrak.hexcasting.datagen.*; +import at.petrak.hexcasting.datagen.HexAdvancements; +import at.petrak.hexcasting.datagen.HexLootTables; +import at.petrak.hexcasting.datagen.IXplatIngredients; import at.petrak.hexcasting.datagen.recipe.HexplatRecipes; import at.petrak.hexcasting.datagen.recipe.builders.FarmersDelightToolIngredient; +import at.petrak.hexcasting.datagen.tag.HexActionTagProvider; +import at.petrak.hexcasting.datagen.tag.HexBlockTagProvider; +import at.petrak.hexcasting.datagen.tag.HexItemTagProvider; import at.petrak.hexcasting.forge.datagen.xplat.HexBlockStatesAndModels; import at.petrak.hexcasting.forge.datagen.xplat.HexItemModels; import at.petrak.hexcasting.forge.recipe.ForgeModConditionalIngredient; @@ -46,6 +51,8 @@ public class HexForgeDataGenerators { gen.addProvider(ev.includeClient(), new HexBlockStatesAndModels(gen, efh)); gen.addProvider(ev.includeServer(), PaucalForgeDatagenWrappers.addEFHToAdvancements(new HexAdvancements(gen), efh)); + gen.addProvider(ev.includeServer(), PaucalForgeDatagenWrappers.addEFHToTagProvider( + new HexActionTagProvider(gen), efh)); } private static void configureForgeDatagen(GatherDataEvent ev) { diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/PatternDrawable.java b/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/PatternDrawable.java index 35761271..bbcbf119 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/PatternDrawable.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/PatternDrawable.java @@ -1,9 +1,11 @@ package at.petrak.hexcasting.forge.interop.jei; -import at.petrak.hexcasting.common.casting.PatternRegistryManifest; import at.petrak.hexcasting.api.casting.math.HexCoord; +import at.petrak.hexcasting.api.mod.HexTags; +import at.petrak.hexcasting.api.utils.HexUtils; import at.petrak.hexcasting.interop.utils.PatternDrawingUtil; import at.petrak.hexcasting.interop.utils.PatternEntry; +import at.petrak.hexcasting.xplat.IXplatAbstractions; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.datafixers.util.Pair; import mezz.jei.api.gui.drawable.IDrawable; @@ -24,8 +26,9 @@ public class PatternDrawable implements IDrawable { private final List pathfinderDots; public PatternDrawable(ResourceLocation pattern, int w, int h) { - var entry = PatternRegistryManifest.lookupPattern(pattern); - this.strokeOrder = !entry.isPerWorld(); + var regi = IXplatAbstractions.INSTANCE.getActionRegistry(); + var entry = regi.get(pattern); + this.strokeOrder = !HexUtils.isOfTag(regi, pattern, HexTags.Actions.PER_WORLD_PATTERN); var data = PatternDrawingUtil.loadPatterns( List.of(new Pair<>(entry.prototype(), HexCoord.getOrigin())), 0f,