Open source Star Ruler 2 source code!
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
import orders.Order;
|
||||
|
||||
tidy class WaitOrder : Order {
|
||||
Object@ waitTarget;
|
||||
bool moveTo = false;
|
||||
int moveId = -1;
|
||||
|
||||
WaitOrder(Object@ waitFor, bool moveTo) {
|
||||
@waitTarget = waitFor;
|
||||
this.moveTo = moveTo;
|
||||
}
|
||||
|
||||
WaitOrder(SaveFile& msg) {
|
||||
Order::load(msg);
|
||||
msg >> waitTarget;
|
||||
msg >> moveTo;
|
||||
msg >> moveId;
|
||||
}
|
||||
|
||||
void save(SaveFile& msg) {
|
||||
Order::save(msg);
|
||||
msg << waitTarget;
|
||||
msg << moveTo;
|
||||
msg << moveId;
|
||||
}
|
||||
|
||||
OrderType get_type() {
|
||||
return OT_Wait;
|
||||
}
|
||||
|
||||
string get_name() {
|
||||
return "Waiting";
|
||||
}
|
||||
|
||||
bool get_hasMovement() {
|
||||
return waitTarget !is null && waitTarget.valid;
|
||||
}
|
||||
|
||||
vec3d getMoveDestination(const Object& obj) override {
|
||||
if(waitTarget is null || !waitTarget.valid)
|
||||
return vec3d();
|
||||
return waitTarget.position;
|
||||
}
|
||||
|
||||
OrderStatus tick(Object& obj, double time) {
|
||||
if(moveTo && waitTarget !is null && waitTarget.valid)
|
||||
obj.moveTo(waitTarget, moveId, 0.0);
|
||||
return OS_BLOCKING;
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user