diff --git a/include/builtins_new.h b/include/builtins_new.h index 516ba4c..fca147c 100644 --- a/include/builtins_new.h +++ b/include/builtins_new.h @@ -1,8 +1,12 @@ +#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 index); double sensor(struct MindustryObject obj, char* prop); @@ -11,9 +15,11 @@ 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); @@ -25,7 +31,9 @@ void drawlinepoly(double x, double y, double sides, double radius, double rotati 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); @@ -45,3 +53,27 @@ 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); 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