Fix Flag.Value to have enum methods for save/load

This commit is contained in:
2025-08-02 08:13:21 +02:00
parent bc371df796
commit 811bd00ed2
5 changed files with 24 additions and 2 deletions

View File

@ -22,6 +22,8 @@ package de.steamwar.bausystem.region;
import de.steamwar.bausystem.region.flags.Flag; import de.steamwar.bausystem.region.flags.Flag;
import lombok.NonNull; import lombok.NonNull;
import java.util.Map;
public interface FlagStorage { public interface FlagStorage {
@NonNull @NonNull
@ -33,4 +35,6 @@ public interface FlagStorage {
<T extends Enum<T> & Flag.Value<T>> FlagOptional<T> get(@NonNull Flag<T> flag); <T extends Enum<T> & Flag.Value<T>> FlagOptional<T> get(@NonNull Flag<T> flag);
void clear(); void clear();
Map<Flag<?>, Flag.Value<?>> getBackedMap();
} }

View File

@ -89,6 +89,10 @@ public final class Flag<T extends Enum<T> & Flag.Value<T>> implements EnumDispla
public interface Value<T extends Enum<T> & Value<T>> extends EnumDisplay { public interface Value<T extends Enum<T> & Value<T>> extends EnumDisplay {
String name();
int ordinal();
T getValue(); T getValue();
T getValueOf(final String name); T getValueOf(final String name);

View File

@ -74,4 +74,9 @@ public class FixedFlagStorage implements FlagStorage {
public void clear() { public void clear() {
flagMap.clear(); flagMap.clear();
} }
@Override
public Map<Flag<?>, Flag.Value<?>> getBackedMap() {
return flagMap;
}
} }

View File

@ -78,4 +78,9 @@ public class FixedGlobalFlagStorage implements FlagStorage {
public void clear() { public void clear() {
flagMap.clear(); flagMap.clear();
} }
@Override
public Map<Flag<?>, Flag.Value<?>> getBackedMap() {
return flagMap;
}
} }

View File

@ -28,9 +28,13 @@ import java.util.UUID;
public class FixedRegion implements Region { public class FixedRegion implements Region {
private UUID uuid; private UUID uuid;
private FixedFlagStorage flagStorage;
private Prototype prototype;
public FixedRegion(String name) { public FixedRegion(String name, FixedFlagStorage flagStorage, Prototype prototype) {
uuid = UUID.nameUUIDFromBytes(name.getBytes(StandardCharsets.UTF_8)); uuid = UUID.nameUUIDFromBytes(name.getBytes(StandardCharsets.UTF_8));
this.flagStorage = flagStorage;
this.prototype = prototype;
} }
@Override @Override
@ -45,7 +49,7 @@ public class FixedRegion implements Region {
@Override @Override
public @NonNull FlagStorage getFlags() { public @NonNull FlagStorage getFlags() {
return null; return flagStorage;
} }
@Override @Override