|
| 1 | +package org.ladysnake.cca.mixin.level.common; |
| 2 | + |
| 3 | +import com.mojang.datafixers.schemas.Schema; |
| 4 | +import net.minecraft.util.filefix.FileFix; |
| 5 | +import net.minecraft.util.filefix.access.FileRelation; |
| 6 | +import net.minecraft.util.filefix.fixes.DimensionStorageFileFix; |
| 7 | +import net.minecraft.util.filefix.operations.FileFixOperations; |
| 8 | +import org.spongepowered.asm.mixin.Mixin; |
| 9 | +import org.spongepowered.asm.mixin.injection.At; |
| 10 | +import org.spongepowered.asm.mixin.injection.Inject; |
| 11 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; |
| 12 | + |
| 13 | +import java.util.List; |
| 14 | +import java.util.Map; |
| 15 | + |
| 16 | +@Mixin(DimensionStorageFileFix.class) |
| 17 | +public abstract class MixinDimensionStorageFileFix extends FileFix { |
| 18 | + public MixinDimensionStorageFileFix(Schema schema) { |
| 19 | + super(schema); |
| 20 | + } |
| 21 | + |
| 22 | + @Inject(method = "makeFixer", at = @At("HEAD")) |
| 23 | + private void customFixers(CallbackInfo ci) { |
| 24 | + // Handle custom dimension data |
| 25 | + this.addFileFixOperation(FileFixOperations.applyInFolders(FileRelation.DIMENSIONS_DATA, |
| 26 | + List.of(FileFixOperations.move("cardinal_world_components.dat", "cardinal-components/world.dat")) |
| 27 | + )); |
| 28 | + |
| 29 | + // Handle vanilla dimensions data (they used different format, so require separate definition) |
| 30 | + this.addFileFixOperation(FileFixOperations.groupMove(Map.of( |
| 31 | + "data", "dimensions/minecraft/overworld/data/cardinal-components", |
| 32 | + "DIM-1/data", "dimensions/minecraft/the_nether/data/cardinal-components", |
| 33 | + "DIM1/data", "dimensions/minecraft/the_end/data/cardinal-components" |
| 34 | + ), |
| 35 | + List.of(FileFixOperations.move("cardinal_world_components.dat", "world.dat")))); |
| 36 | + } |
| 37 | +} |
0 commit comments