Make technic_worldgen loadable before technic
authorZefram <zefram@fysh.org>
Sat, 26 Jul 2014 18:03:07 +0000 (19:03 +0100)
committerZefram <zefram@fysh.org>
Sat, 26 Jul 2014 18:20:45 +0000 (19:20 +0100)
There was a small amount of dependency of technic_worldgen on the
technic mod, for configuration loading and the top-level "technic" table.
Resolve that by sharing the configuration and top-level table between the
two mods.  This means that technic_worldgen can be loaded before technic,
permitting other mods to depend on it without depending on technic.

technic/config.lua
technic/init.lua
technic_worldgen/config.lua [new file with mode: 0644]
technic_worldgen/depends.txt
technic_worldgen/init.lua

index 1dfce66c6367fbcf7194ee71bdc171fce7fcd0f1..e512bee017d39b76159742ca6bf1a15ede49b4f2 100644 (file)
@@ -1,7 +1,4 @@
-
-local worldpath = minetest.get_worldpath()
-
-technic.config = Settings(worldpath.."/technic.conf")
+technic.config = technic.config or Settings(minetest.get_worldpath().."/technic.conf")
 
 local conf_table = technic.config:to_table()
 
@@ -9,9 +6,6 @@ local defaults = {
        enable_mining_drill = "true",
        enable_mining_laser = "true",
        enable_flashlight = "false",
-       enable_rubber_tree_generation = "true",
-       enable_marble_generation = "true",
-       enable_granite_generation = "true",
        enable_wind_mill = "false",
        enable_corium_griefing = "true",
 }
@@ -21,4 +15,3 @@ for k, v in pairs(defaults) do
                technic.config:set(k, v)
        end
 end
-
index 2349029c9de2994b0ad9eec2e2cd041ac9086429..fcd1cd96760f7b692739edc923e3801e84165129 100644 (file)
@@ -2,7 +2,7 @@
 -- namespace: technic
 -- (c) 2012-2013 by RealBadAngel <mk@realbadangel.pl>
 
-technic = {}
+technic = technic or {}
 
 local load_start = os.clock()
 local modpath = minetest.get_modpath("technic")
diff --git a/technic_worldgen/config.lua b/technic_worldgen/config.lua
new file mode 100644 (file)
index 0000000..4ac748c
--- /dev/null
@@ -0,0 +1,15 @@
+technic.config = technic.config or Settings(minetest.get_worldpath().."/technic.conf")
+
+local conf_table = technic.config:to_table()
+
+local defaults = {
+       enable_granite_generation = "true",
+       enable_marble_generation = "true",
+       enable_rubber_tree_generation = "true",
+}
+
+for k, v in pairs(defaults) do
+       if conf_table[k] == nil then
+               technic.config:set(k, v)
+       end
+end
index a72ad907f45337a2908a01da67ed1ba5ec52eb66..ac858d0b5fa3d0317f420c767c15d9ef2a399c3c 100644 (file)
@@ -1,4 +1,3 @@
 default
-technic
 intllib?
 mg?
index 7e80fd3f142d9866d863384deaf240f81d416a89..73e9fc7d210b5dd1c382cb115c6ef9ca2a0a6cf8 100644 (file)
@@ -1,5 +1,6 @@
 local modpath = minetest.get_modpath("technic_worldgen")
 
+technic = technic or {}
 technic.worldgen = {}
 if intllib then
        technic.worldgen.gettext = intllib.Getter()
@@ -7,6 +8,7 @@ else
        technic.worldgen.gettext = function(s) return s end
 end
 
+dofile(modpath.."/config.lua")
 dofile(modpath.."/nodes.lua")
 dofile(modpath.."/oregen.lua")
 dofile(modpath.."/crafts.lua")