[Fixes] Krypton infusion pedestal can cause endless recursion (by Necrontyrr)

Merge pull request #108 from Necrontyrr/krypton-infusion-fix
This commit is contained in:
Frank 2022-11-18 19:23:46 +01:00 committed by GitHub
commit 170c8edd14
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 4 deletions

View file

@ -84,7 +84,7 @@ public class InfusionPedestal extends PedestalBlock {
BlockState blockState,
BlockEntityType<T> blockEntityType
) {
return InfusionPedestalEntity::tickEnity;
return InfusionPedestalEntity::tickEntity;
}
static {

View file

@ -52,13 +52,15 @@ public class InfusionPedestalEntity extends PedestalBlockEntity {
protected void fromTag(CompoundTag tag) {
super.fromTag(tag);
if (tag.contains("ritual")) {
if (!hasRitual()) {
linkedRitual = new InfusionRitual(this, level, worldPosition);
}
linkedRitual.fromTag(tag.getCompound("ritual"));
linkedRitual.configure();
}
}
public static <T extends BlockEntity> void tickEnity(
public static <T extends BlockEntity> void tickEntity(
Level level,
BlockPos blockPos,
BlockState blockState,

View file

@ -16,6 +16,7 @@ import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.chunk.LevelChunk.EntityCreationType;
import net.minecraft.world.phys.Vec3;
import java.awt.*;
@ -56,7 +57,9 @@ public class InfusionRitual implements Container {
for (int i = 0; i < catalysts.length; i++) {
Point point = PEDESTALS_MAP[i];
MutableBlockPos checkPos = worldPos.mutable().move(Direction.EAST, point.x).move(Direction.NORTH, point.y);
BlockEntity catalystEntity = world.getBlockEntity(checkPos);
BlockEntity catalystEntity = world.isClientSide
? world.getChunkAt(checkPos).getBlockEntity(checkPos, EntityCreationType.CHECK)
: world.getBlockEntity(checkPos);
if (catalystEntity instanceof PedestalBlockEntity) {
catalysts[i] = (PedestalBlockEntity) catalystEntity;
} else {