package ru.dbotthepony.kstarbound.defs.particle import com.google.common.collect.ImmutableList import ru.dbotthepony.kstarbound.defs.animation.DestructionAction import ru.dbotthepony.kstarbound.io.json.builder.JsonFactory import ru.dbotthepony.kstarbound.util.SBPattern import ru.dbotthepony.kvector.vector.Color import ru.dbotthepony.kvector.vector.ndouble.Vector2d import ru.dbotthepony.kvector.vector.ndouble.Vector4d @JsonFactory data class ParticleEmitter( val enabled: Boolean = true, val emissionRate: Double = 1.0, val count: Int = 1, val transformationGroups: ImmutableList = ImmutableList.of(), val particles: ImmutableList, override val offset: Vector2d? = null, override val position: Vector2d? = null, override val offsetRegion: Vector4d? = null, override val initialVelocity: Vector2d? = null, override val finalVelocity: Vector2d? = null, override val approach: Vector2d? = null, override val angularVelocity: Double? = null, override val destructionAction: DestructionAction? = null, override val destructionTime: Double? = null, override val fade: Double? = null, override val size: Double? = null, override val layer: ParticleLayer? = null, override val timeToLive: Double? = null, override val variance: IParticleVariance? = null, override val color: Color? = null, override val text: SBPattern? = null, ) : IParticleConfig