2016-12-10 17:23:08 -08:00
-- BASIC_MACHINES: lightweight automation mod for minetest
-- minetest 0.4.14
-- (c) 2015-2016 rnd
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
basic_machines = { } ;
2018-11-13 19:09:03 -08:00
basic_machines.tonumber = function ( number )
local nr = tonumber ( number )
-- nil check
if not nr then
nr = 0
end
-- NaN check
if nr ~= nr then
nr = 0
end
-- infinite number check
if not ( nr > - math.huge and nr < math.huge ) then
nr = 0
end
2016-12-10 17:23:08 -08:00
2018-11-13 19:09:03 -08:00
-- prevent voxel manip crash for large numbers
if nr > 99 then
nr = 99
end
if nr < - 99 then
nr = - 99
end
return nr
end
2018-06-16 05:58:45 -07:00
2016-12-10 17:23:08 -08:00
dofile ( minetest.get_modpath ( " basic_machines " ) .. " /mark.lua " ) -- used for markings, borrowed and adapted from worldedit mod
dofile ( minetest.get_modpath ( " basic_machines " ) .. " /mover.lua " ) -- mover, detector, keypad, distributor
dofile ( minetest.get_modpath ( " basic_machines " ) .. " /technic_power.lua " ) -- technic power for mover
2016-12-28 08:02:23 -08:00
dofile ( minetest.get_modpath ( " basic_machines " ) .. " /recycler.lua " ) -- recycle old used tools
2016-12-10 17:23:08 -08:00
dofile ( minetest.get_modpath ( " basic_machines " ) .. " /grinder.lua " ) -- grind materials into dusts
2017-01-06 09:59:11 -08:00
dofile ( minetest.get_modpath ( " basic_machines " ) .. " /autocrafter.lua " ) -- borrowed and adapted from pipeworks mod
2017-08-02 02:41:26 -07:00
dofile ( minetest.get_modpath ( " basic_machines " ) .. " /constructor.lua " ) -- enable crafting of all machines
2016-05-12 03:23:42 -07:00
2016-12-04 14:37:57 -08:00
dofile ( minetest.get_modpath ( " basic_machines " ) .. " /protect.lua " ) -- enable interaction with players, adds local on protect/chat event handling
2016-12-10 17:23:08 -08:00
-- OPTIONAL ADDITIONAL STUFF ( comment to disable )
2018-11-13 19:09:03 -08:00
dofile ( minetest.get_modpath ( " basic_machines " ) .. " /ball.lua " ) -- interactive flying ball, can activate blocks or be used as a weapon
2016-12-10 17:23:08 -08:00
-- dofile(minetest.get_modpath("basic_machines").."/enviro.lua") -- enviro blocks that can change surrounding enviroment physics, uncomment spawn/join code to change global physics, disabled by default
2018-11-13 19:09:03 -08:00
-- minetest.after(0, function()
2017-07-30 14:29:02 -07:00
-- dofile(minetest.get_modpath("basic_machines").."/mesecon_doors.lua") -- if you want open/close doors with signal, also steel doors are made impervious to dig through, removal by repeat punch
2016-12-10 17:23:08 -08:00
-- dofile(minetest.get_modpath("basic_machines").."/mesecon_lights.lua") -- adds ability for other light blocks to toggle light
2017-07-30 14:29:02 -07:00
-- end)
2016-12-10 17:23:08 -08:00
-- MACHINE PRIVILEGE
minetest.register_privilege ( " machines " , {
description = " Player is expert basic_machine user: his machines work while not present on server, can spawn more than 2 balls at once " ,
} )
-- machines fuel related recipes
-- CHARCOAL
minetest.register_craftitem ( " basic_machines:charcoal " , {
description = " Wood charcoal " ,
2017-01-08 03:07:33 -08:00
inventory_image = " charcoal.png " ,
2016-12-10 17:23:08 -08:00
} )
minetest.register_craft ( {
type = ' cooking ' ,
recipe = " default:tree " ,
cooktime = 30 ,
output = " basic_machines:charcoal " ,
} )
minetest.register_craft ( {
output = " default:coal_lump " ,
recipe = {
{ " basic_machines:charcoal " } ,
{ " basic_machines:charcoal " } ,
}
} )
minetest.register_craft ( {
type = " fuel " ,
recipe = " basic_machines:charcoal " ,
-- note: to make it you need to use 1 tree block for fuel + 1 tree block, thats 2, caloric value 2*30=60
burntime = 40 , -- coal lump has 40, tree block 30, coal block 370 (9*40=360!)
} )
2017-12-28 14:50:23 -08:00
-- add since minetest doesnt have moreores tin ingot recipe
minetest.register_craft ( {
output = " default:tin_ingot " ,
recipe = {
{ " moreores:tin_ingot " } ,
}
} )
2017-12-29 04:09:27 -08:00
-- COMPATIBILITY
minetest.register_alias ( " basic_machines:battery " , " basic_machines:battery_0 " )
2017-12-21 07:14:02 -08:00
print ( " [MOD] basic_machines " .. basic_machines.version .. " loaded. " )