EntityBuilder.java 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package me.hammerle.supersnuvi.entity;
  2. import me.hammerle.supersnuvi.entity.components.DefaultHealth;
  3. import me.hammerle.supersnuvi.entity.components.DefaultMovement;
  4. import me.hammerle.supersnuvi.entity.components.DefaultEnergy;
  5. import me.hammerle.supersnuvi.entity.components.StoneMovement;
  6. import me.hammerle.supersnuvi.entity.components.ai.HumanController;
  7. import me.hammerle.supersnuvi.entity.components.ai.LondonerController;
  8. import me.hammerle.supersnuvi.gamelogic.Level;
  9. import me.hammerle.supersnuvi.tiles.Tile;
  10. import me.hammerle.supersnuvi.entity.components.IDeath;
  11. import me.hammerle.supersnuvi.entity.components.ItemCollector;
  12. import me.hammerle.supersnuvi.entity.components.NoHealth;
  13. import me.hammerle.supersnuvi.entity.components.ai.StoneController;
  14. import me.hammerle.supersnuvi.util.CollisionBox;
  15. public final class EntityBuilder
  16. {
  17. public static Entity buildHero(Level level, float x, float y)
  18. {
  19. Entity hero = new Entity(level, x, y, new CollisionBox(0.0f, 5.0f, 27.0f, 64.0f));
  20. hero.controller = new HumanController(hero);
  21. hero.health = new DefaultHealth(hero, (ent) -> ent.getLevel().scheduleReset(), 100.0f, null, null, null);
  22. hero.energy = new DefaultEnergy(hero, 100.0f);
  23. hero.move = new DefaultMovement(hero, 12.0f, 0.0f, 50.0f);
  24. hero.itemCollector = ItemCollector.HERO;
  25. return hero;
  26. }
  27. public static Entity buildLondoner(Level level, float x, float y, boolean evil)
  28. {
  29. Entity londoner = new Entity(level, x, y, new CollisionBox(7.0f, 19.0f, 21.0f, 64.0f));
  30. londoner.controller = new LondonerController(londoner, evil);
  31. londoner.health = new DefaultHealth(londoner, IDeath.NULL, 100.0f, null, null, null);
  32. londoner.energy = new DefaultEnergy(londoner, 100.0f);
  33. londoner.move = new DefaultMovement(londoner, 3.0f, 0.0f, 50.0f);
  34. return londoner;
  35. }
  36. public static Entity buildCrumblingStone(Level level, float x, float y)
  37. {
  38. Entity stone = new Entity(level, x, y, new CollisionBox(0.0f, 0.0f, Tile.SIZE, Tile.SIZE));
  39. stone.controller = new StoneController(stone);
  40. stone.move = new StoneMovement(stone);
  41. stone.health = new NoHealth(stone);
  42. return stone;
  43. }
  44. public static Entity fromId(int id, Level level, float x, float y)
  45. {
  46. switch(id)
  47. {
  48. case 1:
  49. return buildLondoner(level, x, y, true);
  50. case 2:
  51. return buildLondoner(level, x, y, false);
  52. }
  53. return null;
  54. }
  55. }