22 lines
529 B
Rust
22 lines
529 B
Rust
|
#![warn(missing_docs)]
|
||
|
|
||
|
//! Computer-controlled ship behaviors
|
||
|
|
||
|
pub mod behavior;
|
||
|
|
||
|
use galactica_content as content;
|
||
|
use galactica_world::{ShipPhysicsHandle, World};
|
||
|
|
||
|
/// Main behavior trait. Any struct that implements this
|
||
|
/// may be used to control a ship.
|
||
|
pub trait ShipBehavior
|
||
|
where
|
||
|
Self: Send,
|
||
|
{
|
||
|
/// Update a ship's controls based on world state
|
||
|
fn update_controls(&mut self, physics: &mut World, content: &content::Content);
|
||
|
|
||
|
/// Get the ship this behavior is attached to
|
||
|
fn get_handle(&self) -> ShipPhysicsHandle;
|
||
|
}
|