diff --git a/index.html b/index.html index 6dae1cd..53a8428 100644 --- a/index.html +++ b/index.html @@ -362,6 +362,9 @@ 🛒 Visit CNCKitchen.STORE + + 💙 Donate on PayPal + Don't show this again diff --git a/js/i18n.js b/js/i18n.js index 99909cf..b7d19de 100644 --- a/js/i18n.js +++ b/js/i18n.js @@ -141,6 +141,7 @@ export const TRANSLATIONS = { 'sponsor.title': 'Thanks for using CNC Kitchen STL Texturizer!', 'sponsor.body': 'This tool is provided completely free by CNC Kitchen.While your STL is being processed, why not check out the store that helps us keep making cool stuff for you?', 'sponsor.visitStore': '\uD83D\uDED2 Visit CNCKitchen.STORE', + 'sponsor.donate': '\uD83D\uDC99 Donate on PayPal', 'sponsor.dontShow': "Don\u2019t show this again", 'sponsor.closeAndContinue':'Close & Continue', @@ -292,6 +293,7 @@ export const TRANSLATIONS = { 'sponsor.title': 'Danke f\u00fcr die Nutzung des CNC Kitchen STL Texturizers!', 'sponsor.body': 'Dieses Tool wird von CNC Kitchen komplett kostenlos bereitgestellt.W\u00e4hrend dein STL verarbeitet wird, schau doch mal im Shop vorbei, der uns hilft, coole Sachen f\u00fcr dich zu machen!', 'sponsor.visitStore': '\uD83D\uDED2 CNCKitchen.STORE besuchen', + 'sponsor.donate': '\uD83D\uDC99 Via PayPal spenden', 'sponsor.dontShow': 'Nicht mehr anzeigen', 'sponsor.closeAndContinue':'Schlie\u00dfen & Weiter', diff --git a/js/main.js b/js/main.js index 8029075..790e1f6 100644 --- a/js/main.js +++ b/js/main.js @@ -1408,6 +1408,11 @@ function addSmoothNormals(geometry) { async function toggleDisplacementPreview(enable) { settings.useDisplacement = enable; + // Exit surface masking mode when the 3D preview is activated + if (enable && exclusionTool) { + setExclusionTool(null); + } + if (!enable) { // Revert to original geometry with bump-only shading. if (currentGeometry && previewMaterial) { diff --git a/js/presetTextures.js b/js/presetTextures.js index c4bbd25..5cc1722 100644 --- a/js/presetTextures.js +++ b/js/presetTextures.js @@ -29,18 +29,24 @@ function fitDimensions(imgW, imgH) { // ── Image-based presets ─────────────────────────────────────────────────────── const IMAGE_PRESETS = [ - { name: 'Basket', url: 'textures/basket.jpg' }, - { name: 'Brick', url: 'textures/brick.jpg' }, - { name: 'Bubble', url: 'textures/bubble.jpg' }, - { name: 'Crystal', url: 'textures/crystal.jpg' }, - { name: 'Hexagon', url: 'textures/hexagon.jpg' }, - { name: 'Knitting', url: 'textures/knitting.jpg' }, - { name: 'Knurling', url: 'textures/knurling.jpg' }, - { name: 'Leather', url: 'textures/leather.jpg' }, - { name: 'Leather 2', url: 'textures/leather2.jpg' }, - { name: 'Weave', url: 'textures/weave.jpg' }, - { name: 'Wood', url: 'textures/wood.jpg' }, - { name: 'Noise', url: 'textures/noise.jpg' }, + { name: 'Basket', url: 'textures/basket.jpg' }, + { name: 'Brick', url: 'textures/brick.jpg' }, + { name: 'Bubble', url: 'textures/bubble.jpg' }, + { name: 'Crystal', url: 'textures/crystal.jpg' }, + { name: 'Grip Surface', url: 'textures/gripSurface.jpg' }, + { name: 'Hexagon', url: 'textures/hexagon.jpg' }, + { name: 'Hexagons', url: 'textures/hexagons.jpg' }, + { name: 'Knitting', url: 'textures/knitting.jpg' }, + { name: 'Knurling', url: 'textures/knurling.jpg' }, + { name: 'Leather', url: 'textures/leather.jpg' }, + { name: 'Leather 2', url: 'textures/leather2.jpg' }, + { name: 'Melt', url: 'textures/melt.jpg' }, + { name: 'Noise', url: 'textures/noise.jpg' }, + { name: 'Rhombic', url: 'textures/rhombic.jpg' }, + { name: 'Voronoi', url: 'textures/voronoi.jpg' }, + { name: 'Weave', url: 'textures/weave.jpg' }, + { name: 'Weave 02', url: 'textures/weave_02.jpg' }, + { name: 'Wood', url: 'textures/wood.jpg' }, ]; function loadImagePreset({ name, url }) { diff --git a/style.css b/style.css index b940a01..802cabe 100644 --- a/style.css +++ b/style.css @@ -858,6 +858,11 @@ input[type="number"].val:focus { outline: none; border-color: var(--accent); } .sponsor-link:hover { background: var(--accent-hover); } +.sponsor-link--paypal { + background: #009cde; +} +.sponsor-link--paypal:hover { background: #007bb5; } + .sponsor-no-show { display: flex; align-items: center; diff --git a/textures/carbonFiber.jpg b/textures/carbonFiber.jpg new file mode 100644 index 0000000..8f17579 Binary files /dev/null and b/textures/carbonFiber.jpg differ diff --git a/textures/gripSurface.jpg b/textures/gripSurface.jpg new file mode 100644 index 0000000..371ff8d Binary files /dev/null and b/textures/gripSurface.jpg differ diff --git a/textures/header.jpg b/textures/header.jpg deleted file mode 100644 index 1fd1f99..0000000 Binary files a/textures/header.jpg and /dev/null differ diff --git a/textures/hexagons.jpg b/textures/hexagons.jpg new file mode 100644 index 0000000..003da8c Binary files /dev/null and b/textures/hexagons.jpg differ diff --git a/textures/knurling.jpg b/textures/knurling.jpg index 99a2ad5..3f8b1e9 100644 Binary files a/textures/knurling.jpg and b/textures/knurling.jpg differ diff --git a/textures/voronoi.jpg b/textures/voronoi.jpg new file mode 100644 index 0000000..7dcacf0 Binary files /dev/null and b/textures/voronoi.jpg differ diff --git a/textures/weave_02.jpg b/textures/weave_02.jpg new file mode 100644 index 0000000..1bba9dd Binary files /dev/null and b/textures/weave_02.jpg differ