diff --git a/js/model.js b/js/model.js index fc6e9f43..11b1a5d3 100644 --- a/js/model.js +++ b/js/model.js @@ -416,6 +416,9 @@ function updateField(el) { if (value === '') { delete node[field]; } else { + if (type === 'enum') { + node._changed = true; + } node[field] = value; } invalidated(); diff --git a/js/view.js b/js/view.js index 1fd8611f..c8a26217 100644 --- a/js/view.js +++ b/js/view.js @@ -9,7 +9,6 @@ addListener(updateView); changeTheme(localStorage.getItem('theme')) function changeTheme(theme) { - console.log(theme); if (theme === null) { theme = 'dark'; } @@ -530,6 +529,12 @@ function generateField(data, field, parent, filter) { if (data[field.id] === undefined && field.type === 'object') { data[field.id] = {}; } + if (field.type === 'enum' && data._changed) { + for (const f of field.clear || []) { + delete data[f]; + } + delete data._changed; + } try { let result = generateComponent(data[field.id], field, {filter}); if (result) { diff --git a/locales/en.json b/locales/en.json index 68c4e9a9..46bd0906 100644 --- a/locales/en.json +++ b/locales/en.json @@ -36,6 +36,7 @@ "biome_add": "Add Biome", "biome_remove": "Remove Biome", "biome_source.biome": "Biome", + "biome_source.biomes": "Biomes", "biome_source.large_biomes": "Large Biomes", "biome_source.preset": "Biomes Preset", "biome_source.seed": "Biomes Seed", diff --git a/schemas/worldgen.json b/schemas/worldgen.json index ec123c50..c1f6a100 100644 --- a/schemas/worldgen.json +++ b/schemas/worldgen.json @@ -127,6 +127,9 @@ "minecraft:checkerboard", "minecraft:vanilla_layered", "minecraft:the_end" + ], + "clear": [ + "biomes" ] }, { @@ -164,7 +167,16 @@ "values": "biome", "button": "field", "require": [ - "minecraft:multi_noise", + "minecraft:multi_noise" + ] + }, + { + "id": "biomes", + "translate": "biome_source.biomes", + "type": "set", + "values": "biomes", + "button": "field", + "require": [ "minecraft:checkerboard" ] },