summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--init.lua2
-rw-r--r--node_builders.lua2
-rw-r--r--node_controllers.lua12
-rw-r--r--node_diggers.lua8
-rw-r--r--node_misc.lua6
-rw-r--r--util.lua8
6 files changed, 23 insertions, 15 deletions
diff --git a/init.lua b/init.lua
index 8ba1842..ea3476b 100644
--- a/init.lua
+++ b/init.lua
@@ -9,7 +9,7 @@ dofile( minetest.get_modpath( "digtron" ) .. "/node_controllers.lua" ) -- contro
dofile( minetest.get_modpath( "digtron" ) .."/recipes.lua" )
-digtron.cycle_time = 1.0 -- How long a digtron waits between cycles.
+digtron.cycle_time = 1 -- How many seconds a digtron waits between cycles. Auto-controllers can make this wait longer, but cannot make it shorter.
digtron.traction_factor = 3.0 -- How many digtron nodes can be moved for each adjacent solid node that the digtron has traction against
-- fuel costs. For comparison, in the default game:
diff --git a/node_builders.lua b/node_builders.lua
index 41bc85a..079776d 100644
--- a/node_builders.lua
+++ b/node_builders.lua
@@ -5,7 +5,7 @@ minetest.register_node("digtron:builder", {
description = "Builder Unit",
groups = {cracky = 3, oddly_breakable_by_hand=3, digtron = 4},
drop = "digtron:builder",
- sounds = default.node_sound_metal_defaults(),
+ sounds = digtron.metal_sounds,
paramtype2= "facedir",
tiles = {
"digtron_plate.png^[transformR90",
diff --git a/node_controllers.lua b/node_controllers.lua
index b9c3813..c66f252 100644
--- a/node_controllers.lua
+++ b/node_controllers.lua
@@ -238,7 +238,7 @@ minetest.register_node("digtron:controller", {
description = "Digtron Control Unit",
groups = {cracky = 3, oddly_breakable_by_hand = 3, digtron = 1},
drop = "digtron:controller",
- sounds = default.node_sound_metal_defaults(),
+ sounds = digtron.metal_sounds,
paramtype2= "facedir",
-- Aims in the +Z direction by default
tiles = {
@@ -328,7 +328,7 @@ digtron.auto_cycle = function(pos)
meta:set_string("infotext", status)
if cycle > 0 then
- minetest.after(math.max(digtron.cycle_time, meta:get_int("period")), digtron.auto_cycle, newpos)
+ minetest.after(meta:get_int("period"), digtron.auto_cycle, newpos)
else
meta:set_string("formspec", auto_formspec)
end
@@ -339,7 +339,7 @@ minetest.register_node("digtron:auto_controller", {
description = "Digtron Automatic Control Unit",
groups = {cracky = 3, oddly_breakable_by_hand = 3, digtron = 1},
drop = "digtron:auto_controller",
- sounds = default.node_sound_metal_defaults(),
+ sounds = digtron.metal_sounds,
paramtype2= "facedir",
-- Aims in the +Z direction by default
tiles = {
@@ -364,7 +364,7 @@ minetest.register_node("digtron:auto_controller", {
meta:set_string("infotext", "Heat remaining in controller furnace: 0")
meta:set_string("formspec", auto_formspec)
-- Reusing offset and period to keep the digtron node-moving code simple, and the names still fit well
- meta:set_int("period", 1)
+ meta:set_int("period", digtron.cycle_time)
meta:set_int("offset", 0)
end,
@@ -374,7 +374,7 @@ minetest.register_node("digtron:auto_controller", {
local period = tonumber(fields.period)
if period and period > 0 then
- meta:set_int("period", math.floor(period))
+ meta:set_int("period", math.max(digtron.cycle_time, math.floor(period)))
end
if offset and offset >= 0 then
@@ -406,7 +406,7 @@ minetest.register_node("digtron:pusher", {
description = "Digtron Pusher Unit",
groups = {cracky = 3, oddly_breakable_by_hand=3, digtron = 1},
drop = "digtron:pusher",
- sounds = default.node_sound_metal_defaults(),
+ sounds = digtron.metal_sounds,
paramtype2= "facedir",
-- Aims in the +Z direction by default
tiles = {
diff --git a/node_diggers.lua b/node_diggers.lua
index 0de5e2e..9d60010 100644
--- a/node_diggers.lua
+++ b/node_diggers.lua
@@ -44,7 +44,7 @@ minetest.register_node("digtron:digger", {
description = "Digger Head",
groups = {cracky = 3, oddly_breakable_by_hand=3, digtron = 3},
drop = "digtron:digger",
- sounds = default.node_sound_metal_defaults(),
+ sounds = digtron.metal_sounds,
paramtype = "light",
paramtype2= "facedir",
@@ -90,7 +90,7 @@ minetest.register_node("digtron:intermittent_digger", {
description = "Intermittent Digger Head",
groups = {cracky = 3, oddly_breakable_by_hand=3, digtron = 3},
drop = "digtron:intermittent_digger",
- sounds = default.node_sound_metal_defaults(),
+ sounds = digtron.metal_sounds,
paramtype = "light",
paramtype2= "facedir",
@@ -145,7 +145,7 @@ minetest.register_node("digtron:soft_digger", {
description = "Soft Material Digger Head",
groups = {cracky = 3, oddly_breakable_by_hand=3, digtron = 3},
drop = "digtron:soft_digger",
- sounds = default.node_sound_metal_defaults(),
+ sounds = digtron.metal_sounds,
paramtype = "light",
paramtype2= "facedir",
@@ -198,7 +198,7 @@ minetest.register_node("digtron:intermittent_soft_digger", {
description = "Intermittent Soft Material Digger Head",
groups = {cracky = 3, oddly_breakable_by_hand=3, digtron = 3},
drop = "digtron:intermittent_soft_digger",
- sounds = default.node_sound_metal_defaults(),
+ sounds = digtron.metal_sounds,
paramtype = "light",
paramtype2= "facedir",
diff --git a/node_misc.lua b/node_misc.lua
index c6bc8d4..ca28318 100644
--- a/node_misc.lua
+++ b/node_misc.lua
@@ -5,7 +5,7 @@ minetest.register_node("digtron:structure", {
drop = "digtron:structure",
tiles = {"digtron_plate.png"},
drawtype = "nodebox",
- sounds = default.node_sound_metal_defaults(),
+ sounds = digtron.metal_sounds,
climbable = true,
walkable = false,
paramtype = "light",
@@ -54,7 +54,7 @@ minetest.register_node("digtron:inventory",
description = "Digtron Inventory Hopper",
groups = {cracky = 3, oddly_breakable_by_hand=3, digtron = 2},
drop = "digtron:inventory",
- sounds = default.node_sound_metal_defaults(),
+ sounds = digtron.metal_sounds,
paramtype2= "facedir",
tiles = {"digtron_inventory.png"},
@@ -91,7 +91,7 @@ minetest.register_node("digtron:fuelstore",
description = "Digtron Fuel Hopper",
groups = {cracky = 3, oddly_breakable_by_hand=3, digtron = 5},
drop = "digtron:fuelstore",
- sounds = default.node_sound_metal_defaults(),
+ sounds = digtron.metal_sounds,
paramtype2= "facedir",
tiles = {"digtron_fuelstore.png"},
diff --git a/util.lua b/util.lua
index 73c72dc..e27e59b 100644
--- a/util.lua
+++ b/util.lua
@@ -4,6 +4,14 @@ digtron = {}
dofile( minetest.get_modpath( "digtron" ) .. "/util_item_place_node.lua" ) -- separated out to avoid potential for license complexity
+-- Apparently node_sound_metal_defaults is a newer thing, I ran into games using an older version of the default mod without it.
+if default.node_sound_metal_defaults ~= nil then
+ digtron.metal_sounds = default.node_sound_metal_defaults()
+else
+ digtron.metal_sounds = default.node_sound_stone_defaults()
+end
+
+
digtron.find_new_pos = function(pos, facing)
-- finds the point one node "forward", based on facing
local dir = minetest.facedir_to_dir(facing)