Environment Data saving and Floodfill. Added additional data to PartitionPayload and PartitionData for later

This commit is contained in:
XevianLight
2026-01-29 21:43:18 -07:00
parent f3bd3f891a
commit b012528247
30 changed files with 901 additions and 159 deletions

View File

@@ -10,12 +10,16 @@ import net.xevianlight.aphelion.util.registries.ModRegistries;
public record Planet(
ResourceKey<Level> dimension,
double orbitDistance,
ResourceKey<StarSystem> system
ResourceKey<StarSystem> system,
boolean oxygen,
double gravity
) {
public static final Codec<Planet> CODEC = RecordCodecBuilder.create(inst -> inst.group(
ResourceKey.codec(Registries.DIMENSION).fieldOf("dimension").forGetter(Planet::dimension),
Codec.DOUBLE.fieldOf("orbit_distance").forGetter(Planet::orbitDistance),
ResourceKey.codec(ModRegistries.STAR_SYSTEM).fieldOf("star_system").forGetter(Planet::system)
ResourceKey.codec(Registries.DIMENSION).fieldOf("dimension").forGetter(Planet::dimension),
Codec.DOUBLE.fieldOf("orbit_distance").forGetter(Planet::orbitDistance),
ResourceKey.codec(ModRegistries.STAR_SYSTEM).fieldOf("star_system").forGetter(Planet::system),
Codec.BOOL.fieldOf("oxygen").forGetter(Planet::oxygen),
Codec.DOUBLE.fieldOf("gravity").forGetter(Planet::gravity)
).apply(inst, Planet::new));
}

View File

@@ -18,7 +18,9 @@ public final class PlanetCache {
public static final Planet DEFAULT = new Planet(
ResourceKey.create(Registries.DIMENSION, ResourceLocation.withDefaultNamespace("overworld")),
1,
ResourceKey.create(ModRegistries.STAR_SYSTEM, Aphelion.id("sol"))
ResourceKey.create(ModRegistries.STAR_SYSTEM, Aphelion.id("sol")),
true,
1
);
public static void registerPlanets(Map<ResourceLocation, Planet> planets) {