Skip to content

Commit c216139

Browse files
authored
Merge pull request #225 from Patbox/26.1
Add support for migrating old world data to new format
2 parents fcb17c8 + 9b51438 commit c216139

3 files changed

Lines changed: 39 additions & 1 deletion

File tree

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import java.net.URI
33

44
plugins {
55
id("net.fabricmc.fabric-loom") version "1.15-SNAPSHOT"
6-
id("io.github.ladysnake.chenille") version "0.18.0-SNAPSHOT"
6+
id("io.github.ladysnake.chenille") version "0.18.0"
77
}
88

99
val fabricApiVersion: String = providers.gradleProperty("fabric_api_version").get()
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
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+
}

cardinal-components-level/src/main/resources/mixins.cardinal_components_level.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"package": "org.ladysnake.cca.mixin.level",
66
"mixins": [
77
"common.DataFixTypesMixin",
8+
"common.MixinDimensionStorageFileFix",
89
"common.MixinLevel",
910
"common.MixinPlayerList",
1011
"common.MixinServerLevel"

0 commit comments

Comments
 (0)