aboutsummaryrefslogtreecommitdiff
path: root/build/android/icons/fly_btn.svg
blob: d203842d4f2a62290b1894b40cc659df4ca1fefe (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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   width="512"
   height="512"
   viewBox="0 0 135.46666 135.46667"
   version="1.1"
   id="svg8"
   inkscape:version="0.92.1 r15371"
   sodipodi:docname="fly_btn.svg"
   inkscape:export-filename="/home/stu/Desktop/icons/png/fly_btn.png"
   inkscape:export-xdpi="24.000002"
   inkscape:export-ydpi="24.000002">
  <defs
     id="defs2">
    <filter
       style="color-interpolation-filters:sRGB;"
       inkscape:label="Colorize"
       id="filter4628">
      <feComposite
         in2="SourceGraphic"
         operator="arithmetic"
         k1="0"
         k2="1"
         result="composite1"
         id="feComposite4614" />
      <feColorMatrix
         in="composite1"
         values="1"
         type="saturate"
         result="colormatrix1"
         id="feColorMatrix4616" />
      <feFlood
         flood-opacity="1"
         flood-color="rgb(158,0,0)"
         result="flood1"
         id="feFlood4618" />
      <feBlend
         in="flood1"
         in2="colormatrix1"
         mode="multiply"
         result="blend1"
         id="feBlend4620" />
      <feBlend
         in2="blend1"
         mode="screen"
         result="blend2"
         id="feBlend4622" />
      <feColorMatrix
         in="blend2"
         values="1"
         type="saturate"
         result="colormatrix2"
         id="feColorMatrix4624" />
      <feComposite
         in="colormatrix2"
         in2="SourceGraphic"
         operator="in"
         k2="1"
         result="composite2"
         id="feComposite4626" />
    </filter>
  </defs>
  <sodipodi:namedview
     id="base"
     pagecolor="#404040"
     bordercolor="#666666"
     borderopacity="1.0"
     inkscape:pageopacity="0"
     inkscape:pageshadow="2"
     inkscape:zoom="0.98994949"
     inkscape:cx="53.55965"
     inkscape:cy="198.9488"
     inkscape:document-units="mm"
     inkscape:current-layer="layer2"
     showgrid="true"
     units="px"
     inkscape:window-width="1920"
     inkscape:window-height="1023"
     inkscape:window-x="0"
     inkscape:window-y="34"
     inkscape:window-maximized="1"
     inkscape:pagecheckerboard="false"
     inkscape:snap-grids="false"
     inkscape:snap-page="true"
     showguides="false"
     inkscape:snap-bbox="true"
     inkscape:snap-bbox-midpoints="true"
     inkscape:snap-to-guides="false">
    <inkscape:grid
       type="xygrid"
       id="grid16"
       spacingx="0.26458333"
       spacingy="0.26458333"
       empspacing="4"
       color="#40ff40"
       opacity="0.1254902"
       empcolor="#40ff40"
       empopacity="0.25098039" />
  </sodipodi:namedview>
  <metadata
     id="metadata5">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
        <dc:title></dc:title>
        <cc:license
           rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
      </cc:Work>
      <cc:License
         rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
        <cc:permits
           rdf:resource="http://creativecommons.org/ns#Reproduction" />
        <cc:permits
           rdf:resource="http://creativecommons.org/ns#Distribution" />
        <cc:requires
           rdf:resource="http://creativecommons.org/ns#Notice" />
        <cc:requires
           rdf:resource="http://creativecommons.org/ns#Attribution" />
        <cc:permits
           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
        <cc:requires
           rdf:resource="http://creativecommons.org/ns#ShareAlike" />
      </cc:License>
    </rdf:RDF>
  </metadata>
  <g
     inkscape:groupmode="layer"
     id="layer2"
     inkscape:label="Layer 2"
     style="display:inline">
    <path
       style="fill:none;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
       d="M 25.670229,38.593108 109.83886,56.716287 83.057927,68.798408 75.262818,96.914386 71.580388,74.83947 44.799461,86.921586 25.670229,38.593108"
       id="path4666"
       inkscape:connector-curvature="0"
       sodipodi:nodetypes="ccccccc" />
    <path
       style="fill:none;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
       d="M 25.670229,38.593106 71.580388,74.839464"
       id="path4668"
       inkscape:connector-curvature="0"
       sodipodi:nodetypes="cc" />
    <path
       style="fill:none;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
       d="M 25.670229,38.593106 83.057927,68.798404"
       id="path4670"
       inkscape:connector-curvature="0"
       sodipodi:nodetypes="cc" />
    <path
       style="fill:none;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
       d="M 75.262817,96.914386 60.102847,80.880526"
       id="path4672"
       inkscape:connector-curvature="0"
       sodipodi:nodetypes="cc" />
  </g>
</svg>
nect); return 0; } // get_server_status() int ModApiServer::l_get_server_status(lua_State *L) { NO_MAP_LOCK_REQUIRED; lua_pushstring(L, wide_to_narrow(getServer(L)->getStatusString()).c_str()); return 1; } // get_server_uptime() int ModApiServer::l_get_server_uptime(lua_State *L) { NO_MAP_LOCK_REQUIRED; lua_pushnumber(L, getServer(L)->getUptime()); return 1; } // print(text) int ModApiServer::l_print(lua_State *L) { NO_MAP_LOCK_REQUIRED; std::string text; text = luaL_checkstring(L, 1); getServer(L)->printToConsoleOnly(text); return 0; } // chat_send_all(text) int ModApiServer::l_chat_send_all(lua_State *L) { NO_MAP_LOCK_REQUIRED; const char *text = luaL_checkstring(L, 1); // Get server from registry Server *server = getServer(L); // Send server->notifyPlayers(narrow_to_wide(text)); return 0; } // chat_send_player(name, text) int ModApiServer::l_chat_send_player(lua_State *L) { NO_MAP_LOCK_REQUIRED; const char *name = luaL_checkstring(L, 1); const char *text = luaL_checkstring(L, 2); // Get server from registry Server *server = getServer(L); // Send server->notifyPlayer(name, narrow_to_wide(text)); return 0; } // get_player_privs(name, text) int ModApiServer::l_get_player_privs(lua_State *L) { NO_MAP_LOCK_REQUIRED; const char *name = luaL_checkstring(L, 1); // Get server from registry Server *server = getServer(L); // Do it lua_newtable(L); int table = lua_gettop(L); std::set<std::string> privs_s = server->getPlayerEffectivePrivs(name); for(std::set<std::string>::const_iterator i = privs_s.begin(); i != privs_s.end(); i++){ lua_pushboolean(L, true); lua_setfield(L, table, i->c_str()); } lua_pushvalue(L, table); return 1; } // get_player_ip() int ModApiServer::l_get_player_ip(lua_State *L) { NO_MAP_LOCK_REQUIRED; const char * name = luaL_checkstring(L, 1); RemotePlayer *player = dynamic_cast<ServerEnvironment *>(getEnv(L))->getPlayer(name); if(player == NULL) { lua_pushnil(L); // no such player return 1; } try { Address addr = getServer(L)->getPeerAddress(player->peer_id); std::string ip_str = addr.serializeString(); lua_pushstring(L, ip_str.c_str()); return 1; } catch(con::PeerNotFoundException) // unlikely { dstream << FUNCTION_NAME << ": peer was not found" << std::endl; lua_pushnil(L); // error return 1; } } // get_player_information() int ModApiServer::l_get_player_information(lua_State *L) { NO_MAP_LOCK_REQUIRED; const char * name = luaL_checkstring(L, 1); RemotePlayer *player = dynamic_cast<ServerEnvironment *>(getEnv(L))->getPlayer(name); if (player == NULL) { lua_pushnil(L); // no such player return 1; } Address addr; try { addr = getServer(L)->getPeerAddress(player->peer_id); } catch(con::PeerNotFoundException) // unlikely { dstream << FUNCTION_NAME << ": peer was not found" << std::endl; lua_pushnil(L); // error return 1; } float min_rtt,max_rtt,avg_rtt,min_jitter,max_jitter,avg_jitter; ClientState state; u32 uptime; u16 prot_vers; u8 ser_vers,major,minor,patch; std::string vers_string; #define ERET(code) \ if (!(code)) { \ dstream << FUNCTION_NAME << ": peer was not found" << std::endl; \ lua_pushnil(L); /* error */ \ return 1; \ } ERET(getServer(L)->getClientConInfo(player->peer_id,con::MIN_RTT,&min_rtt)) ERET(getServer(L)->getClientConInfo(player->peer_id,con::MAX_RTT,&max_rtt)) ERET(getServer(L)->getClientConInfo(player->peer_id,con::AVG_RTT,&avg_rtt)) ERET(getServer(L)->getClientConInfo(player->peer_id,con::MIN_JITTER,&min_jitter)) ERET(getServer(L)->getClientConInfo(player->peer_id,con::MAX_JITTER,&max_jitter)) ERET(getServer(L)->getClientConInfo(player->peer_id,con::AVG_JITTER,&avg_jitter)) ERET(getServer(L)->getClientInfo(player->peer_id, &state, &uptime, &ser_vers, &prot_vers, &major, &minor, &patch, &vers_string)) lua_newtable(L); int table = lua_gettop(L); lua_pushstring(L,"address"); lua_pushstring(L, addr.serializeString().c_str()); lua_settable(L, table); lua_pushstring(L,"ip_version"); if (addr.getFamily() == AF_INET) { lua_pushnumber(L, 4); } else if (addr.getFamily() == AF_INET6) { lua_pushnumber(L, 6); } else { lua_pushnumber(L, 0); } lua_settable(L, table); lua_pushstring(L,"min_rtt"); lua_pushnumber(L, min_rtt); lua_settable(L, table); lua_pushstring(L,"max_rtt"); lua_pushnumber(L, max_rtt); lua_settable(L, table); lua_pushstring(L,"avg_rtt"); lua_pushnumber(L, avg_rtt); lua_settable(L, table); lua_pushstring(L,"min_jitter"); lua_pushnumber(L, min_jitter); lua_settable(L, table); lua_pushstring(L,"max_jitter"); lua_pushnumber(L, max_jitter); lua_settable(L, table); lua_pushstring(L,"avg_jitter"); lua_pushnumber(L, avg_jitter); lua_settable(L, table); lua_pushstring(L,"connection_uptime"); lua_pushnumber(L, uptime); lua_settable(L, table); #ifndef NDEBUG lua_pushstring(L,"serialization_version"); lua_pushnumber(L, ser_vers); lua_settable(L, table); lua_pushstring(L,"protocol_version"); lua_pushnumber(L, prot_vers); lua_settable(L, table); lua_pushstring(L,"major"); lua_pushnumber(L, major); lua_settable(L, table); lua_pushstring(L,"minor"); lua_pushnumber(L, minor); lua_settable(L, table); lua_pushstring(L,"patch"); lua_pushnumber(L, patch); lua_settable(L, table); lua_pushstring(L,"version_string"); lua_pushstring(L, vers_string.c_str()); lua_settable(L, table); lua_pushstring(L,"state"); lua_pushstring(L,ClientInterface::state2Name(state).c_str()); lua_settable(L, table); #endif #undef ERET return 1; } // get_ban_list() int ModApiServer::l_get_ban_list(lua_State *L) { NO_MAP_LOCK_REQUIRED; lua_pushstring(L, getServer(L)->getBanDescription("").c_str()); return 1; } // get_ban_description() int ModApiServer::l_get_ban_description(lua_State *L) { NO_MAP_LOCK_REQUIRED; const char * ip_or_name = luaL_checkstring(L, 1); lua_pushstring(L, getServer(L)->getBanDescription(std::string(ip_or_name)).c_str()); return 1; } // ban_player() int ModApiServer::l_ban_player(lua_State *L) { NO_MAP_LOCK_REQUIRED; const char * name = luaL_checkstring(L, 1); RemotePlayer *player = dynamic_cast<ServerEnvironment *>(getEnv(L))->getPlayer(name); if (player == NULL) { lua_pushboolean(L, false); // no such player return 1; } try { Address addr = getServer(L)->getPeerAddress( dynamic_cast<ServerEnvironment *>(getEnv(L))->getPlayer(name)->peer_id); std::string ip_str = addr.serializeString(); getServer(L)->setIpBanned(ip_str, name); } catch(con::PeerNotFoundException) // unlikely { dstream << FUNCTION_NAME << ": peer was not found" << std::endl; lua_pushboolean(L, false); // error return 1; } lua_pushboolean(L, true); return 1; } // kick_player(name, [reason]) -> success int ModApiServer::l_kick_player(lua_State *L) { NO_MAP_LOCK_REQUIRED; const char *name = luaL_checkstring(L, 1); std::string message; if (lua_isstring(L, 2)) { message = std::string("Kicked: ") + lua_tostring(L, 2); } else { message = "Kicked."; } RemotePlayer *player = dynamic_cast<ServerEnvironment *>(getEnv(L))->getPlayer(name); if (player == NULL) { lua_pushboolean(L, false); // No such player return 1; } getServer(L)->DenyAccess_Legacy(player->peer_id, utf8_to_wide(message)); lua_pushboolean(L, true); return 1; } // unban_player_or_ip() int ModApiServer::l_unban_player_or_ip(lua_State *L) { NO_MAP_LOCK_REQUIRED; const char * ip_or_name = luaL_checkstring(L, 1); getServer(L)->unsetIpBanned(ip_or_name); lua_pushboolean(L, true); return 1; } // show_formspec(playername,formname,formspec) int ModApiServer::l_show_formspec(lua_State *L) { NO_MAP_LOCK_REQUIRED; const char *playername = luaL_checkstring(L, 1); const char *formname = luaL_checkstring(L, 2); const char *formspec = luaL_checkstring(L, 3); if(getServer(L)->showFormspec(playername,formspec,formname)) { lua_pushboolean(L, true); }else{ lua_pushboolean(L, false); } return 1; } // get_current_modname() int ModApiServer::l_get_current_modname(lua_State *L) { NO_MAP_LOCK_REQUIRED; lua_rawgeti(L, LUA_REGISTRYINDEX, CUSTOM_RIDX_CURRENT_MOD_NAME); return 1; } // get_modpath(modname) int ModApiServer::l_get_modpath(lua_State *L) { NO_MAP_LOCK_REQUIRED; std::string modname = luaL_checkstring(L, 1); const ModSpec *mod = getServer(L)->getModSpec(modname); if (!mod) { lua_pushnil(L); return 1; } lua_pushstring(L, mod->path.c_str()); return 1; } // get_modnames() // the returned list is sorted alphabetically for you int ModApiServer::l_get_modnames(lua_State *L) { NO_MAP_LOCK_REQUIRED; // Get a list of mods std::vector<std::string> modlist; getServer(L)->getModNames(modlist); // Take unsorted items from mods_unsorted and sort them into // mods_sorted; not great performance but the number of mods on a // server will likely be small. std::sort(modlist.begin(), modlist.end()); // Package them up for Lua lua_createtable(L, modlist.size(), 0); std::vector<std::string>::iterator iter = modlist.begin(); for (u16 i = 0; iter != modlist.end(); iter++) { lua_pushstring(L, iter->c_str()); lua_rawseti(L, -2, ++i); } return 1; } // get_worldpath() int ModApiServer::l_get_worldpath(lua_State *L) { NO_MAP_LOCK_REQUIRED; std::string worldpath = getServer(L)->getWorldPath(); lua_pushstring(L, worldpath.c_str()); return 1; } // sound_play(spec, parameters) int ModApiServer::l_sound_play(lua_State *L) { NO_MAP_LOCK_REQUIRED; SimpleSoundSpec spec; read_soundspec(L, 1, spec); ServerSoundParams params; read_server_sound_params(L, 2, params); s32 handle = getServer(L)->playSound(spec, params); lua_pushinteger(L, handle); return 1; } // sound_stop(handle) int ModApiServer::l_sound_stop(lua_State *L) { NO_MAP_LOCK_REQUIRED; int handle = luaL_checkinteger(L, 1); getServer(L)->stopSound(handle); return 0; } // is_singleplayer() int ModApiServer::l_is_singleplayer(lua_State *L) { NO_MAP_LOCK_REQUIRED; lua_pushboolean(L, getServer(L)->isSingleplayer()); return 1; } // notify_authentication_modified(name) int ModApiServer::l_notify_authentication_modified(lua_State *L) { NO_MAP_LOCK_REQUIRED; std::string name = ""; if(lua_isstring(L, 1)) name = lua_tostring(L, 1); getServer(L)->reportPrivsModified(name); return 0; } // get_last_run_mod() int ModApiServer::l_get_last_run_mod(lua_State *L) { NO_MAP_LOCK_REQUIRED; lua_rawgeti(L, LUA_REGISTRYINDEX, CUSTOM_RIDX_CURRENT_MOD_NAME); const char *current_mod = lua_tostring(L, -1); if (current_mod == NULL || current_mod[0] == '\0') { lua_pop(L, 1); lua_pushstring(L, getScriptApiBase(L)->getOrigin().c_str()); } return 1; } // set_last_run_mod(modname) int ModApiServer::l_set_last_run_mod(lua_State *L) { NO_MAP_LOCK_REQUIRED; #ifdef SCRIPTAPI_DEBUG const char *mod = lua_tostring(L, 1); getScriptApiBase(L)->setOriginDirect(mod); //printf(">>>> last mod set from Lua: %s\n", mod); #endif return 0; } #ifndef NDEBUG // cause_error(type_of_error) int ModApiServer::l_cause_error(lua_State *L) { NO_MAP_LOCK_REQUIRED; std::string type_of_error = "none"; if(lua_isstring(L, 1)) type_of_error = lua_tostring(L, 1); errorstream << "Error handler test called, errortype=" << type_of_error << std::endl; if(type_of_error == "segv") { volatile int* some_pointer = 0; errorstream << "Cause a sigsegv now: " << (*some_pointer) << std::endl; } else if (type_of_error == "zerodivision") { unsigned int some_number = porting::getTimeS(); unsigned int zerovalue = 0; unsigned int result = some_number / zerovalue; errorstream << "Well this shouldn't ever be shown: " << result << std::endl; } else if (type_of_error == "exception") { throw BaseException("Errorhandler test fct called"); } return 0; } #endif void ModApiServer::Initialize(lua_State *L, int top) { API_FCT(request_shutdown); API_FCT(get_server_status); API_FCT(get_server_uptime); API_FCT(get_worldpath); API_FCT(is_singleplayer); API_FCT(get_current_modname); API_FCT(get_modpath); API_FCT(get_modnames); API_FCT(print); API_FCT(chat_send_all); API_FCT(chat_send_player); API_FCT(show_formspec); API_FCT(sound_play); API_FCT(sound_stop); API_FCT(get_player_information); API_FCT(get_player_privs); API_FCT(get_player_ip); API_FCT(get_ban_list); API_FCT(get_ban_description); API_FCT(ban_player); API_FCT(kick_player); API_FCT(unban_player_or_ip); API_FCT(notify_authentication_modified); API_FCT(get_last_run_mod); API_FCT(set_last_run_mod); #ifndef NDEBUG API_FCT(cause_error); #endif }