(define (domain logisticsPlus) (:requirements :typing) (:types location locatable - object truck plane packet - locatable ) (:predicates (at ?obj - locatable ?loc - location) (in ?p - packet ?v - locatable) (road ?x ?y - depot) (flightpath ?x ?y - location) (empty ?v - locatable) ) (:action LOAD-TRUCK :parameters (?p - packet ?v - truck ?l - location) :precondition (and (at ?v ?l) (at ?p ?l)) :effect (and (not (at ?p ?l)) (in ?p ?v))) (:action UNLOAD-TRUCK :parameters (?p - packet ?v - truck ?l - location) :precondition (and (at ?v ?l) (in ?p ?v)) :effect (and (not (in ?p ?v)) (at ?p ?l) (empty ?v) ) ) (:action LOAD-PLANE :parameters (?p - packet ?v - plane ?l - location) :precondition (and (at ?v ?l) (at ?p ?l)) :effect (and (not (at ?p ?l)) (in ?p ?v))) (:action UNLOAD-PLANE :parameters (?p - packet ?v - plane ?l - location) :precondition (and (at ?v ?l) (in ?p ?v)) :effect (and (not (in ?p ?v)) (at ?p ?l) (empty ?v))) (:action DRIVE :parameters (?t - truck ?l1 - location ?l2 - location) :precondition (and (at ?t ?l1) (road ?l1 ?l2)) :effect (and (not (at ?t ?l1)) (at ?t ?l2))) (:action FLY :parameters (?p - plane ?l1 - location ?l2 - location) :precondition (and (at ?p ?l1) (flightpath ?l1 ?l2)) :effect (and (not (at ?p ?l1)) (at ?p ?l2))) )