mirror of
https://github.com/minetest-mods/mesecons.git
synced 2024-09-27 23:00:29 +02:00
Remove custom voxelmanip
This commit is contained in:
parent
162121722b
commit
dc4aee8e69
3
mesecons/spec/fixtures/mesecons.lua
vendored
3
mesecons/spec/fixtures/mesecons.lua
vendored
|
@ -1,7 +1,6 @@
|
||||||
mineunit("core")
|
mineunit("core")
|
||||||
mineunit("server")
|
mineunit("server")
|
||||||
|
mineunit("voxelmanip")
|
||||||
fixture("voxelmanip")
|
|
||||||
|
|
||||||
mineunit:set_current_modname("mesecons")
|
mineunit:set_current_modname("mesecons")
|
||||||
mineunit:set_modpath("mesecons", "../mesecons")
|
mineunit:set_modpath("mesecons", "../mesecons")
|
||||||
|
|
91
mesecons/spec/fixtures/voxelmanip.lua
vendored
91
mesecons/spec/fixtures/voxelmanip.lua
vendored
|
@ -1,91 +0,0 @@
|
||||||
mineunit("world")
|
|
||||||
mineunit("common/vector")
|
|
||||||
mineunit("game/misc")
|
|
||||||
|
|
||||||
local VoxelManip = {}
|
|
||||||
|
|
||||||
local function create(p1, p2)
|
|
||||||
local vm = setmetatable({nodes = {}}, VoxelManip)
|
|
||||||
|
|
||||||
if type(p1) == "table" and type(p2) == "table" then
|
|
||||||
vm:read_from_map(p1, p2)
|
|
||||||
end
|
|
||||||
|
|
||||||
return vm
|
|
||||||
end
|
|
||||||
|
|
||||||
function VoxelManip:read_from_map(p1, p2)
|
|
||||||
assert.same(p1, p2)
|
|
||||||
assert.is_nil(self.emin)
|
|
||||||
|
|
||||||
local blockpos = vector.floor(vector.divide(p1, minetest.MAP_BLOCKSIZE))
|
|
||||||
local emin = vector.multiply(blockpos, minetest.MAP_BLOCKSIZE)
|
|
||||||
local emax = vector.add(emin, minetest.MAP_BLOCKSIZE - 1)
|
|
||||||
self.emin, self.emax = emin, emax
|
|
||||||
|
|
||||||
local p = vector.new(emin)
|
|
||||||
while p.z <= emax.z do
|
|
||||||
while p.y <= emax.y do
|
|
||||||
while p.x <= emax.x do
|
|
||||||
local node = world.get_node(p)
|
|
||||||
if node then
|
|
||||||
self.nodes[minetest.hash_node_position(p)] = node
|
|
||||||
end
|
|
||||||
p.x = p.x + 1
|
|
||||||
end
|
|
||||||
p.x = emin.x
|
|
||||||
p.y = p.y + 1
|
|
||||||
end
|
|
||||||
p.y = emin.y
|
|
||||||
p.z = p.z + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function VoxelManip:get_node_at(pos)
|
|
||||||
local node = self.nodes[minetest.hash_node_position(pos)]
|
|
||||||
if node then
|
|
||||||
return {name = node.name, param1 = node.param1, param2 = node.param2}
|
|
||||||
else
|
|
||||||
return {name = "ignore", param1 = 0, param2 = 0}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function VoxelManip:set_node_at(pos, node)
|
|
||||||
local emin, emax = self.emin, self.emax
|
|
||||||
if pos.x < emin.x or pos.y < emin.y or pos.z < emin.z or pos.x > emax.x or pos.y > emax.y or pos.z > emax.z then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
self.nodes[minetest.hash_node_position(pos)] = {name = node.name, param1 = node.param1, param2 = node.param2}
|
|
||||||
end
|
|
||||||
|
|
||||||
function VoxelManip:write_to_map()
|
|
||||||
local emin, emax = self.emin, self.emax
|
|
||||||
local p = vector.new(emin)
|
|
||||||
while p.z <= emax.z do
|
|
||||||
while p.y <= emax.y do
|
|
||||||
while p.x <= emax.x do
|
|
||||||
local node = self.nodes[minetest.hash_node_position(p)]
|
|
||||||
if node ~= nil or world.get_node(p) ~= nil then
|
|
||||||
world.swap_node(p, node)
|
|
||||||
end
|
|
||||||
p.x = p.x + 1
|
|
||||||
end
|
|
||||||
p.x = emin.x
|
|
||||||
p.y = p.y + 1
|
|
||||||
end
|
|
||||||
p.y = emin.y
|
|
||||||
p.z = p.z + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function VoxelManip.update_map()
|
|
||||||
end
|
|
||||||
|
|
||||||
function minetest.get_voxel_manip(p1, p2)
|
|
||||||
return create(p1, p2)
|
|
||||||
end
|
|
||||||
|
|
||||||
mineunit.export_object(VoxelManip, {
|
|
||||||
name = "VoxelManip",
|
|
||||||
constructor = create,
|
|
||||||
})
|
|
Loading…
Reference in New Issue
Block a user