Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 19, 2016, 5:04:41 PM (8 years ago)
Author:
sagerj
Message:

done/fixed everything, weaponmode/discharger fully commented only hudchargebar left

Location:
code/branches/sagerjFS16/src/modules/overlays/hud
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/branches/sagerjFS16/src/modules/overlays/hud/HUDChargeBar.cc

    r11185 r11189  
    3131#include "util/Convert.h"
    3232#include "core/CoreIncludes.h"
    33 #include "core/XMLPort.h"
    3433#include "worldentities/pawns/Pawn.h"
    3534#include "overlays/OverlayGroup.h"
     
    4544
    4645        this->owner_ = nullptr;
    47         this->bUseBarColour_ = false;
    48         this->textOffset_ = Vector2(0.0f, 0.0f);
    49         this->textScale_ = 1.0f;
    50         this->correspondingMode_ = nullptr;
    51 
    52         this->setIconPosition(Vector2(0.05f,0.5f));
    53         this->setIconDimensions(Vector2(0.1f,0.5f));
    54 
    55         this->textoverlay_ = new OverlayText(this->getContext());
    56 
    57         assert(this->textoverlay_.get());
    58 
    59         this->textoverlay_->setCaption("");
    60         this->textoverlay_->setAspectCorrection(false);
    61 
    62         positionText();
     46        this->correspondingMode_ = nullptr;             // usually no chargeable weapon equipped
    6347    }
    6448
    65     HUDChargeBar::~HUDChargeBar()
    66     {
    67         if (this->isInitialized())
    68         {
    69             this->textoverlay_->destroy();
    70             this->textoverlay_ = nullptr;
    71         }
    72     }
    73 
    74     void HUDChargeBar::XMLPort(Element& xmlelement, XMLPort::Mode mode)
    75     {
    76         SUPER(HUDChargeBar, XMLPort, xmlelement, mode);
    77 
    78         XMLPortParam(HUDChargeBar, "showtext",          setTextVisible,          getTextVisible,          xmlelement, mode).defaultValues(true);
    79         XMLPortParam(HUDChargeBar, "textfont",          setTextFont,             getTextFont,             xmlelement, mode).defaultValues("Monofur");
    80         XMLPortParam(HUDChargeBar, "textusebarcolour",  setTextUseBarColour,     getTextUseBarColour,     xmlelement, mode).defaultValues(false);
    81         XMLPortParam(HUDChargeBar, "textcolour",        setTextColour,           getTextColour,           xmlelement, mode).defaultValues(ColourValue(1.0, 1.0, 1.0, 1.0));
    82         XMLPortParam(HUDChargeBar, "textalign",         setTextAlignmentString,  getTextAlignmentString,  xmlelement, mode).defaultValues("left");
    83         XMLPortParam(HUDChargeBar, "textoffset",        setTextOffset,           getTextOffset,           xmlelement, mode).defaultValues(Vector2::ZERO);
    84         XMLPortParam(HUDChargeBar, "textscale",         setTextScale,            getTextScale,            xmlelement, mode).defaultValues(1.0f);
    85         XMLPortParam(HUDChargeBar, "textpickpoint",     setTextPickPoint,        getTextPickPoint,        xmlelement, mode).defaultValues(Vector2::ZERO);
    86         XMLPortParam(HUDChargeBar, "textrotation",      setTextRotation,         getTextRotation,         xmlelement, mode).defaultValues(0.0f);
    87         XMLPortParam(HUDChargeBar, "textspacewidth",    setTextSpaceWidth,       getTextSpaceWidth,       xmlelement, mode).defaultValues(true);
    88     }
     49    HUDChargeBar::~HUDChargeBar() { }
    8950
    9051    void HUDChargeBar::tick(float dt)
     
    9455        if (this->owner_)
    9556        {
    96             if(correspondingMode_ != nullptr){
    97                 this->setValue( correspondingMode_->getCharges() * 1.0f / correspondingMode_->getMaxCharges() );
    98                 this->textoverlay_->setCaption(multi_cast<std::string>(static_cast<int>(this->owner_->getHealth())));
     57            if(correspondingMode_ != nullptr)                                                                       // if there is a chargeable weapon equipped we want to show the charged amount with a HUDBar
     58            {
     59                this->setValue( correspondingMode_->getCharges() * 1.0f / correspondingMode_->getMaxCharges() );    // The Value of the HUDBar is the ratio of current Charges and the maximum Charges possible
     60               
     61                if(this->correspondingMode_->getCharges() > 0)                                                      // The HUDBar should only be visible when we are charging up
     62                    this->setVisible(true);
     63                }
     64                else
     65                {
     66                    this->setVisible(false);
     67                }
    9968            }
    100 
    101            
    10269        }
    10370        else
    10471        {
    10572            this->setValue(0);
    106             this->textoverlay_->setCaption("0");
    10773        }
    108 
    109         if (this->bUseBarColour_)
    110             this->textoverlay_->setColour(this->getCurrentBarColour());
    111 
    11274
    11375    }
     
    11678    {
    11779        SUPER(HUDChargeBar, changedOwner);
     80
     81        this->setVisible(false);
     82        this->correspondingMode_ = nullptr;
    11883
    11984        this->owner_ = orxonox_cast<Pawn*>(this->getOwner());
     
    141106        }
    142107    }
    143 
    144     void HUDChargeBar::changedOverlayGroup()
    145     {
    146         SUPER(HUDChargeBar, changedOverlayGroup);
    147 
    148         this->getOverlayGroup()->addElement(this->textoverlay_.get());
    149     }
    150 
    151     void HUDChargeBar::changedVisibility()
    152     {
    153         SUPER(HUDChargeBar, changedVisibility);
    154 
    155         this->textoverlay_->setVisible(this->isVisible());
    156     }
    157 
    158     void HUDChargeBar::changedName()
    159     {
    160         SUPER(HUDChargeBar, changedName);
    161 
    162         this->textoverlay_->setName(this->getName() + "text");
    163     }
    164 
    165     void HUDChargeBar::setTextColour(const ColourValue& colour)
    166     {
    167         this->textColour_ = colour;
    168         if (!this->bUseBarColour_)
    169             this->textoverlay_->setColour(colour);
    170     }
    171 
    172     void HUDChargeBar::setTextUseBarColour(bool bUseBarColour)
    173     {
    174         this->bUseBarColour_ = bUseBarColour;
    175         if (!bUseBarColour)
    176             this->textoverlay_->setColour(this->textColour_);
    177     }
    178 
    179     void HUDChargeBar::positionText()
    180     {
    181         this->textoverlay_->setPosition(this->getPosition() + this->textOffset_*this->getActualSize());
    182         this->textoverlay_->setTextSize(this->getActualSize().y*this->textScale_);
    183     }
    184 
    185     void HUDChargeBar::positionChanged()
    186     {
    187         HUDBar::positionChanged();
    188         positionText();
    189     }
    190 
    191     void HUDChargeBar::sizeChanged()
    192     {
    193         HUDBar::sizeChanged();
    194         positionText();
    195     }   
    196108}
  • code/branches/sagerjFS16/src/modules/overlays/hud/HUDChargeBar.h

    r11185 r11189  
    2222 *
    2323 *   Author:
    24  *      Fabian 'x3n' Landau
     24 *      Johannes Sager
    2525 *   Co-authors:
    2626 *      ...
     
    2828 */
    2929
    30 #ifndef _HUDHealthBar_H__
    31 #define _HUDHealthBar_H__
     30#ifndef _HUDChargeBar_H__
     31#define _HUDChargeBar_H__
    3232
    3333#include "overlays/OverlaysPrereqs.h"
    34 
    3534#include "util/Math.h"
    3635#include "tools/interfaces/Tickable.h"
    3736#include "overlays/OverlayText.h"
    3837#include "HUDBar.h"
     38
    3939#include "weaponsystem/WeaponSystem.h"
    4040#include "weaponsystem/WeaponPack.h"
     
    4444namespace orxonox
    4545{
     46    /**
     47    @brief
     48        The HUDChargeBar displays the amount of charges of its owner (a @ref Pawn).
     49        The length of the bar is given by the ratio of the current charges and the maximal charges of the @ref Pawn.
     50    */
     51
    4652    class _OverlaysExport HUDChargeBar : public HUDBar, public Tickable
    4753    {
     
    5056            virtual ~HUDChargeBar();
    5157
    52             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
    5358            virtual void tick(float dt) override;
    5459            virtual void changedOwner() override;
    55             virtual void changedOverlayGroup() override;
    56             virtual void changedVisibility() override;
    57             virtual void changedName() override;
    58 
    59             inline void setTextFont(const std::string& font)
    60                 { if (!font.empty()) { this->textoverlay_->setFont(font); } }
    61             inline const std::string& getTextFont() const
    62                 { return this->textoverlay_->getFont(); }
    63 
    64             void setTextColour(const ColourValue& colour);
    65             inline const ColourValue& getTextColour() const
    66                 { return this->textoverlay_->getColour(); }
    67 
    68             void setTextUseBarColour(bool bUseBarColour);
    69             inline bool getTextUseBarColour() const
    70                 { return this->bUseBarColour_; }
    71 
    72             inline void setTextAlignment(OverlayText::Alignment alignment)
    73                 { this->textoverlay_->setAlignment(alignment); }
    74             inline OverlayText::Alignment getTextAlignment() const
    75                 { return this->textoverlay_->getAlignment(); }
    76 
    77             void setTextAlignmentString(const std::string& alignment)
    78                 { this->textoverlay_->setAlignmentString(alignment); }
    79             std::string getTextAlignmentString() const
    80                 { return this->textoverlay_->getAlignmentString(); }
    81 
    82             inline void setTextVisible(bool bVisible)
    83                 { this->textoverlay_->setVisible(bVisible); }
    84             inline bool getTextVisible() const
    85                 { return this->textoverlay_->isVisible(); }
    86 
    87             inline void setTextScale(float scale)
    88                 { this->textScale_ = scale;
    89                   positionText();
    90                 }
    91             inline float getTextScale() const
    92                 { return this->textScale_; }
    93 
    94             inline void setTextPickPoint(const Vector2& pickpoint)
    95                 { this->textoverlay_->setPickPoint(pickpoint); }
    96             inline Vector2 getTextPickPoint() const
    97                 { return this->textoverlay_->getPickPoint(); }
    98 
    99             inline void setTextOffset(const Vector2& position)
    100                 { this->textOffset_ = position;
    101                   this->positionText();
    102                 }
    103             inline Vector2 getTextOffset() const
    104                 { return this->textOffset_; }
    105 
    106             inline void setTextRotation(const Degree& angle)
    107                 { this->textoverlay_->setRotation(angle); }
    108             inline const Degree& getTextRotation() const
    109                 { return this->textoverlay_->getRotation(); }
    110 
    111             inline void setTextSpaceWidth(float width)
    112                 { this->textoverlay_->setSpaceWidth(width); }
    113             inline float getTextSpaceWidth() const
    114                 { return this->textoverlay_->getSpaceWidth(); }
    11560
    11661            inline void setHealthBarOwner(Pawn* owner)
    11762                { this->owner_ = owner; }
    118         protected:
    119             virtual void positionChanged() override;
    120             virtual void sizeChanged() override;
     63       
    12164        private:
    122             WeaponMode* correspondingMode_;
    123             void positionText();
     65            WeaponMode* correspondingMode_;         // pointer on the chargeable weaponmode (=nullptr if no chargeable weapons equipped)
    12466            WeakPtr<Pawn> owner_;
    125             StrongPtr<OverlayText> textoverlay_;
    126             bool bUseBarColour_;
    127             ColourValue textColour_;
    128             Vector2 textOffset_;
    129             float textScale_;
    13067    };
    13168}
Note: See TracChangeset for help on using the changeset viewer.