Made new dumpster nodebox and fixes the issue of it placing into other nodes

This commit is contained in:
4Evergreen4 2016-01-11 22:02:39 -05:00
parent f563014b74
commit b8df65405f
6 changed files with 63 additions and 22 deletions

1
description.txt Normal file
View File

@ -0,0 +1 @@
This mod adds a wooden trash can, and a dumpster to the game. Right click it, put in your trash, and click the empty trash button.

View File

@ -1,3 +1,30 @@
--
-- Functions
--
local fdir_to_front = {
{x=0, z=1},
{x=1, z=0},
{x=0, z=-1},
{x=-1, z=0}
}
local function checkwall(pos)
local fdir = minetest.get_node(pos).param2
local second_node_x = pos.x + fdir_to_front[fdir + 1].x
local second_node_z = pos.z + fdir_to_front[fdir + 1].z
local second_node_pos = {x=second_node_x, y=pos.y, z=second_node_z}
print("x: "..second_node_pos.x)
print("y: "..second_node_pos.y)
print("z: "..second_node_pos.z)
local second_node = minetest.get_node(second_node_pos)
if not second_node or not minetest.registered_nodes[second_node.name]
or not minetest.registered_nodes[second_node.name].buildable_to then
return true
end
return false
end
-- --
-- Custom Sounds -- Custom Sounds
-- --
@ -16,27 +43,25 @@ end
-- --
local trash_can_nodebox = { local trash_can_nodebox = {
{-0.375000,-0.500000,0.312500,0.375000,0.500000,0.375000}, {-0.375, -0.5, 0.3125, 0.375, 0.5, 0.375},
{0.312500,-0.500000,-0.375000,0.375000,0.500000,0.375000}, {0.3125, -0.5, -0.375, 0.375, 0.5, 0.375},
{-0.375000,-0.500000,-0.375000,0.375000,0.500000,-0.312500}, {-0.375, -0.5, -0.375, 0.375, 0.5, -0.3125},
{-0.375000,-0.500000,-0.375000,-0.312500,0.500000,0.375000}, {-0.375, -0.5, -0.375, -0.3125, 0.5, 0.375},
{-0.312500,-0.500000,-0.312500,0.312500,-0.437500,0.312500}, {-0.3125, -0.5, -0.3125, 0.3125, -0.4375, 0.3125},
} }
local dumpster_selectbox = {-0.4375, -0.5, -0.9375, 1.4375, 0.75, 0.4375} local dumpster_selectbox = {-0.5, -0.5625, -0.5, 0.5, 0.5, 1.5}
local dumpster_nodebox = { local dumpster_nodebox = {
-- Top
{-0.4375, 0.75, -0.9375, 1.4375, 0.875, 0.4375},
-- Border
{-0.5, 0.625 , -1.0, 1.5, 0.75, 0.5},
-- Main Body -- Main Body
{-0.4375, -0.4375, -0.9375, 1.4375, 0.625, 0.4375}, {-0.4375, -0.375, -0.4375, 0.4375, 0.5, 1.4375},
-- Feet -- Feet
{-0.4375, -0.5, -0.9375, -0.1875, -0.4375, -0.6875}, {-0.4375, -0.5, -0.4375, -0.25, -0.375, -0.25},
{1.1875, -0.5, -0.9375, 1.4375, -0.4375, -0.6875}, {0.25, -0.5, -0.4375, 0.4375, -0.375, -0.25},
{-0.4375, -0.5, 0.1875, -0.1875, -0.4375, 0.4375}, {0.25, -0.5, 1.25, 0.4375, -0.375, 1.4375},
{1.1875, -0.5, 0.1875, 1.4375, -0.4375, 0.4375}, {-0.4375, -0.5, 1.25, -0.25, -0.375, 1.4375},
-- Border
{-0.5, 0.25, -0.5, 0.5, 0.375, 1.5},
} }
-- --
@ -45,17 +70,26 @@ local dumpster_nodebox = {
-- Normal Trash Can -- Normal Trash Can
minetest.register_node("trash_can:trash_can_wooden",{ minetest.register_node("trash_can:trash_can_wooden",{
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
tiles = {"trash_can_wooden_top.png", "trash_can_wooden_top.png", "trash_can_wooden.png"},
description = "Wooden Trash Can", description = "Wooden Trash Can",
drawtype="nodebox", drawtype="nodebox",
paramtype = "light", paramtype = "light",
tiles = {
"trash_can_wooden_top.png",
"trash_can_wooden_top.png",
"trash_can_wooden.png"
},
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = trash_can_nodebox fixed = trash_can_nodebox
}, },
groups = {
snappy=1,
choppy=2,
oddly_breakable_by_hand=2,
flammable=3
},
on_construct = function(pos) on_construct = function(pos)
local meta = minetest.env:get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("formspec", meta:set_string("formspec",
"size[8,9]".. "size[8,9]"..
"button[0,0;2,1;empty;Empty Trash]".. "button[0,0;2,1;empty;Empty Trash]"..
@ -67,7 +101,7 @@ minetest.register_node("trash_can:trash_can_wooden",{
inv:set_size("main", 8*4) inv:set_size("main", 8*4)
end, end,
can_dig = function(pos,player) can_dig = function(pos,player)
local meta = minetest.env:get_meta(pos); local meta = minetest.get_meta(pos);
local inv = meta:get_inventory() local inv = meta:get_inventory()
return inv:is_empty("main") return inv:is_empty("main")
end, end,
@ -126,7 +160,7 @@ minetest.register_node("trash_can:dumpster", {
sounds = default.node_sound_metal_defaults(), sounds = default.node_sound_metal_defaults(),
on_construct = function(pos) on_construct = function(pos)
local meta = minetest.env:get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("formspec", meta:set_string("formspec",
"size[8,9]".. "size[8,9]"..
"button[0,0;2,1;empty;Empty Trash]".. "button[0,0;2,1;empty;Empty Trash]"..
@ -137,8 +171,14 @@ minetest.register_node("trash_can:dumpster", {
local inv = meta:get_inventory() local inv = meta:get_inventory()
inv:set_size("main", 8*4) inv:set_size("main", 8*4)
end, end,
after_place_node = function(pos, placer, itemstack)
if checkwall(pos) then
minetest.set_node(pos, {name = "air"})
return true
end
end,
can_dig = function(pos,player) can_dig = function(pos,player)
local meta = minetest.env:get_meta(pos); local meta = minetest.get_meta(pos);
local inv = meta:get_inventory() local inv = meta:get_inventory()
return inv:is_empty("main") return inv:is_empty("main")
end, end,
@ -163,7 +203,7 @@ minetest.register_node("trash_can:dumpster", {
end end
minetest.sound_play("trash", {to_player=sender:get_player_name(), gain = 2.0}) minetest.sound_play("trash", {to_player=sender:get_player_name(), gain = 2.0})
end end
end, end
}) })
-- --

BIN
screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 835 B

After

Width:  |  Height:  |  Size: 689 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 892 B

After

Width:  |  Height:  |  Size: 626 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB