summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2018-11-07 18:34:47 +0100 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2018-11-07 18:34:47 +0100 |
commit | 2c4b6a7248d62530edc8896e48799dac3c1c1b61 (patch) | |
tree | 1ab4a6cc7f4cfe05b72fb57f48ab0c8f7ae23e0f | |
parent | 602f67b09d1eb77532641a52d0e885688352e231 (diff) |
Adds encoder for characters.
-rw-r--r-- | src/roster-editor/src/Struct/Character.elm | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/src/roster-editor/src/Struct/Character.elm b/src/roster-editor/src/Struct/Character.elm index ab0e452..19663f1 100644 --- a/src/roster-editor/src/Struct/Character.elm +++ b/src/roster-editor/src/Struct/Character.elm @@ -17,7 +17,8 @@ module Struct.Character exposing set_glyph_board, get_glyphs, set_glyph, - decoder + decoder, + encode ) -- Elm ------------------------------------------------------------------------- @@ -25,6 +26,7 @@ import Array import Json.Decode import Json.Decode.Pipeline +import Json.Encode -- Roster Editor --------------------------------------------------------------- import Struct.Armor @@ -206,3 +208,45 @@ decoder = |> (Json.Decode.Pipeline.hardcoded (Struct.Omnimods.none)) ) ) + +encode : Type -> Json.Encode.Value +encode char = + (Json.Encode.object + [ + ("ix", (Json.Encode.int char.ix)), + ("nam", (Json.Encode.string char.name)), + ("prt", (Json.Encode.string (Struct.Portrait.get_id char.portrait))), + ( + "awp", + (Json.Encode.int + (Struct.Weapon.get_id + (Struct.WeaponSet.get_active_weapon char.weapons) + ) + ) + ), + ( + "swp", + (Json.Encode.int + (Struct.Weapon.get_id + (Struct.WeaponSet.get_active_weapon char.weapons) + ) + ) + ), + ("ar", (Json.Encode.int (Struct.Armor.get_id char.armor))), + ( + "gb", + (Json.Encode.string (Struct.GlyphBoard.get_id char.glyph_board)) + ), + ( + "gls", + (Json.Encode.list + (Array.toList + (Array.map + ((Struct.Glyph.get_id) >> Json.Encode.string) + char.glyphs + ) + ) + ) + ) + ] + ) |