Source: effects/RainEffect.js

import { Utils } from "../main";
import { Effect } from "./Effect";

/**
 * @class RainEffect
 * The rain effect.
 * @extends Effect
 * @memberof THING
 * @public
 */
class RainEffect extends Effect {

	constructor(params) {
		super(params);

		this.createResourceNode('RainEffect');
	}

	// #region Accessor

	/**
     * Get/Set rain speed.
     * @type {Number}
     * @default 1.0
     * @public
     */
	get speed() {
		return this.resource.getSpeed();
	}

	set speed(value) {
		this.resource.setSpeed(value);
	}

	/**
     * Get/Set rain size.
     * @type {Number}
     * @default 0.6
     * @public
     */
	get size() {
		return this.resource.getSize();
	}

	set size(value) {
		this.resource.setSize(value);
	}

	/**
     * Get/Set rain angle.
     * @type {Number}
     * @default 10
     * @public
     */
	get angle() {
		return this.resource.getAngle();
	}

	set angle(value) {
		this.resource.setAngle(value);
	}


	/**
     * Get/Set rain density.
     * @type {Number}
     * @default 1.0
     * @public
     */
	get density() {
		return this.resource.getDensity();
	}

	set density(value) {
		this.resource.setDensity(value);
	}

	/**
     * Get/Set rain strength.
     * @type {Number}
     * @default 1.0
     * @public
     */
	get strength() {
		return this.resource.getStrength();
	}

	set strength(value) {
		this.resource.setStrength(value);
	}

	/**
     * Get/Set rain cover strength.
     * @type {Number}
     * @default 0.2
     * @public
     */
	get coverStrength() {
		return this.resource.getCoverStrength();
	}

	set coverStrength(value) {
		this.resource.setCoverStrength(value);
	}


	/**
     * Get/Set rain cover density.
     * @type {Number}
     * @default 0.75
     * @public
     */
	get coverDensity() {
		return this.resource.getCoverDensity();
	}

	set coverDensity(value) {
		this.resource.setCoverDensity(value);
	}

	/**
     * Get/Set rain cover size.
     * @type {Number}
     * @default 5.0
     * @public
     */
	get coverSize() {
		return this.resource.getCoverSize();
	}

	set coverSize(value) {
		this.resource.setCoverSize(value);
	}


	/**
     * Get/Set rain cover speed.
     * @type {Number}
     * @default 1.0
     * @public
     */
	get coverSpeed() {
		return this.resource.getCoverSpeed();
	}

	set coverSpeed(value) {
		this.resource.setCoverSpeed(value);
	}

	/**
     * Set rain cover texture.
     * @type {ImageTextureResource}
     * @default null
     * @public
     */
	set coverTexture(imageTexture) {
		this.resource.setCoverTexture(imageTexture.getTextureResource());
	}
	// #endregion

}
export { RainEffect }