Files
Aphelion/src/main/java/net/xevianlight/aphelion/planet/Planet.java
XevianLight 331da7c78f Gravity data
2026-02-03 23:35:41 -07:00

26 lines
1.1 KiB
Java

package net.xevianlight.aphelion.planet;
import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceKey;
import net.minecraft.world.level.Level;
import net.xevianlight.aphelion.util.registries.ModRegistries;
public record Planet(
ResourceKey<Level> dimension,
double orbitDistance,
ResourceKey<StarSystem> system,
boolean oxygen,
float 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),
Codec.BOOL.fieldOf("oxygen").forGetter(Planet::oxygen),
Codec.FLOAT.fieldOf("gravity").forGetter(Planet::gravity)
).apply(inst, Planet::new));
}