Client Level 1
-------------------------------
Dataflow component descriptions
-------------------------------
Client
------
2.1 Event Dispatch:
Coordinates all event handling, internally to the client, and externally to
and from the server.
Inputs:
o server_event sent from the server
o client_event from the Control Unit which is an event client that
the client is notifying
o agent_move_event generated by the Collision Handler
o message_action to be sent to the server from Message Handler
o dynamic_collision_map from Dynamic Object Handler
o static_collision_map from Static Object Handler
Outputs:
o collision_notice to the Collision Handler
o resource_update to the Resources to modify the Static World
o message_event to the Message Handler
o event to the server notifying the client action
o object_update to the Dynamic Object Handler to modify the local dynamic
world
o command to the Control Unit notifying what to display
o orientation to be used by the Control Unit
o local_update_notice to the Static Object Handler to modify the local
static world
2.2 Control Unit:
Encompasses user-interface and agent AI -- wherever an intelligent decision
needs to be made.
Inputs:
o orientation from the Event Dispatch
o message_status from the Message Handler notifying what message action
to display
o local_dynamic_world to display from the Dynamic Object Handler
o local_static_world to display from the Static Object Handler
o inventory_status from Inventory to display the current inventory
o command from Event Dispatch notifying to display the generated action
by the client
o user input from I/O
Outputs:
o client_event made from I/O to be sent to EventDispatch
o message_command made from I/O to the MessageHandler
o display_status to be displayed to I/O
2.3 Message Handler
Handles all types of messages (including chatting, shaking hands, inventory
modification, etc) between the client and the server
Inputs:
o message_command produced by the Control Unit
o message_event produced by the server
Outputs:
o message_status to be sent to the Control Unit to be displayed
o message_action to be sent to the Event Dispatch to be sent to the
server
o inventory_event to be sent to the Inventory
2.4 Collision Handler
Calculates new coordinate and state of each of the collided objects
Inputs:
o dynamic_collision_map from Dynamic Object Handler
o static_collision_map from the Static Object Handler
o collision_notice produced by the Event Dispatch
Outputs:
o agent_move_event to be sent the Event Dispatch
o dynamic_object_move_event to be sent to Dynamic Object Handler to
modify the dynamic object state
2.5 Static Object Handler
Handles all the updating of the local_static_world
Inputs:
o local_update_notice from the server to modify the local_static_world
Outputs:
o static_collision_map to be used by Event Dispatch and Collision Handler
o local_static_world to be used by the Control Unit
2.6 Dynamic Object Handler
Handles all the updating of the local_dynamic_world
Inputs:
o inventory_updating from Inventory
o dynamic_object_move_event from the Collision Handler
o object_update from the Event Dispatch notifying the updating of the
dynamic objects
2.7 Dead Reckoner
This unit stands somewhat alone, and is used to interpolate and extrapolate
the positions of objects so that they don't jerk about because of hiccups
in network performance.
Inputs:
o local_dynamic_world from the Dynamic Object Handler
Outputs:
o dynamic_object_move_event to be sent to the Dynamic Object Handler
notifying the changes in the state and the coordinate of the object
2.8 Inventory
Handles all client inventory stuffs
Inputs:
o local_dynamic_world from the Dynamic Object Handler
o inventory_event from the Message Event notifying the modification
notice of the inventory
Outputs:
o inventory_updating to the Dynamic Object Handler
o inventory_status to be sent to be displayed by Dynamic Object Handler