Class TrackBuilder

java.lang.Object
uno.anahata.asi.yam.games.asikart.TrackBuilder

public class TrackBuilder extends Object
TrackBuilder — Specialized 3D Circuit Generator for AsiKart 3D.

Supports multiple 3D circuits:

Features 3D Sky Dome, PBR Asphalt/Grass normal bump textures, 3D Finish Arches, and thematic scenery trees.

Author:
anahata
  • Field Details

    • random

      private final Random 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

      private List<com.jme3.math.Vector3f> generateWaypoints(TrackBuilder.CircuitType type)
    • create3DSkyDome

      private com.jme3.scene.Geometry create3DSkyDome(com.jme3.scene.Node parentNode, com.jme3.asset.AssetManager assetManager, TrackBuilder.CircuitType type)
    • generateSmoothSplineWaypoints

      public List<com.jme3.math.Vector3f> generateSmoothSplineWaypoints(List<com.jme3.math.Vector3f> waypoints, int samplesPerSegment)
    • 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

      private float getMinDistanceToTrack(float x, float z, List<com.jme3.math.Vector3f> waypoints)
    • 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

      public int getWaypointCount(TrackBuilder.CircuitType type)
      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.