#include <TheShip.h>
Inheritance diagram for TheShip:
Public Member Functions | |
TheShip (SceneManager *SceneMgr) | |
On cree un Node pour le Ship, et un plan correspondant au plancher. | |
virtual | ~TheShip () |
Destructeur. | |
long | getTypeID (void) const |
Renvoie un ID permettant d'identifier l'objet UserDefined de type "The Ship". | |
void | addToScene (Vector3 Position) |
Fait apparaitre le Vaisseau. | |
bool | frameStarted (const FrameEvent &evt) |
Gestion du vaisseau. | |
void | loadInitialSituation () |
Charge la situation initiale. | |
ShipLevel * | getShipLevel (int Number) |
Renvoie un pointer sur un Level Object. | |
Real | detectGround (Vector3 Origin) |
On determine la distance verticale entre la camera (Origin) et le plan "Floor". | |
Real | detectFloorAltitude (Vector3 Origin) |
Cette fonctin renvoie l'altitude du plan "Floor" le plus proche. | |
void | detectRoom (SceneNode *Origin) |
On détermine dans quelle Room se trouve le point fourni en paramètre. | |
void | createFloor (int Level) |
Cree un plan (pour servir de plancher au joueurs et NPC). | |
void | setFloorLevel (int Level) |
On fait descendre l'ascenseur (le floor). | |
Real | getFloorYPosition () |
Renvoie la position en Y du Floor. | |
bool | openDoor (Door *Porte) |
On envoie l'ordre au Level d'ouvrir une porte. | |
bool | openDoor (String DoorName) |
On envoie l'ordre au Level d'ouvrir une porte. | |
SceneNode * | findNextWaypointTo (SceneNode *FromNode, SceneNode *ToNode) |
Détermination du meilleur itinéraire. | |
SceneNode * | getClosestWaypoint (Vector3 CurrentPos) |
Renvoie le Waypoint le plus proche de la position courante. | |
bool | doClosestWaypointAction (Vector3 CurrentPos) |
Cette fonctin effectue l'action associée au Waypoint le plus proche de la position fournie. | |
Room * | getActiveRoom () |
Renvoie la pièce où se trouve la caméra. | |
void | showActiveRoom (SceneNode *Origin) |
Affiche la pièce où se trouve la caméra . | |
void | showActiveRoom (String RoomName) |
Affiche la pièce où se trouve la caméra. | |
Room * | getRoom (String RoomName) |
Retrouve une Room par son nom. Renvoie NULL si la piece n'existe pas. | |
String | getStatus () |
Renvoie le status du vaisseau sous forme de chaine XML. | |
short | getAlertLevel () |
Renvoie le niveau d'alert général sur le vaisseau (0 = normal). | |
void | setRedLight (bool ON) |
Les lumières principales de toutes les pieces du vaisseau passent au rouge. | |
void | setAlertLevel (short alert) |
Fixe le niveau d'alerte général sur le vaisseau. (0=normal). | |
int | getAmbiantTemperature () |
Renvoie la Temperature Ambiante dans le vaisseau (Kelvin). | |
Real | getCurRadiation () |
Renvoie le taux de radiation actuel à l'interieur du vaisseau (après filtrage coque). | |
Real | getMaxRadiation () |
Renvoie le taux de radiation MAX à l'interieur du vaisseau (depuis le début de la partie). | |
void | loadObject () |
Charge les paramètres initiaux du vaisseau. | |
void | updateElements_Day () |
Met à jour les éléments qui consomment sur une base quotidienne. | |
void | updateElements_Hour (Real ElapsedHours) |
Met à jour les éléments qui consomment sur une base continue. | |
void | addPassenger () |
Ajoute un ShipElement consommateur de resources dans le vaisseau. | |
void | initOISSystem () |
Initialize the OIS library (for Joystick input). | |
void | fly (Real ElapsedHours) |
Le vaisseau avance. | |
void | _setPosition (Real X, Real Y, Real Z) |
Positionne le Ship. | |
Vector3 | _getPosition () |
Renvoie la position du Ship. | |
void | _showWPnetwork () |
Fonction de debug: affiche le réseau de Waypoints. | |
Vector3 | _getCamPosition (int Level) |
Renvoie la position initiale d la camera dans ce level (debug). | |
void | _showAllLightPosition () |
Debug: affiche la position de toutes le lumières. | |
Static Public Member Functions | |
static TheShip * | getSingletonPtr (void) |
Override the Singleton Class method. | |
Public Attributes | |
ShipElement * | mHydProdSystem1 |
Fabrication de plasma a partir de l'Hydrogène de l'espace. | |
ShipElement * | mHydProdSystem2 |
Fabrication de plasma a partir de l'Hydrogène de l'espace. | |
ShipElement * | mEnergyProdSystem |
Système de production d'Energie à partir du Plasma. | |
ShipElement * | mAirProdSystem |
Système de fabrication d'air respirable. | |
ShipElement * | mFoodProdSystem |
Système de fabrication de provisions alimentaire. | |
ShipElement * | mWaterProdSystem |
Système de fabrication de d'eau douce. | |
ShipElement * | mHybernationSystem |
TODO. | |
ShipElement * | mAntigravitySystem |
TODO. | |
ShipEngine * | mEngine1 |
Produit de la poussée à partir de plasma. | |
ShipEngine * | mEngine2 |
Produit de la poussée à partir de plasma. | |
ShipElement * | mReactor |
Utile pour transformer la poussée en accélation ??? | |
Real | mCurRadiation |
Radiation Ambiante (en rad/jour). | |
Real | mMaxRadiation |
Radiation Ambiante Max (en rad/jour). | |
Real | mExternalTemp |
TODO: Température Exterieure. | |
TextList * | mAlertBook |
Journal des Alertes. | |
TextList * | mLogBook |
Journal de Bord. | |
TextList * | mCrewBook |
Journal d'équipage. | |
TextList * | mMissionBook |
Journal des missions. | |
ShipLight * | mSpot1 |
Les projecteurs exterieurs. | |
ShipLight * | mSpot2 |
Les projecteurs exterieurs. | |
Protected Member Functions | |
OIS::JoyStick * | getJoyStick () |
Renvoie un pointeur sur le Joystick. | |
void | readJoyStick (Real elapsedTime) |
Gestion des mouvements du joystick. | |
bool | buttonPressed (const OIS::JoyStickEvent &e, int buttonId) |
Callback OIS: Cette fonction est appelée quand un bouton du Joystick est pressé. | |
bool | buttonReleased (const OIS::JoyStickEvent &e, int buttonId) |
Callback OIS: Cette fonction est appelée quand un bouton du Joystick est relaché. | |
bool | axisMoved (const OIS::JoyStickEvent &e, int AxisId) |
Callback OIS: Cette fonction est appelée quand le Joystick est bougé. | |
bool | povMoved (const OIS::JoyStickEvent &e, int PovId) |
Callback OIS: Cette fonction est appelée quand le TopHat est bougé. | |
Protected Attributes | |
OIS::JoyStick * | mJoyStick |
bool | mJoyDisabled |
SceneNode * | mFloorNode |
Le niveau du sol pour la camera. | |
ShipLevel * | mLevels [MAX_LEVELS] |
Le vaisseau comporte MAX_LEVELS étages. | |
Room * | mActiveRoom |
Piece dans laquelle se trouve la camera. | |
WaypointNetwork * | mShipNetwork |
Le réseau de waypoints du vaisseau. | |
ParticleSystem * | mSpaceDust |
Source de particules (SpaceDust). | |
SceneNode * | mParticleNode |
Node pour la sources des particules. | |
Real | mDelayDoorClosed |
Delai restant avant l'ordre de fermeture des portes. | |
short | mAlertLevel |
Niveaux d'alerte. 0=normal. 2=collision 4=captain 5=evacuation Degre d'alerte. | |
int | mAmbiantTemperature |
Temperature ambiante dans le vaisseau (Kelvin). | |
bool | mPiloting |
VRAI si le joystick est actif. | |
ShipElement * | mPassenger1 |
ShipElement * | mPassenger2 |
|
On cree un Node pour le Ship, et un plan correspondant au plancher. On cree les differents niveaux qui composent le ship TODO: A ajuster. Produit 5 moles par heure (=120 par jour) 1 mole = 22 litres de gaz Produit 24 MW par jour Air Prod = 10 m3/jour/pers (reserve=21 jours à 8) Water Prod= 5 litre/jour/pers (reserve=14 jours à 8) Food Prod = 3 repas/jour/pers (reserve= 4 mois à 8) Hibernator = ne produit rien (pas de reserve) Antigrav = ne produit rien (pas de reserve) Engine 1 et 2 = produisent de la poussée On atteint le max en 1 unité de temps Système de Turbines = produit de l'accélération |
|
Destructeur.
|
|
Renvoie la position initiale d la camera dans ce level (debug).
|
|
Renvoie la position du Ship.
|
|
Positionne le Ship.
|
|
Debug: affiche la position de toutes le lumières.
|
|
Fonction de debug: affiche le réseau de Waypoints.
|
|
Ajoute un ShipElement consommateur de resources dans le vaisseau. Un passager ne produit rien, mais il consomme:
|
|
Fait apparaitre le Vaisseau.
|
|
Callback OIS: Cette fonction est appelée quand le Joystick est bougé. Inactif, car on n'est pas en mode bufferisé) |
|
Callback OIS: Cette fonction est appelée quand un bouton du Joystick est pressé. button 0 = tir button 3 = change weapon TODO : configuration des boutons |
|
Callback OIS: Cette fonction est appelée quand un bouton du Joystick est relaché. Inactif, car on n'est pas en mode bufferisé) |
|
Cree un plan (pour servir de plancher au joueurs et NPC).
|
|
Cette fonctin renvoie l'altitude du plan "Floor" le plus proche.
|
|
On determine la distance verticale entre la camera (Origin) et le plan "Floor".
|
|
On détermine dans quelle Room se trouve le point fourni en paramètre. La fonction ne renvoie rien, mais met à jour mActiveRoom.
|
|
Cette fonctin effectue l'action associée au Waypoint le plus proche de la position fournie.
|
|
Détermination du meilleur itinéraire.
|
|
Le vaisseau avance. On applique une translation du vecteur vitesse mSpeedVector (calculé précédement) au vaisseau (ou plus exactement à la galaxie), et on active un flux de particules donnant une illusion de vitesse. TODO : appliquer une fraction du vecteur vitesse en fonction du framerate. (fait en amont?)
|
|
Gestion du vaisseau.
|
|
Renvoie la pièce où se trouve la caméra.
|
|
Renvoie le niveau d'alert général sur le vaisseau (0 = normal).
|
|
Renvoie la Temperature Ambiante dans le vaisseau (Kelvin).
|
|
Renvoie le Waypoint le plus proche de la position courante.
|
|
Renvoie le taux de radiation actuel à l'interieur du vaisseau (après filtrage coque).
|
|
Renvoie la position en Y du Floor.
|
|
Renvoie un pointeur sur le Joystick.
|
|
Renvoie le taux de radiation MAX à l'interieur du vaisseau (depuis le début de la partie).
|
|
Retrouve une Room par son nom. Renvoie NULL si la piece n'existe pas.
|
|
Renvoie un pointer sur un Level Object.
|
|
Override the Singleton Class method.
|
|
Renvoie le status du vaisseau sous forme de chaine XML. TODO: gerer le status des autres levels |
|
Renvoie un ID permettant d'identifier l'objet UserDefined de type "The Ship".
|
|
Initialize the OIS library (for Joystick input).
|
|
Charge la situation initiale.
|
|
Charge les paramètres initiaux du vaisseau. TODO: Charger aussi SpaceShip:loadObject |
|
On envoie l'ordre au Level d'ouvrir une porte. Cette fonction n'étant pas utilisée par le player, mais plus par les NPC, on ne fait pas apparaitre toutes les sections de l'ascenseur. TODO: le cas d'une porte d'ascenseur n'est pas géré... |
|
On envoie l'ordre au Level d'ouvrir une porte. Cette function est plutot utilisée par le player. |
|
Callback OIS: Cette fonction est appelée quand le TopHat est bougé. La variable e.state.mPOV prend une valeur différente pour chacune des 9 positions possibles du hat: (+ des valeurs parasites par moment)
|
|
Gestion des mouvements du joystick. Axis 0 : Joystick principal (stick) (avant/arriere=Y - lateral=X) Axis 1 : Rotationnel (Z only) Les valeurs sont normalement comprises entre -32767 et 32768. Pour éviter des variations, le joystick doit être étaloné avant de lancer le jeu. Cette fonction fait aussi bouger le mShipNode (en rotation uniquement) |
|
Fixe le niveau d'alerte général sur le vaisseau. (0=normal).
|
|
On fait descendre l'ascenseur (le floor).
|
|
Les lumières principales de toutes les pieces du vaisseau passent au rouge.
|
|
Affiche la pièce où se trouve la caméra.
|
|
Affiche la pièce où se trouve la caméra . Ceci ne fonctionne pas au tout debut du jeu, car les mesh des rooms ne sont pas encore tous forcement rendus. TODO: Le problème c'est que ca active aussi tous les sons... |
|
Met à jour les éléments qui consomment sur une base quotidienne.
|
|
Met à jour les éléments qui consomment sur une base continue. Acceleration = Force / Masse VecteurAccélération = Accelération * VecteurDirection VecteurVitesse = VecteurVitesseInitiale + VecteurAccélération * DeltaTemps TODO : les autres elements du vaisseau |
|
Piece dans laquelle se trouve la camera.
|
|
Système de fabrication d'air respirable.
|
|
Journal des Alertes.
|
|
Niveaux d'alerte. 0=normal. 2=collision 4=captain 5=evacuation Degre d'alerte.
|
|
Temperature ambiante dans le vaisseau (Kelvin).
|
|
TODO.
|
|
Journal d'équipage.
|
|
Radiation Ambiante (en rad/jour).
|
|
Delai restant avant l'ordre de fermeture des portes.
|
|
Système de production d'Energie à partir du Plasma.
|
|
Produit de la poussée à partir de plasma.
|
|
Produit de la poussée à partir de plasma.
|
|
TODO: Température Exterieure.
|
|
Le niveau du sol pour la camera.
|
|
Système de fabrication de provisions alimentaire.
|
|
TODO.
|
|
Fabrication de plasma a partir de l'Hydrogène de l'espace.
|
|
Fabrication de plasma a partir de l'Hydrogène de l'espace.
|
|
|
|
|
|
Le vaisseau comporte MAX_LEVELS étages.
|
|
Journal de Bord.
|
|
Radiation Ambiante Max (en rad/jour).
|
|
Journal des missions.
|
|
Node pour la sources des particules.
|
|
|
|
|
|
VRAI si le joystick est actif.
|
|
Utile pour transformer la poussée en accélation ???
|
|
Le réseau de waypoints du vaisseau.
|
|
Source de particules (SpaceDust).
|
|
Les projecteurs exterieurs.
|
|
Les projecteurs exterieurs.
|
|
Système de fabrication de d'eau douce.
|