mirror of
https://github.com/JannisX11/blockbench.git
synced 2025-02-17 16:20:13 +08:00
Option in template generator to disable UV mirroring (#2218)
This commit is contained in:
parent
c6f6179cef
commit
f6070dd7bd
@ -688,6 +688,15 @@ window.ToolConfig = class ToolConfig extends Dialog {
|
||||
save() {
|
||||
localStorage.setItem(`tool_config.${this.id}`, JSON.stringify(this.options));
|
||||
}
|
||||
changeOptions(options) {
|
||||
for (let key in options) {
|
||||
this.options[key] = options[key];
|
||||
}
|
||||
if (this.form) {
|
||||
this.form.setValues(options);
|
||||
}
|
||||
this.save();
|
||||
}
|
||||
close(button, event) {
|
||||
this.save();
|
||||
this.hide();
|
||||
|
@ -487,7 +487,6 @@ class InputForm extends EventSystem {
|
||||
for (let form_id in this.form_config) {
|
||||
let data = this.form_data[form_id];
|
||||
let input_config = this.form_config[form_id];
|
||||
console.log(form_id, values[form_id])
|
||||
if (values[form_id] != undefined && typeof input_config == 'object' && data.bar) {
|
||||
let value = values[form_id];
|
||||
switch (input_config.type) {
|
||||
@ -532,7 +531,6 @@ class InputForm extends EventSystem {
|
||||
data.colorpicker.set(value);
|
||||
break;
|
||||
case 'checkbox':
|
||||
console.log(data.bar.find('input'), value)
|
||||
data.bar.find('input').prop('checked', value);
|
||||
break;
|
||||
case 'file':
|
||||
|
@ -36,23 +36,24 @@ const TextureGenerator = {
|
||||
title: tl('action.create_texture'),
|
||||
width: 610,
|
||||
form: {
|
||||
name: {label: 'generic.name', value: 'texture'},
|
||||
folder: {label: 'dialog.create_texture.folder', condition: {features: ['texture_folder']}},
|
||||
type: {label: 'dialog.create_texture.type', type: 'inline_select', options: type_options, condition: Object.keys(type_options).length > 1},
|
||||
section2: "_",
|
||||
name: {label: 'generic.name', value: 'texture'},
|
||||
folder: {label: 'dialog.create_texture.folder', condition: {features: ['texture_folder']}},
|
||||
type: {label: 'dialog.create_texture.type', type: 'inline_select', options: type_options, condition: Object.keys(type_options).length > 1},
|
||||
section2: "_",
|
||||
|
||||
resolution: {label: 'dialog.create_texture.pixel_density', description: 'dialog.create_texture.pixel_density.desc', type: 'select', value: resolution_presets[resolution] ? resolution : undefined, condition: (form) => (form.type == 'template'), options: resolution_presets},
|
||||
resolution: {label: 'dialog.create_texture.pixel_density', description: 'dialog.create_texture.pixel_density.desc', type: 'select', value: resolution_presets[resolution] ? resolution : undefined, condition: (form) => (form.type == 'template'), options: resolution_presets},
|
||||
resolution_vec: {label: 'dialog.create_texture.resolution', type: 'vector', condition: (form) => (form.type == 'blank'), dimensions: 2, value: [Project.texture_width, Project.texture_height], min: 16, max: 2048},
|
||||
color: {label: 'data.color', type: 'color', colorpicker: TextureGenerator.background_color, toggle_enabled: true, toggle_default: false},
|
||||
color: {label: 'data.color', type: 'color', colorpicker: TextureGenerator.background_color, toggle_enabled: true, toggle_default: false},
|
||||
|
||||
rearrange_uv:{label: 'dialog.create_texture.rearrange_uv', description: 'dialog.create_texture.rearrange_uv.desc', type: 'checkbox', value: true, condition: (form) => (form.type == 'template')},
|
||||
box_uv: {label: 'dialog.project.uv_mode.box_uv', type: 'checkbox', value: false, condition: (form) => (form.type == 'template' && !Project.box_uv && Cube.all.length)},
|
||||
power: {label: 'dialog.create_texture.power', description: 'dialog.create_texture.power.desc', type: 'checkbox', value: true, condition: (form) => (form.type !== 'blank' && (form.rearrange_uv || form.type == 'color_map'))},
|
||||
double_use: {label: 'dialog.create_texture.double_use', description: 'dialog.create_texture.double_use.desc', type: 'checkbox', value: true, condition: ((form) => (form.type == 'template' && form.rearrange_uv))},
|
||||
combine_polys: {label: 'dialog.create_texture.combine_polys', description: 'dialog.create_texture.combine_polys.desc', type: 'checkbox', value: true, condition: (form) => (form.type == 'template' && form.rearrange_uv && Mesh.selected.length)},
|
||||
max_edge_angle: {label: 'dialog.create_texture.max_edge_angle', description: 'dialog.create_texture.max_edge_angle.desc', type: 'number', value: 36, condition: (form) => (form.type == 'template' && form.rearrange_uv && Mesh.selected.length)},
|
||||
rearrange_uv: {label: 'dialog.create_texture.rearrange_uv', description: 'dialog.create_texture.rearrange_uv.desc', type: 'checkbox', value: true, condition: (form) => (form.type == 'template')},
|
||||
box_uv: {label: 'dialog.project.uv_mode.box_uv', type: 'checkbox', value: false, condition: (form) => (form.type == 'template' && !Project.box_uv && Cube.all.length)},
|
||||
power: {label: 'dialog.create_texture.power', description: 'dialog.create_texture.power.desc', type: 'checkbox', value: true, condition: (form) => (form.type !== 'blank' && (form.rearrange_uv || form.type == 'color_map'))},
|
||||
double_use: {label: 'dialog.create_texture.double_use', description: 'dialog.create_texture.double_use.desc', type: 'checkbox', value: true, condition: ((form) => (form.type == 'template' && form.rearrange_uv))},
|
||||
combine_polys: {label: 'dialog.create_texture.combine_polys', description: 'dialog.create_texture.combine_polys.desc', type: 'checkbox', value: true, condition: (form) => (form.type == 'template' && form.rearrange_uv && Mesh.selected.length)},
|
||||
max_edge_angle: {label: 'dialog.create_texture.max_edge_angle', description: 'dialog.create_texture.max_edge_angle.desc', type: 'number', value: 36, condition: (form) => (form.type == 'template' && form.rearrange_uv && Mesh.selected.length)},
|
||||
max_island_angle: {label: 'dialog.create_texture.max_island_angle', description: 'dialog.create_texture.max_island_angle.desc', type: 'number', value: 45, condition: (form) => (form.type == 'template' && form.rearrange_uv && Mesh.selected.length)},
|
||||
padding: {label: 'dialog.create_texture.padding', description: 'dialog.create_texture.padding.desc', type: 'checkbox', value: Mesh.selected.length > 0, condition: (form) => (form.type == 'template' && form.rearrange_uv)},
|
||||
padding: {label: 'dialog.create_texture.padding', description: 'dialog.create_texture.padding.desc', type: 'checkbox', value: Mesh.selected.length > 0, condition: (form) => (form.type == 'template' && form.rearrange_uv)},
|
||||
disable_mirror_uv:{label: 'dialog.create_texture.disable_mirror_uv', description: 'dialog.create_texture.disable_mirror_uv.desc', type: 'checkbox', value: true, condition: (form) => BarItems.mirror_modeling.value && BarItems.mirror_modeling.tool_config.options.mirror_uv},
|
||||
|
||||
},
|
||||
onConfirm: function(results) {
|
||||
@ -60,6 +61,9 @@ const TextureGenerator = {
|
||||
if (results.type == 'blank') {
|
||||
results.resolution = results.resolution_vec;
|
||||
}
|
||||
if (results.disable_mirror_uv) {
|
||||
BarItems.mirror_modeling.tool_config.changeOptions({mirror_uv: false});
|
||||
}
|
||||
dialog.hide()
|
||||
if (Format.edit_mode && Outliner.selected.length == 0) {
|
||||
SharedActions.runSpecific('select_all', 'outliner');
|
||||
|
@ -678,6 +678,8 @@
|
||||
"dialog.create_texture.resolution.desc": "The height and width of the texture",
|
||||
"dialog.create_texture.pixel_density": "Pixel Density",
|
||||
"dialog.create_texture.pixel_density.desc": "The pixel density of the texture, in pixels per meter. The size of the texture map may differ depending on the amount and size of elements.",
|
||||
"dialog.create_texture.disable_mirror_uv": "Disable UV Mirroring",
|
||||
"dialog.create_texture.disable_mirror_uv.desc": "Disable the UV Mirror option in Mirror Modeling to preserve separate UVs for each side of the model",
|
||||
|
||||
"dialog.mirror_painting_texture_center.middle": "Middle",
|
||||
"dialog.mirror_painting_texture_center.custom": "Custom",
|
||||
|
Loading…
Reference in New Issue
Block a user