mesecons_x/mesecons_autotools/render.lua
Deet Mit 68aadf9953 fix
2020-09-04 16:21:35 +02:00

157 lines
4.7 KiB
Lua

-- Remove entities
local function clear_selection(user)
if mesecons_autotools.users[user] == nil then
mesecons_autotools.users[user] = {}
end
if mesecons_autotools.users[user].entities == nil then
mesecons_autotools.users[user].entities = {}
end
for _,v in pairs(mesecons_autotools.users[user].entities) do
v:remove()
end
mesecons_autotools.users[user].entities = {}
end
-- Register entities
minetest.register_entity(":mesecons_autotools:pos1", {
initial_properties = {
visual = "cube",
visual_size = {x=1.11, y=1.11, },
textures = {"pos1.png", "pos1.png",
"pos1.png", "pos1.png",
"pos1.png", "pos1.png"},
collisionbox = {-0.55, -0.55, -0.55, 0.55, 0.55, 0.55},
physical = false,
static_save = false,
},
on_activate = function(self, staticdata, dtime_s)
end,
on_punch = function(self,hitter)
end,
on_blast = function(self, damage)
return false, false, {} -- don't damage or knockback
end,
})
minetest.register_entity(":mesecons_autotools:pos2", {
initial_properties = {
visual = "cube",
visual_size = {x=1.1, y=1.1},
textures = {"pos2.png", "pos2.png",
"pos2.png", "pos2.png",
"pos2.png", "pos2.png"},
collisionbox = {-0.55, -0.55, -0.55, 0.55, 0.55, 0.55},
physical = false,
static_save = false,
},
on_activate = function(self, staticdata, dtime_s)
end,
on_punch = function(self,hitter)
end,
on_blast = function(self, damage)
return false, false, {} -- don't damage or knockback
end,
})
minetest.register_entity(":mesecons_autotools:wall", {
initial_properties = {
visual = "upright_sprite",
textures = {"wall.png"},
visual_size = {x=10, y=10},
physical = false,
static_save = false,
},
on_activate = function(self, staticdata, dtime_s)
end,
on_punch = function(self,hitter)
end,
on_blast = function(self, damage)
return false, false, {} -- don't damage or knockback
end,
})
minetest.register_entity(":mesecons_autotools:pos", {
initial_properties = {
visual = "cube",
visual_size = {x=1.1, y=1.1},
textures = {"pos.png", "pos.png",
"pos.png", "pos.png",
"pos.png", "pos.png"},
collisionbox = {-0.55, -0.55, -0.55, 0.55, 0.55, 0.55},
physical = false,
static_save = false,
},
on_activate = function(self, staticdata, dtime_s)
end,
on_punch = function(self,hitter)
end,
on_blast = function(self, damage)
return false, false, {} -- don't damage or knockback
end,
})
--[[ not used: TODO remove
local function generate_corners(user)
local pos = {}
pos[1] = mesecons_autotools.get_pos(user,1)
pos[2] = mesecons_autotools.get_pos(user,2)
if pos[1] == nil then return end
if pos[2] == nil then return end
local list = {}
for xi = 1,2 do
for yi = 1,2 do
for zi = 1,2 do
local p = { x = pos[xi].x , y = pos[yi].y , z = pos[zi].z }
if not vector.equals(p,pos[1]) then
table.insert(list,p)
end
end
end
end
return list
end
]]--
local function show_selection(user)
local pos1 = mesecons_autotools.get_pos(user,1)
local pos2 = mesecons_autotools.get_pos(user,2)
if pos1 ~= nil then
local e1 = minetest.add_entity(pos1,"mesecons_autotools:pos1")
table.insert(mesecons_autotools.users[user].entities, e1)
end
if pos2 ~= nil then
local e2 = minetest.add_entity(pos2,"mesecons_autotools:pos2")
table.insert(mesecons_autotools.users[user].entities, e2)
end
end
mesecons_autotools.render = function(user)
clear_selection(user)
show_selection(user)
end