PressureTile.java 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package me.hammerle.supersnuvi.tiles;
  2. import me.hammerle.supersnuvi.entity.Entity;
  3. import me.hammerle.supersnuvi.gamelogic.ILevel;
  4. import me.hammerle.supersnuvi.util.CollisionBox;
  5. import me.hammerle.supersnuvi.util.CollisionObject;
  6. import me.hammerle.supersnuvi.util.Face;
  7. public class PressureTile extends BaseTile
  8. {
  9. public PressureTile(float tMinX, float tMinY, float tMaxX, float tMaxY)
  10. {
  11. super(tMinX, tMinY, tMaxX, tMaxY);
  12. super.setCollisionBox(CollisionBox.createScaledTileBox(0.09375f, 0.90625f, 0.90625f, 1.0f));
  13. super.setMovementBox(CollisionObject.NULL_BOX);
  14. }
  15. @Override
  16. public float getWidth()
  17. {
  18. return Tile.SIZE * 0.8125f;
  19. }
  20. @Override
  21. public float getOffsetX()
  22. {
  23. return Tile.SIZE * 0.09375f;
  24. }
  25. @Override
  26. public float getHeight()
  27. {
  28. return Tile.SIZE * 0.09375f;
  29. }
  30. @Override
  31. public float getOffsetY()
  32. {
  33. return Tile.SIZE * 0.90625f;
  34. }
  35. @Override
  36. public boolean shouldAiUseCollisionBox(int x, int y, ILevel l)
  37. {
  38. return false;
  39. }
  40. @Override
  41. public void onEntityCollide(Entity ent, int x, int y, Face face, ILevel l)
  42. {
  43. if(face == Face.UP)
  44. {
  45. l.callEvent("auto_tile_interact", (sc) ->
  46. {
  47. sc.setVar("tile_x", (double) x);
  48. sc.setVar("tile_y", (double) y);
  49. sc.setVar("entity", ent);
  50. }, null);
  51. }
  52. }
  53. }