Code/net/minecraft/util/datafix/fixes/ChunkDeleteIgnoredLightData...

34 lines
1.2 KiB
Java
Raw Normal View History

2025-07-01 06:20:03 +00:00
package net.minecraft.util.datafix.fixes;
import com.mojang.datafixers.DSL;
import com.mojang.datafixers.DataFix;
import com.mojang.datafixers.OpticFinder;
import com.mojang.datafixers.TypeRewriteRule;
import com.mojang.datafixers.Typed;
import com.mojang.datafixers.schemas.Schema;
import com.mojang.datafixers.types.Type;
import com.mojang.serialization.Dynamic;
public class ChunkDeleteIgnoredLightDataFix extends DataFix {
public ChunkDeleteIgnoredLightDataFix(Schema p_216572_) {
super(p_216572_, true);
}
@Override
protected TypeRewriteRule makeRule() {
Type<?> type = this.getInputSchema().getType(References.CHUNK);
OpticFinder<?> opticfinder = type.findField("sections");
return this.fixTypeEverywhereTyped(
"ChunkDeleteIgnoredLightDataFix",
type,
p_216575_ -> {
boolean flag = p_216575_.get(DSL.remainderFinder()).get("isLightOn").asBoolean(false);
return !flag
? p_216575_.updateTyped(
opticfinder, p_216577_ -> p_216577_.update(DSL.remainderFinder(), p_216579_ -> p_216579_.remove("BlockLight").remove("SkyLight"))
)
: p_216575_;
}
);
}
}