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. -- Yawinmaster
parent
25569b6149
commit
ed2209fe24
|
@ -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
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
../../../mods/Minetest-WorldEdit/
|
|
@ -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,
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
default
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue