This commit is contained in:
Anuken
2026-02-04 13:46:58 -05:00
parent 4c9a1538f7
commit f7a0c59c53

View File

@@ -384,20 +384,22 @@ public class DataPatcher{
}else if(value instanceof JsonValue jsv && object instanceof Block bl && jsv.isObject() && field.equals("consumes")){
Seq<Consume> prevBuilder = Reflect.<Seq<Consume>>get(Block.class, bl, "consumeBuilder").copy();
boolean hadItems = bl.hasItems, hadLiquids = bl.hasLiquids, hadPower = bl.hasPower, acceptedItems = bl.acceptsItems;
reset(() -> {
Runnable resetCons = () -> {
Reflect.set(Block.class, bl, "consumeBuilder", prevBuilder);
bl.reinitializeConsumers();
bl.hasItems = hadItems;
bl.hasLiquids = hadLiquids;
bl.hasPower = hadPower;
bl.acceptsItems = acceptedItems;
});
};
reset(resetCons);
try{
bl.hasPower = false; //if a block doesn't have a power consumer, hasPower should be false. if it does, it will get set to true in reinitializeConsumers
parser.readBlockConsumers(bl, jsv);
bl.reinitializeConsumers();
}catch(Throwable e){
resetCons.run();
Log.err(e);
warn("Failed to read consumers for '@': @", bl, Strings.getSimpleMessage(e));
}