|
|
#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);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);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
|