]> git.lizzy.rs Git - crafter_client.git/blobdiff - init.lua
Update README.md
[crafter_client.git] / init.lua
index 080fc8262ee5b09dfb88185d449eb9f767f693f9..7c22037e22af1b5302d54b8a712f6f78bd4ba498 100644 (file)
--- a/init.lua
+++ b/init.lua
@@ -1,31 +1,46 @@
---first we join the necessary channels so the mod can "listen"  to what the server says and "talk" to it
-weather_intake = minetest.mod_channel_join("weather_intake")
-weather = minetest.mod_channel_join("weather_nodes")
-weather_type = minetest.mod_channel_join("weather_type")
-running_send = minetest.mod_channel_join("running_send")
-player_movement_state = minetest.mod_channel_join("player.player_movement_state")
+--don't crash if not in crafter client
+for _,r in pairs(minetest.get_csm_restrictions()) do 
+       if r == true then
+               return
+       end
+end
+if not minetest.get_node_def("client_version_checker:this_is_the_signature_of_crafter00111010010001000011110000110011") then
+       return
+end
 
+nodes = nil
+function initialize_all()
+       --declare globals for now
 
-local function initialize_all()
-       --first we tell the server we're ready
-       weather_intake:send_all("READY")
-       weather_intake:leave()
-       weather_intake = nil --leave the channel
-       
        --next we load everything seperately because it's easier to work on individual files than have everything jammed into one file
        --not into seperate mods because that is unnecessary and cumbersome
        local path = minetest.get_modpath("crafter_client")
        dofile(path.."/player_input.lua")
        dofile(path.."/weather_handling.lua")
        dofile(path.."/environment_effects.lua")
+       dofile(path.."/nether.lua")
+       dofile(path.."/aether.lua")
+       dofile(path.."/waila.lua")
+       dofile(path.."/music_handling.lua")
+       dofile(path.."/version_send.lua")
+       dofile(path.."/colored_names/colored_names.lua")
+       dofile(path.."/fire_handling.lua")
+       dofile(path.."/sleeping.lua")
 end
 
---we must delay initialization until the player's camera exists in the world
---since there does not seem to be any client_loaded function
-local initialize = false
-minetest.register_globalstep(function(dtime)
-       if not initialize and minetest.camera and not vector.equals(minetest.camera:get_pos(),vector.new(0,0,0)) then
-               initialize = true
+--we must delay initialization until the player exists in the world
+local function recursive_startup_attempt()
+       local ready_to_go = minetest.localplayer
+       if ready_to_go and minetest.get_node_or_nil(minetest.localplayer:get_pos()) then
+               --good to begin
                initialize_all()
+       else
+               --try again
+               minetest.after(0,function()
+                       recursive_startup_attempt()
+               end)
        end
-end)
+end
+
+--begin initial attempt
+recursive_startup_attempt()