public void load(AssetManager assets, MapHandler assign, MapLayers map, String mapName) {
		for (EntityInfo e : entities) {
			Entity entity = null;
			switch (e.type) {
			case Sign:
				entity = new Sign(e.name, new Script((Script) assets.get("res/scripts/Sign.ps")));
				break;
			case NPC:
				if (e.script == null)
					entity = new NPC(e.name, 
							new Spriteset((Texture) assets.get("res/entity/sprites/" + e.spriteset + ".png")), null);
				else
					entity = new NPC(e.name, 
							new Spriteset((Texture) assets.get("res/entity/sprites/" + e.spriteset + ".png")),
							new Script((Script) assets.get("res/maps/" + mapName + "/" + e.script + ".ps")));
				((Walkable) entity).face(e.facing);
				break;
			case Trainer:
				Party party = new Party();
				for (String s : e.party) {
					PokeInstance p = new PokeInstance(Pokemon.getPokemon(s.split(" ")[0]), Integer.parseInt(s.split(" ")[1]));
					party.add(p);
				}
				
				entity = new Trainer(e.name, new Spriteset((Texture) assets.get("res/entity/sprites/" + e.spriteset + ".png")), null, party);
				((Walkable) entity).face(e.facing);
				break;
			case Object:
				if (e.script == null)
					entity = new Stationary(e.name,
							new Spriteset((Texture) assets.get("res/entity/sprites/" + e.spriteset + ".png")), null);
				else
					entity = new Stationary(e.name,
							new Spriteset((Texture) assets.get("res/entity/sprites/" + e.spriteset + ".png")),
							new Script((Script) assets.get("res/maps/" + mapName + "/" + e.script + ".ps")));
				break;
			default:
				break;
			}
			if (entity == null)
				System.out.println("Problem");
			entity.setCoords(e.x, e.y, e.layer);
			entity.addStrings(e.strings);
			entity.hidden = e.hidden;
			entity.place(assign);
			map.get(e.layer).getObjects().add(entity);
		}
	}