Fixed unexpected behavior on Fossil Cleaner and its recipe handling

Fixed missing Jade compatibility with Fossil Cleaner
This commit is contained in:
2026-05-20 18:29:39 -04:00
parent d2c5ca9e21
commit 9731bf6dc9
3 changed files with 54 additions and 7 deletions
@@ -268,6 +268,53 @@ public class MachineJadePlugin implements IWailaPlugin {
int max = Math.max(1, data.getInt(NBT_MAX)); int max = Math.max(1, data.getInt(NBT_MAX));
float ratio = Mth.clamp(progress / (float) max, 0.0f, 1.0f); float ratio = Mth.clamp(progress / (float) max, 0.0f, 1.0f);
IElementHelper h = IElementHelper.get();
ProgressStyle style = h.progressStyle()
.color(0xFFFFFFFF, 0xFFFFFFFF)
.direction(ScreenDirection.RIGHT)
.fitContentX(true)
.fitContentY(true);
BoxStyle box = BoxStyle.getNestedBox();
IElement bar = h.progress(ratio, Component.empty(), style, box, true);
tooltip.add(bar);
}
*///?} else {
@Override
public void appendTooltip(ITooltip tooltip, BlockAccessor accessor, IPluginConfig config) {
CompoundTag data = accessor.getServerData();
if (!data.contains(NBT_PROGRESS) || !data.contains(NBT_MAX)) return;
int progress = data.getInt(NBT_PROGRESS);
int max = Math.max(1, data.getInt(NBT_MAX));
float ratio = Mth.clamp(progress / (float) max, 0.0f, 1.0f);
IElementHelper h = tooltip.getElementHelper();
IProgressStyle pStyle = h.progressStyle()
.color(0xFFFFFFFF)
.textColor(0xFFFFFFFF);
IBoxStyle box = new ThickBorderBox(1.0f);
tooltip.add(h.progress(ratio, Component.empty(), pStyle, box, false));
}
//?}
@Override
public ResourceLocation getUid() {
return UID;
}
}, FossilCleanerBlock.class
);
reg.registerBlockComponent(new snownee.jade.api.IBlockComponentProvider() {
//? if >1.20.1 {
/*@Override
public void appendTooltip(ITooltip tooltip, BlockAccessor accessor, IPluginConfig config) {
CompoundTag data = accessor.getServerData();
if (data == null || !data.contains(NBT_PROGRESS) || !data.contains(NBT_MAX)) return;
int progress = Math.max(0, data.getInt(NBT_PROGRESS));
int max = Math.max(1, data.getInt(NBT_MAX));
float ratio = Mth.clamp(progress / (float) max, 0.0f, 1.0f);
IElementHelper h = IElementHelper.get(); IElementHelper h = IElementHelper.get();
ProgressStyle style = h.progressStyle() ProgressStyle style = h.progressStyle()
.color(0xFFFFFFFF, 0xFFFFFFFF) .color(0xFFFFFFFF, 0xFFFFFFFF)
@@ -59,8 +59,8 @@ public class FossilCleanerRecipe implements Recipe<FossilCleanerRecipeInput> {
if (level.isClientSide()) return false; if (level.isClientSide()) return false;
if (inputs.isEmpty()) return false; if (inputs.isEmpty()) return false;
// Single fossil block ingredient lives in machine slot 1 (input.getItem(1)) // Single fossil block ingredient lives in machine slot 0 (input.getItem(0))
return inputs.get(0).test(input.getItem(1)); return inputs.get(0).test(input.getItem(0));
} }
//? if >1.20.1 { //? if >1.20.1 {
@@ -10,12 +10,12 @@ import net.minecraft.world.SimpleContainer;
import java.util.List; import java.util.List;
//? if >1.20.1 { //? if >1.20.1 {
/*public record FossilCleanerRecipeInput(ItemStack material, ItemStack fuel) implements RecipeInput { /*public record FossilCleanerRecipeInput(ItemStack fossil, ItemStack waterSlot) implements RecipeInput {
@Override @Override
public ItemStack getItem(int index) { public ItemStack getItem(int index) {
return switch (index) { return switch (index) {
case 0 -> material; case 0 -> fossil;
case 1 -> fuel; case 1 -> waterSlot;
default -> throw new IllegalArgumentException("Unexpected slot index: " + index); default -> throw new IllegalArgumentException("Unexpected slot index: " + index);
}; };
} }
@@ -27,8 +27,8 @@ import java.util.List;
} }
*///?} else { *///?} else {
public class FossilCleanerRecipeInput extends SimpleContainer { public class FossilCleanerRecipeInput extends SimpleContainer {
public FossilCleanerRecipeInput(ItemStack material, ItemStack fuel) { public FossilCleanerRecipeInput(ItemStack fossil, ItemStack waterSlot) {
super(material, fuel); super(fossil, waterSlot);
} }
} }
//?} //?}