v1.4.4
This commit is contained in:
commit
9c94d113d3
10260 changed files with 1237388 additions and 0 deletions
91
source/game/interfaces/StarFireableItem.hpp
Normal file
91
source/game/interfaces/StarFireableItem.hpp
Normal file
|
@ -0,0 +1,91 @@
|
|||
#ifndef STAR_FIREABLE_ITEM_HPP
|
||||
#define STAR_FIREABLE_ITEM_HPP
|
||||
|
||||
#include "StarToolUserItem.hpp"
|
||||
#include "StarStatusEffectItem.hpp"
|
||||
#include "StarLuaComponents.hpp"
|
||||
|
||||
namespace Star {
|
||||
|
||||
STAR_CLASS(FireableItem);
|
||||
|
||||
class FireableItem : public virtual ToolUserItem, public virtual StatusEffectItem {
|
||||
public:
|
||||
FireableItem();
|
||||
FireableItem(Json const& params);
|
||||
virtual ~FireableItem() {}
|
||||
|
||||
FireableItem(FireableItem const& fireableItem);
|
||||
|
||||
virtual void fire(FireMode mode, bool shifting, bool edgeTriggered);
|
||||
virtual void endFire(FireMode mode, bool shifting);
|
||||
virtual FireMode fireMode() const;
|
||||
virtual float fireTimer() const;
|
||||
virtual void setFireTimer(float fireTimer);
|
||||
virtual float cooldownTime() const;
|
||||
virtual void setCooldownTime(float cooldownTime);
|
||||
virtual float windupTime() const;
|
||||
virtual void setWindupTime(float time);
|
||||
virtual bool ready() const;
|
||||
virtual bool firing() const;
|
||||
virtual bool inUse() const;
|
||||
virtual bool walkWhileFiring() const;
|
||||
virtual bool stopWhileFiring() const;
|
||||
virtual bool windup() const;
|
||||
virtual void triggerCooldown();
|
||||
virtual bool coolingDown() const;
|
||||
virtual void setCoolingDown(bool coolingdown);
|
||||
virtual float timeFiring() const;
|
||||
virtual void setTimeFiring(float timeFiring);
|
||||
virtual Vec2F firePosition() const;
|
||||
virtual Vec2F handPosition() const;
|
||||
|
||||
virtual void init(ToolUserEntity* owner, ToolHand hand) override;
|
||||
virtual void uninit() override;
|
||||
virtual void update(FireMode fireMode, bool shifting, HashSet<MoveControlType> const& moves) override;
|
||||
|
||||
virtual List<PersistentStatusEffect> statusEffects() const override;
|
||||
|
||||
virtual bool validAimPos(Vec2F const& aimPos);
|
||||
|
||||
Json fireableParam(String const& key) const;
|
||||
Json fireableParam(String const& key, Json const& defaultVal) const;
|
||||
|
||||
protected:
|
||||
void setParams(Json const& params);
|
||||
void setFireableParam(String const& key, Json const& value);
|
||||
virtual void startTriggered();
|
||||
virtual void fireTriggered();
|
||||
|
||||
// firePosition translated by the hand in the owner's space
|
||||
Vec2F ownerFirePosition() const;
|
||||
|
||||
float m_fireTimer;
|
||||
float m_cooldownTime;
|
||||
float m_windupTime;
|
||||
bool m_fireWhenReady;
|
||||
bool m_startWhenReady;
|
||||
bool m_cooldown;
|
||||
bool m_alreadyInit;
|
||||
bool m_requireEdgeTrigger;
|
||||
|
||||
bool m_attemptedFire;
|
||||
bool m_fireOnRelease;
|
||||
float m_timeFiring;
|
||||
bool m_startTimingFire;
|
||||
bool m_inUse;
|
||||
bool m_walkWhileFiring;
|
||||
bool m_stopWhileFiring;
|
||||
|
||||
mutable Maybe<LuaWorldComponent<LuaBaseComponent>> m_scriptComponent;
|
||||
|
||||
Json m_fireableParams;
|
||||
|
||||
Vec2F m_handPosition;
|
||||
|
||||
FireMode m_mode;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue