
// NetTour3D.java
// Andrew Davison, April 2005, ad@fivedots.coe.psu.ac.th

/* Svět aplikace Tour3D (šachovnice, překážky, scenérie).
   Scenérie a překážky se načítají z konfiguračního souboru,
   stejně jako dříve.

   Nyní může být ve scéně více robotů, jeden pro
   každého návštěvníka síťového světa.

   Nad sprite se objeví jméno příslušného návštěvníka.
   
   Příkazový řádek může také obsahovat počáteční (x,z) pozici.

   Použití:
     java -cp %CLASSPATH%;ncsa\\portfolio.jar NetTour3D 
                  <userName>  [<xPosn> <zPosn>]  <tourFile>
*/

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;


public class NetTour3D extends JFrame
{
  private WrapNetTour3D w3d;

  private String userName = null; 
  private String tourFnm = null;
  private double xPosn = 0.0;   // výchozí počáteční souřadnice
  private double zPosn = 0.0;


  public NetTour3D(String args[]) 
  {
    super("NetTour3D: ");
    processArgs(args);
    setTitle(getTitle() + userName);

    Container c = getContentPane();
    c.setLayout( new BorderLayout() );
    w3d = new WrapNetTour3D(userName, tourFnm, xPosn, zPosn);
    c.add(w3d, BorderLayout.CENTER);

     addWindowListener( new WindowAdapter() {
       public void windowClosing(WindowEvent e)
       { w3d.closeLink(); }
     });

    pack();
    setResizable(false);    // rozměry okna jsou pevně dány
    setVisible(true);
  } // konec metody: NetTour3D()


  private void processArgs(String[] args)
  /* Extrahuj jméno, počáteční souřadnice (x,z) a 
     konfigurační soubor z příkazové řádky. Souřadnice
     jsou volitelné. */
  {
    if (args.length == 4) {
      userName = args[0];
      tourFnm = args[3];

      try {
        xPosn = Double.parseDouble(args[1]);
      }
      catch (NumberFormatException ex)
      { System.out.println("xPosn musí být reálné číslo"); }

      try {
        zPosn = Double.parseDouble(args[2]);
      }
      catch (NumberFormatException ex)
      { System.out.println("zPosn musí být reálné číslo"); }
    }
    else if (args.length == 2) {
      userName = args[0];
      tourFnm = args[1];
      System.out.println("xPosn a zPosn nastaveny na 0.0");
    }
    else {
      System.out.println( 
         "Použití: java -cp %CLASSPATH%;ncsa\\portfolio.jar NetTour3D <userName> [<xPosn> <zPosn>] <tourFile>");
      System.exit(0);
    }
  } // konec metody: processArgs()


// -----------------------------------------

  public static void main(String[] args)
  { new NetTour3D(args); }

} // konec třídy: NetTour3D



