464 lines
11 KiB
Lua
464 lines
11 KiB
Lua
-- namespace: technic
|
|
-- (c) 2012-2013 by RealBadAngel <mk@realbadangel.pl>
|
|
|
|
-- Mineclone2 Support
|
|
stone_sounds = nil
|
|
if minetest.get_modpath("mcl_sounds") then
|
|
stone_sounds = mcl_sounds.node_sound_stone_defaults()
|
|
else
|
|
stone_sounds = default.node_sound_stone_defaults()
|
|
end
|
|
|
|
mt_light_max = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
mt_light_max = mcl_core.LIGHT_MAX
|
|
else
|
|
mt_light_max = default.LIGHT_MAX
|
|
end
|
|
|
|
copper_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
copper_ingrediant = "mcl_copper:copper_ingot"
|
|
else
|
|
copper_ingrediant = 'default:copper_ingot'
|
|
end
|
|
|
|
iron_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
iron_ingrediant = "mcl_core:iron_ingot"
|
|
else
|
|
iron_ingrediant = 'default:steel_ingot'
|
|
end
|
|
|
|
iron_lump_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
iron_lump_ingrediant = "mcl_raw_ores:raw_iron"
|
|
else
|
|
iron_lump_ingrediant = 'default:iron_lump'
|
|
end
|
|
|
|
gold_lump_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
gold_lump_ingrediant = "mcl_raw_ores:raw_gold"
|
|
else
|
|
gold_lump_ingrediant = 'default:gold_lump'
|
|
end
|
|
|
|
copper_lump_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
copper_lump_ingrediant = "mcl_raw_ores:raw_copper"
|
|
else
|
|
copper_lump_ingrediant = 'default:copper_lump'
|
|
end
|
|
|
|
mese_crystal_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
mese_crystal_ingrediant = "mesecons:wire_00000000_off"
|
|
else
|
|
mese_crystal_ingrediant = 'default:mese_crystal'
|
|
end
|
|
|
|
diamond_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
diamond_ingrediant = "mcl_core:diamond"
|
|
else
|
|
diamond_ingrediant = 'default:diamond'
|
|
end
|
|
|
|
glass_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
glass_ingrediant = "mcl_core:glass"
|
|
else
|
|
glass_ingrediant = 'default:glass'
|
|
end
|
|
|
|
brick_block_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
brick_block_ingrediant = "mcl_core:brick_block"
|
|
else
|
|
brick_block_ingrediant = 'default:brick'
|
|
end
|
|
|
|
mese_block_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
mese_block_ingrediant = "mesecons_torch:redstoneblock"
|
|
else
|
|
mese_block_ingrediant = "default:mese"
|
|
end
|
|
|
|
|
|
paper_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
paper_ingrediant = "mcl_core:paper"
|
|
else
|
|
paper_ingrediant = 'default:paper'
|
|
end
|
|
|
|
|
|
obsidian_glass_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
obsidian_glass_ingrediant = "mcl_core:obsidian"
|
|
else
|
|
obsidian_glass_ingrediant = 'default:obsidian_glass'
|
|
end
|
|
|
|
obsidian_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
obsidian_ingrediant = "mcl_core:obsidian"
|
|
else
|
|
obsidian_ingrediant = 'default:obsidian'
|
|
end
|
|
|
|
green_dye_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
green_dye_ingrediant = "mcl_dye:green"
|
|
else
|
|
green_dye_ingrediant = 'dye:green'
|
|
end
|
|
|
|
blue_dye_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
blue_dye_ingrediant = "mcl_dye:blue"
|
|
else
|
|
blue_dye_ingrediant = 'dye:blue'
|
|
end
|
|
|
|
red_dye_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
red_dye_ingrediant = "mcl_dye:red"
|
|
else
|
|
red_dye_ingrediant = 'dye:red'
|
|
end
|
|
|
|
white_dye_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
white_dye_ingrediant = "mcl_dye:white"
|
|
else
|
|
white_dye_ingrediant = 'dye:white'
|
|
end
|
|
|
|
gold_ingot_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
gold_ingot_ingrediant = "mcl_core:gold_ingot"
|
|
else
|
|
gold_ingot_ingrediant = 'default:gold_ingot'
|
|
end
|
|
|
|
chest_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
chest_ingrediant = "mcl_chests:chest"
|
|
else
|
|
chest_ingrediant = "default:chest"
|
|
end
|
|
|
|
stone_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
stone_ingrediant = "mcl_core:stone"
|
|
else
|
|
stone_ingrediant = "default:stone"
|
|
end
|
|
|
|
wood_fence_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
wood_fence_ingrediant = "group:fence_wood"
|
|
else
|
|
wood_fence_ingrediant = "default:fence_wood"
|
|
end
|
|
|
|
|
|
diamond_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
diamond_ingrediant = "mcl_core:diamond"
|
|
else
|
|
diamond_ingrediant = "default:diamond"
|
|
end
|
|
|
|
bronze_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
bronze_ingrediant = "mcl_copper:copper_ingot"
|
|
else
|
|
bronze_ingrediant = 'default:bronze_ingot'
|
|
end
|
|
|
|
tin_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
tin_ingrediant = "moreores:tin_ingot"
|
|
else
|
|
tin_ingrediant = 'default:tin_ingot'
|
|
end
|
|
|
|
sandstone_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
sandstone_ingrediant = "mcl_core:sandstone"
|
|
else
|
|
sandstone_ingrediant = 'default:desert_stone'
|
|
end
|
|
|
|
sand_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
sand_ingrediant = "mcl_core:sand"
|
|
else
|
|
sand_ingrediant = 'default:sand'
|
|
end
|
|
|
|
gravel_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
gravel_ingrediant = "mcl_core:gravel"
|
|
else
|
|
gravel_ingrediant = 'default:gravel'
|
|
end
|
|
|
|
desert_stone_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
desert_stone_ingrediant = "mcl_core:redsandstone"
|
|
else
|
|
desert_stone_ingrediant = 'default:desert_stone'
|
|
end
|
|
|
|
desert_sand_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
desert_sand_ingrediant = "mcl_core:redsand"
|
|
else
|
|
desert_sand_ingrediant = 'default:desert_sand'
|
|
end
|
|
|
|
|
|
|
|
furnace_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
furnace_ingrediant = "mcl_furnaces:furnace"
|
|
else
|
|
furnace_ingrediant = 'default:furnace'
|
|
end
|
|
|
|
mossy_cobble_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
mossy_cobble_ingrediant = "mcl_core:mossycobble"
|
|
else
|
|
mossy_cobble_ingrediant = 'default:mossycobble'
|
|
end
|
|
|
|
cobble_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
cobble_ingrediant = "mcl_core:cobble"
|
|
else
|
|
cobble_ingrediant = 'default:cobble'
|
|
end
|
|
|
|
snow_block_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
snow_block_ingrediant = "mcl_core:snowblock"
|
|
else
|
|
snow_block_ingrediant = 'default:snowblock'
|
|
end
|
|
|
|
ice_block_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
ice_block_ingrediant = "mcl_core:ice"
|
|
else
|
|
ice_block_ingrediant = 'default:ice'
|
|
end
|
|
|
|
granite_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
granite_ingrediant = "mcl_core:granite"
|
|
else
|
|
granite_ingrediant = 'technic:granite'
|
|
end
|
|
|
|
granite_bricks_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
granite_bricks_ingrediant = "mcl_core:granite_smooth"
|
|
else
|
|
granite_bricks_ingrediant = 'technic:granite_bricks'
|
|
end
|
|
|
|
coal_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
coal_ingrediant = "group:coal"
|
|
else
|
|
coal_ingrediant = "default:coal_lump"
|
|
end
|
|
|
|
dirt_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
dirt_ingrediant = "mcl_core:dirt"
|
|
else
|
|
dirt_ingrediant = "default:dirt"
|
|
end
|
|
|
|
mesecons_fiber_ingrediant = nil
|
|
|
|
if minetest.get_modpath("mcl_core") then
|
|
mesecons_fiber_ingrediant = "mesecons:wire_00000000_off"
|
|
else
|
|
mesecons_fiber_ingrediant = "mesecons_materials:fiber"
|
|
end
|
|
|
|
stick_ingrediant = nil
|
|
|
|
if minetest.get_modpath("mcl_core") then
|
|
stick_ingrediant = "mcl_core:stick"
|
|
else
|
|
stick_ingrediant = "default:stick"
|
|
end
|
|
|
|
emtpy_bucket_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
emtpy_bucket_ingrediant = "mcl_buckets:bucket_empty"
|
|
else
|
|
emtpy_bucket_ingrediant = "bucket:bucket_empty"
|
|
end
|
|
|
|
water_bucket_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
water_bucket_ingrediant = "mcl_buckets:bucket_water"
|
|
else
|
|
water_bucket_ingrediant = "bucket:bucket_water"
|
|
end
|
|
|
|
-- Ingredient Variables
|
|
|
|
if minetest.get_modpath("mcl_core") then
|
|
blueberries_ingredient = "mcl_farming:blueberries" -- If available in MineClone2
|
|
grass_ingredient = "mcl_core:grass"
|
|
dry_shrub_ingredient = "mcl_core:deadbush"
|
|
junglegrass_ingredient = "mcl_core:tallgrass" -- Adjust as needed
|
|
cactus_ingredient = "mcl_core:cactus"
|
|
geranium_ingredient = "mcl_flowers:blue_orchid"
|
|
dandelion_white_ingredient = "mcl_flowers:oxeye_daisy"
|
|
dandelion_yellow_ingredient = "mcl_flowers:dandelion"
|
|
tulip_ingredient = "mcl_flowers:orange_tulip" -- Adjust for the tulip color
|
|
rose_ingredient = "mcl_flowers:poppy"
|
|
viola_ingredient = "mcl_flowers:allium"
|
|
else
|
|
-- Default Minetest Game ingredients
|
|
blueberries_ingredient = "default:blueberries"
|
|
grass_ingredient = "default:grass_1"
|
|
dry_shrub_ingredient = "default:dry_shrub"
|
|
junglegrass_ingredient = "default:junglegrass"
|
|
cactus_ingredient = "default:cactus"
|
|
geranium_ingredient = "flowers:geranium"
|
|
dandelion_white_ingredient = "flowers:dandelion_white"
|
|
dandelion_yellow_ingredient = "flowers:dandelion_yellow"
|
|
tulip_ingredient = "flowers:tulip"
|
|
rose_ingredient = "flowers:rose"
|
|
viola_ingredient = "flowers:viola"
|
|
end
|
|
|
|
-- Dye Output Variables
|
|
|
|
if minetest.get_modpath("mcl_core") then
|
|
-- MineClone2 dye names
|
|
dye_black = "mcl_dye:black"
|
|
dye_violet = "mcl_dye:violet"
|
|
dye_green = "mcl_dye:green"
|
|
dye_brown = "mcl_dye:brown"
|
|
dye_blue = "mcl_dye:blue"
|
|
dye_white = "mcl_dye:white"
|
|
dye_yellow = "mcl_dye:yellow"
|
|
dye_orange = "mcl_dye:orange"
|
|
dye_red = "mcl_dye:red"
|
|
else
|
|
-- Default Minetest Game dye names
|
|
dye_black = "dye:black"
|
|
dye_violet = "dye:violet"
|
|
dye_green = "dye:green"
|
|
dye_brown = "dye:brown"
|
|
dye_blue = "dye:blue"
|
|
dye_white = "dye:white"
|
|
dye_yellow = "dye:yellow"
|
|
dye_orange = "dye:orange"
|
|
dye_red = "dye:red"
|
|
end
|
|
|
|
dirt_with_snow_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
dirt_with_snow_ingrediant = "mcl_core:dirt_with_grass_snow"
|
|
else
|
|
dirt_with_snow_ingrediant = "default:dirt_with_snow"
|
|
end
|
|
|
|
bucket_lava_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
bucket_lava_ingrediant = "mcl_buckets:bucket_lava"
|
|
else
|
|
bucket_lava_ingrediant = "bucket:bucket_lava"
|
|
end
|
|
|
|
bucket_river_water_ingrediant = nil
|
|
if minetest.get_modpath("mcl_core") then
|
|
bucket_river_water_ingrediant = "mcl_buckets:bucket_river_water"
|
|
else
|
|
bucket_river_water_ingrediant = "bucket:bucket_river_water"
|
|
end
|
|
|
|
|
|
|
|
if not minetest.get_translator then
|
|
error("[technic] Your Minetest version is no longer supported."
|
|
.. " (version < 5.0.0)")
|
|
end
|
|
|
|
|
|
|
|
local load_start = os.clock()
|
|
|
|
technic = rawget(_G, "technic") or {}
|
|
technic.creative_mode = minetest.settings:get_bool("creative_mode")
|
|
|
|
|
|
local modpath = minetest.get_modpath("technic")
|
|
technic.modpath = modpath
|
|
|
|
|
|
-- Boilerplate to support intllib
|
|
if rawget(_G, "intllib") then
|
|
technic.getter = intllib.Getter()
|
|
else
|
|
-- Intllib copypasta: TODO replace with the client-side translation API
|
|
technic.getter = function(s,a,...)
|
|
if a==nil then return s end
|
|
a={a,...}
|
|
return s:gsub("(@?)@(%(?)(%d+)(%)?)", function(e,o,n,c)
|
|
if e==""then
|
|
return a[tonumber(n)]..(o==""and c or"")
|
|
end
|
|
return "@"..o..n..c
|
|
end)
|
|
end
|
|
end
|
|
local S = technic.getter
|
|
|
|
-- Read configuration file
|
|
dofile(modpath.."/config.lua")
|
|
|
|
-- Helper functions
|
|
dofile(modpath.."/helpers.lua")
|
|
|
|
-- Items
|
|
dofile(modpath.."/items.lua")
|
|
|
|
-- Craft recipes for items
|
|
dofile(modpath.."/crafts.lua")
|
|
|
|
-- Register functions
|
|
dofile(modpath.."/register.lua")
|
|
|
|
-- Radiation
|
|
dofile(modpath.."/radiation.lua")
|
|
|
|
-- Machines
|
|
dofile(modpath.."/machines/init.lua")
|
|
|
|
-- Tools
|
|
dofile(modpath.."/tools/init.lua")
|
|
|
|
-- Aliases for legacy node/item names
|
|
dofile(modpath.."/legacy.lua")
|
|
|
|
if minetest.settings:get_bool("log_mods") then
|
|
print(S("[Technic] Loaded in %f seconds"):format(os.clock() - load_start))
|
|
end
|
|
|