Instruction.java 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package me.hammerle.snuviscript.code;
  2. public class Instruction
  3. {
  4. private final int realLine;
  5. private final byte layer;
  6. private final BasicFunction function;
  7. private InputProvider[] input;
  8. public Instruction(int realLine, byte layer, BasicFunction function, InputProvider[] input)
  9. {
  10. this.realLine = realLine;
  11. this.layer = layer;
  12. this.function = function;
  13. this.input = input;
  14. }
  15. public int getLayer()
  16. {
  17. return layer;
  18. }
  19. public InputProvider[] getParameters()
  20. {
  21. return input;
  22. }
  23. @Override
  24. public String toString()
  25. {
  26. StringBuilder sb = new StringBuilder();
  27. sb.append(realLine);
  28. for(int j = sb.length(); j < 10; j++)
  29. {
  30. sb.insert(0, "0");
  31. }
  32. sb.append(" | ");
  33. for(int j = 0; j < layer; j++)
  34. {
  35. sb.append(" ");
  36. }
  37. sb.append(function.getName());
  38. sb.append("(");
  39. for(InputProvider in : input)
  40. {
  41. sb.append(in);
  42. sb.append(", ");
  43. }
  44. if(input.length > 0)
  45. {
  46. sb.delete(sb.length() - 2, sb.length());
  47. }
  48. sb.append(")");
  49. return sb.toString();
  50. }
  51. public void execute(Script sc)
  52. {
  53. function.execute(sc, input);
  54. }
  55. }