Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/game/scripting/StarFireableItemLuaBindings.hpp
blob: 67a4071a0fd65c92089f4dab2bef501cbe20d3ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#ifndef STAR_FIREABLE_ITEM_LUA_BINDINGS_HPP
#define STAR_FIREABLE_ITEM_LUA_BINDINGS_HPP

#include "StarLua.hpp"

namespace Star {

STAR_CLASS(FireableItem);

namespace LuaBindings {
  LuaCallbacks makeFireableItemCallbacks(FireableItem* fireableItem);

  namespace FireableItemCallbacks {
    void fire(FireableItem* fireableItem, Maybe<String> const& mode);
    void triggerCooldown(FireableItem* fireableItem);
    void setCooldown(FireableItem* fireableItem, float cooldownTime);
    void endCooldown(FireableItem* fireableItem);
    float cooldownTime(FireableItem* fireableItem);
    Json fireableParam(FireableItem* fireableItem, String const& name, Json const& def);
    String fireMode(FireableItem* fireableItem);
    bool ready(FireableItem* fireableItem);
    bool firing(FireableItem* fireableItem);
    bool windingUp(FireableItem* fireableItem);
    bool coolingDown(FireableItem* fireableItem);
    bool ownerFullEnergy(FireableItem* fireableItem);
    bool ownerEnergy(FireableItem* fireableItem);
    bool ownerEnergyLocked(FireableItem* fireableItem);
    bool ownerConsumeEnergy(FireableItem* fireableItem, float energy);
  }
}
}

#endif