Skip to content

New settings: simplifiedRenderAlphaThreshold, simplifiedRenderInWorld…#1214

Open
kiberptah wants to merge 23 commits into
deepnight:masterfrom
kiberptah:master
Open

New settings: simplifiedRenderAlphaThreshold, simplifiedRenderInWorld…#1214
kiberptah wants to merge 23 commits into
deepnight:masterfrom
kiberptah:master

Conversation

@kiberptah

Copy link
Copy Markdown

…View, and more option for nearbyTilesRenderingDist

Added options to change simplifiedRenderAlphaThreshold and disable simplifiedRenderInWorldView, added more option for nearbyTilesRenderingDist

Reasoning: simplifiedRenderAlphaThreshold tweaking allows high-transparency tilesets (e.g. chroma noir: v3x3d.itch.io/chroma-noir) to be rendered in simplified way (default value of 0.6 makes it so 99% of the tiles are not included)

simplifiedRenderInWorldView allows to disable simplified rendering at all and always render full resolution. On powerful system with low resolution tilesets this is just more comfortable to work with, there's no almost visual transition when switching to world view

more options for nearbyTilesRenderingDist so nearby rooms can be rendered in more details.

…View, and more option for nearbyTilesRenderingDist

Added options to change simplifiedRenderAlphaThreshold and disable simplifiedRenderInWorldView, added more option for nearbyTilesRenderingDist
@kiberptah

Copy link
Copy Markdown
Author

added change entity selector (questionable but i think default border is too thick and ugly and I wanted to make it thinner but couldn't since it is 1px post effect so i just removed border and left the transparent overlay that is very clean, maybe settings could have color seelctor for it but idk how)

added option so camera won't reset to worls view far away when layer is changed (it is a problem when you try to align objects on different layers, for example doors that would be used to move from layer to layer)

kiberptah and others added 19 commits July 8, 2026 01:49
- EditAppSettings: replace custom onValueChange handlers with the
  standard onChange pattern. The old "if (v)" guards prevented saving
  when a checkbox was unchecked. Also clamp alpha threshold to 0-1.
- editAppSettings.html: revert unrelated line-wrapping churn, give new
  settings human-readable labels, fix inverted description of the
  simplified world view render option.
- WorldRender: restore missing autoTilesCache error check, restore
  upstream code style in the simplified render path, fix layer
  ordering in the full-resolution render path (TileGroup was appended
  on top instead of inserted below previous layers), drop leftover
  placeholder comments.
- Editor/GenericLevelElementGroup: minor style and comment cleanup.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Each custom command now has an OS dropdown in the project settings.
A command restricted to a specific OS is skipped (manual menu, after
load, before/after save) when the project is opened on another OS.

The `os` field is stored in the project JSON as a fork extension of
ldtk.Json.CustomCommand; upstream LDtk ignores the unknown field, and
projects without it default to "All".

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…he form

Custom skinned selects (.advancedSelect) only showed the .option div carrying the 'selected' class, and picking a new value via SelectPicker never moved that class. Most settings masked this by emitting ProjectSettingsChanged (full form rebuild), but eg. custom command trigger/OS selects don't, leaving a stale label until the panel was reopened. Now the displayed option is refreshed from the underlying select value right after the change event.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Moving placed entities previously always stepped in grid increments, preserving any off-grid offset even with the grid disabled. Now entity-only selections move freely when the grid is off (G), and truly snap to the pivot-aware grid when it's on, matching the not-yet-placed entity preview. Grid cells and points still always move in grid increments.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The resize handles received mouse events before the selection tool
and hijacked the cursor when hovered mid-drag, stalling entity
movement. They are now inert and invisible while the selection tool
is running, and reappear on release.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Ctrl-click toggles a level in/out of a multi-selection; plain click
  collapses to single level; clicking empty space clears it.
- Dragging over empty world space draws a marquee rectangle selecting
  every intersecting level (Ctrl adds to the existing selection).
- Dragging any selected level moves the whole group. Only the anchor
  level snaps to grid/other levels, followers inherit its delta.
- Ctrl+Alt-drag duplicates the entire selected group, the copies
  become the dragged selection.
- Selected levels get the same yellow outline as the active level.
- Selection is cleared/pruned on level removal, world switch and
  project reload.

Group move/duplicate only applies to Free and GridVania layouts;
Linear layouts keep their single-level reorder behavior. Pre-drag
neighbours are captured per group member so render caches of formerly
adjacent levels invalidate correctly on commit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The active level always gets a yellow outline in world view, identical
to the selection outline. Ctrl-clicking a selected level out of the
group left it as the active level, so its border appeared stuck. Now
the active role is handed to another remaining selected level.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ESC closes the WorldPanel modal, which exits world mode as a side
effect. The new escExitsWorldMode app setting (enabled by default,
preserving stock behavior) makes ESC a no-op when the world panel is
the top-most modal. Dialogs stacked above it still close normally.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ction

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Deleting a level emits LevelRemoved while curLevelId still points to
the removed level, so editor.curLevel is transiently null. The
selection-pruning handler refreshed the highlight in that window and
crashed on the null dereference, aborting the remaining LevelRemoved
listeners mid-emit and corrupting editor state (breaking saving).
updateCurrentHighlight() is now null-safe for curLevel.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Clicking another level in level view was deferred/skipped when that
level was still part of the world multi-selection, making it
impossible to switch levels by clicking. The deferred-collapse logic
now only applies in world mode. Additionally, entering level view (by
any means, incl. zooming into a level) collapses the world selection
to the opened level, so stale selections no longer linger.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…rld mode

Creating a new level in level view (or any other selectLevel call that
doesn't go through world mode switching) left the previous level in
the world selection, showing both levels as selected when returning to
world view.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant