[Orxonox-commit 7680] r12273 - in code/branches/Boxhead_FS19: data/levels data/levels/includes src/modules/hover src/modules/weapons/projectiles src/modules/weapons/weaponmodes

cwaupoti at orxonox.net cwaupoti at orxonox.net
Thu Apr 4 15:51:06 CEST 2019


Author: cwaupoti
Date: 2019-04-04 15:51:04 +0200 (Thu, 04 Apr 2019)
New Revision: 12273

Modified:
   code/branches/Boxhead_FS19/data/levels/Hover.oxw
   code/branches/Boxhead_FS19/data/levels/includes/weaponSettingsHover.oxi
   code/branches/Boxhead_FS19/src/modules/hover/Hover.h
   code/branches/Boxhead_FS19/src/modules/weapons/projectiles/CMakeLists.txt
   code/branches/Boxhead_FS19/src/modules/weapons/projectiles/HoverGunProjectile.cc
   code/branches/Boxhead_FS19/src/modules/weapons/projectiles/HoverGunProjectile.h
   code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/CMakeLists.txt
   code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/HoverGun.cc
   code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/HoverGun.h
Log:
comment

Modified: code/branches/Boxhead_FS19/data/levels/Hover.oxw
===================================================================
--- code/branches/Boxhead_FS19/data/levels/Hover.oxw	2019-04-04 13:33:04 UTC (rev 12272)
+++ code/branches/Boxhead_FS19/data/levels/Hover.oxw	2019-04-04 13:51:04 UTC (rev 12273)
@@ -1,12 +1,3 @@
-<!-- include("HUDTemplates3.oxo") -->
-  <!-- include("templates/spaceshipSwallow.oxt") -->
-  <!-- include("templates/spaceshipPirate.oxt") -->
-  <!-- include("templates/spaceshipEscort.oxt") -->
-  <!-- include("templates/spaceshipCollateralDamage.oxt") -->
-  <!-- include("templates/spaceshipAssff.oxt") -->
-  <!-- include("templates/spaceshipAssff2.oxt") -->
-  <!-- include("templates/spaceshipTransporter.oxt") -->
-
 <LevelInfo
  name = "Hover level"
  description = "Level for Minigame Hover"

Modified: code/branches/Boxhead_FS19/data/levels/includes/weaponSettingsHover.oxi
===================================================================
--- code/branches/Boxhead_FS19/data/levels/includes/weaponSettingsHover.oxi	2019-04-04 13:33:04 UTC (rev 12272)
+++ code/branches/Boxhead_FS19/data/levels/includes/weaponSettingsHover.oxi	2019-04-04 13:51:04 UTC (rev 12273)
@@ -26,5 +26,5 @@
   </WeaponPack>
 </weaponpacks>  
 <munition>
-  <IceMunition initialmagazines=1 maxmagazines=1 munitionpermagazine=10/>
+  <LaserMunition initialmagazines=1 maxmagazines=1 munitionpermagazine=10/>
 </munition>

Modified: code/branches/Boxhead_FS19/src/modules/hover/Hover.h
===================================================================
--- code/branches/Boxhead_FS19/src/modules/hover/Hover.h	2019-04-04 13:33:04 UTC (rev 12272)
+++ code/branches/Boxhead_FS19/src/modules/hover/Hover.h	2019-04-04 13:51:04 UTC (rev 12273)
@@ -26,7 +26,7 @@
  *
  */
 
