From 4664a819b34cab71c71180ff873a509d291eed91 Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 8 Jul 2022 11:02:44 +0200 Subject: [PATCH] [Fix] Endless recursion in Infusion Ritual (#31) --- .../org/betterx/betterend/blocks/InfusionPedestal.java | 3 +-- .../blocks/entities/InfusionPedestalEntity.java | 10 ++++++---- .../org/betterx/betterend/rituals/InfusionRitual.java | 1 - 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/betterx/betterend/blocks/InfusionPedestal.java b/src/main/java/org/betterx/betterend/blocks/InfusionPedestal.java index 0d565095..a9242067 100644 --- a/src/main/java/org/betterx/betterend/blocks/InfusionPedestal.java +++ b/src/main/java/org/betterx/betterend/blocks/InfusionPedestal.java @@ -41,8 +41,7 @@ public class InfusionPedestal extends PedestalBlock { } pedestal.getRitual().checkRecipe(); } else { - InfusionRitual ritual = new InfusionRitual(pedestal, world, pos); - pedestal.linkRitual(ritual); + InfusionRitual ritual = pedestal.linkRitual(pedestal, world, pos); ritual.checkRecipe(); } } diff --git a/src/main/java/org/betterx/betterend/blocks/entities/InfusionPedestalEntity.java b/src/main/java/org/betterx/betterend/blocks/entities/InfusionPedestalEntity.java index a65f3592..bc1d952e 100644 --- a/src/main/java/org/betterx/betterend/blocks/entities/InfusionPedestalEntity.java +++ b/src/main/java/org/betterx/betterend/blocks/entities/InfusionPedestalEntity.java @@ -10,7 +10,6 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; public class InfusionPedestalEntity extends PedestalBlockEntity { - private InfusionRitual linkedRitual; public InfusionPedestalEntity(BlockPos blockPos, BlockState blockState) { @@ -23,12 +22,14 @@ public class InfusionPedestalEntity extends PedestalBlockEntity { if (hasRitual()) { linkedRitual.setLocation(world, this.getBlockPos()); } else { - linkRitual(new InfusionRitual(this, world, this.getBlockPos())); + linkRitual(this, world, this.getBlockPos()); } } - public void linkRitual(InfusionRitual ritual) { - linkedRitual = ritual; + public InfusionRitual linkRitual(InfusionPedestalEntity pedestal, Level world, BlockPos pos) { + linkedRitual = new InfusionRitual(pedestal, world, pos); + linkedRitual.configure(); + return linkedRitual; } public InfusionRitual getRitual() { @@ -53,6 +54,7 @@ public class InfusionPedestalEntity extends PedestalBlockEntity { if (tag.contains("ritual")) { linkedRitual = new InfusionRitual(this, level, worldPosition); linkedRitual.fromTag(tag.getCompound("ritual")); + linkedRitual.configure(); } } diff --git a/src/main/java/org/betterx/betterend/rituals/InfusionRitual.java b/src/main/java/org/betterx/betterend/rituals/InfusionRitual.java index f8c4dfa5..55a1d6bb 100644 --- a/src/main/java/org/betterx/betterend/rituals/InfusionRitual.java +++ b/src/main/java/org/betterx/betterend/rituals/InfusionRitual.java @@ -47,7 +47,6 @@ public class InfusionRitual implements Container { this.input = pedestal; this.world = world; this.worldPos = pos; - configure(); } public void configure() {