Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/network/src/orxonox/objects/SpaceShip.h @ 1425

Last change on this file since 1425 was 1425, checked in by scheusso, 16 years ago

implemented some sort of buffer for the spaceship movements (makes the movements on the client smoother)

File size: 4.4 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#include <string>
32#include "OrxonoxPrereqs.h"
33#include <OgrePrerequisites.h>
34
35#include "util/Math.h"
36#include "core/InputInterfaces.h"
37#include "Camera.h"
38#include "Model.h"
39#include "../tools/BillboardSet.h"
40
41namespace orxonox
42{
43    class _OrxonoxExport SpaceShip : public Model
44    {
45        public:
46
47            static SpaceShip *getLocalShip();
48
49            SpaceShip();
50            ~SpaceShip();
51            virtual bool create();
52            void registerAllVariables();
53            void init();
54            void setConfigValues();
55            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
56            virtual void tick(float dt);
57
58            void setCamera(const std::string& camera = "");
59            void setMaxSpeed(float value);
60            void setMaxSideAndBackSpeed(float value);
61            void setMaxRotation(float value);
62            void setTransAcc(float value);
63            void setRotAcc(float value);
64            void setTransDamp(float value);
65            void setRotDamp(float value);
66            void getFocus();
67
68            static std::string whereAmI();
69            static void setMaxSpeedTest(float value)
70                { SpaceShip::instance_s->setMaxSpeed(value); }
71
72            static void movePitch(float value);
73            static void moveYaw(float value);
74            static void moveRoll(float value);
75            static void moveLongitudinal(float value);
76            static void moveLateral(float value);
77            static void fire();
78
79            float getMaxSpeed();
80            Vector3 getDir();
81            Vector3 getOrth();
82            Camera* getCamera();
83           
84            bool getMyShip(){return myShip_;}
85
86        private:
87            void createCamera();
88
89            Vector3 testvector_;
90            Vector3 initialDir_;
91            Vector3 currentDir_;
92            Vector3 initialOrth_;
93            Vector3 currentOrth_;
94            bool bInvertYAxis_;
95            bool setMouseEventCallback_;
96            bool bLMousePressed_;
97            bool bRMousePressed_;
98
99            Ogre::SceneNode* camNode_;
100            Camera* cam_;
101            std::string camName_;
102
103
104            ParticleInterface* tt_;
105
106            BillboardSet redBillboard_;
107            BillboardSet greenBillboard_;
108            Ogre::SceneNode* redNode_;
109            Ogre::SceneNode* greenNode_;
110            float blinkTime_;
111
112            BillboardSet crosshairNear_;
113            BillboardSet crosshairFar_;
114            Ogre::SceneNode* chNearNode_;
115            Ogre::SceneNode* chFarNode_;
116
117            float timeToReload_;
118            float reloadTime_;
119
120            float maxSideAndBackSpeed_;
121            float maxSpeed_;
122            float maxRotation_;
123            float translationAcceleration_;
124            float rotationAcceleration_;
125            float translationDamping_;
126            float rotationDamping_;
127
128            Radian maxRotationRadian_;
129            Radian rotationAccelerationRadian_;
130            Radian rotationDampingRadian_;
131            Radian zeroRadian_;
132            Radian mouseXRotation_;
133            Radian mouseYRotation_;
134
135            float mouseX_;
136            float mouseY_;
137
138            float emitterRate_;
139            bool myShip_;
140
141            static SpaceShip* instance_s;
142    };
143}
144
145#endif /* _SpaceShip_H__ */
Note: See TracBrowser for help on using the repository browser.