-/**f
+/**
     @file Hover.h
     @brief Gametype. For more information see .cc file
     @ingroup Hover

Modified: code/branches/Boxhead_FS19/src/modules/weapons/projectiles/CMakeLists.txt
===================================================================
--- code/branches/Boxhead_FS19/src/modules/weapons/projectiles/CMakeLists.txt	2019-04-04 13:33:04 UTC (rev 12272)
+++ code/branches/Boxhead_FS19/src/modules/weapons/projectiles/CMakeLists.txt	2019-04-04 13:51:04 UTC (rev 12273)
@@ -14,4 +14,5 @@
   GravityBombField.cc
   MineProjectile.cc
   WagnisProjectile.cc
+  HoverGunProjectile.cc
 )

Modified: code/branches/Boxhead_FS19/src/modules/weapons/projectiles/HoverGunProjectile.cc
===================================================================
--- code/branches/Boxhead_FS19/src/modules/weapons/projectiles/HoverGunProjectile.cc	2019-04-04 13:33:04 UTC (rev 12272)
+++ code/branches/Boxhead_FS19/src/modules/weapons/projectiles/HoverGunProjectile.cc	2019-04-04 13:51:04 UTC (rev 12273)
@@ -20,82 +20,68 @@
  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  *
  *   Author:
- *      Fabian 'x3n' Landau
+ *      Joel Smely
  *   Co-authors:
- *      simonmie
+ *      ...
  *
  */
 
 /**
-    @file Projectile.h
-    @brief Implementation of the Projectile class.
+    @file HoverGunProjectile.h
+    @brief Implementation of the HoverGunProjectile class.
 */
 
 #include "HoverGunProjectile.h"
 
-#include "core/config/ConfigValueIncludes.h"
 #include "core/CoreIncludes.h"
-#include "core/GameMode.h"
 #include "core/command/Executor.h"
+#include "util/Convert.h"
 
-#include "worldentities/pawns/Pawn.h"
-
 namespace orxonox
 {
     RegisterClass(HoverGunProjectile);
 
-    HoverGunProjectile::HoverGunProjectile(Context* context) : MovableEntity(context), BasicProjectile()
+    HoverGunProjectile::HoverGunProjectile(Context* context) : BillboardProjectile(context)
     {
         RegisterObject(HoverGunProjectile);
 
-        this->setConfigValues();
+        this->textureIndex_ = 1;
+        this->setMass(0.1f);
+        this->setCollisionType(CollisionType::Dynamic);
+        this->maxTextureIndex_ = 8;
+        this->textureTimer_.setTimer(0.01f, true, createExecutor(createFunctor(&HoverGunProjectile::changeTexture, this)));
 
-        // Get notification about collisions
-        if (GameMode::isMaster())
-        {
-            this->setMass(0.1f);
-            this->enableCollisionCallback();
-            this->setCollisionResponse(false);
-            this->setCollisionType(CollisionType::Dynamic);
-
-            // Create a sphere collision shape and attach it to the projectile.
-            collisionShape_ = new SphereCollisionShape(this->getContext());
-            setCollisionShapeRadius(8.0f);
-            this->attachCollisionShape(collisionShape_);
-
-            this->destroyTimer_.setTimer(this->lifetime_, false, createExecutor(createFunctor(&BasicProjectile::destroyObject, this)));
-        }
+        registerVariables();
     }
 
-    HoverGunProjectile::~HoverGunProjectile()
+    void HoverGunProjectile::registerVariables()
     {
+        registerVariable(this->materialBase_);
     }
 
-    void HoverGunProjectile::setConfigValues()
+    /**
+    @brief
+        Set the material.
+    @param material
+        The name of the material. Material names with 1 to 8 appended must exist.
+    */
+    void HoverGunProjectile::setMaterial(const std::string& material)
     {
-        SetConfigValue(lifetime_, 4.0f).description("The time in seconds a projectile stays alive");
-    }
+        this->materialBase_ = material;
 
-    void HoverGunProjectile::tick(float dt)
-    {
-        SUPER(Projectile, tick, dt);
-
-        if (!this->isActive())
-            return;
-
-        this->destroyCheck();
+        BillboardProjectile::setMaterial(material + multi_cast<std::string>(this->textureIndex_));
     }
 
-    bool HoverGunProjectile::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint)
+    /**
+    @brief
+        Change the texture.
+    */
+    void HoverGunProjectile::changeTexture()
     {
-        return this->processCollision(otherObject, contactPoint, cs);
-    }
+        this->textureIndex_++;
+        if (this->textureIndex_ > this->maxTextureIndex_)
+            this->textureIndex_ = 1;
 
