93 lines
3.9 KiB
Kotlin
93 lines
3.9 KiB
Kotlin
package ru.dbotthepony.kstarbound
|
||
|
||
import com.google.gson.GsonBuilder
|
||
import ru.dbotthepony.kstarbound.defs.DamageType
|
||
import ru.dbotthepony.kstarbound.defs.JsonFunction
|
||
import ru.dbotthepony.kstarbound.defs.MaterialReference
|
||
import ru.dbotthepony.kstarbound.defs.SBPattern
|
||
import ru.dbotthepony.kstarbound.defs.ThingDescription
|
||
import ru.dbotthepony.kstarbound.defs.image.AtlasConfiguration
|
||
import ru.dbotthepony.kstarbound.defs.image.SpriteReference
|
||
import ru.dbotthepony.kstarbound.defs.item.IArmorItemDefinition
|
||
import ru.dbotthepony.kstarbound.defs.item.IItemDefinition
|
||
import ru.dbotthepony.kstarbound.defs.item.LeveledStatusEffect
|
||
import ru.dbotthepony.kstarbound.defs.parallax.ParallaxPrototype
|
||
import ru.dbotthepony.kstarbound.defs.parallax.ParallaxPrototypeLayer
|
||
import ru.dbotthepony.kstarbound.defs.projectile.ActionActions
|
||
import ru.dbotthepony.kstarbound.defs.projectile.ActionConfig
|
||
import ru.dbotthepony.kstarbound.defs.projectile.ActionLoop
|
||
import ru.dbotthepony.kstarbound.defs.projectile.ActionProjectile
|
||
import ru.dbotthepony.kstarbound.defs.projectile.ActionSound
|
||
import ru.dbotthepony.kstarbound.defs.world.SkyColoring
|
||
import ru.dbotthepony.kstarbound.defs.world.SkyColoringManifold
|
||
import ru.dbotthepony.kstarbound.defs.world.SkyParameters
|
||
import ru.dbotthepony.kstarbound.defs.world.SkySatellite
|
||
import ru.dbotthepony.kstarbound.defs.world.dungeon.DungeonWorldDef
|
||
import ru.dbotthepony.kstarbound.io.ColorTypeAdapter
|
||
import ru.dbotthepony.kstarbound.io.json.AABBTypeAdapter
|
||
import ru.dbotthepony.kstarbound.io.json.AABBiTypeAdapter
|
||
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.io.json.Vector4iTypeAdapter
|
||
import ru.dbotthepony.kstarbound.io.json.builder.EnumAdapter
|
||
import ru.dbotthepony.kstarbound.math.PolyTypeAdapter
|
||
|
||
fun addStarboundJsonAdapters(builder: GsonBuilder) {
|
||
with(builder) {
|
||
registerTypeAdapterFactory(SBPattern.Companion)
|
||
|
||
registerTypeAdapter(ColorTypeAdapter.nullSafe())
|
||
|
||
// математические классы
|
||
registerTypeAdapter(AABBTypeAdapter)
|
||
registerTypeAdapter(AABBiTypeAdapter)
|
||
registerTypeAdapter(Vector2dTypeAdapter)
|
||
registerTypeAdapter(Vector2fTypeAdapter)
|
||
registerTypeAdapter(Vector2iTypeAdapter)
|
||
registerTypeAdapter(Vector4iTypeAdapter)
|
||
registerTypeAdapter(PolyTypeAdapter)
|
||
|
||
// Снаряды
|
||
registerTypeAdapterFactory(ActionConfig.ADAPTER)
|
||
registerTypeAdapterFactory(ActionProjectile.ADAPTER)
|
||
registerTypeAdapterFactory(ActionSound.ADAPTER)
|
||
registerTypeAdapterFactory(ActionLoop.ADAPTER)
|
||
registerTypeAdapterFactory(ActionActions.ADAPTER)
|
||
|
||
// Параметры неба
|
||
registerTypeAdapterFactory(SkyParameters.ADAPTER)
|
||
registerTypeAdapter(SkyColoringManifold.ADAPTER)
|
||
registerTypeAdapterFactory(SkyColoring.ADAPTER)
|
||
registerTypeAdapterFactory(SkySatellite.ADAPTER)
|
||
registerTypeAdapterFactory(SkySatellite.LAYER_ADAPTER)
|
||
|
||
// Данные о данжах
|
||
registerTypeAdapterFactory(DungeonWorldDef.ADAPTER)
|
||
|
||
// Параллакс
|
||
registerTypeAdapterFactory(ParallaxPrototype.ADAPTER)
|
||
registerTypeAdapterFactory(ParallaxPrototypeLayer.ADAPTER)
|
||
registerTypeAdapter(ParallaxPrototypeLayer.LAYER_PARALLAX_ADAPTER)
|
||
|
||
// Предметы
|
||
registerTypeAdapterFactory(IItemDefinition.InventoryIcon.ADAPTER)
|
||
registerTypeAdapterFactory(IArmorItemDefinition.ArmorFrames.ADAPTER)
|
||
|
||
// Функции
|
||
registerTypeAdapter(JsonFunction.CONSTRAINT_ADAPTER)
|
||
registerTypeAdapter(JsonFunction.INTERPOLATION_ADAPTER)
|
||
registerTypeAdapter(JsonFunction.Companion)
|
||
|
||
// Общее
|
||
registerTypeAdapter(SpriteReference.Companion)
|
||
registerTypeAdapterFactory(AtlasConfiguration.Companion)
|
||
|
||
registerTypeAdapterFactory(LeveledStatusEffect.ADAPTER)
|
||
registerTypeAdapter(MaterialReference.Companion)
|
||
registerTypeAdapter(ThingDescription.Companion)
|
||
|
||
registerTypeAdapter(EnumAdapter(DamageType::class, default = DamageType.NORMAL))
|
||
}
|
||
}
|