Open source Star Ruler 2 source code!

This commit is contained in:
Lucas de Vries
2018-07-17 14:15:37 +02:00
commit cc307720ff
4342 changed files with 2365070 additions and 0 deletions
+57
View File
@@ -0,0 +1,57 @@
import orders.Order;
import pickups;
tidy class RefreshOrder : Order {
Object@ target;
int moveId = -1;
RefreshOrder(Object& targ) {
@target = targ;
}
RefreshOrder(SaveFile& msg) {
Order::load(msg);
msg >> target;
msg >> moveId;
}
void save(SaveFile& msg) {
Order::save(msg);
msg << target;
msg << moveId;
}
string get_name() {
return "Refresh Supports";
}
OrderType get_type() {
return OT_Refresh;
}
bool get_hasMovement() override {
return true;
}
vec3d getMoveDestination(const Object& obj) override {
Object@ moveTo = cast<Region>(target);
if(moveTo is null)
@moveTo = target.region;
if(moveTo is null)
@moveTo = target;
return getMoveDestination(obj, moveTo);
}
OrderStatus tick(Object& obj, double time) {
Object@ moveTo = cast<Region>(target);
if(moveTo is null)
@moveTo = target.region;
if(moveTo is null)
@moveTo = target;
if(moveTo is obj.region || obj.moveTo(moveTo, moveId)) {
obj.refreshSupportsFrom(target);
return OS_COMPLETED;
}
return OS_BLOCKING;
}
};