-    void HoverGunProjectile::setCollisionShapeRadius(float radius)
-    {
-        if (collisionShape_ != nullptr && radius > 0)
-        {
-            collisionShape_->setRadius(radius);
-        }        
+        this->setMaterial(this->materialBase_);
     }
 }

Modified: code/branches/Boxhead_FS19/src/modules/weapons/projectiles/HoverGunProjectile.h
===================================================================
--- code/branches/Boxhead_FS19/src/modules/weapons/projectiles/HoverGunProjectile.h	2019-04-04 13:33:04 UTC (rev 12272)
+++ code/branches/Boxhead_FS19/src/modules/weapons/projectiles/HoverGunProjectile.h	2019-04-04 13:51:04 UTC (rev 12273)
@@ -20,15 +20,15 @@
  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  *
  *   Author:
- *      Fabian 'x3n' Landau
+ *      Joel Smely
  *   Co-authors:
- *      simonmie
+ *      ...
  *
  */
 
 /**
-    @file Projectile.h
-    @brief Definition of the Projectile class.
+    @file HoverGunProjectile.h
+    @brief Definition of the HoverGunProjectile class.
 */
 
 #ifndef _HoverGunProjectile_H__
@@ -36,44 +36,38 @@
 
 #include "weapons/WeaponsPrereqs.h"
 
+#include <string>
 #include "tools/Timer.h"
-#include "worldentities/MovableEntity.h"
-#include "objects/collisionshapes/SphereCollisionShape.h"
+#include "BillboardProjectile.h"
 
-#include "BasicProjectile.h"
-
 namespace orxonox
 {
 
     /**
     @brief
-        Represents all 'standard' projectiles.
-
+        The HoverGunProjectile is a projectile that is represented by a looped series of billboards.
+        
     @author
-        Fabian 'x3n' Landau
-    @author
-        Simon Miescher
+        Joel Smely
     @ingroup WeaponsProjectiles
     */
-    class _WeaponsExport HoverGunProjectile : public MovableEntity, public BasicProjectile
+    class _WeaponsExport HoverGunProjectile : public BillboardProjectile
     {
         public:
             HoverGunProjectile(Context* context);
-            virtual ~HoverGunProjectile();
+            virtual ~HoverGunProjectile() {}
 
-            void setConfigValues();
+            virtual void setMaterial(const std::string& material) override;
 
-            virtual void tick(float dt) override;
-            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint) override;
-
-        protected:
-            virtual void setCollisionShapeRadius(float radius);
-            float lifetime_; //!< The time the projectile exists.
-
         private:
-            Timer destroyTimer_; //!< Timer to destroy the projectile after its lifetime has run out.
-            WeakPtr<SphereCollisionShape> collisionShape_; // The collision shape of the projectile.
+            void registerVariables();
+            void changeTexture();
+            
+            unsigned int textureIndex_; //!< The current index of the texture. (i.e. the index of the currently displayed texture)
+            unsigned int maxTextureIndex_; //!< The maximal index.
+            Timer textureTimer_; //!< A timer that loops and changes textures each time it expires.
+            std::string materialBase_; //!< The base name of the material.
     };
 }
 
-#endif /* _Projectile_H__ */
+#endif /* _HoverGunProjectile_H__ */

Modified: code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/CMakeLists.txt
===================================================================
--- code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/CMakeLists.txt	2019-04-04 13:33:04 UTC (rev 12272)
+++ code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/CMakeLists.txt	2019-04-04 13:51:04 UTC (rev 12273)
@@ -4,6 +4,7 @@
   LaserFire.cc
   HsW01.cc
   LightningGun.cc
