feat: implemented proper deserialization for EntityID and IntVector2
This commit is contained in:
@ -1,13 +1,16 @@
|
||||
package uulm.teamname.marvelous.gamelibrary;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import uulm.teamname.marvelous.gamelibrary.json.ingame.IntVector2Deserializer;
|
||||
import uulm.teamname.marvelous.gamelibrary.json.ingame.IntVector2Serializer;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Objects;
|
||||
|
||||
/** Represents a 2d vector of integers. */
|
||||
@JsonDeserialize(using = IntVector2Deserializer.class)
|
||||
@JsonSerialize(using = IntVector2Serializer.class)
|
||||
public class IntVector2 implements Serializable {
|
||||
private int x;
|
||||
private int y;
|
||||
|
@ -1,15 +1,18 @@
|
||||
package uulm.teamname.marvelous.gamelibrary.entities;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import uulm.teamname.marvelous.gamelibrary.json.ingame.EntityIDDeserializer;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
/** Represents a distinct identification for every {@link Entity} in a game. */
|
||||
@JsonPropertyOrder({"entityID", "ID"})
|
||||
@JsonDeserialize(using = EntityIDDeserializer.class)
|
||||
public class EntityID {
|
||||
/** The index of the entity */
|
||||
@JsonProperty("ID")
|
||||
public final int id;
|
||||
|
||||
/** The type of the entity */
|
||||
|
@ -0,0 +1,27 @@
|
||||
package uulm.teamname.marvelous.gamelibrary.json.ingame;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
import com.fasterxml.jackson.databind.SerializerProvider;
|
||||
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
|
||||
import uulm.teamname.marvelous.gamelibrary.IntVector2;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class IntVector2Serializer extends StdSerializer<IntVector2> {
|
||||
|
||||
public IntVector2Serializer() {
|
||||
this(null);
|
||||
}
|
||||
|
||||
protected IntVector2Serializer(Class<IntVector2> t) {
|
||||
super(t);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void serialize(IntVector2 value, JsonGenerator gen, SerializerProvider provider) throws IOException {
|
||||
gen.writeStartArray();
|
||||
gen.writeNumber(value.getX());
|
||||
gen.writeNumber(value.getY());
|
||||
gen.writeEndArray();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user