diff --git a/src/app/Utils.ts b/src/app/Utils.ts index 272e6478..aec45f3e 100644 --- a/src/app/Utils.ts +++ b/src/app/Utils.ts @@ -21,6 +21,14 @@ export function randomSeed() { export function newSeed(model: DataModel) { const seed = Math.floor(Math.random() * (4294967296)) - 2147483648 + const dimensions = model.get(new Path(['dimensions'])) + model.set(new Path(['seed']), seed, true) + if (typeof dimensions === 'object' && dimensions !== null) { + Object.keys(dimensions).forEach(id => { + model.set(new Path(['dimensions', id, 'generator', 'seed']), seed, true) + model.set(new Path(['dimensions', id, 'generator', 'biome_source', 'seed']), seed, true) + }) + } model.set(new Path(['generator', 'seed']), seed, true) model.set(new Path(['generator', 'biome_source', 'seed']), seed) } diff --git a/src/app/components/SourcePanel.tsx b/src/app/components/SourcePanel.tsx index 1c387a04..fdd61a1d 100644 --- a/src/app/components/SourcePanel.tsx +++ b/src/app/components/SourcePanel.tsx @@ -116,7 +116,7 @@ export function SourcePanel({ lang, name, model, blockStates, doCopy, doDownload )} - + } diff --git a/src/app/schema/renderHtml.tsx b/src/app/schema/renderHtml.tsx index 909021ae..a3d4b916 100644 --- a/src/app/schema/renderHtml.tsx +++ b/src/app/schema/renderHtml.tsx @@ -320,6 +320,7 @@ function BooleanSuffix({ path, node, value, lang }: NodeProps function NumberSuffix({ path, config, integer, value, lang }: NodeProps) { const [text, setText] = useState(value ?? '') + const [editing, setEditing] = useState(false) const commitTimeout = useRef() const commitValue = useRef() const scheduleCommit = (newValue: number) => { @@ -328,6 +329,7 @@ function NumberSuffix({ path, config, integer, value, lang }: NodeProps { path.model.set(path, commitValue.current) commitValue.current = undefined + setEditing(false) }, 500) } const onChange = (evt: Event) => { @@ -336,7 +338,11 @@ function NumberSuffix({ path, config, integer, value, lang }: NodeProps { + setEditing(true) + } const onBlur = () => { + if (commitValue === undefined) setEditing(false) setText(commitValue.current ?? value ?? '') } const onColor = (evt: Event) => { @@ -346,9 +352,9 @@ function NumberSuffix({ path, config, integer, value, lang }: NodeProps - + {config?.color && } - {path.equals(new Path(['generator', 'seed'])) && } + {['dimension.generator.seed', 'dimension.generator.biome_source.seed', 'world_settings.seed'].includes(path.getContext().join('.')) && } }