Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 7052


Ignore:
Timestamp:
May 31, 2010, 3:40:41 PM (14 years ago)
Author:
freicy
Message:

by Cyrill Frei

Location:
code/branches/fps
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • code/branches/fps/data/levels/includes/weaponsettings_fps.oxi

    r6908 r7052  
    11    <weaponslots>
    2       <WeaponSlot position="0,-6,0.5" yaw=0 pitch=0 roll=0 />
    3  <!--     <WeaponSlot position="15,-1.5,-25" yaw=0 pitch=0 roll=0 />
     2      <WeaponSlot position="0,0,0" yaw=0 pitch=0 roll=0 />
     3 <!--      <WeaponSlot position="-0.5,0.8,2.5" yaw=0 pitch=0 roll=0 />
     4      <WeaponSlot position="15,-1.5,-25" yaw=0 pitch=0 roll=0 />
    45      <WeaponSlot position="0,0,-45" yaw=0 pitch=0 roll=0 /> -->
    56    </weaponslots>
     
    1617        </links>
    1718        <Weapon>
    18           <attached>
    19             <Model mesh="LightningGun.mesh" pitch="78" roll="90" yaw="90" position="0,-1.3,0" />
    20             <Model mesh="LightningGun-s.mesh" pitch="78" roll="90" yaw="90" position="0.2,-1.3,0" />
    21             <Model mesh="hs-w01.mesh" roll="195" position="0,1,0" scale=2 />
    22             <Model mesh="hs-w01s.mesh" roll="195" position="0.1,0.5,0" scale=2 />
    23           </attached>
    24           <HsW01 mode=0 munitionpershot=0 delay=0.125 material="Flares/point_lensflare" muzzleoffset=" 0.7, 1.5,-4" />
    25           <HsW01 mode=0 munitionpershot=0 delay=0     material="Flares/point_lensflare" muzzleoffset="-0.9, 1.1,-4" />
    26           <LightningGun mode=1 muzzleoffset="0,0,0" />
     19           <HsW01 mode=0 munitionpershot=0 delay=0.0 material="Flares/point_lensflare" muzzleoffset=" 0.7, 1.5, -4" />
     20           <LightningGun mode=1 muzzleoffset="0,0,0" />
    2721        </Weapon>
    2822        <LaserGun
  • code/branches/fps/data/levels/presentation_FS10.oxw

    r6908 r7052  
    2323  <Pawn health=100 position="600,35,0" direction="0,-1,0" collisionType=dynamic mass=100000>
    2424      <attached>
    25         <Model position="0,0,0" mesh="crate.mesh" scale3D="5,5,5" />
     25        <Model position="0,0,0" mesh="fish.mesh" scale3D="5,5,5" />
    2626      </attached>
    2727      <collisionShapes>
     
    8383      </collisionShapes>
    8484  </StaticEntity>
     85 
    8586<?lua
    8687for i = 1, 10, 1
     
    9192?>
    9293
    93 <!--
    94 <?lua
    95 for i = 1, 200, 1
    96 do
    97 j = math.random()
    98 ?>
    9994
    100     <MovableEntity position="<?lua print(math.random() * 5000-2000) ?>,<?lua print(math.random() * 5000-2000) ?>,<?lua print(math.random() * 5000 - 2000) ?>" collisionType=dynamic linearDamping=0.8 angularDamping=0 mass=<?lua print(j * 100) ?> scale=<?lua print(j * 5) ?> rotationaxis="<?lua print(math.random()) ?>, <?lua print(math.random()) ?>, <?lua print(math.random()) ?>" rotationrate="<?lua print(math.random() * 30 + 5) ?>" >
    101       <attached>
    102         <Model position="0,0,0" scale=<?lua print(j * 10) ?> mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh" />
    103       </attached>
    104       <collisionShapes>
    105         <SphereCollisionShape radius="<?lua print(j * 100) ?>" />
    106       </collisionShapes>
    107     </MovableEntity>
    108 <?lua
    109 end
    110 ?>
    111 -->
    11295  </Scene>
    11396</Level>
  • code/branches/fps/data/levels/templates/fps.oxt

    r6908 r7052  
    22  <FpsPlayer
    33   hudtemplate            = fpshud
    4    camerapositiontemplate = fpscamera
    5  
     4   
    65   spawnparticlesource    = "Orxonox/fairytwirl"
    76   spawnparticleduration  = 3
     
    2120   angularDamping    = 0.9999999
    2221   friction          = 0.01
     22   
     23   weapon            = "hs-w01.mesh"
    2324  >
    24  <!--   <attached>
    25       <Model position="0,0,0" yaw=90 pitch=-90 roll=0 scale=4 mesh="assff.mesh" />
    26       <BlinkingBillboard position="17,-1.5,0" material="Examples/Flare" colour="1.0, 0.5, 0.3" amplitude=0.1 frequency=0.5 quadratic=1 />
    27       <BlinkingBillboard position="-17,-1.5,0" material="Examples/Flare" colour="0.5, 1.0, 0.3" amplitude=0.1 frequency=0.5 phase=180 quadratic=1 />
    28     </attached>
    29 -->
    3025    <collisionShapes>
    31       <BoxCollisionShape position="0,0,0" halfExtents="7,7,7" />
    32     <!--
    33       <SphereCollisionShape radius="10" />
    34      
    35       <BoxCollisionShape position="0,0,0"      halfExtents="10, 3, 5" />
    36       <BoxCollisionShape position="13,-1.3,0"  halfExtents="3, 1, 2" />
    37       <BoxCollisionShape position="-13,-1.3,0" halfExtents="3, 1, 2" />
    38       <BoxCollisionShape position="0,0,7"      halfExtents="3, 2, 2" />
    39       <BoxCollisionShape position="0,0.1,-11"  halfExtents="2.2, 1.8, 6" />
    40       <BoxCollisionShape position="0,0.1,-19"  halfExtents="1.4, 1, 2" />
    41     -->
     26      <BoxCollisionShape position="0,0,0" halfExtents="8,20,8" />
    4227    </collisionShapes>
     28   
     29    <camerapositions>
     30      <CameraPosition position="-0.5,0.8,2.5" drag=false mouselook=true />
     31    </camerapositions>
     32   
     33    <?lua
     34        include("includes/weaponsettings_fps.oxi")
     35    ?>
    4336
    44 <?lua
    45   include("includes/weaponsettings_fps.oxi")
    46 ?>
    4737  </FpsPlayer>
    4838</Template>
    49 
     39<!--
    5040<Template name=fpscamera defaults=0>
    5141  <FpsPlayer>
    5242    <camerapositions>
    5343      <CameraPosition position="0,0,20" drag=false mouselook=true />
    54       <!--CameraPosition position="0,150,-25" pitch=-90 drag=true />
     44     
     45      <!--
     46      CameraPosition position="0,150,-25" pitch=-90 drag=true />
    5547      <CameraPosition position="0,0,-40" yaw=180 drag=true />
    5648      <CameraPosition position="0,3,-14" yaw=0 />
    5749      <CameraPosition position="-50,5,-8" yaw=-90 drag=true />
    58       <CameraPosition position="50,5,-8" yaw=90 drag=true /-->
     50      <CameraPosition position="50,5,-8" yaw=90 drag=true /
     51     
    5952    </camerapositions>
    6053  </FpsPlayer>
    6154</Template>
     55-->
  • code/branches/fps/src/orxonox/worldentities/pawns/FpsPlayer.cc

    r6908 r7052  
    3333#include <LinearMath/btVector3.h>
    3434#include <BulletCollision/NarrowPhaseCollision/btManifoldPoint.h>
    35 
     35#include <OgreSceneManager.h>
     36#include <OgreSceneNode.h>
     37#include <OgreEntity.h>
    3638
    3739#include "core/CoreIncludes.h"
     
    4042#include "core/XMLPort.h"
    4143#include "items/Engine.h"
     44#include "Scene.h"
     45#include "weaponsystem/WeaponPack.h"
     46#include "weaponsystem/WeaponSlot.h"
     47#include "weaponsystem/Weapon.h"
    4248
    4349#include <cmath>
     
    8086        this->registerVariables();
    8187
     88        this->weaponNode = this->cameraPositionRootNode_;
     89        //this->weaponNode = this->getScene()->getRootSceneNode()->createChildSceneNode();
     90        //this->weaponNode = this->cameraPositionRootNode_->createChildSceneNode();
     91        this->attachNode(this->weaponNode);
    8292    }
    8393
    8494    FpsPlayer::~FpsPlayer()
    8595    {
     96        if (this->isInitialized() && this->mesh_.getEntity())
     97            this->detachOgreObject(this->mesh_.getEntity());
    8698    }
    8799
     
    93105        XMLPortParamVariable(FpsPlayer, "auxilaryThrust", auxilaryThrust_, xmlelement, mode);
    94106        XMLPortParamVariable(FpsPlayer, "rotationThrust", rotationThrust_, xmlelement, mode);
     107        XMLPortParam(FpsPlayer, "weapon", setMeshSource, getMeshSource, xmlelement, mode);
    95108    }
    96109
     
    100113        registerVariable(this->auxilaryThrust_, VariableDirection::ToClient);
    101114        registerVariable(this->rotationThrust_, VariableDirection::ToClient);
    102     }
     115        registerVariable(this->weaponmashname);
     116    }
     117   
     118   
    103119
    104120    void FpsPlayer::setConfigValues()
     
    145161            if (!this->isInMouseLook())
    146162            {
    147                 this->yaw(Radian(this->yaw_ * this->getMouseLookSpeed()),WorldEntity::Parent);
    148                 //this->pitch(Radian(this->pitch_ * this->getMouseLookSpeed()));
     163                this->yaw(Radian(this->yaw_ * this->getMouseLookSpeed()), WorldEntity::Parent);
     164               
    149165                Radian pitch=this->cameraPositionRootNode_->getOrientation().getPitch();
    150                 if( pitch<Radian(1.5707) && pitch>Radian(-1.5707) ) this->cameraPositionRootNode_->pitch(Radian(this->pitch_ * this->getMouseLookSpeed()));
     166                if( pitch<Radian(1.5707) && pitch>Radian(-1.5707) ) {
     167                        //this->weaponNode->pitch(Radian(this->pitch_ * this->getMouseLookSpeed()));
     168                        this->cameraPositionRootNode_->pitch(Radian(this->pitch_ * this->getMouseLookSpeed()));
     169                        }
    151170                else if(pitch<Radian(-1.5707)){
    152                         if(this->pitch_>0.0) this->cameraPositionRootNode_->pitch(Radian(this->pitch_ * this->getMouseLookSpeed()));
    153                         else if(pitch<Radian(-1.571)) this->cameraPositionRootNode_->pitch(-pitch+Radian(-1.570796));
     171                        if(this->pitch_>0.0) {
     172                                //this->weaponNode->pitch(Radian(this->pitch_ * this->getMouseLookSpeed()));
     173                                this->cameraPositionRootNode_->pitch(Radian(this->pitch_ * this->getMouseLookSpeed()));
     174                                }
     175                        else if(pitch<Radian(-1.571)){
     176                                //this->weaponNode->pitch(-pitch+Radian(-1.570796));
     177                                this->cameraPositionRootNode_->pitch(-pitch+Radian(-1.570796));
     178                                }
    154179                }
    155180                else if(pitch>Radian(1.5707)){
    156                         if(this->pitch_<0.0) this->cameraPositionRootNode_->pitch(Radian(this->pitch_ * this->getMouseLookSpeed()));
    157                         else if(pitch>Radian(1.571)) this->cameraPositionRootNode_->pitch(-pitch+Radian(1.570796));
     181                        if(this->pitch_<0.0) {
     182                                //this->weaponNode->pitch(Radian(this->pitch_ * this->getMouseLookSpeed()));
     183                                this->cameraPositionRootNode_->pitch(Radian(this->pitch_ * this->getMouseLookSpeed()));
     184                                }
     185                        else if(pitch>Radian(1.571)){
     186                                //this->weaponNode->pitch(-pitch+Radian(1.570796));
     187                                this->cameraPositionRootNode_->pitch(-pitch+Radian(1.570796));
     188                                }
    158189                }
    159                  
     190                //this->weaponNode->setOrientation(this->cameraPositionRootNode_->getOrientation());
    160191               
    161  //               this->roll(Radian(this->roll_ * this->getMouseLookSpeed()));
    162             }
     192            }
    163193
    164194            this->yaw_ = this->pitch_ = this->roll_ = 0;
     
    172202        SUPER(FpsPlayer, tick, dt);
    173203    }
     204   
     205    void FpsPlayer::changedMesh()
     206    {
     207        if (GameMode::showsGraphics())
     208        {
     209            if (this->mesh_.getEntity())
     210                this->weaponNode->detachObject(this->mesh_.getEntity());
     211
     212            this->mesh_.setMeshSource(this->getScene()->getSceneManager(), this->meshSrc_);
     213
     214            if (this->mesh_.getEntity())
     215            {
     216                this->weaponNode->attachObject(this->mesh_.getEntity());
     217            }
     218        }
     219    }
    174220
    175221    void FpsPlayer::setPlayer(PlayerInfo* player)
     
    244290    }
    245291   
     292    void FpsPlayer::addedWeaponPack(WeaponPack* wPack)
     293    {
     294        for (size_t i = 0; i < wPack->getNumWeapons(); ++i)
     295        {
     296            Weapon* weapon = wPack->getWeapon(i);
     297            if (weapon->getWeaponSlot())
     298            {
     299                weapon->getWeaponSlot()->removeWeapon();
     300                weapon->detachFromParent();
     301                weapon->attachToNode(this->weaponNode);
     302            }
     303        }
     304    }
    246305}
  • code/branches/fps/src/orxonox/worldentities/pawns/FpsPlayer.h

    r6872 r7052  
    3535#include <LinearMath/btVector3.h>
    3636#include "util/Math.h"
     37#include "tools/Mesh.h"
    3738#include "Pawn.h"
    3839
     
    5859            virtual void rotateRoll(const Vector2& value);
    5960           
     61           
     62            inline void setMeshSource(const std::string& meshname)
     63                { this->meshSrc_ = meshname; this->changedMesh(); }
     64            inline const std::string& getMeshSource() const
     65                { return this->meshSrc_; }
     66           
    6067            void boost();                                               //acctually jump
    6168
     
    6370           
    6471            bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint);
     72
     73            virtual void addedWeaponPack(WeaponPack* wPack);
    6574           
    6675        protected:
     
    7584            float auxilaryThrust_;
    7685            float rotationThrust_;
     86            std::string weaponmashname;
    7787            btVector3 localLinearAcceleration_;
    7888            btVector3 localAngularAcceleration_;
     
    8292            float speed_;
    8393
     94            void changedMesh();
     95            Mesh mesh_;
     96            std::string meshSrc_;
    8497            float yaw_;
    8598            float pitch_;
     
    89102            bool thistickboost;
    90103            Quaternion savedOrientation_;
     104            Ogre::SceneNode* weaponNode;
     105            Ogre::Camera* camera_;
    91106    };
    92107}
  • code/branches/fps/src/orxonox/worldentities/pawns/Pawn.cc

    r6540 r7052  
    331331    {
    332332        if (this->weaponSystem_)
     333        {
    333334            this->weaponSystem_->addWeaponPack(wPack);
     335            this->addedWeaponPack(wPack);
     336        }
    334337    }
    335338
     
    337340    {
    338341        if (this->weaponSystem_)
     342        {
    339343            if (!this->weaponSystem_->addWeaponPack(wPack))
    340344                wPack->destroy();
     345            else
     346                this->addedWeaponPack(wPack);
     347        }
    341348    }
    342349
  • code/branches/fps/src/orxonox/worldentities/pawns/Pawn.h

    r6540 r7052  
    9090            void addWeaponPackXML(WeaponPack * wPack);
    9191            WeaponPack * getWeaponPack(unsigned int index) const;
     92           
     93            virtual void addedWeaponPack(WeaponPack* wPack) {}
    9294
    9395            inline const WorldEntity* getWorldEntity() const
Note: See TracChangeset for help on using the changeset viewer.