@@ -84,6 +84,18 @@ const getSeededRandomProps = (
8484 * @returns LensflareElementProps[] - An array of complete props
8585 */
8686
87+ /**
88+ * Extract only color and texture from user defaults.
89+ * When using seed-based generation, size and distance come from the seed presets
90+ * and should not be overridden (use the `scale` prop for size adjustment).
91+ */
92+ function pickSeededOverrides ( userDefaultElement : Partial < LensflareElementProps > ) : Partial < LensflareElementProps > {
93+ const result : Partial < LensflareElementProps > = { }
94+ if ( userDefaultElement . color !== undefined ) { result . color = userDefaultElement . color }
95+ if ( userDefaultElement . texture !== undefined ) { result . texture = userDefaultElement . texture }
96+ return result
97+ }
98+
8799export const partialLensflarePropsArrayToLensflarePropsArray = (
88100 elements : Partial < LensflareElementProps > [ ] | undefined ,
89101 userDefaultElement : Partial < LensflareElementProps > ,
@@ -97,7 +109,7 @@ export const partialLensflarePropsArrayToLensflarePropsArray = (
97109 const elementsLength = elements . length
98110 if ( seededLength >= elementsLength ) {
99111 return seeded . map ( ( _seededProps , i ) =>
100- Object . assign ( _seededProps , userDefaultElement , i < elementsLength ? elements [ i ] : { } ) ,
112+ Object . assign ( _seededProps , pickSeededOverrides ( userDefaultElement ) , i < elementsLength ? elements [ i ] : { } ) ,
101113 )
102114 }
103115 else {
@@ -114,7 +126,7 @@ export const partialLensflarePropsArrayToLensflarePropsArray = (
114126
115127 const _seedProps = ( seedProps === undefined || seedProps . length === 0 ) ? defaultSeedProps : seedProps
116128 const seededProps = getSeededRandomProps ( seed ?? 0 , _seedProps )
117- return seededProps . map ( props => Object . assign ( { } , props , userDefaultElement ) )
129+ return seededProps . map ( props => Object . assign ( { } , props , pickSeededOverrides ( userDefaultElement ) ) )
118130}
119131
120132export interface LensflareElementProps {
0 commit comments