You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
3.0 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. #ifndef MINDUSTRY_H
  2. #define MINDUSTRY_H
  3. struct MindustryObject {};
  4. // builtin instructions
  5. void print(char* s);
  6. void printd(double s);
  7. void printflush(struct MindustryObject message);
  8. struct MindustryObject radar(struct MindustryObject obj, char* target1, char* target2,
  9. char* target3, char* sort, double order);
  10. double sensor(struct MindustryObject obj, char* prop);
  11. void enable(struct MindustryObject obj, double enabled);
  12. void configure(struct MindustryObject obj, char* configure);
  13. void setcolor(struct MindustryObject obj, double r, double g, double b);
  14. void shoot(struct MindustryObject obj, double x, double y, double shoot);
  15. void shootp(struct MindustryObject obj, double unit, double shoot);
  16. struct MindustryObject get_link(double index);
  17. double read(struct MindustryObject cell, double index);
  18. void write(double val, struct MindustryObject cell, double index);
  19. void drawclear(double r, double g, double b);
  20. void drawcolor(double r, double g, double b, double a);
  21. void drawstroke(double width);
  22. void drawline(double x1, double y1, double x2, double y2);
  23. void drawrect(double x, double y, double w, double h);
  24. void drawlinerect(double x, double y, double w, double h);
  25. void drawpoly(double x, double y, double sides, double radius, double rotation);
  26. void drawlinepoly(double x, double y, double sides, double radius, double rotation);
  27. void drawtriangle(double x1, double y1, double x2, double y2, double x3, double y3);
  28. void drawimage(double x, double y, char* image, double size, double rotation);
  29. void drawflush(struct MindustryObject display);
  30. void end();
  31. // unit commands (not complete; don't know how to return multiple values)
  32. void ubind(char* type);
  33. void unit_move(double x, double y);
  34. void unit_idle();
  35. void unit_stop();
  36. void unit_approach(double x, double y, double radius);
  37. void unit_boost(double enable);
  38. void unit_pathfind();
  39. void unit_target(double x, double y, double shoot);
  40. void unit_targetp(double unit, double shoot);
  41. void unit_item_drop(struct MindustryObject obj, double amount);
  42. void unit_item_take(struct MindustryObject obj, char* item, double amount);
  43. void unit_pay_drop();
  44. void unit_pay_take(double takeUnits);
  45. void unit_mine(double x, double y);
  46. void unit_flag(double value);
  47. void unit_build(double x, double y, char* block, double rotation, char* configure);
  48. double unit_within(double x, double y, double radius);
  49. struct MindustryObject unit_radar(char* target1, char* target2, char* target3, char* sort,
  50. double order);
  51. // builtin binary operators
  52. double pow(double x, double y);
  53. double max(double x, double y);
  54. double min(double x, double y);
  55. double angle(double x, double y);
  56. double len(double x, double y);
  57. double land(double x, double y);
  58. double idiv(double x, double y);
  59. double strictEqual(void* x, void* y);
  60. double noise(double x, double y);
  61. // builtin unary operators
  62. double abs(double x);
  63. double log(double x);
  64. double log10(double x);
  65. double sin(double x);
  66. double cos(double x);
  67. double tan(double x);
  68. double floor(double x);
  69. double ceil(double x);
  70. double sqrt(double x);
  71. double rand(double x);
  72. #endif