Cambios varios:

- Terminado de modificar el instalador
	- Modificado el mod "builtin_item" para que todos los elementos tirados al suelo
	  sean objetos 3D que rotan.

	- Modificado el mod "hopper":
		- para corregirle un bug que hacía que los items desaparecieran
		  del inventario de origen estando el inventario de destino lleno.
		- para curregirle un bug que hacía que si no había hueco para
		  el primer elemento, no movía ninguno.
		- para adaptar su interfaz a la del juego y permitir la mecánica
		  de click derecho.

	- Modificado el mod "infinite_chest" para adaptar su interfaz a la del juego y permitir
	  la mecánica de click derecho.

-- Yawin
master
Yawin 2017-02-22 17:35:10 +01:00
parent 25569b6149
commit ed2209fe24
6 changed files with 82 additions and 104 deletions

View File

@ -16,7 +16,7 @@ git clone https://github.com/bdjnk/mini_sun.git
mkdir yawin
cd yawin
git clone https://gitlab.com/yawin/Mod_Magic.git
git clone https://gitlab.com/yawin/utilities.git
git clone https://github.com/yawin123/utilities.git
cd ../../mods/
rm -f beds boats bucket carts creative datalib default digicompute doors dye farming fire flowers give_initial_stuff killme mini_sun Mod_Magic Minetest-WorldEdit screwdriver sethome sfinv stairs tnt utilities vessels walls wool xpanes

1
mods/Minetest-WorldEdit Symbolic link
View File

@ -0,0 +1 @@
../../../mods/Minetest-WorldEdit/

View File

