Add configurable multi-track rail generation and persistent in-game editing - #98
Add configurable multi-track rail generation and persistent in-game editing#98Jasupa wants to merge 2 commits into
Conversation
Qodana for JVMIt seems all right 👌 No new problems were found according to the checks applied 💡 Qodana analysis was run in the pull request mode: only the changed files were checked Contact Qodana teamContact us at qodana-support@jetbrains.com
|
ccc8e63 to
3d6c46b
Compare
Zoriot
left a comment
There was a problem hiding this comment.
Solid Rail Generator v2 overall: clear package split, transactional save/delete, overlap checks before placement, and a usable in-game type editor.
Main concerns: data loss when editing multi-block ballast, missing permission on reload, underestimated pre-check for block count, and missing null-guard after terrain prep.
In game testing is pending - will be done till Sunday night, review partly done by Cursor
Please rebase. Going forward please explain changes which may not be clear in the commit so it's easier to follow and review.
Replace the fixed rail preset with configurable rail types stored in rail-types.yml. Split configuration, generation and menus so persistence, geometry and player interaction can be reviewed independently. Generate one to eight aligned tracks with individual gaps, sleepers, optional overhead poles, supports and wires. Validate overlapping paths, the terrain preparation envelope and the complete placement set before queuing blocks. Keep preparation progress and cancellation tied to the active generation. Provide in-game selection, search, pagination, creation, editing and deletion. Version the configuration and make save/delete transactional so failed writes do not change the active types. Add permissions for rail actions and multiple tracks. The track-switch setting is only a stored option for future generation support. Consolidate the previous implementation commits on the current main branch. Retain the existing dependency and Shadow packaging configuration; the unrelated relocation changes are excluded.
336efea to
9f52c6c
Compare
Rail Generator v2 replaces the fixed rail preset with saved rail types. Builders can generate one to eight aligned tracks with individual gaps, sleepers, and optional overhead poles, supports and wires, then manage their presets in-game.
Implementation
rail-types.yml, with validation and transactional save/delete behavior so failed writes do not change active types.btt.generator.rail.edit(the rail type edit permission); menu access alone does not allow reload.The track-switch setting stores a preference for future support; it does not generate switches. Dependency and Shadow relocation settings remain unchanged from
main.Commit batches
feat(rail): add persistent multi-track railway generation and editor— consolidates the previous implementation, excluding the unrelated build changes.fix(rail): preserve ballast mixes and enforce generation safeguards— addresses the review findings and adds ballast regression tests.Both batches are based on
mainata60f67293681dda3aed4085634038a3342571942.Validation
buildpassed, including tests and Shadow packaging with the original build configuration.git diff --checkpassed.Requirements
Rail Generator v2 requirements