+  HoverGun.cc
   SplitGun.cc
   IceGun.cc
   FlameGun.cc

Modified: code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/HoverGun.cc
===================================================================
--- code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/HoverGun.cc	2019-04-04 13:33:04 UTC (rev 12272)
+++ code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/HoverGun.cc	2019-04-04 13:51:04 UTC (rev 12273)
@@ -20,7 +20,7 @@
  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  *
  *   Author:
- *      Hagen Seifert
+ *      Joel Smely
  *   Co-authors:
  *      simonmie
  *
@@ -27,25 +27,19 @@
  */
 
 /**
-    @file HsW01.h
-    @brief Implementation of the HsW01 class.
+    @file HoverGun.h
+    @brief Implementation of the HoverGun class.
 */
 
 #include "HoverGun.h"
 
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-#include "core/command/Executor.h"
-
-#include "graphics/Model.h"
 #include "weaponsystem/Weapon.h"
 #include "weaponsystem/WeaponPack.h"
 #include "weaponsystem/WeaponSystem.h"
-#include "worldentities/WorldEntity.h"
 #include "worldentities/pawns/Pawn.h"
 
 #include "weapons/projectiles/HoverGunProjectile.h"
-#include "weapons/MuzzleFlash.h"
 
 namespace orxonox
 {
@@ -55,21 +49,14 @@
     {
         RegisterObject(HoverGun);
 
-        this->reloadTime_ = 0.25f;
-        this->damage_ = 0.0f; //default 15
+        this->reloadTime_ = 1.0f;
+        this->damage_ = 0.0f;
         this->speed_ = 750.0f;
-        this->delay_ = 0.0f;
-        this->setMunitionName("LaserMunition");
-        this->mesh_ = "laserbeam.mesh";
 
+        this->setMunitionName("HoverMunition");
+        this->setFireSound("sounds/Weapon_HoverGun.ogg");
 
-        this->delayTimer_.setTimer(this->delay_, false, createExecutor(createFunctor(&HoverGun::shot, this)));
-        this->delayTimer_.stopTimer();
-
-        this->setFireSound("sounds/Weapon_HsW01.ogg");
-        this->setReloadSound("sounds/Reload_HsW01.ogg", 0.5);
-
-        hudImageString_ = "Orxonox/WSHUD_WM_HsW01";
+        hudImageString_ = "Orxonox/WSHUD_WM_HoverGun";
     }
 
     HoverGun::~HoverGun()
@@ -76,48 +63,14 @@
     {
     }
 
-    void HoverGun::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(HoverGun, XMLPort, xmlelement, mode);
-
-        XMLPortParam(HoverGun, "delay", setDelay, getDelay, xmlelement, mode);
-        XMLPortParam(HoverGun, "material", setMaterial, getMaterial, xmlelement, mode);
-        XMLPortParam(HoverGun, "projectileMesh", setMesh, getMesh, xmlelement, mode);
-        XMLPortParam(HoverGun, "sound", setSound, getSound, xmlelement, mode);
-    }
-
     /**
     @brief
-        Set the firing delay.
-    @param delay
-        The firing delay in seconds.
-    */
-    void HoverGun::setDelay(float delay)
-    {
-        this->delay_ = delay;
-        this->delayTimer_.setInterval(this->delay_);
-    }
-
-    // void HoverGun::fire()
-    // {
-    //     this->delayTimer_.startTimer();
-    // }
-
-    /**
-    @brief
         Fires the weapon. Creates a projectile and fires it.
     */
     void HoverGun::fire()
     {
-        assert( this->getWeapon() && this->getWeapon()->getWeaponPack() && this->getWeapon()->getWeaponPack()->getWeaponSystem() && this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn() );
-
-        // Create the projectile.
         HoverGunProjectile* projectile = new HoverGunProjectile(this->getContext());
-        Model* model = new Model(HoverGunprojectile->getContext());
-        model->setMeshSource(mesh_);
-        model->setCastShadows(false);
-        projectile->attach(model);
-        model->setScale(5);
+        projectile->setMaterial("Flares/HoverBall_");
 
         this->computeMuzzleParameters(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getAimPosition());
         projectile->setOrientation(this->getMuzzleOrientation());
@@ -128,20 +81,5 @@
         projectile->setDamage(this->getDamage());
         projectile->setShieldDamage(this->getShieldDamage());
         projectile->setHealthDamage(this->getHealthDamage());
-
-        // Display the muzzle flash.
-        // this->HoverGun::muzzleflash();
     }
