1 /**
2 
3 
4 Copyright:
5 Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.  
6 Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)  
7 Copyright (c) 2017-2018 Godot-D contributors  
8 
9 License: $(LINK2 https://opensource.org/licenses/MIT, MIT License)
10 
11 
12 */
13 module godot.cpuparticles2d;
14 import std.meta : AliasSeq, staticIndexOf;
15 import std.traits : Unqual;
16 import godot.d.meta;
17 import godot.core;
18 import godot.c;
19 import godot.d.bind;
20 import godot.d.reference;
21 import godot.object;
22 import godot.classdb;
23 import godot.node2d;
24 import godot.texture;
25 import godot.curve;
26 import godot.gradient;
27 import godot.gradienttexture;
28 import godot.canvasitem;
29 import godot.node;
30 /**
31 
32 */
33 @GodotBaseClass struct CPUParticles2D
34 {
35 	enum string _GODOT_internal_name = "CPUParticles2D";
36 public:
37 @nogc nothrow:
38 	union { godot_object _godot_object; Node2D _GODOT_base; }
39 	alias _GODOT_base this;
40 	alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses);
41 	package(godot) __gshared bool _classBindingInitialized = false;
42 	package(godot) static struct _classBinding
43 	{
44 		__gshared:
45 		@GodotName("set_emitting") GodotMethod!(void, bool) setEmitting;
46 		@GodotName("set_amount") GodotMethod!(void, long) setAmount;
47 		@GodotName("set_lifetime") GodotMethod!(void, double) setLifetime;
48 		@GodotName("set_one_shot") GodotMethod!(void, bool) setOneShot;
49 		@GodotName("set_pre_process_time") GodotMethod!(void, double) setPreProcessTime;
50 		@GodotName("set_explosiveness_ratio") GodotMethod!(void, double) setExplosivenessRatio;
51 		@GodotName("set_randomness_ratio") GodotMethod!(void, double) setRandomnessRatio;
52 		@GodotName("set_use_local_coordinates") GodotMethod!(void, bool) setUseLocalCoordinates;
53 		@GodotName("set_fixed_fps") GodotMethod!(void, long) setFixedFps;
54 		@GodotName("set_fractional_delta") GodotMethod!(void, bool) setFractionalDelta;
55 		@GodotName("set_speed_scale") GodotMethod!(void, double) setSpeedScale;
56 		@GodotName("is_emitting") GodotMethod!(bool) isEmitting;
57 		@GodotName("get_amount") GodotMethod!(long) getAmount;
58 		@GodotName("get_lifetime") GodotMethod!(double) getLifetime;
59 		@GodotName("get_one_shot") GodotMethod!(bool) getOneShot;
60 		@GodotName("get_pre_process_time") GodotMethod!(double) getPreProcessTime;
61 		@GodotName("get_explosiveness_ratio") GodotMethod!(double) getExplosivenessRatio;
62 		@GodotName("get_randomness_ratio") GodotMethod!(double) getRandomnessRatio;
63 		@GodotName("get_use_local_coordinates") GodotMethod!(bool) getUseLocalCoordinates;
64 		@GodotName("get_fixed_fps") GodotMethod!(long) getFixedFps;
65 		@GodotName("get_fractional_delta") GodotMethod!(bool) getFractionalDelta;
66 		@GodotName("get_speed_scale") GodotMethod!(double) getSpeedScale;
67 		@GodotName("set_draw_order") GodotMethod!(void, long) setDrawOrder;
68 		@GodotName("get_draw_order") GodotMethod!(CPUParticles2D.DrawOrder) getDrawOrder;
69 		@GodotName("set_texture") GodotMethod!(void, Texture) setTexture;
70 		@GodotName("get_texture") GodotMethod!(Texture) getTexture;
71 		@GodotName("set_normalmap") GodotMethod!(void, Texture) setNormalmap;
72 		@GodotName("get_normalmap") GodotMethod!(Texture) getNormalmap;
73 		@GodotName("restart") GodotMethod!(void) restart;
74 		@GodotName("set_spread") GodotMethod!(void, double) setSpread;
75 		@GodotName("get_spread") GodotMethod!(double) getSpread;
76 		@GodotName("set_flatness") GodotMethod!(void, double) setFlatness;
77 		@GodotName("get_flatness") GodotMethod!(double) getFlatness;
78 		@GodotName("set_param") GodotMethod!(void, long, double) setParam;
79 		@GodotName("get_param") GodotMethod!(double, long) getParam;
80 		@GodotName("set_param_randomness") GodotMethod!(void, long, double) setParamRandomness;
81 		@GodotName("get_param_randomness") GodotMethod!(double, long) getParamRandomness;
82 		@GodotName("set_param_curve") GodotMethod!(void, long, Curve) setParamCurve;
83 		@GodotName("get_param_curve") GodotMethod!(Curve, long) getParamCurve;
84 		@GodotName("set_color") GodotMethod!(void, Color) setColor;
85 		@GodotName("get_color") GodotMethod!(Color) getColor;
86 		@GodotName("set_color_ramp") GodotMethod!(void, Gradient) setColorRamp;
87 		@GodotName("get_color_ramp") GodotMethod!(Gradient) getColorRamp;
88 		@GodotName("set_particle_flag") GodotMethod!(void, long, bool) setParticleFlag;
89 		@GodotName("get_particle_flag") GodotMethod!(bool, long) getParticleFlag;
90 		@GodotName("set_emission_shape") GodotMethod!(void, long) setEmissionShape;
91 		@GodotName("get_emission_shape") GodotMethod!(CPUParticles2D.EmissionShape) getEmissionShape;
92 		@GodotName("set_emission_sphere_radius") GodotMethod!(void, double) setEmissionSphereRadius;
93 		@GodotName("get_emission_sphere_radius") GodotMethod!(double) getEmissionSphereRadius;
94 		@GodotName("set_emission_rect_extents") GodotMethod!(void, Vector2) setEmissionRectExtents;
95 		@GodotName("get_emission_rect_extents") GodotMethod!(Vector2) getEmissionRectExtents;
96 		@GodotName("set_emission_points") GodotMethod!(void, PoolVector2Array) setEmissionPoints;
97 		@GodotName("get_emission_points") GodotMethod!(PoolVector2Array) getEmissionPoints;
98 		@GodotName("set_emission_normals") GodotMethod!(void, PoolVector2Array) setEmissionNormals;
99 		@GodotName("get_emission_normals") GodotMethod!(PoolVector2Array) getEmissionNormals;
100 		@GodotName("set_emission_colors") GodotMethod!(void, PoolColorArray) setEmissionColors;
101 		@GodotName("get_emission_colors") GodotMethod!(PoolColorArray) getEmissionColors;
102 		@GodotName("get_gravity") GodotMethod!(Vector2) getGravity;
103 		@GodotName("set_gravity") GodotMethod!(void, Vector2) setGravity;
104 		@GodotName("convert_from_particles") GodotMethod!(void, GodotObject) convertFromParticles;
105 		@GodotName("_update_render_thread") GodotMethod!(void) _updateRenderThread;
106 	}
107 	bool opEquals(in CPUParticles2D other) const { return _godot_object.ptr is other._godot_object.ptr; }
108 	CPUParticles2D opAssign(T : typeof(null))(T n) { _godot_object.ptr = null; }
109 	bool opEquals(typeof(null) n) const { return _godot_object.ptr is null; }
110 	mixin baseCasts;
111 	static CPUParticles2D _new()
112 	{
113 		static godot_class_constructor constructor;
114 		if(constructor is null) constructor = _godot_api.godot_get_class_constructor("CPUParticles2D");
115 		if(constructor is null) return typeof(this).init;
116 		return cast(CPUParticles2D)(constructor());
117 	}
118 	@disable new(size_t s);
119 	/// 
120 	enum Flags : int
121 	{
122 		/**
123 		
124 		*/
125 		flagAlignYToVelocity = 0,
126 		/**
127 		
128 		*/
129 		flagMax = 2,
130 	}
131 	/// 
132 	enum EmissionShape : int
133 	{
134 		/**
135 		
136 		*/
137 		emissionShapePoint = 0,
138 		/**
139 		
140 		*/
141 		emissionShapeCircle = 1,
142 		/**
143 		
144 		*/
145 		emissionShapeRectangle = 2,
146 		/**
147 		
148 		*/
149 		emissionShapePoints = 3,
150 		/**
151 		
152 		*/
153 		emissionShapeDirectedPoints = 4,
154 	}
155 	/// 
156 	enum Parameter : int
157 	{
158 		/**
159 		
160 		*/
161 		paramInitialLinearVelocity = 0,
162 		/**
163 		
164 		*/
165 		paramAngularVelocity = 1,
166 		/**
167 		
168 		*/
169 		paramOrbitVelocity = 2,
170 		/**
171 		
172 		*/
173 		paramLinearAccel = 3,
174 		/**
175 		
176 		*/
177 		paramRadialAccel = 4,
178 		/**
179 		
180 		*/
181 		paramTangentialAccel = 5,
182 		/**
183 		
184 		*/
185 		paramDamping = 6,
186 		/**
187 		
188 		*/
189 		paramAngle = 7,
190 		/**
191 		
192 		*/
193 		paramScale = 8,
194 		/**
195 		
196 		*/
197 		paramHueVariation = 9,
198 		/**
199 		
200 		*/
201 		paramAnimSpeed = 10,
202 		/**
203 		
204 		*/
205 		paramAnimOffset = 11,
206 		/**
207 		
208 		*/
209 		paramMax = 12,
210 	}
211 	/// 
212 	enum DrawOrder : int
213 	{
214 		/**
215 		
216 		*/
217 		drawOrderIndex = 0,
218 		/**
219 		
220 		*/
221 		drawOrderLifetime = 1,
222 	}
223 	/// 
224 	enum Constants : int
225 	{
226 		flagAlignYToVelocity = 0,
227 		paramInitialLinearVelocity = 0,
228 		emissionShapePoint = 0,
229 		drawOrderIndex = 0,
230 		paramAngularVelocity = 1,
231 		emissionShapeCircle = 1,
232 		drawOrderLifetime = 1,
233 		flagMax = 2,
234 		paramOrbitVelocity = 2,
235 		emissionShapeRectangle = 2,
236 		emissionShapePoints = 3,
237 		paramLinearAccel = 3,
238 		emissionShapeDirectedPoints = 4,
239 		paramRadialAccel = 4,
240 		paramTangentialAccel = 5,
241 		paramDamping = 6,
242 		paramAngle = 7,
243 		paramScale = 8,
244 		paramHueVariation = 9,
245 		paramAnimSpeed = 10,
246 		paramAnimOffset = 11,
247 		paramMax = 12,
248 	}
249 	/**
250 	
251 	*/
252 	void setEmitting(in bool emitting)
253 	{
254 		checkClassBinding!(typeof(this))();
255 		ptrcall!(void)(_classBinding.setEmitting, _godot_object, emitting);
256 	}
257 	/**
258 	
259 	*/
260 	void setAmount(in long amount)
261 	{
262 		checkClassBinding!(typeof(this))();
263 		ptrcall!(void)(_classBinding.setAmount, _godot_object, amount);
264 	}
265 	/**
266 	
267 	*/
268 	void setLifetime(in double secs)
269 	{
270 		checkClassBinding!(typeof(this))();
271 		ptrcall!(void)(_classBinding.setLifetime, _godot_object, secs);
272 	}
273 	/**
274 	
275 	*/
276 	void setOneShot(in bool enable)
277 	{
278 		checkClassBinding!(typeof(this))();
279 		ptrcall!(void)(_classBinding.setOneShot, _godot_object, enable);
280 	}
281 	/**
282 	
283 	*/
284 	void setPreProcessTime(in double secs)
285 	{
286 		checkClassBinding!(typeof(this))();
287 		ptrcall!(void)(_classBinding.setPreProcessTime, _godot_object, secs);
288 	}
289 	/**
290 	
291 	*/
292 	void setExplosivenessRatio(in double ratio)
293 	{
294 		checkClassBinding!(typeof(this))();
295 		ptrcall!(void)(_classBinding.setExplosivenessRatio, _godot_object, ratio);
296 	}
297 	/**
298 	
299 	*/
300 	void setRandomnessRatio(in double ratio)
301 	{
302 		checkClassBinding!(typeof(this))();
303 		ptrcall!(void)(_classBinding.setRandomnessRatio, _godot_object, ratio);
304 	}
305 	/**
306 	
307 	*/
308 	void setUseLocalCoordinates(in bool enable)
309 	{
310 		checkClassBinding!(typeof(this))();
311 		ptrcall!(void)(_classBinding.setUseLocalCoordinates, _godot_object, enable);
312 	}
313 	/**
314 	
315 	*/
316 	void setFixedFps(in long fps)
317 	{
318 		checkClassBinding!(typeof(this))();
319 		ptrcall!(void)(_classBinding.setFixedFps, _godot_object, fps);
320 	}
321 	/**
322 	
323 	*/
324 	void setFractionalDelta(in bool enable)
325 	{
326 		checkClassBinding!(typeof(this))();
327 		ptrcall!(void)(_classBinding.setFractionalDelta, _godot_object, enable);
328 	}
329 	/**
330 	
331 	*/
332 	void setSpeedScale(in double scale)
333 	{
334 		checkClassBinding!(typeof(this))();
335 		ptrcall!(void)(_classBinding.setSpeedScale, _godot_object, scale);
336 	}
337 	/**
338 	
339 	*/
340 	bool isEmitting() const
341 	{
342 		checkClassBinding!(typeof(this))();
343 		return ptrcall!(bool)(_classBinding.isEmitting, _godot_object);
344 	}
345 	/**
346 	
347 	*/
348 	long getAmount() const
349 	{
350 		checkClassBinding!(typeof(this))();
351 		return ptrcall!(long)(_classBinding.getAmount, _godot_object);
352 	}
353 	/**
354 	
355 	*/
356 	double getLifetime() const
357 	{
358 		checkClassBinding!(typeof(this))();
359 		return ptrcall!(double)(_classBinding.getLifetime, _godot_object);
360 	}
361 	/**
362 	
363 	*/
364 	bool getOneShot() const
365 	{
366 		checkClassBinding!(typeof(this))();
367 		return ptrcall!(bool)(_classBinding.getOneShot, _godot_object);
368 	}
369 	/**
370 	
371 	*/
372 	double getPreProcessTime() const
373 	{
374 		checkClassBinding!(typeof(this))();
375 		return ptrcall!(double)(_classBinding.getPreProcessTime, _godot_object);
376 	}
377 	/**
378 	
379 	*/
380 	double getExplosivenessRatio() const
381 	{
382 		checkClassBinding!(typeof(this))();
383 		return ptrcall!(double)(_classBinding.getExplosivenessRatio, _godot_object);
384 	}
385 	/**
386 	
387 	*/
388 	double getRandomnessRatio() const
389 	{
390 		checkClassBinding!(typeof(this))();
391 		return ptrcall!(double)(_classBinding.getRandomnessRatio, _godot_object);
392 	}
393 	/**
394 	
395 	*/
396 	bool getUseLocalCoordinates() const
397 	{
398 		checkClassBinding!(typeof(this))();
399 		return ptrcall!(bool)(_classBinding.getUseLocalCoordinates, _godot_object);
400 	}
401 	/**
402 	
403 	*/
404 	long getFixedFps() const
405 	{
406 		checkClassBinding!(typeof(this))();
407 		return ptrcall!(long)(_classBinding.getFixedFps, _godot_object);
408 	}
409 	/**
410 	
411 	*/
412 	bool getFractionalDelta() const
413 	{
414 		checkClassBinding!(typeof(this))();
415 		return ptrcall!(bool)(_classBinding.getFractionalDelta, _godot_object);
416 	}
417 	/**
418 	
419 	*/
420 	double getSpeedScale() const
421 	{
422 		checkClassBinding!(typeof(this))();
423 		return ptrcall!(double)(_classBinding.getSpeedScale, _godot_object);
424 	}
425 	/**
426 	
427 	*/
428 	void setDrawOrder(in long order)
429 	{
430 		checkClassBinding!(typeof(this))();
431 		ptrcall!(void)(_classBinding.setDrawOrder, _godot_object, order);
432 	}
433 	/**
434 	
435 	*/
436 	CPUParticles2D.DrawOrder getDrawOrder() const
437 	{
438 		checkClassBinding!(typeof(this))();
439 		return ptrcall!(CPUParticles2D.DrawOrder)(_classBinding.getDrawOrder, _godot_object);
440 	}
441 	/**
442 	
443 	*/
444 	void setTexture(Texture texture)
445 	{
446 		checkClassBinding!(typeof(this))();
447 		ptrcall!(void)(_classBinding.setTexture, _godot_object, texture);
448 	}
449 	/**
450 	
451 	*/
452 	Ref!Texture getTexture() const
453 	{
454 		checkClassBinding!(typeof(this))();
455 		return ptrcall!(Texture)(_classBinding.getTexture, _godot_object);
456 	}
457 	/**
458 	
459 	*/
460 	void setNormalmap(Texture normalmap)
461 	{
462 		checkClassBinding!(typeof(this))();
463 		ptrcall!(void)(_classBinding.setNormalmap, _godot_object, normalmap);
464 	}
465 	/**
466 	
467 	*/
468 	Ref!Texture getNormalmap() const
469 	{
470 		checkClassBinding!(typeof(this))();
471 		return ptrcall!(Texture)(_classBinding.getNormalmap, _godot_object);
472 	}
473 	/**
474 	
475 	*/
476 	void restart()
477 	{
478 		checkClassBinding!(typeof(this))();
479 		ptrcall!(void)(_classBinding.restart, _godot_object);
480 	}
481 	/**
482 	
483 	*/
484 	void setSpread(in double degrees)
485 	{
486 		checkClassBinding!(typeof(this))();
487 		ptrcall!(void)(_classBinding.setSpread, _godot_object, degrees);
488 	}
489 	/**
490 	
491 	*/
492 	double getSpread() const
493 	{
494 		checkClassBinding!(typeof(this))();
495 		return ptrcall!(double)(_classBinding.getSpread, _godot_object);
496 	}
497 	/**
498 	
499 	*/
500 	void setFlatness(in double amount)
501 	{
502 		checkClassBinding!(typeof(this))();
503 		ptrcall!(void)(_classBinding.setFlatness, _godot_object, amount);
504 	}
505 	/**
506 	
507 	*/
508 	double getFlatness() const
509 	{
510 		checkClassBinding!(typeof(this))();
511 		return ptrcall!(double)(_classBinding.getFlatness, _godot_object);
512 	}
513 	/**
514 	
515 	*/
516 	void setParam(in long param, in double value)
517 	{
518 		checkClassBinding!(typeof(this))();
519 		ptrcall!(void)(_classBinding.setParam, _godot_object, param, value);
520 	}
521 	/**
522 	
523 	*/
524 	double getParam(in long param) const
525 	{
526 		checkClassBinding!(typeof(this))();
527 		return ptrcall!(double)(_classBinding.getParam, _godot_object, param);
528 	}
529 	/**
530 	
531 	*/
532 	void setParamRandomness(in long param, in double randomness)
533 	{
534 		checkClassBinding!(typeof(this))();
535 		ptrcall!(void)(_classBinding.setParamRandomness, _godot_object, param, randomness);
536 	}
537 	/**
538 	
539 	*/
540 	double getParamRandomness(in long param) const
541 	{
542 		checkClassBinding!(typeof(this))();
543 		return ptrcall!(double)(_classBinding.getParamRandomness, _godot_object, param);
544 	}
545 	/**
546 	
547 	*/
548 	void setParamCurve(in long param, Curve curve)
549 	{
550 		checkClassBinding!(typeof(this))();
551 		ptrcall!(void)(_classBinding.setParamCurve, _godot_object, param, curve);
552 	}
553 	/**
554 	
555 	*/
556 	Ref!Curve getParamCurve(in long param) const
557 	{
558 		checkClassBinding!(typeof(this))();
559 		return ptrcall!(Curve)(_classBinding.getParamCurve, _godot_object, param);
560 	}
561 	/**
562 	
563 	*/
564 	void setColor(in Color color)
565 	{
566 		checkClassBinding!(typeof(this))();
567 		ptrcall!(void)(_classBinding.setColor, _godot_object, color);
568 	}
569 	/**
570 	
571 	*/
572 	Color getColor() const
573 	{
574 		checkClassBinding!(typeof(this))();
575 		return ptrcall!(Color)(_classBinding.getColor, _godot_object);
576 	}
577 	/**
578 	
579 	*/
580 	void setColorRamp(Gradient ramp)
581 	{
582 		checkClassBinding!(typeof(this))();
583 		ptrcall!(void)(_classBinding.setColorRamp, _godot_object, ramp);
584 	}
585 	/**
586 	
587 	*/
588 	Ref!Gradient getColorRamp() const
589 	{
590 		checkClassBinding!(typeof(this))();
591 		return ptrcall!(Gradient)(_classBinding.getColorRamp, _godot_object);
592 	}
593 	/**
594 	
595 	*/
596 	void setParticleFlag(in long flag, in bool enable)
597 	{
598 		checkClassBinding!(typeof(this))();
599 		ptrcall!(void)(_classBinding.setParticleFlag, _godot_object, flag, enable);
600 	}
601 	/**
602 	
603 	*/
604 	bool getParticleFlag(in long flag) const
605 	{
606 		checkClassBinding!(typeof(this))();
607 		return ptrcall!(bool)(_classBinding.getParticleFlag, _godot_object, flag);
608 	}
609 	/**
610 	
611 	*/
612 	void setEmissionShape(in long shape)
613 	{
614 		checkClassBinding!(typeof(this))();
615 		ptrcall!(void)(_classBinding.setEmissionShape, _godot_object, shape);
616 	}
617 	/**
618 	
619 	*/
620 	CPUParticles2D.EmissionShape getEmissionShape() const
621 	{
622 		checkClassBinding!(typeof(this))();
623 		return ptrcall!(CPUParticles2D.EmissionShape)(_classBinding.getEmissionShape, _godot_object);
624 	}
625 	/**
626 	
627 	*/
628 	void setEmissionSphereRadius(in double radius)
629 	{
630 		checkClassBinding!(typeof(this))();
631 		ptrcall!(void)(_classBinding.setEmissionSphereRadius, _godot_object, radius);
632 	}
633 	/**
634 	
635 	*/
636 	double getEmissionSphereRadius() const
637 	{
638 		checkClassBinding!(typeof(this))();
639 		return ptrcall!(double)(_classBinding.getEmissionSphereRadius, _godot_object);
640 	}
641 	/**
642 	
643 	*/
644 	void setEmissionRectExtents(in Vector2 extents)
645 	{
646 		checkClassBinding!(typeof(this))();
647 		ptrcall!(void)(_classBinding.setEmissionRectExtents, _godot_object, extents);
648 	}
649 	/**
650 	
651 	*/
652 	Vector2 getEmissionRectExtents() const
653 	{
654 		checkClassBinding!(typeof(this))();
655 		return ptrcall!(Vector2)(_classBinding.getEmissionRectExtents, _godot_object);
656 	}
657 	/**
658 	
659 	*/
660 	void setEmissionPoints(in PoolVector2Array array)
661 	{
662 		checkClassBinding!(typeof(this))();
663 		ptrcall!(void)(_classBinding.setEmissionPoints, _godot_object, array);
664 	}
665 	/**
666 	
667 	*/
668 	PoolVector2Array getEmissionPoints() const
669 	{
670 		checkClassBinding!(typeof(this))();
671 		return ptrcall!(PoolVector2Array)(_classBinding.getEmissionPoints, _godot_object);
672 	}
673 	/**
674 	
675 	*/
676 	void setEmissionNormals(in PoolVector2Array array)
677 	{
678 		checkClassBinding!(typeof(this))();
679 		ptrcall!(void)(_classBinding.setEmissionNormals, _godot_object, array);
680 	}
681 	/**
682 	
683 	*/
684 	PoolVector2Array getEmissionNormals() const
685 	{
686 		checkClassBinding!(typeof(this))();
687 		return ptrcall!(PoolVector2Array)(_classBinding.getEmissionNormals, _godot_object);
688 	}
689 	/**
690 	
691 	*/
692 	void setEmissionColors(in PoolColorArray array)
693 	{
694 		checkClassBinding!(typeof(this))();
695 		ptrcall!(void)(_classBinding.setEmissionColors, _godot_object, array);
696 	}
697 	/**
698 	
699 	*/
700 	PoolColorArray getEmissionColors() const
701 	{
702 		checkClassBinding!(typeof(this))();
703 		return ptrcall!(PoolColorArray)(_classBinding.getEmissionColors, _godot_object);
704 	}
705 	/**
706 	
707 	*/
708 	Vector2 getGravity() const
709 	{
710 		checkClassBinding!(typeof(this))();
711 		return ptrcall!(Vector2)(_classBinding.getGravity, _godot_object);
712 	}
713 	/**
714 	
715 	*/
716 	void setGravity(in Vector2 accel_vec)
717 	{
718 		checkClassBinding!(typeof(this))();
719 		ptrcall!(void)(_classBinding.setGravity, _godot_object, accel_vec);
720 	}
721 	/**
722 	
723 	*/
724 	void convertFromParticles(GodotObject particles)
725 	{
726 		checkClassBinding!(typeof(this))();
727 		ptrcall!(void)(_classBinding.convertFromParticles, _godot_object, particles);
728 	}
729 	/**
730 	
731 	*/
732 	void _updateRenderThread()
733 	{
734 		Array _GODOT_args = Array.empty_array;
735 		String _GODOT_method_name = String("_update_render_thread");
736 		this.callv(_GODOT_method_name, _GODOT_args);
737 	}
738 	/**
739 	
740 	*/
741 	@property bool emitting()
742 	{
743 		return isEmitting();
744 	}
745 	/// ditto
746 	@property void emitting(bool v)
747 	{
748 		setEmitting(v);
749 	}
750 	/**
751 	
752 	*/
753 	@property long amount()
754 	{
755 		return getAmount();
756 	}
757 	/// ditto
758 	@property void amount(long v)
759 	{
760 		setAmount(v);
761 	}
762 	/**
763 	
764 	*/
765 	@property double lifetime()
766 	{
767 		return getLifetime();
768 	}
769 	/// ditto
770 	@property void lifetime(double v)
771 	{
772 		setLifetime(v);
773 	}
774 	/**
775 	
776 	*/
777 	@property bool oneShot()
778 	{
779 		return getOneShot();
780 	}
781 	/// ditto
782 	@property void oneShot(bool v)
783 	{
784 		setOneShot(v);
785 	}
786 	/**
787 	
788 	*/
789 	@property double preprocess()
790 	{
791 		return getPreProcessTime();
792 	}
793 	/// ditto
794 	@property void preprocess(double v)
795 	{
796 		setPreProcessTime(v);
797 	}
798 	/**
799 	
800 	*/
801 	@property double speedScale()
802 	{
803 		return getSpeedScale();
804 	}
805 	/// ditto
806 	@property void speedScale(double v)
807 	{
808 		setSpeedScale(v);
809 	}
810 	/**
811 	
812 	*/
813 	@property double explosiveness()
814 	{
815 		return getExplosivenessRatio();
816 	}
817 	/// ditto
818 	@property void explosiveness(double v)
819 	{
820 		setExplosivenessRatio(v);
821 	}
822 	/**
823 	
824 	*/
825 	@property double randomness()
826 	{
827 		return getRandomnessRatio();
828 	}
829 	/// ditto
830 	@property void randomness(double v)
831 	{
832 		setRandomnessRatio(v);
833 	}
834 	/**
835 	
836 	*/
837 	@property long fixedFps()
838 	{
839 		return getFixedFps();
840 	}
841 	/// ditto
842 	@property void fixedFps(long v)
843 	{
844 		setFixedFps(v);
845 	}
846 	/**
847 	
848 	*/
849 	@property bool fractDelta()
850 	{
851 		return getFractionalDelta();
852 	}
853 	/// ditto
854 	@property void fractDelta(bool v)
855 	{
856 		setFractionalDelta(v);
857 	}
858 	/**
859 	
860 	*/
861 	@property bool localCoords()
862 	{
863 		return getUseLocalCoordinates();
864 	}
865 	/// ditto
866 	@property void localCoords(bool v)
867 	{
868 		setUseLocalCoordinates(v);
869 	}
870 	/**
871 	
872 	*/
873 	@property CPUParticles2D.DrawOrder drawOrder()
874 	{
875 		return getDrawOrder();
876 	}
877 	/// ditto
878 	@property void drawOrder(long v)
879 	{
880 		setDrawOrder(v);
881 	}
882 	/**
883 	
884 	*/
885 	@property Texture texture()
886 	{
887 		return getTexture();
888 	}
889 	/// ditto
890 	@property void texture(Texture v)
891 	{
892 		setTexture(v);
893 	}
894 	/**
895 	
896 	*/
897 	@property Texture normalmap()
898 	{
899 		return getNormalmap();
900 	}
901 	/// ditto
902 	@property void normalmap(Texture v)
903 	{
904 		setNormalmap(v);
905 	}
906 	/**
907 	
908 	*/
909 	@property CPUParticles2D.EmissionShape emissionShape()
910 	{
911 		return getEmissionShape();
912 	}
913 	/// ditto
914 	@property void emissionShape(long v)
915 	{
916 		setEmissionShape(v);
917 	}
918 	/**
919 	
920 	*/
921 	@property double emissionSphereRadius()
922 	{
923 		return getEmissionSphereRadius();
924 	}
925 	/// ditto
926 	@property void emissionSphereRadius(double v)
927 	{
928 		setEmissionSphereRadius(v);
929 	}
930 	/**
931 	
932 	*/
933 	@property Vector2 emissionRectExtents()
934 	{
935 		return getEmissionRectExtents();
936 	}
937 	/// ditto
938 	@property void emissionRectExtents(Vector2 v)
939 	{
940 		setEmissionRectExtents(v);
941 	}
942 	/**
943 	
944 	*/
945 	@property PoolVector2Array emissionPoints()
946 	{
947 		return getEmissionPoints();
948 	}
949 	/// ditto
950 	@property void emissionPoints(PoolVector2Array v)
951 	{
952 		setEmissionPoints(v);
953 	}
954 	/**
955 	
956 	*/
957 	@property PoolVector2Array emissionNormals()
958 	{
959 		return getEmissionNormals();
960 	}
961 	/// ditto
962 	@property void emissionNormals(PoolVector2Array v)
963 	{
964 		setEmissionNormals(v);
965 	}
966 	/**
967 	
968 	*/
969 	@property PoolColorArray emissionColors()
970 	{
971 		return getEmissionColors();
972 	}
973 	/// ditto
974 	@property void emissionColors(PoolColorArray v)
975 	{
976 		setEmissionColors(v);
977 	}
978 	/**
979 	
980 	*/
981 	@property bool flagAlignY()
982 	{
983 		return getParticleFlag(0);
984 	}
985 	/// ditto
986 	@property void flagAlignY(bool v)
987 	{
988 		setParticleFlag(0, v);
989 	}
990 	/**
991 	
992 	*/
993 	@property double spread()
994 	{
995 		return getSpread();
996 	}
997 	/// ditto
998 	@property void spread(double v)
999 	{
1000 		setSpread(v);
1001 	}
1002 	/**
1003 	
1004 	*/
1005 	@property double flatness()
1006 	{
1007 		return getFlatness();
1008 	}
1009 	/// ditto
1010 	@property void flatness(double v)
1011 	{
1012 		setFlatness(v);
1013 	}
1014 	/**
1015 	
1016 	*/
1017 	@property Vector2 gravity()
1018 	{
1019 		return getGravity();
1020 	}
1021 	/// ditto
1022 	@property void gravity(Vector2 v)
1023 	{
1024 		setGravity(v);
1025 	}
1026 	/**
1027 	
1028 	*/
1029 	@property double initialVelocity()
1030 	{
1031 		return getParam(0);
1032 	}
1033 	/// ditto
1034 	@property void initialVelocity(double v)
1035 	{
1036 		setParam(0, v);
1037 	}
1038 	/**
1039 	
1040 	*/
1041 	@property double initialVelocityRandom()
1042 	{
1043 		return getParamRandomness(0);
1044 	}
1045 	/// ditto
1046 	@property void initialVelocityRandom(double v)
1047 	{
1048 		setParamRandomness(0, v);
1049 	}
1050 	/**
1051 	
1052 	*/
1053 	@property double angularVelocity()
1054 	{
1055 		return getParam(1);
1056 	}
1057 	/// ditto
1058 	@property void angularVelocity(double v)
1059 	{
1060 		setParam(1, v);
1061 	}
1062 	/**
1063 	
1064 	*/
1065 	@property double angularVelocityRandom()
1066 	{
1067 		return getParamRandomness(1);
1068 	}
1069 	/// ditto
1070 	@property void angularVelocityRandom(double v)
1071 	{
1072 		setParamRandomness(1, v);
1073 	}
1074 	/**
1075 	
1076 	*/
1077 	@property Curve angularVelocityCurve()
1078 	{
1079 		return getParamCurve(1);
1080 	}
1081 	/// ditto
1082 	@property void angularVelocityCurve(Curve v)
1083 	{
1084 		setParamCurve(1, v);
1085 	}
1086 	/**
1087 	
1088 	*/
1089 	@property double linearAccel()
1090 	{
1091 		return getParam(3);
1092 	}
1093 	/// ditto
1094 	@property void linearAccel(double v)
1095 	{
1096 		setParam(3, v);
1097 	}
1098 	/**
1099 	
1100 	*/
1101 	@property double linearAccelRandom()
1102 	{
1103 		return getParamRandomness(3);
1104 	}
1105 	/// ditto
1106 	@property void linearAccelRandom(double v)
1107 	{
1108 		setParamRandomness(3, v);
1109 	}
1110 	/**
1111 	
1112 	*/
1113 	@property Curve linearAccelCurve()
1114 	{
1115 		return getParamCurve(3);
1116 	}
1117 	/// ditto
1118 	@property void linearAccelCurve(Curve v)
1119 	{
1120 		setParamCurve(3, v);
1121 	}
1122 	/**
1123 	
1124 	*/
1125 	@property double radialAccel()
1126 	{
1127 		return getParam(4);
1128 	}
1129 	/// ditto
1130 	@property void radialAccel(double v)
1131 	{
1132 		setParam(4, v);
1133 	}
1134 	/**
1135 	
1136 	*/
1137 	@property double radialAccelRandom()
1138 	{
1139 		return getParamRandomness(4);
1140 	}
1141 	/// ditto
1142 	@property void radialAccelRandom(double v)
1143 	{
1144 		setParamRandomness(4, v);
1145 	}
1146 	/**
1147 	
1148 	*/
1149 	@property Curve radialAccelCurve()
1150 	{
1151 		return getParamCurve(4);
1152 	}
1153 	/// ditto
1154 	@property void radialAccelCurve(Curve v)
1155 	{
1156 		setParamCurve(4, v);
1157 	}
1158 	/**
1159 	
1160 	*/
1161 	@property double tangentialAccel()
1162 	{
1163 		return getParam(5);
1164 	}
1165 	/// ditto
1166 	@property void tangentialAccel(double v)
1167 	{
1168 		setParam(5, v);
1169 	}
1170 	/**
1171 	
1172 	*/
1173 	@property double tangentialAccelRandom()
1174 	{
1175 		return getParamRandomness(5);
1176 	}
1177 	/// ditto
1178 	@property void tangentialAccelRandom(double v)
1179 	{
1180 		setParamRandomness(5, v);
1181 	}
1182 	/**
1183 	
1184 	*/
1185 	@property Curve tangentialAccelCurve()
1186 	{
1187 		return getParamCurve(5);
1188 	}
1189 	/// ditto
1190 	@property void tangentialAccelCurve(Curve v)
1191 	{
1192 		setParamCurve(5, v);
1193 	}
1194 	/**
1195 	
1196 	*/
1197 	@property double damping()
1198 	{
1199 		return getParam(6);
1200 	}
1201 	/// ditto
1202 	@property void damping(double v)
1203 	{
1204 		setParam(6, v);
1205 	}
1206 	/**
1207 	
1208 	*/
1209 	@property double dampingRandom()
1210 	{
1211 		return getParamRandomness(6);
1212 	}
1213 	/// ditto
1214 	@property void dampingRandom(double v)
1215 	{
1216 		setParamRandomness(6, v);
1217 	}
1218 	/**
1219 	
1220 	*/
1221 	@property Curve dampingCurve()
1222 	{
1223 		return getParamCurve(6);
1224 	}
1225 	/// ditto
1226 	@property void dampingCurve(Curve v)
1227 	{
1228 		setParamCurve(6, v);
1229 	}
1230 	/**
1231 	
1232 	*/
1233 	@property double angle()
1234 	{
1235 		return getParam(7);
1236 	}
1237 	/// ditto
1238 	@property void angle(double v)
1239 	{
1240 		setParam(7, v);
1241 	}
1242 	/**
1243 	
1244 	*/
1245 	@property double angleRandom()
1246 	{
1247 		return getParamRandomness(7);
1248 	}
1249 	/// ditto
1250 	@property void angleRandom(double v)
1251 	{
1252 		setParamRandomness(7, v);
1253 	}
1254 	/**
1255 	
1256 	*/
1257 	@property Curve angleCurve()
1258 	{
1259 		return getParamCurve(7);
1260 	}
1261 	/// ditto
1262 	@property void angleCurve(Curve v)
1263 	{
1264 		setParamCurve(7, v);
1265 	}
1266 	/**
1267 	
1268 	*/
1269 	@property double scale()
1270 	{
1271 		return getParam(8);
1272 	}
1273 	/// ditto
1274 	@property void scale(double v)
1275 	{
1276 		setParam(8, v);
1277 	}
1278 	/**
1279 	
1280 	*/
1281 	@property double scaleRandom()
1282 	{
1283 		return getParamRandomness(8);
1284 	}
1285 	/// ditto
1286 	@property void scaleRandom(double v)
1287 	{
1288 		setParamRandomness(8, v);
1289 	}
1290 	/**
1291 	
1292 	*/
1293 	@property Curve scaleCurve()
1294 	{
1295 		return getParamCurve(8);
1296 	}
1297 	/// ditto
1298 	@property void scaleCurve(Curve v)
1299 	{
1300 		setParamCurve(8, v);
1301 	}
1302 	/**
1303 	
1304 	*/
1305 	@property Color color()
1306 	{
1307 		return getColor();
1308 	}
1309 	/// ditto
1310 	@property void color(Color v)
1311 	{
1312 		setColor(v);
1313 	}
1314 	/**
1315 	
1316 	*/
1317 	@property Gradient colorRamp()
1318 	{
1319 		return getColorRamp();
1320 	}
1321 	/// ditto
1322 	@property void colorRamp(Gradient v)
1323 	{
1324 		setColorRamp(v);
1325 	}
1326 	/**
1327 	
1328 	*/
1329 	@property double hueVariation()
1330 	{
1331 		return getParam(9);
1332 	}
1333 	/// ditto
1334 	@property void hueVariation(double v)
1335 	{
1336 		setParam(9, v);
1337 	}
1338 	/**
1339 	
1340 	*/
1341 	@property double hueVariationRandom()
1342 	{
1343 		return getParamRandomness(9);
1344 	}
1345 	/// ditto
1346 	@property void hueVariationRandom(double v)
1347 	{
1348 		setParamRandomness(9, v);
1349 	}
1350 	/**
1351 	
1352 	*/
1353 	@property Curve hueVariationCurve()
1354 	{
1355 		return getParamCurve(9);
1356 	}
1357 	/// ditto
1358 	@property void hueVariationCurve(Curve v)
1359 	{
1360 		setParamCurve(9, v);
1361 	}
1362 	/**
1363 	
1364 	*/
1365 	@property double animSpeed()
1366 	{
1367 		return getParam(10);
1368 	}
1369 	/// ditto
1370 	@property void animSpeed(double v)
1371 	{
1372 		setParam(10, v);
1373 	}
1374 	/**
1375 	
1376 	*/
1377 	@property double animSpeedRandom()
1378 	{
1379 		return getParamRandomness(10);
1380 	}
1381 	/// ditto
1382 	@property void animSpeedRandom(double v)
1383 	{
1384 		setParamRandomness(10, v);
1385 	}
1386 	/**
1387 	
1388 	*/
1389 	@property Curve animSpeedCurve()
1390 	{
1391 		return getParamCurve(10);
1392 	}
1393 	/// ditto
1394 	@property void animSpeedCurve(Curve v)
1395 	{
1396 		setParamCurve(10, v);
1397 	}
1398 	/**
1399 	
1400 	*/
1401 	@property double animOffset()
1402 	{
1403 		return getParam(11);
1404 	}
1405 	/// ditto
1406 	@property void animOffset(double v)
1407 	{
1408 		setParam(11, v);
1409 	}
1410 	/**
1411 	
1412 	*/
1413 	@property double animOffsetRandom()
1414 	{
1415 		return getParamRandomness(11);
1416 	}
1417 	/// ditto
1418 	@property void animOffsetRandom(double v)
1419 	{
1420 		setParamRandomness(11, v);
1421 	}
1422 	/**
1423 	
1424 	*/
1425 	@property Curve animOffsetCurve()
1426 	{
1427 		return getParamCurve(11);
1428 	}
1429 	/// ditto
1430 	@property void animOffsetCurve(Curve v)
1431 	{
1432 		setParamCurve(11, v);
1433 	}
1434 	/**
1435 	
1436 	*/
1437 	@property bool animLoop()
1438 	{
1439 		return getParticleFlag(1);
1440 	}
1441 	/// ditto
1442 	@property void animLoop(bool v)
1443 	{
1444 		setParticleFlag(1, v);
1445 	}
1446 }