// Test applet

import java.lang.*;
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

public class testlet extends Applet
    implements Runnable, MouseListener  {

 public boolean awake=true;
 public boolean connected=false;
 public boolean graphicsLoaded=false;

 protected int workwidth;
 protected int workheight;
 protected Image workspace;
 protected Graphics offscreen;
 protected void makespace(boolean big) {
  if (big) {
   workwidth=16+getSize().width;
   workheight=16+getSize().height;
  }
  else {
   workwidth=getSize().width;
   workheight=getSize().height;
  }
  workspace = createImage(workwidth,workheight);
  offscreen = workspace.getGraphics();
 }

 Thread mainThread;

 public void init() {
  makespace(false);
  mainThread=new Thread(this);
  mainThread.start();
  this.addMouseListener(this);
 } // end of init

 public void paint(Graphics g) {
  if (getSize().width>workwidth||getSize().height>workheight) {
   makespace(true);
   refresh(PANEALL);
  }
  g.drawImage(workspace,0,0,null);
 } // end of paint
 public final synchronized void update (Graphics g) {
  if (getSize().width>workwidth||getSize().height>workheight) {
   makespace(true);
   refresh(PANEALL);
  }
  g.drawImage(workspace,0,0,null);
 } // end of update

 protected static final byte PANEALL=127;
 protected static final byte PANEMAP=1;
 protected static final byte PANEMESS=2;
 protected static final byte PANESTAT=4;
 protected static final byte PANEHELP=8;
 protected static final byte PANEMENU=16;
 protected static final byte PANETORSOS=32;
 protected void refresh(byte panes) {
  if(graphicsLoaded) {
   offscreen.drawImage(deedlit,0,0,null);
  }
 }

 Image deedlit;
 boolean snooze=false;

 public void run() {
  while(awake) {
   snooze=false;
   connected=true;
//   deedlit = getImage(getCodeBase(), "deedlit.jpg");
   worldgen theWorld = new worldgen();
   deedlit = createImage(512,512);
   theWorld.makeWorld();
   theWorld.drawMap(deedlit.getGraphics());
   graphicsLoaded = true;
   while(awake) {
    if(!snooze) {
     theWorld.makeWorld();
     theWorld.drawMap(deedlit.getGraphics());
     refresh(PANEALL); repaint();
    }
    try {Thread.sleep((snooze)?99999:99);}
    catch (InterruptedException e) { }
   }
  }
 } // end of run

 public void mouseClicked(MouseEvent e) {
 }

 public void mousePressed(MouseEvent e) {
  snooze = !snooze;
  if(mainThread != null)mainThread.interrupt();
 }
 public void mouseReleased(MouseEvent e) { }
 public void mouseEntered(MouseEvent e) { }
 public void mouseExited(MouseEvent e) { }

// public void start() {
// } // end of start
 public void stop() {
  snooze = true;
 } // end of stop
 public void destroy() {
  awake=false;
 } // end of destroy

} // end of test applet

// here endeth the code
