This session focused on the newer Scene2D CustomGameEditor so the Java port has a genuinely interactive custom piece-editing surface instead of placeholder buttons.
- Rewrote
src/main/java/com/bobsgame/client/engine/game/gui/customGameEditor/CustomGameEditor.javainto a live editor panel backed by a realGameTypeinstance. - Added controls for:
- add piece type
- add rotation
- clear current rotation
- previous / next piece navigation
- previous / next rotation navigation
- Wired the 4x4 button grid to real
Piece.RotationblockOffsetsso clicks add/remove occupied cells. - Added summary labels showing:
- selected piece
- selected rotation
- total piece count
- total rotation count
- filled cell count in the current rotation
- current mode / grid dimensions
./gradlew compileJavawas first run to validate the editor work and revealed pre-existing failures in:src/main/java/com/bobsgame/client/engine/nd/NDPuzzleGame.javalibs/twl-lwjgl3/src/de/matthiasmann/twl/input/lwjgl/LWJGLInput.java
- Those follow-up blockers were then fixed in the same session.
- Final result:
./gradlew compileJava✅
- Updated
NDPuzzleGame.javato use a localGameManager/Roomwrapper and the currentGameLogic(GameManager, long)constructor. - Switched nD puzzle updates to
puzzleGame.update(0, 1). - Added a tracked parent-repo compatibility override at
src/main/java/de/matthiasmann/twl/input/lwjgl/LWJGLInput.javaand excluded the conflicting nested-submodule source path in Gradle so TWL input forwarding no longer breaks on compile-time API drift againstTWL.jar.
- Extended the Scene2D editor with piece removal and rotation removal.
- Disabled grid buttons automatically when no piece is selected so empty-state editing is clearer.
- Bumped the Java repo version again to
2.0.3.
- Routed Scene2D piece/rotation deletes through
Scene2DYesNoDialogconfirmations. - Bumped the Java repo version again to
2.0.4.
- Added duplicate-piece and duplicate-rotation actions to the Scene2D custom editor.
- Bumped the Java repo version again to
2.0.5.
- Added clickable rotation overview buttons with occupied-cell counts to the Scene2D custom editor.
- Bumped the Java repo version again to
2.0.6.
- Added Scene2D checkboxes for cascade gravity, disconnected-only gravity, row/column/diagonal chain checks, and recursive search.
- Expanded the Java editor summary to report enabled advanced rules.
- Bumped the Java repo version again to
2.0.7.
- Added Scene2D checkboxes for next-piece preview, hold piece, bag randomizer, hard-drop punch-through, and movement/kick options.
- Expanded the Java editor summary so those movement/randomizer rules are visible immediately.
- Bumped the Java repo version again to
2.0.8.
- Added in-session preset save/load slots to the Scene2D custom editor using deep-cloned
GameTypesnapshots. - Bumped the Java repo version again to
2.0.9.
- Added one-click Classic Drop, Cascade Puzzle, and Stack Arcade preset buttons on top of the Scene2D preset-slot workflow.
- Bumped the Java repo version again to
2.0.10.
- Added current-rotation bounding-box size and unique-vs-duplicate rotation counts to the Scene2D custom editor summary.
- Expanded rotation overview buttons to include bounding-box information.
- Bumped the Java repo version again to
2.0.11.
- Added current-rotation symmetry reporting and duplicate-rotation warnings to the Scene2D custom editor analytics.
- Bumped the Java repo version again to
2.0.12.
- Added one-click normalize and center helpers for the current rotation in the Scene2D custom editor.
- Bumped the Java repo version again to
2.0.13.
- Added a one-click duplicate-rotation cleanup action to the Scene2D custom editor.
- Bumped the Java repo version again to
2.0.14.
- Added a one-click helper to normalize every rotation in the selected piece.
- Bumped the Java repo version again to
2.0.15.
- Added a one-click helper to remove empty rotations after confirmation.
- Bumped the Java repo version again to
2.0.16.
- Added Scene2D import/share entry points backed by the existing string-dialog UI.
- Added a bounded recent-history list with quick load/copy actions for recently imported or shared rulesets.
- Added clipboard-first share behavior with a manual-copy dialog fallback.
- Bumped the Java repo version again to
2.0.17.
- Added a one-click helper to center every rotation in the selected piece.
- Reused the same centering logic for both single-rotation and full-set centering to keep geometry behavior consistent.
- Bumped the Java repo version again to
2.0.18.
- Added a bounded recent-action panel that tracks meaningful authoring operations like presets, imports, shares, geometry helpers, and cleanup actions.
- Intentionally left noisy navigation clicks out of the breadcrumb feed so it behaves like useful workflow memory instead of spam.
- Positioned this as lightweight undo-adjacent guidance rather than a fake full undo system.
- Bumped the Java repo version again to
2.0.19.
- Added a focused first-pass block authoring workflow with block navigation, rename/color editing, normal/garbage/filler usage toggles, and block override assignment for the selected piece.
- Bumped the Java repo version again to
2.0.20.
- Added a focused second-pass block authoring set with special color, special chance/frequency, flashing special, match-any-color, and counter-type controls.
- Expanded block detail readouts so authored special behavior is visible alongside color and usage data.
- Bumped the Java repo version again to
2.0.21.
- Added palette color growth/shrink controls and surfaced the full authored palette in the block detail readout.
- Reused the current primary color as the palette-source color for new palette entries so the richer color-set workflow stays coherent with the existing dialog-driven UI.
- Bumped the Java repo version again to
2.0.22.
- Added reward-piece assignment plus focused chain-behavior toggles for selected blocks.
- Expanded block detail and summary readouts so reward-piece and chain-behavior authoring is visible alongside the existing block palette and special-color data.
- Bumped the Java repo version again to
2.0.23.
- Added engine-backed field-effect toggles for ignoring move-down gravity, removing same-color field blocks on set, and diamond-color field swaps.
- Expanded block behavior reporting so field-wide consequences appear alongside the existing chain and reward hooks.
- Bumped the Java repo version again to
2.0.24.
- Added direct save-to-slot actions in the Scene2D template browser so built-in starter templates can be banked into preset slots 1–3 without first overwriting the active draft.
- This is the first real bridge between built-in template browsing and Scene2D saved-slot authoring.
- Bumped the Java repo version again to
2.0.29.
- Added a combined Scene2D "Template Library" table that mixes built-in starters, user-authored preset slots, and recent import history into one browsable list.
- Implemented mixed-source badges and direct load/apply/copy action rows for every entry in the unified table.
- Bumped the Java repo version again to
2.0.30.
- Bridge Scene2D custom editor state into the older TWL editor stack where useful.
- Replace the temporary reflection bridge with a direct adapter once the exact TWL/LWJGL API contract is fully normalized.
- Add a targeted Java regression test or smoke harness for nD puzzle bootstrap + editor launch.
- Consider richer browsing for user-authored slot/history entries next, then later more advanced block-rule depth like multi-step transformation graphs and exploding-block conversion targets.
This session focused on modernizing the internal Swing-based Editor tools (SpriteEditor, MapCanvas, DialogueEditor) to include features found in industry-standard tools like Aseprite and Pyxel Edit.
- Layer System: Refactored
Sprite.javato support multiple layers (Reference, Normal). ImplementedSELayerPanelfor UI management. Export methods flatten layers for backward compatibility. - Project Persistence: Added
.sprprojformat (JSON/GZIP) to save editor state (layers, visibility, opacity) without data loss. - Universal Brushes: Refactored
SECanvasto use aBrushinterface. ImplementedPencil(with Pixel Perfect mode),Eraser,Fill, andMagic Wandbrushes. - Selection Tools: Added non-rectangular selection support using
boolean[][] maskinSelectionArea. - Pixel Perfect Drawing: Added algorithm to
PixelBrushto remove L-shaped corners during freehand drawing. - Dialogue Editor: Added a live
DialoguePreviewPanelto visualize text rendering (color tags, pauses, page breaks) in real-time. - Map Editor: Implemented "Tile Instancing" (editing tiles directly on the map) and "Auto-tiling" (4-bit edge masking).
- Submodules: Added ~30 submodules in
references/for research. Updatedlibs/submodules. - Dashboard: Created
DASHBOARD.mdlisting all submodules and project structure. - Roadmap: Updated
ROADMAP_EDITOR.mdandFEATURES_RESEARCH.mdwith findings and status.
client/: Main game code.server/: Game server.shared/: Shared logic.references/: External research repos.libs/: Dependencies.
- Undo System: The undo system works (
CompoundEdit) but could be more robust (limit stack size, memory usage). - Animation Features: Timeline view, Tags (Idle, Walk).
- Visual Dialogue Graph: The current editor is text-based with preview. A node-based editor would be a massive improvement.
- Documentation Updates: Created
VISION.md,MEMORY.md,DEPLOY.md,TODO.mdin the root. - LLM Instructions: Appended universal instructions link to agent files.
- Submodules: Added git submodules for
defold,love2d,phaser, andbobui. - Version Bump: Bumped the version to
2.0.31inVERSION.mdand updatedCHANGELOG.md.
- Continue resolving TODOs and ROADMAP features (Undo/Redo finalization, JavaFX port).
- Port the legacy Swing
bgeditorto JavaFX and/or C++ (Qt6) usingbobui. - Port bgeditor to Web.
- Build the UI for Generative AI tools (Text-to-Sprite, Image-to-Sprite).
- Integrate submodules related to generative AI.
- Polygon Lasso Feature: Implemented
PolygonLassoBrushfor the Sprite Editor, includingonMouseMovewiring inSECanvasandBrushinterface for interactive previews. - Map Editor Undo/Redo: Added
MapHistoryPanelto theEditorMaincontrol tabs so MapCanvas users can see and interact with their undo stack just like in SpriteEditor. VerifiedUndoManagerstack size constraint limit. - Documentation: Updated
TODO.md,ROADMAP_EDITOR.md,CHANGELOG.md,VERSION.md, andHANDOFF.mdto reflect the completed features.
- Port the legacy Swing
bgeditorto JavaFX and/or C++ (Qt6) usingbobui. - Port bgeditor to Web.
- Build the UI for Generative AI tools (Text-to-Sprite, Image-to-Sprite).
- Integrate submodules related to generative AI.