feat: implemented JSON stuff related to PortalEvents

This commit is contained in:
2021-06-24 15:51:18 +02:00
parent 371424e6c3
commit 7334b234d4
5 changed files with 69 additions and 4 deletions

View File

@ -80,6 +80,10 @@ public class EventDeserializer extends JsonDeserializer<Event> {
.withOriginField(unwrap(node.get("originField"), IntVector2.class, codec))
.withStoneType(stoneTypeID != null ? StoneType.valueOf(stoneTypeID.id) : null)
.withTeleportedEntity(unwrap(node.get("teleportedEntity"), EntityID.class, codec))
.withOriginPortal(unwrap(node.get("originPortal"), EntityID.class, codec))
.withTargetPortal(unwrap(node.get("targetPortal"), EntityID.class, codec))
.withRoundCount(unwrap(node.get("roundCount"), Integer.class, codec))
.withTurnCount(unwrap(node.get("turnCount"), Integer.class, codec))
.withCharacterOrder(unwrap(node.get("characterOrder"), EntityID[].class, codec))
@ -118,6 +122,7 @@ public class EventDeserializer extends JsonDeserializer<Event> {
MoveEvent,
UseInfinityStoneEvent,
ExchangeInfinityStoneEvent -> { return builder.buildCharacterEvent(); }
case TeleportedEvent -> { return builder.buildTeleportedEvent(); }
case RoundSetupEvent,
TurnEvent,
WinEvent,

View File

@ -32,6 +32,8 @@ public class EventSerializer extends StdSerializer<Event> {
serializeCharacterEvent((CharacterEvent) value, gen, provider);
} else if (value instanceof GameEvent) {
serializeGameEvent((GameEvent) value, gen, provider);
} else if (value instanceof TeleportedEvent) {
serializeTeleportedEvent((TeleportedEvent) value, gen, provider);
} else if (value instanceof CustomEvent) {
serializeCustomEvent((CustomEvent) value, gen, provider);
}
@ -144,6 +146,17 @@ public class EventSerializer extends StdSerializer<Event> {
}
}
private void serializeTeleportedEvent(
TeleportedEvent value,
JsonGenerator gen,
SerializerProvider provider) throws IOException {
gen.writeObjectField("teleportedEntity", value.teleportedEntity);
gen.writeObjectField("originField", value.originField);
gen.writeObjectField("targetField", value.targetField);
gen.writeObjectField("originPortal", value.originPortal);
gen.writeObjectField("targetPortal", value.targetPortal);
}
private void serializeCustomEvent(
CustomEvent value,
JsonGenerator gen,