public StateRenderLayer getStateRenderLayer() {
    StateRenderLayer rl = new StateRenderLayer();
    rl.addStaticPainter(new WallPainter());
    rl.addObjectClassPainter(CLASSLOCATION, new LocationPainter());
    rl.addObjectClassPainter(CLASSAGENT, new AgentPainter());

    return rl;
  }
  public static StateRenderLayer getStateRenderLayer(String... agentImagePath) {

    StateRenderLayer v = new StateRenderLayer();

    v.addObjectClassPainter(Sokoban2Domain.CLASSROOM, new RoomPainter());
    v.addObjectClassPainter(Sokoban2Domain.CLASSDOOR, new DoorPainter());
    if (agentImagePath.length == 0) {
      v.addObjectClassPainter(Sokoban2Domain.CLASSAGENT, new AgentPainter());
    } else {
      v.addObjectClassPainter(
          Sokoban2Domain.CLASSAGENT, new AgentPainterWithImages(agentImagePath[0]));
    }
    v.addObjectClassPainter(Sokoban2Domain.CLASSBLOCK, new BlockPainter(agentImagePath[0]));

    return v;
  }
 protected Visualizer getTrajectoryRenderLayerBase() {
   StateRenderLayer srl = new StateRenderLayer();
   srl.addStaticPainter(new PMapPainter(this.puddleMap));
   Visualizer v = new Visualizer(srl);
   return v;
 }