/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package de.stealmycode.beehive.model.map; import de.stealmycode.beehive.Beehive; import de.stealmycode.beehive.model.world.Field; import de.stealmycode.beehive.model.world.FieldProperty; import de.stealmycode.beehive.model.world.Flower; import de.stealmycode.beehive.model.world.IDrawable; import de.stealmycode.beehive.utils.Direction; import de.stealmycode.beehive.utils.Position; import java.util.ArrayList; import java.util.List; import java.util.Random; /** * * @author fate */ public class Map{ private List<IDrawable> drawables = null; public Map() { drawables = new ArrayList<IDrawable>(); } public void addDrawable(IDrawable drawable) { drawables.add(drawable); } public List<IDrawable> getDrawables() { return drawables; } public void addField(final Field field) { // final int iID = chooseImageID(field.getProperties()); List<List<Integer>> whitelistList = new ArrayList<>(); List<Integer> spriteIDs = null; Flower flower = null; for(FieldProperty fp : field.getProperties()) { whitelistList.add(Beehive.config.getWhitelistFor(fp.getName())); if (fp.getName().equals("flyable")) { drawables.add(new Flower(field.getPosition())); return ; } } if (whitelistList.size() > 0) { spriteIDs = new ArrayList<>(whitelistList.get(0)); // Beehive.graphicsConfig.getSpriteIDs(); whitelistList.remove(0); for(List<Integer> list : whitelistList) { spriteIDs.retainAll(list); } } if (spriteIDs != null && spriteIDs.size() > 0) { final Random r = new Random(); final int spriteID = (int) spriteIDs.get( (spriteIDs.size() == 1 ? 0 : r.nextInt(spriteIDs.size()-1)) ); drawables.add(new IDrawable() { private int sID = spriteID; // private Direction direction = Direction.NORTH; private Position position = new Position(field.getPosition().getX(), field.getPosition().getY()); @Override public int getImageID() { return sID; } @Override public Direction getDirection() { return Direction.NORTH; } @Override public Position getPosition() { return position; } }); // System.out.println("LOL"); } } }