Symphony Of Empires
lua_api.hpp
Go to the documentation of this file.
1 // Symphony of Empires
2 // Copyright (C) 2021, Symphony of Empires contributors
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <https://www.gnu.org/licenses/>.
16 //
17 // ----------------------------------------------------------------------------
18 // Name:
19 // server/lua_api.hpp
20 //
21 // Abstract:
22 // Does some important stuff.
23 // ----------------------------------------------------------------------------
24 
25 #pragma once
26 
27 #include <lua.hpp>
28 extern "C" {
29 #include <lualib.h>
30 #include <lauxlib.h>
31 }
32 #include <string>
33 #include <vector>
34 #include <exception>
35 
36 class Nation;
37 struct Event;
38 namespace LuaAPI {
39  int register_new_table(lua_State* L, const std::string& name, const std::vector<luaL_Reg> meta, const std::vector<luaL_Reg> methods);
40 
41  int add_terrain_type(lua_State* L);
42  int get_terrain_type(lua_State* L);
43  int get_terrain_type_by_id(lua_State* L);
44 
45  int add_technology(lua_State* L);
46  int get_technology(lua_State* L);
47  int add_req_tech_to_tech(lua_State* L);
48 
49  int add_building_type(lua_State* L);
50  int get_building_type(lua_State* L);
51 
52  int add_good(lua_State* L);
53  int get_good(lua_State* L);
54 
55  int add_input_to_industry_type(lua_State* L);
56  int add_output_to_industry_type(lua_State* L);
57  int add_req_good_to_industry_type(lua_State* L);
58  int add_req_technology_to_industry_type(lua_State* L);
59 
60  int add_nation(lua_State* L);
61  int get_nation(lua_State* L);
62  int get_nation_by_id(lua_State* L);
63  int get_all_nations(lua_State* L);
64  int switch_nation_soul(lua_State* L);
65  int nation_declare_war_no_cb(lua_State* L);
66 
67  int get_provinces_owned_by_nation(lua_State* L);
69  int set_nation_primary_language(lua_State* L);
70  int set_nation_capital(lua_State* L);
71  int add_accepted_language(lua_State* L);
72  int add_accepted_religion(lua_State* L);
73  int add_nation_client_hint(lua_State* L);
74  int nation_declare_unjustified_war(lua_State* L);
75 
76  int get_nation_relation(lua_State* L);
77  int set_nation_relation(lua_State* L);
78 
79  int add_province(lua_State* L);
80  int update_province(lua_State* L);
81  int get_province(lua_State* L);
82  int get_province_by_id(lua_State* L);
83  int province_add_unit(lua_State* L);
84  int update_province_building(lua_State* L);
85  int give_province_to(lua_State* L);
86  int give_hard_province_to(lua_State* L);
87  int get_province_owner(lua_State* L);
88  int get_province_controller(lua_State* L);
89  int get_province_neighbours(lua_State* L);
90  int get_province_nuclei(lua_State* L);
91 
92  int add_province_pop(lua_State* L);
93  int set_province_language(lua_State* L);
94  int set_province_religion(lua_State* L);
95  int rename_province(lua_State* L);
96  int add_province_nucleus(lua_State* L);
97  int add_province_owner(lua_State* L);
98 
99  int add_event(lua_State* L);
100  int get_event(lua_State* L);
101  int update_event(lua_State* L);
102  int add_event_receivers(lua_State* L);
103 
104  int add_decision(lua_State* L);
105 
106  int add_pop_type(lua_State* L);
107  int get_pop_type(lua_State* L);
108  int get_pop_type_by_id(lua_State* L);
109 
110  int add_language(lua_State* L);
111  int get_language(lua_State* L);
112  int get_language_by_id(lua_State* L);
113 
114  int add_religion(lua_State* L);
115  int get_religion(lua_State* L);
116  int get_religion_by_id(lua_State* L);
117 
118  int add_unit_type(lua_State* L);
119  int get_unit_type(lua_State* L);
120  int add_req_good_unit_type(lua_State* L);
121 
122  int add_ideology(lua_State* L);
123  int get_ideology(lua_State* L);
124  int get_ideology_by_id(lua_State* L);
125 
126  // Functions not part of the API
127  void fire_event(lua_State* L, Nation& nation, Event& event, bool& is_multi, const std::string_view extra);
128  void check_events(lua_State* L);
129  // UI stuff
130  int ui_call_builtin(lua_State* L);
131 }
int province_add_unit(lua_State *L)
Definition: lua_api.cpp:544
int add_event(lua_State *L)
Definition: lua_api.cpp:682
int add_decision(lua_State *L)
Definition: lua_api.cpp:733
int get_religion_by_id(lua_State *L)
Definition: lua_api.cpp:915
int get_terrain_type(lua_State *L)
Definition: lua_api.cpp:141
int set_nation_relation(lua_State *L)
Definition: lua_api.cpp:405
int ui_call_builtin(lua_State *L)
Definition: lua_api.cpp:1072
int get_pop_type_by_id(lua_State *L)
Definition: lua_api.cpp:825
int add_province_pop(lua_State *L)
Definition: lua_api.cpp:635
int get_province_nuclei(lua_State *L)
Definition: lua_api.cpp:623
int add_province_owner(lua_State *L)
Definition: lua_api.cpp:675
int get_religion(lua_State *L)
Definition: lua_api.cpp:907
int get_terrain_type_by_id(lua_State *L)
Definition: lua_api.cpp:130
int update_province(lua_State *L)
Definition: lua_api.cpp:487
int add_req_technology_to_industry_type(lua_State *L)
Definition: lua_api.cpp:252
int get_good(lua_State *L)
Definition: lua_api.cpp:222
int add_event_receivers(lua_State *L)
Definition: lua_api.cpp:725
int add_good(lua_State *L)
Definition: lua_api.cpp:210
int get_province_by_id(lua_State *L)
Definition: lua_api.cpp:524
int get_technology(lua_State *L)
Definition: lua_api.cpp:166
int add_technology(lua_State *L)
Definition: lua_api.cpp:151
int add_req_good_unit_type(lua_State *L)
Definition: lua_api.cpp:955
int add_accepted_religion(lua_State *L)
Definition: lua_api.cpp:378
int set_nation_primary_language(lua_State *L)
Definition: lua_api.cpp:362
int add_pop_type(lua_State *L)
Definition: lua_api.cpp:745
int get_province_owner(lua_State *L)
Definition: lua_api.cpp:597
int get_province_neighbours(lua_State *L)
Definition: lua_api.cpp:611
int set_province_religion(lua_State *L)
Definition: lua_api.cpp:669
int get_ideology(lua_State *L)
int add_input_to_industry_type(lua_State *L)
Definition: lua_api.cpp:229
int add_terrain_type(lua_State *L)
Definition: lua_api.cpp:114
int get_nation_relation(lua_State *L)
Definition: lua_api.cpp:395
int nation_declare_war_no_cb(lua_State *L)
Definition: lua_api.cpp:318
int add_nation_client_hint(lua_State *L)
Definition: lua_api.cpp:384
int add_req_tech_to_tech(lua_State *L)
Definition: lua_api.cpp:176
int add_output_to_industry_type(lua_State *L)
Definition: lua_api.cpp:237
int add_province_nucleus(lua_State *L)
Definition: lua_api.cpp:654
int add_unit_type(lua_State *L)
Definition: lua_api.cpp:923
int get_all_nations(lua_State *L)
Definition: lua_api.cpp:297
int switch_nation_soul(lua_State *L)
Definition: lua_api.cpp:309
int get_nation(lua_State *L)
Definition: lua_api.cpp:283
int add_accepted_language(lua_State *L)
Definition: lua_api.cpp:372
int update_province_building(lua_State *L)
Definition: lua_api.cpp:559
int get_provinces_with_nucleus_by_nation(lua_State *L)
Definition: lua_api.cpp:340
int register_new_table(lua_State *L, const std::string &name, const std::vector< luaL_Reg > meta, const std::vector< luaL_Reg > methods)
Definition: lua_api.cpp:43
int get_event(lua_State *L)
Definition: lua_api.cpp:713
int get_province_controller(lua_State *L)
Definition: lua_api.cpp:604
int get_provinces_owned_by_nation(lua_State *L)
Definition: lua_api.cpp:327
int set_province_language(lua_State *L)
Definition: lua_api.cpp:663
int nation_declare_unjustified_war(lua_State *L)
Definition: lua_api.cpp:415
int add_building_type(lua_State *L)
Definition: lua_api.cpp:182
void fire_event(lua_State *L, Nation &nation, Event &event, bool &is_multi, const std::string_view extra)
Definition: lua_api.cpp:972
int add_ideology(lua_State *L)
int get_pop_type(lua_State *L)
Definition: lua_api.cpp:793
int get_province(lua_State *L)
Definition: lua_api.cpp:504
int get_language(lua_State *L)
Definition: lua_api.cpp:871
int add_language(lua_State *L)
Definition: lua_api.cpp:855
int get_ideology_by_id(lua_State *L)
int give_hard_province_to(lua_State *L)
Definition: lua_api.cpp:575
int get_building_type(lua_State *L)
Definition: lua_api.cpp:197
int get_language_by_id(lua_State *L)
Definition: lua_api.cpp:883
int add_nation(lua_State *L)
Definition: lua_api.cpp:259
int add_province(lua_State *L)
Definition: lua_api.cpp:423
int add_req_good_to_industry_type(lua_State *L)
Definition: lua_api.cpp:245
int get_unit_type(lua_State *L)
Definition: lua_api.cpp:941
int rename_province(lua_State *L)
Definition: lua_api.cpp:648
int give_province_to(lua_State *L)
Definition: lua_api.cpp:569
int update_event(lua_State *L)
Definition: lua_api.cpp:700
int get_nation_by_id(lua_State *L)
Definition: lua_api.cpp:290
int set_nation_capital(lua_State *L)
Definition: lua_api.cpp:366
void check_events(lua_State *L)
Definition: lua_api.cpp:1021
int add_religion(lua_State *L)
Definition: lua_api.cpp:894
#define L
Definition: stb_vorbis.c:5131
Definition: event.hpp:54