diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..2cd867295 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,10 @@ +language: cpp +compiler: + - gcc + - clang +before_install: + - if [ $CC = "clang" ]; then export PATH="/usr/bin/:$PATH"; sudo sh -c 'echo "deb http://ppa.launchpad.net/eudoxos/llvm-3.1/ubuntu precise main" >> /etc/apt/sources.list'; sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 92DE8183; sudo apt-get update; sudo apt-get install llvm-3.1; sudo apt-get install clang; fi + - sudo apt-get install libirrlicht-dev cmake libbz2-dev libpng12-dev libjpeg8-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev +script: cmake . && make +notifications: + email: false diff --git a/CMakeLists.txt b/CMakeLists.txt index 2de45d90f..fdb0347b7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,7 @@ set(VERSION_EXTRA "" CACHE STRING "Stuff to append to version string") # Also remember to set PROTOCOL_VERSION in clientserver.h when releasing set(VERSION_MAJOR 0) set(VERSION_MINOR 4) -set(VERSION_PATCH 4) +set(VERSION_PATCH 4-d1) if(VERSION_EXTRA) set(VERSION_PATCH ${VERSION_PATCH}-${VERSION_EXTRA}) endif() diff --git a/builtin/falling.lua b/builtin/falling.lua index 903c5dfd0..d3af36f29 100644 --- a/builtin/falling.lua +++ b/builtin/falling.lua @@ -96,9 +96,9 @@ function drop_attached_node(p) minetest.env:remove_node(p) for _,item in ipairs(minetest.get_node_drops(nn, "")) do local pos = { - x = p.x + math.random(60)/60-0.3, - y = p.y + math.random(60)/60-0.3, - z = p.z + math.random(60)/60-0.3, + x = p.x + math.random()/2 - 0.25, + y = p.y + math.random()/2 - 0.25, + z = p.z + math.random()/2 - 0.25, } minetest.env:add_item(pos, item) end diff --git a/builtin/item.lua b/builtin/item.lua index acc1e6262..a28798d4d 100644 --- a/builtin/item.lua +++ b/builtin/item.lua @@ -231,9 +231,20 @@ function minetest.item_place_object(itemstack, placer, pointed_thing) end function minetest.item_place(itemstack, placer, pointed_thing) + -- Call on_rightclick if the pointed node defines it + if pointed_thing.type == "node" and placer and + not placer:get_player_control().sneak then + local n = minetest.env:get_node(pointed_thing.under) + local nn = n.name + if minetest.registered_nodes[nn] and minetest.registered_nodes[nn].on_rightclick then + minetest.registered_nodes[nn].on_rightclick(pointed_thing.under, n, placer) + return + end + end + if itemstack:get_definition().type == "node" then return minetest.item_place_node(itemstack, placer, pointed_thing) - else + elseif itemstack:get_definition().type ~= "none" then return minetest.item_place_object(itemstack, placer, pointed_thing) end end @@ -375,6 +386,7 @@ minetest.nodedef_default = { can_dig = nil, on_punch = redef_wrapper(minetest, 'node_punch'), -- minetest.node_punch + on_rightclick = nil, on_dig = redef_wrapper(minetest, 'node_dig'), -- minetest.node_dig on_receive_fields = nil, @@ -464,7 +476,7 @@ minetest.noneitemdef_default = { -- This is used for the hand and unknown items tool_capabilities = nil, -- Interaction callbacks - on_place = nil, + on_place = redef_wrapper(minetest, 'item_place'), on_drop = nil, on_use = nil, } diff --git a/client/serverlist/.gitignore b/client/serverlist/.gitignore new file mode 100644 index 000000000..d6b7ef32c --- /dev/null +++ b/client/serverlist/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 117d4b24e..7ba2ed001 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -725,6 +725,9 @@ field[;