51 lines
921 B
ActionScript
51 lines
921 B
ActionScript
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;
|
|
}
|
|
};
|