
/**
 * Very simple Model class for Buttons tutorial.
 */

import uchicago.src.sim.engine.SimpleModel;
import uchicago.src.sim.engine.SimInit;
import uchicago.src.sim.gui.DisplaySurface;
import uchicago.src.sim.gui.Object2DDisplay;
import uchicago.src.sim.space.Object2DTorus;
import java.awt.*;

public class TutModel extends SimpleModel {
  private DisplaySurface dsurf;
  private int spaceSize = 50;
  private int buttons = 500;

  // Overrides of SimpleModel
  public void setup() {
    super.setup();

    if (dsurf != null) dsurf.dispose();
    dsurf = new DisplaySurface(this, "Buttons Display");
    super.registerDisplaySurface("Buttons Display", dsurf);
  }
  
  public void buildModel() {
    Object2DTorus space = new Object2DTorus(spaceSize, spaceSize);
    for (int i = 0; i<buttons; i++) {
      int x = getNextIntFromTo(0, spaceSize - 1);
      int y = getNextIntFromTo(0, spaceSize - 1);
      Color color =  new Color(
        getNextIntFromTo(0,255),
        getNextIntFromTo(0,255),
        getNextIntFromTo(0,255)
      );

      TutAgent btn = new TutAgent(space, i);
      btn.setXY(x,y);
      btn.setColor(color);
      agentList.add(btn);
    }


    Object2DDisplay display = new Object2DDisplay(space);
    dsurf.addDisplayable(display, "Buttons Space");

    dsurf.display();
  }

  public static void main(String[] args) {
    SimInit init = new SimInit();
    init.loadModel(new TutModel(), null, false);
  }
}
