Refactor generator to prevent duplicate reloading

This commit is contained in:
Misode
2022-05-08 16:24:39 +02:00
parent 2772d967e0
commit a432479672
13 changed files with 78 additions and 75 deletions

View File

@@ -58,14 +58,14 @@ export const BiomeSourcePreview = ({ model, data, shown, version }: PreviewProps
onLeave() {
setFocused(undefined)
},
}, [state, scale, configuredSeed, layers])
}, [version, state, scale, configuredSeed, layers])
useEffect(() => {
if (shown) {
res.current = type === 'multi_noise' ? 4 : 1
redraw()
}
}, [state, scale, configuredSeed, layers, shown])
}, [version, state, scale, configuredSeed, layers, shown])
const changeScale = (newScale: number) => {
offset.current[0] = offset.current[0] * scale / newScale

View File

@@ -11,6 +11,8 @@ export const DecoratorPreview = ({ data, version, shown }: PreviewProps) => {
const [scale, setScale] = useState(4)
const [seed, setSeed] = useState(randomSeed())
const state = JSON.stringify(data)
const { canvas, redraw } = useCanvas({
size() {
return [scale * 16, scale * 16]
@@ -18,14 +20,13 @@ export const DecoratorPreview = ({ data, version, shown }: PreviewProps) => {
async draw(img) {
decorator(data, img, { seed, version, size: [scale * 16, 128, scale * 16] })
},
})
}, [version, state, seed])
const state = JSON.stringify(data)
useEffect(() => {
if (shown) {
redraw()
}
}, [state, scale, seed, shown])
}, [version, state, scale, seed, shown])
return <>
<div class="controls preview-controls">

View File

@@ -36,7 +36,7 @@ export const DensityFunctionPreview = ({ data, shown, version }: PreviewProps) =
onLeave() {
setFocused(undefined)
},
}, [state, seed])
}, [version, state, seed])
useEffect(() => {
if (scrollInterval.current) {
@@ -51,7 +51,7 @@ export const DensityFunctionPreview = ({ data, shown, version }: PreviewProps) =
}, 100) as any
}
}
}, [state, seed, shown, autoScroll])
}, [version, state, seed, shown, autoScroll])
return <>
<div class="controls preview-controls">

View File

@@ -26,13 +26,13 @@ export const NoisePreview = ({ data, shown, version }: PreviewProps) => {
offset.current[1] = offset.current[1] + dy * 256
redraw()
},
}, [state, scale, seed])
}, [version, state, scale, seed])
useEffect(() => {
if (shown) {
redraw()
}
}, [state, scale, seed, shown])
}, [version, state, scale, seed, shown])
const changeScale = (newScale: number) => {
offset.current[0] = offset.current[0] * scale / newScale

View File

@@ -62,7 +62,7 @@ export const NoiseSettingsPreview = ({ data, shown, version }: PreviewProps) =>
}
})()
}
}, [state, seed, shown, biome, biomeScale, biomeDepth, autoScroll])
}, [version, state, seed, shown, biome, biomeScale, biomeDepth, autoScroll])
const allBiomes = useMemo(() => CachedCollections?.get('worldgen/biome') ?? [], [version])