Improve code

master
paramat 2015-04-11 01:05:56 +01:00
parent 273a1a16b4
commit 5a592aeef9
5 changed files with 227 additions and 266 deletions

View File

@ -1,4 +1,4 @@
moonrealm 0.8.2 by paramat moonrealm 0.9.1 by paramat
For Minetest 0.4.12 or later For Minetest 0.4.12 or later
Depends default Depends default
Licenses: Code LGPL 2.1. Media CC BY-SA Licenses: Code LGPL 2.1. Media CC BY-SA
@ -6,15 +6,12 @@ Licenses: Code LGPL 2.1. Media CC BY-SA
Version changes: Version changes:
Shell drops nothing Call this 0.9.1, 0.8.2 should have been called 0.9.0
Simpler appletree with vi = vi + 1 optimisation, more apples GRADCEN = 1 for terrain consistent with previous versions
New licences Use default ice texture
paramtype = "light" for light sources Mod is now for singlenode mapgen only
No longer override day night ratio on joinplayer to avoid darkness Move spawnplayer function to init.lua, avoids duplication of parameters
Set SPAWNEGG in functions.lua to enable spawnegg spawning in moonrealm Cleanup crafting code
Moonrealm mese glows and drops default:mese
Shorten lines, cleanup code, fix undeclared globals
Noise objects created only once
Crafting Crafting

View File

