addNativeListener('input', (e) => {
e.preventDefault();
if (e && e.target) {
let val = e.target.value;
switch (val) {
case 'square':
reactionAsset.set({
initialSettingPreference: 'entity',
initialSettingEntity: 'initial-square',
});
break;
case 'circle':
reactionAsset.set({
initialSettingPreference: 'entity',
initialSettingEntity: 'initial-circle',
});
break;
case 'spiral':
reactionAsset.set({
initialSettingPreference: 'entity',
initialSettingEntity: 'initial-spiral',
});
break;
default:
reactionAsset.set({
initialSettingPreference: 'random',
});
}
}
}, '#initialSettingPreference');
addNativeListener(['input', 'change'], (e) => {
e.preventDefault();
if (e && e.target) {
let val = e.target.value;
reactionAsset.set({
colors: colorStops[val],
})
}
}, '#colorStops');
addNativeListener(['input', 'change'], (e) => {
e.preventDefault();
let val = e.target.value;
if (['user-steps', 'user-repeat'].includes(val)) {
reactionAsset.set({
easing: bespokeEasings[val],
});
}
else {
reactionAsset.set({
easing: val,
});
}
}, '#easing');
observeAndUpdate({
event: ['input', 'change'],
origin: '.controlItem',
target: myPattern,
useNativeListener: true,
preventDefault: true,
updates: {
matrixA: ['matrixA', 'float'],
matrixB: ['matrixB', 'float'],
matrixC: ['matrixC', 'float'],
matrixD: ['matrixD', 'float'],
matrixE: ['matrixE', 'round'],
matrixF: ['matrixF', 'round'],
},
});
observeAndUpdate({
event: ['input', 'change'],
origin: '.controlItem',
target: reactionAsset,
useNativeListener: true,
preventDefault: true,
updates: {
initialRandomSeedLevel: ['initialRandomSeedLevel', 'float'],
diffusionRateA: ['diffusionRateA', 'float'],
diffusionRateB: ['diffusionRateB', 'float'],
feedRate: ['feedRate', 'float'],
killRate: ['killRate', 'float'],
drawEvery: ['drawEvery', 'round'],
maxGenerations: ['maxGenerations', 'round'],
canvasWidth: ['width', 'round'],
canvasHeight: ['height', 'round'],
randomEngineSeed: ['randomEngineSeed', 'raw'],
paletteStart: ['paletteStart', 'round'],
paletteEnd: ['paletteEnd', 'round'],
precision: ['precision', 'round'],
cyclePalette: ['cyclePalette', 'boolean'],
colorSpace: ['colorSpace', 'raw'],
returnColorAs: ['returnColorAs', 'raw'],
},
});