-
-    /**
-    @brief
-        Displays the muzzle flash.
-    */
-    // void HoverGun::muzzleflash()
-    // {
-    //     MuzzleFlash *muzzleFlash = new MuzzleFlash(this->getContext());
-    //     this->getWeapon()->attach(muzzleFlash);
-    //     muzzleFlash->setPosition(this->getMuzzleOffset());
-    //     muzzleFlash->setMaterial(this->material_);
-    // }
 }

Modified: code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/HoverGun.h
===================================================================
--- code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/HoverGun.h	2019-04-04 13:33:04 UTC (rev 12272)
+++ code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/HoverGun.h	2019-04-04 13:51:04 UTC (rev 12273)
@@ -20,7 +20,7 @@
  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  *
  *   Author:
- *      Hagen Seifert
+ *      Joel Smely
  *   Co-authors:
  *      ...
  *
@@ -35,8 +35,6 @@
 #define _HoverGun_H__
 
 #include "weapons/WeaponsPrereqs.h"
-
-#include "tools/Timer.h"
 #include "weaponsystem/WeaponMode.h"
 
 namespace orxonox
@@ -44,9 +42,9 @@
 
     /**
     @brief
-        Shoots laser beams.
+        A slow ball of lightning.
     @author
-        Hagen Seifert
+        Joel Smely
     @ingroup WeaponsWeaponModes
     */
     class _WeaponsExport HoverGun : public WeaponMode
@@ -56,71 +54,10 @@
             virtual ~HoverGun();
 
             virtual void fire() override;
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
-        protected:
-            /**
-            @brief Set the mesh.
-            @param mesh The mesh name.
-            */
-            void setMesh(const std::string& mesh)
-                { this->mesh_ = mesh; }
-
-            /**
-            @brief Get the mesh.
-            @return Returns the mesh name.
-            */
-            const std::string& getMesh() const
-                { return this->mesh_; }
-
-            /**
-            @brief Set the sound.
-            @param sound The Sound name.
-            */
-            void setSound(const std::string& sound)
-                { this->sound_ = sound; }
-
-            /**
-            @brief Get the sound.
-            @return Returns the sound name.
-            */
-            const std::string& getSound() const
-                { return this->sound_; }
-
-            /**
-            @brief Set the material.
-            @param material The material name.
-            */
-            void setMaterial(const std::string& material)
-                { this->material_ = material; }
-            /**
-            @brief Get the material.
-            @return Returns the material name.
-            */
-            const std::string& getMaterial() const
-                { return this->material_; }
-
-            void setDelay(float delay);
-            /**
-            @brief Get the firing delay.
-            @return Returns the firing delay in seconds.
-            */
-            float getDelay() const
-                { return this->delay_; }
-
-            virtual void shot();
-            void muzzleflash();
-
-            std::string material_; //!< The material.
-            std::string mesh_; //!< The mesh.
-            std::string sound_; //!< The sound.
-
-
-
+       private:
             float speed_; //!< The speed of the fired projectile.
-            float delay_; //!< The firing delay.
-            Timer delayTimer_; //!< A timer to delay the firing.
     };
 }
 
-#endif /* HoverGun */
+#endif /* _HoverGun_H__ */



More information about the Orxonox-commit mailing list