pub enum OrchestratorToPlanet {
Sunray(Sunray),
Asteroid(Asteroid),
StartPlanetAI,
StopPlanetAI,
KillPlanet,
InternalStateRequest,
IncomingExplorerRequest {
explorer_id: ID,
new_sender: Sender<PlanetToExplorer>,
},
OutgoingExplorerRequest {
explorer_id: ID,
},
}Expand description
This enum describes all possible messages from the Orchestrator to a Planet
Variants§
Sunray(Sunray)
This variant is used to send a Sunray to a planet
Expected Response: PlanetToOrchestrator::SunrayAck
Use Case: sending a Sunray to charge EnergyCell
Asteroid(Asteroid)
This variant is used to send an Asteroid to a planet
Expected Response: PlanetToOrchestrator::AsteroidAck
StartPlanetAI
This variant is used to start a Planet AI and restart it if it is stopped
Expected Response: PlanetToOrchestrator::StartPlanetAIResult
Use Case: Starting the Planet AI at game start or restart the AI in case it is stopped
StopPlanetAI
This variant is used to pause the planet Ai
Expected Response: PlanetToOrchestrator::StopPlanetAIResult
Use Case: Freezing Planet ability to respond to every message,
a planet in this state will only answer with PlanetToOrchestrator::Stopped
KillPlanet
This variant is used to kill (or destroy) the planet
Expected Response: PlanetToOrchestrator::KillPlanetResult
Use Case: Instantly kill a Planet
InternalStateRequest
This variant is used to obtain a Planet Internal State
Expected Response: PlanetToOrchestrator::InternalStateResponse
Use Case: The GUI can use this message to obtain the relevant info of the planet to be shown
IncomingExplorerRequest
This variant is used to advertise an incoming explorer to a planet
Expected Response: PlanetToOrchestrator::IncomingExplorerResponse
Use Case: Moving an explorer to this planet
Fields
new_sender: Sender<PlanetToExplorer>The new sender half of the crossbeam_channel for the planet to communicate with the incoming explorer
OutgoingExplorerRequest
This variant is used to advertise an outgoing explorer to a planet
Expected Response: PlanetToOrchestrator::OutgoingExplorerResponse
Use Case: Asking the planet to delete the Sender to the outgoing explorer
Implementations§
Source§impl OrchestratorToPlanet
impl OrchestratorToPlanet
Sourcepub fn is_sunray(&self) -> bool
pub fn is_sunray(&self) -> bool
Returns true if this is a OrchestratorToPlanet::Sunray, otherwise false
Sourcepub fn as_sunray_mut(&mut self) -> Option<&mut Sunray>
pub fn as_sunray_mut(&mut self) -> Option<&mut Sunray>
Optionally returns mutable references to the inner fields if this is a OrchestratorToPlanet::Sunray, otherwise None
Sourcepub fn as_sunray(&self) -> Option<&Sunray>
pub fn as_sunray(&self) -> Option<&Sunray>
Optionally returns references to the inner fields if this is a OrchestratorToPlanet::Sunray, otherwise None
Sourcepub fn into_sunray(self) -> Result<Sunray, Self>
pub fn into_sunray(self) -> Result<Sunray, Self>
Returns the inner fields if this is a OrchestratorToPlanet::Sunray, otherwise returns back the enum in the Err case of the result
Sourcepub fn is_asteroid(&self) -> bool
pub fn is_asteroid(&self) -> bool
Returns true if this is a OrchestratorToPlanet::Asteroid, otherwise false
Sourcepub fn as_asteroid_mut(&mut self) -> Option<&mut Asteroid>
pub fn as_asteroid_mut(&mut self) -> Option<&mut Asteroid>
Optionally returns mutable references to the inner fields if this is a OrchestratorToPlanet::Asteroid, otherwise None
Sourcepub fn as_asteroid(&self) -> Option<&Asteroid>
pub fn as_asteroid(&self) -> Option<&Asteroid>
Optionally returns references to the inner fields if this is a OrchestratorToPlanet::Asteroid, otherwise None
Sourcepub fn into_asteroid(self) -> Result<Asteroid, Self>
pub fn into_asteroid(self) -> Result<Asteroid, Self>
Returns the inner fields if this is a OrchestratorToPlanet::Asteroid, otherwise returns back the enum in the Err case of the result
Sourcepub fn is_start_planet_ai(&self) -> bool
pub fn is_start_planet_ai(&self) -> bool
Returns true if this is a OrchestratorToPlanet::StartPlanetAI, otherwise false
Sourcepub fn is_stop_planet_ai(&self) -> bool
pub fn is_stop_planet_ai(&self) -> bool
Returns true if this is a OrchestratorToPlanet::StopPlanetAI, otherwise false
Sourcepub fn is_kill_planet(&self) -> bool
pub fn is_kill_planet(&self) -> bool
Returns true if this is a OrchestratorToPlanet::KillPlanet, otherwise false
Sourcepub fn is_internal_state_request(&self) -> bool
pub fn is_internal_state_request(&self) -> bool
Returns true if this is a OrchestratorToPlanet::InternalStateRequest, otherwise false
Sourcepub fn is_incoming_explorer_request(&self) -> bool
pub fn is_incoming_explorer_request(&self) -> bool
Returns true if this is a OrchestratorToPlanet::IncomingExplorerRequest, otherwise false
Sourcepub fn as_incoming_explorer_request_mut(
&mut self,
) -> Option<(&mut ID, &mut Sender<PlanetToExplorer>)>
pub fn as_incoming_explorer_request_mut( &mut self, ) -> Option<(&mut ID, &mut Sender<PlanetToExplorer>)>
Optionally returns mutable references to the inner fields if this is a OrchestratorToPlanet::IncomingExplorerRequest, otherwise None
Sourcepub fn as_incoming_explorer_request(
&self,
) -> Option<(&ID, &Sender<PlanetToExplorer>)>
pub fn as_incoming_explorer_request( &self, ) -> Option<(&ID, &Sender<PlanetToExplorer>)>
Optionally returns references to the inner fields if this is a OrchestratorToPlanet::IncomingExplorerRequest, otherwise None
Sourcepub fn into_incoming_explorer_request(
self,
) -> Result<(ID, Sender<PlanetToExplorer>), Self>
pub fn into_incoming_explorer_request( self, ) -> Result<(ID, Sender<PlanetToExplorer>), Self>
Returns the inner fields if this is a OrchestratorToPlanet::IncomingExplorerRequest, otherwise returns back the enum in the Err case of the result
Sourcepub fn is_outgoing_explorer_request(&self) -> bool
pub fn is_outgoing_explorer_request(&self) -> bool
Returns true if this is a OrchestratorToPlanet::OutgoingExplorerRequest, otherwise false
Sourcepub fn as_outgoing_explorer_request_mut(&mut self) -> Option<&mut ID>
pub fn as_outgoing_explorer_request_mut(&mut self) -> Option<&mut ID>
Optionally returns mutable references to the inner fields if this is a OrchestratorToPlanet::OutgoingExplorerRequest, otherwise None
Sourcepub fn as_outgoing_explorer_request(&self) -> Option<&ID>
pub fn as_outgoing_explorer_request(&self) -> Option<&ID>
Optionally returns references to the inner fields if this is a OrchestratorToPlanet::OutgoingExplorerRequest, otherwise None
Sourcepub fn into_outgoing_explorer_request(self) -> Result<ID, Self>
pub fn into_outgoing_explorer_request(self) -> Result<ID, Self>
Returns the inner fields if this is a OrchestratorToPlanet::OutgoingExplorerRequest, otherwise returns back the enum in the Err case of the result