refactor: extracted SerializedEntityType enum

This commit is contained in:
Yannik Bretschneider 2021-06-01 00:32:55 +02:00
parent 20f014209a
commit 23777bad33
2 changed files with 31 additions and 9 deletions

View File

@ -0,0 +1,29 @@
package uulm.teamname.marvelous.gamelibrary.json.ingame;
import uulm.teamname.marvelous.gamelibrary.entities.EntityType;
import java.util.HashMap;
import java.util.Map;
public enum SerializedEntityType {
NPC,
Character,
InfinityStone,
Rock;
private static Map<EntityType, SerializedEntityType> entityTypeToDeserialized;
static {
entityTypeToDeserialized = new HashMap<>();
entityTypeToDeserialized.put(EntityType.NPC, NPC);
entityTypeToDeserialized.put(EntityType.P1, Character);
entityTypeToDeserialized.put(EntityType.P2, Character);
entityTypeToDeserialized.put(EntityType.InfinityStones, InfinityStone);
entityTypeToDeserialized.put(EntityType.Rocks, Rock);
}
public static SerializedEntityType valueOf(EntityType entityType) {
return entityTypeToDeserialized.get(entityType);
}
}

View File

@ -1,27 +1,20 @@
package uulm.teamname.marvelous.gamelibrary.json.ingame.deserialize; package uulm.teamname.marvelous.gamelibrary.json.ingame.deserialize;
import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.ObjectCodec; import com.fasterxml.jackson.core.ObjectCodec;
import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import uulm.teamname.marvelous.gamelibrary.IntVector2; import uulm.teamname.marvelous.gamelibrary.IntVector2;
import uulm.teamname.marvelous.gamelibrary.entities.*; import uulm.teamname.marvelous.gamelibrary.entities.*;
import uulm.teamname.marvelous.gamelibrary.entities.Character; import uulm.teamname.marvelous.gamelibrary.entities.Character;
import uulm.teamname.marvelous.gamelibrary.json.config.CharacterConfig; import uulm.teamname.marvelous.gamelibrary.json.config.CharacterConfig;
import uulm.teamname.marvelous.gamelibrary.json.config.CharacterProperties; import uulm.teamname.marvelous.gamelibrary.json.config.CharacterProperties;
import uulm.teamname.marvelous.gamelibrary.json.ingame.SerializedEntityType;
import java.io.IOException; import java.io.IOException;
public class EntityDeserializer extends JsonDeserializer<Entity> { public class EntityDeserializer extends JsonDeserializer<Entity> {
private enum DeserializedEntityType {
Character,
InfinityStone,
Rock
}
@Override @Override
public Entity deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { public Entity deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
var config = (CharacterConfig) ctxt var config = (CharacterConfig) ctxt
@ -32,7 +25,7 @@ public class EntityDeserializer extends JsonDeserializer<Entity> {
Entity result = null; Entity result = null;
DeserializedEntityType type = DeserializedEntityType.valueOf(node.get("entityType").asText()); SerializedEntityType type = SerializedEntityType.valueOf(node.get("entityType").asText());
switch (type) { switch (type) {
case Character -> { case Character -> {