30 lines
998 B
Java
30 lines
998 B
Java
package net.minecraft.world.level.saveddata.maps;
|
|
|
|
import com.mojang.serialization.Codec;
|
|
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
|
import net.minecraft.util.datafix.DataFixTypes;
|
|
import net.minecraft.world.level.saveddata.SavedData;
|
|
import net.minecraft.world.level.saveddata.SavedDataType;
|
|
|
|
public class MapIndex extends SavedData {
|
|
private static final int NO_MAP_ID = -1;
|
|
public static final Codec<MapIndex> CODEC = RecordCodecBuilder.create(
|
|
instance -> instance.group(Codec.INT.optionalFieldOf("map", -1).forGetter(mapIndex -> mapIndex.lastMapId)).apply(instance, MapIndex::new)
|
|
);
|
|
public static final SavedDataType<MapIndex> TYPE = new SavedDataType<>("idcounts", MapIndex::new, CODEC, DataFixTypes.SAVED_DATA_MAP_INDEX);
|
|
private int lastMapId;
|
|
|
|
public MapIndex() {
|
|
this(-1);
|
|
}
|
|
|
|
public MapIndex(int lastMapId) {
|
|
this.lastMapId = lastMapId;
|
|
}
|
|
|
|
public MapId getNextMapId() {
|
|
MapId mapId = new MapId(++this.lastMapId);
|
|
this.setDirty();
|
|
return mapId;
|
|
}
|
|
}
|