From 9edf024a901344d86f6860accc3ac033c279103a Mon Sep 17 00:00:00 2001 From: Exa <11907282+Exaxxion@users.noreply.github.com> Date: Tue, 1 Jun 2021 16:53:06 -0700 Subject: [PATCH 1/3] Implement workaround for fuel log spam bug See #23; a proper fix needs to rework how we represent custom cakes. --- .../block/BlockCustomCake.java | 40 ++++++++++++++++++- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/src/main/java/jackyy/dimensionaledibles/block/BlockCustomCake.java b/src/main/java/jackyy/dimensionaledibles/block/BlockCustomCake.java index 3a2f182..b7c51cd 100644 --- a/src/main/java/jackyy/dimensionaledibles/block/BlockCustomCake.java +++ b/src/main/java/jackyy/dimensionaledibles/block/BlockCustomCake.java @@ -5,6 +5,8 @@ import jackyy.dimensionaledibles.item.*; import jackyy.dimensionaledibles.registry.*; import jackyy.dimensionaledibles.util.*; +import mcjty.theoneprobe.api.*; +import mcp.mobius.waila.api.*; import net.minecraft.block.*; import net.minecraft.block.state.*; import net.minecraft.creativetab.*; @@ -20,8 +22,10 @@ import javax.annotation.*; -import static jackyy.dimensionaledibles.DimensionalEdibles.logger; -import static net.minecraftforge.common.DimensionManager.isDimensionRegistered; +import java.util.*; + +import static jackyy.dimensionaledibles.DimensionalEdibles.*; +import static net.minecraftforge.common.DimensionManager.*; public class BlockCustomCake extends BlockCakeBase implements ITileEntityProvider { @@ -222,4 +226,36 @@ public ModConfig.CustomCoords customCoords(int dim) { @Override @Nonnull public ItemStack defaultFuel() { return ItemStack.EMPTY; } + + /* + These overrides work around the bug causing log spam in tooltips when + looking at a cake. We should still consider splitting up custom cakes + into separate objects per dimension as hot-swapping state is brittle. + */ + @Override + public void addProbeInfo(ProbeMode mode, + IProbeInfo probeInfo, + EntityPlayer player, + World world, + IBlockState blockState, + IProbeHitData data) { + + int dim = getDimension(world, data.getPos()); + if(!isDimensionRegistered(dim)) + return; + this.cakeDimension = dim; + super.addProbeInfo(mode, probeInfo, player, world, blockState, data); + } + + @Override + public List getWailaBody(ItemStack itemStack, + List currentTip, + IWailaDataAccessor accessor, + IWailaConfigHandler config) { + int dim = getDimension(accessor.getWorld(), accessor.getPosition()); + if(!isDimensionRegistered(dim)) + return Collections.emptyList(); + this.cakeDimension = dim; + return super.getWailaBody(itemStack, currentTip, accessor, config); + } } From 6b1477cff7d776a4e113685eb1e4672436439508 Mon Sep 17 00:00:00 2001 From: Exa <11907282+Exaxxion@users.noreply.github.com> Date: Tue, 1 Jun 2021 17:18:16 -0700 Subject: [PATCH 2/3] Remove short-circuiting dimension check logic Dimension validation only matters during teleport, no need for it here. Ensures that overlays will still show up for the cake. --- .../dimensionaledibles/block/BlockCustomCake.java | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/main/java/jackyy/dimensionaledibles/block/BlockCustomCake.java b/src/main/java/jackyy/dimensionaledibles/block/BlockCustomCake.java index b7c51cd..441afd3 100644 --- a/src/main/java/jackyy/dimensionaledibles/block/BlockCustomCake.java +++ b/src/main/java/jackyy/dimensionaledibles/block/BlockCustomCake.java @@ -239,11 +239,7 @@ public void addProbeInfo(ProbeMode mode, World world, IBlockState blockState, IProbeHitData data) { - - int dim = getDimension(world, data.getPos()); - if(!isDimensionRegistered(dim)) - return; - this.cakeDimension = dim; + this.cakeDimension = getDimension(world, data.getPos()); super.addProbeInfo(mode, probeInfo, player, world, blockState, data); } @@ -252,10 +248,7 @@ public List getWailaBody(ItemStack itemStack, List currentTip, IWailaDataAccessor accessor, IWailaConfigHandler config) { - int dim = getDimension(accessor.getWorld(), accessor.getPosition()); - if(!isDimensionRegistered(dim)) - return Collections.emptyList(); - this.cakeDimension = dim; + this.cakeDimension = getDimension(accessor.getWorld(), accessor.getPosition()); return super.getWailaBody(itemStack, currentTip, accessor, config); } } From b41e5fda388a99fba7451cf3fc399ac9faaa6902 Mon Sep 17 00:00:00 2001 From: Exa <11907282+Exaxxion@users.noreply.github.com> Date: Tue, 1 Jun 2021 17:49:26 -0700 Subject: [PATCH 3/3] Revert inadvertent static imports change --- .../java/jackyy/dimensionaledibles/block/BlockCustomCake.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/jackyy/dimensionaledibles/block/BlockCustomCake.java b/src/main/java/jackyy/dimensionaledibles/block/BlockCustomCake.java index 441afd3..38236c9 100644 --- a/src/main/java/jackyy/dimensionaledibles/block/BlockCustomCake.java +++ b/src/main/java/jackyy/dimensionaledibles/block/BlockCustomCake.java @@ -24,8 +24,8 @@ import java.util.*; -import static jackyy.dimensionaledibles.DimensionalEdibles.*; -import static net.minecraftforge.common.DimensionManager.*; +import static jackyy.dimensionaledibles.DimensionalEdibles.logger; +import static net.minecraftforge.common.DimensionManager.isDimensionRegistered; public class BlockCustomCake extends BlockCakeBase implements ITileEntityProvider {