/**
  * This method sets up the Node structure for Pot objects.
  *
  * @param parent The parent node of the PotNode.
  */
 private void setupPots(Node parent) {
   CustomNode potNode = new CustomNode("PotNode");
   // Pots are too light by default. A reverse ambient light fixes that
   AmbientLight al;
   al = new AmbientLight();
   al.setColor(ColorRGBA.White.mult(-1.5f));
   potNode.addLight(al);
   parent.attachChild(potNode);
 }
  private void setupWorld() {
    // Set up the Node structure for game objects
    CustomNode clickableObjectNode = new CustomNode("ClickableObjectNode");
    CustomNode nonClickableObjectNode = new CustomNode("NonClickableObjectNode");
    CustomNode gameObjectNode = new CustomNode("GameObjectNode");

    gameObjectNode.attachChild(clickableObjectNode);
    gameObjectNode.attachChild(nonClickableObjectNode);
    rootNode.attachChild(gameObjectNode);

    // Set up the different tank nodes for storing fish
    // CustomNode arenaTank = new CustomNode("ArenaTank")
    // Fish in the arena tank are stored in the FishNode
    CustomNode stockTank = new CustomNode("StockTank");
    // Fish in the stock and isolation tanks shouldn't be displayed in the arena tank.
    CustomNode isolationTank = new CustomNode("IsolationTank");

    // So, cull the nodes
    stockTank.setCullHint(Spatial.CullHint.Always);
    isolationTank.setCullHint(Spatial.CullHint.Always);

    nonClickableObjectNode.attachChild(stockTank);
    nonClickableObjectNode.attachChild(isolationTank);

    // Register those Nodes with the NodeCollection
    cichlid_sim.game.NodeCollection.addNode(rootNode, "RootNode");
    // CustomNode objects are automatically added to the NodeCollection
    // cichlid_sim.game.NodeCollection.addNode(clickableObjectNode, "ClickableObjects")
    // cichlid_sim.game.NodeCollection.addNode(nonClickableObjectNode, "NonClickableObjects")
    // cichlid_sim.game.NodeCollection.addNode(gameObjectNode, "GameObjectNode")

    // Setup GameObject Nodes
    setupTank(nonClickableObjectNode);
    setupFish(clickableObjectNode);
    setupPots(clickableObjectNode);
    setupPlants(clickableObjectNode);
    setupAxes(nonClickableObjectNode);

    // Setup Lights
    setupLights();

    // Start the AI
    realAI = new RealAI();

    this.isLoaded = true;
  }
 /**
  * This method sets up the axes node and creates a representation of the default (right handed)
  * world coordinate system.
  *
  * @param parent The parent node of the AxesNode.
  */
 private void setupAxes(Node parent) {
   CustomNode axesNode = new CustomNode("AxesNode");
   axesNode.attachChild(new Axes("Axes", 5f));
   AxesToggleActionHandler.addAxes(axesNode);
   parent.attachChild(axesNode);
 }