Skip to content

Commit acaece0

Browse files
committed
fix: Add function to extract color and texture from user defaults in Lensflare
1 parent b8d56ad commit acaece0

1 file changed

Lines changed: 14 additions & 2 deletions

File tree

  • packages/cientos/src/core/abstractions/Lensflare

packages/cientos/src/core/abstractions/Lensflare/index.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
8799
export 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

120132
export interface LensflareElementProps {

0 commit comments

Comments
 (0)