package yourscraft.jasdewstarfield.createlimiteddraining.mixin; import java.util.List; import com.simibubi.create.content.fluids.hosePulley.HosePulleyBlockEntity; import com.simibubi.create.foundation.item.TooltipHelper; import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import yourscraft.jasdewstarfield.createlimiteddraining.common.HosePulleyAccessor; @Mixin(value = HosePulleyBlockEntity.class, remap = false) public class HosePulleyBlockEntityMixin implements HosePulleyAccessor { @Unique private boolean createlimiteddraining$biomeCheckFailed = false; @Unique @Override public void createlimiteddraining$setBiomeCheckFailed(boolean failed) { this.createlimiteddraining$biomeCheckFailed = failed; } @Unique @Override public boolean createlimiteddraining$isBiomeCheckFailed() { return this.createlimiteddraining$biomeCheckFailed; } @Inject(method = "addToGoggleTooltip", at = @At("RETURN")) private void createlimiteddraining$addTooltip(List tooltip, boolean isPlayerSneaking, CallbackInfoReturnable cir) { if (createlimiteddraining$isBiomeCheckFailed()) { TooltipHelper.addHint(tooltip, "hint.hose_pulley.biome_check_failed"); } } @Inject(method = "write", at = @At("HEAD")) private void createlimiteddraining$write(CompoundTag compound, HolderLookup.Provider registries, boolean clientPacket, CallbackInfo ci) { if (clientPacket) { compound.putBoolean("BiomeCheckFailed", createlimiteddraining$biomeCheckFailed); } } @Inject(method = "read", at = @At("HEAD")) private void createlimiteddraining$read(CompoundTag compound, HolderLookup.Provider registries, boolean clientPacket, CallbackInfo ci) { if (clientPacket) { createlimiteddraining$biomeCheckFailed = compound.getBoolean("BiomeCheckFailed"); } } }