Home Reference Source

src/core/constants.js

  1. import {
  2. BEHAVIOUR_TYPE_ALPHA,
  3. BEHAVIOUR_TYPE_ATTRACTION,
  4. BEHAVIOUR_TYPE_COLOR,
  5. BEHAVIOUR_TYPE_CROSS_ZONE,
  6. BEHAVIOUR_TYPE_FORCE,
  7. BEHAVIOUR_TYPE_GRAVITY,
  8. BEHAVIOUR_TYPE_RANDOM_DRIFT,
  9. BEHAVIOUR_TYPE_REPULSION,
  10. BEHAVIOUR_TYPE_ROTATE,
  11. BEHAVIOUR_TYPE_SCALE,
  12. BEHAVIOUR_TYPE_SPRING,
  13. } from '../behaviour/types';
  14. import {
  15. INITIALIZER_TYPE_BODY,
  16. INITIALIZER_TYPE_BODY_SPRITE,
  17. INITIALIZER_TYPE_LIFE,
  18. INITIALIZER_TYPE_MASS,
  19. INITIALIZER_TYPE_POLAR_VELOCITY,
  20. INITIALIZER_TYPE_POSITION,
  21. INITIALIZER_TYPE_ROTATION,
  22. INITIALIZER_TYPE_RADIAL_VELOCITY,
  23. INITIALIZER_TYPE_RADIUS,
  24. INITIALIZER_TYPE_TEXTURE,
  25. INITIALIZER_TYPE_VECTOR_VELOCITY,
  26. } from '../initializer/types';
  27. import {
  28. ZONE_TYPE_BOX,
  29. ZONE_TYPE_LINE,
  30. ZONE_TYPE_MESH,
  31. ZONE_TYPE_POINT,
  32. ZONE_TYPE_SPHERE,
  33. } from '../zone/types';
  34.  
  35. import { RENDERER_TYPE_SPRITE } from '../renderer/types';
  36. import { easeLinear } from '../ease';
  37.  
  38. /**
  39. * @desc Default particle life
  40. * @type {number}
  41. */
  42. export const DEFAULT_LIFE = Infinity;
  43. /**
  44. * @desc Default particle age
  45. * @type {number}
  46. */
  47. export const DEFAULT_AGE = 0;
  48. /**
  49. * @desc Default particle energy
  50. * @type {number}
  51. */
  52. export const DEFAULT_ENERGY = 1;
  53. /**
  54. * @desc Default particle dead
  55. * @type {boolean}
  56. */
  57. export const DEFAULT_DEAD = false;
  58. /**
  59. * @desc Default particle sleep
  60. * @type {boolean}
  61. */
  62. export const DEFAULT_SLEEP = false;
  63.  
  64. /**
  65. * @desc Default particle index
  66. * @type {number}
  67. */
  68. export const DEFAULT_INDEX = 0;
  69. /**
  70. * @desc Default particle body
  71. * @type {?object}
  72. */
  73. export const DEFAULT_BODY = null;
  74. /**
  75. * @desc Default particle parent
  76. * @type {?Emitter}
  77. */
  78. export const DEFAULT_PARENT = null;
  79. /**
  80. * @desc Default particle mass
  81. * @type {number}
  82. */
  83. export const DEFAULT_MASS = 1;
  84. /**
  85. * @desc Default particle radius
  86. * @type {number}
  87. */
  88. export const DEFAULT_RADIUS = 10;
  89. /**
  90. * @desc Default particle alpha
  91. * @type {number}
  92. */
  93. export const DEFAULT_ALPHA = 1;
  94. /**
  95. * @desc Default particle scale
  96. * @type {number}
  97. */
  98. export const DEFAULT_SCALE = 1;
  99. /**
  100. * @desc Default particle useColor
  101. * @type {boolean}
  102. */
  103. export const DEFAULT_USE_COLOR = false;
  104. /**
  105. * @desc Default particle useAlpha
  106. * @type {boolean}
  107. */
  108. export const DEFAULT_USE_ALPHA = false;
  109. /**
  110. * @desc Default particle easing
  111. * @type {function}
  112. */
  113. export const DEFAULT_EASING = easeLinear;
  114.  
  115. /**
  116. * @desc The default delta provided to the System instance
  117. * @type {number}
  118. */
  119. export const DEFAULT_SYSTEM_DELTA = 0.0167;
  120.  
  121. /**
  122. * @desc The types of initializers supported by the System.fromJSON method.
  123. * @type {array<string>}
  124. */
  125. export const SUPPORTED_JSON_INITIALIZER_TYPES = [
  126. INITIALIZER_TYPE_POSITION,
  127. INITIALIZER_TYPE_ROTATION,
  128. INITIALIZER_TYPE_LIFE,
  129. INITIALIZER_TYPE_RADIUS,
  130. INITIALIZER_TYPE_MASS,
  131. INITIALIZER_TYPE_BODY,
  132. INITIALIZER_TYPE_BODY_SPRITE,
  133. INITIALIZER_TYPE_TEXTURE,
  134. INITIALIZER_TYPE_POLAR_VELOCITY,
  135. INITIALIZER_TYPE_RADIAL_VELOCITY,
  136. INITIALIZER_TYPE_VECTOR_VELOCITY,
  137. ];
  138.  
  139. /**
  140. * @desc The types of behaviours supported by the System.fromJSON method.
  141. * @type {array<string>}
  142. */
  143. export const SUPPORTED_JSON_BEHAVIOUR_TYPES = [
  144. BEHAVIOUR_TYPE_ALPHA,
  145. BEHAVIOUR_TYPE_ATTRACTION,
  146. BEHAVIOUR_TYPE_COLOR,
  147. BEHAVIOUR_TYPE_CROSS_ZONE,
  148. BEHAVIOUR_TYPE_FORCE,
  149. BEHAVIOUR_TYPE_GRAVITY,
  150. BEHAVIOUR_TYPE_RANDOM_DRIFT,
  151. BEHAVIOUR_TYPE_REPULSION,
  152. BEHAVIOUR_TYPE_ROTATE,
  153. BEHAVIOUR_TYPE_SCALE,
  154. BEHAVIOUR_TYPE_SPRING,
  155. ];
  156.  
  157. /**
  158. * @desc The types of renderers supported by the System.fromJSON method.
  159. * @type {array<string>}
  160. */
  161. export const SUPPORTED_JSON_RENDERER_TYPES = [RENDERER_TYPE_SPRITE];
  162.  
  163. /**
  164. * @desc The types of zones supported by the System.fromJSON method.
  165. * @type {array<string>}
  166. */
  167. export const SUPPORTED_JSON_ZONE_TYPES = [
  168. ZONE_TYPE_BOX,
  169. ZONE_TYPE_LINE,
  170. ZONE_TYPE_MESH,
  171. ZONE_TYPE_POINT,
  172. ZONE_TYPE_SPHERE,
  173. ];
  174.  
  175. export { INITIALIZER_TYPES_THAT_REQUIRE_THREE } from '../initializer/types';