Skip to content
Permalink
Browse files

A few initialization cleanups

  • Loading branch information
sfan5 authored and nerzhul committed Apr 11, 2020
1 parent aa3cf40 commit f105bc8dc2444d98a9cd74a2caa0013ce2e07008
Showing with 18 additions and 6 deletions.
  1. +6 −2 src/client/client.cpp
  2. +4 −1 src/client/game.cpp
  3. +5 −3 src/script/scripting_client.cpp
  4. +3 −0 src/script/scripting_client.h
@@ -178,7 +178,7 @@ void Client::loadMods()
infostream << mod.name << " ";
infostream << std::endl;

// Load and run "mod" scripts
// Load "mod" scripts
for (const ModSpec &mod : m_mods) {
if (!string_allowed(mod.name, MODNAME_ALLOWED_CHARS)) {
throw ModError("Error loading mod \"" + mod.name +
@@ -188,7 +188,7 @@ void Client::loadMods()
scanModIntoMemory(mod.name, mod.path);
}

// Load and run "mod" scripts
// Run them
for (const ModSpec &mod : m_mods)
m_script->loadModFromMemory(mod.name);

@@ -197,10 +197,14 @@ void Client::loadMods()

// Run a callback when mods are loaded
m_script->on_mods_loaded();

// Create objects if they're ready
if (m_state == LC_Ready)
m_script->on_client_ready(m_env.getLocalPlayer());
if (m_camera)
m_script->on_camera_ready(m_camera);
if (m_minimap)
m_script->on_minimap_ready(m_minimap);
}

bool Client::checkBuiltinIntegrity()
@@ -1407,8 +1407,11 @@ bool Game::createClient(const std::string &playername,
}

mapper = client->getMinimap();
if (mapper)
if (mapper) {
mapper->setMinimapMode(MINIMAP_MODE_OFF);
if (client->modsLoaded())
client->getScript()->on_minimap_ready(mapper);
}

return true;
}
@@ -55,9 +55,6 @@ ClientScripting::ClientScripting(Client *client):
InitializeModApi(L, top);
lua_pop(L, 1);

if (client->getMinimap())
LuaMinimap::create(L, client->getMinimap());

// Push builtin initialization type
lua_pushstring(L, "client");
lua_setglobal(L, "INIT");
@@ -94,3 +91,8 @@ void ClientScripting::on_camera_ready(Camera *camera)
{
LuaCamera::create(getStack(), camera);
}

void ClientScripting::on_minimap_ready(Minimap *minimap)
{
LuaMinimap::create(getStack(), minimap);
}
@@ -28,6 +28,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
class Client;
class LocalPlayer;
class Camera;
class Minimap;

class ClientScripting:
virtual public ScriptApiBase,
public ScriptApiSecurity,
@@ -38,6 +40,7 @@ class ClientScripting:
ClientScripting(Client *client);
void on_client_ready(LocalPlayer *localplayer);
void on_camera_ready(Camera *camera);
void on_minimap_ready(Minimap *minimap);

private:
virtual void InitializeModApi(lua_State *L, int top);

0 comments on commit f105bc8

Please sign in to comment.