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