From dbc6f4b5277dc73087b430c2d97d20b8d75b79b2 Mon Sep 17 00:00:00 2001 From: Niklas Widmann Date: Thu, 18 Apr 2024 10:37:45 +0200 Subject: [PATCH] load knife item lazily --- .../mixins/HarvesterMovementBehaviourMixin.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/possible_triangle/sliceanddice/mixins/HarvesterMovementBehaviourMixin.java b/src/main/java/com/possible_triangle/sliceanddice/mixins/HarvesterMovementBehaviourMixin.java index 1cba95e..40545c0 100644 --- a/src/main/java/com/possible_triangle/sliceanddice/mixins/HarvesterMovementBehaviourMixin.java +++ b/src/main/java/com/possible_triangle/sliceanddice/mixins/HarvesterMovementBehaviourMixin.java @@ -1,5 +1,7 @@ package com.possible_triangle.sliceanddice.mixins; +import com.google.common.base.Supplier; +import com.google.common.base.Suppliers; import com.possible_triangle.sliceanddice.compat.ModCompat; import com.simibubi.create.content.contraptions.actors.harvester.HarvesterMovementBehaviour; import net.minecraft.world.item.ItemStack; @@ -13,7 +15,9 @@ public class HarvesterMovementBehaviourMixin { @Unique - private static final ItemStack sliceanddice$TOOL = ModCompat.INSTANCE.ifLoaded(ModCompat.FARMERS_DELIGHT, () -> new ItemStack(ModItems.IRON_KNIFE.get())); + private static final Supplier sliceanddice$TOOL = Suppliers.memoize(() -> { + return ModCompat.INSTANCE.ifLoaded(ModCompat.FARMERS_DELIGHT, () -> new ItemStack(ModItems.IRON_KNIFE.get())); + }); @ModifyVariable( require = 0, @@ -21,7 +25,8 @@ public class HarvesterMovementBehaviourMixin { at = @At("STORE") ) private ItemStack overwriteDefaultItem(ItemStack stack) { - if (sliceanddice$TOOL != null) return sliceanddice$TOOL; + var tool = sliceanddice$TOOL.get(); + if (tool != null) return tool; return stack; }