Repository navigation
tool generate
Entry:
Tools → Generate Create Tracks(Actioncreate_track_gen.generate) Source:src/ui/dialog.ts
Collects the left rail / right rail / tie parts plus the track gauge, track height, whole-model Y
offset and a new workspace name, then generates Create's 11 track shapes + the curve-rendering base
groups tie / segment_left / segment_right into a new standalone workspace, importing and
applying the three parts' textures. Layout: two columns — left = parts + portal textures, right =
parameter form.
| Element | Purpose |
|---|---|
| Import File… | Imports a .bbmodel from disk as this part. Use a Create track part model (rail along Z, tie across X) |
| Select a Tab… | Extracts the elements selected in one of the open tabs as this part |
| Mirror from First Model (right rail only) | Derives the right rail by mirroring the left rail about its central YZ plane; shares the left rail's texture |
| Status line |
✓ Selected: N elements · contains mesh · texture 64×64px, or Not selected
|
All three parts must share the same texture resolution, otherwise "OK" is rejected. Any part with mesh groups → the new workspace is a free model; otherwise a Java block/item model.
Each texture is independently optional, with its own import button and status line.
| Element | Purpose |
|---|---|
| Import portal_track… | Imports portal_track.png, covering the track/ties of the teleport shapes (default: the parts' own textures) |
| Import portal_track_mip… | Imports portal_track_mip.png, generating the two overlay cubes teleport_left / teleport_right for the teleport shapes (default: none) |
| Field | Default | Purpose |
|---|---|---|
| Track gauge (px / mm / in) | 25.6 |
Center distance between the rails (Create default 1600mm ≈ 25.6px). The three fields are linked: type a value and press Enter to back-fill the other two |
| Track height (px) | 2 |
Height from the tie bottom to the rail bottom; ties are not lifted |
| Whole-model Y offset (px) | 0 |
Y offset of the whole model (ties + track) |
| New workspace name | track |
Name of the new workspace the result goes into (also the default track id when exporting; the track parent group is named after it) |
| Button | Purpose |
|---|---|
| OK | Validates and generates. Missing part / gauge ≤ 0 / height < 0 / empty name / mismatched texture resolutions pop an error and keep the dialog open |
| Cancel | Abandons the generation |
The 11 shapes are generated under the track parent group, then a Track Gauge Result box shows the gauge (px/mm/inch), Y offset, Create curve scale constant, fit formula and anchors.
Shapes: x_ortho / diag / diag_2 / ascending_south / teleport / cross_ortho / cross_diag / cross_d1_xo / cross_d2_xo / cross_d1_zo / cross_d2_zo (z_ortho, ascending_n/e/w, teleport_x are expressed via
blockstate y rotations; all four crossing models are generated).
- After choosing "Mirror from First Model", the right rail's file is cleared and the status shows "✓ Mirrored from the Left Rail along its central YZ plane".
- Rails should be clearly narrower than the gauge (Create's official segment is ~2.4px wide), otherwise they overlap.
- A free-model workspace generated from mesh-containing parts can only be exported as OBJ (see Export Track Models).