[ create a new paste ] login | about

Link: http://codepad.org/PAeNaTFx    [ raw code | output | fork ]

ExcaliburZero - Lua, pasted on May 23:
local function removeNode(pos)
	local n = minetest.env:get_node(pos).name
      if (n == "default:stone") then
		local chance = math.random(200)
		if (chance == 10) then
			minetest.env:add_node(pos, {name="glowblocks:glowblockblue_on"})
		
		else
			minetest.env:add_node(pos, {name="air"})
		end
	 end
end

local function removeCubicShell(pos, sideLen)
   local s = math.floor(sideLen/2)
   for dx = -s, s do
      for dy = -s, s do
         removeNode({ x = pos.x + dx, y = pos.y + dy, z = pos.z - s })
         removeNode({ x = pos.x + dx, y = pos.y + dy, z = pos.z + s })
      end
   end
   for dy = -s, s do
      for dz = -s, s do
         removeNode({ x = pos.x - s, y = pos.y + dy, z = pos.z + dz })
         removeNode({ x = pos.x + s, y = pos.y + dy, z = pos.z + dz })
      end
   end
   for dz = -s, s do
      for dx = -s, s do
         removeNode({ x = pos.x + dx, y = pos.y - s, z = pos.z + dz })
         removeNode({ x = pos.x + dx, y = pos.y + s, z = pos.z + dz })
      end
   end
end

minetest.register_node("neoblocks:stoneremover", {
tile_images = {"test_block.png"},
groups={snappy=2,choppy=2,oddly_breakable_by_hand=2},
description = "Stone Remover",
light_source = 14,
on_construct = function(pos)
	removeCubicShell(pos, 1)
	removeCubicShell(pos, 2)
	removeCubicShell(pos, 3)
	removeCubicShell(pos, 4)
	removeCubicShell(pos, 5)
	removeCubicShell(pos, 6)
	removeCubicShell(pos, 7)
	removeCubicShell(pos, 8)
	removeCubicShell(pos, 9)
	removeCubicShell(pos, 10)
	end,
})

minetest.register_craft({
output = '"neoblocks:testblock" 2',
recipe = {
{'', 'default:wood', ''},
{'', 'default:wood', ''},
{'default:stone', '', 'default:wood'},
}
})

--
--Lava--
--

local function removeNodeL(pos)
	local n = minetest.env:get_node(pos).name
      if (n == "default:lava_source") then
	minetest.env:add_node(pos, {name="air"})
	end
	if (n == "default:lava_flowing") then
	minetest.env:add_node(pos, {name="air"})
end
end

local function removeCubicShellL(pos, sideLen)
   local s = math.floor(sideLen/2)
   for dx = -s, s do
      for dy = -s, s do
         removeNodeL({ x = pos.x + dx, y = pos.y + dy, z = pos.z - s })
         removeNodeL({ x = pos.x + dx, y = pos.y + dy, z = pos.z + s })
      end
   end
   for dy = -s, s do
      for dz = -s, s do
         removeNodeL({ x = pos.x - s, y = pos.y + dy, z = pos.z + dz })
         removeNodeL({ x = pos.x + s, y = pos.y + dy, z = pos.z + dz })
      end
   end
   for dz = -s, s do
      for dx = -s, s do
         removeNodeL({ x = pos.x + dx, y = pos.y - s, z = pos.z + dz })
         removeNodeL({ x = pos.x + dx, y = pos.y + s, z = pos.z + dz })
      end
   end
end

minetest.register_node("neoblocks:lavaremover", {
tile_images = {"test_block.png"},
groups={snappy=2,choppy=2,oddly_breakable_by_hand=2},
description = "Lava Remover",
light_source = 14,
on_construct = function(pos)
	removeCubicShellL(pos, 1)
	removeCubicShellL(pos, 2)
	removeCubicShellL(pos, 3)
	removeCubicShellL(pos, 4)
	removeCubicShellL(pos, 5)
	removeCubicShellL(pos, 6)
	removeCubicShellL(pos, 7)
	removeCubicShellL(pos, 8)
	removeCubicShellL(pos, 9)
	removeCubicShellL(pos, 10)
	end,
})



--
--
-- Drill
--
--

local function digging(pos)
	minetest.env:add_node(pos, {name="default:ladder", param2=2})
end

local function digDown(pos)
local iSet = 1
	while (iSet <= 50) do
		digging({ x = pos.x , y = pos.y - iSet, z = pos.z })
		iSet = iSet + 1
	end
end

minetest.register_node("neoblocks:digger", {
tile_images = {"test_block.png"},
groups={snappy=2,choppy=2,oddly_breakable_by_hand=2},
description = "Digger",
light_source = 14,
on_construct = function(pos)
	digDown(pos)
	end,
})

--
--
-- Probe
--
--

local function probing(pos, pSet)
	local n = minetest.env:get_node(pos).name
     	if (n == "air") then
		return pSet
	else
		return 9999
	end
end

local function probeDown(pos)
	local pSet = 1
	while (pSet <= 50) do
		if (probing({ x = pos.x , y = pos.y - pSet, z = pos.z }, pSet) ~= 9999) then
			return probing({ x = pos.x , y = pos.y - pSet, z = pos.z }, pSet)
		elseif (pSet == 50) then
			return 9999
		else
			pSet = pSet + 1
		end
	end
end

minetest.register_node("neoblocks:probe", {
tile_images = {"test_block.png"},
groups={snappy=2,choppy=2,oddly_breakable_by_hand=2},
description = "Probe",
light_source = 14,
on_construct = function(pos)
	local meta = minetest.env:get_meta(pos)
	if (probeDown(pos) == 9999) then
		meta:set_string("infotext", "Very Far")
	elseif (probeDown(pos) <= 10) then
		meta:set_string("infotext", "Close")
	elseif (probeDown(pos) >= 10) then
		meta:set_string("infotext", "Far")
	end
})


Output:
1
line 191: unexpected symbol near '}'


Create a new paste based on this one


Comments: