Z-inverted the model for the back half of the pool table

so that it doesn't have to be facedir-flipped in software
use the aforementioned function to handle placing it
added an abm to convert the old node.
This commit is contained in:
Vanessa Ezekowitz 2014-09-07 15:14:48 -04:00
parent 068bff4594
commit 484fde70f2
5 changed files with 41 additions and 52 deletions

View File

@ -693,8 +693,6 @@ minetest.register_node("homedecor:doghouse_roof", {
groups = {snappy=3, not_in_creative_inventory=1},
})
local swap_fdir = { 2, 3, 0, 1 }
minetest.register_node("homedecor:pool_table", {
tiles = {
"homedecor_pool_table_top1.png",
@ -743,43 +741,20 @@ minetest.register_node("homedecor:pool_table", {
fixed = { -0.5, -0.5, -0.5, 0.5, 0.3125, 1.5 }
},
on_place = function(itemstack, placer, pointed_thing)
local pos = pointed_thing.under
local pnode = minetest.get_node(pointed_thing.under)
local rnodedef = minetest.registered_nodes[pnode.name]
if not rnodedef["buildable_to"] then
pos = pointed_thing.above
end
local fdir = minetest.dir_to_facedir(placer:get_look_dir())
local pos2 = { x = pos.x + homedecor.fdir_to_fwd[fdir+1][1], y=pos.y, z = pos.z + homedecor.fdir_to_fwd[fdir+1][2] }
local tnode = minetest.get_node(pos)
local tnode2 = minetest.get_node(pos2)
if homedecor.get_nodedef_field(tnode.name, "buildable_to")
and homedecor.get_nodedef_field(tnode2.name, "buildable_to")
and not minetest.is_protected(pos, placer:get_player_name())
and not minetest.is_protected(pos2, placer:get_player_name()) then
minetest.add_node(pos, { name = "homedecor:pool_table", param2 = fdir })
minetest.add_node(pos2, { name = "homedecor:pool_table2", param2 = swap_fdir[fdir+1] })
if not homedecor.expect_infinite_stacks then
itemstack:take_item()
return itemstack
end
end
return homedecor.stack_sideways(itemstack, placer, pointed_thing,
"homedecor:pool_table", "homedecor:pool_table_2", false)
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
local fdir = oldnode.param2
if not fdir or fdir > 3 then return end
local pos2 = { x = pos.x + homedecor.fdir_to_fwd[fdir+1][1], y=pos.y, z = pos.z + homedecor.fdir_to_fwd[fdir+1][2] }
if minetest.get_node(pos2).name == "homedecor:pool_table2" then
if minetest.get_node(pos2).name == "homedecor:pool_table_2" then
minetest.remove_node(pos2)
end
end
})
minetest.register_node("homedecor:pool_table2", {
minetest.register_node("homedecor:pool_table_2", {
tiles = {
"homedecor_pool_table_top2.png",
"homedecor_pool_table_bottom2.png",
@ -795,29 +770,29 @@ minetest.register_node("homedecor:pool_table2", {
node_box = {
type = "fixed",
fixed = {
{-0.375, -0.5, -0.375, -0.25, 0.1875, -0.25}, -- NodeBox1
{0.25, -0.5, -0.375, 0.375, 0.1875, -0.25}, -- NodeBox2
{-0.25, -0.125, -0.3125, 0.25, -0.0625, 0}, -- NodeBox3
{-0.3125, -0.0625, -0.3125, -0.25, 0.1875, 0}, -- NodeBox4
{0.25, -0.0625, -0.3125, 0.3125, 0.1875, 0}, -- NodeBox5
{-0.3125, -0.125, 0, 0.3125, 0.1875, 0.0625}, -- NodeBox6
{0.25, -0.125, -0.25, 0.3125, 0.1875, 0.5}, -- NodeBox7
{-0.3125, -0.125, -0.25, -0.25, 0.1875, 0.5}, -- NodeBox8
{-0.375, -0.5, 0.25, -0.25, 0.1875, 0.375}, -- NodeBox1
{0.25, -0.5, 0.25, 0.375, 0.1875, 0.375}, -- NodeBox2
{-0.25, -0.125, 0, 0.25, -0.0625, 0.3125}, -- NodeBox3
{-0.3125, -0.0625, 0, -0.25, 0.1875, 0.3125}, -- NodeBox4
{0.25, -0.0625, 0, 0.3125, 0.1875, 0.3125}, -- NodeBox5
{-0.3125, -0.125, -0.0625, 0.3125, 0.1875, 0}, -- NodeBox6
{0.25, -0.125, -0.5, 0.3125, 0.1875, 0.25}, -- NodeBox7
{-0.3125, -0.125, -0.5, -0.25, 0.1875, 0.25}, -- NodeBox8
{-0.5, 0.1875, -0.5, -0.4375, 0.25, 0.5}, -- NodeBox9
{-0.5, 0.1875, -0.5, 0.5, 0.25, -0.4375}, -- NodeBox10
{-0.5, 0.1875, 0.4375, 0.5, 0.25, 0.5}, -- NodeBox10
{0.4375, 0.1875, -0.5, 0.5, 0.25, 0.5}, -- NodeBox11
{-0.3125, 0.1875, -0.3125, 0.3125, 0.25, 0.5}, -- NodeBox12
{-0.4375, 0.1875, -0.3125, 0.4375, 0.25, 0.4375}, -- NodeBox13
{-0.3125, 0.1875, -0.5, 0.3125, 0.25, -0.3125}, -- NodeBox14
{-0.25, -0.125, -0.325, 0.25, 0, -0.3125}, -- NodeBox15
{0.25, 0.125, -0.4375, 0.4375, 0.1875, 0.5}, -- NodeBox16
{-0.4375, 0.125, -0.4375, -0.25, 0.1875, 0.5}, -- NodeBox17
{-0.3125, 0.1875, -0.5, 0.3125, 0.25, 0.3125}, -- NodeBox12
{-0.4375, 0.1875, -0.4375, 0.4375, 0.25, 0.3125}, -- NodeBox13
{-0.3125, 0.1875, 0.3125, 0.3125, 0.25, 0.5}, -- NodeBox14
{-0.25, -0.125, 0.3125, 0.25, 0, 0.325}, -- NodeBox15
{0.25, 0.125, -0.5, 0.4375, 0.1875, 0.4375}, -- NodeBox16
{-0.4375, 0.125, -0.5, -0.25, 0.1875, 0.4375}, -- NodeBox17
{-0.5, 0.25, -0.5, -0.4375, 0.3125, 0.5}, -- NodeBox18
{-0.5, 0.25, -0.5, 0.5, 0.3125, -0.4375}, -- NodeBox19
{-0.5, 0.25, 0.4375, 0.5, 0.3125, 0.5}, -- NodeBox19
{0.4375, 0.25, -0.5, 0.5, 0.3125, 0.5}, -- NodeBox20
{-0.4375, 0.25, -0.3125, -0.375, 0.3125, 0.4375}, -- NodeBox23
{-0.3125, 0.25, -0.4375, 0.3125, 0.3125, -0.375}, -- NodeBox24
{0.375, 0.25, -0.3125, 0.4375, 0.3125, 0.4375}, -- NodeBox25
{-0.4375, 0.25, -0.4375, -0.375, 0.3125, 0.3125}, -- NodeBox23
{-0.3125, 0.25, 0.375, 0.3125, 0.3125, 0.4375}, -- NodeBox24
{0.375, 0.25, -0.4375, 0.4375, 0.3125, 0.3125}, -- NodeBox25
}
},
selection_box = {
@ -1366,3 +1341,17 @@ minetest.register_node("homedecor:toaster_loaf", {
drop = "homedecor:toaster"
})
-- convert old pool tables into newer model
minetest.register_abm({
nodenames = { "homedecor:pool_table2" },
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local swap_fdir = { 2, 3, 0, 1 }
local fdir = swap_fdir[node.param2+1]
minetest.set_node(pos, {name = "homedecor:pool_table_2", param2 = fdir})
end
})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 367 B

After

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 B

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 255 B

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 309 B

After

Width:  |  Height:  |  Size: 310 B