From b939373298ff5ba04143ec1fbf92ff3e91a4ed64 Mon Sep 17 00:00:00 2001
From: DBotThePony <dbotthepony@yandex.ru>
Date: Fri, 30 Dec 2022 16:38:55 +0700
Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D1=89?=
 =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D1=8B=20?=
 =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20?=
 =?UTF-8?q?=D1=81=20json=20=D0=B2=20=D0=BF=D0=B0=D0=BA=D0=B5=D1=82=20json?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../kotlin/ru/dbotthepony/kstarbound/Starbound.kt    |  7 ++++++-
 .../ru/dbotthepony/kstarbound/defs/DamageType.kt     |  2 +-
 .../ru/dbotthepony/kstarbound/defs/JsonFunction.kt   |  8 +++-----
 .../dbotthepony/kstarbound/defs/ParallaxPrototype.kt |  2 +-
 .../kstarbound/defs/item/ItemDefinition.kt           |  2 +-
 .../dbotthepony/kstarbound/defs/item/ItemRarity.kt   |  4 ++--
 .../kstarbound/defs/liquid/LiquidDefinition.kt       |  2 +-
 .../kstarbound/defs/projectile/Configurable.kt       |  6 +++---
 .../kstarbound/defs/projectile/ProjectilePhysics.kt  |  2 +-
 .../kstarbound/defs/tile/MaterialModifier.kt         |  2 +-
 .../kstarbound/defs/tile/RenderParameters.kt         |  2 +-
 .../kstarbound/defs/tile/RenderTemplate.kt           |  4 ++--
 .../kstarbound/defs/tile/TileDefinition.kt           |  2 +-
 .../kstarbound/defs/world/SkyParameters.kt           |  5 ++---
 .../ru/dbotthepony/kstarbound/defs/world/SkyType.kt  |  2 +-
 .../kstarbound/defs/world/WorldProperties.kt         |  4 +---
 .../kstarbound/defs/world/dungeon/BeamUpRule.kt      |  2 +-
 .../kstarbound/defs/world/dungeon/Configurable.kt    |  4 ++--
 .../kstarbound/defs/world/dungeon/DungeonType.kt     |  2 +-
 .../ru/dbotthepony/kstarbound/io/StarboundPak.kt     |  2 +-
 .../dbotthepony/kstarbound/io/{ => json}/AABBJson.kt |  2 +-
 .../kstarbound/io/{ => json}/BinaryJson.kt           |  6 ++++--
 .../kstarbound/io/{ => json}/ColorJson.kt            |  0
 .../io/{ => json}/ConfigurableTypeAdapter.kt         |  2 +-
 .../io/{ => json}/CustomEnumTypeAdapter.kt           |  2 +-
 .../kstarbound/io/{ => json}/EnumAdapter.kt          |  2 +-
 .../kstarbound/io/{ => json}/KConcreteTypeAdapter.kt | 12 +-----------
 .../kstarbound/io/{ => json}/KTypeAdapter.kt         |  3 +--
 .../kstarbound/io/{ => json}/VectorJson.kt           |  2 +-
 .../kotlin/ru/dbotthepony/kstarbound/math/Poly.kt    |  2 +-
 30 files changed, 45 insertions(+), 54 deletions(-)
 rename src/main/kotlin/ru/dbotthepony/kstarbound/io/{ => json}/AABBJson.kt (97%)
 rename src/main/kotlin/ru/dbotthepony/kstarbound/io/{ => json}/BinaryJson.kt (95%)
 rename src/main/kotlin/ru/dbotthepony/kstarbound/io/{ => json}/ColorJson.kt (100%)
 rename src/main/kotlin/ru/dbotthepony/kstarbound/io/{ => json}/ConfigurableTypeAdapter.kt (99%)
 rename src/main/kotlin/ru/dbotthepony/kstarbound/io/{ => json}/CustomEnumTypeAdapter.kt (94%)
 rename src/main/kotlin/ru/dbotthepony/kstarbound/io/{ => json}/EnumAdapter.kt (96%)
 rename src/main/kotlin/ru/dbotthepony/kstarbound/io/{ => json}/KConcreteTypeAdapter.kt (98%)
 rename src/main/kotlin/ru/dbotthepony/kstarbound/io/{ => json}/KTypeAdapter.kt (98%)
 rename src/main/kotlin/ru/dbotthepony/kstarbound/io/{ => json}/VectorJson.kt (97%)

diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/Starbound.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/Starbound.kt
index 9f0cbffc..260fc6eb 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/Starbound.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/Starbound.kt
@@ -2,7 +2,6 @@ package ru.dbotthepony.kstarbound
 
 import com.google.common.collect.ImmutableList
 import com.google.gson.*
-import it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap
 import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap
 import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap
 import org.apache.logging.log4j.LogManager
@@ -22,6 +21,12 @@ import ru.dbotthepony.kstarbound.defs.tile.TileDefinition
 import ru.dbotthepony.kstarbound.defs.world.SkyParameters
 import ru.dbotthepony.kstarbound.defs.world.dungeon.DungeonWorldDef
 import ru.dbotthepony.kstarbound.io.*
+import ru.dbotthepony.kstarbound.io.json.AABBTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.AABBiTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.CustomEnumTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.Vector2dTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.Vector2fTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.Vector2iTypeAdapter
 import ru.dbotthepony.kstarbound.math.*
 import ru.dbotthepony.kvector.util2d.AABB
 import ru.dbotthepony.kvector.util2d.AABBi
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/DamageType.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/DamageType.kt
index 4cc03398..7b784a70 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/DamageType.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/DamageType.kt
@@ -1,7 +1,7 @@
 package ru.dbotthepony.kstarbound.defs
 
 import com.google.gson.stream.JsonWriter