@ -73,7 +73,7 @@ function moonrealm_appletree(pos)
vm:write_to_map() vm:write_to_map()
vm:update_map() vm:update_map()
print ("[moonrealm] Appletree sapling grows") print ("[moonrealm] moonrealm apple tree sapling grows")
end end
@ -108,7 +108,7 @@ minetest.register_on_dignode(function(pos, oldnode, digger)
vm:set_data(data) vm:set_data(data)
vm:write_to_map() vm:write_to_map()
vm:update_map() vm:update_map()
print ("[moonrealm] MR air flows into hole") print ("[moonrealm] moonrealm air flows into hole")
return return
end end
end end
@ -121,7 +121,7 @@ minetest.register_on_dignode(function(pos, oldnode, digger)
vm:set_data(data) vm:set_data(data)
vm:write_to_map() vm:write_to_map()
vm:update_map() vm:update_map()
print ("[moonrealm] Vacuum flows into hole") print ("[moonrealm] moonrealm vacuum flows into hole")
end) end)
@ -160,7 +160,7 @@ minetest.register_abm({
if nodid == c_vacuum then if nodid == c_vacuum then
data[vi] = c_lsair data[vi] = c_lsair
minetest.get_meta({x=x+i,y=y+j,z=z+k}):set_int("spread", (spread - 1)) minetest.get_meta({x=x+i,y=y+j,z=z+k}):set_int("spread", (spread - 1))
print ("[moonrealm] MR air spreads") print ("[moonrealm] moonrealm air spreads")
end end
end end
vi = vi + 1 vi = vi + 1
@ -209,7 +209,7 @@ minetest.register_abm({
or nodid == c_dustp1 or nodid == c_dustp1
or nodid == c_dustp2 then or nodid == c_dustp2 then
data[vi] = c_soil data[vi] = c_soil
print ("[moonrealm] Hydroponic liquid saturates") print ("[moonrealm] hydroponic liquid saturates")
end end
end end
vi = vi + 1 vi = vi + 1
@ -265,7 +265,7 @@ minetest.register_abm({
vm:write_to_map() vm:write_to_map()
vm:update_map() vm:update_map()
print ("[moonrealm] Moon soil dries") print ("[moonrealm] moonrealm soil dries")
end, end,
}) })
@ -275,207 +275,9 @@ minetest.register_abm({
minetest.register_abm({ minetest.register_abm({
nodenames = {"moonrealm:sapling"}, nodenames = {"moonrealm:sapling"},
interval = 31, interval = 31,
chance = 5, chance = 7,
action = function(pos, node, active_object_count, active_object_count_wider) action = function(pos, node, active_object_count, active_object_count_wider)
moonrealm_appletree(pos) moonrealm_appletree(pos)
end, end,
}) })
-- Spawn player function, dependant on chunk size of 80 nodes
function moonrealm_spawnplayer(player)
local GRADCEN = 0 -- -- Gradient centre / terrain centre average level
local CENAMP = 64 -- -- Grad centre amplitude, terrain centre is varied by this
local HIGRAD = 128 -- -- Surface generating noise gradient above gradcen, controls depth of upper terrain
local LOGRAD = 128 -- -- Surface generating noise gradient below gradcen, controls depth of lower terrain
local HEXP = 0.5 -- -- Noise offset exponent above gradcen, 1 = normal 3D perlin terrain
local LEXP = 2 -- -- Noise offset exponent below gradcen
local STOT = 0.04 -- -- Stone density threshold, depth of dust
local PSCA = 16 -- Player scatter from world centre in chunks (80 nodes).
local xsp
local ysp
local zsp
local np_terrain = {
offset = 0,
scale = 1,
spread = {x=512, y=512, z=512},
seed = 58588900033,
octaves = 6,
persist = 0.67
}
local np_terralt = {
offset = 0,
scale = 1,
spread = {x=414, y=414, z=414},
seed = 13331930910,
octaves = 6,
persist = 0.67
}
local np_smooth = {
offset = 0,
scale = 1,
spread = {x=828, y=828, z=828},
seed = 113,
octaves = 4,
persist = 0.4
}
local np_fault = {
offset = 0,
scale = 1,
spread = {x=414, y=828, z=414},
seed = 14440002,
octaves = 4,
persist = 0.5
}
local np_gradcen = {
offset = 0,
scale = 1,
spread = {x=1024, y=1024, z=1024},
seed = 9344,
octaves = 4,
persist = 0.4
}
local np_terblen = {
offset = 0,
scale = 1,
spread = {x=2048, y=2048, z=2048},
seed = -13002,
octaves = 3,
persist = 0.4
}
for chunk = 1, 64 do
print ("[moonrealm] searching for spawn "..chunk)
local x0 = 80 * math.random(-PSCA, PSCA) - 32
local z0 = 80 * math.random(-PSCA, PSCA) - 32
local y0 = 80 * math.floor((GRADCEN + 32) / 80) - 32
local x1 = x0 + 79
local z1 = z0 + 79
local y1 = y0 + 79
local sidelen = 80
local chulens = {x=sidelen, y=sidelen, z=sidelen}
local minpos = {x=x0, y=y0, z=z0}
local minposd = {x=x0, y=z0}
local nvals_terrain = minetest.get_perlin_map(np_terrain, chulens):get3dMap_flat(minpos)
local nvals_terralt = minetest.get_perlin_map(np_terralt, chulens):get3dMap_flat(minpos)
local nvals_smooth = minetest.get_perlin_map(np_smooth, chulens):get3dMap_flat(minpos)
local nvals_fault = minetest.get_perlin_map(np_fault, chulens):get3dMap_flat(minpos)
local nvals_terblen = minetest.get_perlin_map(np_terblen, chulens):get2dMap_flat(minposd)
local nvals_gradcen = minetest.get_perlin_map(np_gradcen, chulens):get2dMap_flat(minposd)
local nixz = 1
local nixyz = 1
local stable = {}
for z = z0, z1 do
for y = y0, y1 do
for x = x0, x1 do
local si = x - x0 + 1
local grad
local density
local terblen = math.max(math.min(math.abs(nvals_terblen[nixz]) * 4, 1.5), 0.5) - 0.5
local gradcen = GRADCEN + nvals_gradcen[nixz] * CENAMP
if y > gradcen then
grad = -((y - gradcen) / HIGRAD) ^ HEXP
else
grad = ((gradcen - y) / LOGRAD) ^ LEXP
end
if nvals_fault[nixyz] >= 0 then
density = (nvals_terrain[nixyz] + nvals_terralt[nixyz]) / 2 * (1 - terblen)
+ nvals_smooth[nixyz] * terblen + grad
else
density = (nvals_terrain[nixyz] - nvals_terralt[nixyz]) / 2 * (1 - terblen)
- nvals_smooth[nixyz] * terblen + grad
end
if density >= STOT then
stable[si] = true
elseif stable[si] and density < 0 and terblen == 1 then
ysp = y + 4
xsp = x
zsp = z
break
end
nixz = nixz + 1
nixyz = nixyz + 1
end
if ysp then
break
end
nixz = nixz - 80
end
if ysp then
break
end
nixz = nixz + 80
end
if ysp then
break
end
end
print ("[moonrealm] spawn player ("..xsp.." "..ysp.." "..zsp..")")
player:setpos({x=xsp, y=ysp, z=zsp})
minetest.add_item({x=xsp, y=ysp+1, z=zsp}, "moonrealm:spacesuit")
minetest.add_item({x=xsp, y=ysp+1, z=zsp}, "moonrealm:sapling 4")
minetest.add_item({x=xsp, y=ysp+1, z=zsp}, "moonrealm:airlock 4")
minetest.add_item({x=xsp, y=ysp+1, z=zsp}, "moonrealm:airgen 4")
minetest.add_item({x=xsp, y=ysp+1, z=zsp}, "moonrealm:hlsource 4")
minetest.add_item({x=xsp, y=ysp+1, z=zsp}, "default:apple 64")
minetest.add_item({x=xsp, y=ysp+1, z=zsp}, "default:pick_diamond")
minetest.add_item({x=xsp, y=ysp+1, z=zsp}, "default:axe_diamond")
minetest.add_item({x=xsp, y=ysp+1, z=zsp}, "default:shovel_diamond")
local vm = minetest.get_voxel_manip()
local pos1 = {x=xsp-3, y=ysp-3, z=zsp-3}
local pos2 = {x=xsp+3, y=ysp+6, z=zsp+3}
local emin, emax = vm:read_from_map(pos1, pos2)
local area = VoxelArea:new({MinEdge=emin, MaxEdge=emax})
local data = vm:get_data()
local c_shell = minetest.get_content_id("moonrealm:shell")
local c_light = minetest.get_content_id("moonrealm:light")
local c_lsair = minetest.get_content_id("moonrealm:air")
for i = -3, 3 do
for j = -3, 6 do
for k = -3, 3 do
local vi = area:index(xsp + i, ysp + j, zsp + k)
local rad
if j <= 0 then
rad = math.sqrt(i ^ 2 + j ^ 2 + k ^ 2)
else
rad = math.sqrt(i ^ 2 + j ^ 2 * 0.3 + k ^ 2)
end
if rad <= 3.5 then
if rad >= 2.5 then
data[vi] = c_shell
elseif rad >= 1.5 then
data[vi] = c_light
else
data[vi] = c_lsair
end
end
end
end
end
vm:set_data(data)
vm:write_to_map()
vm:update_map()
end
local SPAWNEGG = true
if SPAWNEGG then
minetest.register_on_newplayer(function(player)
moonrealm_spawnplayer(player)
end)
minetest.register_on_respawnplayer(function(player)
moonrealm_spawnplayer(player)
return true
end)
end

200
init.lua
View File

@ -1,6 +1,5 @@
-- Parameters -- Parameters
local SINGLENODE = true -- Set to true if using singlenode mapgen
local YMIN = -8000 -- Approx lower limit local YMIN = -8000 -- Approx lower limit
local GRADCEN = 1 -- Gradient centre / terrain centre average level local GRADCEN = 1 -- Gradient centre / terrain centre average level
local YMAX = 8000 -- Approx upper limit local YMAX = 8000 -- Approx upper limit
@ -9,17 +8,18 @@ local XMAX = 8000
local ZMIN = -8000 local ZMIN = -8000
local ZMAX = 8000 local ZMAX = 8000
local FOOT = true -- Footprints in dust
local CENAMP = 64 -- Grad centre amplitude, terrain centre is varied by this local CENAMP = 64 -- Grad centre amplitude, terrain centre is varied by this
local HIGRAD = 128 -- Surface generating noise gradient above gradcen, controls depth of upper terrain local HIGRAD = 128 -- Surface generating noise gradient above gradcen, controls depth of upper terrain
local LOGRAD = 128 -- Surface generating noise gradient below gradcen, controls depth of lower terrain local LOGRAD = 128 -- Surface generating noise gradient below gradcen, controls depth of lower terrain
local HEXP = 0.5 -- Noise offset exponent above gradcen, 1 = normal 3D perlin terrain local HEXP = 0.5 -- Noise offset exponent above gradcen, 1 = normal 3D perlin terrain
local LEXP = 2 -- Noise offset exponent below gradcen local LEXP = 2 -- Noise offset exponent below gradcen
local STOT = 0.04 -- Stone density threshold, depth of dust local STOT = 0.04 -- Stone density threshold, depth of dust
local ICECHA = 1 / (13*13*13) -- Ice chance per dust node at terrain centre, decreases with altitude local ICECHA = 1 / (13*13*13) -- Ice chance per dust node at terrain centre, decreases with altitude
local ICEGRAD = 128 -- Ice gradient, vertical distance for no ice local ICEGRAD = 128 -- Ice gradient, vertical distance for no ice
local ORECHA = 7*7*7 -- Ore 1/x chance per stone node local ORECHA = 7*7*7 -- Ore 1/x chance per stone node
local TFIS = 0.01 -- Fissure threshold. Controls size of fissures local TFIS = 0.01 -- Fissure threshold. Controls size of fissures
local FOOT = true -- Footprints in dust
-- 3D noise for terrain -- 3D noise for terrain
@ -106,13 +106,11 @@ dofile(minetest.get_modpath("moonrealm").."/nodes.lua")
dofile(minetest.get_modpath("moonrealm").."/functions.lua") dofile(minetest.get_modpath("moonrealm").."/functions.lua")
-- Set water level in singlenode mapgen -- Set mapgen parameters
if SINGLENODE then minetest.register_on_mapgen_init(function(mgparams)
minetest.register_on_mapgen_init(function(mgparams) minetest.set_mapgen_params({mgname="singlenode", water_level=-32000})
minetest.set_mapgen_params({water_level=-32000}) end)
end)
end
-- Player positions -- Player positions
@ -178,12 +176,14 @@ minetest.register_globalstep(function(dtime)
z = player_pos[player:get_player_name()].z z = player_pos[player:get_player_name()].z
} }
end end
if math.random() < 0.1 then -- spacesuit restores breath if math.random() < 0.1 then -- spacesuit restores breath
if player:get_inventory():contains_item("main", "moonrealm:spacesuit") and if player:get_inventory():contains_item("main", "moonrealm:spacesuit") and
player:get_breath() < 10 then player:get_breath() < 10 then
player:set_breath(10) player:set_breath(10)
end end
end end
if math.random() > 0.99 then -- set gravity, skybox and override light if math.random() > 0.99 then -- set gravity, skybox and override light
local pos = player:getpos() local pos = player:getpos()
if pos.y > YMIN and pos.y < YMAX then -- entering realm if pos.y > YMIN and pos.y < YMAX then -- entering realm
@ -277,7 +277,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
local nvals_terblen = nobj_terblen:get2dMap_flat(minpos2d) local nvals_terblen = nobj_terblen:get2dMap_flat(minpos2d)
local nvals_gradcen = nobj_gradcen:get2dMap_flat(minpos2d) local nvals_gradcen = nobj_gradcen:get2dMap_flat(minpos2d)
local ni = 1 local ni3d = 1
local ni2d = 1 local ni2d = 1
local stable = {} local stable = {}
for z = z0, z1 do for z = z0, z1 do
@ -301,25 +301,26 @@ minetest.register_on_generated(function(minp, maxp, seed)
local grad local grad
local density local density
local si = x - x0 + 1 local si = x - x0 + 1
local terblen = math.max(math.min(math.abs(nvals_terblen[ni2d]) * 4, 1.5), 0.5) - 0.5 local terblen = math.max(math.min(math.abs(nvals_terblen[ni2d]) * 4,
1.5), 0.5) - 0.5
local gradcen = GRADCEN + nvals_gradcen[ni2d] * CENAMP local gradcen = GRADCEN + nvals_gradcen[ni2d] * CENAMP
if y > gradcen then if y > gradcen then
grad = -((y - gradcen) / HIGRAD) ^ HEXP grad = -((y - gradcen) / HIGRAD) ^ HEXP
else else
grad = ((gradcen - y) / LOGRAD) ^ LEXP grad = ((gradcen - y) / LOGRAD) ^ LEXP
end end
if nvals_fault[ni] >= 0 then if nvals_fault[ni3d] >= 0 then
density = (nvals_terrain[ni] + density = (nvals_terrain[ni3d] +
nvals_terralt[ni]) / 2 * (1 - terblen) nvals_terralt[ni3d]) / 2 * (1 - terblen)
+ nvals_smooth[ni] * terblen + grad + nvals_smooth[ni3d] * terblen + grad
else else
density = (nvals_terrain[ni] - density = (nvals_terrain[ni3d] -
nvals_terralt[ni]) / 2 * (1 - terblen) nvals_terralt[ni3d]) / 2 * (1 - terblen)
- nvals_smooth[ni] * terblen + grad - nvals_smooth[ni3d] * terblen + grad
end end
if density > 0 and empty then -- if terrain and node empty if density > 0 and empty then -- if terrain and node empty
local nofis = false local nofis = false
if math.abs(nvals_fissure[ni]) > TFIS then if math.abs(nvals_fissure[ni3d]) > TFIS then
nofis = true nofis = true
end end
if density >= STOT and nofis then -- stone, ores if density >= STOT and nofis then -- stone, ores
@ -361,7 +362,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
end end
stable[si] = false stable[si] = false
end end
ni = ni + 1 ni3d = ni3d + 1
ni2d = ni2d + 1 ni2d = ni2d + 1
vi = vi + 1 vi = vi + 1
end end
@ -379,3 +380,164 @@ minetest.register_on_generated(function(minp, maxp, seed)
print ("[moonrealm] "..chugent.." ms chunk ("..x0.." "..y0.." "..z0..")") print ("[moonrealm] "..chugent.." ms chunk ("..x0.." "..y0.." "..z0..")")
end) end)
-- Spawn player function, dependant on chunk size of 80 nodes
function moonrealm_spawnplayer(player)
local PSCA = 16
local xsp
local ysp
local zsp
local nobj_terrain = nil
local nobj_terralt = nil
local nobj_smooth = nil
local nobj_fault = nil
local nobj_terblen = nil
local nobj_gradcen = nil
for chunk = 1, 64 do
print ("[moonrealm] searching for spawn "..chunk)
local x0 = 80 * math.random(-PSCA, PSCA) - 32
local z0 = 80 * math.random(-PSCA, PSCA) - 32
local y0 = 80 * math.floor((GRADCEN + 32) / 80) - 32
local x1 = x0 + 79
local z1 = z0 + 79
local y1 = y0 + 79
local chulens = x1 - x0 + 1
local pmaplens2d = {x = chulens, y = chulens, z = 1}
local pmaplens3d = {x = chulens, y = chulens, z = chulens}
local minpos2d = {x = x0, y = z0}
local minpos3d = {x = x0, y = y0, z = z0}
nobj_terrain = nobj_terrain or minetest.get_perlin_map(np_terrain, pmaplens3d)
nobj_terralt = nobj_terralt or minetest.get_perlin_map(np_terralt, pmaplens3d)
nobj_smooth = nobj_smooth or minetest.get_perlin_map(np_smooth, pmaplens3d)
nobj_fault = nobj_fault or minetest.get_perlin_map(np_fault, pmaplens3d)
nobj_terblen = nobj_terblen or minetest.get_perlin_map(np_terblen, pmaplens2d)
nobj_gradcen = nobj_gradcen or minetest.get_perlin_map(np_gradcen, pmaplens2d)
local nvals_terrain = nobj_terrain:get3dMap_flat(minpos3d)
local nvals_terralt = nobj_terralt:get3dMap_flat(minpos3d)
local nvals_smooth = nobj_smooth :get3dMap_flat(minpos3d)
local nvals_fault = nobj_fault :get3dMap_flat(minpos3d)
local nvals_terblen = nobj_terblen:get2dMap_flat(minpos2d)
local nvals_gradcen = nobj_gradcen:get2dMap_flat(minpos2d)
local ni3d = 1
local ni2d = 1
local stable = {}
for z = z0, z1 do
for y = y0, y1 do
for x = x0, x1 do
local si = x - x0 + 1
local grad
local density
local terblen = math.max(math.min(math.abs(nvals_terblen[ni2d]) * 4,
1.5), 0.5) - 0.5
local gradcen = GRADCEN + nvals_gradcen[ni2d] * CENAMP
if y > gradcen then
grad = -((y - gradcen) / HIGRAD) ^ HEXP
else
grad = ((gradcen - y) / LOGRAD) ^ LEXP
end
if nvals_fault[ni3d] >= 0 then
density = (nvals_terrain[ni3d] +
nvals_terralt[ni3d]) / 2 * (1 - terblen)
+ nvals_smooth[ni3d] * terblen + grad
else
density = (nvals_terrain[ni3d] -
nvals_terralt[ni3d]) / 2 * (1 - terblen)
- nvals_smooth[ni3d] * terblen + grad
end
if density >= STOT then
stable[si] = true
elseif stable[si] and density < 0 and terblen == 1 then
ysp = y + 4
xsp = x
zsp = z
break
end
ni3d = ni3d + 1
ni2d = ni2d + 1
end
if ysp then
break
end
ni2d = ni2d - chulens
end
if ysp then
break
end
ni2d = ni2d + chulens
end
if ysp then
break
end
end
print ("[moonrealm] spawn player ("..xsp.." "..ysp.." "..zsp..")")
player:setpos({x=xsp, y=ysp, z=zsp})
minetest.add_item({x=xsp, y=ysp+1, z=zsp}, "moonrealm:spacesuit")
minetest.add_item({x=xsp, y=ysp+1, z=zsp}, "moonrealm:sapling 4")
minetest.add_item({x=xsp, y=ysp+1, z=zsp}, "moonrealm:airlock 4")
minetest.add_item({x=xsp, y=ysp+1, z=zsp}, "moonrealm:airgen 4")
minetest.add_item({x=xsp, y=ysp+1, z=zsp}, "moonrealm:hlsource 4")
minetest.add_item({x=xsp, y=ysp+1, z=zsp}, "default:apple 64")
minetest.add_item({x=xsp, y=ysp+1, z=zsp}, "default:pick_diamond")
minetest.add_item({x=xsp, y=ysp+1, z=zsp}, "default:axe_diamond")
minetest.add_item({x=xsp, y=ysp+1, z=zsp}, "default:shovel_diamond")
local vm = minetest.get_voxel_manip()
local pos1 = {x=xsp-3, y=ysp-3, z=zsp-3}
local pos2 = {x=xsp+3, y=ysp+6, z=zsp+3}
local emin, emax = vm:read_from_map(pos1, pos2)
local area = VoxelArea:new({MinEdge=emin, MaxEdge=emax})
local data = vm:get_data()
local c_shell = minetest.get_content_id("moonrealm:shell")
local c_light = minetest.get_content_id("moonrealm:light")
local c_lsair = minetest.get_content_id("moonrealm:air")
for i = -3, 3 do
for j = -3, 6 do
for k = -3, 3 do
local vi = area:index(xsp + i, ysp + j, zsp + k)
local rad
if j <= 0 then
rad = math.sqrt(i ^ 2 + j ^ 2 + k ^ 2)
else
rad = math.sqrt(i ^ 2 + j ^ 2 * 0.3 + k ^ 2)
end
if rad <= 3.5 then
if rad >= 2.5 then
data[vi] = c_shell
elseif rad >= 1.5 then
data[vi] = c_light
else
data[vi] = c_lsair
end
end
end
end
end
vm:set_data(data)
vm:write_to_map()
vm:update_map()
end
minetest.register_on_newplayer(function(player)
moonrealm_spawnplayer(player)
end)
minetest.register_on_respawnplayer(function(player)
moonrealm_spawnplayer(player)
return true
end)

View File

@ -129,7 +129,7 @@ minetest.register_node("moonrealm:airgen", {
if nodename == "moonrealm:vacuum" then if nodename == "moonrealm:vacuum" then
minetest.add_node({x=x+i,y=y+j,z=z+k},{name="moonrealm:air"}) minetest.add_node({x=x+i,y=y+j,z=z+k},{name="moonrealm:air"})
minetest.get_meta({x=x+i,y=y+j,z=z+k}):set_int("spread", 16) minetest.get_meta({x=x+i,y=y+j,z=z+k}):set_int("spread", 16)
print ("[moonrealm] Added MR air node") print ("[moonrealm] Added moonrealm air node")
end end
end end
end end
@ -141,7 +141,7 @@ minetest.register_node("moonrealm:airgen", {
minetest.register_node("moonrealm:waterice", { minetest.register_node("moonrealm:waterice", {
description = "Water Ice", description = "Water Ice",
tiles = {"moonrealm_waterice.png"}, tiles = {"default_ice.png"},
light_source = 1, light_source = 1,
paramtype = "light", paramtype = "light",
is_ground_content = false, is_ground_content = false,
@ -364,21 +364,21 @@ minetest.register_craftitem("moonrealm:lifesupport", {
-- Crafting -- Crafting
minetest.register_craft({ minetest.register_craft({
output = "moonrealm:airlock", output = "moonrealm:airlock",
recipe = { recipe = {
{"default:steel_ingot", "", "default:steel_ingot"}, {"default:steel_ingot", "", "default:steel_ingot"},
{"default:steel_ingot", "default:mese", "default:steel_ingot"}, {"default:steel_ingot", "default:mese", "default:steel_ingot"},
{"default:steel_ingot", "", "default:steel_ingot"}, {"default:steel_ingot", "", "default:steel_ingot"},
}, },
}) })
minetest.register_craft({ minetest.register_craft({
output = "moonrealm:airgen", output = "moonrealm:airgen",
recipe = { recipe = {
{"default:steel_ingot", "moonrealm:waterice", "default:steel_ingot"}, {"default:steel_ingot", "moonrealm:waterice", "default:steel_ingot"},
{"moonrealm:waterice", "default:mese", "moonrealm:waterice"}, {"moonrealm:waterice", "default:mese", "moonrealm:waterice"},
{"default:steel_ingot", "moonrealm:waterice", "default:steel_ingot"}, {"default:steel_ingot", "moonrealm:waterice", "default:steel_ingot"},
}, },
}) })
minetest.register_craft({ minetest.register_craft({
@ -389,12 +389,12 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
output = "moonrealm:hlsource", output = "moonrealm:hlsource",
recipe = { recipe = {
{"moonrealm:leaves", "moonrealm:leaves", "moonrealm:leaves"}, {"moonrealm:leaves", "moonrealm:leaves", "moonrealm:leaves"},
{"moonrealm:leaves", "moonrealm:waterice", "moonrealm:leaves"}, {"moonrealm:leaves", "moonrealm:waterice", "moonrealm:leaves"},
{"moonrealm:leaves", "moonrealm:leaves", "moonrealm:leaves"}, {"moonrealm:leaves", "moonrealm:leaves", "moonrealm:leaves"},
}, },
}) })
minetest.register_craft({ minetest.register_craft({
@ -406,12 +406,12 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
output = "default:furnace", output = "default:furnace",
recipe = { recipe = {
{"moonrealm:stone", "moonrealm:stone", "moonrealm:stone"}, {"moonrealm:stone", "moonrealm:stone", "moonrealm:stone"},
{"moonrealm:stone", "", "moonrealm:stone"}, {"moonrealm:stone", "", "moonrealm:stone"},
{"moonrealm:stone", "moonrealm:stone", "moonrealm:stone"}, {"moonrealm:stone", "moonrealm:stone", "moonrealm:stone"},
}, },
}) })
minetest.register_craft({ minetest.register_craft({
@ -457,12 +457,12 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
output = "moonrealm:light 8", output = "moonrealm:light 8",
recipe = { recipe = {
{"moonrealm:glass", "moonrealm:glass", "moonrealm:glass"}, {"moonrealm:glass", "moonrealm:glass", "moonrealm:glass"},
{"moonrealm:glass", "default:mese", "moonrealm:glass"}, {"moonrealm:glass", "default:mese", "moonrealm:glass"},
{"moonrealm:glass", "moonrealm:glass", "moonrealm:glass"}, {"moonrealm:glass", "moonrealm:glass", "moonrealm:glass"},
}, },
}) })
minetest.register_craft({ minetest.register_craft({

Binary file not shown.

Before

Width:  |  Height:  |  Size: 490 B