From 1cc3d63b2e5ddb3773bbe62c5d85260934429235 Mon Sep 17 00:00:00 2001 From: obneq Date: Sat, 18 Aug 2012 01:42:50 +0200 Subject: [PATCH] move add_entity from canvas on_construct to easel on_punch to prepare for resolution independence --- init.lua | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/init.lua b/init.lua index 10c781d..bf22bfc 100644 --- a/init.lua +++ b/init.lua @@ -182,19 +182,6 @@ canvasnode = { drop = "", - on_construct = function(pos) - local easel = minetest.env:get_node({ x = pos.x, y = pos.y - 1, z = pos.z}) - local fd = easel.param2 - local dir = dirs[fd] - pos = {x = pos.x - 0.01 * dir.x, y = pos.y, z = pos.z - 0.01 * dir.z} - - local p = minetest.env:add_entity(pos, "painting:picent"):get_luaentity() - p.object:set_properties({ collisionbox = paintbox[fd%2] }) - p.object:setyaw(math.pi*easel.param2/-2) - p.fd = easel.param2 - p.grid = initgrid() - end, - after_dig_node=function(pos, oldnode, oldmetadata, digger) --get data and remove pixels local data @@ -247,13 +234,22 @@ easel = { return end local meta = minetest.env:get_meta(pos) - local np = { x = pos.x, y = pos.y+1, z = pos.z } + local fd = node.param2 + pos = { x = pos.x, y = pos.y + 1, z = pos.z } - if minetest.env:get_node(np).name == "air" then - minetest.env:add_node(np, { name = "painting:canvasnode", - param2 = node["param2"], - paramtype2 = "none" }) - end + if minetest.env:get_node(pos).name ~= "air" then return end + minetest.env:add_node(pos, { name = "painting:canvasnode", + param2 = fd, + paramtype2 = "none" }) + + local dir = dirs[fd] + pos = { x = pos.x - 0.01 * dir.x, y = pos.y, z = pos.z - 0.01 * dir.z } + + local p = minetest.env:add_entity(pos, "painting:picent"):get_luaentity() + p.object:set_properties({ collisionbox = paintbox[fd%2] }) + p.object:setyaw(math.pi * fd/-2) + p.grid = initgrid() + p.fd = fd meta:set_int("has_canvas", 1) local itemstack = ItemStack("painting:canvas")