56 lines
2.3 KiB
Java
56 lines
2.3 KiB
Java
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<Component> tooltip, boolean isPlayerSneaking, CallbackInfoReturnable<Boolean> 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");
|
|
}
|
|
}
|
|
}
|