;;;;;;;;;;;;;;;;;;;
;;;  Logistics  ;;;
;;;;;;;;;;;;;;;;;;;

(:action LOAD-TRUCK
  :parameters   (?package ?truck ?location)
  :precondition (and (at ?truck ?location)
		     (at ?package ?location))
  :effect       (and (not (at ?package ?location))
		     (in ?package ?truck)))

(:action LOAD-AIRPLANE
  :parameters   (?package ?plane ?location)
  :precondition (and (at ?package ?location)
		     (at ?plane ?location))
  :effect       (and (not (at ?package ?location))
		     (in ?package ?plane)))

(:action UNLOAD-TRUCK
  :parameters   (?package ?truck ?location)
  :precondition (and (at ?truck ?location)
		     (in ?package ?truck))
  :effect       (and (not (in ?package ?truck))
		     (at ?package ?location)))

(:action UNLOAD-AIRPLANE
  :parameters   (?package ?plane ?location)
  :precondition (and (in ?package ?plane)
		     (at ?plane ?location))
  :effect       (and (not (in ?package ?plane))
		     (at ?package ?location)))

(:action DRIVE-TRUCK
  :parameters   (?truck ?loc-from-city ?loc-to-in-same-city)
  :precondition (and (at ?truck ?loc-from-city)
  :effect       (and (not (at ?truck ?loc-from-city))
		     (at ?truck ?loc-to-in-same-city)))

(:action FLY-AIRPLANE
  :parameters   (?plane ?airport-loc-from ?airport-loc-to)
  :precondition (and (at ?plane ?airport-loc-from))
  :effect       (and (not (at ?plane ?airport-loc-from))
		     (at ?plane ?airport-loc-to))))
