summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthetaepsilon-gamedev <thetaepsilon-gamedev@noreply.users.github.com>2017-10-20 22:46:51 +0100
committerthetaepsilon-gamedev <thetaepsilon-gamedev@noreply.users.github.com>2017-10-20 22:46:51 +0100
commit75978a020751ce5591d0fd0b8adeaa32422b2fe5 (patch)
treeb1ab231598b02f7342c95ded253c8f671c9b1bd1
parent538e33c537c2c6347a7a2251392fedbf5ee07ba3 (diff)
downloadpipeworks-75978a020751ce5591d0fd0b8adeaa32422b2fe5.tar
pipeworks-75978a020751ce5591d0fd0b8adeaa32422b2fe5.tar.gz
pipeworks-75978a020751ce5591d0fd0b8adeaa32422b2fe5.tar.bz2
pipeworks-75978a020751ce5591d0fd0b8adeaa32422b2fe5.tar.xz
pipeworks-75978a020751ce5591d0fd0b8adeaa32422b2fe5.zip
refactor pressure logic toggle to act as option enum
-rw-r--r--default_settings.lua18
-rw-r--r--init.lua6
-rw-r--r--pipes.lua2
-rw-r--r--pressure_logic/abm_register.lua2
-rw-r--r--pressure_logic/flowable_node_registry_install.lua4
5 files changed, 17 insertions, 15 deletions
diff --git a/default_settings.lua b/default_settings.lua
index c211153..7d8bfd9 100644
--- a/default_settings.lua
+++ b/default_settings.lua
@@ -29,16 +29,22 @@ local settings = {
delete_item_on_clearobject = true,
}
+pipeworks.toggles = {}
-- documentation for toggles controlling pressure logic features.
-- do not edit this file directly;
-- instead, create pipeworks_settings.txt in your world directory,
--- and copy the uncommented lines from the block comment below into it.
+-- and copy the uncommented lines from the block comments below into it.
+--[[
+-- flow logic implementation.
+-- set to one of the following strings.
+-- "classic": classic mode written by VanessaE
+-- "pressure": pressure metadata based, written by thetaepsilon.
+-- has caveats such as water speed issues though.
+-- setting to nil inhibits all flow logic, useful for debugging ABM crashes,
+-- or for rendering the pipes purely decorative.
+]]
+pipeworks.toggles.pipe_mode = "classic"
--[[
--- enable pressure logic mode instead of "classic" mode.
--- WARNING: this changes a few things, most noticeably how pumps work.
--- you'll want to make sure they're fed by an infinite spring.
-pipeworks.toggles.pressure_logic = true
-
-- force-enable finite water handling mode.
-- this changes the way that water node placement is handled;
-- volume will always be preserved,
diff --git a/init.lua b/init.lua
index 9ce6a0f..e908bcc 100644
--- a/init.lua
+++ b/init.lua
@@ -15,17 +15,13 @@ pipeworks.modpath = minetest.get_modpath("pipeworks")
dofile(pipeworks.modpath.."/default_settings.lua")
-- Read the external config file if it exists.
-
-
--- please add any new feature toggles to be a flag in this table...
-pipeworks.toggles = {}
local worldsettingspath = pipeworks.worldpath.."/pipeworks_settings.txt"
local worldsettingsfile = io.open(worldsettingspath, "r")
if worldsettingsfile then
worldsettingsfile:close()
dofile(worldsettingspath)
end
-if pipeworks.toggles.pressure_logic then
+if pipeworks.toggles.pipe_mode == "pressure" then
minetest.log("warning", "pipeworks pressure logic mode comes with caveats and differences in behaviour, you have been warned!")
end
diff --git a/pipes.lua b/pipes.lua
index 2acdfa9..602daab 100644
--- a/pipes.lua
+++ b/pipes.lua
@@ -213,7 +213,7 @@ pipeworks.pipes_empty_nodenames = pipes_empty_nodenames
-if not pipeworks.toggles.pressure_logic then
+if pipeworks.toggles.pipe_mode == "classic" then
diff --git a/pressure_logic/abm_register.lua b/pressure_logic/abm_register.lua
index a8e3abc..4019eef 100644
--- a/pressure_logic/abm_register.lua
+++ b/pressure_logic/abm_register.lua
@@ -10,7 +10,7 @@ local flowlogic = pipeworks.flowlogic
-- see flowlogic.run() in abms.lua.
local register_flowlogic_abm = function(nodename)
- if pipeworks.toggles.pressure_logic then
+ if pipeworks.toggles.pipe_mode == "pressure" then
minetest.register_abm({
label = "pipeworks new_flow_logic run",
nodenames = { nodename },
diff --git a/pressure_logic/flowable_node_registry_install.lua b/pressure_logic/flowable_node_registry_install.lua
index 9bb9e9a..5cf1941 100644
--- a/pressure_logic/flowable_node_registry_install.lua
+++ b/pressure_logic/flowable_node_registry_install.lua
@@ -20,14 +20,14 @@ local insertbase = function(nodename)
if checkexists(nodename) then error("pipeworks.flowables duplicate registration!") end
pipeworks.flowables.list.all[nodename] = true
-- table.insert(pipeworks.flowables.list.nodenames, nodename)
- if pipeworks.toggles.pressure_logic then
+ if pipeworks.toggles.pipe_mode == "pressure" then
abmregister.flowlogic(nodename)
end
end
local regwarning = function(kind, nodename)
local tail = ""
- if not pipeworks.toggles.pressure_logic then tail = " but pressure logic not enabled" end
+ if pipeworks.toggles.pipe_mode ~= "pressure" then tail = " but pressure logic not enabled" end
--pipeworks.logger(kind.." flow logic registry requested for "..nodename..tail)
end