Content Browser branch refactor#1147
Conversation
There was a problem hiding this comment.
Pull request overview
Refactors parts of TombEditor’s WPF UI (Content Browser, ToolBox, Object Brush Toolbox) toward an MVVM + localization-driven approach, reducing code-behind event wiring and moving UI text into localization resources.
Changes:
- Added EN localization entries for Content Browser and toolbox-related views.
- Reworked ToolBoxView and ObjectBrushToolboxView to bind to new MVVM view models and use XAML-based icons/resources.
- Updated Content Browser view/controller plumbing (commands, drag-drop routing, visual-tree helpers, localized item count text).
Reviewed changes
Copilot reviewed 12 out of 14 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| TombLib/TombLib.WPF/Resources/Localization/EN/TombEditor.json | Adds localized strings for Content Browser + toolboxes. |
| TombEditor/Views/ToolBoxView.xaml.cs | Moves tool state handling to ToolBoxViewModel; keeps layout measurement + WinForms context menu hosting. |
| TombEditor/Views/ToolBoxView.xaml | Converts toolbox UI to command/binding-driven XAML with localized tooltips and PNG resources. |
| TombEditor/Views/ObjectBrushToolboxView.xaml.cs | Switches to MVVM DataContext + cleanup hook. |
| TombEditor/Views/ObjectBrushToolboxView.xaml | Converts object brush controls to bindings; localizes labels. |
| TombEditor/Views/ContentBrowserView.xaml.cs | Uses DarkUI visual ancestor helper; routes file drop to VM instead of exposing a view event. |
| TombEditor/Views/ContentBrowserView.xaml | Adds watermark service + localized placeholder/labels; binds item count via localized VM property; command-based interactions. |
| TombEditor/ViewModels/ToolBoxViewModel.cs | New VM handling tool checked state, mode visibility, grid paint tooltip/icon, and commands. |
| TombEditor/ViewModels/ObjectBrushToolboxViewModel.cs | New VM for object-brush settings + enabled-state logic derived from editor/tool state. |
| TombEditor/ViewModels/ContentBrowserViewModel.cs | Adds localization service usage and localized formatting; minor refactor/cleanup of models and filtering. |
| TombEditor/ToolWindows/ContentBrowser.cs | Routes dropped files via VM event; retains thumbnail rendering, selection sync, and editor integration. |
| TombEditor/TombEditor.csproj | Includes PNGs as WPF resources for XAML-pack URI icon usage. |
| TombEditor/Controls/ToolBox.Designer.cs | Removes explicit Cleanup call in Dispose. |
| TombEditor/Controls/ObjectBrush/ObjectBrushToolbox.Designer.cs | Removes explicit Cleanup call in Dispose. |
Files not reviewed (2)
- TombEditor/Controls/ObjectBrush/ObjectBrushToolbox.Designer.cs: Language not supported
- TombEditor/Controls/ToolBox.Designer.cs: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
e7d6db5 to
077e425
Compare
|
@copilot Could you please verify that this refactor doesn't break any existing functionality of the target branch? |
|
@Nickelony I've opened a new pull request, #1148, to work on those changes. Once the pull request is ready, I'll request review from you. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 12 out of 14 changed files in this pull request and generated 2 comments.
Files not reviewed (2)
- TombEditor/Controls/ObjectBrush/ObjectBrushToolbox.Designer.cs: Language not supported
- TombEditor/Controls/ToolBox.Designer.cs: Language not supported
Comments suppressed due to low confidence (2)
TombEditor/Views/ContentBrowserView.xaml.cs:85
FindVisualAncestor<T>()doesn’t include the starting element itself. Ife.OriginalSourcehappens to be aListBoxItem,containerwill be null and the double-click animation may not play. Consider handling the self case (e.g.,source as ListBoxItem ?? source.FindVisualAncestor<ListBoxItem>()).
if (e.OriginalSource is DependencyObject source)
{
var container = source.FindVisualAncestor<ListBoxItem>();
if (container is not null)
PlayAddItemAnimation(container);
}
TombEditor/Views/ContentBrowserView.xaml.cs:196
hitContainerlookup has the same self-skip behavior: whenOriginalSourceis theListBoxItem,FindVisualAncestor<ListBoxItem>()returns its parent and the click/drag logic can misclassify the target as empty space. Consider falling back to(source as ListBoxItem)before walking ancestors.
var hitContainer = (e.OriginalSource as DependencyObject)?.FindVisualAncestor<ListBoxItem>();
if (hitContainer?.DataContext is AssetItemViewModel hitItem &&
AssetListBox.SelectedItems.Contains(hitItem) &&
AssetListBox.SelectedItems.Count > 1 &&
!Keyboard.Modifiers.HasFlag(ModifierKeys.Control) &&
!Keyboard.Modifiers.HasFlag(ModifierKeys.Shift))
{
// Prevent the ListBox from deselecting the multi-selection on mouse-down.
// If the user just clicks (no drag), we deselect in PreviewMouseLeftButtonUp.
_clickedOnSelected = true;
_clickedItem = hitItem;
e.Handled = true;
}
else if (hitContainer is null && !Keyboard.Modifiers.HasFlag(ModifierKeys.Alt))
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 13 out of 15 changed files in this pull request and generated 3 comments.
Files not reviewed (2)
- TombEditor/Controls/ObjectBrush/ObjectBrushToolbox.Designer.cs: Language not supported
- TombEditor/Controls/ToolBox.Designer.cs: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 13 out of 15 changed files in this pull request and generated 2 comments.
Files not reviewed (2)
- TombEditor/Controls/ObjectBrush/ObjectBrushToolbox.Designer.cs: Language not supported
- TombEditor/Controls/ToolBox.Designer.cs: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
commit 0bf2418 Merge: c78081f 518ba87 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Wed Mar 25 20:09:00 2026 +0000 Merge pull request #1166 from TombEngine/Nickelony/FxCompile-Improvements Improved HLSL shader compiler calls - should now build from CLI commit 518ba87 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Wed Mar 25 19:55:56 2026 +0000 Cleanups commit 28d2953 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Wed Mar 25 19:47:19 2026 +0000 Apply Copilot suggestions commit de53656 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Wed Mar 25 19:33:16 2026 +0000 Improved HLSL shader compiler calls - should now build from CLI commit c78081f Merge: 222cf00 5c70d40 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sun Mar 22 13:56:46 2026 +0000 Merge pull request #1163 from TombEngine/copilot/fix-texture-corruption-issue Revert MaxDirectImageArea to fix texture corruption in large levels commit 5c70d40 Author: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Date: Sun Mar 22 13:37:42 2026 +0000 Fix texture corruption in larger levels by reverting MaxDirectImageArea to 256 * 256 Co-authored-by: Nickelony <20436882+Nickelony@users.noreply.github.com> Agent-Logs-Url: https://github.com/TombEngine/Tomb-Editor/sessions/1f0d12e3-e5ca-43c6-bf5a-854cb3e886ad commit 9a6da27 Author: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Date: Sun Mar 22 13:16:32 2026 +0000 Initial plan commit 222cf00 Merge: a000b62 3c290e7 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Mon Mar 16 20:58:33 2026 +0000 Merge pull request #1063 from TombEngine/Nickelony/Conditional-Relight Conditional Relight commit 3c290e7 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Mon Mar 16 20:56:14 2026 +0000 Make lighting quality param optional Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> commit 0ab947e Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Mon Mar 16 20:35:43 2026 +0000 Apply Copilot suggestions commit 5898f9e Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Mon Mar 16 20:21:59 2026 +0000 Restore deltas commit fe06f68 Merge: 0106a03 a000b62 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Mon Mar 16 20:20:09 2026 +0000 Merge remote-tracking branch 'origin/develop' into Nickelony/Conditional-Relight # Conflicts: # TombLib/TombLib/LevelData/RoomGeometry.cs commit a000b62 Merge: f28d67e 214982f Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Mon Mar 16 20:17:14 2026 +0000 Merge pull request #1138 from TombEngine/Nickelony/RoomGeometry-Refactor Refactored `RoomGeometry.cs` commit 214982f Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Mon Mar 16 20:07:28 2026 +0000 Implement divide by 0 protections commit f28d67e Merge: a93b1da d6a4991 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sun Mar 15 22:14:06 2026 +0000 Merge pull request #1126 from TombEngine/Nickelony/Texture-Size-Limit-Lift Lift texture size limit for TEN and warn for other engines commit a93b1da Merge: 9b4fe26 48cd008 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sun Mar 15 14:06:12 2026 +0200 Merge pull request #1128 from TombEngine/Nickelony/Content-Browser Content Browser + Object Placement toolset commit 48cd008 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sun Mar 15 13:03:05 2026 +0100 Remove extra splitter commit a6bc882 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sun Mar 15 12:52:02 2026 +0100 Address Copilot comments commit 9b4fe26 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 14 23:25:04 2026 +0100 Update API.xml commit d678101 Author: davidmarr <116632612+davidmarr@users.noreply.github.com> Date: Sat Mar 14 22:48:14 2026 +0100 Update timer argument ranges and debug logs (#1135) * Update timer argument ranges and debug logs Adjust timer node numerical argument metadata (change numeric field from 1 to 2 and increase upper bound to 65535 in relevant nodes) to allow larger/updated value ranges. Remove ticking checks so GetRemainingTime and GetTotalTime always log when the timer exists. Simplify debug logging in IfRemainingTimeIs by removing operator-specific tick gating and normalize float formatting for log output. * Clarify timer duration argument descriptions Updated timer argument descriptions to clarify that durations can be rounded to the nearest game frame (1/30 of a second). * Increase timer max duration to 65535 Update numeric argument metadata in Timers.lua to allow timer durations up to 65535 seconds (previously 1000). The change updates the argument range for the simple countdown, LevelFuncs callback, volume event, and global event timer nodes in TombLib/TombLib/Catalogs/TEN Node Catalogs/Timers.lua to reflect the expanded maximum duration. * Increase timer arg max from 1000 to 65535 Update the argument metadata in Timers.lua for Timer node conditions: change the Numerical argument upper bound from 1000 to 65535 for both "Remaining time" and "Total Time" (in seconds). This is a comment/metadata change only; no runtime logic was modified. Values are still rounded internally to the nearest game frame (1/30s). * Increase timer max from 65535 to 86400 Update timer argument metadata in TombLib/TombLib/Catalogs/TEN Node Catalogs/Timers.lua to allow durations up to 86400 seconds (24 hours) instead of 65535. The numerical range for various timer-related nodes and checks (simple countdown, LevelFuncs callback, volume/global event timers, SetRemainingTime, SetTotalTime, IfRemainingTimeIs, IfTotalTimeIs) was adjusted in the annotation/comments so the editor/UI will accept longer timer values. No runtime logic was changed; only the argument metadata was updated. * Update timer argument comments to Centiseconds Replace incorrect "Deciseconds" label with "Centiseconds" in TEN Node Catalogs/Timers.lua (four occurrences). This clarifies the timer argument unit and normalizes comment syntax for consistency. * Add newline at end of Timers.lua Add a missing newline at the end of TombLib/TombLib/Catalogs/TEN Node Catalogs/Timers.lua. This is a non-functional change to satisfy POSIX/editor expectations and avoid spurious diff warnings. * Update timer argument precision to 0.03 Adjust timer argument documentation in TEN Node Catalogs/Timers.lua to use 0.03 (≈1/30s) as the finer timer increment instead of 0.1. The Numerical argument allowed values were updated for several Timer nodes (simple countdown, LevelFuncs callback, volume event, global event, IfRemainingTimeIs, IfTotalTimeIs) to reflect rounding to the nearest game frame (1/30 of a second). These are comment/meta changes describing argument precision; no runtime logic was modified. * Init nodeTimers and simplify timer color Ensure LevelVars.nodeTimers[name] is initialized before reading .debug in multiple timer functions (StartTimer, StopTimer, SetPausedTimer, SetRemainingTime, SetTotalTime, SetLooping, IfRemainingTimeIs, IfTotalTimeIs) to avoid nil indexing errors and enable per-timer debug logging. Also simplify SetTimerColor and SetTimerPauseColor by setting the alpha on the provided color table (color.a = 255 * tColor / paused) and passing it directly to SetUnpausedColor/SetPausedColor instead of constructing a new TEN.Color. * Refactor timer init and update doc ranges Refactor timer handling in TEN Node Timers: introduce a local SetTimer function (replacing in-file LevelFuncs.Engine.Node.SetTimer usage) and add a CreateStruct helper to centralize/ensure LevelVars.nodeTimers[name] initialization. Replace many repetitive nil-checks with CreateStruct calls. Also update several node argument comment ranges for timer durations/precision (e.g. max reduced from 86400 to 1000 and rounding/precision values adjusted). Minor comment formatting tweaks included. * Shorten tooltips and descriptions * Use direct SetTimer call in CreateTimerWithGEventSet Replace the fully-qualified LevelFuncs.Engine.Node.SetTimer call with a direct SetTimer invocation in CreateTimerWithGEventSet. This aligns the call with the intended local/global SetTimer function and ensures consistent resolution without changing timer creation logic. * Fix typos --------- Co-authored-by: Lwmte <3331699+Lwmte@users.noreply.github.com> commit 968b789 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 14 22:44:27 2026 +0100 Update TEN.zip commit f20edf2 Merge: a9b8b1e e9f483d Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sat Mar 14 16:31:51 2026 +0000 Merge pull request #1153 from lahm86/fix-tr3-monkeyswing-pathing Restrict monkeyswing overlap flag to TR4+ commit e9f483d Author: lahm86 <33758420+lahm86@users.noreply.github.com> Date: Sat Mar 14 16:25:46 2026 +0000 Restrict monkeyswing overlap flag to TR4+ This avoids adding the monkeyswing pathfinding flag to TR3 overlaps, as no enemies there use the mechanism. It avoids engine crashes as the overlap indices are interpreted directly in box lookups. commit a9b8b1e Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 14 13:35:17 2026 +0100 Fixed crawl climbout sound in the TEN base wad commit b0b9b42 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 14 12:52:58 2026 +0100 Update TEN preset and API.xml commit 3c5af2b Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Thu Mar 12 07:00:43 2026 +0100 Disable lighting in object placement mode commit 164ef37 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Thu Mar 12 06:29:35 2026 +0100 Fixed crash with opening a project with imported geometry present commit 34ea870 Merge: f02e350 1232d5b Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Thu Mar 12 00:41:23 2026 +0100 Merge branch 'develop' into Nickelony/Content-Browser commit 1232d5b Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 10 01:09:52 2026 +0100 Fixed occasional race condition with matrix recalculation for disposing objects commit 7ca848b Merge: 90d37a9 7fa24f2 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Wed Mar 11 20:26:03 2026 +0000 Merge pull request #1151 from lahm86/trx-131 Add TRX monkeyswing support and update presets commit 7fa24f2 Author: lahm86 <33758420+lahm86@users.noreply.github.com> Date: Fri Mar 6 21:53:16 2026 +0000 Update TRX presets This updates the TRX presets to 1.3.1. commit c8a3b6d Author: lahm86 <33758420+lahm86@users.noreply.github.com> Date: Mon Feb 23 21:13:38 2026 +0000 Add TRX monkeyswing support This adds support for monkeyswing sectors in TRX levels. commit f02e350 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 10 21:00:44 2026 +0100 Fix mousewheel param combo commit 0ced678 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 10 20:25:10 2026 +0100 Fixed brush getting stuck when pushing Ctrl while moving the mouse commit 1306fa0 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 10 20:22:36 2026 +0100 Fixed mouse sensitivity issues and swap Ctrl/Shift modifiers commit 7950ed9 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 10 20:15:49 2026 +0100 Fixed disabled rotation controls in fill mode, fixed renderer state setting commit 90a0189 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 10 20:03:27 2026 +0100 Remove favorites filter hiding as it's very slow commit 6412d37 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Tue Mar 10 08:48:19 2026 +0000 Simplify view model favourites removal logic + Fix combobox data bug commit 0743571 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 10 09:10:19 2026 +0100 Render thumbnails only in view, hide favorites entry if no favorites are selected commit 9b93e1c Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 10 08:53:53 2026 +0100 Add favorites commit 2b29b13 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 10 08:28:59 2026 +0100 Fixed view model for brush toolbox commit f59fda4 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 10 08:23:12 2026 +0100 Fixed localization commit d062424 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 10 08:17:20 2026 +0100 Added original selection tool to object placement mode commit b7e5acd Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 10 07:56:11 2026 +0100 Add object selection icon commit c2b5ab0 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 10 07:27:42 2026 +0100 Introduce extents tolerance to avoid sinking objects into room geometry commit 3570d9c Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 10 07:04:30 2026 +0100 Allow bogus deselection in ContentBrowser again commit 8a1f9f0 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 10 02:34:26 2026 +0100 Simplify object selection logic commit 007911f Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 10 00:35:00 2026 +0100 Fixes for imported geometry brush placement commit 61545fb Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Mon Mar 9 09:10:31 2026 +0100 Added align to grid option to a pencil tool commit e0fb718 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Mon Mar 9 08:58:29 2026 +0100 UI consistency fixes commit c990e3f Merge: 6425eda 90d37a9 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Mon Mar 9 08:35:20 2026 +0100 Merge branch 'develop' into Nickelony/Content-Browser commit 90d37a9 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Mon Mar 9 08:23:05 2026 +0100 Update AGENTS.md commit 6425eda Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Mon Mar 9 01:25:03 2026 +0100 Display density for fill tool, draw correct rotation indicator for square brush commit 259fdb6 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Mon Mar 9 00:28:13 2026 +0100 Update only necessary thumbnails when loading or shuffling wads commit a477683 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Mon Mar 9 00:17:24 2026 +0100 Disable alignment to grid for any other tools but line commit bb2265c Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sun Mar 8 21:49:38 2026 +0000 More fixes commit d52c6bd Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sun Mar 8 21:30:47 2026 +0000 ToolBar fixes commit 326aeb0 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sun Mar 8 21:38:36 2026 +0100 Fixed align to grid, rename Flip to Orthogonal commit 9364f94 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sun Mar 8 20:26:28 2026 +0000 Standardise sizes commit c63d859 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sun Mar 8 17:10:10 2026 +0000 Tabify commit fa493c3 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sun Mar 8 17:08:14 2026 +0000 Remove unnecessary props commit bdd5a53 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sun Mar 8 17:05:07 2026 +0000 Rework ObjectBrushToolbox XAML and fix broken Designer commit c784273 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sun Mar 8 17:02:54 2026 +0100 Added align to grid option commit b0ce108 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sun Mar 8 16:35:42 2026 +0100 Add double-click on empty content area to load wad commit 4070f23 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sun Mar 8 15:42:43 2026 +0100 UX commit 9fba182 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sun Mar 8 15:09:48 2026 +0100 Refactors commit 626251e Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sun Mar 8 12:10:29 2026 +0100 Added deadzone, slight cleanups commit 0d3b558 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sun Mar 8 11:16:06 2026 +0100 Change parameter settings on mouse hover commit 66ac9d6 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sun Mar 8 10:37:48 2026 +0100 Rewrite brush logic commit ea7c156 Merge: 72d03a0 a8d8039 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sat Mar 7 20:18:27 2026 +0000 Merge pull request #1147 from TombEngine/Nickelony/CB-Refactor Content Browser branch refactor commit a8d8039 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sat Mar 7 20:17:48 2026 +0000 Apply Copilot suggestions commit 7111939 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sat Mar 7 20:09:59 2026 +0000 Final cleanups commit ef7cc65 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sat Mar 7 19:29:26 2026 +0000 Apply Copilot suggestions commit cf57f2e Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sat Mar 7 18:25:45 2026 +0000 More cleanups commit 077e425 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sat Mar 7 18:13:32 2026 +0000 Cleanups commit a7568e4 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sat Mar 7 17:42:39 2026 +0000 More fixes commit 9fdf2f4 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sat Mar 7 17:07:57 2026 +0000 Additional fixes commit 102b2e3 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sat Mar 7 16:41:25 2026 +0000 Progress report commit 72d03a0 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sat Mar 7 13:52:00 2026 +0000 Fix startup error commit e831e6e Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sat Mar 7 13:28:35 2026 +0000 Reformat ObjectBrushToolboxView commit 54b4f42 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sat Mar 7 13:20:20 2026 +0000 Reformat ToolBoxView commit 07f5a3d Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sat Mar 7 13:10:29 2026 +0000 Refactors #1 commit da66adf Merge: 45efb4a 56fe37b Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 7 14:00:43 2026 +0100 Merge branch 'develop' into Nickelony/Content-Browser commit 56fe37b Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 7 13:56:45 2026 +0100 Disable room deletion in 3D mode if no objects are selected commit 45efb4a Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 7 13:54:29 2026 +0100 Cleanups, changes to brush selection/deselection workflow commit e6bfb2f Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 7 12:32:57 2026 +0100 Update EditorActions.cs commit 2cf1206 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 7 11:34:04 2026 +0100 Use bounding box intersection test for eraser, cleanup picking code commit 09d118d Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 7 10:39:04 2026 +0100 Fixed brush draw reset commit 0ae38bc Merge: 416ff6e 62397fa Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 7 10:03:11 2026 +0100 Merge branch 'Nickelony/Content-Browser' into object_brush commit 62397fa Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 7 09:49:18 2026 +0100 Simplify ResetCamera commit 9c56775 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 7 09:26:06 2026 +0100 Simplify thumbnail rendering code commit 505072a Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 7 05:40:45 2026 +0100 Cherrypick input filter from the property system branch commit d12d528 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 7 05:35:22 2026 +0100 Update AGENTS.md commit 416ff6e Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 7 05:10:08 2026 +0100 Update Panel3DDraw.cs commit 9b534a9 Merge: dc268c5 92188ad Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 7 04:59:55 2026 +0100 Merge branch 'Nickelony/Content-Browser' into object_brush commit 92188ad Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 7 04:59:36 2026 +0100 Cleanup Editor.cs commit 4fa7907 Merge: 6e01546 c4ceeb6 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 7 04:49:04 2026 +0100 Merge branch 'develop' into Nickelony/Content-Browser commit c4ceeb6 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 7 04:46:31 2026 +0100 Update AGENTS.md commit dc268c5 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 7 04:23:34 2026 +0100 Added brush highlight for objects commit 48e7e79 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Mar 7 02:40:45 2026 +0100 Smoothen direction follow, cleanups commit a353e36 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Fri Mar 6 23:47:26 2026 +0100 Update AGENTS.md commit 4d5eb8c Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Fri Mar 6 09:37:57 2026 +0100 Simplify code commit 3edcf71 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Fri Mar 6 09:22:32 2026 +0100 Add mouse follow option commit 30773cc Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Fri Mar 6 08:49:29 2026 +0100 Update brush on tool switch commit 7c6c2af Merge: c5b4993 6e01546 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Fri Mar 6 08:42:04 2026 +0100 Merge branch 'Nickelony/Content-Browser' into object_brush commit 6e01546 Merge: 3806f85 16bce32 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Fri Mar 6 08:41:36 2026 +0100 Merge branch 'develop' into Nickelony/Content-Browser commit 16bce32 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Fri Mar 6 08:41:26 2026 +0100 Update AGENTS.md commit 3806f85 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Fri Mar 6 08:40:20 2026 +0100 Update ContentBrowserView.xaml.cs commit 5b64e0e Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Fri Mar 6 08:39:25 2026 +0100 Cleanups commit 32559e1 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Fri Mar 6 08:14:52 2026 +0100 Cleanups commit c5b4993 Merge: 8bf4765 336ecd7 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Fri Mar 6 07:17:32 2026 +0100 Merge branch 'Nickelony/Content-Browser' into object_brush commit 336ecd7 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Fri Mar 6 07:17:22 2026 +0100 Maintain legacy selection workflow commit cc61b2d Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Fri Mar 6 01:26:32 2026 +0100 Fix multiselection commit 82bfa36 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Thu Mar 5 23:30:18 2026 +0100 Add drag-n-drop commit cfef865 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Thu Mar 5 22:04:23 2026 +0100 Create AGENTS.md commit 8bf4765 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Thu Mar 5 21:43:41 2026 +0100 Fixed toolbox width, added object placement icon commit 44fc585 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Thu Mar 5 20:41:42 2026 +0000 Update Changes.txt commit 5ff21cb Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Thu Mar 5 20:40:27 2026 +0000 Update FLEP.zip commit 3966255 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Thu Mar 5 20:34:20 2026 +0100 Fix UI commit 0df79f4 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Thu Mar 5 09:32:04 2026 +0100 Update ObjectBrushHelper.cs commit 8d1630f Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Thu Mar 5 09:07:40 2026 +0100 Fixed white light mode commit 59947dd Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Thu Mar 5 08:47:15 2026 +0100 Move mouse handling code to a separate document commit 6978fdb Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Thu Mar 5 04:37:05 2026 +0100 Split tools commit 6fe5d1e Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Thu Mar 5 03:08:53 2026 +0100 Update RoomShaderPS.hlsl commit 487c715 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Thu Mar 5 02:29:42 2026 +0100 Iteration 8 commit e9f5393 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Thu Mar 5 01:19:39 2026 +0100 Iteration 7 commit 5203de0 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Wed Mar 4 23:31:26 2026 +0100 Iteration 6 commit 57fbc12 Merge: 48da83e 67432c8 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Wed Mar 4 21:21:33 2026 +0100 Merge branch 'develop' into object_brush commit 67432c8 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Wed Mar 4 21:19:57 2026 +0100 Create AGENTS.md commit 48da83e Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Wed Mar 4 00:53:24 2026 +0100 Auto-anchor object brush toolbox commit a148bf2 Merge: bfe23ba 0713674 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Wed Mar 4 00:45:00 2026 +0100 Merge branch 'Nickelony/Content-Browser' into object_brush commit 0713674 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Wed Mar 4 00:44:31 2026 +0100 Add stub message commit e8147a1 Merge: 8f2ff20 0e33749 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Wed Mar 4 00:25:33 2026 +0100 Merge branch 'develop' into Nickelony/Content-Browser commit 0e33749 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Wed Mar 4 00:24:43 2026 +0100 Fixed occasional incorrect floating toolbox position commit 8f2ff20 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 3 23:46:19 2026 +0100 Eyeball and deslop WadObjectRendererHelper commit a700fa2 Author: davidmarr <116632612+davidmarr@users.noreply.github.com> Date: Tue Mar 3 23:45:34 2026 +0100 Clarify console for printed error message Update TIDE/TEN/API.xml docs to specify that when the optional boolean is true, the error message will be printed in the console if parameters are invalid, improving clarity about where the feedback appears. commit c4d84ba Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 3 23:38:25 2026 +0100 Eyeball and deslop ContentBrowser.cs commit bfe23ba Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 3 23:24:26 2026 +0100 Eyeball and deslop commit 719ff10 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 3 20:56:26 2026 +0100 Fix perfo issues commit 831f452 Merge: e186f19 da18e5d Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 3 09:15:31 2026 +0100 Merge branch 'Nickelony/Content-Browser' into object_brush commit da18e5d Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 3 09:13:37 2026 +0100 Use HideInternalObjects commit e186f19 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 3 04:45:13 2026 +0100 Update RoomShaderPS.hlsl commit 63d2d02 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 3 04:29:08 2026 +0100 First iteration commit edc5615 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 3 00:06:57 2026 +0100 Update ContentBrowserViewModel.cs commit 1f66ff4 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Tue Mar 3 00:01:52 2026 +0100 Address some PR notes commit 39063f5 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Mon Mar 2 23:21:41 2026 +0100 Fix multiselection commit 4adc311 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Mon Mar 2 22:40:54 2026 +0100 Update ContentBrowserViewModel.cs commit 4e56038 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Mon Mar 2 22:36:51 2026 +0100 Iteration 5 commit d762fef Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Mon Mar 2 09:12:42 2026 +0100 Rollback test trcatalog commit 1ff3df2 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Mon Mar 2 09:11:33 2026 +0100 Add categorization commit 728ab43 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Mon Mar 2 04:30:51 2026 +0100 Iteration 4 commit b16c11d Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Mon Mar 2 04:09:57 2026 +0100 Use NaturalComparer commit 58ed7eb Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Mon Mar 2 03:56:07 2026 +0100 Third iteration commit 062429b Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Mon Mar 2 02:57:05 2026 +0100 Second iteration commit 2dbd350 Author: Stranger1992 <84292688+Stranger1992@users.noreply.github.com> Date: Sun Mar 1 18:52:29 2026 +0000 Address #1133 : Add TR1 human enemy speeches and special death sounds Updated sounds are included in the next update. commit 29744e3 Merge: 492c82e 024430e Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sun Mar 1 18:17:25 2026 +0000 Merge pull request #1143 from TombEngine/Nickelony/Lua-Api-Gen-Fixes Improve Lua Api builder for optional fields and static methods commit 024430e Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sun Mar 1 18:05:09 2026 +0000 Apply Copilot suggestion commit 50b4093 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sun Mar 1 17:42:20 2026 +0000 Apply Copilot suggestion commit 801bfc1 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sun Mar 1 17:37:42 2026 +0000 Update API.xml commit 5682b8c Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sun Mar 1 17:18:07 2026 +0000 Improve Lua Api builder for optional fields and static methods commit 492c82e Author: davidmarr <116632612+davidmarr@users.noreply.github.com> Date: Sun Mar 1 00:06:11 2026 +0100 Refine API.xml summaries and settings docs Clean up and clarify API documentation in TEN/API.xml: remove redundant type prefixes from <summary> fields and trim or consolidate duplicate <description> entries across many classes and fields; remove the obsolete DisplayItem.name parameter from the constructor definition; expand Flow.Settings documentation to explain sub-table structure, reference the settings.lua file and note per-level override behavior; update Weapons table summary/description to mention default values and point to settings.lua. These changes improve readability and point users to the canonical source for default values. commit b42d121 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Sat Feb 28 15:03:28 2026 +0100 Change TEN flyby camera data type to allow more than 255 sequences commit 50eb37a Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Fri Feb 27 20:55:23 2026 +0100 Fixed unresponsive wad tree control after switching focus from source to dest wad commit 496618b Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Thu Feb 26 22:15:47 2026 +0100 Fixed #1140 commit 3bad1ea Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Mon Feb 23 18:40:30 2026 +0000 More refactors commit 8262255 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Mon Feb 23 09:33:33 2026 +0300 Added a TEN node to clear all input keys commit 374c603 Merge: 4efad4d 3831049 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sat Feb 21 09:59:09 2026 +0000 Merge pull request #1139 from TombEngine/copilot/sub-pr-1138 Fix Point Light intensity truncation and redundant distance conditions in RoomGeometry refactor commit 3831049 Author: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Date: Sat Feb 21 09:56:03 2026 +0000 Fix Point Light integer truncation and remove redundant distance checks Co-authored-by: Nickelony <20436882+Nickelony@users.noreply.github.com> commit 219996b Author: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Date: Sat Feb 21 09:52:02 2026 +0000 Initial plan commit 4efad4d Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Fri Feb 20 22:08:37 2026 +0000 Remove unused code commit b1a2c38 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Fri Feb 20 21:59:44 2026 +0000 Refactored `RoomGeometry.cs` commit 481c8a3 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Fri Feb 20 19:56:35 2026 +0300 Don't try to build overlaps if there's no boxes commit 7869088 Author: Lwmte <3331699+Lwmte@users.noreply.github.com> Date: Thu Feb 19 12:22:34 2026 +0200 TEN: Support for levels bigger than 2 gbytes (#1136) * Allow level size to go beyond 2 GB; Changed DDS texture compressor; * Fixed to compression with large data streams * Use chunked LZ4 * Use 64-bit block sizes in level format * Update Hash.cs --------- Co-authored-by: MontyTRC89 <montyhammet@hotmail.it> commit 3611482 Author: davidmarr <116632612+davidmarr@users.noreply.github.com> Date: Wed Feb 18 13:27:19 2026 +0100 Add GetGlobalGameTime and fix inventory wording Add a new Flow.GetGlobalGameTime entry to API.xml to expose the global game session time (Time since game launch). Also correct three parameter descriptions in the file by replacing "preset in the inventory" with "present in the inventory" for clarity. Changes made in TombIDE/TombIDE.Shared/TIDE/TEN/API.xml. commit f035764 Merge: 6703543 ce57572 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Tue Feb 17 21:59:25 2026 +0000 Merge pull request #1134 from lahm86/fix-tr2x-8bit Fix TR2X 8-bit textures commit ce57572 Author: lahm86 <33758420+lahm86@users.noreply.github.com> Date: Tue Feb 17 13:11:00 2026 +0000 Fix TR2X 8-bit textures This resolves incorrect colours being used if 8-bit textures are selected for TR2X. A dummy colour is needed for index 0 to mark transparency and avoid losing black pixels, and the colour components need multiplying by 4 to reverse the action in PackTextureMap32To8Bit. commit 6703543 Author: davidmarr <116632612+davidmarr@users.noreply.github.com> Date: Tue Feb 17 10:20:23 2026 +0100 Add View.DisplayItem API documentation Add comprehensive XML API docs for the View.DisplayItem class in TEN. Documents creation, global camera and ambient controls, setters/getters for position/rotation/scale/color, meshBits and per-mesh visibility, joint rotation, animation/frame controls, bounds projection and Draw method — providing a complete Lua reference for manipulating 3D display items in 2D display space. commit bff25e6 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sun Feb 15 09:48:05 2026 +0000 Push missing code commit 3969550 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Fri Feb 13 14:53:10 2026 +0000 Upload rough implementation commit d6a4991 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Thu Feb 12 22:25:49 2026 +0000 Remove unused fields commit 3343894 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Thu Feb 12 22:00:25 2026 +0000 Lift texture size limit for TEN and warn for other engines commit 0106a03 Merge: ddfbe7f 10aa900 Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sat Sep 20 12:06:51 2025 +0100 Merge branch 'develop' into Nickelony/Conditional-Relight commit ddfbe7f Author: Kewin Kupilas <k.kupilas@outlook.com> Date: Sun Nov 24 18:09:33 2024 +0000 #957 - Relight rooms only when entering or in Lighting mode
No description provided.