From b0bdbb7d76bb02254fc990092978c875818e066b Mon Sep 17 00:00:00 2001 From: "yrsegal@gmail.com" Date: Thu, 9 Jun 2022 17:01:47 -0400 Subject: [PATCH 1/3] fix some villager and rendering jank --- .../hexcasting/api/misc/FrozenColorizer.java | 3 +-- .../hexcasting/client/ClientTickCounter.java | 25 ++++++++----------- .../client/HexAdditionalRenderers.java | 2 +- .../at/petrak/hexcasting/client/RenderLib.kt | 2 +- .../client/gui/PatternTooltipGreeble.java | 2 +- .../fabric/FabricHexClientInitializer.kt | 1 - .../event/VillagerConversionCallback.java | 3 +-- .../fabric/interop/emi/VillagerEmiStack.java | 2 +- .../fabric/interop/rei/VillagerWidget.java | 2 +- .../fabric/mixin/FabricMobMixin.java | 21 ++++++++++++++++ .../main/resources/fabricasting.mixins.json | 7 +++--- .../forge/ForgeHexClientInitializer.java | 2 -- .../interop/jei/BrainsweepRecipeCategory.java | 2 +- 13 files changed, 43 insertions(+), 31 deletions(-) create mode 100644 Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricMobMixin.java diff --git a/Common/src/main/java/at/petrak/hexcasting/api/misc/FrozenColorizer.java b/Common/src/main/java/at/petrak/hexcasting/api/misc/FrozenColorizer.java index 902b4060..19652762 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/misc/FrozenColorizer.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/misc/FrozenColorizer.java @@ -1,7 +1,6 @@ package at.petrak.hexcasting.api.misc; import at.petrak.hexcasting.api.addldata.Colorizer; -import at.petrak.hexcasting.api.utils.HexUtils; import at.petrak.hexcasting.common.items.colorizer.ItemPrideColorizer; import at.petrak.hexcasting.common.lib.HexItems; import at.petrak.hexcasting.xplat.IXplatAbstractions; @@ -45,7 +44,7 @@ public record FrozenColorizer(ItemStack item, UUID owner) { public CompoundTag serializeToNBT() { var out = new CompoundTag(); - out.put(TAG_STACK, HexUtils.serializeToNBT(this.item)); + out.put(TAG_STACK, this.item.save(new CompoundTag())); out.putUUID(TAG_OWNER, this.owner); return out; } diff --git a/Common/src/main/java/at/petrak/hexcasting/client/ClientTickCounter.java b/Common/src/main/java/at/petrak/hexcasting/client/ClientTickCounter.java index d0f39320..213b3433 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/ClientTickCounter.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/ClientTickCounter.java @@ -1,28 +1,23 @@ package at.petrak.hexcasting.client; +import net.minecraft.client.Minecraft; + public class ClientTickCounter { public static long ticksInGame = 0L; public static float partialTicks = 0.0F; - public static float delta = 0.0F; - public static float total = 0.0F; + + public static float getTotal() { + return (float)ticksInGame + partialTicks; + } public static void renderTickStart(float renderTickTime) { partialTicks = renderTickTime; } - public static void renderTickEnd() { - calcDelta(); - } - public static void clientTickEnd() { - ++ticksInGame; - partialTicks = 0.0F; - calcDelta(); - } - - private static void calcDelta() { - float oldTotal = total; - total = (float)ticksInGame + partialTicks; - delta = total - oldTotal; + if (!Minecraft.getInstance().isPaused()) { + ++ticksInGame; + partialTicks = 0.0F; + } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/client/HexAdditionalRenderers.java b/Common/src/main/java/at/petrak/hexcasting/client/HexAdditionalRenderers.java index 208b7251..f8aa0d5e 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/HexAdditionalRenderers.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/HexAdditionalRenderers.java @@ -60,7 +60,7 @@ public class HexAdditionalRenderers { sentinel.position().y - playerPos.y, sentinel.position().z - playerPos.z); - var time = ClientTickCounter.total / 2; + var time = ClientTickCounter.getTotal() / 2; var bobSpeed = 1f / 20; var magnitude = 0.1f; ps.translate(0, Mth.sin(bobSpeed * time) * magnitude, 0); diff --git a/Common/src/main/java/at/petrak/hexcasting/client/RenderLib.kt b/Common/src/main/java/at/petrak/hexcasting/client/RenderLib.kt index 878ce561..cb081678 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/RenderLib.kt +++ b/Common/src/main/java/at/petrak/hexcasting/client/RenderLib.kt @@ -185,7 +185,7 @@ fun makeZappy(points: List, hops: Int, variance: Float, speed: Float, flow return emptyList() } val scaleVariance = { it: Double -> 1.0.coerceAtMost(8 * (0.5 - abs(0.5 - it))) } - val zSeed = ClientTickCounter.total.toDouble() * speed + val zSeed = ClientTickCounter.getTotal().toDouble() * speed // Create our output list of zap points val zappyPts = mutableListOf(points[0]) // For each segment in the original... diff --git a/Common/src/main/java/at/petrak/hexcasting/client/gui/PatternTooltipGreeble.java b/Common/src/main/java/at/petrak/hexcasting/client/gui/PatternTooltipGreeble.java index 55737834..1c6493d9 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/gui/PatternTooltipGreeble.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/gui/PatternTooltipGreeble.java @@ -77,7 +77,7 @@ public class PatternTooltipGreeble implements ClientTooltipComponent, TooltipCom outer, outer, null); RenderLib.drawLineSeq(mat, this.zappyPoints, 2f, 0, innerDark, innerLight, - ClientTickCounter.total / 40f); + ClientTickCounter.getTotal() / 40f); RenderLib.drawSpot(mat, this.zappyPoints.get(0), 2.5f, 1f, 0.1f, 0.15f, 0.6f); for (var dot : this.pathfinderDots) { diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexClientInitializer.kt b/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexClientInitializer.kt index 27f9c0f1..36fcecda 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexClientInitializer.kt +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexClientInitializer.kt @@ -31,7 +31,6 @@ object FabricHexClientInitializer : ClientModInitializer { } HudRenderCallback.EVENT.register(HexAdditionalRenderers::overlayGui) WorldRenderEvents.START.register { ClientTickCounter.renderTickStart(it.tickDelta()) } - WorldRenderEvents.END.register { ClientTickCounter.renderTickEnd() } ClientTickEvents.END_CLIENT_TICK.register { ClientTickCounter.clientTickEnd() } MouseScrollCallback.EVENT.register(ShiftScrollListener::onScroll) diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/event/VillagerConversionCallback.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/event/VillagerConversionCallback.java index 770a1f0b..184015e2 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/event/VillagerConversionCallback.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/event/VillagerConversionCallback.java @@ -3,7 +3,6 @@ package at.petrak.hexcasting.fabric.event; import net.fabricmc.fabric.api.event.Event; import net.fabricmc.fabric.api.event.EventFactory; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.npc.Villager; // https://fabricmc.net/wiki/tutorial:events @@ -20,5 +19,5 @@ public interface VillagerConversionCallback { } }); - void interact(Villager original, LivingEntity outcome); + void interact(LivingEntity original, LivingEntity outcome); } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/VillagerEmiStack.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/VillagerEmiStack.java index 41dd22c6..a03a3a47 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/VillagerEmiStack.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/VillagerEmiStack.java @@ -164,7 +164,7 @@ public class VillagerEmiStack extends EmiStack { RenderSystem.enableBlend(); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - renderEntity(poseStack, villager, level, x + 8, y + 16, ClientTickCounter.total, 8, 0, + renderEntity(poseStack, villager, level, x + 8, y + 16, ClientTickCounter.getTotal(), 8, 0, mindless ? (it) -> new FakeBufferSource(it, HexRenderTypes::getGrayscaleLayer) : it -> it); } } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/rei/VillagerWidget.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/rei/VillagerWidget.java index 5b76d40a..6e00ab9a 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/rei/VillagerWidget.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/rei/VillagerWidget.java @@ -38,7 +38,7 @@ public class VillagerWidget extends Widget { RenderSystem.enableBlend(); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - renderEntity(poseStack, displayVillager, level, 50 + x, 62.5f + y, ClientTickCounter.total, 20, 0); + renderEntity(poseStack, displayVillager, level, 50 + x, 62.5f + y, ClientTickCounter.getTotal(), 20, 0); } if (isMouseOver(mouseX, mouseY)) diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricMobMixin.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricMobMixin.java new file mode 100644 index 00000000..e2464313 --- /dev/null +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/FabricMobMixin.java @@ -0,0 +1,21 @@ +package at.petrak.hexcasting.fabric.mixin; + +import at.petrak.hexcasting.fabric.event.VillagerConversionCallback; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.Mob; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(Mob.class) +public class FabricMobMixin { + @Inject(method = "convertTo", at = @At("RETURN")) + public void onThunderHit(EntityType entityType, boolean bl, CallbackInfoReturnable cir) { + var self = (Mob) (Object) this; + var mob = cir.getReturnValue(); + if (mob != null) { + VillagerConversionCallback.EVENT.invoker().interact(self, mob); + } + } +} diff --git a/Fabric/src/main/resources/fabricasting.mixins.json b/Fabric/src/main/resources/fabricasting.mixins.json index 43c7a019..de84b8d2 100644 --- a/Fabric/src/main/resources/fabricasting.mixins.json +++ b/Fabric/src/main/resources/fabricasting.mixins.json @@ -10,12 +10,13 @@ "FabricEnchantmentTableBlockMixin", "FabricItemEntityMixin", "FabricLivingEntityMixin", - "FabricVillagerTurnIntoWitchMixin" + "FabricVillagerTurnIntoWitchMixin", + "FabricMobMixin" ], "client": [ "client.FabricAbstractTextureMixin", + "client.FabricMixinGameRenderer", "client.FabricMouseHandlerMixin", - "client.FabricParticleEngineMixin", - "client.FabricMixinGameRenderer" + "client.FabricParticleEngineMixin" ] } diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexClientInitializer.java b/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexClientInitializer.java index f68da760..2bf43a09 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexClientInitializer.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexClientInitializer.java @@ -34,8 +34,6 @@ public class ForgeHexClientInitializer { evBus.addListener((TickEvent.RenderTickEvent e) -> { if (e.phase == TickEvent.Phase.START) { ClientTickCounter.renderTickStart(e.renderTickTime); - } else { - ClientTickCounter.renderTickEnd(); } }); diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/BrainsweepRecipeCategory.java b/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/BrainsweepRecipeCategory.java index 108fbe52..844bd450 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/BrainsweepRecipeCategory.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/BrainsweepRecipeCategory.java @@ -82,7 +82,7 @@ public class BrainsweepRecipeCategory implements IRecipeCategory Date: Thu, 9 Jun 2022 17:02:19 -0400 Subject: [PATCH 2/3] make some progress towards fixing fabulous conjures --- .../client/particles/ConjureParticle.java | 7 +++--- .../blocks/entity/BlockEntityConjured.java | 22 +++++++++---------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/Common/src/main/java/at/petrak/hexcasting/client/particles/ConjureParticle.java b/Common/src/main/java/at/petrak/hexcasting/client/particles/ConjureParticle.java index 622152bb..86611a5a 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/particles/ConjureParticle.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/particles/ConjureParticle.java @@ -33,13 +33,11 @@ public class ConjureParticle extends TextureSheetParticle { this.quadSize *= light ? 0.9f : 0.75f; this.setParticleSpeed(dx, dy, dz); - var lightness = light ? 0.3f : 1.0f; var r = FastColor.ARGB32.red(color); var g = FastColor.ARGB32.green(color); var b = FastColor.ARGB32.blue(color); - var a = FastColor.ARGB32.alpha(color); - this.setColor(r / 255f * lightness, g / 255f * lightness, b / 255f * lightness); - this.setAlpha(a / 255f * lightness); + this.setColor(r / 255f, g / 255f, b / 255f); + this.setAlpha(light ? 0.3f : 1.0f); this.friction = 0.96F; this.gravity = light && dy != 0 && dx != 0 && dz != 0 ? -0.01F : 0F; @@ -63,6 +61,7 @@ public class ConjureParticle extends TextureSheetParticle { this.setSpriteFromAge(this.sprites); this.alpha = 1.0f - ((float) this.age / (float) this.lifetime); if (light) { + this.alpha *= 0.3f; this.quadSize *= 0.96f; } } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/blocks/entity/BlockEntityConjured.java b/Common/src/main/java/at/petrak/hexcasting/common/blocks/entity/BlockEntityConjured.java index 319bfa81..f7bfac78 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/blocks/entity/BlockEntityConjured.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/blocks/entity/BlockEntityConjured.java @@ -73,18 +73,16 @@ public class BlockEntityConjured extends HexBlockEntity { } public void landParticle(Entity entity, int number) { - if (getBlockState().getBlock() instanceof BlockConjuredLight) { - for (int i = 0; i < number * 2; i++) { - int color = this.colorizer.getColor(entity.tickCount, entity.position() - .add(new Vec3(RANDOM.nextFloat(), RANDOM.nextFloat(), RANDOM.nextFloat()).scale( - RANDOM.nextFloat() * 3))); - assert level != null; - level.addParticle(new ConjureParticleOptions(color, false), - entity.getX() + (RANDOM.nextFloat() * 0.8D) - 0.2D, - getBlockPos().getY() + (RANDOM.nextFloat() * 0.05D) + 0.95D, - entity.getZ() + (RANDOM.nextFloat() * 0.8D) - 0.2D, - 0.0, 0.0, 0.0); - } + for (int i = 0; i < number * 2; i++) { + int color = this.colorizer.getColor(entity.tickCount, entity.position() + .add(new Vec3(RANDOM.nextFloat(), RANDOM.nextFloat(), RANDOM.nextFloat()).scale( + RANDOM.nextFloat() * 3))); + assert level != null; + level.addParticle(new ConjureParticleOptions(color, false), + entity.getX() + (RANDOM.nextFloat() * 0.8D) - 0.2D, + getBlockPos().getY() + (RANDOM.nextFloat() * 0.05D) + 0.95D, + entity.getZ() + (RANDOM.nextFloat() * 0.8D) - 0.2D, + 0.0, 0.0, 0.0); } } From 481a9aef5def383ab24f98ec5b1f1a9f3701727c Mon Sep 17 00:00:00 2001 From: "yrsegal@gmail.com" Date: Thu, 9 Jun 2022 19:18:24 -0400 Subject: [PATCH 3/3] don't use valueOf explicitly --- .../at/petrak/hexcasting/api/spell/SpellDatum.kt | 5 +++-- .../java/at/petrak/hexcasting/api/spell/Widget.kt | 9 +++++++++ .../hexcasting/api/spell/casting/ResolvedPattern.kt | 6 +----- .../api/spell/casting/ResolvedPatternType.kt | 12 +++++++++++- .../at/petrak/hexcasting/api/spell/math/HexDir.kt | 10 ++++++++++ .../interop/patchouli/ManualPatternComponent.java | 2 +- 6 files changed, 35 insertions(+), 9 deletions(-) diff --git a/Common/src/main/java/at/petrak/hexcasting/api/spell/SpellDatum.kt b/Common/src/main/java/at/petrak/hexcasting/api/spell/SpellDatum.kt index c7116ea8..a7405ab0 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/spell/SpellDatum.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/spell/SpellDatum.kt @@ -159,7 +159,7 @@ class SpellDatum private constructor(val payload: T) { SpellDatum(SpellList.fromNBT(nbt.getList(key, Tag.TAG_COMPOUND), world)) } TAG_WIDGET -> { - SpellDatum(Widget.valueOf(nbt.getString(key))) + SpellDatum(Widget.fromString(nbt.getString(key))) } TAG_PATTERN -> { SpellDatum(HexPattern.fromNBT(nbt.getCompound(TAG_PATTERN))) @@ -214,7 +214,8 @@ class SpellDatum private constructor(val payload: T) { out += "]".white } TAG_WIDGET -> { - val widget = Widget.valueOf(nbt.getString(key)) + val widget = Widget.fromString(nbt.getString(key)) + out += if (widget == Widget.GARBAGE) "arimfexendrapuse".darkGray.obfuscated else diff --git a/Common/src/main/java/at/petrak/hexcasting/api/spell/Widget.kt b/Common/src/main/java/at/petrak/hexcasting/api/spell/Widget.kt index 353c8631..50fba977 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/spell/Widget.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/spell/Widget.kt @@ -1,6 +1,7 @@ package at.petrak.hexcasting.api.spell import at.petrak.hexcasting.api.spell.casting.CastingContext +import java.util.* /** * Miscellaneous spell datums used as markers, etc. @@ -17,4 +18,12 @@ enum class Widget : ConstManaOperator { override fun execute(args: List>, ctx: CastingContext): List> = this.asSpellResult + + companion object { + @JvmStatic + fun fromString(key: String): Widget { + val lowercaseKey = key.lowercase(Locale.ROOT) + return values().firstOrNull { it.name.lowercase(Locale.ROOT) == lowercaseKey } ?: GARBAGE + } + } } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/ResolvedPattern.kt b/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/ResolvedPattern.kt index 1b560957..0413f64c 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/ResolvedPattern.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/ResolvedPattern.kt @@ -20,11 +20,7 @@ data class ResolvedPattern(val pattern: HexPattern, val origin: HexCoord, var ty fun fromNBT(tag: CompoundTag): ResolvedPattern { val pattern = HexPattern.fromNBT(tag.getCompound("Pattern")) val origin = HexCoord(tag.getInt("OriginQ"), tag.getInt("OriginR")) - val valid = try { - ResolvedPatternType.valueOf(tag.getString("Valid").uppercase(Locale.ROOT)) - } catch (e: IllegalArgumentException) { - ResolvedPatternType.UNRESOLVED - } + val valid = ResolvedPatternType.fromString(tag.getString("Valid")) return ResolvedPattern(pattern, origin, valid) } } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/ResolvedPatternType.kt b/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/ResolvedPatternType.kt index 73de2142..822a30d4 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/ResolvedPatternType.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/spell/casting/ResolvedPatternType.kt @@ -1,9 +1,19 @@ package at.petrak.hexcasting.api.spell.casting +import java.util.* + enum class ResolvedPatternType(val color: Int, val fadeColor: Int, val success: Boolean) { UNRESOLVED(0x7f7f7f, 0xcccccc, false), EVALUATED(0x7385de, 0xfecbe6, true), ESCAPED(0xddcc73, 0xfffae5, true), ERRORED(0xde6262, 0xffc7a0, false), - INVALID(0xb26b6b, 0xcca88e, false) + INVALID(0xb26b6b, 0xcca88e, false); + + companion object { + @JvmStatic + fun fromString(key: String): ResolvedPatternType { + val lowercaseKey = key.lowercase(Locale.ROOT) + return values().firstOrNull { it.name.lowercase(Locale.ROOT) == lowercaseKey } ?: UNRESOLVED + } + } } diff --git a/Common/src/main/java/at/petrak/hexcasting/api/spell/math/HexDir.kt b/Common/src/main/java/at/petrak/hexcasting/api/spell/math/HexDir.kt index ada9c922..1b704fd6 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/spell/math/HexDir.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/spell/math/HexDir.kt @@ -1,5 +1,7 @@ package at.petrak.hexcasting.api.spell.math +import java.util.* + enum class HexDir { NORTH_EAST, EAST, SOUTH_EAST, SOUTH_WEST, WEST, NORTH_WEST; @@ -22,4 +24,12 @@ enum class HexDir { WEST -> HexCoord(-1, 0) NORTH_WEST -> HexCoord(0, -1) } + + companion object { + @JvmStatic + fun fromString(key: String): HexDir { + val lowercaseKey = key.lowercase(Locale.ROOT) + return values().firstOrNull { it.name.lowercase(Locale.ROOT) == lowercaseKey } ?: WEST + } + } } diff --git a/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/ManualPatternComponent.java b/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/ManualPatternComponent.java index 52ea972a..ba6f8b05 100644 --- a/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/ManualPatternComponent.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/patchouli/ManualPatternComponent.java @@ -34,7 +34,7 @@ public class ManualPatternComponent extends AbstractPatternComponent { JsonElement json = ivar.unwrap(); RawPattern raw = new Gson().fromJson(json, RawPattern.class); - var dir = HexDir.valueOf(raw.startdir); + var dir = HexDir.fromString(raw.startdir); var pat = HexPattern.fromAngles(raw.signature, dir); var origin = new HexCoord(raw.q, raw.r); out.add(new Pair<>(pat, origin));