Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/network3/src/orxonox/objects/SpaceShip.h @ 1233

Last change on this file since 1233 was 1232, checked in by scheusso, 17 years ago

a lot of changes in order to make it possible to have mulpiple clients with each one a new ship
camera changes
object changes
synchronisable: backsyncronisation should be possible now
gamestatemanager/gamestateclient: functions for backsyncronisation
some changes in order to get the input system (the old one) on the client working
TODO something with the camera position is wrong at the moment (clientside)

File size: 3.9 KB
Line 
1/*
2 *   ORXONOX - the hottest 3D action shooter ever to exist
3 *                    > www.orxonox.net <
4 *
5 *
6 *   License notice:
7 *
8 *   This program is free software; you can redistribute it and/or
9 *   modify it under the terms of the GNU General Public License
10 *   as published by the Free Software Foundation; either version 2
11 *   of the License, or (at your option) any later version.
12 *
13 *   This program is distributed in the hope that it will be useful,
14 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
15 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 *   GNU General Public License for more details.
17 *
18 *   You should have received a copy of the GNU General Public License
19 *   along with this program; if not, write to the Free Software
20 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21 *
22 *   Author:
23 *      Fabian 'x3n' Landau
24 *   Co-authors:
25 *      Benjamin Knecht
26 *
27 */
28
29#ifndef _SpaceShip_H__
30#define _SpaceShip_H__
31
32#include "OrxonoxPrereqs.h"
33
34#include <OgrePrerequisites.h>
35#include <OIS/OISMouse.h>
36
37#include "Camera.h"
38#include "Model.h"
39#include "../tools/BillboardSet.h"
40
41
42namespace orxonox
43{
44    class _OrxonoxExport SpaceShip : public Model, public OIS::MouseListener
45    {
46        public:
47            SpaceShip();
48            ~SpaceShip();
49            bool create();
50            void registerAllVariables();
51            void init();
52            void setConfigValues();
53            virtual void loadParams(TiXmlElement* xmlElem);
54            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
55            virtual void tick(float dt);
56
57            void setCamera(const std::string& camera = "");
58            void setMaxSpeed(float value);
59            void setMaxSideAndBackSpeed(float value);
60            void setMaxRotation(float value);
61            void setTransAcc(float value);
62            void setRotAcc(float value);
63            void setTransDamp(float value);
64            void setRotDamp(float value);
65           
66            void getFocus();
67
68            static void setMaxSpeedTest(float value)
69                { SpaceShip::instance_s->setMaxSpeed(value); }
70
71            bool mouseMoved(const OIS::MouseEvent &e);
72            bool mousePressed(const OIS::MouseEvent &e, OIS::MouseButtonID id);
73            bool mouseReleased(const OIS::MouseEvent &e, OIS::MouseButtonID id);
74
75
76        private:
77            void createCamera();
78            static SpaceShip* instance_s;
79
80            Vector3 testvector_;
81            bool bInvertYAxis_;
82            bool setMouseEventCallback_;
83            bool bLMousePressed_;
84            bool bRMousePressed_;
85
86            Ogre::SceneNode* camNode_;
87            Camera* cam_; 
88            std::string camName_;
89
90
91            ParticleInterface* tt_;
92
93            BillboardSet redBillboard_;
94            BillboardSet greenBillboard_;
95            Ogre::SceneNode* redNode_;
96            Ogre::SceneNode* greenNode_;
97            float blinkTime_;
98
99            BillboardSet crosshairNear_;
100            BillboardSet crosshairFar_;
101            Ogre::SceneNode* chNearNode_;
102            Ogre::SceneNode* chFarNode_;
103
104            float timeToReload_;
105            float reloadTime_;
106
107            float maxSideAndBackSpeed_;
108            float maxSpeed_;
109            float maxRotation_;
110            float translationAcceleration_;
111            float rotationAcceleration_;
112            float translationDamping_;
113            float rotationDamping_;
114
115            Radian maxRotationRadian_;
116            Radian rotationAccelerationRadian_;
117            Radian rotationDampingRadian_;
118            Radian zeroRadian_;
119            Radian mouseXRotation_;
120            Radian mouseYRotation_;
121
122            float mouseX_;
123            float mouseY_;
124
125            float emitterRate_;
126    };
127}
128
129#endif /* _SpaceShip_H__ */
Note: See TracBrowser for help on using the repository browser.