From 00328622d9cc38a7768a7bf449f5c52ddba666f7 Mon Sep 17 00:00:00 2001
From: ShadowNinja <noreply@gmail.com>
Date: Sat, 27 Apr 2013 19:53:12 +0200
Subject: [PATCH] Store configuration in the world directory.

---
 technic/config.lua |   49 ++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 42 insertions(+), 7 deletions(-)

diff --git a/technic/config.lua b/technic/config.lua
index f237968..f546cf6 100644
--- a/technic/config.lua
+++ b/technic/config.lua
@@ -1,7 +1,42 @@
-enable_technic_inventory=true
-enable_mining_drill=true
-enable_mining_laser=true
-enable_flashlight=true
-enable_rubber_tree_generation=true
-enable_marble_generation=true
-enable_granite_generation=true
+technic.config = {}
+
+technic.config.loaded = {}
+
+technic.config.default = {
+	enable_mining_drill = "true",
+	enable_mining_laser = "true",
+	enable_flashlight = "true",
+	enable_item_drop = "true",
+	enable_item_pickup = "true",
+	enable_rubber_tree_generation = "true",
+	enable_marble_generation = "true",
+	enable_granite_generation = "true"
+}
+
+function technic.config:load(filename)
+	file, error = io.open(filename, "r")
+	if error then return end
+	local line = file:read("*l")
+	while line do
+		local found, _, setting, value = line:find("^([^#%s=]+)%s?=%s?([^%s#]+)")
+		if found then
+			self.loaded[setting] = value
+		end
+		line = file:read("*l")
+	end
+	file:close()
+end
+
+technic.config:load(minetest.get_worldpath().."/technic.conf")
+
+function technic.config:get(setting)
+	if self.loaded[setting] then
+		return self.loaded[setting]
+	else
+		return self.default[setting]
+	end
+end
+
+function technic.config:getBool(setting)
+	return string.lower(self:get(setting)) == "true"
+end

--
Gitblit v1.8.0