-import ru.dbotthepony.kstarbound.io.IStringSerializable
+import ru.dbotthepony.kstarbound.io.json.IStringSerializable
 
 enum class DamageType(private vararg val aliases: String) : IStringSerializable {
 	NORMAL,
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/JsonFunction.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/JsonFunction.kt
index 96aaf2a9..1d240bd3 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/JsonFunction.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/JsonFunction.kt
@@ -2,15 +2,13 @@ package ru.dbotthepony.kstarbound.defs
 
 import com.google.common.collect.ImmutableList
 import com.google.gson.GsonBuilder
-import com.google.gson.JsonArray
 import com.google.gson.TypeAdapter
 import com.google.gson.stream.JsonReader
 import com.google.gson.stream.JsonToken
 import com.google.gson.stream.JsonWriter
-import ru.dbotthepony.kstarbound.Starbound
-import ru.dbotthepony.kstarbound.io.CustomEnumTypeAdapter
-import ru.dbotthepony.kstarbound.io.IStringSerializable
-import ru.dbotthepony.kstarbound.io.Vector2dTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.CustomEnumTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.IStringSerializable
+import ru.dbotthepony.kstarbound.io.json.Vector2dTypeAdapter
 import ru.dbotthepony.kvector.vector.ndouble.Vector2d
 
 enum class JsonFunctionInterpolation(vararg aliases: String) : IStringSerializable {
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/ParallaxPrototype.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/ParallaxPrototype.kt
index ea8738c2..92fcff7f 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/ParallaxPrototype.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/ParallaxPrototype.kt
@@ -6,7 +6,7 @@ import com.google.gson.TypeAdapter
 import com.google.gson.stream.JsonReader
 import com.google.gson.stream.JsonToken
 import com.google.gson.stream.JsonWriter
-import ru.dbotthepony.kstarbound.io.KTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.KTypeAdapter
 import ru.dbotthepony.kvector.vector.ndouble.Vector2d
 import kotlin.properties.Delegates
 
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ItemDefinition.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ItemDefinition.kt
index 3529d73f..0c68d848 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ItemDefinition.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ItemDefinition.kt
@@ -2,7 +2,7 @@ package ru.dbotthepony.kstarbound.defs.item
 
 import com.google.gson.GsonBuilder
 import ru.dbotthepony.kstarbound.Starbound
-import ru.dbotthepony.kstarbound.io.KConcreteTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.KConcreteTypeAdapter
 import ru.dbotthepony.kstarbound.registerTypeAdapter
 import ru.dbotthepony.kvector.vector.ndouble.Vector2d
 
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ItemRarity.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ItemRarity.kt
index 16e1cda7..1703cf97 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ItemRarity.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/item/ItemRarity.kt
@@ -3,8 +3,8 @@ package ru.dbotthepony.kstarbound.defs.item
 import com.google.gson.GsonBuilder
 import com.google.gson.TypeAdapter
 import com.google.gson.stream.JsonWriter
-import ru.dbotthepony.kstarbound.io.CustomEnumTypeAdapter
-import ru.dbotthepony.kstarbound.io.IStringSerializable
+import ru.dbotthepony.kstarbound.io.json.CustomEnumTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.IStringSerializable
 import ru.dbotthepony.kstarbound.registerTypeAdapter
 
 enum class ItemRarity(val canonical: String) : IStringSerializable {
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/liquid/LiquidDefinition.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/liquid/LiquidDefinition.kt
index 718a6918..476f7043 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/liquid/LiquidDefinition.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/liquid/LiquidDefinition.kt
@@ -1,7 +1,7 @@
 package ru.dbotthepony.kstarbound.defs.liquid
 
 import com.google.gson.GsonBuilder
-import ru.dbotthepony.kstarbound.io.KConcreteTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.KConcreteTypeAdapter
 import ru.dbotthepony.kstarbound.registerTypeAdapter
 import ru.dbotthepony.kvector.vector.Color
 
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/projectile/Configurable.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/projectile/Configurable.kt
index a6208e32..4943b31c 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/projectile/Configurable.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/projectile/Configurable.kt
@@ -7,9 +7,9 @@ import it.unimi.dsi.fastutil.objects.ObjectArraySet
 import org.apache.logging.log4j.LogManager
 import ru.dbotthepony.kstarbound.Starbound
 import ru.dbotthepony.kstarbound.defs.*
-import ru.dbotthepony.kstarbound.io.ConfigurableTypeAdapter
-import ru.dbotthepony.kstarbound.io.KTypeAdapter
-import ru.dbotthepony.kstarbound.io.CustomEnumTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.ConfigurableTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.KTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.CustomEnumTypeAdapter
 import ru.dbotthepony.kvector.vector.Color
 import kotlin.properties.Delegates
 
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/projectile/ProjectilePhysics.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/projectile/ProjectilePhysics.kt
index 061556ed..8341122e 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/projectile/ProjectilePhysics.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/projectile/ProjectilePhysics.kt
@@ -1,7 +1,7 @@
 package ru.dbotthepony.kstarbound.defs.projectile
 
 import com.google.gson.stream.JsonWriter
-import ru.dbotthepony.kstarbound.io.IStringSerializable
+import ru.dbotthepony.kstarbound.io.json.IStringSerializable
 
 enum class ProjectilePhysics(private vararg val aliases: String) : IStringSerializable {
 	GAS,
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/MaterialModifier.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/MaterialModifier.kt
index 1a3a33b9..5fc5e9e2 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/MaterialModifier.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/MaterialModifier.kt
@@ -1,7 +1,7 @@
 package ru.dbotthepony.kstarbound.defs.tile
 
 import com.google.gson.GsonBuilder
-import ru.dbotthepony.kstarbound.io.KConcreteTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.KConcreteTypeAdapter
 
 data class MaterialModifier(
 	val modId: Int,
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/RenderParameters.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/RenderParameters.kt
index bf921227..22d2804a 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/RenderParameters.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/RenderParameters.kt
@@ -2,7 +2,7 @@ package ru.dbotthepony.kstarbound.defs.tile
 
 import com.google.gson.GsonBuilder
 import ru.dbotthepony.kstarbound.Starbound
-import ru.dbotthepony.kstarbound.io.KConcreteTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.KConcreteTypeAdapter
 
 const val TILE_COLOR_VARIANTS = 9
 
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/RenderTemplate.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/RenderTemplate.kt
index f4883bfd..ca0c6ddd 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/RenderTemplate.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/RenderTemplate.kt
@@ -9,8 +9,8 @@ import com.google.gson.stream.JsonWriter
 import it.unimi.dsi.fastutil.objects.ObjectArraySet
 import org.apache.logging.log4j.LogManager
 import ru.dbotthepony.kstarbound.Starbound
-import ru.dbotthepony.kstarbound.io.EnumAdapter
-import ru.dbotthepony.kstarbound.io.KConcreteTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.EnumAdapter
+import ru.dbotthepony.kstarbound.io.json.KConcreteTypeAdapter
 import ru.dbotthepony.kstarbound.registerTypeAdapter
 import ru.dbotthepony.kstarbound.util.WriteOnce
 import ru.dbotthepony.kstarbound.world.ITileGetter
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/TileDefinition.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/TileDefinition.kt
index 3026687c..01afd827 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/TileDefinition.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/tile/TileDefinition.kt
@@ -1,7 +1,7 @@
 package ru.dbotthepony.kstarbound.defs.tile
 
 import com.google.gson.GsonBuilder
-import ru.dbotthepony.kstarbound.io.KConcreteTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.KConcreteTypeAdapter
 import ru.dbotthepony.kstarbound.registerTypeAdapter
 import ru.dbotthepony.kvector.vector.Color
 
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/SkyParameters.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/SkyParameters.kt
index f800e28e..eda87066 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/SkyParameters.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/SkyParameters.kt
@@ -6,11 +6,10 @@ import com.google.gson.stream.JsonReader
 import com.google.gson.stream.JsonWriter
 import org.apache.logging.log4j.LogManager
 import ru.dbotthepony.kstarbound.io.ColorTypeAdapter
-import ru.dbotthepony.kstarbound.io.CustomEnumTypeAdapter
-import ru.dbotthepony.kstarbound.io.KTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.CustomEnumTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.KTypeAdapter
 import ru.dbotthepony.kvector.vector.Color
 import ru.dbotthepony.kvector.vector.ndouble.Vector2d
-import kotlin.properties.Delegates
 import kotlin.properties.ReadWriteProperty
 import kotlin.reflect.KProperty
 
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/SkyType.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/SkyType.kt
index 48376035..9291b752 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/SkyType.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/SkyType.kt
@@ -1,7 +1,7 @@
 package ru.dbotthepony.kstarbound.defs.world
 
 import com.google.gson.stream.JsonWriter
-import ru.dbotthepony.kstarbound.io.IStringSerializable
+import ru.dbotthepony.kstarbound.io.json.IStringSerializable
 
 enum class SkyType(vararg aliases: String) : IStringSerializable {
 	ATMOSPHERIC,
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/WorldProperties.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/WorldProperties.kt
index 3c555b14..a6172bec 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/WorldProperties.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/WorldProperties.kt
@@ -1,9 +1,7 @@
 package ru.dbotthepony.kstarbound.defs.world
 
 import com.google.gson.GsonBuilder
-import ru.dbotthepony.kstarbound.io.KTypeAdapter
-import ru.dbotthepony.kvector.vector.Color
-import kotlin.properties.Delegates
+import ru.dbotthepony.kstarbound.io.json.KTypeAdapter
 
 class WorldProperties {
 	var nonCombat = false
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/dungeon/BeamUpRule.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/dungeon/BeamUpRule.kt
index fba2bd27..d9462a15 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/dungeon/BeamUpRule.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/dungeon/BeamUpRule.kt
@@ -1,7 +1,7 @@
 package ru.dbotthepony.kstarbound.defs.world.dungeon
 
 import com.google.gson.stream.JsonWriter
-import ru.dbotthepony.kstarbound.io.IStringSerializable
+import ru.dbotthepony.kstarbound.io.json.IStringSerializable
 
 enum class BeamUpRule(vararg aliases: String) : IStringSerializable {
 	NOWHERE,
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/dungeon/Configurable.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/dungeon/Configurable.kt
index ba77812e..e4ae9aaf 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/dungeon/Configurable.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/dungeon/Configurable.kt
@@ -3,8 +3,8 @@ package ru.dbotthepony.kstarbound.defs.world.dungeon
 import com.google.gson.GsonBuilder
 import ru.dbotthepony.kstarbound.defs.world.SkyParameters
 import ru.dbotthepony.kstarbound.defs.world.WorldProperties
-import ru.dbotthepony.kstarbound.io.CustomEnumTypeAdapter
-import ru.dbotthepony.kstarbound.io.KTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.CustomEnumTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.KTypeAdapter
 import kotlin.properties.Delegates
 
 class DungeonWorldDef {
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/dungeon/DungeonType.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/dungeon/DungeonType.kt
index 558ec419..22fb2fc6 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/dungeon/DungeonType.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/world/dungeon/DungeonType.kt
@@ -1,7 +1,7 @@
 package ru.dbotthepony.kstarbound.defs.world.dungeon
 
 import com.google.gson.stream.JsonWriter
-import ru.dbotthepony.kstarbound.io.IStringSerializable
+import ru.dbotthepony.kstarbound.io.json.IStringSerializable
 
 enum class DungeonType(vararg aliases: String) : IStringSerializable {
 	FLOATING("FloatingDungeon"),
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/io/StarboundPak.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/io/StarboundPak.kt
index aafff2f1..1292c827 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/io/StarboundPak.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/io/StarboundPak.kt
@@ -3,6 +3,7 @@ package ru.dbotthepony.kstarbound.io
 import it.unimi.dsi.fastutil.objects.Object2ObjectFunction
 import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap
 import ru.dbotthepony.kstarbound.api.IStarboundFile
+import ru.dbotthepony.kstarbound.io.json.BinaryJson
 import java.io.BufferedInputStream
 import java.io.Closeable
 import java.io.DataInputStream
@@ -11,7 +12,6 @@ import java.io.IOError
 import java.io.IOException
 import java.io.InputStream
 import java.io.RandomAccessFile
-import java.nio.ByteBuffer
 import java.nio.channels.Channels
 import java.util.*
 
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/io/AABBJson.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/AABBJson.kt
similarity index 97%
rename from src/main/kotlin/ru/dbotthepony/kstarbound/io/AABBJson.kt
rename to src/main/kotlin/ru/dbotthepony/kstarbound/io/json/AABBJson.kt
index 103dd4a6..45ee24e5 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/io/AABBJson.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/AABBJson.kt
@@ -1,4 +1,4 @@
-package ru.dbotthepony.kstarbound.io
+package ru.dbotthepony.kstarbound.io.json
 
 import com.google.gson.TypeAdapter
 import com.google.gson.stream.JsonReader
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/io/BinaryJson.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/BinaryJson.kt
similarity index 95%
rename from src/main/kotlin/ru/dbotthepony/kstarbound/io/BinaryJson.kt
rename to src/main/kotlin/ru/dbotthepony/kstarbound/io/json/BinaryJson.kt
index afe7197f..e719ffe0 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/io/BinaryJson.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/BinaryJson.kt
@@ -1,8 +1,10 @@
-package ru.dbotthepony.kstarbound.io
+package ru.dbotthepony.kstarbound.io.json
 
 import com.google.gson.*
+import ru.dbotthepony.kstarbound.io.readASCIIString
+import ru.dbotthepony.kstarbound.io.readVarInt
+import ru.dbotthepony.kstarbound.io.readVarLong
 import java.io.DataInputStream
-import java.io.InputStream
 import java.io.RandomAccessFile
 
 /**
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/io/ColorJson.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/ColorJson.kt
similarity index 100%
rename from src/main/kotlin/ru/dbotthepony/kstarbound/io/ColorJson.kt
rename to src/main/kotlin/ru/dbotthepony/kstarbound/io/json/ColorJson.kt
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/io/ConfigurableTypeAdapter.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/ConfigurableTypeAdapter.kt
similarity index 99%
rename from src/main/kotlin/ru/dbotthepony/kstarbound/io/ConfigurableTypeAdapter.kt
rename to src/main/kotlin/ru/dbotthepony/kstarbound/io/json/ConfigurableTypeAdapter.kt
index 36dc1db1..874b0650 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/io/ConfigurableTypeAdapter.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/ConfigurableTypeAdapter.kt
@@ -1,4 +1,4 @@
-package ru.dbotthepony.kstarbound.io
+package ru.dbotthepony.kstarbound.io.json
 
 import com.google.gson.JsonSyntaxException
 import com.google.gson.TypeAdapter
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/io/CustomEnumTypeAdapter.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/CustomEnumTypeAdapter.kt
similarity index 94%
rename from src/main/kotlin/ru/dbotthepony/kstarbound/io/CustomEnumTypeAdapter.kt
rename to src/main/kotlin/ru/dbotthepony/kstarbound/io/json/CustomEnumTypeAdapter.kt
index d228d9f7..19d433a6 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/io/CustomEnumTypeAdapter.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/CustomEnumTypeAdapter.kt
@@ -1,4 +1,4 @@
-package ru.dbotthepony.kstarbound.io
+package ru.dbotthepony.kstarbound.io.json
 
 import com.google.gson.TypeAdapter
 import com.google.gson.stream.JsonReader
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/io/EnumAdapter.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/EnumAdapter.kt
similarity index 96%
rename from src/main/kotlin/ru/dbotthepony/kstarbound/io/EnumAdapter.kt
rename to src/main/kotlin/ru/dbotthepony/kstarbound/io/json/EnumAdapter.kt
index 64f9612a..752d47ce 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/io/EnumAdapter.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/EnumAdapter.kt
@@ -1,4 +1,4 @@
-package ru.dbotthepony.kstarbound.io
+package ru.dbotthepony.kstarbound.io.json
 
 import com.google.common.collect.ImmutableMap
 import com.google.gson.JsonSyntaxException
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/io/KConcreteTypeAdapter.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/KConcreteTypeAdapter.kt
similarity index 98%
rename from src/main/kotlin/ru/dbotthepony/kstarbound/io/KConcreteTypeAdapter.kt
rename to src/main/kotlin/ru/dbotthepony/kstarbound/io/json/KConcreteTypeAdapter.kt
index a8dc3384..84b588b1 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/io/KConcreteTypeAdapter.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/KConcreteTypeAdapter.kt
@@ -1,4 +1,4 @@
-package ru.dbotthepony.kstarbound.io
+package ru.dbotthepony.kstarbound.io.json
 
 import com.google.common.collect.ImmutableList
 import com.google.common.collect.ImmutableMap
@@ -674,15 +674,5 @@ class KConcreteTypeAdapter<T : Any> private constructor(
 
 	companion object {
 		private val LOGGER = LogManager.getLogger()
-
-		/*fun <T : Any> simple(clazz: KClass<T>, asList: Boolean = false): KConcreteTypeAdapter<T> {
-			val builder = Builder(clazz)
-
-			for (argument in clazz.primaryConstructor!!.parameters) {
-				builder.plain(argument.)
-			}
-
-			return builder.build(asList = asList)
-		}*/
 	}
 }
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/io/KTypeAdapter.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/KTypeAdapter.kt
similarity index 98%
rename from src/main/kotlin/ru/dbotthepony/kstarbound/io/KTypeAdapter.kt
rename to src/main/kotlin/ru/dbotthepony/kstarbound/io/json/KTypeAdapter.kt
index 622eaf49..6b0189ec 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/io/KTypeAdapter.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/KTypeAdapter.kt
@@ -1,9 +1,8 @@
-package ru.dbotthepony.kstarbound.io
+package ru.dbotthepony.kstarbound.io.json
 
 import com.google.common.collect.ImmutableList
 import com.google.gson.JsonSyntaxException
 import com.google.gson.TypeAdapter
-import com.google.gson.internal.bind.TypeAdapters
 import com.google.gson.stream.JsonReader
 import com.google.gson.stream.JsonToken
 import com.google.gson.stream.JsonWriter
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/io/VectorJson.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/VectorJson.kt
similarity index 97%
rename from src/main/kotlin/ru/dbotthepony/kstarbound/io/VectorJson.kt
rename to src/main/kotlin/ru/dbotthepony/kstarbound/io/json/VectorJson.kt
index 808338ad..9e5f7aff 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/io/VectorJson.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/io/json/VectorJson.kt
@@ -1,4 +1,4 @@
-package ru.dbotthepony.kstarbound.io
+package ru.dbotthepony.kstarbound.io.json
 
 import com.google.gson.TypeAdapter
 import com.google.gson.stream.JsonReader
diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/math/Poly.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/math/Poly.kt
index 494c0cc9..0d0727b0 100644
--- a/src/main/kotlin/ru/dbotthepony/kstarbound/math/Poly.kt
+++ b/src/main/kotlin/ru/dbotthepony/kstarbound/math/Poly.kt
@@ -5,7 +5,7 @@ import com.google.gson.TypeAdapter
 import com.google.gson.stream.JsonReader
 import com.google.gson.stream.JsonToken
 import com.google.gson.stream.JsonWriter
-import ru.dbotthepony.kstarbound.io.Vector2dTypeAdapter
+import ru.dbotthepony.kstarbound.io.json.Vector2dTypeAdapter
 import ru.dbotthepony.kvector.vector.ndouble.Vector2d
 
 class Poly(vararg points: Vector2d) {