KStarbound/src/main/kotlin/ru/dbotthepony/kstarbound/defs/projectile/ProjectilePhysics.kt

114 lines
2.3 KiB
Kotlin

package ru.dbotthepony.kstarbound.defs.projectile
import com.google.gson.stream.JsonWriter
import ru.dbotthepony.kstarbound.io.json.IStringSerializable
enum class ProjectilePhysics(private vararg val aliases: String) : IStringSerializable {
GAS,
LASER,
BOOMERANG,
DEFAULT,
BULLET,
STICKY_BULLET("STICKYBULLET"),
ARROW,
UNDERWATER_ARROW("UNDERWATERARROW"),
UNDERWATER_ARROW_NO_STICKY("UNDERWATERARROWNOSTICKY"),
ROCKET,
GRAVITY_BULLET("GRAVITYBULLET"),
FLAME,
ARROW_NO_STICKY("ARROWNOSTICKY"),
SQUIRT,
FLYBUG,
ROLLER,
BOWLDER,
SMOOTH_ROLLING_BOULDER("SMOOTHROLLINGBOULDER"),
ROLLING_BOULDER("ROLLINGBOULDER"),
DRAGON_BONE("DRAGONBONE"),
DRAGON_HEAD("DRAGONHEAD"),
STICKY,
BOWLING_BALL("BOWLINGBALL"),
PAPER_PLANE("PAPERPLANE"),
BOULDER,
STATUS_POD("STATUSPOD"),
// ???
ILLUSION,
ILLUSION_ROCKET("ROCKETILLUSION"),
// ?????????????
FRIENDLY_BUBBLE("FRIENDLYBUBBLE"),
STICKY_HEAVY_GAS("STICKYHEAVYGAS"),
HEAVY_GAS("HEAVYGAS"),
BOUNCY_GAS("BOUNCYGAS"),
FIREBALL,
SLIDER,
GOOP,
HOVER,
BONE_THORN("BONETHORN"),
BIG_BUBBLE("BIGBUBBLE"),
FIREWORK_FALL("FIREWORKFALL"),
LIGHTNING_BOLT("LIGHTNINGBOLT"),
SIMPLE_ARC("SIMPLEARC"),
LOW_GRAVITY_ARC("LOWGRAVARC"),
SPIKE_BALL("SPIKEBALL"),
SHRAPNEL,
// что
WEATHER,
FIRE_SPREAD("FIRESPREAD"),
GRAPPLE_HOOK("GRAPPLEHOOK"),
BALLISTIC_GRAPPLE_HOOK("BALLISTICGRAPPLEHOOK"),
FLOATY_STICKY_BOMB("FLOATYSTICKYBOMB"),
STICKY_BOMB("STICKYBOMB"),
BOUNCY,
GRAVITY_BOMB("GRAVITYBOMB"),
DISC,
HEAVY_BOUNCER("HEAVYBOUNCER"),
WALL_STICKY("WALLSTICKY"),
FISHING_LURE_SINKING("FISHINGLURESINKING"),
FISHING_LURE("FISHINGLURE"),
RAIN("RAIN"),
PET_BALL("PETBALL"),
BOUNCY_BALL("BOUNCYBALL"),
BEACH_BALL("BEACHBALL"),
NOVELTY_BANANA("NOVELTYBANANA"),
SPACE_MINE("SPACEMINE"),
MECH_BATTERY("MECHBATTERY"),
GRENADE,
GRENADE_LARGE("LARGEGRENADE"),
GRENADE_Z_BOMB("GRENADEZBOMB"),
GRENADE_STICKY("STICKYGRENADE"),
GRENADE_SUPER_GRAVITY("SUPERHIGHGRAVGRENADE"),
GRENADE_HIGH_GRAVITY_V("VHIGHGRAVGRENADE"),
GRENADE_HIGH_GRAVITY("HIGHGRAVGRENADE"),
GRENADE_LOW_BOUNCE("GRENADELOWBOUNCE"),
GRENADE_NO_BOUNCE("GRENADENOBOUNCE");
override fun match(name: String): Boolean {
for (alias in aliases)
if (name == alias)
return true
return name == this.name
}
override fun write(out: JsonWriter) {
out.value(this.name)
}
}