Optimization Reference
Module defined in `lua/common/jbeam/optimization.lua`. Assigns continuous IDs (CIDs) to vehicle data entries, optimizes beam ordering, cleans up runtime-unnecessary data, and dereferences object point
Module defined in lua/common/jbeam/optimization.lua. Assigns continuous IDs (CIDs) to vehicle data entries, optimizes beam ordering, cleans up runtime-unnecessary data, and dereferences object pointers to CID integers.
Exports
Functions
M.assignCIDs(vehicle)
Assigns continuous integer IDs (cid) to all entries in valid table sections. Nodes get special ordering: fixed nodes first, then non-collidable, then normal nodes. Populates vehicle.maxIDs.
- Parameters:
vehicle- table - Assembled vehicle data withvalidTablesmarking which sections need CIDs
- Returns: boolean -
trueon success
M.process(vehicle, debugEnabled)
Runs the full optimization pipeline: optimize beam ordering (swap id1/id2 so id1 < id2), cleanup unused data, dereference object pointers to CIDs, and remove disabled sections.
- Parameters:
vehicle- table - Assembled vehicle datadebugEnabled- boolean|nil - When true, preservesgroup/engineGroupfields for debugging
- Returns: boolean -
trueon success
Internal Notes
- Node ordering (for physics engine): fixed → non-collidable → normal. This ordering matters for simulation performance.
- Beam optimization: swaps
id1/id2soid1 < id2for consistent ordering. - Cleanup removes: empty strings (except
mesh),group/engineGroup(unless debug), default beam values (beamType=0,beamPrecompression=1, etc.), fire-system fields on nodes withoutflashPoint, default collision flags. - Dereference: converts wheel beam/node object references to their
.cidintegers (sideBeams, rimBeams, peripheryBeams, treadBeams, reinfBeams, pressuredBeams, treadNodes, nodes). Hydro.beam→.beamCID. - Sections with
entry[0].disableSectionset are removed entirely. vehicle.validTablesis deleted after processing (no longer needed).
Materials Reference
Module defined in `lua/common/jbeam/materials.lua`. Processes material switches, glow maps, and deform group material bindings for vehicle 3D objects.
Scaling Reference
Module defined in `lua/common/jbeam/scaling.lua`. Applies `scale*` prefixed properties to their corresponding base values by multiplication.