2
0
mirror of https://github.com/JannisX11/blockbench.git synced 2025-03-19 17:01:55 +08:00

Add additive texture view mode

Add UI mode setting
This commit is contained in:
JannisX11 2022-12-21 19:18:05 +01:00
parent 2c4067ecb7
commit e67351e0c2
6 changed files with 25 additions and 4 deletions
js
animations
api.js
interface
texturing
webpack
lang

@ -1270,7 +1270,7 @@ Interface.definePanels(() => {
v-bind:id="keyframe.uuid"
v-on:click.stop="keyframe.select($event)"
v-on:dblclick="keyframe.callPlayhead()"
:title="trimFloatNumber(keyframe.time) + ' ⨉ ' + keyframe.display_value"
:title="trimFloatNumber(keyframe.time, 2) + ' ⨉ ' + trimFloatNumber(keyframe.display_value)"
@mousedown="dragKeyframes(keyframe, $event)" @touchstart="dragKeyframes(keyframe, $event)"
@contextmenu.prevent.stop="keyframe.showContextMenu($event)"
>
@ -1281,12 +1281,12 @@ Interface.definePanels(() => {
<template v-if="keyframe.interpolation == 'bezier'">
<div class="keyframe_bezier_handle"
:style="getBezierHandleStyle(keyframe, 'left')"
:title="'${tl('generic.left')}: ' + trimFloatNumber(keyframe.bezier_left_time[graph_editor_axis_number]) + ' ⨉ ' + trimFloatNumber(keyframe.bezier_left_value[graph_editor_axis_number])"
:title="'${tl('generic.left')}: ' + trimFloatNumber(keyframe.bezier_left_time[graph_editor_axis_number], 2) + ' ⨉ ' + trimFloatNumber(keyframe.bezier_left_value[graph_editor_axis_number])"
@mousedown="dragBezierHandle(keyframe, 'left', $event)" @touchstart="dragBezierHandle('left', $event)"
></div>
<div class="keyframe_bezier_handle"
:style="getBezierHandleStyle(keyframe, 'right')"
:title="'${tl('generic.right')}: ' + trimFloatNumber(keyframe.bezier_right_time[graph_editor_axis_number]) + ' ⨉ ' + trimFloatNumber(keyframe.bezier_right_value[graph_editor_axis_number])"
:title="'${tl('generic.right')}: ' + trimFloatNumber(keyframe.bezier_right_time[graph_editor_axis_number], 2) + ' ⨉ ' + trimFloatNumber(keyframe.bezier_right_value[graph_editor_axis_number])"
@mousedown="dragBezierHandle(keyframe, 'right', $event)" @touchstart="dragBezierHandle('right', $event)"
></div>
</template>

@ -423,6 +423,11 @@ const Blockbench = {
if (!LastVersion || LastVersion.replace(/.\d+$/, '') != appVersion.replace(/.\d+$/, '')) {
Blockbench.addFlag('after_update');
}
try {
let ui_mode = JSON.parse(localStorage.getItem('settings')).interface_mode.value;
if (ui_mode == 'desktop') Blockbench.isMobile = false;
if (ui_mode == 'mobile') Blockbench.isMobile = true;
} catch (err) {}
})();
if (isApp) {

@ -175,6 +175,11 @@ const Settings = {
}});
//Interface
new Setting('interface_mode', {category: 'interface', value: 'auto', type: 'select', options: {
'auto': tl('settings.interface_mode.auto'),
'desktop': tl('settings.interface_mode.desktop'),
'mobile': tl('settings.interface_mode.mobile'),
}});
new Setting('interface_scale', {category: 'interface', value: 100, min: 40, max: 200, type: 'number', condition: isApp, onChange() {
var factor = Math.clamp(settings.interface_scale.value, 40, 200) / 100;
currentwindow.webContents.setZoomFactor(factor)

@ -1416,6 +1416,7 @@ class Texture {
function setViewMode(mode) {
let update_layered = (mode == 'layered' || texture.render_mode == 'layered');
let update_emissive = (mode == 'emissive' || texture.render_mode == 'emissive');
let update_blending = (mode == 'additive' || texture.render_mode == 'additive');
let changed_textures = update_layered ? Texture.all : [texture];
Undo.initEdit({textures: changed_textures});
@ -1432,11 +1433,15 @@ class Texture {
if (update_emissive) {
texture.getMaterial().uniforms.EMISSIVE.value = mode == 'emissive';
}
if (update_blending) {
texture.getMaterial().blending = mode == 'additive' ? THREE.AdditiveBlending : THREE.NormalBlending;
}
Undo.finishEdit('change texture view mode');
}
return [
{name: 'menu.texture.render_mode.default', icon: texture.render_mode == 'default' ? 'radio_button_checked' : 'radio_button_unchecked', click() {setViewMode('default')}},
{name: 'menu.texture.render_mode.emissive', icon: texture.render_mode == 'emissive' ? 'radio_button_checked' : 'radio_button_unchecked', click() {setViewMode('emissive')}},
{name: 'menu.texture.render_mode.additive', icon: texture.render_mode == 'additive' ? 'radio_button_checked' : 'radio_button_unchecked', click() {setViewMode('additive')}},
{name: 'menu.texture.render_mode.layered', icon: texture.render_mode == 'layered' ? 'radio_button_checked' : 'radio_button_unchecked', click() {setViewMode('layered')}, condition: () => Format.single_texture},
]
}

File diff suppressed because one or more lines are too long

@ -717,6 +717,11 @@
"settings.interface_scale": "Interface Scale",
"settings.interface_scale.desc": "Scale of the entire Blockbench interface",
"settings.interface_mode": "UI Mode",
"settings.interface_mode.desc": "Interface mode. Restart Blockbench to apply changes",
"settings.interface_mode.auto": "Automatic",
"settings.interface_mode.desktop": "Desktop",
"settings.interface_mode.mobile": "Mobile",
"settings.hide_tab_bar": "Auto-hide Tab Bar",
"settings.hide_tab_bar.desc": "Hide the tab bar when only one tab is open",
"settings.mobile_panel_side": "Mobile Panel Side",
@ -1649,6 +1654,7 @@
"menu.texture.render_mode": "Render Mode",
"menu.texture.render_mode.default": "Default",
"menu.texture.render_mode.emissive": "Emissive",
"menu.texture.render_mode.additive": "Additive",
"menu.texture.render_mode.layered": "Layered",
"menu.texture.merge_onto_texture": "Merge Onto Texture Above",
"menu.texture.edit": "Edit",