@ -31,19 +31,11 @@ minetest.register_entity(":__builtin:item", {
end
prop = {
is_visible = true,
visual = "sprite",
textures = {"unknown_item.png"}
visual = "wielditem",
textures = {itemname},
visual_size = {x=0.20, y=0.20},
automatic_rotate = math.pi * 0.25
}
if item_texture and item_texture ~= "" then
prop.visual = "sprite"
prop.textures = {item_texture}
prop.visual_size = {x=0.50, y=0.50}
else
prop.visual = "wielditem"
prop.textures = {itemname}
prop.visual_size = {x=0.20, y=0.20}
prop.automatic_rotate = math.pi * 0.25
end
self.object:set_properties(prop)
end,

1
mods/hopper/depends.txt Normal file
View File

@ -0,0 +1 @@
default

View File

@ -2,13 +2,16 @@ local chest = minetest.get_content_id("default:chest")
local chest_formspec =
"size[8,9]"..
--default.gui_bg..
--default.gui_bg_img..
--default.gui_slots..
default.gui_bg..
default.gui_bg_img..
default.gui_slots..
"list[current_name;main;0,0.3;8,4;]"..
"list[current_player;main;0,4.85;8,1;]"..
"list[current_player;main;0,6.08;8,3;8]"
--default.get_hotbar_bg(0,4.85)
"list[current_player;main;0,6.08;8,3;8]"..
"listring[current_name;main]" ..
"listring[current_player;main]" ..
"field_close_on_enter[filter;false]" ..
default.get_hotbar_bg(0,4.85)
minetest.register_node("hopper:hopper", {
drop = "hopper:hopper_item",
@ -37,7 +40,6 @@ minetest.register_node("hopper:hopper", {
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", chest_formspec)
meta:set_string("infotext", "Chest")
local inv = meta:get_inventory()
inv:set_size("main", 8*4)
end,
@ -106,7 +108,6 @@ minetest.register_node("hopper:hopper_side", {
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", chest_formspec)
meta:set_string("infotext", "Chest")
local inv = meta:get_inventory()
inv:set_size("main", 8*4)
end,
@ -203,17 +204,12 @@ minetest.register_abm({
local stack = inv2:get_stack("main", i)
local item = stack:get_name()
if item ~= "" then
if inv:room_for_item("main", item) == false then
--print("no room for items 2")
--return
if inv:room_for_item("main", item) == true then
stack:take_item(1)
inv2:set_stack("main", i, stack)
inv:add_item("main", item)
break
end
--print(stack:to_string())
stack:take_item(1)
inv2:set_stack("main", i, stack)
--add to hopper
--print("adding item")
inv:add_item("main", item)
break
end
end
@ -235,17 +231,12 @@ minetest.register_abm({
local stack = inv2:get_stack("dst", i)
local item = stack:get_name()
if item ~= "" then
if inv:room_for_item("main", item) == false then
--print("no room for items")
return
if inv:room_for_item("main", item) == true then
stack:take_item(1)
inv2:set_stack("dst", i, stack)
inv:add_item("main", item)
break
end
--print(stack:to_string())
stack:take_item(1)
inv2:set_stack("dst", i, stack)
--add to hopper
--print("adding item")
inv:add_item("main", item)
break
end
end
@ -271,16 +262,12 @@ minetest.register_abm({
local stack = inv:get_stack("main", i)
local item = stack:get_name()
if item ~= "" then
if inv2:room_for_item("main", item) == false then
--print("no room for items")
return
if inv2:room_for_item("main", item) == true then
stack:take_item(1)
inv:set_stack("main", i, stack)
inv2:add_item("main", item)
break
end
stack:take_item(1)
inv:set_stack("main", i, stack)
--add to hopper or chest
--print("adding item")
inv2:add_item("main", item)
break
end
end
@ -306,18 +293,13 @@ minetest.register_abm({
local stack = inv:get_stack("main", i)
local item = stack:get_name()
if item ~= "" then
if inv2:room_for_item("src", item) == false then
--print("no room for items")
return
if inv2:room_for_item("src", item) == true then
minetest.get_node_timer({x=pos.x,y=pos.y-1,z=pos.z}):start(1.0)
stack:take_item(1)
inv:set_stack("main", i, stack)
inv2:add_item("src", item)
break
end
minetest.get_node_timer({x=pos.x,y=pos.y-1,z=pos.z}):start(1.0)
stack:take_item(1)
inv:set_stack("main", i, stack)
--add to hopper or chest
--print("adding item")
inv2:add_item("src", item)
break
end
end
end
@ -369,18 +351,12 @@ minetest.register_abm({
local stack = inv2:get_stack("main", i)
local item = stack:get_name()
if item ~= "" then
if inv:room_for_item("main", item) == false then
--print("no room for items 2")
--return
if inv:room_for_item("main", item) == true then
stack:take_item(1)
inv2:set_stack("main", i, stack)
inv:add_item("main", item)
break
end
--print(stack:to_string())
stack:take_item(1)
inv2:set_stack("main", i, stack)
--add to hopper
--print("adding item")
inv:add_item("main", item)
break
end
end
end
@ -401,17 +377,11 @@ minetest.register_abm({
local item = stack:get_name()
if item ~= "" then
if inv:room_for_item("main", item) == false then
--print("no room for items")
return
stack:take_item(1)
inv2:set_stack("dst", i, stack)
inv:add_item("main", item)
break
end
--print(stack:to_string())
stack:take_item(1)
inv2:set_stack("dst", i, stack)
--add to hopper
--print("adding item")
inv:add_item("main", item)
break
end
end
end
@ -439,17 +409,12 @@ minetest.register_abm({
local stack = inv:get_stack("main", i)
local item = stack:get_name()
if item ~= "" then
if inv2:room_for_item("main", item) == false then
--print("no room for items")
return
if inv2:room_for_item("main", item) == true then
stack:take_item(1)
inv:set_stack("main", i, stack)
inv2:add_item("main", item)
break
end
stack:take_item(1)
inv:set_stack("main", i, stack)
--add to hopper or chest
--print("adding item")
inv2:add_item("main", item)
break
end
end
--print(inv)
@ -474,18 +439,13 @@ minetest.register_abm({
local stack = inv:get_stack("main", i)
local item = stack:get_name()
if item ~= "" then
if inv2:room_for_item("fuel", item) == false then
--print("no room for items")
return
if inv2:room_for_item("fuel", item) == true then
stack:take_item(1)
inv:set_stack("main", i, stack)
minetest.get_node_timer(front):start(1.0)
inv2:add_item("fuel", item)
break
end
stack:take_item(1)
inv:set_stack("main", i, stack)
--add to hopper or chest
--print("adding item")
minetest.get_node_timer(front):start(1.0)
inv2:add_item("fuel", item)
break
end
end
end

View File

@ -19,6 +19,9 @@ end
infinite_chest.formspec = function(pos,page)
local formspec = "size[15,11]"
..default.gui_bg
..default.gui_bg_img
..default.gui_slots
.."button[12,10;1,0.5;go;Go]"
if page=="main" then
local meta = minetest.env:get_meta(pos)
@ -44,6 +47,9 @@ infinite_chest.formspec = function(pos,page)
return formspec
.."field[10.5,10.1;2,1;page;;]"
.."label[0,0;Infinite Chest]"
.."listring[current_name;main]"
.."listring[current_player;main]"
.."field_close_on_enter[filter;false]"
end
return formspec
.."field[10.5,10.1;2,1;page;;"..page.."]"
@ -52,6 +58,10 @@ infinite_chest.formspec = function(pos,page)
.."button[13,6.5;2,0.5;delete;Delete]"
.."list[current_name;"..page..";0,1;15,5;]"
.."list[current_player;main;0,7;8,4;]"
.."listring[current_name;"..page.."]"
.."listring[current_player;main]"
.."field_close_on_enter[filter;false]"
..default.get_hotbar_bg(0,7)
end
infinite_chest.get_pages = function(meta)
@ -137,8 +147,22 @@ infinite_chest.can_dig = function(pos,player)
local inv = meta:get_inventory()
for i,page in pairs(pages) do
if not inv:is_empty(page) then
minetest.chat_send_player(player:get_player_name(), "cannot dig - page \""..page.."\" is not empty")
return false
--minetest.chat_send_player(player:get_player_name(), "cannot dig - page \""..page.."\" is not empty")
--return false
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory(page);
for i,stack in ipairs(inv:get_list(page)) do
local x = math.random(-4, 4)/10
local z = math.random(-4, 4)/10
pos.x = pos.x + x
pos.z = pos.z + z
minetest.env:add_item(pos, stack)
stack:clear()
inv:set_stack(page, i, stack)
pos.x = pos.x - x
pos.z = pos.z - z
end
end
end
return true