Class TrackBuilder
java.lang.Object
uno.anahata.asi.yam.games.asikart.TrackBuilder
TrackBuilder — Specialized 3D Circuit Generator for AsiKart 3D.
Supports multiple 3D circuits:
TrackBuilder.CircuitType.RAINBOW_CIRCUIT— High-altitude cosmic track surrounded by starfield and neon light-rails.TrackBuilder.CircuitType.DESERT_SPEEDWAY— Sun-scorched desert raceway with dunes, palm trees, and ancient stone arches.TrackBuilder.CircuitType.CYBER_CIRCUIT— Futuristic neon-grid circuit set in a synthwave cyber metropolis.
Features 3D Sky Dome, PBR Asphalt/Grass normal bump textures, 3D Finish Arches, and thematic scenery trees.
- Author:
- anahata
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumEnumeration of available 3D circuit themes.static classContainer holding generated track objects and geometry references. -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidbuild3DTunnelAndGrandstands(com.jme3.scene.Node parentNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type, List<com.jme3.math.Vector3f> waypoints) private voidbuildDirectionalArrowSigns(com.jme3.scene.Node parentNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type, List<com.jme3.math.Vector3f> waypoints) private voidbuildFinishArch(com.jme3.scene.Node parentNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type, com.jme3.math.Vector3f startPos) private voidbuildGroundAndAsphalt(com.jme3.scene.Node parentNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type, List<com.jme3.math.Vector3f> waypoints, List<com.jme3.scene.Geometry> trackCurbs) private voidbuildSceneryAndTrees(com.jme3.scene.Node parentNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type, List<com.jme3.math.Vector3f> waypoints) buildTrack(com.jme3.scene.Node rootNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type) Builds a complete 3D circuit environment for AsiKart.private com.jme3.scene.Geometrycreate3DSkyDome(com.jme3.scene.Node parentNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type) private com.jme3.material.MaterialcreateLightedMaterial(com.jme3.asset.AssetManager assetManager, com.jme3.math.ColorRGBA diffuse, com.jme3.math.ColorRGBA specular, float shininess) List<com.jme3.math.Vector3f> generateSmoothSplineWaypoints(List<com.jme3.math.Vector3f> waypoints, int samplesPerSegment) private List<com.jme3.math.Vector3f> private floatgetMinDistanceToTrack(float x, float z, List<com.jme3.math.Vector3f> waypoints) intCalculates the total number of primary waypoints defining the specified circuit layout.private voidspawnItemBoxesAndBoostPads(com.jme3.scene.Node parentNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type, List<com.jme3.math.Vector3f> waypoints, List<com.jme3.scene.Node> itemBoxGroups, List<com.jme3.scene.Geometry> boostPads) private voidspawnTrackCoins(com.jme3.scene.Node parentNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type, List<com.jme3.math.Vector3f> waypoints, List<com.jme3.scene.Geometry> trackCoins)
-
Field Details
-
random
-
-
Constructor Details
-
TrackBuilder
public TrackBuilder()
-
-
Method Details
-
buildTrack
public TrackBuilder.TrackResult buildTrack(com.jme3.scene.Node rootNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type) Builds a complete 3D circuit environment for AsiKart.- Parameters:
rootNode- The scene root node.assetManager- The jME3 asset manager.type- The circuit type to construct.- Returns:
- TrackResult containing created elements and waypoints.
-
generateWaypoints
-
create3DSkyDome
private com.jme3.scene.Geometry create3DSkyDome(com.jme3.scene.Node parentNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type) -
generateSmoothSplineWaypoints
-
buildGroundAndAsphalt
private void buildGroundAndAsphalt(com.jme3.scene.Node parentNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type, List<com.jme3.math.Vector3f> waypoints, List<com.jme3.scene.Geometry> trackCurbs) -
buildFinishArch
private void buildFinishArch(com.jme3.scene.Node parentNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type, com.jme3.math.Vector3f startPos) -
buildDirectionalArrowSigns
private void buildDirectionalArrowSigns(com.jme3.scene.Node parentNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type, List<com.jme3.math.Vector3f> waypoints) -
build3DTunnelAndGrandstands
private void build3DTunnelAndGrandstands(com.jme3.scene.Node parentNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type, List<com.jme3.math.Vector3f> waypoints) -
getMinDistanceToTrack
-
buildSceneryAndTrees
private void buildSceneryAndTrees(com.jme3.scene.Node parentNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type, List<com.jme3.math.Vector3f> waypoints) -
spawnItemBoxesAndBoostPads
private void spawnItemBoxesAndBoostPads(com.jme3.scene.Node parentNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type, List<com.jme3.math.Vector3f> waypoints, List<com.jme3.scene.Node> itemBoxGroups, List<com.jme3.scene.Geometry> boostPads) -
spawnTrackCoins
private void spawnTrackCoins(com.jme3.scene.Node parentNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type, List<com.jme3.math.Vector3f> waypoints, List<com.jme3.scene.Geometry> trackCoins) -
createLightedMaterial
private com.jme3.material.Material createLightedMaterial(com.jme3.asset.AssetManager assetManager, com.jme3.math.ColorRGBA diffuse, com.jme3.math.ColorRGBA specular, float shininess) -
getWaypointCount
Calculates the total number of primary waypoints defining the specified circuit layout.- Parameters:
type- The circuit type to evaluate.- Returns:
- The number of waypoints in the track spline.
-

