const ALPHA_CONTROL = {
	type: 'range',
	min: 0,
	max: 1,
	step: 0.01,
};
const COLOR_CONTROL = {
	type: 'color',
};
const RGB_SPLIT_CONTROL = {
	type: 'range',
	min: -200,
	max: 200,
	step: 1,
};
const FILE_CONTROL = {
	type: 'file',
	fileType: 'imagevideo',
};
const ROTATION_CONTROL = {
	type: 'range',
	min: 0,
	max: 360,
	step: 0.5,
};

export const FILTER_PARAM_CONTROLS = {
	common: {
		_thumb: 'modules/tokenmagic/gui/macros/images/original_token.webp',
		color: COLOR_CONTROL,
		autoDestroy: {
			type: 'ignore',
		},
		time: {
			type: 'range',
			min: 0,
			max: 30000,
			step: 0.1,
			order: 99999,
		},
		zOrder: {
			type: 'range',
			min: 0,
			max: 99999,
			step: 1,
			order: 99999,
		},
		blend: {
			type: 'range',
			min: 0,
			max: 13,
			step: 1,
			animatable: false,
			order: 99997,
		},
		gridPadding: {
			type: 'range',
			min: 0,
			max: 10,
			step: 0.1,
			order: 99995,
			animatable: false,
		},
		anchorX: {
			type: 'range',
			min: -1,
			max: 1,
			step: 0.01,
		},
		anchorY: {
			type: 'range',
			min: -1,
			max: 1,
			step: 0.01,
		},
		resolution: {
			type: 'ignore',
		},
		kernels: {
			type: 'ignore',
		},
		alphaDiscard: {
			type: 'boolean',
		},
		alpha: ALPHA_CONTROL,
		rotation: ROTATION_CONTROL,
		padding: {
			type: 'range',
			min: 0,
			max: 500,
			step: 1,
			order: 99998,
			animatable: false,
		},
		blendMode: {
			type: 'select',
			get options() {
				return Object.entries(PIXI.BLEND_MODES).reduce((opts, [k, v]) => {
					if (Number.isNumeric(k)) opts[Number(k)] = v;
					return opts;
				}, {});
			},
			animatable: false,
			order: 99997,
		},
		seed: {
			type: 'range',
			min: 0,
			max: 9999,
			step: 1,
		},
		radiusPercent: {
			type: 'range',
			min: 0,
			max: 300,
			step: 1,
		},
		zIndex: {
			type: 'range',
			min: 0,
			max: 100,
			step: 1,
		},
	},
	spriteMask: {
		_thumb: 'modules/tokenmagic/gui/macros/images/45 - Star Mask (spriteMask).webp',
		imagePath: {
			type: 'file',
			fileType: 'imagevideo',
		},
		translationX: {
			type: 'range',
			min: -1,
			max: 1,
			step: 0.01,
		},
		translationY: {
			type: 'range',
			min: -1,
			max: 1,
			step: 0.01,
		},
		scaleX: {
			type: 'range',
			min: 0.1,
			max: 30,
			step: 0.01,
		},
		scaleY: {
			type: 'range',
			min: 0.1,
			max: 30,
			step: 0.01,
		},
		bpRadiusPercent: {
			type: 'range',
			min: 0,
			max: 100,
			step: 1,
		},
		bpStrength: {
			type: 'range',
			min: 0,
			max: 1.4,
			step: 0.01,
		},
		twRadiusPercent: {
			type: 'range',
			min: 0,
			max: 100,
			step: 1,
		},
		twAngle: {
			type: 'range',
			min: 0,
			max: 90,
			step: 0.1,
		},
	},
	rgbSplit: {
		_thumb: 'modules/tokenmagic/gui/macros/images/43 - RGB Split.webp',
		redX: RGB_SPLIT_CONTROL,
		redY: RGB_SPLIT_CONTROL,
		greenX: RGB_SPLIT_CONTROL,
		greenY: RGB_SPLIT_CONTROL,
		blueX: RGB_SPLIT_CONTROL,
		blueY: RGB_SPLIT_CONTROL,
	},
	crt: {
		_thumb: 'modules/tokenmagic/gui/macros/images/42 - CRT.webp',
		curvature: {
			type: 'range',
			min: 0,
			max: 100,
			step: 1,
		},
		lineWidth: {
			type: 'range',
			min: 0,
			max: 100,
			step: 1,
		},
		lineContrast: {
			type: 'range',
			min: 0,
			max: 2,
			step: 0.1,
		},
		noise: {
			type: 'range',
			min: 0,
			max: 2,
			step: 0.01,
		},
		noiseSize: {
			type: 'range',
			min: 0,
			max: 100,
			step: 1,
		},
		vignetting: ALPHA_CONTROL,
		vignettingAlpha: ALPHA_CONTROL,
		vignettingBlur: ALPHA_CONTROL,
	},
	ddTint: {
		_thumb: 'icons/magic/light/hand-sparks-smoke-green.webp',
		tint: {
			type: 'ignore',
		},
	},
	dot: {
		_thumb: 'modules/tokenmagic/gui/macros/images/41 - Dot.webp',
		scale: {
			type: 'range',
			min: 0,
			max: 2,
			step: 0.01,
		},
		angle: {
			type: 'range',
			min: 0,
			max: 360,
			step: 1,
		},
	},
	ascii: {
		_thumb: 'modules/tokenmagic/gui/macros/images/40 - Ascii.webp',
		size: {
			type: 'range',
			min: 0,
			max: 50,
			step: 1,
		},
	},
	replaceColor: {
		_thumb: 'icons/magic/time/arrows-circling-pink.webp',
		epsilon: {
			type: 'range',
			min: 0,
			max: 2,
			step: 0.01,
		},
		originalColor: {
			type: 'color',
			validate: (value) => {
				if (Array.isArray(value)) return PIXI.utils.rgb2hex(value);
				return value;
			},
		},
		newColor: {
			type: 'color',
			validate: (value) => {
				if (Array.isArray(value)) return PIXI.utils.rgb2hex(value);
				return value;
			},
		},
	},
	web: {
		_thumb: 'modules/tokenmagic/gui/macros/images/30 - T01 - Simple Web (web).webp',
		thickness: {
			type: 'range',
			min: 0,
			max: 6,
			step: 0.1,
		},
		div1: {
			type: 'range',
			min: 1,
			max: 50,
			step: 1,
			label: 'Horizontal Divisions',
		},
		div2: {
			type: 'range',
			min: 1,
			max: 50,
			step: 1,
			label: 'Vertical Divisions',
		},
		tear: {
			type: 'range',
			min: 0,
			max: 10,
			step: 0.01,
		},
		amplitude: {
			type: 'range',
			min: 0,
			max: 3,
			step: 0.01,
		},
	},
	polymorph: {
		_thumb: 'modules/tokenmagic/gui/macros/images/36 - T01 - Turn into Mystery Man (polymorph).webp',
		type: {
			type: 'select',
			options: {
				1: 'Fade',
				2: 'Deamy',
				3: 'Swirl',
				4: 'Waterdrop',
				5: 'TV Noise',
				6: 'Morph',
				7: 'Cross-Warp',
				8: 'Wind',
				9: 'Hologram',
			},
		},
		magnify: {
			type: 'range',
			min: 0,
			max: 3,
			step: 0.01,
		},
		imagePath: {
			type: 'file',
			fileType: 'imagevideo',
		},
	},
	splash: {
		_thumb: 'modules/tokenmagic/gui/macros/images/34 - T02 - Dead (splash).webp',
		spread: {
			type: 'range',
			min: 0.01,
			max: 15,
			step: 0.01,
		},
		splashFactor: {
			type: 'range',
			min: 0.01,
			max: 10,
			step: 0.1,
		},
		dimX: {
			type: 'range',
			min: -3,
			max: 3,
			step: 0.01,
		},
		dimY: {
			type: 'range',
			min: -3,
			max: 3,
			step: 0.01,
		},
		anchorX: {
			type: 'range',
			min: -1,
			max: 2,
			step: 0.01,
		},
		anchorY: {
			type: 'range',
			min: -1,
			max: 2,
			step: 0.01,
		},
	},
	ripples: {
		_thumb: 'modules/tokenmagic/gui/macros/images/32 - T01 - Solar Ripples (ripples).webp',
		amplitude: {
			type: 'range',
			min: 0,
			max: 2,
			step: 0.01,
		},
		intensity: {
			type: 'range',
			min: 0.0001,
			max: 0.2,
			step: 0.0001,
		},
		_octave: {
			type: 'ignore',
		},
	},
	globes: {
		_thumb: 'modules/tokenmagic/gui/macros/images/31 - T01 - Glowing Globes (globes).webp',
		distortion: {
			type: 'range',
			min: 0,
			max: 25,
			step: 0.01,
		},
		scale: {
			type: 'range',
			min: 1,
			max: 400,
			step: 1,
		},
	},
	xfire: {
		_thumb: 'modules/tokenmagic/gui/macros/images/35 - T01 - Fire v2 (xfire).webp',
		blend: {
			type: 'range',
			min: 0,
			max: 14,
			step: 1,
			animatable: false,
			order: 99997,
		},
		amplitude: {
			type: 'range',
			min: 0,
			max: 10,
			step: 0.1,
		},
		dispersion: ALPHA_CONTROL,
		scaleX: {
			type: 'range',
			min: 0,
			max: 10,
			step: 0.01,
		},
		scaleY: {
			type: 'range',
			min: 0,
			max: 10,
			step: 0.01,
		},
		color1: COLOR_CONTROL,
		color2: COLOR_CONTROL,
		color3: COLOR_CONTROL,
		color4: COLOR_CONTROL,
		discardThreshold: ALPHA_CONTROL,
	},
	xfog: {
		_thumb: 'modules/tokenmagic/gui/macros/images/29 - T01 - Foul Fog (xfog).webp',
	},
	liquid: {
		_thumb: 'modules/tokenmagic/gui/macros/images/26 - T01 - Spectral Body (liquid).webp',
		intensity: {
			type: 'range',
			min: 0,
			max: 10,
			step: 0.1,
		},
		scale: {
			type: 'range',
			min: 0.1,
			max: 8,
			step: 0.01,
		},
	},
	pixel: {
		_thumb: 'modules/tokenmagic/gui/macros/images/28 - Glory to Pixels.webp',
		sizeX: {
			type: 'range',
			min: 0,
			max: 100,
			step: 1,
		},
		sizeY: {
			type: 'range',
			min: 0,
			max: 100,
			step: 1,
		},
	},
	xglow: {
		_thumb: 'modules/tokenmagic/gui/macros/images/27 - T01 - Burning Aura (xglow).webp',
		auraType: {
			type: 'select',
			options: {
				1: 'Ripples',
				2: 'Noisy',
			},
		},
		thickness: {
			type: 'range',
			min: 0,
			max: 100,
			step: 1,
		},
		scale: {
			type: 'range',
			min: 0,
			max: 15,
			step: 1,
		},
		auraIntensity: {
			type: 'range',
			min: 0,
			max: 1000,
			step: 1,
		},
		subAuraIntensity: {
			type: 'range',
			min: 0,
			max: 50,
			step: 0.5,
		},
		threshold: {
			type: 'range',
			min: 0,
			max: 5,
			step: 0.1,
		},
	},
	xray: {
		_thumb: 'modules/tokenmagic/gui/macros/images/25 - T01 - Sunburst Rays (xray).webp',
		dimX: {
			type: 'range',
			min: -3,
			max: 3,
			step: 0.01,
		},
		dimY: {
			type: 'range',
			min: -3,
			max: 3,
			step: 0.01,
		},
		divisor: {
			type: 'range',
			min: 0,
			max: 200,
			step: 1,
		},
		intensity: {
			type: 'range',
			min: 0,
			max: 200,
			step: 1,
		},
	},
	field: {
		_thumb: 'modules/tokenmagic/gui/macros/images/24 - T01 - Hexa Force Field.webp',
		shieldType: {
			type: 'range',
			min: 1,
			max: 13,
			step: 1,
		},
		lightAlpha: ALPHA_CONTROL,
		lightSize: {
			type: 'range',
			min: 0,
			max: 10,
			step: 0.1,
		},
		radius: {
			type: 'range',
			min: 0,
			max: 2,
			step: 0.01,
		},
		hideRadius: {
			type: 'range',
			min: 0,
			max: 2,
			step: 0.01,
		},
		scale: {
			type: 'range',
			min: 0.1,
			max: 2,
			step: 0.01,
		},
		intensity: {
			type: 'range',
			min: 0,
			max: 2,
			step: 0.01,
		},
		discardThreshold: ALPHA_CONTROL,
		// changing value does not meaningfully influence appearance
		posLightX: {
			type: 'ignore',
		},
		posLightY: {
			type: 'ignore',
		},
	},
	images: {
		_thumb: 'modules/tokenmagic/gui/macros/images/23 - T01 - Mirror Images.webp',
		nbImage: {
			type: 'range',
			min: 1,
			max: 10,
			step: 1,
		},
		alphaImg: ALPHA_CONTROL,
		alphaChr: ALPHA_CONTROL,
		ampX: ALPHA_CONTROL,
		ampY: ALPHA_CONTROL,
	},
	smoke: {
		_thumb: 'modules/tokenmagic/gui/macros/images/22 - Smoke.webp',
		dimX: {
			type: 'range',
			min: -3,
			max: 3,
			step: 0.01,
		},
		dimY: {
			type: 'range',
			min: -3,
			max: 3,
			step: 0.01,
		},
	},
	flood: {
		_thumb: 'modules/tokenmagic/gui/macros/images/21 - Flood.webp',
		scale: {
			type: 'range',
			min: 0,
			max: 1000,
			step: 1,
		},
		glint: ALPHA_CONTROL,
		tintIntensity: {
			type: 'range',
			min: 0,
			max: 10,
			step: 0.01,
		},
		billowy: {
			type: 'range',
			min: 0,
			max: 4,
			step: 0.1,
		},
		shiftX: {
			type: 'range',
			min: -1,
			max: 1,
			step: 0.01,
		},
		shiftY: {
			type: 'range',
			min: -1,
			max: 1,
			step: 0.01,
		},
	},
	fire: {
		_thumb: 'modules/tokenmagic/gui/macros/images/19 - T01 - Fire.webp',
		intensity: {
			type: 'range',
			min: 0,
			max: 2,
			step: 0.01,
		},
		amplitude: {
			type: 'range',
			min: 0,
			max: 100,
			step: 0.1,
		},
		fireBlend: {
			type: 'range',
			min: 0,
			max: 13,
			step: 1,
			animatable: false,
			order: 99997,
		},
	},
	shadow: {
		_thumb: 'modules/tokenmagic/gui/macros/images/03 - Drop Shadow.webp',
		distance: {
			type: 'range',
			min: 0,
			max: 500,
			step: 1,
		},
		blur: {
			type: 'range',
			min: 0,
			max: 5,
			step: 0.1,
		},
		quality: {
			type: 'range',
			min: 0,
			max: 8,
			step: 1,
			animatable: false,
		},
	},
	bevel: {
		_thumb: 'modules/tokenmagic/gui/macros/images/01 - Bevel.webp',
		lightColor: COLOR_CONTROL,
		shadowColor: COLOR_CONTROL,
		shadowAlpha: ALPHA_CONTROL,
		lightAlpha: ALPHA_CONTROL,
		thickness: {
			type: 'range',
			min: 0,
			max: 100,
			step: 1,
		},
	},
	outline: {
		_thumb: 'modules/tokenmagic/gui/macros/images/04 - Outline.webp',
		thickness: {
			type: 'range',
			min: 0,
			max: 100,
			step: 1,
		},
		quality: {
			type: 'range',
			min: 0,
			max: 8,
			step: 1,
			animatable: false,
		},
	},
	sprite: {
		_thumb: 'modules/tokenmagic/gui/macros/images/37 - T02 - Pentagram (sprite).webp',
		imagePath: { ...FILE_CONTROL, order: 100 },
		color: { ...COLOR_CONTROL, order: 200, group: 'appearance' },
		colorize: { type: 'boolean', order: 300, group: 'appearance' },
		inverse: { type: 'boolean', order: 400, group: 'appearance' },
		alpha: { ...ALPHA_CONTROL, order: 500, group: 'appearance' },
		alphaDiscard: { type: 'boolean', order: 501, group: 'appearance' },
		rotation: { ...ROTATION_CONTROL, order: 600, group: 'transform' },
		scaleX: {
			type: 'range',
			min: 0.01,
			max: 10,
			step: 0.01,
			order: 700,
			group: 'transform',
		},
		scaleY: {
			type: 'range',
			min: 0.01,
			max: 10,
			step: 0.01,
			order: 800,
			group: 'transform',
		},
		translationX: {
			type: 'range',
			min: -1,
			max: 1,
			step: 0.01,
			order: 900,
			group: 'transform',
		},
		translationY: {
			type: 'range',
			min: -1,
			max: 1,
			step: 0.01,
			order: 1000,
			group: 'transform',
		},
		repeat: { type: 'boolean', order: 1100, group: 'layout' },
		top: { type: 'boolean', order: 1200, group: 'layout' },
		maintainAspectRatio: { type: 'boolean', order: 1300, group: 'constraints' },
		maintainScale: { type: 'boolean', order: 1400, group: 'constraints' },
		play: { type: 'boolean', order: 1500, group: 'playback' },
		loop: { type: 'boolean', order: 1600, group: 'playback' },
		twRadiusPercent: {
			type: 'ignore',
		},
		twAngle: {
			type: 'ignore',
		},
		bpRadiusPercent: {
			type: 'ignore',
		},
		bpStrength: {
			type: 'ignore',
		},
	},
	transform: {
		_thumb: 'modules/tokenmagic/gui/macros/images/09 - T01 - Twist (transform).webp',
		translationX: {
			type: 'range',
			min: -1,
			max: 1,
			step: 0.01,
		},
		translationY: {
			type: 'range',
			min: -1,
			max: 1,
			step: 0.01,
		},
		scaleX: {
			type: 'range',
			min: 0.1,
			max: 30,
			step: 0.01,
		},
		scaleY: {
			type: 'range',
			min: 0.1,
			max: 30,
			step: 0.01,
		},
		bpRadiusPercent: {
			type: 'range',
			min: 0,
			max: 100,
			step: 1,
		},
		bpStrength: {
			type: 'range',
			min: 0,
			max: 1.4,
			step: 0.01,
		},
		twRadiusPercent: {
			type: 'range',
			min: 0,
			max: 100,
			step: 1,
		},
		twAngle: {
			type: 'range',
			min: 0,
			max: 90,
			step: 0.1,
		},
		pivotX: {
			type: 'range',
			min: -6,
			max: 6,
			step: 0.01,
		},
		pivotY: {
			type: 'range',
			min: -6,
			max: 6,
			step: 0.01,
		},
	},
	adjustment: {
		_thumb: 'modules/tokenmagic/gui/macros/images/02 - Adjustment.webp',
		brightness: {
			type: 'range',
			min: 0,
			max: 3,
			step: 0.01,
			order: 0,
		},
		contrast: {
			type: 'range',
			min: 0,
			max: 3,
			step: 0.01,
			order: 1,
		},
		saturation: {
			type: 'range',
			min: 0,
			max: 3,
			step: 0.01,
			order: 2,
		},
		gamma: {
			type: 'range',
			min: 0,
			max: 3,
			step: 0.01,
			order: 3,
		},
		red: {
			type: 'range',
			min: 0,
			max: 3,
			step: 0.01,
			order: 4,
		},
		green: {
			type: 'range',
			min: 0,
			max: 3,
			step: 0.01,
			order: 5,
		},
		blue: {
			type: 'range',
			min: 0,
			max: 3,
			step: 0.01,
			order: 6,
		},
	},
	glow: {
		_thumb: 'modules/tokenmagic/gui/macros/images/05 - Glow.webp',
		outerStrength: {
			type: 'range',
			min: 0,
			max: 20,
			step: 0.1,
		},
		innerStrength: {
			type: 'range',
			min: 0,
			max: 20,
			step: 0.1,
		},
		quality: {
			type: 'range',
			min: 0,
			max: 1,
			step: 0.01,
		},
		distance: {
			type: 'ignore',
		},
	},
	xbloom: {
		_thumb: 'modules/tokenmagic/gui/macros/images/06 - Bloom.webp',
		threshold: {
			type: 'range',
			min: 0,
			max: 1,
			step: 0.01,
		},
		bloomScale: {
			type: 'range',
			min: 0,
			max: 3,
			step: 0.01,
		},
		brightness: {
			type: 'range',
			min: 0,
			max: 3,
			step: 0.01,
		},
		blur: {
			type: 'range',
			min: 0,
			max: 32,
			step: 1,
		},
		quality: {
			type: 'range',
			min: 0,
			max: 8,
			step: 1,
		},
		pixelSize: {
			type: 'ignore',
		},
	},
	distortion: {
		_thumb: 'modules/tokenmagic/gui/macros/images/07 - Distortion.webp',
		maskPath: {
			type: 'file',
			fileType: 'imagevideo',
		},
		maskSpriteScaleX: {
			type: 'range',
			min: 0,
			max: 20,
			step: 0.1,
		},
		maskSpriteScaleY: {
			type: 'range',
			min: 0,
			max: 20,
			step: 0.1,
		},
	},
	oldfilm: {
		_thumb: 'modules/tokenmagic/gui/macros/images/08 - Old film.webp',
		sepia: ALPHA_CONTROL,
		noise: ALPHA_CONTROL,
		noiseSize: {
			type: 'range',
			min: 0.2,
			max: 5,
			step: 0.1,
		},
		scratch: ALPHA_CONTROL,
		scratchDensity: ALPHA_CONTROL,
		scratchWidth: {
			type: 'range',
			min: 0.5,
			max: 5,
			step: 0.1,
		},
		vignetting: ALPHA_CONTROL,
		vignettingAlpha: ALPHA_CONTROL,
		vignettingBlur: ALPHA_CONTROL,
	},
	twist: {
		angle: {
			type: 'range',
			min: -10,
			max: 10,
			step: 0.01,
		},
		offset: {
			type: 'ignore',
		},
	},
	bulgepinch: {
		strength: {
			type: 'range',
			min: -1,
			max: 1,
			step: 0.01,
		},
		radius: {
			type: 'ignore',
		},
		anchorX: {
			type: 'range',
			min: 0,
			max: 1,
			step: 0.01,
		},
		anchorY: {
			type: 'range',
			min: 0,
			max: 1,
			step: 0.01,
		},
	},
	blur: {
		_thumb: 'modules/tokenmagic/gui/macros/images/11 - Blur.webp',
		quality: {
			type: 'range',
			min: 0,
			max: 5,
			step: 1,
		},
		blur: {
			type: 'ignore',
		},
		blurX: {
			type: 'range',
			min: 0,
			max: 10,
			step: 1,
		},
		blurY: {
			type: 'range',
			min: 0,
			max: 10,
			step: 1,
		},
	},
	zoomblur: {
		_thumb: 'modules/tokenmagic/gui/macros/images/12 - Zoom Blur.webp',
		innerRadiusPercent: {
			type: 'range',
			min: 0,
			max: 300,
			step: 1,
		},
		strength: ALPHA_CONTROL,
	},
	shockwave: {
		_thumb: 'modules/tokenmagic/gui/macros/images/13 - Shockwave (wave).webp',
		amplitude: {
			type: 'range',
			min: 0,
			max: 50,
			step: 1,
		},
		wavelength: {
			type: 'range',
			min: 0,
			max: 500,
			step: 1,
		},
		radius: {
			type: 'range',
			min: 0,
			max: 500,
			step: 1,
		},
		brightness: {
			type: 'range',
			min: 0,
			max: 10,
			step: 0.1,
		},
		speed: {
			type: 'range',
			min: 0,
			max: 100,
			step: 1,
		},
	},
	zapshadow: {
		_thumb: 'modules/tokenmagic/gui/macros/images/14 - Remove Shadow.webp',
		alphaTolerance: ALPHA_CONTROL,
	},
	ray: {
		_thumb: 'modules/tokenmagic/gui/macros/images/15 - Cosmic Ray.webp',
		divisor: {
			type: 'range',
			min: 0,
			max: 600,
			step: 1,
		},
		dimX: {
			type: 'range',
			min: 1,
			max: 200,
			step: 1,
		},
		dimY: {
			type: 'range',
			min: 1,
			max: 200,
			step: 1,
		},
	},
	fog: {
		_thumb: 'modules/tokenmagic/gui/macros/images/16 - Inner Fog.webp',
		density: ALPHA_CONTROL,
		dimX: {
			type: 'range',
			min: -15,
			max: 15,
			step: 1,
		},
		dimY: {
			type: 'range',
			min: -15,
			max: 15,
			step: 1,
		},
	},
	electric: {
		_thumb: 'modules/tokenmagic/gui/macros/images/18 - Electric.webp',
		intensity: {
			type: 'range',
			min: 0,
			max: 10,
			step: 1,
			animatable: false,
		},
	},
	fumes: {
		_thumb: 'modules/tokenmagic/gui/macros/images/17 - Fumes.webp',
		dimX: ALPHA_CONTROL,
		dimY: ALPHA_CONTROL,
	},
	wave: {
		_thumb: 'modules/tokenmagic/gui/macros/images/20 - Waves.webp',
		strength: {
			type: 'range',
			min: 0,
			max: 1,
			step: 0.01,
		},
		frequency: {
			type: 'range',
			min: 0,
			max: 300,
			step: 1,
		},
		maxIntensity: {
			type: 'range',
			min: 0,
			max: 10,
			step: 0.01,
		},
		minIntensity: {
			type: 'range',
			min: 0,
			max: 10,
			step: 0.01,
		},
	},
};

export const ANIM_PARAM_CONTROLS = {
	active: { type: 'boolean', order: -1 },
	val1: { type: 'number', order: 1 },
	val2: { type: 'number', order: 2 },
	loopDuration: { type: 'range', min: 0, max: 60000, step: 20, order: 20 },
	speed: { type: 'number', order: 30 },
	wantInteger: { type: 'boolean', order: 40 },
	chaosFactor: { type: 'range', min: 0, max: 1, step: 0.01, order: 50 },
	syncShift: { type: 'range', min: 0, max: 1, step: 0.01, order: 60 },
	clockWise: { type: 'boolean', order: 70 },
	loops: { type: 'number', step: 1, min: 0, order: 80 },
};
